{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./App/web/core/index.ts","webpack:///./App/web/shared/route-helpers.ts","webpack:///./App/web/documents/index.ts","webpack:///./App/web/shared/activity-report/activity-reports-columns.ts","webpack:///./App/web/shared/distance.ts","webpack:///./App/web/covance-ag-grid/index.ts","webpack:///./App/web/covance-filter/index.ts","webpack:///./App/web/activities/download-actions.ts","webpack:///./App/web/activities/upload-actions.ts","webpack:///./App/web/activities/email-notification-preferences-actions.ts","webpack:///./App/web/activities/activity-logger.ts","webpack:///./App/web/shared/assert-unreachable-code.ts","webpack:///./App/web/shared/validators.ts","webpack:///./App/web/user/user-settings.component.ts","webpack:///./App/web/user/user-settings-tabbed-component.ts","webpack:///./App/web/user/email-preferences/levels/email-preference-level-select.component.ts","webpack:///./App/web/user/user.module.ts","webpack:///./App/web/core/settings.ts","webpack:///./App/web/core/url-builder/base-build-part.ts","webpack:///./App/web/core/url-builder/activity-reports-build-part.ts","webpack:///./App/web/core/url-builder/admin-kit-inventory-build-part.ts","webpack:///./App/web/core/url-builder/coordinator-e-query-build-part.ts","webpack:///./App/web/core/url-builder/admin-e-query-build-part.ts","webpack:///./App/web/core/url-builder/admin-build-part.ts","webpack:///./App/web/core/url-builder/general-documents-build-part.ts","webpack:///./App/web/core/url-builder/global-popup-build-part.ts","webpack:///./App/web/core/url-builder/documents-categories-build-part.ts","webpack:///./App/web/core/url-builder/documents-build-part.ts","webpack:///./App/web/core/url-builder/microbiology-build-part.ts","webpack:///./App/web/core/url-builder/standard-test-results-build-part.ts","webpack:///./App/web/core/url-builder/on-screen-results-build-part.ts","webpack:///./App/web/core/url-builder/e-query-build-part.ts","webpack:///./App/web/core/url-builder/site-build-part.ts","webpack:///./App/web/core/url-builder/trend-analysis-build-part.ts","webpack:///./App/web/core/url-builder/test-results-build-part.ts","webpack:///./App/web/core/url-builder/kit-inventory-build-part.ts","webpack:///./App/web/core/url-builder/study-build-part.ts","webpack:///./App/web/core/url-builder/sponsor-build-part.ts","webpack:///./App/web/core/url-builder/sample-tracking/study-group-dashboard-build-part.ts","webpack:///./App/web/core/url-builder/sample-tracking/protocol-dashboard-build-part.ts","webpack:///./App/web/core/url-builder/sample-tracking/sample-tracking-report-build-part.ts","webpack:///./App/web/core/url-builder/sample-tracking/sample-monitoring-build-part.ts","webpack:///./App/web/core/url-builder/sample-tracking/sample-tracking-build-part.ts","webpack:///./App/web/core/url-builder/site-shipping-tool-build-part.ts","webpack:///./App/web/core/url-builder/sample-management-build-part.ts","webpack:///./App/web/core/url-builder/esa-build-part.ts","webpack:///./App/web/core/url-builder/url-builder.ts","webpack:///./App/web/charts/chart-helper.ts","webpack:///./App/web/core/page-title.ts","webpack:///./App/web/renderer/subject-title-renderer.ts","webpack:///./App/web/core/comparators.ts","webpack:///./App/web/shared/tooltip-item.ts","webpack:///./App/web/shared/format-date.pipe.ts","webpack:///./App/web/shared/format-date-time.pipe.ts","webpack:///./App/web/shared/safe-html.pipe.ts","webpack:///./App/web/shared/unit-selector.component.ts","webpack:///./App/web/shared/footer.component.ts","webpack:///./App/web/covance-dropdown-select/covance-dropdown-select.component.ts","webpack:///./App/web/shared/milliseconds-converter.pipe.ts","webpack:///./App/web/user-preferences/user-preferences.module.ts","webpack:///./App/web/shared/clearable-textfield/clearable-textfield.component.ts","webpack:///./App/web/shared/covance-expansion-panel/covance-expansion-panel.component.ts","webpack:///./App/web/shared/covance-grid/tracking-grid/tracking-grid.component.ts","webpack:///./App/web/shared/covance-grid/pagination/pagination.component.ts","webpack:///./App/web/shared/spinner/spinner.component.ts","webpack:///./App/web/shared/time-frame-filter/timeframe-filter.component.ts","webpack:///./App/web/sample-tracking/reports/new-report/filters/select/select.component.ts","webpack:///./App/web/sample-tracking/service/search-bar/search-bar.component.ts","webpack:///./App/web/sample-tracking/sample-monitoring/notification-form/notification-form-field/notification-form-field.component.ts","webpack:///./App/web/sample-tracking/service/navigation-service/navigation-service.component.ts","webpack:///./App/web/shared/shared.module.ts","webpack:///./App/web/user/user-audience-role-guard.ts","webpack:///./App/web/activities/activity-data.ts","webpack:///./App/web/documents/documents-columns/documents-columns.ts","webpack:///./App/web/renderer/site-display-name-renderer.ts","webpack:///./App/web/documents/document-filter-item.ts","webpack:///./App/web/activities/navigation-activity/navigation-activity-resolver.ts","webpack:///./App/web/user/user-storage.ts","webpack:///./App/web/global-popup/index.ts","webpack:///./App/web/covance-filter/covance-filter.models.ts","webpack:///./App/web/covance-ag-grid/ag-export.component.ts","webpack:///./App/web/covance-ag-grid/covance-ag-grid.module.ts","webpack:///./App/web/shared/grid-columns.ts","webpack:///./App/web/shared/route-extensions.ts","webpack:///./App/web/authentication/authentication-state.ts","webpack:///./App/web/documents/prepare-filter-url-params.ts","webpack:///./App/web/documents/unread-reports-storage.ts","webpack:///./App/web/activities/navigation-activity/handlers/navigation-activity-handler.ts","webpack:///./App/web/covance-filter/filter-name-dialog.component.ts","webpack:///./App/web/covance-filter/covance-filter.component.ts","webpack:///./App/web/covance-filter/chain-node-dialog.component.ts","webpack:///./App/web/covance-filter/covance-chain-filter.component.ts","webpack:///./App/web/covance-filter/filter-type/covance-filter-base-type.component.ts","webpack:///./App/web/covance-filter/filter-type/covance-filter-text-type.component.ts","webpack:///./App/web/covance-filter/filter-type/covance-filter-number-type.component.ts","webpack:///./App/web/covance-filter/filter-type/covance-filter-number-range-type.component.ts","webpack:///./App/web/covance-filter/filter-type/covance-filter-date-type.component.ts","webpack:///./App/web/covance-filter/filter-type/covance-filter-date-range-type.component.ts","webpack:///./App/web/covance-filter/filter-type/covance-filter-select-type.component.ts","webpack:///./App/web/covance-filter/filter-type/covance-filter-multiselect-type.component.ts","webpack:///./App/web/covance-filter/filter-type/covance-filter-checkbox-type.component.ts","webpack:///./App/web/covance-filter/filter-type/covance-filter-chain-node-type.component.ts","webpack:///./App/web/covance-filter/filter-type/covance-filter-age-range-type.component.ts","webpack:///./App/web/covance-filter/filter-type/covance-filter-age/covance-filter-age.component.ts","webpack:///./App/web/covance-filter/filter-type/covance-filter-date-time-range/covance-filter-date-time-range-type.component.ts","webpack:///./App/web/covance-filter/covance-filter.module.ts","webpack:///./App/web/user/email-preferences/email-preferences-storage.ts","webpack:///./App/web/covance-filter/covance-filter.ts","webpack:///./App/web/user/unit-storage.ts","webpack:///./App/web/shared/covance-grid/tracking-grid.service.ts","webpack:///./App/web/covance-filter/filter-type/covance-filter-base-type.ts","webpack:///./App/web/corporate/terms-storage.ts","webpack:///./App/web/documents/models/category.ts","webpack:///./App/web/user-preferences/user-preferences-storage.ts","webpack:///./App/web/investigator/kitinventory/kit-detail.ts","webpack:///./App/web/sponsor/kit-inventory/sponsor-study-kit-report.ts","webpack:///./App/web/sponsor/kit-inventory/kit-expiration-report.ts","webpack:///./App/web/investigator/kitinventory/kit-inventory-storage.ts","webpack:///./App/web/corporate/osr-disclaimer.component.ts","webpack:///./App/web/corporate/kit-disclaimer.component.ts","webpack:///./App/web/corporate/corporate.module.ts","webpack:///./App/web/covance-date-picker/covance-date-picker.component.ts","webpack:///./App/web/covance-date-picker/covance-date-picker.module.ts","webpack:///./App/web/on-screen-results/standard-test-results/standart-test-result-query-parameters.ts","webpack:///./App/web/documents/models/report.ts","webpack:///./App/web/core/tooltip-remover.ts","webpack:///./App/web/covance-filter/filter-type/covance-filter-date-range-type.ts","webpack:///./App/web/sites/index.ts","webpack:///./App/web/activities/navigation-activity/navigation-actions.ts","webpack:///./App/web/admin/shared/protocol.ts","webpack:///./App/web/legend/legend.module.ts","webpack:///./App/web/covance-filter/filters-storage.ts","webpack:///./App/web/user/email-preferences/levels/email-preference-level-type.ts","webpack:///./App/web/user/email-preferences/email.ts","webpack:///./App/web/e-queries/models/e-query-attachment-download-link.ts","webpack:///./App/web/documents/models/dlLink.ts","webpack:///./App/web/view-history/index.ts","webpack:///./App/web/shared/tooltip-formatter.ts","webpack:///./App/web/covance-filter/filter-type/covance-filter-date-type.ts","webpack:///./App/web/subjects/lab-test-results-link-builder.ts","webpack:///./App/web/on-screen-results/index.ts","webpack:///./App/web/on-screen-results/standard-test-results/site-test-data-storage.ts","webpack:///./App/web/covance-filter/filter-type/covance-filter-chain-node-type.ts","webpack:///./App/web/shared/document-downloader/download-dialog.component.ts","webpack:///./App/web/user/email-preferences/email-address-form-dialog.component.ts","webpack:///./App/web/user/invalid-values.validator.ts","webpack:///./App/web/shared/activity-report/activity-report.ts","webpack:///./App/web/documents/models/default-report-sort.ts","webpack:///./App/web/covance-ag-grid/renderers/cell-tooltip-ag-renderer.component.ts","webpack:///./App/web/core/deserializers.ts","webpack:///./App/web/covance-ag-grid/renderers/header-group-renderer.component.ts","webpack:///./App/web/covance-ag-grid/renderers/header-tooltip-ag-renderer.component.ts","webpack:///./App/web/user/user-settings.ts","webpack:///./App/web/user/user.ts","webpack:///./App/web/on-screen-results/standard-test-results/standard-test-result-helpers.ts","webpack:///./App/web/grouping-selector/grouping-options.ts","webpack:///./App/web/shared/document-downloader/document-downloader.ts","webpack:///./App/web/shared/multiline-formatter.ts","webpack:///./App/web/shared/data-revision/data-revision-indicator.ts","webpack:///./App/web/sites/investigator-sites-storage.ts","webpack:///./App/web/documents/report-downloader.ts","webpack:///./App/web/on-screen-results/microbiology-data/microbiology-data.ts","webpack:///./App/web/on-screen-results/microbiology-data/microbiology-storage.ts","webpack:///./App/web/documents/language-link/language-link-ag-renderer.component.ts","webpack:///./App/web/shared/pendo-service/pendo-service.ts","webpack:///./App/web/covance-filter/filter-type/covance-filter-multiselect-type.ts","webpack:///./App/web/covance-filter/filter-type/covance-filter-select-type.ts","webpack:///./App/web/covance-filter/filter-type/covance-filter-number-range-type.ts","webpack:///./App/web/subjects/subjects-storage.ts","webpack:///./App/web/lab-test-results/index.ts","webpack:///./App/web/lab-test-results/lab-test-result.ts","webpack:///./App/web/subjects/lab-tests-grid-columns.ts","webpack:///./App/web/on-screen-results/standard-test-results/on-screen-results-filter-defenitions.ts","webpack:///./App/web/subjects/subject-lab-tests-data-source.ts","webpack:///./App/web/subjects/subject-natural-key.ts","webpack:///./App/web/activities/navigation-activity/handlers/investigator/investigator-default-activity-handler.ts","webpack:///./App/web/on-screen-results/standard-test-results/filtered-lab-test-results-storage.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/form-fields/shared/select.component.scss?f2a3","webpack:///./App/web/core/formatters.ts","webpack:///./App/web/covance-ag-grid/renderers/multicell-ag-renderer.component.ts","webpack:///./App/covance-material/materialDesignLite.ts","webpack:///./App/web/on-screen-results/test-result-ag-renderer.component.ts","webpack:///./App/web/on-screen-results/standard-test-results/test-title-ag-renderer.component.ts","webpack:///./App/web/on-screen-results/standard-test-results/test-visit-ag-renderer.component.ts","webpack:///./App/web/grouping-selector/grouping-selector.component.ts","webpack:///./App/web/grouping-selector/grouping.module.ts","webpack:///./App/web/on-screen-results/on-screen-results.ts","webpack:///./App/web/covance-filter/filter-type/covance-filter-age/covance-filter-age-type.ts","webpack:///./App/web/shared/multiline.component.ts","webpack:///./App/web/shared/covance-tooltip/covance-tooltip.component.ts","webpack:///./App/web/covance-select/covance-select.module.ts","webpack:///./App/web/shared/model-dialog/delete/delete-modal.component.ts","webpack:///./App/web/shared/covance-grid/column-settings/component/column-settings.component.ts","webpack:///./App/web/user/email-preferences/email-notification-frequency-option.ts","webpack:///./App/web/covance-ag-grid/renderers/actions-menu-ag-renderer-base.html","webpack:///./App/web/covance-ag-grid/renderers/actions-menu-ag-renderer-base.scss?33b0","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/document-info-dumb-components/document-info.component.scss?da09","webpack:///./App/web/covance-ag-grid/renderers/actions-menu-ag-renderer-base.ts","webpack:///./App/web/sites/selected-site-resolver.ts","webpack:///./App/web/subjects/subjects.module.ts","webpack:///./App/web/subjects/subject.ts","webpack:///./App/web/on-screen-results/osr-legend-generator.ts","webpack:///./App/web/documents/categories-storage.ts","webpack:///./App/web/on-screen-results/microbiology-data/microbiology-result-ag-renderer.component.ts","webpack:///./App/web/on-screen-results/microbiology-data/microbiology-grid-columns.ts","webpack:///./App/web/on-screen-results/microbiology-data/culture-group-ag-renderer.component.ts","webpack:///./App/web/on-screen-results/microbiology-data/culture-details-ag-renderer.component.ts","webpack:///./App/web/on-screen-results/microbiology-data/microbiology-columns.ts","webpack:///./App/web/on-screen-results/microbiology-data/microbiology.component.ts","webpack:///./App/web/on-screen-results/microbiology-data/microbiology.module.ts","webpack:///./App/web/on-screen-results/standard-test-results/standard-test-result-data.ts","webpack:///./App/web/on-screen-results/standard-test-results/standard-test-results-ag-group-renderer.component.ts","webpack:///./App/web/on-screen-results/standard-test-results/standard-test-results-sort.ts","webpack:///./App/web/on-screen-results/standard-test-results/standard-test-results.component.ts","webpack:///./App/web/charts/charts.module.ts","webpack:///./App/web/on-screen-results/standard-test-results/large-data-warning.component.ts","webpack:///./App/web/on-screen-results/standard-test-results/standard-test-results-main.module.ts","webpack:///./App/web/studies/study.ts","webpack:///./App/web/sites/site.ts","webpack:///./App/web/core/culture-info.ts","webpack:///./App/web/core/languages-store.ts","webpack:///./App/web/covance-ag-grid/filters/filter-header.component.ts","webpack:///./App/web/core/global-error-handler.ts","webpack:///./App/web/e-learning/e-learning-opener.ts","webpack:///./App/web/shared/covance-grid/column-settings/service/column-settings.service.ts","webpack:///./App/web/covance-filter/filter-type/covance-filter-checkbox-type.ts","webpack:///./App/web/covance-filter/filter-type/covance-filter-number-type.ts","webpack:///./App/web/covance-filter/filter-type/covance-filter-text-type.ts","webpack:///./App/web/covance-filter/filter-type/covance-filter-age-range-type.ts","webpack:///./App/web/covance-filter/filter-type/covance-filter-date-time-range/covance-filter-date-time-range-type.ts","webpack:///./App/web/on-screen-results/on-screen-results-renderer.ts","webpack:///./App/web/on-screen-results/microbiology-data/microbiology-data-storage.ts","webpack:///./App/web/corporate/terms-acceptance-storage.ts","webpack:///./App/web/charts/osr-legend-data.service.ts","webpack:///./App/web/charts/trends-subject-color-resolver.ts","webpack:///./App/web/charts/trends-chart-data-builder.ts","webpack:///./App/web/charts/band-renderer.ts","webpack:///./App/web/subjects/lab-tests-grid-columns-builder.ts","webpack:///./App/web/subjects/lab-tests-grid.component.ts","webpack:///./App/web/subjects/lab-tests-chart-svg-extensions.ts","webpack:///./App/web/subjects/lab-tests-chart.component.ts","webpack:///./App/web/covance-select/covance-select.component.ts","webpack:///./App/web/investigator/kitinventory/kit-inventory-detail.component.ts","webpack:///./App/web/documents/language-link/play-video-dialog.component.ts","webpack:///./App/web/documents/language-link/preview-dialog.component.ts","webpack:///./App/web/covance-ag-grid/filters/boolean-ag-floating-filter.component.ts","webpack:///./App/web/covance-ag-grid/filters/boolean-filter.component.ts","webpack:///./App/web/covance-ag-grid/renderers/bar-renderer.component.ts","webpack:///./App/web/covance-ag-grid/renderers/hidden-document-ag-renderer.component.ts","webpack:///./App/web/covance-ag-grid/renderers/link-ag-renderer.component.ts","webpack:///./App/web/covance-ag-grid/renderers/multiline-ag-renderer.component.ts","webpack:///./App/web/covance-ag-grid/renderers/test-link-ag-renderer.component.ts","webpack:///./App/web/covance-ag-grid/renderers/text-list-ag-renderer.component.ts","webpack:///./App/web/covance-ag-grid/renderers/view-history-ag-renderer.component.ts","webpack:///./App/web/covance-ag-grid/covance-ag-grid.component.ts","webpack:///./App/covance-material/mdl.directive.ts","webpack:///./App/covance-material/mdl-on-route-change.directive.ts","webpack:///./App/web/lab-test-results/unit-option.ts","webpack:///./App/web/shared/data-revision/data-revision-indicator.component.ts","webpack:///./App/web/global-popup/global-popup.component.ts","webpack:///./App/web/lab-test-results/test-result.ts","webpack:///./App/web/legend/chart-legend.component.ts","webpack:///./App/web/legend/grid-legend.component.ts","webpack:///./App/web/on-screen-results/standard-test-results/lab-trends-chart.component.ts","webpack:///./App/web/on-screen-results/standard-test-results/lab-boxplot-chart.component.ts","webpack:///./App/web/on-screen-results/standard-test-results/test-subject-ag-renderer.component.ts","webpack:///./App/web/covance-ag-grid/renderers/hidden-e-query-ag-renderer.component.ts","webpack:///./App/web/covance-ag-grid/renderers/detail-modal-popup-renderer.component.ts","webpack:///./App/web/covance-ag-grid/renderers/age-renderer/age-renderer.component.ts","webpack:///./App/web/covance-ag-grid/renderers/response-age-renderer/response-age-renderer.component.ts","webpack:///./App/web/user/email-preferences/email-notification-header-ag.component.ts","webpack:///./App/web/user/email-preferences/email-actions-menu-ag-renderer.component.ts","webpack:///./App/web/sites/sites-read.model.ts","webpack:///./App/web/subjects/lab-tests-grid-visit.component.ts","webpack:///./App/web/subjects/lab-tests-grid-visit-header.component.ts","webpack:///./App/web/covance-ag-grid/excel-styles.ts","webpack:///./App/web/on-screen-results/standard-test-results/osr-subject-columns-renderer.component.ts","webpack:///./App/web/shared/tabs.html","webpack:///./App/web/on-screen-results/standard-test-results/lab-chart.scss?b5a0","webpack:///./App/web/sponsor/documents/shared/documents.scss?2613","webpack:///./App/web/sponsor/redirection.component.html","webpack:///./App/web/sponsor/redirection.component.scss?f069","webpack:///./App/web/user/user-metadata.ts","webpack:///./App/web/core/none-value-helper.ts","webpack:///./App/web/core/core.module.ts","webpack:///./App/web/covance-ag-grid/covance-ag-grid-helper.ts","webpack:///./App/covance-material/covance-material.module.ts","webpack:///./App/web/global-popup/global-popup.module.ts","webpack:///./App/web/covance-filter/covance-chain-filter.ts","webpack:///./App/web/sites/sites.module.ts","webpack:///./App/web/lab-test-results/lab-test-results.module.ts","webpack:///./App/web/lab-test-results/lab-results-storage.ts","webpack:///./App/web/lab-test-results/lab-test-sort-info.ts","webpack:///./App/web/documents/models/reports-read-model.ts","webpack:///./App/web/activities/navigation-activity/navigation-activity.ts","webpack:///./App/web/investigator/kitinventory/kit.ts","webpack:///./App/web/user/email-preferences/email-preferences.component.ts","webpack:///./App/web/user/email-preferences/email-preferences-categories-storage.ts","webpack:///./App/web/user/user-settings-storage.ts","webpack:///./App/web/user/user-general-preferences-component.ts","webpack:///./App/web/subjects/age.ts","webpack:///./App/web/corporate/terms-popup.component.ts","webpack:///./App/web/corporate/user-accepted-terms-guard.ts","webpack:///./App/web/corporate/accept-terms-page.component.ts","webpack:///./App/web/corporate/portal-disclaimer-popup.component.ts","webpack:///./App/web/investigator/site-route-data-storage.ts","webpack:///./App/web/on-screen-results/standard-test-results/base-osr-chart.ts","webpack:///./App/web/charts/boxplot-chart-data-builder.ts","webpack:///./App/web/subjects/lab-tests-chart-data-generator.ts","webpack:///./App/web/investigator/microbiology/investigator-microbiology-storage.ts","webpack:///./App/web/investigator/microbiology/investigator-microbiology.component.ts","webpack:///./App/web/on-screen-results/standard-test-results/lab-test-results-filter-storage.ts","webpack:///./App/web/on-screen-results/standard-test-results/standard-test-results-main.component.ts","webpack:///./images/sample_tracking/report-delete.svg","webpack:///./App lazy namespace object","webpack:///./App/web/covance-ag-grid/renderers/covance-ag-grid-column-renderers.ts","webpack:///./App/web/covance-ag-grid/covance-ag-grid-column-comparators.ts","webpack:///./images/sample_tracking/hold-badge.svg","webpack:///./App/web/covance-filter/filter-type/filter-common-style.scss?7f89","webpack:///./App/web/on-screen-results/report-flag.ts","webpack:///./App/web/on-screen-results/test-result-ag-renderer.component.scss?3093","webpack:///./App/web/on-screen-results/standard-test-results/index.ts","webpack:///./App/web/investigator/base/documents-component-base.html","webpack:///./App/web/investigator/base/documents-component-base.scss?263c","webpack:///./App/web/sponsor/documents/shared/documents.html","webpack:///./App/web/general-documents/base/general-documents.component-base.scss?9ce6","webpack:///./App/web/sample-tracking/filter-samples/st-filter-samples.component.html","webpack:///./App/web/sample-tracking/filter-samples/st-filter-samples.component.scss?9b1b","webpack:///./images/sample_tracking/edit_pencil.svg","webpack:///./App/web/sample-management/registration/sample-details.component.html","webpack:///./App/web/sample-management/registration/sample-details.component.scss?dc55","webpack:///./images/sample_tracking/report-resume.svg","webpack:///./images/sample_tracking/trash-can.svg","webpack:///./App/web/sample-tracking/filter-samples/column/column-renderer.scss?439a","webpack:///./App/web/sample-tracking/reports/report-grid/common-report-grid.html","webpack:///./App/web/on-screen-results/microbiology-data/microbiology.routes.ts","webpack:///./App/web/on-screen-results/standard-test-results/standard-test-results-main.routes.ts","webpack:///./App/web/activities/navigation-activity/handlers/investigator/investigator-test-results-activity-handler.ts","webpack:///./App/web/view-history/models/acknowledgement.ts","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./App/web/authentication/timeout-warning.component.html","webpack:///./App/web/authentication/timeout-warning.component.scss?d604","webpack:///./App/web/authentication/timeout-warning.component.scss","webpack:///./App/web/app.html","webpack:///./App/app.scss?f3d3","webpack:///./App/app.scss","webpack:///./App/grid.scss?ed78","webpack:///./App/grid.scss","webpack:///./App/cvd3.scss?c3e1","webpack:///./App/cvd3.scss","webpack:///./App/web/covance-ag-grid/filters/boolean-filter.component.html","webpack:///./App/web/covance-ag-grid/filters/boolean-filter.component.scss?d519","webpack:///./App/web/covance-ag-grid/filters/boolean-filter.component.scss","webpack:///./App/web/covance-ag-grid/filters/filter-header.component.html","webpack:///./App/web/covance-ag-grid/filters/filter-header.component.scss?81f1","webpack:///./App/web/covance-ag-grid/filters/filter-header.component.scss","webpack:///./App/web/covance-ag-grid/renderers/bar-renderer.component.html","webpack:///./App/web/covance-ag-grid/renderers/bar-renderer.component.scss?8d4c","webpack:///./App/web/covance-ag-grid/renderers/bar-renderer.component.scss","webpack:///./App/web/covance-ag-grid/renderers/cell-tooltip-ag-renderer.component.html","webpack:///./App/web/covance-ag-grid/renderers/header-group-renderer.component.html","webpack:///./App/web/covance-ag-grid/renderers/header-tooltip-ag-renderer.component.html","webpack:///./App/web/covance-ag-grid/renderers/hidden-document-ag-renderer.component.html","webpack:///./App/web/covance-ag-grid/renderers/hidden-document-ag-renderer.component.scss?8e7d","webpack:///./App/web/covance-ag-grid/renderers/hidden-document-ag-renderer.component.scss","webpack:///./App/web/covance-ag-grid/renderers/link-ag-renderer.component.html","webpack:///./App/web/covance-ag-grid/renderers/link-ag-renderer.component.scss?d027","webpack:///./App/web/covance-ag-grid/renderers/link-ag-renderer.component.scss","webpack:///./App/web/covance-ag-grid/renderers/multicell-ag-renderer.component.html","webpack:///./App/web/covance-ag-grid/renderers/test-link-ag-renderer.component.html","webpack:///./App/web/covance-ag-grid/renderers/text-list-ag-renderer.component.html","webpack:///./App/web/covance-ag-grid/renderers/view-history-ag-renderer.component.html","webpack:///./App/web/covance-ag-grid/renderers/view-history-ag-renderer.component.scss?6ca8","webpack:///./App/web/covance-ag-grid/renderers/view-history-ag-renderer.component.scss","webpack:///./App/web/covance-ag-grid/covance-ag-grid.component.html","webpack:///./App/web/covance-ag-grid/covance-ag-grid.component.scss?ddb5","webpack:///./App/web/covance-ag-grid/covance-ag-grid.component.scss","webpack:///./App/web/shared/document-downloader/download-dialog.component.scss?0bb9","webpack:///./App/web/shared/document-downloader/download-dialog.component.scss","webpack:///./App/web/shared/document-downloader/download-dialog.component.html","webpack:///./App/web/user/user-settings.component.html","webpack:///./App/web/user/user-settings.component.scss?73d5","webpack:///./App/web/user/user-settings.component.scss","webpack:///./App/web/shared/unit-selector.component.html","webpack:///./App/web/shared/unit-selector.component.scss?5fd1","webpack:///./App/web/shared/unit-selector.component.scss","webpack:///./App/web/shared/footer.component.html","webpack:///./App/web/shared/footer.component.scss?eb01","webpack:///./App/web/shared/footer.component.scss","webpack:///./App/web/covance-dropdown-select/covance-dropdown-select.component.html","webpack:///./App/web/shared/data-revision/data-revision-indicator.component.html","webpack:///./App/web/shared/data-revision/data-revision-indicator.component.scss?9550","webpack:///./App/web/shared/data-revision/data-revision-indicator.component.scss","webpack:///./App/web/covance-select/covance-select.component.html","webpack:///./App/web/covance-select/covance-select.component.scss?813e","webpack:///./App/web/covance-select/covance-select.component.scss","webpack:///./App/web/shared/multiline.component.html","webpack:///./App/web/shared/multiline.component.scss?a9f1","webpack:///./App/web/shared/multiline.component.scss","webpack:///./App/web/shared/covance-tooltip/covance-tooltip.component.html","webpack:///./App/web/shared/covance-tooltip/covance-tooltip.component.scss?59f4","webpack:///./App/web/shared/covance-tooltip/covance-tooltip.component.scss","webpack:///./App/web/shared/clearable-textfield/clearable-textfield.component.html","webpack:///./App/web/shared/clearable-textfield/clearable-textfield.component.scss?5c29","webpack:///./App/web/shared/clearable-textfield/clearable-textfield.component.scss","webpack:///./App/web/shared/covance-expansion-panel/covance-expansion-panel.component.html","webpack:///./App/web/shared/covance-expansion-panel/covance-expansion-panel.component.scss?e6bc","webpack:///./App/web/shared/covance-expansion-panel/covance-expansion-panel.component.scss","webpack:///./App/web/shared/covance-grid/tracking-grid/tracking-grid.component.html","webpack:///./App/web/shared/covance-grid/tracking-grid/tracking-grid.component.scss?6224","webpack:///./App/web/shared/covance-grid/tracking-grid/tracking-grid.component.scss","webpack:///./App/web/shared/covance-grid/pagination/pagination.component.html","webpack:///./App/web/shared/covance-grid/pagination/pagination.component.scss?83a0","webpack:///./App/web/shared/covance-grid/pagination/pagination.component.scss","webpack:///./App/web/shared/spinner/spinner.component.html","webpack:///./App/web/shared/spinner/spinner.component.scss?dfd8","webpack:///./App/web/shared/spinner/spinner.component.scss","webpack:///./App/web/shared/time-frame-filter/timeframe-filter.component.html","webpack:///./App/web/shared/time-frame-filter/timeframe-filter.component.scss?5465","webpack:///./App/web/shared/time-frame-filter/timeframe-filter.component.scss","webpack:///./App/web/sample-tracking/reports/new-report/filters/select/select.component.html","webpack:///./App/web/sample-tracking/reports/new-report/filters/select/select.component.scss?8139","webpack:///./App/web/sample-tracking/reports/new-report/filters/select/select.component.scss","webpack:///./App/web/sample-tracking/service/search-bar/search-bar.component.html","webpack:///./App/web/sample-tracking/service/search-bar/search-bar.component.scss?3670","webpack:///./App/web/sample-tracking/service/search-bar/search-bar.component.scss","webpack:///./App/web/shared/model-dialog/delete/delete-modal.component.html","webpack:///./App/web/shared/model-dialog/delete/delete-modal.component.scss?5222","webpack:///./App/web/shared/model-dialog/delete/delete-modal.component.scss","webpack:///./App/web/shared/covance-grid/column-settings/component/column-settings.component.html","webpack:///./App/web/shared/covance-grid/column-settings/component/column-settings.component.scss?a9c8","webpack:///./App/web/shared/covance-grid/column-settings/component/column-settings.component.scss","webpack:///./images/sample_tracking/6_dot.svg","webpack:///./App/web/sample-tracking/sample-monitoring/notification-form/notification-form-field/notification-form-field.component.html","webpack:///./App/web/sample-tracking/sample-monitoring/notification-form/notification-form-field/notification-form-field.component.scss?4242","webpack:///./App/web/sample-tracking/sample-monitoring/notification-form/notification-form-field/notification-form-field.component.scss","webpack:///./App/web/sample-tracking/service/navigation-service/navigation-service.component.html","webpack:///./App/web/sample-tracking/service/navigation-service/navigation-service.component.scss?40b7","webpack:///./App/web/sample-tracking/service/navigation-service/navigation-service.component.scss","webpack:///./App/web/covance-ag-grid/ag-export.component.html","webpack:///./App/web/covance-ag-grid/ag-export.component.scss?9542","webpack:///./App/web/covance-ag-grid/ag-export.component.scss","webpack:///./App/web/covance-ag-grid/renderers/hidden-e-query-ag-renderer.component.html","webpack:///./App/web/covance-ag-grid/renderers/hidden-e-query-ag-renderer.component.scss?e9ac","webpack:///./App/web/covance-ag-grid/renderers/hidden-e-query-ag-renderer.component.scss","webpack:///./App/web/investigator/kitinventory/kit-inventory-detail.component.html","webpack:///./App/web/investigator/kitinventory/kit-inventory-detail.component.scss?0021","webpack:///./App/web/investigator/kitinventory/kit-inventory-detail.component.scss","webpack:///./App/web/covance-ag-grid/renderers/detail-modal-popup-renderer.component.html","webpack:///./App/web/covance-ag-grid/renderers/age-renderer/age-renderer.component.html","webpack:///./App/web/covance-ag-grid/renderers/age-renderer/age-renderer.component.scss?7201","webpack:///./App/web/covance-ag-grid/renderers/age-renderer/age-renderer.component.scss","webpack:///./App/web/covance-ag-grid/renderers/response-age-renderer/response-age-renderer.component.html","webpack:///./App/web/covance-ag-grid/renderers/response-age-renderer/response-age-renderer.component.scss?8c9d","webpack:///./App/web/covance-ag-grid/renderers/response-age-renderer/response-age-renderer.component.scss","webpack:///./App/web/global-popup/global-popup.component.html","webpack:///./App/web/global-popup/global-popup.component.scss?0b14","webpack:///./App/web/global-popup/global-popup.component.scss","webpack:///./App/web/user/email-preferences/email-notification-header-ag.component.html","webpack:///./App/web/user/email-preferences/email-notification-header-ag.component.scss?a808","webpack:///./App/web/user/email-preferences/email-notification-header-ag.component.scss","webpack:///./App/web/user/email-preferences/email-address-form-dialog.component.html","webpack:///./App/web/user/email-preferences/email-address-form-dialog.component.scss?8b4c","webpack:///./App/web/user/email-preferences/email-address-form-dialog.component.scss","webpack:///./App/web/covance-ag-grid/renderers/actions-menu-ag-renderer-base.scss","webpack:///./App/web/user/email-preferences/email-preferences.component.html","webpack:///./App/web/user/email-preferences/email-preferences.component.scss?841d","webpack:///./App/web/user/email-preferences/email-preferences.component.scss","webpack:///./App/web/user/user-general-preferences-component.html","webpack:///./App/web/user/user-general-preferences-component.scss?90a4","webpack:///./App/web/user/user-general-preferences-component.scss","webpack:///./App/web/covance-date-picker/covance-date-picker.component.html","webpack:///./App/web/covance-date-picker/covance-date-picker.component.scss?a1ee","webpack:///./App/web/covance-date-picker/covance-date-picker.component.scss","webpack:///./App/web/covance-filter/filter-name-dialog.component.scss?39fc","webpack:///./App/web/covance-filter/filter-name-dialog.component.scss","webpack:///./App/web/covance-filter/filter-name-dialog.component.html","webpack:///./App/web/covance-filter/covance-filter.component.html","webpack:///./App/web/covance-filter/covance-filter.component.scss?1cd3","webpack:///./App/web/covance-filter/covance-filter.component.scss","webpack:///./App/web/covance-filter/chain-node-dialog.component.html","webpack:///./App/web/covance-filter/chain-node-dialog.component.scss?4cea","webpack:///./App/web/covance-filter/chain-node-dialog.component.scss","webpack:///./App/web/covance-filter/covance-chain-filter.component.html","webpack:///./App/web/covance-filter/covance-chain-filter.component.scss?7dab","webpack:///./App/web/covance-filter/covance-chain-filter.component.scss","webpack:///./App/web/covance-filter/filter-type/covance-filter-text-type.component.html","webpack:///./App/web/covance-filter/filter-type/covance-filter-number-type.component.html","webpack:///./App/web/covance-filter/filter-type/covance-filter-number-range-type.component.html","webpack:///./App/web/covance-filter/filter-type/covance-filter-number-range-type.component.scss?635d","webpack:///./App/web/covance-filter/filter-type/covance-filter-number-range-type.component.scss","webpack:///./App/web/covance-filter/filter-type/covance-filter-date-type.component.html","webpack:///./App/web/covance-filter/filter-type/covance-filter-date-range-type.component.html","webpack:///./App/web/covance-filter/filter-type/covance-filter-date-range-type.component.scss?e9f8","webpack:///./App/web/covance-filter/filter-type/covance-filter-date-range-type.component.scss","webpack:///./App/web/covance-filter/filter-type/covance-filter-select-type.component.html","webpack:///./App/web/covance-filter/filter-type/filter-common-style.scss","webpack:///./App/web/covance-filter/filter-type/covance-filter-multiselect-type.component.html","webpack:///./App/web/covance-filter/filter-type/covance-filter-checkbox-type.component.html","webpack:///./App/web/covance-filter/filter-type/covance-filter-checkbox-type.component.scss?394f","webpack:///./App/web/covance-filter/filter-type/covance-filter-checkbox-type.component.scss","webpack:///./App/web/covance-filter/filter-type/covance-filter-chain-node-type.component.html","webpack:///./App/web/covance-filter/filter-type/covance-filter-chain-node-type.component.scss?993b","webpack:///./App/web/covance-filter/filter-type/covance-filter-chain-node-type.component.scss","webpack:///./App/web/covance-filter/filter-type/covance-filter-age-range-type.component.html","webpack:///./App/web/covance-filter/filter-type/covance-filter-age-range-type.component.scss?1c93","webpack:///./App/web/covance-filter/filter-type/covance-filter-age-range-type.component.scss","webpack:///./App/web/covance-filter/filter-type/covance-filter-age/covance-filter-age.component.html","webpack:///./App/web/covance-filter/filter-type/covance-filter-age/covance-filter-age.component.scss?1b95","webpack:///./App/web/covance-filter/filter-type/covance-filter-age/covance-filter-age.component.scss","webpack:///./App/web/covance-filter/filter-type/covance-filter-date-time-range/covance-filter-date-time-range-type.component.html","webpack:///./App/web/covance-filter/filter-type/covance-filter-date-time-range/covance-filter-date-time-range-type.component.scss?5d3d","webpack:///./App/web/covance-filter/filter-type/covance-filter-date-time-range/covance-filter-date-time-range-type.component.scss","webpack:///./App/web/user/email-preferences/levels/email-preference-level-select.component.html","webpack:///./App/web/user/email-preferences/levels/email-preference-level-select.component.scss?563f","webpack:///./App/web/user/email-preferences/levels/email-preference-level-select.component.scss","webpack:///./App/web/subjects/lab-tests-grid-visit.component.html","webpack:///./App/web/subjects/lab-tests-grid-visit.component.scss?8b26","webpack:///./App/web/subjects/lab-tests-grid-visit.component.scss","webpack:///./App/web/subjects/lab-tests-grid-visit-header.component.html","webpack:///./App/web/subjects/lab-tests-grid-visit-header.component.scss?89aa","webpack:///./App/web/subjects/lab-tests-grid-visit-header.component.scss","webpack:///./App/web/on-screen-results/microbiology-data/microbiology-result-ag-renderer.component.html","webpack:///./App/web/on-screen-results/test-result-ag-renderer.component.scss","webpack:///./App/web/on-screen-results/microbiology-data/culture-group-ag-renderer.component.html","webpack:///./App/web/on-screen-results/microbiology-data/culture-group-ag-renderer.component.scss?4d07","webpack:///./App/web/on-screen-results/microbiology-data/culture-group-ag-renderer.component.scss","webpack:///./App/web/on-screen-results/microbiology-data/culture-details-ag-renderer.component.html","webpack:///./App/web/on-screen-results/microbiology-data/culture-details-ag-renderer.component.scss?32b2","webpack:///./App/web/on-screen-results/microbiology-data/culture-details-ag-renderer.component.scss","webpack:///./App/web/on-screen-results/microbiology-data/microbiology.component.html","webpack:///./App/web/on-screen-results/microbiology-data/microbiology.component.scss?1a13","webpack:///./App/web/on-screen-results/microbiology-data/microbiology.component.scss","webpack:///./App/web/legend/chart-legend.component.html","webpack:///./App/web/legend/chart-legend.component.scss?2f10","webpack:///./App/web/legend/chart-legend.component.scss","webpack:///./App/web/legend/grid-legend.component.html","webpack:///./App/web/legend/grid-legend.component.scss?197b","webpack:///./App/web/legend/grid-legend.component.scss","webpack:///./App/web/corporate/terms-popup.component.html","webpack:///./App/web/corporate/terms-popup.component.scss?9611","webpack:///./App/web/corporate/terms-popup.component.scss","webpack:///./App/web/corporate/accept-terms-page.component.html","webpack:///./App/web/corporate/accept-terms-page.component.scss?e2bf","webpack:///./App/web/corporate/accept-terms-page.component.scss","webpack:///./App/web/corporate/osr-disclaimer.component.html","webpack:///./App/web/corporate/osr-disclaimer.component.scss?18dd","webpack:///./App/web/corporate/osr-disclaimer.component.scss","webpack:///./App/web/corporate/kit-disclaimer.component.html","webpack:///./App/web/corporate/kit-disclaimer.component.scss?fa67","webpack:///./App/web/corporate/kit-disclaimer.component.scss","webpack:///./App/web/corporate/portal-disclaimer-popup.component.html","webpack:///./App/web/corporate/portal-disclaimer-popup.component.scss?e50f","webpack:///./App/web/corporate/portal-disclaimer-popup.component.scss","webpack:///./App/web/investigator/microbiology/investigator-microbiology.component.html","webpack:///./App/web/investigator/microbiology/investigator-microbiology.component.scss?1513","webpack:///./App/web/investigator/microbiology/investigator-microbiology.component.scss","webpack:///./App/web/on-screen-results/standard-test-results/lab-trends-chart.component.html","webpack:///./App/web/on-screen-results/standard-test-results/lab-chart.scss","webpack:///./App/web/on-screen-results/standard-test-results/standard-test-results-main.component.html","webpack:///./App/web/on-screen-results/standard-test-results/standard-test-results-main.component.scss?9639","webpack:///./App/web/on-screen-results/standard-test-results/standard-test-results-main.component.scss","webpack:///./App/web/on-screen-results/standard-test-results/osr-subject-columns-renderer.component.html","webpack:///./App/web/on-screen-results/test-result-ag-renderer.component.html","webpack:///./App/web/on-screen-results/standard-test-results/standard-test-results-ag-group-renderer.component.html","webpack:///./App/web/on-screen-results/standard-test-results/standard-test-results-ag-group-renderer.component.scss?f03a","webpack:///./App/web/on-screen-results/standard-test-results/standard-test-results-ag-group-renderer.component.scss","webpack:///./App/web/on-screen-results/standard-test-results/test-title-ag-renderer.component.html","webpack:///./App/web/on-screen-results/standard-test-results/test-title-ag-renderer.component.scss?bad9","webpack:///./App/web/on-screen-results/standard-test-results/test-title-ag-renderer.component.scss","webpack:///./App/web/on-screen-results/standard-test-results/test-visit-ag-renderer.component.html","webpack:///./App/web/on-screen-results/standard-test-results/standard-test-results.component.html","webpack:///./App/web/on-screen-results/standard-test-results/standard-test-results.component.scss?108e","webpack:///./App/web/on-screen-results/standard-test-results/standard-test-results.component.scss","webpack:///./App/web/on-screen-results/standard-test-results/lab-boxplot-chart.component.html","webpack:///./App/web/on-screen-results/standard-test-results/test-subject-ag-renderer.component.html","webpack:///./App/web/on-screen-results/standard-test-results/test-subject-ag-renderer.component.scss?e0ab","webpack:///./App/web/on-screen-results/standard-test-results/test-subject-ag-renderer.component.scss","webpack:///./App/web/grouping-selector/grouping-selector.component.html","webpack:///./App/web/grouping-selector/grouping-selector.component.scss?3cce","webpack:///./App/web/grouping-selector/grouping-selector.component.scss","webpack:///./App/web/on-screen-results/standard-test-results/large-data-warning.component.html","webpack:///./App/web/on-screen-results/standard-test-results/large-data-warning.component.scss?6c69","webpack:///./App/web/on-screen-results/standard-test-results/large-data-warning.component.scss","webpack:///./App/web/subjects/lab-tests-grid.component.html","webpack:///./App/web/subjects/lab-tests-grid.component.scss?029d","webpack:///./App/web/subjects/lab-tests-grid.component.scss","webpack:///./App/web/subjects/lab-tests-chart.component.html","webpack:///./App/web/subjects/lab-tests-chart.component.scss?90a1","webpack:///./App/web/subjects/lab-tests-chart.component.scss","webpack:///./App/web/documents/language-link/play-video-dialog.component.html","webpack:///./App/web/documents/language-link/play-video-dialog.component.scss?9d16","webpack:///./App/web/documents/language-link/play-video-dialog.component.scss","webpack:///./App/web/documents/language-link/preview-dialog.component.html","webpack:///./App/web/documents/language-link/preview-dialog.component.scss?17cb","webpack:///./App/web/documents/language-link/preview-dialog.component.scss","webpack:///./App/web/documents/language-link/language-link-ag-renderer.component.html","webpack:///./App/web/documents/language-link/language-link-ag-renderer.component.scss?dfb1","webpack:///./App/web/documents/language-link/language-link-ag-renderer.component.scss","webpack:///./App/web/admin/activity-reports/protocol-accesses/admin-protocol-access-reports.component.html","webpack:///./App/web/admin/activity-reports/protocol-accesses/admin-protocol-access-reports.component.scss?7e42","webpack:///./App/web/admin/activity-reports/protocol-accesses/admin-protocol-access-reports.component.scss","webpack:///./App/web/admin/activity-reports/documents/admin-activity-report-documents.component.html","webpack:///./App/web/admin/activity-reports/documents/admin-activity-report-documents.component.scss?3920","webpack:///./App/web/admin/activity-reports/documents/admin-activity-report-documents.component.scss","webpack:///./App/web/admin/activity-reports/access-investigation/admin-access-investigation-reports.component.html","webpack:///./App/web/admin/activity-reports/access-investigation/admin-access-investigation-reports.component.scss?117c","webpack:///./App/web/admin/activity-reports/access-investigation/admin-access-investigation-reports.component.scss","webpack:///./App/web/layout/announcement-dialog.component.html","webpack:///./App/web/layout/announcement-dialog.component.scss?46e8","webpack:///./App/web/layout/announcement-dialog.component.scss","webpack:///./App/web/admin/announcements/announcement-edit-dialog.component.html","webpack:///./App/web/admin/announcements/announcement-edit-dialog.component.scss?1921","webpack:///./App/web/admin/announcements/announcement-edit-dialog.component.scss","webpack:///./App/web/admin/announcements/delete-announcement-dialog.component.html","webpack:///./App/web/admin/announcements/announcements-admin.component.html","webpack:///./App/web/admin/announcements/announcements-admin.component.scss?f3f5","webpack:///./App/web/admin/announcements/announcements-admin.component.scss","webpack:///./App/web/admin/common-links/common-link-editor.component.html","webpack:///./App/web/admin/common-links/common-link-editor.component.scss?48ca","webpack:///./App/web/admin/common-links/common-link-editor.component.scss","webpack:///./App/web/admin/common-links/common-links-grid.component.html","webpack:///./App/web/admin/common-links/common-links-grid.component.scss?01b9","webpack:///./App/web/admin/common-links/common-links-grid.component.scss","webpack:///./App/web/admin/shared/accession-search/accession-search.component.html","webpack:///./App/web/admin/shared/accession-search/accession-search.component.scss?2d62","webpack:///./App/web/admin/shared/accession-search/accession-search.component.scss","webpack:///./App/web/admin/e-query/user-emails-search/user-emails-search.component.html","webpack:///./App/web/admin/e-query/user-emails-search/user-emails-search.component.scss?bf4c","webpack:///./App/web/admin/e-query/user-emails-search/user-emails-search.component.scss","webpack:///./App/web/admin/protocol-activation/protocol-change-accessibility.component.html","webpack:///./App/web/admin/protocol-activation/protocol-change-accessibility.component.scss?2cc0","webpack:///./App/web/admin/protocol-activation/protocol-change-accessibility.component.scss","webpack:///./App/web/admin/protocol-activation/protocol-activation.component.html","webpack:///./App/web/admin/protocol-activation/protocol-activation.component.scss?6735","webpack:///./App/web/admin/protocol-activation/protocol-activation.component.scss","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/general/application-training-upload.component.html","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/general/general-communications-upload.component.html","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/general/general-communications-upload.component.scss?2708","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/general/general-communications-upload.component.scss","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/general/general-lab-manuals-upload.component.html","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/general/general-lab-manuals-upload.component.scss?a418","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/general/general-lab-manuals-upload.component.scss","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/general/general-training-materials-upload.component.html","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/general/general-training-materials-upload.component.scss?fb56","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/general/general-training-materials-upload.component.scss","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/site-specific/lab-manuals-upload.component.html","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/site-specific/lab-manuals-upload.component.scss?791e","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/site-specific/lab-manuals-upload.component.scss","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/site-specific/site-actions-upload.component.html","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/site-specific/site-actions-upload.component.scss?99f1","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/site-specific/site-actions-upload.component.scss","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/site-specific/site-communications-upload.component.html","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/site-specific/sponsor-communications-upload.component.html","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/site-specific/training-materials-upload.component.html","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/site-specific/training-materials-upload.component.scss?f9b5","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/site-specific/training-materials-upload.component.scss","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/file-edit/file-edit.component.html","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/file-edit/file-edit.component.scss?2835","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/file-edit/file-edit.component.scss","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/translations/document-translation-upload.component.html","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/translations/document-translation-upload.component.scss?c0c2","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/translations/document-translation-upload.component.scss","webpack:///./App/web/admin/upload-documents/hide-document.component.html","webpack:///./App/web/admin/upload-documents/hide-document.component.scss?fe34","webpack:///./App/web/admin/upload-documents/hide-document.component.scss","webpack:///./App/web/admin/upload-documents/admin-documents.component.html","webpack:///./App/web/admin/upload-documents/admin-documents.component.scss?d30a","webpack:///./App/web/admin/upload-documents/admin-documents.component.scss","webpack:///./App/web/admin/user-profiles/user-profiles.component.html","webpack:///./App/web/admin/user-profiles/user-profiles.component.scss?4304","webpack:///./App/web/admin/user-profiles/user-profiles.component.scss","webpack:///./App/web/header-title/general-header-title.component.html","webpack:///./App/web/header-title/general-header-title.component.scss?8035","webpack:///./App/web/header-title/general-header-title.component.scss","webpack:///./App/web/header-title/sponsor-header-title.component.html","webpack:///./App/web/header-title/sponsor-header-title.component.scss?222c","webpack:///./App/web/header-title/sponsor-header-title.component.scss","webpack:///./App/web/header-title/investigator-header-title.component.html","webpack:///./App/web/header-title/investigator-header-title.component.scss?39c0","webpack:///./App/web/header-title/investigator-header-title.component.scss","webpack:///./App/web/documents/documents-grid.component.html","webpack:///./App/web/documents/documents-grid.component.scss?b99b","webpack:///./App/web/documents/documents-grid.component.scss","webpack:///./App/web/documents/reports-grid.component.html","webpack:///./App/web/documents/reports-grid.component.scss?ef63","webpack:///./App/web/documents/reports-grid.component.scss","webpack:///./App/web/documents/filtered-grid.component.html","webpack:///./App/web/documents/filtered-grid.component.scss?fd6e","webpack:///./App/web/documents/filtered-grid.component.scss","webpack:///./App/web/navigation/navigation.component.html","webpack:///./App/web/navigation/navigation.component.scss?33ae","webpack:///./App/web/navigation/navigation.component.scss","webpack:///./App/web/investigator/base/documents-tabs-categories-component-base.html","webpack:///./App/web/investigator/base/documents-component-base.scss","webpack:///./App/web/investigator/lab-reports.component.html","webpack:///./App/web/investigator/lab-reports.component.scss?1d38","webpack:///./App/web/investigator/lab-reports.component.scss","webpack:///./App/web/investigator/kitinventory/kit-inventory.component.html","webpack:///./App/web/investigator/kitinventory/kit-inventory.component.scss?6e39","webpack:///./App/web/investigator/kitinventory/kit-inventory.component.scss","webpack:///./App/web/investigator/navigation/investigator-navigation.component.html","webpack:///./App/web/investigator/navigation/investigator-navigation.component.scss?35b2","webpack:///./App/web/investigator/navigation/investigator-navigation.component.scss","webpack:///./App/web/investigator/subjects/subjects-root.component.html","webpack:///./App/web/investigator/subjects/subjects-navigation.component.html","webpack:///./App/web/investigator/subjects/subjects-navigation.component.scss?6eb1","webpack:///./App/web/investigator/subjects/subjects-navigation.component.scss","webpack:///./App/web/e-queries/external-user-e-queries-grid/external-user-e-queries-grid.component.html","webpack:///./App/web/e-queries/external-user-e-queries-grid/external-user-e-queries-grid.component.scss?089e","webpack:///./App/web/e-queries/external-user-e-queries-grid/external-user-e-queries-grid.component.scss","webpack:///./App/web/simple-text-field/simple-text-field.component.html","webpack:///./App/web/simple-text-field/simple-text-field.component.scss?0335","webpack:///./App/web/simple-text-field/simple-text-field.component.scss","webpack:///./App/web/e-queries/e-query-details/e-queries-free-text-question-input/e-queries-free-text-question.component.html","webpack:///./App/web/e-queries/e-query-details/e-queries-free-text-question-input/e-queries-free-text-question.component.scss?279d","webpack:///./App/web/e-queries/e-query-details/e-queries-free-text-question-input/e-queries-free-text-question.component.scss","webpack:///./App/web/e-queries/accession-info/e-query-accession-info.component.html","webpack:///./App/web/e-queries/accession-info/e-query-accession-info.component.scss?30cd","webpack:///./App/web/e-queries/accession-info/e-query-accession-info.component.scss","webpack:///./App/web/e-queries/e-query-details/attachments/e-query-attachments.component.html","webpack:///./App/web/e-queries/e-query-details/attachments/e-query-attachments.component.scss?74a9","webpack:///./App/web/e-queries/e-query-details/attachments/e-query-attachments.component.scss","webpack:///./App/web/e-queries/e-query-details/e-query-details-text-field/e-query-details-text-field.component.html","webpack:///./App/web/e-queries/e-query-details/e-query-details-text-field/e-query-details-text-field.component.scss?efd8","webpack:///./App/web/e-queries/e-query-details/e-query-details-text-field/e-query-details-text-field.component.scss","webpack:///./App/web/covance-file-upload/covance-file-upload.component.html","webpack:///./App/web/covance-file-upload/covance-file-upload.component.scss?43f9","webpack:///./App/web/covance-file-upload/covance-file-upload.component.scss","webpack:///./App/web/covance-file-upload/uploaded-file-errors.component.html","webpack:///./App/web/covance-file-upload/uploaded-file-errors.component.scss?b757","webpack:///./App/web/covance-file-upload/uploaded-file-errors.component.scss","webpack:///./App/web/e-queries/e-query-details/e-query-cc-question/e-query-c-c-question.component.html","webpack:///./App/web/e-queries/e-query-details/e-query-cc-question/e-query-c-c-question.component.scss?ee1d","webpack:///./App/web/e-queries/e-query-details/e-query-cc-question/e-query-c-c-question.component.scss","webpack:///./App/web/e-queries/e-query-details/open-questions/open-questions.component.html","webpack:///./App/web/e-queries/e-query-details/open-questions/open-questions.component.scss?2f26","webpack:///./App/web/e-queries/e-query-details/open-questions/open-questions.component.scss","webpack:///./App/web/e-queries/e-query-details/e-query-cc-question-response/e-query-c-c-question-response.component.html","webpack:///./App/web/e-queries/e-query-details/e-query-cc-question-response/e-query-c-c-question-response.component.scss?c791","webpack:///./App/web/e-queries/e-query-details/e-query-cc-question-response/e-query-c-c-question-response.component.scss","webpack:///./App/web/e-queries/e-query-details/e-query-comments/e-query-comments.component.html","webpack:///./App/web/e-queries/e-query-details/e-query-comments/e-query-comments.component.scss?f573","webpack:///./App/web/e-queries/e-query-details/e-query-comments/e-query-comments.component.scss","webpack:///./App/web/e-queries/e-query-attachments-list/e-query-attachments-list.component.html","webpack:///./App/web/e-queries/e-query-attachments-list/e-query-attachments-list.component.scss?cbfc","webpack:///./App/web/e-queries/e-query-attachments-list/e-query-attachments-list.component.scss","webpack:///./App/web/e-queries/e-query-details/external-user-e-query-content-block/external-user-e-query-content-block.component.html","webpack:///./App/web/e-queries/e-query-details/external-user-e-query-content-block/external-user-e-query-content-block.component.scss?bfcb","webpack:///./App/web/e-queries/e-query-details/external-user-e-query-content-block/external-user-e-query-content-block.component.scss","webpack:///./App/web/investigator/e-queries/investigator-e-query/e-query-details/investigator-e-query-details-dialog.component.html","webpack:///./App/web/investigator/e-queries/investigator-e-query/e-query-details/investigator-e-query-details-dialog.component.scss?9af1","webpack:///./App/web/investigator/e-queries/investigator-e-query/e-query-details/investigator-e-query-details-dialog.component.scss","webpack:///./App/web/investigator/e-queries/investigator-e-query/awaiting/investigator-awaiting-e-queries.component.html","webpack:///./App/web/investigator/e-queries/investigator-e-query/awaiting/investigator-awaiting-e-queries.component.scss?30cd","webpack:///./App/web/investigator/e-queries/investigator-e-query/awaiting/investigator-awaiting-e-queries.component.scss","webpack:///./App/web/investigator/e-queries/investigator-e-query/submitted/investigator-submitted-e-queries.component.html","webpack:///./App/web/investigator/e-queries/investigator-e-query/submitted/investigator-submitted-e-queries.component.scss?a940","webpack:///./App/web/investigator/e-queries/investigator-e-query/submitted/investigator-submitted-e-queries.component.scss","webpack:///./App/web/investigator/e-queries/investigator-e-query/investigator-e-query-tabs.component.html","webpack:///./App/web/investigator/e-queries/investigator-e-query/investigator-e-query-tabs.component.scss?d576","webpack:///./App/web/investigator/e-queries/investigator-e-query/investigator-e-query-tabs.component.scss","webpack:///./App/web/investigator/e-queries/investigator-e-query/investigator-e-query-grid.component.html","webpack:///./App/web/investigator/e-queries/investigator-e-query/investigator-e-query-grid.component.scss?8490","webpack:///./App/web/investigator/e-queries/investigator-e-query/investigator-e-query-grid.component.scss","webpack:///./App/web/notification-bar/notification-icon.component.html","webpack:///./App/web/notification-bar/notification-icon.component.scss?e17a","webpack:///./App/web/notification-bar/notification-icon.component.scss","webpack:///./App/web/notification-bar/notification-bar.component.html","webpack:///./App/web/toolbar-menu/toolbar-menu.component.html","webpack:///./App/web/toolbar-menu/toolbar-menu.component.scss?9ce8","webpack:///./App/web/toolbar-menu/toolbar-menu.component.scss","webpack:///./App/web/layout/header.component.html","webpack:///./App/web/layout/header.component.scss?85f3","webpack:///./App/web/layout/header.component.scss","webpack:///./App/web/layout/announcements.component.html","webpack:///./App/web/layout/announcements.component.scss?43e6","webpack:///./App/web/layout/announcements.component.scss","webpack:///./App/web/layout/common-links.component.html","webpack:///./App/web/layout/common-links.component.scss?08aa","webpack:///./App/web/layout/common-links.component.scss","webpack:///./App/web/layout/workspace-level-layout.component.html","webpack:///./App/web/layout/workspace-level-layout.component.scss?f4b8","webpack:///./App/web/layout/workspace-level-layout.component.scss","webpack:///./App/web/layout/dashboard-level-layout.component.html","webpack:///./App/web/layout/dashboard-level-layout.component.scss?578b","webpack:///./App/web/layout/dashboard-level-layout.component.scss","webpack:///./App/web/admin/navigation/admin-navigation.component.html","webpack:///./App/web/admin/navigation/admin-navigation.component.scss?caf1","webpack:///./App/web/admin/navigation/admin-navigation.component.scss","webpack:///./App/web/admin/audit-trail-export/audit-trail-export.component.html","webpack:///./App/web/admin/audit-trail-export/audit-trail-export.component.scss?134f","webpack:///./App/web/admin/audit-trail-export/audit-trail-export.component.scss","webpack:///./App/web/admin/kit-inventory/admin-kit-inventory.component.html","webpack:///./App/web/admin/kit-inventory/admin-kit-inventory.component.scss?f8eb","webpack:///./App/web/admin/kit-inventory/admin-kit-inventory.component.scss","webpack:///./App/web/admin/kit-inventory/admin-kit-inventory-onhand.component.html","webpack:///./App/web/admin/kit-inventory/admin-kit-inventory-onhand.component.scss?2c8d","webpack:///./App/web/admin/kit-inventory/admin-kit-inventory-onhand.component.scss","webpack:///./App/web/admin/kit-inventory/admin-kit-inventory-expiration.component.html","webpack:///./App/web/admin/kit-inventory/admin-kit-inventory-expiration.component.scss?057b","webpack:///./App/web/admin/kit-inventory/admin-kit-inventory-expiration.component.scss","webpack:///./App/web/audit-trail/audit-trail-reason.component.html","webpack:///./App/web/audit-trail/audit-trail-reason.component.scss?e7d9","webpack:///./App/web/audit-trail/audit-trail-reason.component.scss","webpack:///./App/web/admin/e-query/e-query-details/coordinator-e-query-details-dialog.component.html","webpack:///./App/web/admin/e-query/e-query-details/coordinator-e-query-details-dialog.component.scss?3f81","webpack:///./App/web/admin/e-query/e-query-details/coordinator-e-query-details-dialog.component.scss","webpack:///./App/web/admin/e-query/e-query-summary/admin-e-query-summary.component.html","webpack:///./App/web/admin/e-query/e-query-summary/admin-e-query-summary.component.scss?d295","webpack:///./App/web/admin/e-query/e-query-summary/admin-e-query-summary.component.scss","webpack:///./App/web/admin/e-query/e-query-hide-unhide/hide-dialog/e-query-hide-dialog.component.html","webpack:///./App/web/admin/e-query/e-query-hide-unhide/hide-dialog/e-query-hide-dialog.component.scss?60df","webpack:///./App/web/admin/e-query/e-query-hide-unhide/hide-dialog/e-query-hide-dialog.component.scss","webpack:///./App/web/admin/e-query/e-query-hide-unhide/admin-e-query-hide.component.html","webpack:///./App/web/admin/e-query/e-query-hide-unhide/admin-e-query-hide.component.scss?9f10","webpack:///./App/web/admin/e-query/e-query-hide-unhide/admin-e-query-hide.component.scss","webpack:///./App/web/admin/e-query/admin-escalations/new-escalation-dialog/new-escalation-dialog.component.html","webpack:///./App/web/admin/e-query/admin-escalations/new-escalation-dialog/new-escalation-dialog.component.scss?ea13","webpack:///./App/web/admin/e-query/admin-escalations/new-escalation-dialog/new-escalation-dialog.component.scss","webpack:///./App/web/admin/e-query/admin-escalations/delete-escalation-dialog/delete-escalation-dialog.component.html","webpack:///./App/web/admin/e-query/admin-escalations/delete-escalation-dialog/delete-escalation-dialog.component.scss?9972","webpack:///./App/web/admin/e-query/admin-escalations/delete-escalation-dialog/delete-escalation-dialog.component.scss","webpack:///./App/web/admin/e-query/admin-escalations/escalation-removal-button-ag-renderer.component.html","webpack:///./App/web/admin/e-query/admin-escalations/escalation-removal-button-ag-renderer.component.scss?f07c","webpack:///./App/web/admin/e-query/admin-escalations/escalation-removal-button-ag-renderer.component.scss","webpack:///./App/web/admin/e-query/admin-escalations/admin-escalation-emails.component.html","webpack:///./App/web/admin/e-query/admin-escalations/admin-escalation-emails.component.scss?10ad","webpack:///./App/web/admin/e-query/admin-escalations/admin-escalation-emails.component.scss","webpack:///./App/web/admin/e-query/e-query-tabs/admin-e-query-tabs.component.html","webpack:///./App/web/admin/e-query/e-query-tabs/admin-e-query-tabs.component.scss?03fd","webpack:///./App/web/admin/e-query/e-query-tabs/admin-e-query-tabs.component.scss","webpack:///./App/web/admin/e-query/e-query-tabs/coordinator-e-query-tabs.component.html","webpack:///./App/web/admin/e-query/e-query-tabs/coordinator-e-query-tabs.component.scss?2bfa","webpack:///./App/web/admin/e-query/e-query-tabs/coordinator-e-query-tabs.component.scss","webpack:///./App/web/admin/e-query/prefiled-query-edit/prefilled-e-query-create-form.component.html","webpack:///./App/web/admin/e-query/prefiled-query-edit/prefilled-e-query-create-form.component.scss?0488","webpack:///./App/web/admin/e-query/prefiled-query-edit/prefilled-e-query-create-form.component.scss","webpack:///./App/web/admin/e-query/usage-reports/admin-usage-e-query-report.component.html","webpack:///./App/web/admin/e-query/usage-reports/admin-usage-e-query-report.component.scss?3a09","webpack:///./App/web/admin/e-query/usage-reports/admin-usage-e-query-report.component.scss","webpack:///./App/web/admin/activity-reports/email-alerts/admin-email-notification-alerts-reports.component.html","webpack:///./App/web/admin/activity-reports/email-alerts/admin-email-notification-alerts-reports.component.scss?4a37","webpack:///./App/web/admin/activity-reports/email-alerts/admin-email-notification-alerts-reports.component.scss","webpack:///./App/web/admin/edit-default-columns/column-form/admin-column-form.component.html","webpack:///./App/web/admin/edit-default-columns/column-form/admin-column-form.component.scss?7c78","webpack:///./App/web/admin/edit-default-columns/column-form/admin-column-form.component.scss","webpack:///./App/web/admin/edit-default-columns/edit-columns.component.html","webpack:///./App/web/admin/edit-default-columns/edit-columns.component.scss?ccf1","webpack:///./App/web/admin/edit-default-columns/edit-columns.component.scss","webpack:///./App/web/sponsor/documents/site-documents.component.scss?ccc4","webpack:///./App/web/sponsor/documents/site-documents.component.scss","webpack:///./App/web/sponsor/documents/site-documents.component.html","webpack:///./App/web/sponsor/navigation/sponsor-navigation.component.html","webpack:///./App/web/sponsor/navigation/sponsor-navigation.component.scss?d8fe","webpack:///./App/web/sponsor/navigation/sponsor-navigation.component.scss","webpack:///./App/web/sponsor/documents/shared/documents.scss","webpack:///./App/web/sponsor/documents/documents-by-child.component.html","webpack:///./App/web/sponsor/activity-reports/sponsor-protocol-access-reports.component.html","webpack:///./App/web/sponsor/activity-reports/sponsor-activity-report-documents.component.html","webpack:///./App/web/sponsor/activity-reports/sponsor-activity-report-documents.component.scss?72cb","webpack:///./App/web/sponsor/activity-reports/sponsor-activity-report-documents.component.scss","webpack:///./App/web/sponsor/lab-results/sponsor-trend-analysis.component.html","webpack:///./App/web/sponsor/lab-results/sponsor-trend-analysis.component.scss?c978","webpack:///./App/web/sponsor/lab-results/sponsor-trend-analysis.component.scss","webpack:///./App/web/sponsor/lab-results/sponsor-trends.component.html","webpack:///./App/web/sponsor/sites/study-sites.component.html","webpack:///./App/web/sponsor/sites/study-sites.component.scss?e709","webpack:///./App/web/sponsor/sites/study-sites.component.scss","webpack:///./App/web/sponsor/subjects/study-subjects.component.html","webpack:///./App/web/sponsor/subjects/study-subjects.component.scss?b012","webpack:///./App/web/sponsor/subjects/study-subjects.component.scss","webpack:///./App/web/sponsor/subjects/sponsor-subject.component.html","webpack:///./App/web/sponsor/subjects/sponsor-subject.component.scss?7323","webpack:///./App/web/sponsor/subjects/sponsor-subject.component.scss","webpack:///./App/web/sponsor/lab-results/sponsor-test-results.component.html","webpack:///./App/web/sponsor/lab-results/sponsor-test-results.component.scss?026a","webpack:///./App/web/sponsor/lab-results/sponsor-test-results.component.scss","webpack:///./App/web/sponsor/lab-results/sponsor-standard-test-results.component.html","webpack:///./App/web/sponsor/lab-results/sponsor-standard-test-results.component.scss?0faa","webpack:///./App/web/sponsor/lab-results/sponsor-standard-test-results.component.scss","webpack:///./App/web/sponsor/lab-results/sponsor-microbiology.component.html","webpack:///./App/web/sponsor/lab-results/sponsor-microbiology.component.scss?902a","webpack:///./App/web/sponsor/lab-results/sponsor-microbiology.component.scss","webpack:///./App/web/sponsor/documents/site-documents-grid.component.html","webpack:///./App/web/sponsor/redirection.component.scss","webpack:///./App/web/sponsor/lab-results/sponsor-boxplot.component.html","webpack:///./App/web/sponsor/documents/lab-reports/sponsor-lab-reports.component.html","webpack:///./App/web/sponsor/documents/lab-reports/sponsor-lab-reports.component.scss?e083","webpack:///./App/web/sponsor/documents/lab-reports/sponsor-lab-reports.component.scss","webpack:///./App/web/sponsor/kit-inventory/sponsor-kit-inventory.component.html","webpack:///./App/web/sponsor/kit-inventory/sponsor-kit-inventory.component.scss?f013","webpack:///./App/web/sponsor/kit-inventory/sponsor-kit-inventory.component.scss","webpack:///./App/web/sponsor/kit-inventory/sponsor-kit-inventory-onhand.component.html","webpack:///./App/web/sponsor/kit-inventory/sponsor-kit-inventory-onhand.component.scss?c037","webpack:///./App/web/sponsor/kit-inventory/sponsor-kit-inventory-onhand.component.scss","webpack:///./App/web/sponsor/kit-inventory/sponsor-kit-inventory-expiration.component.html","webpack:///./App/web/sponsor/kit-inventory/sponsor-kit-inventory-expiration.component.scss?933f","webpack:///./App/web/sponsor/kit-inventory/sponsor-kit-inventory-expiration.component.scss","webpack:///./App/web/sponsor/e-queries/sponsor-e-query-tabs/sponsor-e-query-tabs.component.html","webpack:///./App/web/sponsor/e-queries/sponsor-e-query-tabs/sponsor-e-query-tabs.component.scss?3e9a","webpack:///./App/web/sponsor/e-queries/sponsor-e-query-tabs/sponsor-e-query-tabs.component.scss","webpack:///./App/web/sponsor/e-queries/awaiting/sponsor-awaiting-e-queries.component.html","webpack:///./App/web/sponsor/e-queries/awaiting/sponsor-awaiting-e-queries.component.scss?5b2d","webpack:///./App/web/sponsor/e-queries/awaiting/sponsor-awaiting-e-queries.component.scss","webpack:///./App/web/sponsor/e-queries/submitted/sponsor-submitted-e-queries.component.html","webpack:///./App/web/sponsor/e-queries/submitted/sponsor-submitted-e-queries.component.scss?e934","webpack:///./App/web/sponsor/e-queries/submitted/sponsor-submitted-e-queries.component.scss","webpack:///./App/web/sponsor/tableau/tableau-dialog.component.html","webpack:///./App/web/sponsor/tableau/tableau-dialog.component.scss?5d7b","webpack:///./App/web/sponsor/tableau/tableau-dialog.component.scss","webpack:///./App/web/sponsor/tableau/tableau.component.html","webpack:///./App/web/sponsor/tableau/tableau.component.scss?18b7","webpack:///./App/web/sponsor/tableau/tableau.component.scss","webpack:///./App/web/sponsor/tableau/fonts/SourceSerifPro-Light.woff2","webpack:///./images/tableaubanner.png","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/site-specific/upload-error-dialog.component.html","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/site-specific/upload-error-dialog.component.scss?b763","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/site-specific/upload-error-dialog.component.scss","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/site-specific/site-communications-mass-upload.component.html","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/site-specific/site-communications-mass-upload.component.scss?13f8","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/site-specific/site-communications-mass-upload.component.scss","webpack:///./App/web/general-documents/general-documents.component.html","webpack:///./App/web/general-documents/base/general-documents.component-base.scss","webpack:///./App/web/mail-links/mail-links.component.html","webpack:///./App/web/mail-links/mail-links.component.scss?2d2c","webpack:///./App/web/mail-links/mail-links.component.scss","webpack:///./App/web/user-emulation/user-emulation-group-renderer.component.html","webpack:///./App/web/user-emulation/user-emulation-group-renderer.component.scss?5fec","webpack:///./App/web/user-emulation/user-emulation-group-renderer.component.scss","webpack:///./App/web/user-emulation/user-emulation.component.html","webpack:///./App/web/user-emulation/user-emulation.component.scss?90cd","webpack:///./App/web/user-emulation/user-emulation.component.scss","webpack:///./App/web/general-documents/general-documents-tabs.component.html","webpack:///./App/web/general-documents/general-documents-tabs.component.scss?8791","webpack:///./App/web/general-documents/general-documents-tabs.component.scss","webpack:///./App/web/general-documents/general-documents-with-categories.component.html","webpack:///./App/web/dashboard/dashboard-container.component.html","webpack:///./App/web/sponsor/e-queries/e-query-details/sponsor-e-query-details-dialog.component.html","webpack:///./App/web/sponsor/e-queries/e-query-details/sponsor-e-query-details-dialog.component.scss?51e3","webpack:///./App/web/sponsor/e-queries/e-query-details/sponsor-e-query-details-dialog.component.scss","webpack:///./App/web/sponsor-dashboard/study-card.component.html","webpack:///./App/web/sponsor-dashboard/study-card.component.scss?4c98","webpack:///./App/web/sponsor-dashboard/study-card.component.scss","webpack:///./App/web/sponsor-dashboard/sponsor-study-list.component.html","webpack:///./App/web/sponsor-dashboard/sponsor-study-list.component.scss?c37f","webpack:///./App/web/sponsor-dashboard/sponsor-study-list.component.scss","webpack:///./App/web/admin-dashboard/admin-dashboard.component.html","webpack:///./App/web/admin-dashboard/admin-dashboard.component.scss?08d6","webpack:///./App/web/admin-dashboard/admin-dashboard.component.scss","webpack:///./App/web/investigator-dashboard/sites-list.component.html","webpack:///./App/web/investigator-dashboard/sites-list.component.scss?d1bf","webpack:///./App/web/investigator-dashboard/sites-list.component.scss","webpack:///./App/web/investigator-dashboard/site-card.component.html","webpack:///./App/web/investigator-dashboard/site-card.component.scss?cf3b","webpack:///./App/web/investigator-dashboard/site-card.component.scss","webpack:///./App/web/authentication/login-page.component.html","webpack:///./App/web/authentication/login-page.component.scss?1370","webpack:///./App/web/authentication/login-page.component.scss","webpack:///./App/web/authentication/logout-page.component.html","webpack:///./App/web/authentication/logout-page.component.scss?4758","webpack:///./App/web/authentication/logout-page.component.scss","webpack:///./App/web/sample-tracking/navigation/sample-tracking-navigation.component.html","webpack:///./App/web/sample-tracking/navigation/sample-tracking-navigation.component.scss?a49f","webpack:///./App/web/sample-tracking/navigation/sample-tracking-navigation.component.scss","webpack:///./App/web/sample-tracking/home/st-workspace-level-layout.component.html","webpack:///./App/web/sample-tracking/home/st-workspace-level-layout.component.scss?b46d","webpack:///./App/web/sample-tracking/home/st-workspace-level-layout.component.scss","webpack:///./App/web/sample-tracking/dashboard/sample-tracking-dashboard.component.html","webpack:///./App/web/sample-tracking/dashboard/sample-tracking-dashboard.component.scss?6335","webpack:///./App/web/sample-tracking/dashboard/sample-tracking-dashboard.component.scss","webpack:///./App/web/sample-tracking/user-preferences/sample-tracking-preferences.component.html","webpack:///./App/web/sample-tracking/user-preferences/sample-tracking-preferences.component.scss?ee9b","webpack:///./App/web/sample-tracking/user-preferences/sample-tracking-preferences.component.scss","webpack:///./App/web/sample-tracking/tracking-overview/visit-overview/visit-overview.component.html","webpack:///./App/web/sample-tracking/tracking-overview/visit-overview/visit-overview.component.scss?b57e","webpack:///./App/web/sample-tracking/tracking-overview/visit-overview/visit-overview.component.scss","webpack:///./App/web/sample-tracking/tracking-overview/sample-overview/sample-overview.component.html","webpack:///./App/web/sample-tracking/tracking-overview/sample-overview/sample-overview.component.scss?a8a0","webpack:///./App/web/sample-tracking/tracking-overview/sample-overview/sample-overview.component.scss","webpack:///./App/web/site-shipping-tool/shared/confirm-dialog/confirm-dialog.component.html","webpack:///./App/web/site-shipping-tool/shared/confirm-dialog/confirm-dialog.component.scss?b5f0","webpack:///./App/web/site-shipping-tool/shared/confirm-dialog/confirm-dialog.component.scss","webpack:///./App/web/sample-tracking/dashboard/overview-dashboard/overview-dashboard.component.html","webpack:///./App/web/sample-tracking/dashboard/overview-dashboard/overview-dashboard.component.scss?f547","webpack:///./App/web/sample-tracking/dashboard/overview-dashboard/overview-dashboard.component.scss","webpack:///./App/web/sample-tracking/filter-samples/st-filter-samples.component.scss","webpack:///./App/web/sample-tracking/reports/sample-tracking-reports.component.html","webpack:///./App/web/sample-tracking/reports/sample-tracking-reports.component.scss?e0a5","webpack:///./App/web/sample-tracking/reports/sample-tracking-reports.component.scss","webpack:///./App/web/sample-tracking/reports/view-reports/generated-reports/view-generated-reports.component.html","webpack:///./App/web/sample-tracking/reports/view-reports/generated-reports/view-generated-reports.component.scss?0053","webpack:///./App/web/sample-tracking/reports/view-reports/generated-reports/view-generated-reports.component.scss","webpack:///./App/web/sample-tracking/reports/view-reports/scheduled-reports/view-scheduled-reports.component.html","webpack:///./App/web/sample-tracking/reports/view-reports/scheduled-reports/view-scheduled-reports.component.scss?f416","webpack:///./App/web/sample-tracking/reports/view-reports/scheduled-reports/view-scheduled-reports.component.scss","webpack:///./App/web/sample-tracking/reports/sample-tracking-report-loader.html","webpack:///./App/web/sample-tracking/reports/new-report/new-report.component.html","webpack:///./App/web/sample-tracking/reports/new-report/new-report.component.scss?4462","webpack:///./App/web/sample-tracking/reports/new-report/new-report.component.scss","webpack:///./App/web/sample-tracking/tracking-overview/subject-search-overview/subject-search-overview.component.html","webpack:///./App/web/sample-tracking/tracking-overview/subject-search-overview/subject-search-overview.component.scss?33cd","webpack:///./App/web/sample-tracking/tracking-overview/subject-search-overview/subject-search-overview.component.scss","webpack:///./images/sample_tracking/visit-icon.svg","webpack:///./images/sample_tracking/sample-icon.svg","webpack:///./App/web/sample-tracking/tracking-overview/subject-details/subject-details.component.html","webpack:///./App/web/sample-tracking/tracking-overview/subject-details/subject-details.component.scss?7513","webpack:///./App/web/sample-tracking/tracking-overview/subject-details/subject-details.component.scss","webpack:///./App/web/sample-tracking/sample-monitoring/sample-monitoring.component.html","webpack:///./App/web/sample-tracking/sample-monitoring/sample-monitoring.component.scss?5157","webpack:///./App/web/sample-tracking/sample-monitoring/sample-monitoring.component.scss","webpack:///./App/web/sample-tracking/sample-monitoring/sample-monitoring-notifications/sample-monitoring-notifications.component.html","webpack:///./App/web/sample-tracking/sample-monitoring/sample-monitoring-notifications/sample-monitoring-notifications.component.scss?a726","webpack:///./App/web/sample-tracking/sample-monitoring/sample-monitoring-notifications/sample-monitoring-notifications.component.scss","webpack:///./images/sample_tracking/edit.svg","webpack:///./images/sample_tracking/new.svg","webpack:///./App/web/sample-tracking/create-study-group/create-study-group.component.html","webpack:///./App/web/sample-tracking/create-study-group/create-study-group.component.scss?9321","webpack:///./App/web/sample-tracking/create-study-group/create-study-group.component.scss","webpack:///./App/web/sample-tracking/service/dialog-service/message-dialog/message-dialog.component.html","webpack:///./App/web/sample-tracking/service/dialog-service/message-dialog/message-dialog.component.scss?cdf8","webpack:///./App/web/sample-tracking/service/dialog-service/message-dialog/message-dialog.component.scss","webpack:///./App/web/sample-tracking/view-study-group/view-study-group.component.html","webpack:///./App/web/sample-tracking/view-study-group/view-study-group.component.scss?fce2","webpack:///./App/web/sample-tracking/view-study-group/view-study-group.component.scss","webpack:///./App/web/sample-tracking/delete-study-group/delete-study-group.component.html","webpack:///./App/web/sample-tracking/delete-study-group/delete-study-group.component.scss?3233","webpack:///./App/web/sample-tracking/delete-study-group/delete-study-group.component.scss","webpack:///./App/web/sample-tracking/edit-study-group/edit-study-group.component.html","webpack:///./App/web/sample-tracking/edit-study-group/edit-study-group.component.scss?5141","webpack:///./App/web/sample-tracking/edit-study-group/edit-study-group.component.scss","webpack:///./App/web/sample-tracking/reports/delete-report/delete-report.component.html","webpack:///./App/web/sample-tracking/reports/delete-report/delete-report.component.scss?718f","webpack:///./App/web/sample-tracking/reports/delete-report/delete-report.component.scss","webpack:///./App/web/sample-tracking/sample-monitoring/sm-notification-rules/sm-notification-rules.component.html","webpack:///./App/web/sample-tracking/sample-monitoring/sm-notification-rules/sm-notification-rules.component.scss?c854","webpack:///./App/web/sample-tracking/sample-monitoring/sm-notification-rules/sm-notification-rules.component.scss","webpack:///./App/web/sample-tracking/sample-monitoring/notification-form/sm-notification-rule-form.component.html","webpack:///./App/web/sample-tracking/sample-monitoring/notification-form/sm-notification-rule-form.component.scss?4fbf","webpack:///./App/web/sample-tracking/sample-monitoring/notification-form/sm-notification-rule-form.component.scss","webpack:///./App/web/sample-management/registration/sample-details.component.scss","webpack:///./images/sample_tracking/menu_book.svg","webpack:///./App/web/site-shipping-tool/shared/delete-warning/delete-warning-dialog.component.html","webpack:///./App/web/site-shipping-tool/shared/delete-warning/delete-warning-dialog.component.scss?27c9","webpack:///./App/web/site-shipping-tool/shared/delete-warning/delete-warning-dialog.component.scss","webpack:///./App/web/site-shipping-tool/shipment-list/shipment-list.component.html","webpack:///./App/web/site-shipping-tool/shipment-list/shipment-list.component.scss?9b41","webpack:///./App/web/site-shipping-tool/shipment-list/shipment-list.component.scss","webpack:///./images/sample_tracking/report-view.svg","webpack:///./App/web/site-shipping-tool/protocol-shipment-list/protocol-shipment-list.component.html","webpack:///./App/web/site-shipping-tool/protocol-shipment-list/protocol-shipment-list.component.scss?e67a","webpack:///./App/web/site-shipping-tool/protocol-shipment-list/protocol-shipment-list.component.scss","webpack:///./App/web/site-shipping-tool/shipment-form/create-shipment/create-shipment.component.html","webpack:///./App/web/site-shipping-tool/shipment-form/resume-shipment/resume-shipment.component.html","webpack:///./App/web/site-shipping-tool/shipment-summary/shipment-summary.component.html","webpack:///./App/web/site-shipping-tool/shipment-summary/shipment-summary.component.scss?c7ae","webpack:///./App/web/site-shipping-tool/shipment-summary/shipment-summary.component.scss","webpack:///./App/web/sample-management/home/sm-workspace-level-layout.component.html","webpack:///./App/web/sample-management/home/sm-workspace-level-layout.component.scss?de02","webpack:///./App/web/sample-management/home/sm-workspace-level-layout.component.scss","webpack:///./App/web/sample-management/home/navigation/sm-navigation.component.html","webpack:///./App/web/sample-management/home/navigation/sm-navigation.component.scss?86c3","webpack:///./App/web/sample-management/home/navigation/sm-navigation.component.scss","webpack:///./App/web/site-shipping-tool/site-shipping-loader.html","webpack:///./App/web/sample-management/register-samples/additional-container/additional-container.component.html","webpack:///./App/web/sample-management/register-samples/additional-container/additional-container.component.scss?8129","webpack:///./App/web/sample-management/register-samples/additional-container/additional-container.component.scss","webpack:///./App/web/sample-management/register-samples/register-samples.component.html","webpack:///./App/web/sample-management/register-samples/register-samples.component.scss?264e","webpack:///./App/web/sample-management/register-samples/register-samples.component.scss","webpack:///./App/web/sample-management/register-samples/accession-details/accession-details.component.html","webpack:///./App/web/sample-management/register-samples/accession-details/accession-details.component.scss?c6f2","webpack:///./App/web/sample-management/register-samples/accession-details/accession-details.component.scss","webpack:///./App/web/admin/form-fields/audience-roles-select.component.html","webpack:///./App/web/admin/form-fields/audience-roles-select.component.scss?824b","webpack:///./App/web/admin/form-fields/audience-roles-select.component.scss","webpack:///./App/web/covance-textfield/covance-textfield.component.html","webpack:///./App/web/covance-textfield/covance-textfield.component.scss?9f7f","webpack:///./App/web/covance-textfield/covance-textfield.component.scss","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/form-fields/protocol-search-select.component.html","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/form-fields/shared/select.component.scss","webpack:///./App/web/admin/users/user-search-select.component.html","webpack:///./App/web/admin/users/user-search-select.component.scss?6f78","webpack:///./App/web/admin/users/user-search-select.component.scss","webpack:///./App/web/admin/activity-reports/protocol-accesses/protocol-search-field/protocol-search-field.component.html","webpack:///./App/web/admin/activity-reports/protocol-accesses/protocol-search-field/protocol-search-field.component.scss?d880","webpack:///./App/web/admin/activity-reports/protocol-accesses/protocol-search-field/protocol-search-field.component.scss","webpack:///./App/web/admin/activity-reports/protocol-accesses/admin-protocol-access-filter/admin-protocol-access-filter.component.html","webpack:///./App/web/admin/activity-reports/protocol-accesses/admin-protocol-access-filter/admin-protocol-access-filter.component.scss?3991","webpack:///./App/web/admin/activity-reports/protocol-accesses/admin-protocol-access-filter/admin-protocol-access-filter.component.scss","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/base/upload-dialog-action-buttons.component.html","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/base/upload-progress.component.html","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/base/upload-progress.component.scss?faab","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/base/upload-progress.component.scss","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/document-info-dumb-components/application-training-info.component.html","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/document-info-dumb-components/document-info.component.scss","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/document-info-dumb-components/general-document-info.component.html","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/document-info-dumb-components/site-communications-info.component.html","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/document-info-dumb-components/sponsor-communications-info.component.html","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/document-info-dumb-components/study-manual-info.component.html","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/document-info-dumb-components/training-materials-info.component.html","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/form-fields/accession-select.component.html","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/form-fields/project-select.component.html","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/form-fields/site-select-by-projects.component.html","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/form-fields/sites-select.component.html","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/form-fields/sites-select.component.scss?0bf8","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/form-fields/sites-select.component.scss","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/form-fields/subject-select.component.html","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/form-fields/category-select.component.html","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/form-fields/projects-select-by-protocol.component.html","webpack:///./App/web/admin/e-query/e-query-preview/admin-e-query-preview-dialog.component.html","webpack:///./App/web/admin/e-query/e-query-preview/admin-e-query-preview-dialog.component.scss?c9e1","webpack:///./App/web/admin/e-query/e-query-preview/admin-e-query-preview-dialog.component.scss","webpack:///./App/web/admin/e-query/e-query-details/e-query-title/coordinator-e-query-title.component.html","webpack:///./App/web/admin/e-query/e-query-details/e-query-title/coordinator-e-query-title.component.scss?5d6b","webpack:///./App/web/admin/e-query/e-query-details/e-query-title/coordinator-e-query-title.component.scss","webpack:///./App/web/admin/e-query/e-query-details/email-escalations/coordinator-e-query-email-escalations.component.html","webpack:///./App/web/admin/e-query/e-query-details/email-escalations/coordinator-e-query-email-escalations.component.scss?4cab","webpack:///./App/web/admin/e-query/e-query-details/email-escalations/coordinator-e-query-email-escalations.component.scss","webpack:///./App/web/admin/e-query/admin-escalations/escalation-emails-filter/escalation-emails-filter.component.html","webpack:///./App/web/admin/e-query/admin-escalations/escalation-emails-filter/escalation-emails-filter.component.scss?6686","webpack:///./App/web/admin/e-query/admin-escalations/escalation-emails-filter/escalation-emails-filter.component.scss","webpack:///./App/web/admin/e-query/admin-escalations/escalation-search-field/escalation-search-field.component.html","webpack:///./App/web/admin/e-query/admin-escalations/escalation-search-field/escalation-search-field.component.scss?5f8d","webpack:///./App/web/admin/e-query/admin-escalations/escalation-search-field/escalation-search-field.component.scss","webpack:///./App/web/admin/e-query/escalation-level-select/escalation-level-select.component.html","webpack:///./App/web/admin/e-query/escalation-level-select/escalation-level-select.component.scss?2f0a","webpack:///./App/web/admin/e-query/escalation-level-select/escalation-level-select.component.scss","webpack:///./App/web/admin/e-query/e-mails/escalation-mail.component.html","webpack:///./App/web/admin/e-query/e-mails/escalation-mail.component.scss?4761","webpack:///./App/web/admin/e-query/e-mails/escalation-mail.component.scss","webpack:///./App/web/admin/e-query/escalations/escalations.component.html","webpack:///./App/web/admin/e-query/escalations/escalations.component.scss?86d4","webpack:///./App/web/admin/e-query/escalations/escalations.component.scss","webpack:///./App/web/admin/e-query/prefiled-query-edit/e-query-attachments-uploader/e-query-attachments-uploader.component.html","webpack:///./App/web/admin/e-query/prefiled-query-edit/e-query-attachments-uploader/e-query-attachments-uploader.component.scss?4ea8","webpack:///./App/web/admin/e-query/prefiled-query-edit/e-query-attachments-uploader/e-query-attachments-uploader.component.scss","webpack:///./App/web/admin/e-query/prefiled-query-edit/admin-prefilled-e-query-edit.component.html","webpack:///./App/web/admin/e-query/prefiled-query-edit/admin-prefilled-e-query-edit.component.scss?de4c","webpack:///./App/web/admin/e-query/prefiled-query-edit/admin-prefilled-e-query-edit.component.scss","webpack:///./App/web/admin/e-query/comments/comments.component.html","webpack:///./App/web/admin/e-query/comments/comments.component.scss?7660","webpack:///./App/web/admin/e-query/comments/comments.component.scss","webpack:///./App/web/admin/e-query/e-query-details/questions/e-query-questions.component.html","webpack:///./App/web/admin/e-query/e-query-details/questions/e-query-questions.component.scss?3f8f","webpack:///./App/web/admin/e-query/e-query-details/questions/e-query-questions.component.scss","webpack:///./App/web/admin/e-query/usage-reports/admin-usage-e-query-filter/admin-usage-e-query-filter.component.html","webpack:///./App/web/admin/e-query/usage-reports/admin-usage-e-query-filter/admin-usage-e-query-filter.component.scss?1529","webpack:///./App/web/admin/e-query/usage-reports/admin-usage-e-query-filter/admin-usage-e-query-filter.component.scss","webpack:///./App/web/admin/e-query/usage-reports/admin-usage-e-query-report-data/admin-usage-e-query-report-data.component.html","webpack:///./App/web/admin/e-query/usage-reports/admin-usage-e-query-report-data/admin-usage-e-query-report-data.component.scss?c1a3","webpack:///./App/web/admin/e-query/usage-reports/admin-usage-e-query-report-data/admin-usage-e-query-report-data.component.scss","webpack:///./App/web/admin/e-query/prefiled-query-edit/admin-prefilled-active-e-query-edit.component.html","webpack:///./App/web/admin/e-query/prefiled-query-edit/admin-prefilled-active-e-query-edit.component.scss?8e1a","webpack:///./App/web/admin/e-query/prefiled-query-edit/admin-prefilled-active-e-query-edit.component.scss","webpack:///./App/web/admin/e-query/prefiled-query-edit/active-e-query/active-e-query.component.html","webpack:///./App/web/admin/e-query/prefiled-query-edit/active-e-query/active-e-query.component.scss?f95d","webpack:///./App/web/admin/e-query/prefiled-query-edit/active-e-query/active-e-query.component.scss","webpack:///./App/web/admin/e-query/prefiled-query-edit/active-e-query-questions/active-e-query-questions.component.html","webpack:///./App/web/admin/e-query/prefiled-query-edit/active-e-query-questions/active-e-query-questions.component.scss?f313","webpack:///./App/web/admin/e-query/prefiled-query-edit/active-e-query-questions/active-e-query-questions.component.scss","webpack:///./App/web/admin/e-query/prefiled-query-edit/active-e-query-attachments/active-e-query-attachments.component.html","webpack:///./App/web/admin/e-query/prefiled-query-edit/active-e-query-attachments/active-e-query-attachments.component.scss?f1b6","webpack:///./App/web/admin/e-query/prefiled-query-edit/active-e-query-attachments/active-e-query-attachments.component.scss","webpack:///./App/web/admin/e-query/e-query-hide-unhide/hide-filter/hide-equery-filter.component.html","webpack:///./App/web/admin/e-query/e-query-hide-unhide/hide-filter/hide-equery-filter.component.scss?a560","webpack:///./App/web/admin/e-query/e-query-hide-unhide/hide-filter/hide-equery-filter.component.scss","webpack:///./App/web/sponsor/subjects/sponsor-subject-lab-tests-grid.component.html","webpack:///./App/web/sponsor/e-queries/sponsor-e-query-grid/sponsor-e-query-grid.component.html","webpack:///./App/web/sponsor/e-queries/sponsor-e-query-grid/sponsor-e-query-grid.component.scss?dc2f","webpack:///./App/web/sponsor/e-queries/sponsor-e-query-grid/sponsor-e-query-grid.component.scss","webpack:///./App/web/authentication/okta-widget.component.html","webpack:///./App/web/authentication/okta-widget.component.scss?ca6f","webpack:///./App/web/authentication/okta-widget.component.scss","webpack:///./App/web/loading-bar/loading-bar.component.html","webpack:///./App/web/loading-bar/loading-bar.component.scss?be94","webpack:///./App/web/loading-bar/loading-bar.component.scss","webpack:///./App/web/sample-tracking/home/st-header.component.html","webpack:///./App/web/sample-tracking/home/st-header.component.scss?c5f2","webpack:///./App/web/sample-tracking/home/st-header.component.scss","webpack:///./App/web/sample-tracking/group-info/study-group-list.component.html","webpack:///./App/web/sample-tracking/group-info/study-group-list.component.scss?2648","webpack:///./App/web/sample-tracking/group-info/study-group-list.component.scss","webpack:///./App/web/sample-tracking/group-info/study-group-card.component.html","webpack:///./App/web/sample-tracking/group-info/study-group-card.component.scss?d649","webpack:///./App/web/sample-tracking/group-info/study-group-card.component.scss","webpack:///./App/web/sample-tracking/dashboard/protocols/protocols.component.html","webpack:///./App/web/sample-tracking/dashboard/protocols/protocols.component.scss?4ce9","webpack:///./App/web/sample-tracking/dashboard/protocols/protocols.component.scss","webpack:///./App/web/sample-tracking/shared/samples-search/samples-search.component.html","webpack:///./App/web/sample-tracking/shared/samples-search/samples-search.component.scss?18d2","webpack:///./App/web/sample-tracking/shared/samples-search/samples-search.component.scss","webpack:///./App/web/sample-tracking/dashboard/overview-dashboard/sample-status/sample-status.component.html","webpack:///./App/web/sample-tracking/dashboard/overview-dashboard/sample-status/sample-status.component.scss?6f52","webpack:///./App/web/sample-tracking/dashboard/overview-dashboard/sample-status/sample-status.component.scss","webpack:///./App/web/sample-tracking/tracking-overview/visit-details/visit-details.component.html","webpack:///./App/web/sample-tracking/tracking-overview/visit-details/visit-details.component.scss?1818","webpack:///./App/web/sample-tracking/tracking-overview/visit-details/visit-details.component.scss","webpack:///./App/web/sample-tracking/shared/sample-tracking-select/sample-tracking-select.component.html","webpack:///./App/web/sample-tracking/shared/sample-tracking-select/sample-tracking-select.component.scss?e91a","webpack:///./App/web/sample-tracking/shared/sample-tracking-select/sample-tracking-select.component.scss","webpack:///./App/web/sample-tracking/shared/sample-tracking-grid/sample-tracking-grid.component.html","webpack:///./App/web/sample-tracking/shared/sample-tracking-grid/sample-tracking-grid.component.scss?3fab","webpack:///./App/web/sample-tracking/shared/sample-tracking-grid/sample-tracking-grid.component.scss","webpack:///./App/web/sample-tracking/shared/sample-tracking-grid/sample-tracking-ag-export.component.html","webpack:///./App/web/sample-tracking/shared/sample-tracking-grid/sample-tracking-ag-export.component.scss?68a1","webpack:///./App/web/sample-tracking/shared/sample-tracking-grid/sample-tracking-ag-export.component.scss","webpack:///./App/web/sample-tracking/filter-samples/column/column-renderer.scss","webpack:///./App/web/sample-tracking/tracking-overview/sample-details/sample-details.component.html","webpack:///./App/web/sample-tracking/tracking-overview/sample-details/sample-details.component.scss?502c","webpack:///./App/web/sample-tracking/tracking-overview/sample-details/sample-details.component.scss","webpack:///./App/web/sample-tracking/tracking-overview/sample-activity/sample-activity.component.html","webpack:///./App/web/sample-tracking/tracking-overview/sample-activity/sample-activity.component.scss?ce09","webpack:///./App/web/sample-tracking/tracking-overview/sample-activity/sample-activity.component.scss","webpack:///./App/web/sample-tracking/shared/breadcrumb-service/breadcrumb.component.html","webpack:///./App/web/sample-tracking/shared/breadcrumb-service/breadcrumb.component.scss?44c8","webpack:///./App/web/sample-tracking/shared/breadcrumb-service/breadcrumb.component.scss","webpack:///./App/web/sample-tracking/reports/report-types/report-types.component.html","webpack:///./App/web/sample-tracking/reports/report-types/report-types.component.scss?7c01","webpack:///./App/web/sample-tracking/reports/report-types/report-types.component.scss","webpack:///./App/web/sample-tracking/reports/report-grid/report-column-renderer/action-renderer.component.html","webpack:///./App/web/sample-tracking/reports/report-grid/report-column-renderer/action-renderer.component.scss?b538","webpack:///./App/web/sample-tracking/reports/report-grid/report-column-renderer/action-renderer.component.scss","webpack:///./App/web/sample-tracking/reports/report-grid/report-grid.component.html","webpack:///./App/web/sample-tracking/reports/report-grid/report-grid.component.scss?1c31","webpack:///./App/web/sample-tracking/reports/report-grid/report-grid.component.scss","webpack:///./images/sample_tracking/arrow-right-bottom.svg","webpack:///./App/web/sample-tracking/reports/report-grid/scheduled-report-grid/scheduled-report-grid.component.scss?8c9f","webpack:///./App/web/sample-tracking/reports/report-grid/scheduled-report-grid/scheduled-report-grid.component.scss","webpack:///./App/web/sample-tracking/reports/report-grid/generated-report-grid/generated-report-grid.component.scss?15ad","webpack:///./App/web/sample-tracking/reports/report-grid/generated-report-grid/generated-report-grid.component.scss","webpack:///./App/web/sample-tracking/shared/my-filters/my-filters.component.html","webpack:///./App/web/sample-tracking/shared/my-filters/my-filters.component.scss?e493","webpack:///./App/web/sample-tracking/shared/my-filters/my-filters.component.scss","webpack:///./images/sample_tracking/dropdown.svg","webpack:///./App/web/sample-tracking/reports/new-report/schedule-report/schedule-report.component.html","webpack:///./App/web/sample-tracking/reports/new-report/schedule-report/schedule-report.component.scss?501d","webpack:///./App/web/sample-tracking/reports/new-report/schedule-report/schedule-report.component.scss","webpack:///./App/web/sample-tracking/reports/new-report/filters/filter-options.component.html","webpack:///./App/web/sample-tracking/reports/new-report/filters/filter-options.component.scss?8400","webpack:///./App/web/sample-tracking/reports/new-report/filters/filter-options.component.scss","webpack:///./App/web/sample-tracking/user-preferences/user-settings/user-settings.component.html","webpack:///./App/web/sample-tracking/user-preferences/user-settings/user-settings.component.scss?5148","webpack:///./App/web/sample-tracking/user-preferences/user-settings/user-settings.component.scss","webpack:///./App/web/site-shipping-tool/shared/shipment-grid/shipment-grid.component.html","webpack:///./App/web/site-shipping-tool/shared/shipment-grid/shipment-grid.component.scss?75f9","webpack:///./App/web/site-shipping-tool/shared/shipment-grid/shipment-grid.component.scss","webpack:///./App/web/site-shipping-tool/shipment-form/shipment-form.component.html","webpack:///./App/web/site-shipping-tool/shipment-form/shipment-form.component.scss?4570","webpack:///./App/web/site-shipping-tool/shipment-form/shipment-form.component.scss","webpack:///./App/web/site-shipping-tool/shared/barcode-scanner/barcode-scanner.component.html","webpack:///./App/web/site-shipping-tool/shared/barcode-scanner/barcode-scanner.component.scss?13e6","webpack:///./App/web/site-shipping-tool/shared/barcode-scanner/barcode-scanner.component.scss","webpack:///./App/web/site-shipping-tool/shipment-form/form-field/form-field.component.html","webpack:///./App/web/site-shipping-tool/shipment-form/form-field/form-field.component.scss?c98b","webpack:///./App/web/site-shipping-tool/shipment-form/form-field/form-field.component.scss","webpack:///./App/web/site-shipping-tool/shipment-form/address-form-field/address-form-field.component.html","webpack:///./App/web/site-shipping-tool/shipment-form/address-form-field/address-form-field.component.scss?01b2","webpack:///./App/web/site-shipping-tool/shipment-form/address-form-field/address-form-field.component.scss","webpack:///./App/web/site-shipping-tool/shipment-form/container-barcode-handler/container-barcode-handler.component.html","webpack:///./App/web/site-shipping-tool/shipment-form/container-barcode-handler/container-barcode-handler.component.scss?87a2","webpack:///./App/web/site-shipping-tool/shipment-form/container-barcode-handler/container-barcode-handler.component.scss","webpack:///./App/web/site-shipping-tool/shipment-form/container-barcode-handler/registered-samples/registered-samples.component.html","webpack:///./App/web/site-shipping-tool/shipment-form/container-barcode-handler/registered-samples/registered-samples.component.scss?1829","webpack:///./App/web/site-shipping-tool/shipment-form/container-barcode-handler/registered-samples/registered-samples.component.scss","webpack:///./App/web/sample-tracking/dashboard/dashboard-search/dashboard-search.component.html","webpack:///./App/web/sample-tracking/dashboard/dashboard-search/dashboard-search.component.scss?2b0b","webpack:///./App/web/sample-tracking/dashboard/dashboard-search/dashboard-search.component.scss","webpack:///./App/web/sample-management/home/sm-header.component.html","webpack:///./App/web/sample-management/home/sm-header.component.scss?abfd","webpack:///./App/web/sample-management/home/sm-header.component.scss","webpack:///./App/web/sample-management/register-samples/sample-details/sample-details.component.html","webpack:///./App/web/sample-management/register-samples/sample-details/sample-details.component.scss?da2b","webpack:///./App/web/sample-management/register-samples/sample-details/sample-details.component.scss","webpack:///./App/web/authentication/timeout-warning-state.ts","webpack:///./App/web/authentication/timeout-warning.component.ts","webpack:///./App/web/authentication/idle-user-monitor.ts","webpack:///./App/web/app.component.ts","webpack:///./App/web/admin/activity-reports/report-types/admin-activity-report-protocol-access.ts","webpack:///./App/web/admin/activity-reports/protocol-accesses/admin-protocol-accesses-storage.ts","webpack:///./App/web/documents/document-filter-definitions.ts","webpack:///./App/web/admin/activity-reports/documents/admin-activity-reports-filter-resolver.ts","webpack:///./App/web/admin/activity-reports/protocol-accesses/admin-protocol-access-reports.component.ts","webpack:///./App/web/admin/shared/project.ts","webpack:///./App/web/admin/shared/admin-protocols-storage.ts","webpack:///./App/web/documents/documents-storage.ts","webpack:///./App/web/documents/filter-items-loader.ts","webpack:///./App/web/admin/activity-reports/report-types/admin-lab-report-activity-report.ts","webpack:///./App/web/admin/activity-reports/report-types/admin-lab-manual-activity-report.ts","webpack:///./App/web/admin/activity-reports/report-types/admin-site-communication-activity-report.ts","webpack:///./App/web/admin/activity-reports/report-types/admin-site-action-activity-report.ts","webpack:///./App/web/admin/activity-reports/report-types/admin-training-material-activity-report.ts","webpack:///./App/web/admin/activity-reports/report-types/activity-report-e-query.ts","webpack:///./App/web/admin/activity-reports/documents/admin-activity-report-documents-storage.ts","webpack:///./App/web/admin/activity-reports/report-types/admin-activity-report-type-resolver.ts","webpack:///./App/web/admin/activity-reports/documents/admin-activity-report-filter-items-storage.ts","webpack:///./App/web/admin/activity-reports/documents/admin-activity-reports-documents-columns.ts","webpack:///./App/web/documents/filter-resolver.ts","webpack:///./App/web/admin/activity-reports/documents/admin-activity-report-documents.component.ts","webpack:///./App/web/admin/activity-reports/report-types/admin-access-investigation-report.ts","webpack:///./App/web/core/serializers.ts","webpack:///./App/web/admin/activity-reports/access-investigation/admin-access-investigations-storage.ts","webpack:///./App/web/admin/activity-reports/access-investigation/admin-access-investigation-reports.component.ts","webpack:///./App/web/user-permissions/user-permissions.ts","webpack:///./App/web/user-permissions/user-permissions-storage.ts","webpack:///./App/web/admin/activity-reports/admin-activity-reports.component.ts","webpack:///./App/web/admin/announcements/announcement-info.ts","webpack:///./App/web/admin/announcements/announcements-info-storage.ts","webpack:///./App/web/layout/announcement.ts","webpack:///./App/web/layout/announcement-dialog.component.ts","webpack:///./App/web/admin/announcements/announcement-edit-dialog.component.ts","webpack:///./App/web/admin/common-links/common-link-editor.component.ts","webpack:///./App/web/admin/announcements/delete-announcement-dialog.component.ts","webpack:///./App/web/admin/announcements/announcements-actions-menu-ag-renderer.component.ts","webpack:///./App/web/admin/announcements/announcements-admin.component.ts","webpack:///./App/web/admin/common-links/common-link-info.ts","webpack:///./App/web/admin/common-links/common-links-editor.ts","webpack:///./App/web/admin/common-links/common-links-info-storage.ts","webpack:///./App/web/admin/common-links/common-link-actions-menu-ag-renderer.component.ts","webpack:///./App/web/admin/common-links/common-links-grid.component.ts","webpack:///./App/web/admin/shared/projects-storage.ts","webpack:///./App/web/admin/shared/accession.ts","webpack:///./App/web/admin/shared/accessions-storage.ts","webpack:///./App/web/admin/shared/accession-search/accession-search.component.ts","webpack:///./App/web/admin/e-query/user-emails-search/user-emails-storage.ts","webpack:///./App/web/admin/e-query/user-emails-search/user-emails-search.component.ts","webpack:///./App/web/admin/protocol-activation/protocol-change-accessibility.component.ts","webpack:///./App/web/admin/protocol-activation/protocol-activation.component.ts","webpack:///./App/web/covance-file-upload/file-form-array.ts","webpack:///./App/web/documents/models/documents-counter.ts","webpack:///./App/web/general-documents/general-unread-reports-storage.ts","webpack:///./App/web/documents/document-type-resolver.ts","webpack:///./App/web/covance-file-upload/uploaded-file-response.ts","webpack:///./App/web/admin/upload-documents/storages/uploaded-documents-request-creator.ts","webpack:///./App/web/admin/upload-documents/storages/uploaded-documents-storage.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/base/method-upload-options.ts","webpack:///./App/web/authentication/audience-role.ts","webpack:///./App/web/admin/form-fields/audience-roles-storage.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/base/upload-confirmation-dialog.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/base/upload-dialog-data.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/base/upload-dialog-base.ts","webpack:///./App/web/e-queries/models/e-query-tab.enum.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/general/general-upload-dialog-base.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/general/application-training-upload.component.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/general/general-communications-upload.component.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/general/general-lab-manuals-upload.component.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/general/general-training-materials-upload.component.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/site-specific/site-specific-upload-dialog-base.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/site-specific/lab-manuals-upload.component.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/site-specific/site-actions-upload.component.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/site-specific/site-communications-upload.component.ts","webpack:///./App/web/admin/upload-documents/storages/e-learning-upload-storage.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/site-specific/sponsor-communications-upload.component.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/site-specific/training-materials-upload.component.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/upload-dialog-type-resolver.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/base/update-document-dialog-base.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/file-extensions.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/file-edit/file-edit.component.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/translations/uploaded-translations-storage.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/translations/document-translation-upload.component.ts","webpack:///./App/web/admin/upload-documents/hide-document-dialog-data.ts","webpack:///./App/web/admin/upload-documents/hide-document.component.ts","webpack:///./App/web/admin/upload-documents/upload-actions-menu-ag-renderer.component.ts","webpack:///./App/web/admin/upload-documents/admin-document-columns.ts","webpack:///./App/web/admin/upload-documents/filter/admin-documents-filter-items-storage.ts","webpack:///./App/web/admin/upload-documents/filter/admin-documents-filter-resolver.ts","webpack:///./App/web/admin/shared/sponsor.ts","webpack:///./App/web/admin/sponsor-storage/admin-sponsors-storage.ts","webpack:///./App/web/admin/upload-documents/filter/admin-documents-mandatory-filter-items-storage.ts","webpack:///./App/web/admin/upload-documents/admin-documents.component.ts","webpack:///./App/web/admin/admin-guard.ts","webpack:///./App/web/admin/user-profiles/user-profiles-actions-menu-ag-renderer.component.ts","webpack:///./App/web/admin/user-profiles/user-profile.ts","webpack:///./App/web/admin/user-profiles/user-profiles-readmodel.ts","webpack:///./App/web/admin/user-profiles/user-profiles-storage.ts","webpack:///./App/web/admin/user-profiles/user-profiles.component.ts","webpack:///./App/web/header-title/general-header-title.component.ts","webpack:///./App/web/header-title/sponsor-header-title.component.ts","webpack:///./App/web/header-title/investigator-header-title.component.ts","webpack:///./App/web/header-title/header-title.module.ts","webpack:///./App/web/investigator/investigator-guard.ts","webpack:///./App/web/documents/documents-grid.component.ts","webpack:///./App/web/documents/reports-grid.component.ts","webpack:///./App/web/documents/filtered-grid.component.ts","webpack:///./App/web/documents/documents.module.ts","webpack:///./App/web/navigation/navigation.component.ts","webpack:///./App/web/navigation/navigation.module.ts","webpack:///./App/web/investigator/base/document-tabs-categories-component-base.ts","webpack:///./App/web/investigator/documents-tabs.component.ts","webpack:///./App/web/investigator/base/documents-component-base.ts","webpack:///./App/web/investigator/investigator-unread-reports-storage.ts","webpack:///./App/web/investigator/investigator-reports-storage.ts","webpack:///./App/web/investigator/documents-with-child-categories.component.ts","webpack:///./App/web/investigator/documents.component.ts","webpack:///./App/web/investigator/general-documents-guard.ts","webpack:///./App/web/investigator/lab-reports.component.ts","webpack:///./App/web/investigator/kitinventory/kit-inventory-columns.ts","webpack:///./App/web/investigator/kitinventory/kit-inventory.component.ts","webpack:///./App/web/navigation/navigation-link.ts","webpack:///./App/web/e-queries/e-queries-counters-storage.ts","webpack:///./App/web/investigator/e-queries/investigator-e-query-counter.ts","webpack:///./App/web/investigator/e-queries/investigator-e-queries-counters-storage.ts","webpack:///./App/web/investigator/navigation/investigator-navigation.component.ts","webpack:///./App/web/investigator/single-category-documents-guard.ts","webpack:///./App/web/investigator/site-specific-categories-resolver.ts","webpack:///./App/web/investigator/investigator-documents-columns.ts","webpack:///./App/web/investigator/investigator-lab-test-results-link-builder.ts","webpack:///./App/web/investigator/investigator-level.component.ts","webpack:///./App/web/investigator/subjects/selected-subject-lab-results-storage.ts","webpack:///./App/web/investigator/subjects/selected-subject-resolver.ts","webpack:///./App/web/investigator/subjects/subjects-list-resolver.ts","webpack:///./App/web/investigator/subjects/subjects-root.component.ts","webpack:///./App/web/investigator/subjects/subjects-navigation.component.ts","webpack:///./App/web/e-queries/models/external-user-e-query.ts","webpack:///./App/web/investigator/e-queries/models/investigator-e-query.ts","webpack:///./App/web/e-queries/models/external-user-e-queries-filter.ts","webpack:///./App/web/investigator/e-queries/models/investigator-e-query-filter-item.ts","webpack:///./App/web/e-queries/external-user-filter-url-params-preparer.ts","webpack:///./App/web/investigator/e-queries/investigator-e-queries-storage.ts","webpack:///./App/web/e-queries/e-query-filter-definitions.ts","webpack:///./App/web/e-queries/external-user-e-queries-storage.ts","webpack:///./App/web/admin/audit-trail-export/audit-trail-type.ts","webpack:///./App/web/e-queries/read-e-query-emitter.ts","webpack:///./App/web/e-queries/external-user-e-queries-grid-default-sort.ts","webpack:///./App/web/e-queries/external-user-e-queries-grid/external-user-e-queries-grid.component.ts","webpack:///./App/web/simple-text-field/simple-text-field.component.ts","webpack:///./App/web/simple-text-field/simple-text-field.module.ts","webpack:///./App/web/e-queries/e-queries-columns.ts","webpack:///./App/web/e-queries/e-queries-columns/external-user-e-queries-columns.ts","webpack:///./App/web/e-queries/external-user-e-query-filter-definitions.ts","webpack:///./App/web/e-queries/e-query-details/e-queries-free-text-question-input/e-queries-free-text-question.component.ts","webpack:///./App/web/e-queries/accession-info/external-e-query-accession-info.ts","webpack:///./App/web/e-queries/accession-info/e-query-accession-info.component.ts","webpack:///./App/web/e-queries/e-query-details/attachments/e-query-attachments.component.ts","webpack:///./App/web/e-queries/e-query-details/e-query-details-text-field/e-query-details-text-field.component.ts","webpack:///./App/web/e-queries/e-query-details/e-query-attachments-downloader.ts","webpack:///./App/web/covance-file-upload/file-form-group.ts","webpack:///./App/web/covance-file-upload/file-language-control.ts","webpack:///./App/web/covance-file-upload/file-name-control.ts","webpack:///./App/web/covance-file-upload/covance-file-upload.component.ts","webpack:///./App/web/covance-file-upload/uploaded-file-errors.component.ts","webpack:///./App/web/covance-file-upload/covance-file-upload.module.ts","webpack:///./App/web/e-queries/models/e-query-info.ts","webpack:///./App/web/e-queries/models/e-query-attachment-base.ts","webpack:///./App/web/e-queries/models/e-query-submitted-response-attachment.ts","webpack:///./App/web/e-queries/models/e-query-submitted-response.ts","webpack:///./App/web/e-queries/models/e-query-attachment.ts","webpack:///./App/web/admin/e-query/models/e-query-c-c-question.ts","webpack:///./App/web/e-queries/models/e-query-details.ts","webpack:///./App/web/e-queries/e-query-details/e-query-details-storage.ts","webpack:///./App/web/e-queries/e-query-details/e-query-cc-question/e-query-c-c-question.component.ts","webpack:///./App/web/e-queries/e-query-details/open-questions/open-questions.component.ts","webpack:///./App/web/e-queries/e-query-details/e-query-cc-question-response/e-query-c-c-question-response.component.ts","webpack:///./App/web/e-queries/e-query-details/e-query-comments/e-query-comments.component.ts","webpack:///./App/web/e-queries/e-query-attachments-list/e-query-attachments-list.component.ts","webpack:///./App/web/e-queries/e-query-details/external-user-e-query-content-block/external-user-e-query-content-block.component.ts","webpack:///./App/web/e-queries/accession-info/accession-age.pipe.ts","webpack:///./App/web/e-queries/e-queries.module.ts","webpack:///./App/web/investigator/e-queries/investigator-e-query/e-query-details/investigator-e-query-details-dialog.component.ts","webpack:///./App/web/investigator/e-queries/investigator-e-query/investigator-e-queries-columns.ts","webpack:///./App/web/investigator/e-queries/investigator-e-query/awaiting/investigator-awaiting-e-queries.component.ts","webpack:///./App/web/investigator/e-queries/investigator-e-query/submitted/investigator-submitted-e-queries.component.ts","webpack:///./App/web/investigator/e-queries/investigator-e-query/investigator-e-query-tabs.component.ts","webpack:///./App/web/investigator/e-queries/investigator-e-query/investigator-e-query-grid.component.ts","webpack:///./App/web/investigator/e-queries/investigator-e-query/investigator-e-query.module.ts","webpack:///./App/web/investigator/investigator.module.ts","webpack:///./App/web/notification-bar/notification-bar-item.ts","webpack:///./App/web/notification-bar/notification-bar-content.ts","webpack:///./App/web/notification-bar/notification-icon.component.ts","webpack:///./App/web/notification-bar/notification-bar.component.ts","webpack:///./App/web/notification-bar/notification-bar.module.ts","webpack:///./App/web/toolbar-menu/toolbar-menu-content.ts","webpack:///./App/web/toolbar-menu/toolbar-menu.component.ts","webpack:///./App/web/toolbar-menu/toolbar-menu.module.ts","webpack:///./App/web/layout/sample-tracking/sample-tracking-option.resolver.ts","webpack:///./App/web/layout/header.component.ts","webpack:///./App/web/layout/announcements-storage.ts","webpack:///./App/web/layout/announcements.component.ts","webpack:///./App/web/layout/common-link.ts","webpack:///./App/web/layout/common-links-storage.ts","webpack:///./App/web/layout/common-links.component.ts","webpack:///./App/web/layout/workspace-drawer-behavior.ts","webpack:///./App/web/layout/workspace-level-layout.component.ts","webpack:///./App/web/layout/dashboard-level-layout.component.ts","webpack:///./App/web/layout/workspace-drawer-behavior-resolver.ts","webpack:///./App/web/layout/layout.module.ts","webpack:///./App/web/admin/navigation/admin-links-info-storage.ts","webpack:///./App/web/admin/navigation/admin-navigation.component.ts","webpack:///./App/web/admin/audit-trail-export/audit-trail-records-storage.ts","webpack:///./App/web/admin/audit-trail-export/audit-trail-export.component.ts","webpack:///./App/web/admin/upload-documents/admin-unread-reports-storage.ts","webpack:///./App/web/admin/admin-level.component.ts","webpack:///./App/web/admin/upload-documents/set-default-admin-documents-filters-guard.ts","webpack:///./App/web/user-permissions/user-permission-guard.ts","webpack:///./App/web/user-permissions/route-permission.ts","webpack:///./App/web/admin/e-query/models/e-query-escalation-level.ts","webpack:///./App/web/admin/activity-reports/documents/set-default-admin-reports-filters-guard.ts","webpack:///./App/web/admin/kit-inventory/admin-kit-inventory.component.ts","webpack:///./App/web/admin/kit-inventory/admin-kit-inventory-onhand.component.ts","webpack:///./App/web/admin/kit-inventory/admin-kit-inventory-expiration.component.ts","webpack:///./App/web/sponsor/activity-reports/sponsor-activity-reports-filter-resolver.ts","webpack:///./App/web/sponsor/kit-inventory/sponsor-kit-inventory-filters-guard.ts","webpack:///./App/web/admin/e-query/admin-e-query-filter-definitions-resolver.ts","webpack:///./App/web/audit-trail/audit-trail-reason.ts","webpack:///./App/web/admin/e-query/e-query-close-reasons-storage.service.ts","webpack:///./App/web/audit-trail/audit-trail-reason.component.ts","webpack:///./App/web/admin/e-query/models/e-query-summary.ts","webpack:///./App/web/admin/e-query/models/e-query-summary-filter-item.ts","webpack:///./App/web/admin/e-query/e-query-summary/filter-url-params-preparer.ts","webpack:///./App/web/admin/e-query/e-query-summary/e-query-summary-storage.ts","webpack:///./App/web/admin/e-query/models/e-query-reopen-data.ts","webpack:///./App/web/admin/e-query/models/e-query-details/coordinator-e-query.ts","webpack:///./App/web/admin/e-query/models/e-query-details/coordinator-e-query-escalation.ts","webpack:///./App/web/admin/e-query/models/e-query-details/coordinator-e-query-escalations.ts","webpack:///./App/web/admin/shared/e-query-accession-info.ts","webpack:///./App/web/admin/e-query/models/e-query-details/coordinator-e-query-details.ts","webpack:///./App/web/admin/e-query/e-query-details/coordinator-e-query-details-storage.ts","webpack:///./App/web/admin/e-query/e-query-details/coordinator-e-query-details-dialog.component.ts","webpack:///./App/web/admin/e-query/e-query-summary/admin-e-query-summary-columns.ts","webpack:///./App/web/admin/e-query/e-query-summary/admin-e-query-summary.component.ts","webpack:///./App/web/admin/e-query/models/e-query-admin-summary.ts","webpack:///./App/web/admin/e-query/models/e-query-admin-summary-filter-item.ts","webpack:///./App/web/admin/e-query/e-query-hide-unhide/e-query-hide-storage.service.ts","webpack:///./App/web/admin/e-query/e-query-hide-unhide/e-query-hide-reason-storage.ts","webpack:///./App/web/admin/e-query/e-query-hide-unhide/e-query-unhide-reason-storage.ts","webpack:///./App/web/admin/e-query/e-query-hide-unhide/hide-dialog/e-query-hide-dialog.component.ts","webpack:///./App/web/admin/e-query/e-query-hide-unhide/hide-menu-ag-renderer.component.ts","webpack:///./App/web/admin/e-query/e-query-hide-unhide/admin-e-query-hide-columns.ts","webpack:///./App/web/admin/e-query/e-query-hide-unhide/admin-e-query-hide.component.ts","webpack:///./App/web/admin/e-query/admin-e-query-escalations-filter-resolver.ts","webpack:///./App/web/admin/edit-default-columns/admin-edit-column-info.ts","webpack:///./App/web/admin/e-query/models/admin-e-query-escalation.ts","webpack:///./App/web/admin/e-query/admin-e-query-escalation-response.ts","webpack:///./App/web/admin/e-query/admin-e-query-escalations-storage.ts","webpack:///./App/web/admin/e-query/models/e-query-escalation-search-field.ts","webpack:///./App/web/admin/e-query/admin-e-query-escalation-search-fields-storage.ts","webpack:///./App/web/admin/e-query/admin-escalations/new-escalation-dialog/new-escalation-dialog.component.ts","webpack:///./App/web/admin/e-query/admin-escalations/delete-escalation-dialog/delete-escalation-dialog.component.ts","webpack:///./App/web/admin/e-query/admin-escalations/escalation-removal-button-ag-renderer.component.ts","webpack:///./App/web/admin/e-query/admin-escalations/admin-escalation-emails.component.ts","webpack:///./App/web/admin/e-query/e-query-tabs/admin-e-query-tabs.component.ts","webpack:///./App/web/admin/e-query/e-query-tabs/coordinator-e-query-tabs.component.ts","webpack:///./App/web/admin/e-query/models/active-e-query.ts","webpack:///./App/web/admin/e-query/models/e-query-stage.ts","webpack:///./App/web/admin/e-query/prefiled-query-edit/e-query-stage-storage.ts","webpack:///./App/web/admin/e-query/prefiled-query-edit/prefilled-e-query-create-form.component.ts","webpack:///./App/web/admin/e-query/usage-reports/model/admin-usage-e-queries-report-filter-items-read-model.ts","webpack:///./App/web/admin/e-query/usage-reports/model/admin-usage-e-queries-report.ts","webpack:///./App/web/admin/e-query/usage-reports/model/admin-usage-e-queries-report-option-filter-items-read-model.ts","webpack:///./App/web/admin/e-query/usage-reports/admin-usage-e-queries-report-filter-items.ts","webpack:///./App/web/admin/e-query/usage-reports/admin-usage-e-query-report.component.ts","webpack:///./App/web/admin/activity-reports/report-types/admin-activity-report-email-notification-alert.ts","webpack:///./App/web/admin/activity-reports/email-alerts/admin-email-alerts-storage.ts","webpack:///./App/web/admin/activity-reports/email-alerts/admin-email-notification-alerts-reports.component.ts","webpack:///./App/web/admin/activity-reports/email-alerts/set-default-admin-email-notification-filters-guard.ts","webpack:///./App/web/admin/edit-default-columns/admin-edit-column-storage.ts","webpack:///./App/web/shared/model-dialog/modal-dialog.service.ts","webpack:///./App/web/admin/edit-default-columns/column-form/admin-column-form.component.ts","webpack:///./App/web/admin/edit-default-columns/admin-edit-column-service.ts","webpack:///./App/web/admin/edit-default-columns/edit-columns.component.ts","webpack:///./App/web/admin/admin.routes.ts","webpack:///./App/web/sponsor-dashboard/sponsor-study.ts","webpack:///./App/web/sponsor-dashboard/sponsor-studies-storage.ts","webpack:///./App/web/sponsor/can-sponsor-view-study-documents-guard.ts","webpack:///./App/web/sponsor/sponsor-route-data.ts","webpack:///./App/web/sponsor/documents/category-documents-filter-storage.ts","webpack:///./App/web/sponsor/documents/site-documents.component.ts","webpack:///./App/web/sponsor/sponsor-guard.ts","webpack:///./App/web/sponsor/sponsor-unread-reports-storage.ts","webpack:///./App/web/sponsor/e-queries/models/sponsor-e-query-counter.ts","webpack:///./App/web/sponsor/e-queries/sponsor-e-queries-counters-storage.ts","webpack:///./App/web/sample-tracking/group-info/study-group-info.ts","webpack:///./App/web/sponsor/navigation/sponsor-navigation.component.ts","webpack:///./App/web/sponsor/selected-study-resolver.ts","webpack:///./App/web/sponsor/sponsor-reports-storage.ts","webpack:///./App/web/sponsor/documents/sponsor-communications.component.ts","webpack:///./App/web/sponsor/documents/study-documents.component.ts","webpack:///./App/web/sponsor/documents/documents-by-child.component.ts","webpack:///./App/web/sponsor/documents/sponsor-documents-columns.ts","webpack:///./App/web/sponsor/sponsor-lab-test-results-link-builder.ts","webpack:///./App/web/sponsor/lab-results/lab-test.ts","webpack:///./App/web/sponsor/lab-results/sponsor-lab-results-storage.ts","webpack:///./App/web/sponsor/lab-results/lab-tests-identities-storage.ts","webpack:///./App/web/sponsor/documents/sponsor-documents-filter-items-storage.ts","webpack:///./App/web/sponsor/sponsor-level.component.ts","webpack:///./App/web/sponsor/activity-reports/report-types/sponsor-protocol-access-report.ts","webpack:///./App/web/sponsor/activity-reports/sponsor-protocol-accesses-storage.ts","webpack:///./App/web/sponsor/activity-reports/sponsor-protocol-access-reports.component.ts","webpack:///./App/web/sponsor/activity-reports/sponsor-activity-report-filter-items-storage.ts","webpack:///./App/web/sponsor/activity-reports/report-types/sponsor-lab-report-activity-report.ts","webpack:///./App/web/sponsor/activity-reports/report-types/sponsor-lab-manual-activity-report.ts","webpack:///./App/web/sponsor/activity-reports/report-types/sponsor-site-communication-activity-report.ts","webpack:///./App/web/sponsor/activity-reports/report-types/sponsor-site-action-activity-report.ts","webpack:///./App/web/sponsor/activity-reports/report-types/sponsor-training-material-activity-report.ts","webpack:///./App/web/sponsor/activity-reports/sponsor-activity-report-documents-storage.ts","webpack:///./App/web/sponsor/activity-reports/report-types/sponsor-activity-report-type-resolver.ts","webpack:///./App/web/sponsor/activity-reports/sponsor-activity-reports-documents-columns.ts","webpack:///./App/web/sponsor/activity-reports/sponsor-activity-report-documents.component.ts","webpack:///./App/web/sponsor/activity-reports/sponsor-activity-reports.component.ts","webpack:///./App/web/sponsor/result-alerts/sponsor-result-alerts.component.ts","webpack:///./App/web/sponsor/lab-results/lab-results-filter-storage.ts","webpack:///./App/web/sponsor/lab-results/lab-results-data-storage.ts","webpack:///./App/web/sponsor/lab-results/sponsor-trend-analysis.component.ts","webpack:///./App/web/sponsor/lab-results/lab-result-tooltip-renderer.ts","webpack:///./App/web/sponsor/lab-results/sponsor-trends.component.ts","webpack:///./App/web/sponsor/sites/sponsor-study-site.ts","webpack:///./App/web/sponsor/sites/sponsor-study-sites-read-model.ts","webpack:///./App/web/sponsor/sites/sponsor-study-sites-storage.ts","webpack:///./App/web/sponsor/sites/study-sites.component.ts","webpack:///./App/web/sponsor/sponsor-subject.ts","webpack:///./App/web/sponsor/sponsor-subjects-read-model.ts","webpack:///./App/web/sponsor/sponsor-subject-item.ts","webpack:///./App/web/sponsor/sponsor-subjects-storage.ts","webpack:///./App/web/sponsor/subjects/study-subjects.component.ts","webpack:///./App/web/sponsor/tableau/tableau.component.ts","webpack:///./App/web/sponsor/subjects/sponsor-selected-subject-lab-results-storage.ts","webpack:///./App/web/sponsor/subjects/sponsor-ct-subjects-storage.ts","webpack:///./App/web/sponsor/subjects/sponsor-selected-subject-route-data.ts","webpack:///./App/web/sponsor/subjects/sponsor-subject.component.ts","webpack:///./App/web/activities/navigation-activity/handlers/sponsor/sponsor-default-activity-handler.ts","webpack:///./App/web/sponsor/sites/sponsor-study-site-identity.ts","webpack:///./App/web/sponsor/sites/sponsor-study-site-identities-storage.ts","webpack:///./App/web/sponsor/lab-results/sponsor-study-site-identities-resolver.ts","webpack:///./App/web/sponsor/subjects/sponsor-subject-identities-resolver.ts","webpack:///./App/web/sponsor/subjects/sponsor-subjects.routes.ts","webpack:///./App/web/sponsor/can-sponsor-view-document-category-guard.ts","webpack:///./App/web/sponsor/can-sponsor-view-activity-reports-guard.ts","webpack:///./App/web/sponsor/sponsor-study-permissions-resolver.ts","webpack:///./App/web/sponsor/can-sponsor-view-protocol-access-guard.ts","webpack:///./App/web/sponsor/lab-results/sponsor-test-results.component.ts","webpack:///./App/web/sponsor/lab-results/sponsor-standard-test-results-storage.ts","webpack:///./App/web/sponsor/lab-results/sponsor-standard-test-results.component.ts","webpack:///./App/web/sponsor/lab-results/sponsor-microbiology-storage.ts","webpack:///./App/web/sponsor/lab-results/sponsor-microbiology.component.ts","webpack:///./App/web/sponsor/documents/site-documents-grid.component.ts","webpack:///./App/web/activities/navigation-activity/handlers/sponsor/sponsor-test-results-activity-handler.ts","webpack:///./App/web/activities/navigation-activity/handlers/sponsor/sponsor-study-documents-activity-handler.ts","webpack:///./App/web/sponsor/lab-results/sponsor-selected-study-site-identity-resolver.ts","webpack:///./App/web/sponsor/lab-results/sponsor-trend-analysis-redirection.component.ts","webpack:///./App/web/sponsor/documents/site-documents-redirection.component.ts","webpack:///./App/web/sponsor/lab-results/sponsor-test-results-redirection.component.ts","webpack:///./App/web/sponsor/lab-results/sponsor-boxplot.component.ts","webpack:///./App/web/sponsor/activity-reports/sponsor-activity-reports-filters-guard.ts","webpack:///./App/web/sponsor/documents/lab-reports/sponsor-lab-reports.component.ts","webpack:///./App/web/sponsor/kit-inventory/sponsor-kit-inventory.component.ts","webpack:///./App/web/sponsor/kit-inventory/sponsor-kit-inventory-onhand.component.ts","webpack:///./App/web/sponsor/kit-inventory/sponsor-kit-inventory-expiration.component.ts","webpack:///./App/web/sponsor/can-sponsor-view-kit-inventory-guard.ts","webpack:///./App/web/sponsor/e-queries/sponsor-e-query-tabs/sponsor-e-query-tabs.component.ts","webpack:///./App/web/sponsor/e-queries/sponsor-e-query-tabs/sposnor-e-query-redirection.component.ts","webpack:///./App/web/sponsor/e-queries/can-sponsor-view-e-queries-guard.ts","webpack:///./App/web/sponsor/e-queries/sponsor-e-query-columns.ts","webpack:///./App/web/sponsor/e-queries/awaiting/sponsor-awaiting-e-queries.component.ts","webpack:///./App/web/sponsor/e-queries/submitted/sponsor-submitted-e-queries.component.ts","webpack:///./App/web/sponsor/tableau/tableau-storage.ts","webpack:///./App/web/sponsor/tableau/tableau-dialog.component.ts","webpack:///./App/web/sponsor/can-sponsor-view-study-health-dashboard.ts","webpack:///./App/web/sponsor/sponsor.routes.ts","webpack:///./App/web/activities/navigation-activity/handlers/sponsor/sponsor-site-documents-activity-handler.ts","webpack:///./App/web/activities/navigation-activity/handlers/sponsor/sponsor-activity-reports-activity-handler.ts","webpack:///./App/web/investigator/subjects/subjects.routes.ts","webpack:///./App/web/activities/navigation-activity/handlers/investigator/investigator-documents-activity-handler.ts","webpack:///./App/web/investigator/investigator.routes.ts","webpack:///./App/web/admin/upload-documents/storages/site-communications-mass-upload-storage.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/site-specific/excel-parser.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/site-specific/upload-error-dialog.component.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/site-specific/site-communications-mass-upload.component.ts","webpack:///./App/web/admin/users/user-search.ts","webpack:///./App/web/admin/users/users-storage.ts","webpack:///./App/web/admin/users/user-resolver.ts","webpack:///./App/web/general-documents/general-reports-storage.ts","webpack:///./App/web/general-documents/general-documents.component.ts","webpack:///./App/web/general-documents/general-documents-columns.ts","webpack:///./App/web/general-documents/general-level.component.ts","webpack:///./App/web/mail-links/mail-links.component.ts","webpack:///./App/web/mail-links/mail-links.routes.ts","webpack:///./App/web/user-emulation/user-info.ts","webpack:///./App/web/user-emulation/user-emulation.ts","webpack:///./App/web/user-emulation/user-emulation-storage.ts","webpack:///./App/web/user-emulation/user-emulation-group-renderer.component.ts","webpack:///./App/web/user-emulation/user-emulation.component.ts","webpack:///./App/web/user-emulation/user-emulation.module.ts","webpack:///./App/web/general-documents/general-documents-tabs.component.ts","webpack:///./App/web/general-documents/base/general-documents-component-base.ts","webpack:///./App/web/general-documents/general-documents-with-categories.component.ts","webpack:///./App/web/dashboard/dashboard-container.component.ts","webpack:///./App/web/dashboard/user-settings-access-guard.ts","webpack:///./App/web/activities/navigation-activity/handlers/general/general-documents-activity-handler.ts","webpack:///./App/web/sponsor/e-queries/models/sponsor-e-query-filter-item.ts","webpack:///./App/web/sponsor/e-queries/models/sponsor-e-queries-filter-items-read-model.ts","webpack:///./App/web/sponsor/e-queries/models/sponsor-e-query.ts","webpack:///./App/web/sponsor/e-queries/models/sponsor-e-queries-read-model.ts","webpack:///./App/web/sponsor/e-queries/sponsor-e-queries-storage.ts","webpack:///./App/web/sponsor/e-queries/e-query-details/sponsor-e-query-details-dialog.component.ts","webpack:///./App/web/dashboard/dashboard.routes.ts","webpack:///./App/web/sponsor-dashboard/study-card.ts","webpack:///./App/web/sponsor-dashboard/study-card.component.ts","webpack:///./App/web/core/search-functions.ts","webpack:///./App/web/e-queries/models/e-query-status.ts","webpack:///./App/web/sample-tracking/dashboard/overview-dashboard/dashboard-info.ts","webpack:///./App/web/sponsor-dashboard/sponsor-study-list.component.ts","webpack:///./App/web/sponsor-dashboard/sponsor-dashboard.module.ts","webpack:///./App/web/dashboard/general-categories-resolver.ts","webpack:///./App/web/admin-dashboard/admin-dashboard.component.ts","webpack:///./App/web/admin-dashboard/admin-dashboard.module.ts","webpack:///./App/web/investigator-dashboard/sites-list.component.ts","webpack:///./App/web/investigator-dashboard/site-card.component.ts","webpack:///./App/web/investigator-dashboard/investigator-dashboard.module.ts","webpack:///./App/web/dashboard/dashboard.module.ts","webpack:///./App/web/authentication/login-page.component.ts","webpack:///./App/web/authentication/logout-page.component.ts","webpack:///./App/web/authentication/authentication.routes.ts","webpack:///./App/web/authentication/user-authenticated-guard.ts","webpack:///./App/web/corporate/corporate.routes.ts","webpack:///./App/web/sample-tracking/sample-tracking-level.component.ts","webpack:///./App/web/sample-tracking/reports/interfaces/report-data.ts","webpack:///./App/web/sample-tracking/reports/services/reports-storage-service.ts","webpack:///./App/web/sample-tracking/group-info/study-group.ts","webpack:///./App/web/sample-tracking/tracking-overview/interfaces/sample-details.ts","webpack:///./App/web/sample-tracking/sample-tracking-storage.ts","webpack:///./App/web/sample-tracking/sample-monitoring/service/sample-monitoring-storage.ts","webpack:///./App/web/sample-tracking/sample-tracking-guard.ts","webpack:///./App/web/sample-tracking/service/navigation-service/navigation-service-link.ts","webpack:///./App/web/sample-tracking/navigation/sample-tracking-links-info-storage.ts","webpack:///./App/web/sample-tracking/navigation/sample-tracking-navigation.component.ts","webpack:///./App/web/sample-tracking/shared/breadcrumb-service/breadcrumb.service.ts","webpack:///./App/web/sample-tracking/home/st-workspace-level-layout.component.ts","webpack:///./App/web/sample-tracking/dashboard/sample-tracking-dashboard.component.ts","webpack:///./App/web/sample-tracking/user-preferences/sample-tracking-preferences.component.ts","webpack:///./App/web/sample-tracking/filter-samples/filter-samples-info.ts","webpack:///./App/web/sample-tracking/tracking-overview/service/tracking-overview.service.ts","webpack:///./App/web/sample-tracking/tracking-overview/visit-overview/visit-overview.component.ts","webpack:///./App/web/sample-tracking/tracking-overview/sample-overview/sample-overview.component.ts","webpack:///./App/web/sample-tracking/shared/sample-tracking-select/sample-tracking-select-filter-service.ts","webpack:///./App/web/sample-tracking/dashboard/overview-dashboard/sample-status/sample-status-service.ts","webpack:///./App/web/site-shipping-tool/shared/confirm-dialog/confirm-dialog.component.ts","webpack:///./App/web/sample-tracking/reports/interfaces/report-grid.ts","webpack:///./App/web/sample-tracking/reports/interfaces/filter-data.ts","webpack:///./App/web/sample-tracking/filter-samples/column/filter-samples-grid-header.ts","webpack:///./App/web/sample-tracking/filter-samples/column/equery-samples-grid-header.ts","webpack:///./App/web/sample-tracking/filter-samples/column/sample-column-service.ts","webpack:///./App/web/sample-tracking/filter-samples/service/samples-helper-service.ts","webpack:///./App/web/sample-tracking/dashboard/overview-dashboard/overview-dashboard.component.ts","webpack:///./App/web/sample-tracking/filter-samples/column/samples-data-download-service.ts","webpack:///./App/web/sample-tracking/filter-samples/st-filter-samples.component.ts","webpack:///./App/web/sample-tracking/reports/interfaces/reports.ts","webpack:///./App/web/sample-tracking/reports/services/report-columns-service.ts","webpack:///./App/web/sample-tracking/reports/sample-tracking-reports.component.ts","webpack:///./App/web/sample-tracking/reports/view-reports/generated-reports/view-generated-reports.component.ts","webpack:///./App/web/sample-tracking/reports/view-reports/scheduled-reports/view-scheduled-reports.component.ts","webpack:///./App/web/sample-tracking/reports/sample-tracking-report-loader.ts","webpack:///./App/web/sample-tracking/sample-monitoring/interface/notification-data.ts","webpack:///./App/web/sample-tracking/reports/new-report/new-report.component.ts","webpack:///./App/web/sample-tracking/tracking-overview/subject-search-overview/subject-search-service.ts","webpack:///./App/web/sample-tracking/tracking-overview/subject-search-overview/subject-search-overview.component.ts","webpack:///./App/web/sample-tracking/tracking-overview/subject-details/subject-visit-details.component.ts","webpack:///./App/web/sample-tracking/sample-monitoring/sample-monitoring.component.ts","webpack:///./App/web/sample-tracking/service/dialog-service/sample-tracking-result.ts","webpack:///./App/web/sample-tracking/sample-monitoring/service/sample-monitoring-service.ts","webpack:///./App/web/sample-tracking/sample-monitoring/sample-monitoring-notifications/sample-monitoring-notifications.component.ts","webpack:///./App/web/sample-tracking/create-study-group/create-group-request.ts","webpack:///./App/web/sample-tracking/service/text-highlight/text-highlight-service.ts","webpack:///./App/web/sample-tracking/tracking-overview/interfaces/grid.ts","webpack:///./App/web/sample-tracking/create-study-group/create-study-group.component.ts","webpack:///./App/web/sample-tracking/service/dialog-service/message-dialog/message-dialog.component.ts","webpack:///./App/web/sample-tracking/view-study-group/view-study-group.component.ts","webpack:///./App/web/sample-tracking/delete-study-group/delete-study-group.component.ts","webpack:///./App/web/sample-tracking/edit-study-group/edit-study-group-request.ts","webpack:///./App/web/sample-tracking/edit-study-group/edit-study-group.component.ts","webpack:///./App/web/sample-tracking/reports/delete-report/delete-report.component.ts","webpack:///./App/web/sample-tracking/service/dialog-service/sample-tracking-dialog-service.ts","webpack:///./App/web/sample-tracking/sample-monitoring/sm-notification-rules/sm-notification-rules.component.ts","webpack:///./App/web/sample-tracking/sample-monitoring/notification-form/sm-notification-rule-form.component.ts","webpack:///./App/web/sample-tracking/filter-samples/dynamic-list-view.component.ts","webpack:///./App/web/sample-tracking/sample-tracking.routes.ts","webpack:///./App/web/sample-management/sample-management-guard.ts","webpack:///./App/web/sample-management/sample-management-level.component.ts","webpack:///./App/web/site-shipping-tool/shipment-form/service/form-field.ts","webpack:///./App/web/sample-management/registration/service/sample-details-service.ts","webpack:///./App/web/sample-management/registration/pending-registration.component.ts","webpack:///./App/web/sample-management/registration/registered-samples.component.ts","webpack:///./App/web/sample-management/register-samples/register-sample-info.ts","webpack:///./App/web/site-shipping-tool/shipment-summary/shipment-summary-info.ts","webpack:///./App/web/site-shipping-tool/interfaces/shipment-data.ts","webpack:///./App/web/site-shipping-tool/service/site-shipping-tool-storage.ts","webpack:///./App/web/site-shipping-tool/shared/delete-warning/delete-warning-dialog.component.ts","webpack:///./App/web/site-shipping-tool/shipment-form/service/shipment-form-service.ts","webpack:///./App/web/site-shipping-tool/shipment-form/shipment-form-storage.ts","webpack:///./App/web/site-shipping-tool/shipment-list/shipment-list.component.ts","webpack:///./App/web/site-shipping-tool/service/protocol-shipment-list.service.ts","webpack:///./App/web/site-shipping-tool/protocol-shipment-list/protocol-shipment-list.component.ts","webpack:///./App/web/site-shipping-tool/shipment-form/create-shipment/create-shipment-guard.ts","webpack:///./App/web/site-shipping-tool/shipment-form/service/form-question-service.ts","webpack:///./App/web/site-shipping-tool/shipment-form/create-shipment/create-shipment.component.ts","webpack:///./App/web/site-shipping-tool/shipment-form/resume-shipment/resume-shipment-guard.ts","webpack:///./App/web/site-shipping-tool/shipment-form/resume-shipment/resume-shipment.component.ts","webpack:///./App/web/site-shipping-tool/shipment-summary/shipment-summary.component.ts","webpack:///./App/web/sample-management/home/sm-workspace-level-layout.component.ts","webpack:///./App/web/sample-management/home/navigation/sm-navigation.component.ts","webpack:///./App/web/site-shipping-tool/site-shipping-loader.ts","webpack:///./App/web/admin/e-query/usage-reports/e-query-usage-report-type.ts","webpack:///./App/web/sample-management/register-samples/register-sample-storage.ts","webpack:///./App/web/sample-management/register-samples/additional-container/additional-container.component.ts","webpack:///./App/web/sample-management/register-samples/service/accession-details-service.ts","webpack:///./App/web/sample-management/register-samples/register-samples.component.ts","webpack:///./App/web/sample-management/register-samples/accession-details/accession-details.component.ts","webpack:///./App/web/sample-management/sample-management.routes.ts","webpack:///./App/web/app.routes.ts","webpack:///./App/web/admin/form-fields/audience-roles-select.component.ts","webpack:///./App/web/admin/form-fields/admin-form-fields.module.ts","webpack:///./App/web/audit-trail/audit-trail-reasons-storage.ts","webpack:///./App/web/audit-trail/audit-trail.module.ts","webpack:///./App/web/covance-textfield/covance-textfield.component.ts","webpack:///./App/web/covance-textfield/covance-textfield.module.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/form-fields/protocol-search-select.component.ts","webpack:///./App/web/admin/users/user-search-select.component.ts","webpack:///./App/web/admin/activity-reports/protocol-accesses/protocol-search-field/protocol-search-field.component.ts","webpack:///./App/web/admin/admin-shared.module.ts","webpack:///./App/web/admin/shared/subject.ts","webpack:///./App/web/admin/shared/admin-subjects-storage.ts","webpack:///./App/web/admin/e-query/e-query-storage.ts","webpack:///./App/web/admin/shared/standard-titles-storage.ts","webpack:///./App/web/admin/activity-reports/protocol-accesses/admin-protocol-access-search-fields-storage.ts","webpack:///./App/web/admin/activity-reports/protocol-accesses/admin-protocol-access-filter/admin-protocol-access-filter.component.ts","webpack:///./App/web/admin/activity-reports/admin-activity-reports.module.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/base/upload-dialog-action-buttons.component.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/base/upload-progress.component.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/document-info-dumb-components/application-training-info.component.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/document-info-dumb-components/general-document-info.component.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/document-info-dumb-components/site-communications-info.component.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/document-info-dumb-components/sponsor-communications-info.component.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/document-info-dumb-components/study-manual-info.component.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/document-info-dumb-components/training-materials-info.component.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/form-fields/accession-select.component.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/form-fields/document-textfield/document-letter-number.component.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/form-fields/document-textfield/document-title.component.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/form-fields/document-textfield/document-version-number.component.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/form-fields/project-select.component.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/form-fields/site-select-by-projects.component.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/form-fields/sites-select.component.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/form-fields/subject-select.component.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/form-fields/category-select.component.ts","webpack:///./App/web/user-permissions/user-permissions.module.ts","webpack:///./App/web/admin/upload-documents/category-upload-dialogs/form-fields/projects-select-by-protocol.component.ts","webpack:///./App/web/admin/e-query/e-query-summary/admin-e-query-summary-filters-guard.ts","webpack:///./App/web/admin/e-query/e-query-preview/admin-e-query-preview-dialog.component.ts","webpack:///./App/web/admin/e-query/e-query-details/e-query-title/coordinator-e-query-title.component.ts","webpack:///./App/web/admin/e-query/e-query-details/email-escalations/coordinator-e-query-email-escalations.component.ts","webpack:///./App/web/admin/e-query/admin-escalations/escalation-emails-filter/escalation-emails-filter.component.ts","webpack:///./App/web/admin/e-query/admin-escalations/escalation-search-field/escalation-search-field.component.ts","webpack:///./App/web/admin/e-query/escalation-level-select/escalation-level-select.component.ts","webpack:///./App/web/admin/e-query/e-mails/email-control.ts","webpack:///./App/web/admin/e-query/e-mails/escalation-mail-form-array.ts","webpack:///./App/web/admin/e-query/e-mails/escalation-mail-emitter.ts","webpack:///./App/web/admin/e-query/e-mails/escalation-mail.component.ts","webpack:///./App/web/admin/e-query/escalations/escalations.component.ts","webpack:///./App/web/admin/e-query/prefiled-query-edit/e-query-attachments-uploader/e-query-attachments-uploader.component.ts","webpack:///./App/web/admin/e-query/prefiled-query-edit/admin-prefilled-e-query-edit.component.ts","webpack:///./App/web/admin/e-query/comments/comments.component.ts","webpack:///./App/web/admin/e-query/e-query-details/questions/e-query-questions.component.ts","webpack:///./App/web/admin/e-query/usage-reports/model/admin-usage-e-queries-report-filter.ts","webpack:///./App/web/admin/e-query/usage-reports/usage-e-query-report-filter-items-resolver.ts","webpack:///./App/web/admin/e-query/usage-reports/admin-usage-e-query-filter/admin-usage-e-query-filter.component.ts","webpack:///./App/web/admin/e-query/usage-reports/admin-usage-e-query-report-data/admin-usage-e-query-report-data.component.ts","webpack:///./App/web/admin/e-query/prefiled-query-edit/admin-prefilled-active-e-query-edit.component.ts","webpack:///./App/web/admin/e-query/prefiled-query-edit/active-e-query/active-e-query.component.ts","webpack:///./App/web/admin/e-query/prefiled-query-edit/active-e-query-questions/active-e-query-questions.component.ts","webpack:///./App/web/admin/e-query/prefiled-query-edit/active-e-query-attachments/active-e-query-attachments.component.ts","webpack:///./App/web/admin/e-query/e-query-hide-unhide/hide-filter/hide-equery-filter.component.ts","webpack:///./App/web/admin/e-query/admin-e-query.module.ts","webpack:///./App/web/admin/admin.module.ts","webpack:///./App/web/sponsor/subjects/sponsor-subject-lab-tests-grid.component.ts","webpack:///./App/web/sponsor/can-sponsor-view-e-queries-guard.ts","webpack:///./App/web/sponsor/e-queries/sponsor-e-query-grid/sponsor-e-query-grid.component.ts","webpack:///./App/web/sponsor/e-queries/sponsor-equery.module.ts","webpack:///./App/web/sponsor/sponsor.module.ts","webpack:///./App/web/general-documents/general-documents.module.ts","webpack:///./App/web/on-screen-results/on-screen-results.module.ts","webpack:///./App/web/authentication/okta-widget.component.ts","webpack:///./App/web/authentication/authentication.module.ts","webpack:///./App/web/mail-links/mail-links.module.ts","webpack:///./App/web/authentication/interceptors/emulation.interceptor.ts","webpack:///./App/web/authentication/interceptors/token.interceptor.ts","webpack:///./App/web/loading-bar/loading-bar.ts","webpack:///./App/web/loading-bar/loading-bar.component.ts","webpack:///./App/web/loading-bar/route-loading-bar.ts","webpack:///./App/web/loading-bar/loading-bar.module.ts","webpack:///./App/web/sample-tracking/home/st-header.component.ts","webpack:///./App/web/sample-tracking/service/sample-tracking-action-service.ts","webpack:///./App/web/sample-tracking/group-info/study-group-list.component.ts","webpack:///./App/web/sample-tracking/group-info/study-group-card.component.ts","webpack:///./App/web/sample-tracking/dashboard/protocols/protocols.component.ts","webpack:///./App/web/sample-tracking/shared/samples-search/sample-search-service.ts","webpack:///./App/web/sample-tracking/shared/samples-search/samples-search.component.ts","webpack:///./App/web/sample-tracking/dashboard/overview-dashboard/sample-status/sample-status.component.ts","webpack:///./App/web/sample-tracking/tracking-overview/visit-details/visit-details.component.ts","webpack:///./App/web/sample-tracking/shared/sample-tracking-select/sample-tracking-select.component.ts","webpack:///./App/web/sample-tracking/shared/sample-tracking-grid/sample-tracking-grid.component.ts","webpack:///./App/web/sample-tracking/shared/sample-tracking-grid/sample-tracking-ag-export.component.ts","webpack:///./App/web/sample-tracking/filter-samples/column/container-number-column-renderer.ts","webpack:///./App/web/sample-tracking/filter-samples/column/accession-number-column-renderer.ts","webpack:///./App/web/sample-tracking/tracking-overview/sample-details/sample-details.component.ts","webpack:///./App/web/sample-tracking/tracking-overview/sample-activity/sample-activity.component.ts","webpack:///./App/web/sample-tracking/shared/breadcrumb-service/breadcrumb.component.ts","webpack:///./App/web/sample-tracking/reports/report-types/report-types.component.ts","webpack:///./App/web/sample-tracking/reports/report-grid/report-column-renderer/action-renderer.component.ts","webpack:///./App/web/sample-tracking/reports/report-grid/report-grid.component.ts","webpack:///./App/web/sample-tracking/reports/report-grid/scheduled-report-grid/scheduled-report-grid.component.ts","webpack:///./App/web/sample-tracking/reports/report-grid/generated-report-grid/generated-report-grid.component.ts","webpack:///./App/web/sample-tracking/shared/my-filters/my-filters.component.ts","webpack:///./App/web/sample-tracking/reports/new-report/schedule-report/schedule-report.component.ts","webpack:///./App/web/sample-tracking/reports/new-report/filters/filter-options.component.ts","webpack:///./App/web/sample-tracking/user-preferences/user-settings/user-settings.component.ts","webpack:///./App/web/site-shipping-tool/shared/shipment-grid/shipment-grid.component.ts","webpack:///./App/web/site-shipping-tool/shipment-form/shipment-form.component.ts","webpack:///./App/web/site-shipping-tool/shared/barcode-scanner/barcode-scanner.component.ts","webpack:///./App/web/site-shipping-tool/shipment-form/form-field/form-field.component.ts","webpack:///./App/web/site-shipping-tool/shipment-form/address-form-field/address-form-field.component.ts","webpack:///./App/web/site-shipping-tool/shipment-form/container-barcode-handler/container-barcode-handler.component.ts","webpack:///./App/web/site-shipping-tool/shipment-form/container-barcode-handler/registered-samples/registered-samples.component.ts","webpack:///./App/web/site-shipping-tool/site-shipping-tool.component.module.ts","webpack:///./App/web/sample-tracking/dashboard/dashboard-search/dashboard-search.component.ts","webpack:///./App/web/sample-tracking/sample-tracking.module.ts","webpack:///./App/web/sample-management/home/sm-header.component.ts","webpack:///./App/web/sample-management/register-samples/sample-details/sample-details.component.ts","webpack:///./App/web/sample-management/sample-management.module.ts","webpack:///./App/web/app.module.ts","webpack:///./App/main.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","routeParams","protocolId","childCategoryId","siteId","zcTestCode","studyUrlParam","siteUrlParam","categoryId","editedUserPk","zcSubjectId","tabName","eQueryId","eQueryStageId","accessionNumber","routeData","studySites","selectedStudy","selectedSite","studyPermissions","drawerBehavior","siteSpecificCategories","user","boxPlotGroupSelector","boxPlotXAxisTitle","boxPlotXTickRenderrer","boxPlotXAxisSortingSelector","boxPlotDataExtraFilter","filterDefaultDateRange","sponsorSubjectIdentities","studySiteIdentities","selectedSiteIdentity","selectedStudyGroup","findProtocolId","route","findParameter","findSiteId","findEditedUserPk","findCategoryId","findChildCategoryId","findStudySiteIdentities","findData","findSelectedStudy","findSelectedSite","findTabName","findUser","findFilterDefaultDateRange","findSiteUrlParam","findStudyUrlParam","findAccessionNo","findQueryParams","userNameColumn","headerName","field","filter","floatingFilterComponentParams","suppressFilterButton","emailColumn","blindingRoleColumn","activeSiteColumn","studyRoleColumn","countryColumn","sponsorNameColumn","protocolNameColumn","comparator","a","b","mixedStringComparator","protocolNumberColumn","siteSpecificColumn","valueGetter","params","sites","map","siteNum","join","getCompositeSiteColumn","sort","visitColumn","visitCollectionDateColumn","visitCollectionDate","accessionNumberColumns","subcategoryTitleColumn","subjectNumberAndInitialsColumn","renderTitle","subjectNumber","initials","subjectInitials","screeningNumber","eQueryIdColumn","width","numberComparator","createDateColumn","createDate","responseDateColumn","responseDate","issueTypesColumn","stringComparator","statusColumn","responseAgeColumn","cellRendererFramework","distanceComparator","filterValueGetter","responseAge","formattedValue","readDateTimeColumn","accessDateTime","documentTypeColumn","projectNumberColumn","siteNumberColumn","descriptionColumn","notifyTypeColumn","emailDateTimeColumn","emailDateTime","emailSentToColumn","days","hours","this","numVal","strVal","toString","buildDateColumn","label","buildDateTimeColumn","getActivityReportsVersionColumn","minWidth","report","isSynopsis","subcategoryId","versionDate","isLabManualsOthers","title","version","downloadActions","documentCategories","uploadActions","uploadCategories","emailNotificationPreferencesActions","http","settings","userStorage","navigationActivity","activitySession$","createUserSession","pipe","userSessionId","publishReplay","activitySessionSubscription","connect","ngOnDestroy","unsubscribe","logActivity","userActionName","first","toPromise","activitySession","sendActivities","logAccessEQueryDetailView","details","logDownloadActivity","dlLinks","links","Array","isArray","processDownloadedLinks","logUploadActivity","userAction","activityData","logEditFileActivity","documentId","processDocumentActivity","logAddTranslationsActivity","logHideUnhideDocumentActivity","logChangePreferredLanguageActivity","editedUserId","logUserSettingsActivity","logChangePreferredUnitsActivity","logAddEmailNotificationActivity","logEditEmailNotificationActivity","logDeleteEmailNotificationActivity","logResetEmailPreferences","logChangeEmailPreferencesActivity","emailPreferences","userActions","groupBy","x","grouped","logNavigationActivity","getNavigationActivity","logUserEmulationActivity","action","emulatedUserId","processUserEmulationActivity","refreshUserSession","post","apiUrl","userActionNames","currentUser","metadata","userId","activityDataList","console","error","response","url","body","headers","set","link","categoryNaturalKey","activityDetails","getActvitiyDetailFromDlLink","detail","activity","linkType","reportId","Error","assertUnreachableCode","ActivityLogger","maxBytesError","maxLengthInBytes","maxBytesCount","control","utf8BytesCount","unescape","encodeURIComponent","requiredLength","actualLength","forbiddenValueError","forbidValues","forbiddenValues","notNullOrWhiteSpace","trim","inValidDateError","dateValidation","date","Date","parse","isNaN","futureDateError","futureDateValidation","currentDate","isValid","isAfter","editedUser$","userFullName$","combineLatest","editedUser","fullName","UserSettingsComponent","selector","template","styles","changeDetection","OnPush","urlBuilder","snapshot","tabsCategories","esa","globalPopup","userGeneralSettings","isSponsorOrInvestigator","userEmailSettings","of","UserSettingsTabbedComponent","convertLevelToString","level","levelChange","ngOnInit","levels","stringLevels","selectedLevel","onLevelChange","emit","EmailPreferenceLevelSelectComponent","UserModule","declarations","imports","entryComponents","providers","navigate","shouldOpenInNewTab","open","location","href","String","redirectOnExpiration","linksDictionaryStorage","idpLinksDictionaryStorage","idpLinks","corporateMandatesDictionaryStorage","corporateMandates","featureTogglersDictionaryStorage","featureTogglers","isFeatureEnabled","featureKey","featureTogglersDictionary","uploadedFileExtensionsByCategoryId","item","uploadedFileExtensions","find","extensions","getSpecificUserApiUrl","isInvestigator","isSponsor","notSupportedRoleError","getSubDomain","browserUrl","findSubDomain","subdomain","search","CorporateMandate","FeatureToggler","Link","UploadedFileExtension","Settings","baseHelperParams","parent","commands","returnUrlQueryKey","outletName","prepareCommands","urlTree","router","queryParams","preserveQueryParams","parseUrl","createUrlTree","getNavigationUrlTree","navigationExtras","undefined","navigateByUrl","getUrl","reload","urlSerializer","serialize","prepareExternalUrl","getExistingReturnUrl","split","queryParam","RegExp","exec","saveReturnUrl","returnUrl","decodeURIComponent","getReturnUrl","baseElement","document","querySelector","substring","preserveFragments","urlSegmentGroupKey","currentPaths","root","children","segments","path","subCommands","activityReportsHelperParams","documents","paths","protocolAccess","accessInvestigation","emailNotificationAlerts","inventorySummary","onHandExpiration","eQuerySummary","hideEQueries","escalationEmails","usageReport","adminHelperParams","uploadDocuments","announcements","commonLinks","protocols","userAccess","auditLogs","kitInventory","coordinatorEQuery","adminEQuery","activityReports","editDefaultColumns","generalDocumentsHelperParams","generalCommands","category","outlets","globalPopupHelperParams","baseBuildPartParent","empty","getCommands","generalDocuments","siteCommunicationsMassUpload","outletCommands","emulateUser","terms","portaldisclaimer","investigatorEQueryDetails","sponsorEQueryDetails","coordinatorEQueryDetails","documentsCategoriesHelperParams","subCategory","underSubCategory","documentsHelperParams","microbiologyHelperParams","isolateCultureData","standardTestResultsHelperParams","tab","StandardTestResultsBuildPart","getPaths","testResults","trends","boxplots","onScreenResultsHelperParams","OnScreenResultsBuildPart","standardTestResults","microbiology","eQueryHelperParams","awaitingResponse","responseSubmitted","siteHelperParams","site","study","studyUrlParameter","siteUrlParameter","onScreenResults","labReports","eQueries","subject","trendAnalysisHelperParams","labTest","siteBoxPlot","visitBoxPlot","testResultsHelperParams","studyHelperParams","expiration","trendAnalysis","sponsorCommunications","subjects","subjectId","routes","tableau","studyDocuments","childCategory","studyDocumentsRoutePath","siteDocuments","routePaths","resultAlerts","sponsorHelperParams","overviewHelperParams","studyInfo","groupPk","overview","studyGroupDashboard","filterSamples","type","protocolHelperParams","protocolInfo","protocolFk","protocolDashboard","reportHelperParams","home","GeneratedReports","ScheduledReports","NewGenerateReport","reportTypeId","NewScheduledReport","helperParam","notifications","notificationRules","newRuleForm","editRuleForm","ruleId","sampleTrackingHelperParams","sampleAliquots","sampleMonitoring","preference","studyGroup","visitDetails","sampleDetails","containerNo","subjectSearchResults","subjectID","subjectVisitDetails","subjectSampleDetails","list","createShipment","shipmentSummary","id","shipmentSubmittedSummary","resumeShipment","samplesShipmentByProtocol","pendingRegistration","registeredSamples","registerNewSample","resumeRegistration","siteShipping","esaHelperParams","admin","sponsor","login","sampletracking","logout","navigateToReturnUrl","routerState","sampleManagement","UrlBuilder","FEMALE_COLOR","MALE_COLOR","DEFAULT_COLOR","getShapeByGender","gender","toLowerCase","getColorByGender","getSexLabelByShape","shape","high","low","other","nonFlagged","getFlaggedClassName","labTestResult","isFlagged","FlaggedClassNames","alertFlag","toUpperCase","startsWith","canBeUsedInCharts","isCancelled","currentResult","numericResult","isQuestion","canBeUsedInTrends","pointsSelector","linesSelector","opaqueClassName","hiddienClassName","classedSelectedLineChartElements","svgChart","className","selectedRows","selectAll","classed","indexOf","rows","removeClassFromAllLineChartElements","onOfSwitch","forEach","classedAllLineChartElements","hideAllButSelectedSubjects","selectedItems","selectedSubjectsIds","selectedTests","test","ctSubjectId","e","labTestId","opaqueAllButSelectedSubjects","selectedItem","removeOpacityFromAllElements","getOutliers","clearOutliers","remove","buildBoxPlotGenderLegend","isGendersSplited","genders","outliers","dataPoint","uniq","g","color","orderBy","boxPlotVisitTickRenderrer","groupKey","results","visitCode","visitName","boxPlotSiteTickRenderrer","siteNumber","getSponsorTitle","PageTitle","getTitle","getAdminTitle","getInvestigatorTitle","mainTitle","subTitle","removedSubjectLabel","numberAndInitials","renderSubjectTitle","subjectNumberAndInitials","subjectInfo","emptyChar","age","ageUnit","ageProjectDisplayValue","sex","exportSortId","text","routerLink","renderSubjectNumberOrScreening","stringCollator","numericStringCollator","Intl","Collator","numeric","sensitivity","debug","comparators","getStringComparator","dateTimeComparator","valueA","valueB","missingValuesComparison","missingValuesComparer","momentA","momentB","isMomentAValid","isMomentBValid","isBefore","linkParamsComparator","linkNumberParamsComparator","ticks","valueAMissing","valueBMissing","collator","stringValueA","stringValueB","compare","localeCompare","resolvedOptions","labelText","contentText","labelClass","contentClass","transform","formatDate","FormatDatePipe","formatDateTime","FormatDateTimePipe","sanitizer","bypassSecurityTrustHtml","SafeHtmlPipe","unitStorage","unitOptions","selectedUnitOption","currentUnit","onUnitChanged","option","setUnit","UnitSelectorComponent","authState","queryParams$","copyright","corporateMandatesDictionary","privacyLink","linksDictionary","isAuthenticated$","authInfo","isAuthenticated","subscribe","val","isUserLoggedIn","contactUsLink","u","refCount","appSubDomain","termsAndConditionsLink","disclaimerLink","FooterComponent","activatedRoute","changeDetectorRef","onChange","dataSource","subscription","items","selectItemByQueryParam","markForCheck","ngOnChanges","change","$event","getValue","relativeTo","replaceUrl","getText","textGetter","Observable","CovanceSelectDropdownComponent","args","millisToMinutesAndSeconds","milliseconds","minutes","Math","floor","seconds","toFixed","MillisecondsConverterPipe","UserPreferencesModule","resetFilter","reset","selectFilterComponent","setFocus","ClearableTextfield","toggle","isToggled","CovanceExpansionPanelComponent","changeDectRef","gridService","setDefaultWidth","paginationPagePerItems","initialPageSize","loadingText","emptyDataPlaceHolder","skipDefaultOrderBy","hideDefaultSortIcon","defaultOrderByField","draggableColumn","defaultSortingOrder","loadColumnFilterOnChange","handleDateTimeFormat","showChildRows","onRowSelected","onItemClick","onColumnOrderChange","onDropDownSelect","onReasonSelect","onSubmitted","currentPage","pager","pageSize","selectedElement","selectedelementId","headerSearchValue","Subject","searchSubscription","debounceTime","searchData","headerKey","selectedHeader","grid","header","gh","headerSearchText","paginationData","searchOnFilterCheckBoxChange","onHeaderSearch","setPagination","onOutsideClick","targetElement","offsetParent","getElementsByClassName","onFilterClick","showSearchOrFilter","setTimeout","setUniqueValues","sortByHeader","onGridItemClick","isChild","onHeaderSearchBoxChange","searchText","onFilterSearchBoxChange","filteredUniqueItems","uniqueItems","onFilterCheckBoxChange","ce","selectedCheckBox","fui","isChecked","selectedFilterCount","selectedUniqueItem","selectAllCheckboxElement","getElementById","selectedStatus","isAllCheckBoxSelected","every","Boolean","isSomeCheckBoxSelected","some","checked","indeterminate","ss","onPageChange","element","classList","onColumnHeaderDrop","event","previousIndex","currentIndex","onGroupingRowClick","index","groupingElement","tableRowElement","onSelectAllRow","allRowSelected","gd","rowSelected","onRowSelect","selectId","handleNgClass","rowData","cssClasses","class","onDropdownChange","selectedValue","dropDownList","onReasonChange","reasonList","showOtherReason","showOther","onSubmitClicked","filterData","showPagination","gridCount","HTMLElement","TrackingGridComponent","pagePerItems","paginationEvent","ngAfterContentInit","getPager","startPage","endPage","totalPages","ceil","totalItems","showBeforeDots","showAfterDots","startIndex","endIndex","min","pages","from","keys","gotoPageItems","visiblePages","gotoPages","setPage","onPaginationAction","onPagePerItemSelect","onAfterDotsclick","onBeforeDotsclick","PaginationComponent","SpinnerComponent","filterDateRangeType","ref","timeFrameRanges","disableToDate","customFromDateLabel","customToDateLabel","valueChange","showDropDown","rangeKinds","selected","myDatePickerOptions","dateFormat","showTodayBtn","todayBtnTxt","customRangeKind","defaultDate","fromDate","loadDefaultDates","toDate","selectedRange","changes","previousDateRangeValue","rangeType","dateRangeValue","dateBegin","dateEnd","togglePopover","onPopoverHide","range","onRangeKindChange","year","getFullYear","month","getMonth","day","getDate","selectedRangeKind","handleTimeframeFilter","getTodayRange","getWeeklyRange","getMonthlyRange","getTwoMonthsRange","getQuarterlyRange","applyDateChanges","isInvalidDateRange","triggerEmit","newRangeValue","getDateRangeType","getEmptyDateRangeValue","onShowToSelector","isShowToSelector","onShowFromSelector","isShowFromSelector","onDateBeginChange","moment","jsdate","formatedDate","onDateEndChange","getCustomRangerLabel","subtract","format","defaultString","defaultFromDate","defaultToDate","TimeframeFilterComponent","isLoading","defaultDisplayItem","onSelectChange","showDropdownList","displayItem","filterItems","listItems","li","si","updateItemChanges","onSearchBoxChange","onItemChange","isSingleSelect","filterItem","selectedItemsName","toolTipData","SelectComponent","SearchBarComponent","changedect","isDropDownField","isRequired","fieldInstruction","showInput","errorMsg","errorMsgIcon","customErrorMsg","showLoading","showDropDownSearch","fieldType","onDropDownValueSelected","onDropDownValuesSelected","onDateEntered","onValueEntered","onRadioButtonValueChanged","isInputFocused","checkedList","selectAllChecked","disableFutureDate","disableSince","fieldControl","valueChanges","setValue","defaultDropDownList","showSelectAll","multiSelect","selectAllData","findIndex","defaultValue","toolTip","controlName","dropDownItemClicked","markAsTouched","onScheduledChange","formatted","unSelectAll","getSelectedValue","cl","IsInvalidField","touched","displayError","hasError","isNumberField","isDateField","handleChange","NotificationFormFieldComponent","topLevelMenu","hasChildMenu","expandChildNav","validateUrl","childRoute","urlSegment","getToolTip","rootLink","badgeToolTip","rootLinkClick","rootIndex","currentLink","childLinkClick","isChildMenu","segement","NavigationServiceComponent","agGrid","withComponents","SharedModule","audienceRoleDataKey","canActivate","state","audienceRoleName","audienceRole","userRole","isAudienceRoleValid","UserAudienceRoleGuard","roleName","detailType","activityType","DOCUMENTS_COLUMNS_TOKEN","selectColumn","checkboxSelection","nodeA","nodeB","titleColumn","categoryColumn","letterNumberColumn","postedColumn","postedDateTime","versionNumberColumn","versionDateColumn","zcProjectNumberColumn","filterParams","filterOptions","trainingMaterialsProjectColumn","projectNumber","regionColumn","sitesColumn","fl","getSiteNumColumn","suppressMenu","visits","visit","sortBy","valueOf","cellRenderer","getQuickFilterText","isResponseRequiredColumn","floatingFilterComponentFramework","booleanValueRenderer","responseNeededByColumn","responseNeededBy","getDownloadColumn","fileLinks","language","suppressSorting","suppressFilter","noExport","cellStyle","overflow","downloadColumn","viewColumn","downloadViewColumn","reportTypeColumn","siteDisplayNameRenderer","investigatorFullName","nullable","KeyValuePair","DocumentFilterItem","activityLogger","resolve","handler","NavigationActivityResolver","currentUserInternal","loadUser","UserStorage","FilterFieldType","ageValueStart","ageUnitStart","ageValueEnd","ageUnitEnd","isInRange","daysLived","fromDays","toDays","operator","dialogService","showPrint","showSave","showExport","exportDisclaimer","exportGrid","showTotal","showCount","checkBoxLabel","documentsSave","documentsPrint","checkBoxClicked","checkBoxValue","exportTypes","exporter","exportCsv","exportXlsx","handleSort","sortModels","api","gridOptions","totalCount","forEachNodeAfterFilter","group","unreadCount","isRead","getCheckboxIconName","selectedRowNodes","allNodes","forEachNodeAfterFilterAndSort","rowNode","anyRowsSelected","anyPrintableRows","isPrintable","anyPrintableRowsSelected","onClick","exportType","onSaveDocuments","getSelected","onPrintDocuments","unprintables","confirm","onSaveUnreadDocuments","getAllUnread","onPrintUnreadDocuments","onCheckBoxClicked","selectUnread","node","setSelected","selectAllFiltered","deselectAll","isSavable","getUnreadDisabledAttr","isEnabled","getExportParams","columnsToExport","columnDefs","customHeader","columnKeys","skipGroups","fileName","getExportFileName","processCellCallback","renderrer","column","getColDef","Function","serializeUrl","subPath","b64toBlob","b64Data","contentType","byteCharacters","atob","byteArrays","offset","byteNumbers","charCodeAt","byteArray","Uint8Array","Blob","openFileLink","blob","navigator","msSaveOrOpenBlob","elem","createElement","URL","createObjectURL","download","appendChild","click","removeChild","copyGridSortToExportGrid","sortModel","getSortModel","setSortModel","quickFilterText","setQuickFilter","exportOptions","csvData","getDataAsCsv","workBook","xlsx","raw","exportData","additionalSheet","json_to_sheet","book_append_sheet","xlsxContent","bookType","bookSST","firstSheetName","SheetNames","firstSheet","Sheets","sheet_add_json","origin","csvContent","AgExportComponent","CovanceAgGridModule","multiLineStringColumn","parameters","stringsValueGetter","tooltipGetter","useFilter","colDef","getLineCount","entity","strings","getRowHeight","dataStrings","role","displayValue","tooltips","actionsMenuColumn","properties","maxWidth","display","justifyContent","headerValueGetter","accessionNumberColumn","buildRouterLink","accessionNumbersAccessor","accessionNumbers","textedAccessionNumbers","serializedAccessionNumbers","JSON","stringify","subjectColumn","titleRenderer","subjectTitle","GridColumns","findNearestRouteValue","accessorValue","segment","routeValue","routeSnapshotExtensions","paramName","routeSnaphot","dataName","wrongCredentialsMessage","oktaErrorMessages","clientId","redirectUrl","issuer","authInfoSource","scopes","oktaAuth","responseType","redirectUri","pkce","tokenManager","storage","loadInitialState","expirationSource","createExpirationSource","asObservable","session","exists","refresh","status","token","getWithoutPrompt","setToken","tokens","idToken","username","password","signInWithCredentials","loginResult","errorMessage","errorCode","message","sessionToken","loginWithWidget","getTokens","close","clear","signOut","postLogoutRedirectUri","successfulAuthentication","next","ExpirationSnapshot","q","isExpired","AuthenticationState","unixNow","unix","unixLeft","expiresAt","timeLeft","prepareFilterUrlParams","filterParameters","httpParams","filterParam","filterValue","def","v","append","UNREAD_REPORTS_STORAGE","categoriesStorage","markedAsRead$","updatedUnreadCounters$","refresher","getUnreadCounters","loadedUnreadCounters$","recalculatedOnDocumentsReading$","updatedReports","unreadCounters","recountOnDocumentsReading","recalculatedOnCountersUpdating$","recountOnCountersUpdating","allUnreadStream","markAsRead","reports","unreadBySite","unreadUpdate","isReadByMe","acknowledgement","viewHistory","updateUnreads","getFreshUnreadsStream","refreshUnreads","allUnread","loadUnreadCounters","readModelCtor","counters","navigationActivityHandler","FILTER_NAME_DIALOG_DATA","dialog","dialogData","formTitle","filterName","occupiedFilterNames","f","toLocaleLowerCase","setValidators","nonEmptyNameValidator","uiqueNameValidator","ngAfterViewInit","onOkClick","saveChanges","hide","onCancelClick","FilterNameDialogComponent","selectedCovanceFilterName","filterStorage","fieldVals","filterChanged","filterFieldType","isFilterExpandButtonHidden","filterSelectionNotification","filters","filterGroup","BehaviorSubject","isFilterExpand","selectedFilterName","qp","filterSubscription","isLoaded","withLatestFrom","switchMap","getFilters","selectedFilter","savedFilters","listen","updateSelect","previousValue","getContainerWidth","container","nativeElement","offsetWidth","onFilterChange","newSelectedFilter","toggleFilter","isUnsavedFilter","isChangedFilter","isEmptyFilter","fieldVal","queryParamValue","savedFilter","save","getOccupiedFilterNames","showFilterNameDialog","dialogResult","edit","undo","undoFilter","showCustomDialog","component","provide","useValue","isModal","onHide","delete","then","catch","deleteFilter","getVisibleFieldVals","visibleFilters","External","isPinned","fieldValsWithOrder","order","fieldValsWithoutOrder","getFilterName","getDisabledAttr","filterId","filterNames","savedFilterNames","writeValue","isDirty","CovanceFilterComponent","encapsulation","None","CHAIN_NODE_DIALOG_ARGS","fields","selectedField","onChangeField","ok","fieldName","ChainNodeDialogComponent","dialogServce","filterChainNodeType","enableAddPreFilter","enableAddPostFilter","addPreFilter","createFilter","newFieldVal","setQueryParamValue","onFieldAdd","Pre","addPostFilter","Post","openDialog","createFilterFieldValue","model","filteredEntityFields","Promise","reject","CovanceChainFilterComponent","filterType","onFieldChange","CovanceFilterTextTypeComponent","setFilterQueryParam","CovanceFilterNumberTypeComponent","oldFieldValue","max","ngDoCheck","onMinChange","getNumberValue","onMaxChange","isNumber","CovanceFilterNumberRangeTypeComponent","onDateChange","CovanceFilterDateTypeComponent","changeDetector","_","k","selectedRangeKinds","onDateRangeChange","CovanceFilterDateRangeTypeComponent","getItems","hasItems","CovanceFilterSelectTypeComponent","onOptionChange","CovanceFilterMultiSelectTypeComponent","getCheckboxIcon","CovanceFilterCheckboxTypeComponent","onChangeSelectValues","values","deleteChainNode","deleteFieldVal","CovanceFilterChainNodeTypeComponent","filterAgeRangeType","startUnit","endUnit","startValue","endValue","isRefreshed","skip","ageUnits","emitEvent","setInitialValues","isInvalidAgeRange","CovanceFilterAgeRangeTypeComponent","filterAgeType","operatorControl","dayControl","operators","Subscription","setAgeValues","add","scheduled","queue","mergeAll","op","initValueChanges","ageFilter","CovanceFilterAgeComponent","CovanceFilterDateTimeRangeTypeComponent","CovanceFilterModule","EMAIL_PREFERENCE_STORAGE_TOKEN","paramsSubject","sources","emailPreferencesInternal","needToShowSpinner","returnNullToShowSpinner","levelIndicator","reloadEmailPreferences","saveEmailPreferences","userPk","put","resetToDefault","saveOrUpdateEmail","email","sitelinkUserEmailId","deleteEmails","emails","EmailPreferencesStorage","filterTextType","filterNumberType","filterNumberRangeType","filterDateType","filterSelectType","filterMultiSelectType","filterCheckboxType","filterDateTimeRangeType","covanceFilterQueryParams","urlParamValue","getFilterType","queryParamsToString","getObservableQueryParams","allParams","isChanged","observableQueryParams","allQueryParams","getFilteredData","entities","setItems","isServerSideFilter","isMatch","setFiltersItems","leaveOnlySelectedItems","itemKey","getFieldValues","cols","col","filterFieldDef","isOff","fieldDef","Text","serializeFieldValues","serializeValue","theFilter","Number","NumberRange","DateRange","DateTimeRange","Select","MultiSelect","Checkbox","AgeRange","Age","CovanceFilter","unitInternal","currentUnitInternal","opt","preferredUnits","UnitStorage","defaultDateFormat","defaultTimeFormat","filteredItems","icui","sortedHeader","prevSort","searchedItems","sah","isSortByAsc","gridData","isDate","isDateTime","reverse","enableFilter","Set","ui","setUniqueValuesOfHeader","gridHeader","dateFormatter","dateField","timeField","isTime","df","valueField","primaryField","skipConversion","TrackingGridService","assertExistingEntityProperty","typeName","constructor","disclaimerHtmlCached","osrDisclaimerTextCached","portalDisclaimerHtmlCached","TermsStorage","isLabReport","isSiteActions","isELearningCategory","isTrainingMaterialsELearning","isTrainingMaterialsOthers","Category","UserPreferencesStorage","getExpiredDateFormat","expiresOn","customDeserializer","getKits","filtersParams","kits","getKitDetails","ctSiteId","kitTypeId","kitDetails","loadFilterItems","documentFilterItems","loadSponsorFilterItems","loadSponsorExpirationFilterItems","getKitReports","kitReports","getSponsorKitExpirationReport","maxNumberOfSponsorLabReports","kitExpirations","getAdminKitReports","protocol","studyId","encodeURI","getAdminKitExpirationReport","loadAdminFilterItems","loadAdminExpirationFilterItems","getHelpText","KitInventoryStorage","termsStorage","osrDisclaimerText","OsrDisclaimerComponent","kitOrderLink","kitDisclaimerText","KitDisclaimerComponent","CorporateModule","CalToggle","dateChanged","onCalendarDateTimeSelect","isDisabledTime","selectedHours","selectedMinutes","onTouched","getTimeArray","CovanceDatePickerComponent","registerOnChange","fn","registerOnTouched","setDisabledState","isDisabled","datePicker","datePickerOptions","inline","height","showSelectorArrow","selectionTxtFontSize","indicateInvalidDate","disableUntil","convertDate","allowTimePicker","selectHours","selectMinutes","merge","popoverComponent","onShow","isShownDateSelector","locale","setLocaleOptions","placeholder","opts","updateDateValue","onCalendarToggle","Open","closeTimeSelection","getDateTime","onDateTextChange","valid","validate","invalid","getErrorText","isInvalidDate","invalidDate","onChangeTime","dateTime","numberOfElements","fill","substr","useExisting","multi","CovanceDatePickerModule","LOAD_ALL_RESULTS_QUERY_PARAMETER","ACCESSION_FILTER_QUERY_PARAMETER","getOptionalParametersForSTRQuery","loadAllQueryParam","selectedAccessions","selectedAccessionJson","accessions","warn","optionalQueryParams","accession","deserializeDate","uploadFileName","FileLink","fromString","subjectNaturalKey","VisitReportInfo","Report","getDescription","fromCharCode","VisitReport","allProjects","zcProjectNumber","deserializeBooleanFlag","tooltipClassName","removeAllTooltips","separator","dateBeginRegExp","dateEndRegExp","dynamicRanges","getMonthToDateRange","getYearToDateRange","valueRange","rangeResolver","getDateBegin","getDateEnd","match","startOf","CovanceFilterDateRangeType","navigationActions","protocolName","Protocol","LegendModule","UserFilter","filtersValue","isLoadedValue","rawData","responseFilter","loadFilters","UserFiltersReadModel","FiltersStorage","EmailPreferenceLevelType","description","isDefault","emailAddress","Email","EmailPreference","fileId","toQueryParamsObject","addTooltipItems","newItems","concat","addItems","getTooltipContent","getRowContent","escapeHtml","unsafe","replace","TooltipFormatter","CovanceFilterDateType","LAB_TEST_RESULTS_LINK_BUILDER","SITE_LAB_RESULTS_STORAGE","PositionType","noneValueHelper","tryParseChainIndex","parsed","parseInt","chainIndex","parseQueryValue","rawValue","filteredFieldName","chainNode","encodeQueryParam","position","chainsIndexes","paramValue","paramKey","newChainIndex","ChainNode","decodeQueryParam","CovanceFilterChainNodeType","DL_LINKS_TOKEN","dlTask","downloadState$","downloadProgress$","handleDownloadHttpEvent","DownloadProgress","handleDownloadProgress","Response","handleOkResponse","handleDownloadError","startDownloading","dlSubscription","complete","observe","reportProgress","filename","getFileName","getContentType","myBlob","size","fileURL","sanitize","NONE","target","revokeObjectURL","loaded","defaultFileName","filenameHeader","DownloadDialogComponent","EMAIL","USER_PK","emailPreferencesStorage","initialEmailAddress","prefs","validableValues","emailAddresses","required","pattern","updateValueAndValidity","markAsUntouched","submit","newEmail","saveEmail","cancel","EmailAddressFormDialog","defaultReportSort","defaultProtocolAccessesSort","dateComparatorResult","siteName","accessGivenDate","agInit","row","CellTooltipAgRendererComponent","truthfulStrings","deserializers","deserializeUtc","valueLowerCase","rowGroupIndex","groupColumn","columnApi","getAllColumns","groupTypeName","isLinkParams","count","allChildrenCount","HeaderGroupRenderer","displayName","setupSort","enableSorting","eLabel","addEventListener","progressSort","shiftKey","addDestroyableEventListener","EVENT_SORT_CHANGED","onSortChanged","removeSorters","addOrRemoveCssClass","isSortAscending","isSortDescending","isSortNone","eSortAsc","eSortDesc","el","parentNode","HeaderTooltipAgRendererComponent","investigatorRoleName","sponsorRoleName","adminRoleName","internalRoleName","systemAdminRoleName","getUnits","res","labTestResults","getLabTestResults","testWithUnit","unit","getUnitsForTestResultExport","getLabTestResultsForExport","getRangeRenderer","testWithResult","getRangeRendererForTestResultExport","getDataRevision","hasDataRevision","sortLabTestResultData","accessionId","testGroup","testSequence","aLabTestResult","bLabTestResult","sequence","getResultRenderer","getResult","commentsRenderer","tooltip","getAdminQuestionRenderer","getDisplayValue","testResultsParams","getCombinedLabTestResultsUniqKey","uniqLabTestIdKey","visitTestId","visitCollectionDateValue","sortSubjects","getSubjectInfo","isAgeProject","displayText","hasSubjectDataRevision","testId","StandardTestResultHelpers","groupingOptions","freeze","none","columnTitle","authenticationState","downloadDocumentsByUrl","showDialog","getVideoUrl","dlLink","linkParams","fromObject","downloadCategoryDocuments","downloadDocumentLink","notificationData","downloadDocumentByUrl","downloadSampleReportByUrl","DocumentDownloader","MultilineFormatter","DataRevisionIndicator","sitesValue","saveSiteIsFavorite","isFavorite","loadSites","rawStudies","getMultiSelectedProjectSites","projects","subProtocolIds","getSubProtocolIds","project","subProtocolId","InvestigatorSitesStorage","langStore","documentDownloader","printReports","readMarker","getTheFiles","saveReports","getPreview","getPrintOrSaveParams","allLanguages","langs","lang","preferredLanguageId","defLangId","languageRowId","fileLink","languageId","fileLinkCategory","ReportDownloader","agent","panel","collectionDateTime","testCollectionDateTime","testAccessionId","organism","organismComment","setPanel","isSubTestCancelled","isSubGroupCancelled","subGroupCancellationReason","subTestCancellationReason","selectedSiteId","getMicrobiologyForSite","selectedSubject","getMicrobiologyIsolateCultureForSubject","switchAll","selectedCtSubject","ctSubject","MicrobiologyStorage","unreadReportsRegistry","languagesStore","eLearningOpener","languages","preferredLanguage","isLanguageSelectionDisabled","orderLanguage","orderFunc","isPreviewAvailable","previewDocument","stopPropagation","configDialog","clickOutsideToClose","onLinkClick","fileExtension","pop","playableVideoFileExtensions","openPlayVideoDialog","openELearning","downloadFile","videoUrl","videoLoaded","refreshView","redrawRows","LanguageLinkAgRendererComponent","pendoInitialization","userInfo","blsApiKey","setPendoScript","pendoInitObj","visitor","account","visitorInfo","pendo","initialize","updateSponsorPendoDetails","studyCard","sponsorName","updateOptions","updateInvestigatorPendoDetails","pendoRef","apiKey","pendoActions","windowPendoRef","_q","arguments","htmlElement","async","src","getElementsByTagName","insertBefore","PendoService","isNone","filterValues","getItemVal","missingItems","skipMissingItems","addSelectedValueToSource","sortItems","CovanceFilterMultiSelectType","source","CovanceFilterSelectType","numberPattern","numberRegExp","minRegExp","maxRegExp","isMatchByRange","numberValue","matchMin","matchMax","CovanceFilterNumberRangeType","getSubjects","SubjectsStorage","nameUpperCase","showResultsInSI","siResult","convResult","unitPart","flags","sponsorFlag","deltaFlag","exclusionFlag","Flag","flag","resultFormat","visitDescription","visitTitle","LabTestResult","helper","labTestResultsLinkBuilder","getSubjectExportColumns","cellClass","getBaseColumns","pinned","suppressSizeToFit","getTestLink","getColumnsForExport","baseColumns","hasVisitDataRevision","hasResultDataRevision","getFlags","sortFlags","flagsByCategory","tempResult","stringResult","LabTestsGridColumns","trendsSiteFilterTitle","visitFilter","selectedValues","visitCollectionDateFilter","accessionNumberFilter","testGroupFilter","testFilter","getUniqueTestsWithUnits","selectedKeys","isMatchToTestsWithUnits","valueFilter","isFlaggedFilter","isQuestionFilter","flagsFilter","getUniqueFlags","selectedFlagKeys","isMatchToFlags","subjectFilter","genderFilter","siteFilter","selectedSites","filteItem","ageProjectFilter","flaggedTrendsFilter","trendFlags","flagTrendsFilter","siteDataFilterFieldDefs","trendsFilterFieldDefs","flatten","uniqBy","entityFlags","testNameWithUnit","OnScreenResultsFilterDefenitions","SUBJECT_LAB_TESTS_DATA_SOURCE","SubjectNaturalKey","investigatorDefaultActivityHandler","SITE_LAB_RESULTS_FILTERS_STORAGE","labResultsStorage","loadAll$","siteLabResults","getSiteLabResultsRestricted","unitOption","isSiUnit","filterFieldVals","filterFieldsData","connection","FilteredLabTestResultsStorage","testTitle","DATE_TIME_FORMAT","formatters","formatBoolean","alwaysShowTooltip","MulticellAgRendererComponent","componentHandler","TestResultAgRendererComponent","isOptional","onQuestionMouseOver","TestTitleAgRendererComponent","dataRevisionIndicator","revisionMessage","visitDataRevisionMessage","TestVisitAgRendererComponent","selectedOptionChange","options","groupName","optionTextGetter","optionValueGetter","selectedOptionValue","onSelection","GroupingSelectorComponent","GroupingModule","getAgeInDays","scale","isTestCancelled","isGroupCancelled","years","ageInYears","months","ageInMonths","ageInDays","groupCancellationReason","testCancellationReason","allowedAgeOperators","operatorRegexValues","parseQueryString","CovanceFilterAgeType","multilineFormatter","MultilineComponent","alwaysShow","onMouseOver","resultContent","firstElementChild","scrollWidth","windowHeight","innerHeight","documentElement","clientHeight","elementBottom","getBoundingClientRect","bottom","tooltipComponentHeight","tooltipComponent","mouseEnter","onMouseLeave","mouseLeave","CovanceTooltipComponent","CovanceSelectModule","DELETE_DIALOG_TOKEN","code","isDeleted","DeleteModalComponent","COLUMN_SETTING_TOKEN","dialogReference","columnSettingInfo","subheaderText","multiSelectItems","dragList","dragListCopy","showReset","settingsInfo","availableColumns","selectedColumns","drop","contains","multiSelectDropListDropped","previousContainer","isMandatory","multiSelectDragStarted","dropContainer","dragElement","parentElement","querySelectorAll","eli","dragErase","posAdjust","otherListCopy","multiSelectedSection","onResetClick","resetSettings","dragOnAvailableColumn","dragStart","currentTarget","focus","dragData","dragFrom","dataTransfer","setData","dragOnSelectedColumn","allowDrop","preventDefault","onColumnDragOver","isMandatoryField","nextSibling","onAvailableColumnDrop","removeMultiSelectedColumns","setList","onSelectedColumnDrop","addMultiSelectedColumns","dragEnd","effectAllowed","onAvailableColumnDoubleClick","onSelectColumns","onSelectedColumnDoubleClick","sc","onColumnClick","listName","addColumns","removeColumns","onApplyClick","el1","el2","cur","previousSibling","childNodes","textContent","parentId","ac","selectedSection","ms","ColumnSettingsComponent","EmailNotificationFrequencyOption","menuItems","createMenuItems","isMenuItemsEmpty","toggleMenu","cultureMenuBtn","menuDirection","getVerticalPixelRange","rowTop","rowHeight","cultureMenu","menuElement","sitesStorage","SelectedSiteResolver","SubjectsModule","investigatorName","createLegend","legendData","icon","cssClass","hasSpecimenResultDataRevision","hasOrganismResultDataRevision","hasGrowthResultDataRevision","hasTestResultDataRevision","generalCategoriesInternal","loadCategoriesInternal","siteSpecificCategoriesInternal","activityReportsCategoriesInternal","categoriesById","all","mainCats","reduce","unwindCategories","cv","generalAndSiteSpecific","activityReportCategories","__","findCategoriesByIds","categories","docCategories","findCategoryById","categoryIds","getChildCategoriesById","acc","CategoriesReadModel","fillParents","CategoriesStorage","cancellationReason","MicrobiologyResultAgRendererComponent","onScreenResultsRenderer","microbiologyPivotColumns","commonColumns","getVisitDescriptionRenderer","gramStainColumns","isolateCultureColumns","fullOrganismTitle","kitTypeDescription","MicrobiologyGridColumns","getColumnDef","groupType","getDataRevisionMessage","allLeafChildren","dataRevisionText","childrenCounter","childrenAfterFilter","groupValue","CultureGroupAgRendererComponent","noDataText","resultDataRevisionMessage","CultureDetailsAgRendererComponent","columns","colId","subjectDataRevisionMessage","growthDetails","agents","textDetails","hasSpecimenDataRevision","getTestQuickSearchString","tableRowSize","tableHeaderRows","valueRows","exportColumns","getSubjectNumberAndInitials","getScreeningNumber","getCollectedTime","getOrganismTitle","isSubCancelled","subCancellationReason","micro","resultString","units","micPanelInterpretation","kirbyBauerInterpretation","micResult","MicrobiologyColumns","interpretationDescriptions","S","I","R","NA","NS","SDD","microbiologyStorage","microbiologyColumns","microbiologyGridColumns","excelStyles","groupRowRendererParams","suppressCount","groupDefaultExpanded","groupUseEntireRow","groupRowInnerRendererFramework","rowClass","filterColumns","columnsDict","siteMicrobiologyData","filteredData","baseSortDataArgs","sortExportDataArgs","exportResults","hierarchyRows","getSubjectTitle","getVisitTitle","testGroupName","specimen","uniqHierarchyRows","isEqualHierarchyRows","uniqHierarchyRow","groupResults","groupsByGrowth","groupHierarchyRows","growth","groupByGrowth","groupByOrganism","isEqualAgentRows","getGroupName","cultureRow","createCultureRow","cancellationReasonResults","subTestResults","cancellationReasons","reason","tests","isEqualTestRows","testDescription","cultureRowComparer","legend","onGridQuickFilterChanged","microData","interpretationlegend","kirbyBauerPanelZone","groupByFn","MicrobiologyComponent","MicrobiologyDataModule","combinedResults","cr","setLabTestResultExportSortId","child","StandardTestResultsAgGroupRendererComponent","getVisitName","getEntityInfo","getComments","comments","sortEntities","splitA","splitB","entityValue","entityInfo","StandardTestResultsSort","labTestDataSource","linkBuilder","labTestsGridColumns","gridHelper","standardTestResultsSort","groupOptions","animateRows","currentGrouping","hiddenColumns","subjectFieldName","handleSubjectSort","defaultStandardTestResultSort","getSubjectLink","sortableName","renderData","getLabTestResultsRenderData","flagsA","flagsB","content","comment","resultsData","getData","getExportColumns","splitResult","isCombinedResult","combinedLabResults","usualResults","itemIndex","combinedLabResultsData","resultData","groupedBy","isSortModelEmpty","groupResult","groupData","groupedData","onGroupingChange","onDisplayedColumnsChanged","restoreSortModel","onGridSortChanged","saveSortModel","gridSortModel","StandardTestResultsComponent","ChartsModule","maxNumOfSubjects","extremelyLargeSiteThreshhold","toggleLoadAll","queryParamsHandling","LargeDataWarningComponent","StandardTestResultsMainModule","covanceProjectNumber","languageOrderer","allLanguageSubscription","orderLanguageSubscription","dispose","getLanguages","languageIndexes","publishLast","LanguagesStore","searchTerm","FilterHeaderComponent","injector","handleError","getErrorCode","redirectToErrorPage","showWarningNotification","innerError","displayErrorMsg","customAction","showDismissNotification","rejection","showSnackbar","closeAfterTimeout","GlobalErrorHandler","$token","openFromNotification","documentIdInput","createInputElement","categoryIdInput","documentLanguageIdInput","formElements","byLanguageId","form","method","authInput","authenticationTokenPostFieldName","DOMParser","parseFromString","HTML","innerHTML","ELearningOpener","openColumnSettingsPopup","classes","enterTransitionDuration","leaveTransitionDuration","ColumnSettingsService","CovanceFilterCheckboxType","CovanceFilterNumberType","CovanceFilterTextType","startRegExp","endRegExp","fromPart","toPart","matchStart","matchEnd","CovanceFilterAgeRangeType","CovanceFilterDateTimeRangeType","detailsCancellationReason","labTestResultData","LabTestResultData","stringRes","OnScreenResultsRenderer","MICROBIOLOGY_DATA_STORAGE","termsAcceptedSource","endpointUrl","termsAcknowledgement","TermsAcknowledgement","termsAcknowledged","mergedStream","subs","acceptTerms","TermsAcceptanceStorage","colorResolver","buildSexLegendData","currentTestData","stroke","buildSubjectLegendData","getLineColor","buildFlaggedLegendData","flaggedClassName","subjectSerialNumber","getColor","OsrLegendDataService","subjectColors","colorScaler","domain","interpolate","TrendsSubjectColorResolver","buildChartData","bySubjectId","dayOfStudy","y","series","colorClassName","buildBandData","hasValidNumericRange","y1","y2","TrendsChartDataBuilder","initHovers","svgId","xScale","yScale","resultsDictionary","bands","attr","pointsWithRange","on","currentBand","extendBands","valueToNumber","xDomain","select","dd","left","right","unshift","curve","y0","band","BandRenderer","getColumns","sortedLabsByTestAndVisit","uniqueTestIds","sortedLabsByVisitAndTest","newCol","testCellValues","testResultIds","theVisitResults","theResultIds","visitCellResult","visitResultIds","theTestId","theTestGroup","theVisitId","visitColumnKey","visitDisplayNameData","lab","visitId","testResultId","theResult","gatherVisitColumnInfo","visitColumns","getVisitColumns","getLineCountDict","mapValues","valsByUniqueTestId","counts","valsByAccessionId","maxLineCounts","vc","orderByKey","cellRendererParams","cellValues","headerComponentFramework","headerComponentParams","getPlainTextResultsAndFlags","cellParams","theCellValues","flagNames","theVisitDisplayName","getVisitDisplayName","accessionNumberLinkData","getAccessionNumberLink","testResId","visitDate","visitDisplayName","LabTestsGridColumnsBuilder","labResultsSortInfo","selectedSubjectLabResultsStorage","columnsBuilder","uniqueTests","visibleGridOptions","onRowDataChanged","autoSizeColumn","onGridSizeChanged","sizeColumnsToFit","testData","subjectLevel","allLevels","buildedResult","seq","LabTestsGridComponent","yAxisWidth","availableChartHeight","availableChartWidth","xAxisTickValues","chartBandData","testGroupNamePosition","isTestOverlapped","groupNameText","testText","groupNameRect","testRect","isBandDataActual","bandData","render","removeYAxisLine","removeXAxisLine","moveXAxisLabelsOnTop","handleXAxisLabelOverflow","appendAdditionalYAxisText","calculateRanges","calculatePointsColors","xAxisLayer","svgTransform","baseVal","consolidate","matrix","parseTransformTranslate","each","selectedTextNode","style","tspan","textLength","getComputedTextLength","yAxis","yAxisTicks","yTickValue","lastVisitValue","getLastVisitValue","getYAxisTickData","yAxisTickData","testGroupNamePositionX","gBox","getBBox","yAxisBox","box","ellipsisTestGroups","testTextD3","groupNameTextD3","fragment","pos","yTick","lastVisitInfo","translateCoords","parseTranslate","bandValue","xGroup","yGroup","labTestsChartDataGenerator","covanceChainFilter","tooltipFormatter","chartData","yDomain","chartMargin","top","simpleSearch","subjectLegendData","bandColor","xAxisTickFormat","yAxisTickFormat","yTickText","chartTooltip","entry","testUnit","valueEntry","testNumbericResult","chainFilterFields","initChainFilterFields","simpleSearchFlow","afterChartRendered","availableHeight","availableWidth","createChartData","xAxisTicks","yAxisTickValues","hideAxises","buildLegendData","labTestResultsWithoutQuestions","filteredByChain","tap","deserializedFieldValues","filterBySimpleSearch","filtered","generateData","term","hasData","LabTestsChartComponent","CheckboxState","valueChangeConfirmationText","loading","multiselect","allowSearch","textSelector","disabled","selectedItemsChanged","searchTermChanged","popoverWidth","searchTermFlow","onSearchTermChange","allItems","emptyOptionAdded","createOptionText","toDisplay","updateResultString","trackByFn","selectAllOnChange","promptForValueChangeConfirmation","isAllSelected","onMultiSelectOptionChange","updateSelectedItems","onSingleSelectOptionChange","selectPopover","selectAllOnClick","filteredOptions","getSelectAllCheckboxState","Unchecked","containerLeftLimit","selectEl","offsetLeft","isVisible","selectPopoverSearch","inputEl","clearSearchTerm","clearSelectedItems","getSelectAllCheckboxIcon","Checked","Indeterminate","hasChecked","hasUnchecked","isSearchOnly","maxNumberOfVisibleFilterOptions","minFilterSearchTermLengthForLargeArrays","CovanceSelectComponent","KIT_DETAIL_TOKEN","kitInventoryStorage","kit","detailColumns","diff","numberDays","firstChild","kitDetails$","KitInventoryDetailComponent","VIDEO_DIALOG_PARAMETERS","loadedData","onVideoLoaded","PlayVideoDialogComponent","PREVIEW_TOKEN","reportDownloader","isDataLoading","html","bodyStylesMatch","bodyMatch","documentRootStyles","getRootStyles","documentHtml","styleString","PreviewDialogComponent","yesNoRenderer","valueRenderer","onParentModelChanged","filterText","filterInput","BooleanAgFloatingFilterComponent","chosenOptions","isFilterActive","doesFilterPass","getModel","setModel","newFlags","filterChangedCallback","BooleanFilterComponent","barParams","appendLink","round","threshold","BarRendererComponent","isHidden","HiddenDocumentAgRendererComponent","LinkAgRendererComponent","MultilineAgRendererComponent","TestLinkAgRendererComponent","TextListParams","TextListAgRendererComponent","h","sitelinkUserId","readByMe","ViewHistoryAgRendererComponent","rowClicked","saveClicked","printClicked","displayedColumnsChanged","sortChanged","quickFilterChanged","showToolBar","showQuickFilter","showGrid","defaultGridOptions","defaultColDef","defaultComparator","enableColResize","suppressDragLeaveHidesColumns","minColWidth","headerHeight","suppressCellSelection","overlayNoRowsTemplate","overlayLoadingTemplate","suppressMovableColumns","suppressContextMenu","suppressPropertyNamesCheck","suppressRowTransform","handleOverlays","hideOverlay","showNoRowsOverlay","showLoadingOverlay","exportHandleSort","pushSelectedNodes","quickFilter","selectedNodes","isSelected","gridApi","setColumnDefs","setTooltips","setRowHeight","removeEventListener","onRowClicked","onPrintClicked","onSaveClicked","onQuickFilterChange","resetQuickFilter","isCellTooltipOff","headerComponent","isHeaderTooltipOff","multilineColDefs","maxRowsCount","maxSize","CovanceAgGridComponent","nodeName","upgradeElements","downgradeElements","Mdl","querySubscription","events","upgradeDom","MdlOnRouteChange","showTooltip","messages","showDataRevisionIndicator","showSubjectDataRevisionIndicator","showVisitDataRevisionIndicator","showResultDataRevisionIndicator","DataRevisionIndicatorComponent","closing","onBackToPortal","GlobalPopupComponent","rangeTextValue","mouseOverItem","mouseOutItem","selectionChanged","isVertical","shapesDict","draw","context","rect","isViewInitialized","legendDiv","enableSelection","observers","divs","enter","legendItem","getD3Symbol","ChartLegendComponent","GridLegendComponent","filteredStorage","legendDataService","chartDataBuilder","bandRenderer","rangeString","rangeWithUnits","tooltipItems","valueTooltipItem","goToSubject","subjectsSelected","subjectLegendMouseOver","subjectLegendMouseOut","selectedTestIds","subjectsQueryParams","lr","setPointsColors","areaSvg","tickRect","filterSubjects","chartSpecific","sexLegendData","flaggedLegendData","LabTrendsChartComponent","showSplitGenders","isBoxVisible","calcWhiskers","yAxisName","isBox","whiskers","quartiles","visitInfo","visitsInfo","onSplitToggle","lineChartData","validData","dataByGender","genderData","byVisits","visitData","yValues","rowId","LabBoxplotChartComponent","TestSubjectAgRendererComponent","HiddenEQUeryAgRendererComponent","showDetail","DetailModalPopupAgRendererComponent","ageInfo","distance","eQueryAge","eQueryStatus","AgeRendererComponent","ResponseAgeRendererComponent","categoryName","currentLevel","update","getSelectedNodes","needToOverride","emailPreferencesToSave","preferenceToSave","pref","prefValue","refreshCells","User","overrideMessage","EmailNotificationHeaderAgComponent","nonDefaultMenuItems","editEmail","allMenuItems","EmailActionsMenuAgRendererComponent","getVisitResultValue","cellData","commentExists","addCommentsToTooltip","cellValue","resultExists","tooltipContent","LabTestGridVisitComponent","LabTestGridVisitHeaderComponent","covanceExcelStyles","dataType","OsrSubjectColumnRendererComponent","NoneValueHelper","valueAIsNone","valueBIsNone","coreModule","navigationEnd$","initializeLocale","setupAgGrid","setupNavigationActivityLogger","setupTitleChanger","setupUserStartEmulationActivityLogger","browserNavigator","userLanguage","setLicenseKey","outlet","stateTitle","setTitle","CoreModule","useClass","sortInGroup","GroupingResult","sortData","sortColumn","postSort","sortArgs","CovanceAgGridHelper","CovanceMaterialModule","GlobalPopupModule","listFilteredEntityFields","initFilterFieldValues","entityFields","initFilterFieldVals","getInitQueryParams","lastFilteredEntities","parsedQueryValue","entityField","getFilterFieldValue","filteredEntities","currentFiltered","initFilterFieldVal","filterFieldVal","CovanceChainFilter","sitesModule","SitesModule","LabTestResultModule","getSubjectLabResults","selectedCtSubjectId","loadAll","optionalParams","LabResultsStorage","testGroupLevel","testLevel","LabResultsSortInfo","getActivatedRoute","findNavigationActivityData","global","rs","activityKey","NavigationActivity","Kit","gridColumns","emailPreferencesCategoriesStorage","protocolLevel","siteLevel","Site","userLevel","levelSubject$","rowSelection","rowDeselection","checkbox","groupSelectsChildren","columnDefs$","loadEmailPreferenceCategories","getGridColumns","rowData$","getRowData","showEmailAddressForm","selectedEmails","alert","emailPreferenceCategories","startColumns","getSponsorStartColumns","getInvestigatorStartColumns","dynamicColumns","Daily","Immediate","endColumns","EmailPreferencesComponent","EmailPreferencesCategoriesStorage","userSettings","UserSettingsStorage","userSettingsStorage","preferredUnit","onLanguageChange","culture","saveSettings","onUnitChange","UserGeneralPreferencesComponent","disclaimer","disclaimerHtml","TermsPopupComponent","termsAcceptanceStorage","areTermsAccepted","UserAcceptedTermsGuard","userAcceptsTerms","onSubmit","onCancel","AcceptTermsPageComponent","portalDisclaimerHtml","PortalDisclaimerPopupComponent","SiteRouteDataStorage","testName","axisTitle","build","onChangeYAxisName","buildVisitsInfo","buildAxisNames","yAxisNames","TestAxisTitleInfo","ax","yName","groupKeySelector","xAxisTickRenderer","xAxisSorting","groupKeys","sortKey","BoxplotChartDataBuilder","labTestsSortingInfo","LabTestsChartDataGeneratorInternal","LabTestsChartDataGenerator","heightChartLine","paddingChartLine","indexLine","xTicks","yTicks","byTestGroup","byZcTestCode","firstLabTestResult","chartDataValues","bandValues","fillValues","scaleYValues","fillChartData","visitWithDescription","mapVisitIdsToNumbericIndex","distinctYTicksTestGroupNames","prev","mappingVisitIdsToIndexes","xTick","dataItem","valueItem","bandItem","groupedLabTestResults","testResult","testMin","testMax","fillBandValues","maxY","minY","scaleYAxis","uniqLabTestKey","selectedSiteRouteData","InvestigatorMicrobiologyStorage","InvestigatorMicrobiologyComponent","onScreenResultsFilterDefenitions","InvestigatorLabTestResultsFilterStorage","tabs","tabIndexObs","tabSubscription","idx","tabIndex","showLargeSiteWarning","isExtremelyLarge","takeWhile","siteSubscription","tabChanged","StandardTestResultsMainComponent","webpackEmptyAsyncContext","req","booleanRenderer","dateRenderer","dateArrayRenderer","dateTimeRenderer","booleanQuickFilterText","date1","date2","dateTimeArrayComparator","dateA","dateB","microbiologyDataRoutes","pathMatch","redirectTo","standardTestResultsRoutes","webpackContext","webpackContextResolve","escape","millisesondsLeftSource","ReplaySubject","setMillisecondsLeft","TimeoutWarningState","millisecondsLeft","TimeoutWarningComponent","idle","keepalive","monitoringInProgress","warningDialog","timeoutWarningState","handleAuthenticationStatusChange","watch","stop","checkExpirationStatus","hideWarningDialog","onIdleEnd","onTimeoutWarning","secondsLeft","onTimeout","refreshSession","setIdle","inactivityPeriodSeconds","timeoutPeriodSeconds","setInterrupts","interval","onIdleEndSubscription","onTimeoutWarningSubscription","onTimeoutSubscription","onPing","start","expirationSubscription","tokenExpiration","distinctUntilChanged","tokenInfoSubscription","IdleUserMonitor","idleUserMonitor","AppComponent","getReports","searchValues","prepareSearchFieldsParams","protocolAccesses","AdminProtocolAccessesStorage","protocolFilter","protocolMasterFilter","statusFilter","unreadOnlyFilter","unrespondedOnlyFilter","dateFilter","labReportTypeFilter","sponsorFilter","sponsorMasterFilter","externalProtocolFilter","subCategoryFilter","expirationDateFilter","shippedDateFilter","kitTypeFilter","documentTypeFilter","sentDateFilter","fillDataFiltersDictionary","resolveFilters","categoryKey","filterTypesDictionary","resolveEQueryFilters","sponsorCommunicationsFilters","labReportsFilters","generalCommunicationsFilters","siteCommunicationsFilters","siteActionsFilters","labManualsFilters","trainingMaterialsFilters","resultAlertsFilters","eQueryFilters","eQuerySummaryFilters","emailNotificationFilters","AdminActivityReportsFilterResolver","protocolAccessesStorage","filterService","filterResolver","searchFieldValues$","protocolControl","filterDefs","getColumnDefs","filterFields$","filterFlow$","reports$","startWith","onSearch","areSearchFieldsEmpty","AdminProtocolAccessReportComponent","protocolNumber","searchById","updateAccessibility","isAccessible","patch","getProtocolProjects","AdminProtocolsStorage","DOCUMENTS_STORAGE","FILTER_ITEM_LOADER","apiPath","loadDocumentsByCategory","sqlRequestLimitForActivityReports","getActivityReportsForCategory","readModel","reportType","getAdminActivityReportType","AdminActivityReportDocumentsStorage","loadFilterItemsByCategory","protocolId$","AdminActivityReportFilterItemsStorage","fillDataDictionary","getColumnDefinitions","columnsDictionary","siteCommunicationsColumns","siteActionsColumns","resultAlertsColumns","labManualsColumns","trainingMaterialsColumns","labReportsColumns","eQueryColumns","AdminActivityReportsDocumentsColumns","FILTER_RESOLVER","documentsColumns","protocolsStorage","protocolFilterName","warningThreshhold","mandatoryFilterValue$","selectedCategoryId","selectedCategory","categoryChanged","onProtocolsChange","AdminActivityReportDocumentsComponent","serializeDateOnly","serializeDateTimeOffset","dateFrom","dateTo","dateFromWithOffset","dateToWithOffset","AdminAccessInvestigationsStorage","accessInvestigationsStorage","dateRangeType","usersControl","selectedDateRange$","isEmptyDateRange$","users","dateRange","filterFieldValue","AdminAccessInvestigationReportsComponent","permissions","has","permission","canViewCategory","canUploadCategory","canViewActivityReport","UserPermissions","permissionsDict","userPermissions","loadUserPermissions","userStudiesPermissions","loadUserStudiesPermissions","getPermissionsByStudy","rawPermissions","UserPermissionsStorage","userPermissionsStorage","AdminActivityReportsComponent","announcementsInfo","insert","announcement","deleteAnnouncement","auditTrailReason","mergeMap","announcementsInfos","posted","AnnouncementsInfoStorage","effectiveStartDate","effectiveEndDate","roles","pinnedFlag","toJSON","overrided","AnnouncementRequest","assign","ANNOUNCEMENT_TOKEN","AnnouncementDialogComponent","import","oldSanitize","sanitized","CommonLinkEditorResultAction","ANNOUNCEMENT_EDIT_TOKEN","announcementsInfoStorage","isBusy","announcementText","wrongDateRangeError","wrongEffectiveStartDate","wrongEffectiveEndDate","missingEffectiveEndDate","textMaxBytes","titleMaxBytes","effectiveStartDateName","effectiveEndDateName","isNew","audienceCtrl","announcementTitleCtrl","effectiveStartDateCtrl","effectiveEndDateCtrl","announcementTextCtrl","isPinnedCtrl","auditTrailReasonCtrl","editorForm","verifyDates","addControl","onAnnouncementTextChanged","getTextFieldClasses","showConfirm","announcementRequest","preview","announcementPreview","titleAnnouncement","textAnnouncement","isConfirmDialogOpened","isSameOrBefore","AnnouncementEditDialogComponent","ANNOUNCEMENT_DELETE_TOKEN","deletedAnnouncement","reasonControl","onDelete","disable","enable","confirmationText","AnnouncementDeleteDialogComponent","addAnnouncement","AnnouncementsActionsMenuAgRendererComponent","announcementsInfoData$","canUserManageAnnouncements$","columns$","createAnnouncement","appendActionsMenu","AnnouncementsAdminComponent","COMMON_LINK_EDITOR_OPTIONS","editorOptions","fb","invalidUrlValidationName","urlMaxBytes","descriptionMaxBytes","sortOrderPattern","editedEntity","editorTitle","actionButtonTitle","rolesControl","titleControl","urlControl","urlValidator","descriptionControl","sortOrderControl","sortOrder","onCloseEditor","onClickAction","createCommonLink","saveCommonLink","newCommonLink","assignValues","commonLink","isValidUrl","CommonLinkEditorComponent","mdlDialogService","openToCreate","openToEdit","editedCommonLink","commonLinkEditorOptions","dialogConfig","CommonLinksInfoEditor","commonLinksInfo","forceLoadAll","commonLinkInfo","commonLinkId","postedDate","CommonLinksInfoStorage","commonLinksInfoStorage","commonLinksInfoEditor","editCommonLink","deleteCommonLink","showDeleteDialog","showEditDialog","CommonLinkActionsMenuAgRendererComponent","commonLinksInfoData","onAddNewLink","showCreateDialog","CommonLinksGridComponent","getProjectSites","ProjectsStorage","collectionDate","AccessionsStorage","CUSTOM_ACCESSIONS_STORAGE","accessionsStorage","customAccessionsStorage","thresholdSearch","isSearching$","searchFlow$","requiredErrorName","accessions$","loadAccessions","finalize","onSelectedAccessionChange","accessionSelects","accessionSelect","getAccessionNames","AccessionSearchComponent","mails","UserEmailsStorage","userEmailsStorage","selectedItemChanged","selectedItem$","accessionNumber$","emails$","loadEscalations","selectedItems$","selectedEmail","onSelectedEmailChange","UserEmailsSearchComponent","inputVal","emailSelects","emailSelect","clearValue","covanceSelectComponent","permissionsStorage","isAccessibleFC","disableActivation$","onlySelf","newValue","ProtocolChangeAccessibilityComponent","protocolItems","floatingFilter","activeInativeRenderer","ProtocolActivationComponent","customValidators","FileFormArray","baseFilesValidator","requireFilesValidator","setCustomValidators","controls","maxArrayLengthError","getByIndex","fileIndex","at","validators","maxArrayLengthValidator","maxArrayLength","fileControls","fileFormGroups","fileControl","languageControl","fileNameControl","requireFilesError","unreadSiteCount","unreadAllSitesCount","recentlyReadReports","currentCategoryId","rootCategoryId","unreadReports","unreadData","totalDocs","GeneralUnreadReportsStorage","getReportType","UploadResponseType","createPost","files","documentMetadata","formData","extractFileLanguageFormData","request","createPut","fileContent","FormData","file","UploadedDocumentsRequestCreator","uploadRequestCreator","getUploadedDocsForCategory","forceLoadDocuments","changeVisibility","UploadedDocumentsStorage","onSuccessfulUpload","customUploadMethod","allAudienceRoles","loadAudienceRoles","isExternal","audienceRoles","AudienceRolesStorage","audienceRolesStorage","getConfirmationText","userText","external","allExternalRoles","rolesDiff","UploadConfirmationDialog","UPLOAD_DLG_DATA_TOKEN","UploadState","EQueryTab","uploadStorage","confirmationDialogOpened","uploadState$","Ready","uploadResult$","uploadErrorDescription$","uploadProgress$","onDialogDestroying$","handleHttpEvent","UploadProgress","handleProgress","errorMessage$","errorDetails$","disableEditorForm","fileReponse","inProgress","SuccessUpload","upload","MethodUploadOptions","CustomMethodUploadOptions","total","InvalidFiles","uploadedFileReponses","InvalidDocumentMetadata","isInvalidDocumentMetadataResponse","invalidMetadataResponse","InvalidMetadata","DocumentFolderMissing","isDocumentFolderMissingResponse","MissingDocumentFolder","ErrorUpload","disableForm","takeUntil","onDialogDestroying","uploadConfirmationDialog","unreadStorage","uploadState","us","uploadedDocumentsStorage","titleCtrl","fileFormArray","allowedFileExtensions","onFilesChanged","selectedFiles","addFiles","ApplicationTrainingUploadComponent","letterNumberCtrl","letterNumber","GeneralCommunicationsUploadComponent","subcategoryCtrl","subcategories$","subCategories$","GeneralLabManualsUploadComponent","GeneralTrainingMaterialsUploadComponent","resetFilesControl","removeControl","confirmationMarkup","studyManualsId","synopsisId","labManualsOthersId","projectCtrl","versionNumberCtrl","versionDateCtrl","controlsWithValue","showVersionNumber","showVersionDate","showTitle","versionNumber","LabManualsUploadComponent","siteControlName","subjectControlName","accessionControlName","dateRequiredControlName","requireSiteOrAccessionErrorName","requireSiteOrAccessionErrorText","yesterday","projectControl","siteControl","requireSiteOrAccession","subjectControl","accessionControl","isResponseRequiredControl","dateRequiredControl","selectedProjects$","selectedSites$","isResponseRequired","dateRequired","subprotocolId","siteHasValue","accessionHasValue","SiteActionsUploadComponent","letterNumberControl","sitesFormGroup","onSitesChange","sitesData","allSites","sitesDescription","sitesDescriptionHtml","siteLimitdate","siteLimitDate","SiteCommunicationsUploadComponent","ELearningUploadStorage","eLearningUploadStorage","eLearningCategoryId","mainCategoryId","letterNumberControlName","subcategoryControl","SponsorCommunicationsUploadComponent","trainingMaterialsOthersId","trainingMaterialsELearningId","projectsControl","versionNumberControl","selectedProtocols$","projectNumberStr","getProjectNumbers","projectStr","TrainingMaterialsUploadComponent","dialogTypesDictionary","getDialogType","UploadDialogTypeResolver","generalDocumentType","applicationTrainingType","siteCommunicationType","sponsorCommunicationType","studyManualType","trainingMaterialsType","siteActionsType","documentInfoComponentSelector","getDocumentInfoComponentSelector","getAllowedFileExtensions","FileExtensions","fileExtensions","subcategory","subcategoryTitle","auditTrailReasonControl","isSingleUpload","FileEditComponent","UpdateDocumentDialogBase","UploadedTranslationsStorage","uploadedTranslationsStorage","excludeLanguageIds","excludeFileNames","DocumentTranslationUploadComponent","HIDE_DIALOG_DATA_TOKEN","actionTitle","onOk","HideDocumentComponent","uploadTranslations","editFile","hideDocument","UploadActionsMenuAgRendererComponent","postedDateTimeColumn","versionDateTimeColumn","versionColumn","fileNameColumn","reportGroupColumn","recipientTypeColumn","recipientType","languageColumn","languageCode","audienceRoleColumn","hiddenColumn","adminSubjectColumn","adminAccessionNumberColumn","generalCommunicationColumns","generalTrainingMaterialsColumns","generalLabManualsColumns","sponsorCommunicationsColumns","applicationTrainingColumns","category$","editMenuColumn","buildEditMenuColumn","AdminDocumentColumns","sponsorId$","sponsorId","AdminDocumentsFilterItemsStorage","AdminDocumentsFilterResolver","getAll","sponsors","AdminSponsorsStorage","adminSponsorsStorage","adminProtocolsStorage","getItemsFilter","sp","sponsorFilterItem","sponsorTitle","getProtocolFilter","pr","protocolFilterItem","AdminDocumentsMandatoryFilterItemsStorage","mandatoryFilterItemsLoader","colDefs","dialogTypeResolver","subCategories","showProtocolWarning","cat","sponsors$","selectedSponsor$","sponsorItems","sponsorItem","protocols$","selectedProtocol$","protocolItem","dialogType","onFilterItemsSelectorChange","mandatoryFilterItemValue","sponsorKey","AdminDocumentsComponent","AdminGuard","userProfile","firstName","lastName","editUserSettings","UserProfilesActionsMenuAgRendererComponent","loadPageOfUsers","searchParams","httpSearchParams","userName","page","UserProfilesStorage","firstNameSearchTerm","lastNameSearchTerm","userNameSearchTerm","getFlow","userProfiles","onFirstPageClicked","onPreviousPageClicked","onNextPagClicked","onLastPageClicked","pageNum","UserProfilesComponent","GeneralHeaderTitleComponent","SponsorHeaderTitleComponent","clientProtocol","investigator","InvestigatorHeaderTitleComponent","HeaderTitleModule","InvestigatorGuard","categoriesGridColumns","unreadSubscription","docsHaveBeenRead","getGroupedColumns","allReports","filterReports","onUnreadSelectorChange","onlyUnread","hasStatusColumn","DocumentsGridComponent","unreads","isRowSelectable","toggleUnread","rowNodes","getRowClass","canCombineForPrinting","reportsChanges","categoryChanges","groupByChanges","currentValue","defaultReportSortFn","restoreDefaultSort","printDocuments","validateDownloadableData","filterDownloadableData","switchUnreads","unreadOnly","saveDocuments","maxNumberOfDocumentsForDownload","ReportsGridComponent","filterItemsLoader","documentLoader","filtersResolver","filterProtocolId","mandatoryFilterRequired","hideFilterExpandButton","isAdmin","isInternal","dataSwitch","quickSearchSubject$","floatingFiltersHeight","rowClassRules","filterFieldAndCategory$","FilterFieldsAndCategory","filterField$","showFilters","mandatoryFilterVisible","findMandatoryFilter","mandatoryFilter","mandatoryFilterIsOk","showLargeDataWarning","masterFilterSelectedItem$","mandatoryFilterItem","reloadFilterItemsSwitch$","selectedMasterFilterItem$","filtersExportData","fieldValues","quickSearchValue","mandatoryFilterValue","fd","adminFilterGroup","goToCategory","onQuickSearchChanged","FilteredGridComponent","DocumentsModule","NavigationComponent","NavigationModule","createTabsCategories","createTabs","childCategories","createTabUrl","siteValue","categoryValue","childCategoriesValue","DocumentsTabsComponent","reportsStorage","createSelectedCategory","loadReports","scan","readReports","recentlyReadInSite","recentlyReadInAllSites","unreadInSite","unreadInAllSites","InvestigatorUnreadReportsStorage","processNewReportsPackage","reportsPackage","reps","getReportsForCategory","siteById","InvestigatorReportsStorage","DocumentsWithChildCategoriesComponent","DocumentsComponent","generalCategories","gc","sub","GeneralDocumentsGuard","selectedReportTypeSubject","currentSite","reportsTypes","selectedReportType","onSelectedReportType","LabReportsComponent","kitType","descriptionExpiration","pending","shipped","received","adjusted","onHand","lastShipmentQuantity","lastShipmentDate","country","region","shippedDate","expirationDate","daysToexpiration","investigatorColumns","sponsorColumnsOnHand","sponsorColumnsExpiration","filterDefinitions","expirationReportfilterDefinitions","onHandReportfilterDefinitions","KitInventoryColumns","kitInventoryColumns","kits$","showHelpModal","helpText","KitInventoryComponent","badgeText","linkClassName","includeQueryParams","imgUrl","openNewTab","currentCounters$","loadAllCounters","mutations$","counters$","currentCounters","calculateCounters","mutateCounters","mutations","mutation","addCounter","removeCounter","refreshAllCounters","decreaseCounters","eQueryIds","mapMutations","increaseCounters","updateCounters","eQueryIdFn","unresolvedFn","eq","unresolved","resolved","createSet","initArray","createQueuedMutations","stack","subscriber","counter","totalUnresolved","obj","InvestigatorEQueriesCountersStorage","eQueriesCountersStorage","createMenu","subjectsUrl","subjectsLink","labReportsLink","getLabReportsLink","documentsLinks","getDocumentsLinks","onScreenResultsLinks","getOnScreenResultsLinks","kitInventoryLink","getKitInventoryLink","eQueriesLink","getEQueriesLink","eReqLink","getEreqLink","ereqLink","onSiteSelectionChange","labReportsUrl","labReportsCategory","isDocumentLinkDisabled","getUnreadCountSource","navigationPath","kitInventoryUrl","eReqUrl","countersBadge","getEQueriesCounterBySite","sumBy","totalUnread","InvestigatorNavigationComponent","SingleCategoryDocumentsGuard","SiteSpecificCategoriesResolver","buildColumnsDictionary","trainingMaterialsOthersColumns","trainingMaterialsELearningColumns","siteCommunicationColumns","studyManualsColumns","synopsisColumns","labManualsOthersColumns","Map","InvestigatorDocumentsColumns","InvestigatorLabTestResultsLinkBuilder","InvestigatorLevelComponent","showOnlyFlagged","labTestResults$","onlyFlagged","resultChain","filterFlaggedTests","resChain","flaggedUniqLabTestsKeys","SelectedSubjectLabResultsStorage","SelectedSubjectResolver","subjectsStorage","SubjectsListResolver","noSubjects","onSubjectsLoad","lastVisitedZcSubjectId","SubjectsRootComponent","subjectsSubscription","latest","selectedSubjects","getSubjectLookupItems","showOnlyFlaggedSubscription","subjectLookupItems","getSubjectLookupItem","onSelectionChanged","navigateToSubject","subjectDataLegend","SubjectsNavigationComponent","InvestigatorEQueryFilterItem","dayParam","ExternalUserFilterUrlParamsPreparer","externalFilterUrlParamsPreparer","investigatorEQueriesCountersStorage","getEQueries","filterFields","isUnresolved","getEQueryFilterItems","data$","forceLoadEQueries","InvestigatorEQueriesStorage","accessionNo","pVc","EQueryFilterDefinitions","EQUERIES_STORAGE","AuditTrailType","eQueryIdEmitter","readItem","ReadEQueryEmitter","eQuerySortColumns","awaiting","sortDirection","submitted","getByTab","sortingInfo","ExternalUserEQueriesGridDefaultSort","externalEQueriesStorage","eQueryFilterResolver","readEQueryEmitter","gridDefaultSort","showReadByMe","siteId$","eQueryTab$","sortEQueries","sortInfo","eQueries$","readEQueryId","readEQuery","eQuery","ackn","afterRead","ExternalUserEQueriesGridComponent","SimpleTextFieldComponent","SimpleTextFieldModule","ageColumn","textedEQueryId","linkIcon","responders","EQueriesColumns","protocolVisitCode","responseTime","responseDateTime","ExternalUserEQueriesColumns","eQueryFilterDefinitions","getAwaitingFilterDefinitions","getSubmittedFilterDefinitions","ExternalUserEQueriesFilterDefinitions","meetResponseMask","mask","currentText","freeTextControl","currentTextTrimmed","regParts","isGlobal","maskExecResult","lastIndex","EQueriesFreeTextQuestionComponent","screenResultLinkNeeded","onGoToScreenResultClick","accessionInfo","goToScreenResult","accessionNumberQueryParam","screenResultUrl","EQueryAccessionInfoComponent","downloadAttachmentClick","previewAttachmentClick","EQueryAttachmentsComponent","EQueryDetailsTextFieldComponent","downloadInvestigatorAttachment","attachmentId","showDownloadingDialog","createEQueryDownloadAttachmentUrl","previewInvestigatorAttachment","downloadSponsorAttachment","previewSponsorAttachment","downloadCoordinatorAttachment","previewCoordinatorAttachment","downloadResponseAttachment","createEQueryDownloadResponseAttachmentUrl","downloadResponseAttachmentWithTracking","previewResponseAttachment","EQueryAttachmentsDownloader","fileFormControl","languageFormControl","FileFormGroup","fileNameKey","languageKey","LanguageControl","duplicateLanguageValidator","duplicateLanguageError","currentLanguageControl","currentLanguage","fileSize","maxFileSize","FileNameControl","invalidFileExtensionValidator","duplidateFileValidator","invalidFileSizeValidator","invalidFileExtensionError","getError","invalidFileSizeError","duplicateFileNameError","updateAllowedFileExtensions","extension","getFileExtension","currentControl","invalidResult","lastIndexOf","hideLanguageSelector","singleFileOnly","fileResponses","filesChanged","excludeLanguageIds$","filesLanguageMap","formArray","areEmptyAllowedFileExtensions","inputName","filesMaxCount","browse","onFileControlChanges","addFilesToSet","setFileLanguage","languageInfo","removeLanguageFromExcluded","addLanguageToExcluded","dragover","dropEffect","onDeleteFile","removeAt","isLanguageInvalid","isLanguageRequired","hasRequiredError","isLanguageDuplicate","hasLanguageDuplicateError","isInvalidFileExtension","hasInvalidFileExtension","getInvalidFileExtension","isInvalidFileSize","hasInvalidFileSize","isInvalidFilesCount","hasArrayLengthError","getInvalidFileSize","isDuplicateFile","hasDuplidateFileError","getUploadedFileResponse","fileMaxSize","maxSizeOfUploadedDocument","CovanceFileUploadComponent","UploadedFileErrorsComponent","CovanceFileUploadModule","EQueryAttachment","responseKey","getInvestigatorEQueryDetails","eQueryId$","loadEQueryDetails","getSponsorEQueryDetails","createEQueryResponse","EQueryDetailsStorage","question","issueDescription","issueType","EQueryCCQuestionComponent","responseQuestionMap","attachmentsQuestionMap","openStatus","hasDuplicateFile","duplicateFileNames","shouldBeRespondedValue","allowedExtensions","eQueryAttachmentsExtensions","eQueryMaxSizeOfAttachments","questionControls","questionFileFormArrays","selectedFilesMap","maxFilesCountPerIssue","eQueryMaxNumberOfAttachmentsPerIssue","createQuestionsControls","questionsValue","createResponseQuestionMap","responsesValue","valueForm","keyQuestion","responses","relatedQuestion","questionId","pushQuestionResponses","attachments","createQuestionAttachmentsArray","fileValue","keyNumber","attachmentsPerQuestionList","fileNamesArray","checkHasDuplicateFile","validateFileControls","createQuestionIssueLabel","resultLabel","setQuestionControlValidation","formControl","responseText","duplicateFileNamesSet","fileNamesSet","names","namesArrayValue","keyQuestionId","attachmentNames","includes","textControl","setErrors","fileError","OpenQuestionsComponent","EQueryCCQuestionResponseComponent","toolbar","onEQueryTextChanged","eQueryTextCtrl","EQueryCommentsComponent","EQueryAttachmentsListComponent","submitResponse","downloadAttachment","previewAttachment","disableSubmit","openQuestionComponent","wasAtLeastOneResponseAdded","sendRespondActivity","ExternalUserEQueryContentBlockComponent","AgePipe","EQueriesModule","investigatorSiteStorage","eQueriesStorage","eQueryAttachmentsDownloader","isActiveSubmit$","eQueryDetailsCreation","logEQueryActivity","accessionData$","take","accessionData","popup","onPopupClosing","eQueryDetails$","eQueryData$","eQueryData","attachments$","comments$","commentText","questions$","questions","shouldBeResponded$","shouldBeResponded","submittedResponses$","responseDetails","status$","statusName","age$","screenResultUrl$","InvestigatorEQueryDetailsDialogComponent","eQueriesColumns","externalUserEQueriesColumns","getAwaitingColumns","site$","getSubmittedColumns","InvestigatorEQueriesColumns","investigatorEQueriesColumns","externalUserEQueriesFilterDef","eQueryTab","InvestigatorAwaitingEQueriesComponent","InvestigatorSubmittedEQueriesComponent","tabs$","responseSubmittedUrl","InvestigatorEQueryTabsComponent","InvestigatorEQueryGridComponent","COMPONENTS","InvestigatorEQueryModule","InvestigatorModule","unreadCounter","totalCounter","createUrl","allNotificationsBatItems","unreadReportCounter","NotificationBarContent","button","iconClassName","onIconClick","iconType","NotificationIconTypes","notificationIconTypes","NotificationIconComponent","notificationBarContent","notificationBarItems","NotificationBarComponent","NotificationBarModule","ToolbarMenuContent","getMenuItems","itemText","needsDivider","pwmLink","getMenuItem","menuItemsService","logoutText","logoutAction","menuItem","ToolbarMenuComponent","ToolbarMenuModule","doesPermissionExists","SampleTrackingOptionResolver","sampleTrackingOption","originalUserFullName","emulatedUserFullName","isSampleTrackingEnabled$","isSiteShippingEnabled$","openSiteShipping","openEreq","HeaderComponent","AnnouncementsStorage","announcementsStorage","AnnouncementsComponent","CommonLinksStorage","commonLinksStorage","CommonLinksComponent","drawerBehaviorKey","userPreferencesStorage","user$","screenSizeThreshold","manualDrawer","collapseDrawer","debounceCollapseDrawer","calculateCollapsing","restoreDrawerBehavior","ngAfterViewChecked","changeMdlTooltipsParent","onCollapseButton","saveDrawerBehavior","onWindowResize","calculateCollapsingOnResize","resetManualCollapse","innerWidth","behavior","manualCollapsed","mdlTooltips","asideDrawer","mdlTooltip","divSiteLayout","WorkspaceLevelLayoutComponent","pendoService","title$","isSystemAdmin","pendoSponsorApiKey","pendoInvestigatorApiKey","DashboardLevelLayoutComponent","parseDrawerBehavior","behaviorRaw","WorkspaceDrawerBehaviorResolver","LayoutModule","documentsLink","siteCommunicationsMassUploadLink","announcementsLink","protocolActivationLink","userAccessLink","emulateUserLink","auditLogsLink","coordinatorEQueryLink","adminEQueryLink","activityReportLink","editColumns","adminLinksInfo","getLinks","getEQueryLink","AdminLinksInfoStorage","adminLinksStorage","AdminNavigationComponent","getRecordsCsvFile","trailType","fileNameHeader","AuditTrailRecordsStorage","auditTrailRecordsStorage","auditTypeCtrl","fromDateCtrl","toDateCtrl","auditExportForm","auditItemsDictionary","Announcements","GeneralDocuments","SiteCommunications","SiteActions","SponsorCommunications","StudyDocuments","getRecordsFile","wrongDateRange","emptyDate","AuditTrailExportComponent","AdminUnreadReportStorage","AdminLevelComponent","checkFilterParamsAreSet","setDefaultFilter","defaultDateFrom","defaultDateTo","SetDefaultAdminDocumentsFiltersGuard","hasPermissions","allPermissions","UserPermissionGuard","permissionName","EQueryEscalationLevel","SetDefaultAdminReportsFiltersGuard","inventorySummaryUrl","expirationUrl","AdminKitInventoryComponent","kitReports$","AdminKitInventoryOnHandComponent","ignoreRecordLimit","checkLargeData","AdminKitInventoryExpirationComponent","kitExpirationFilters","SponsorActivityReportsFilterResolver","kitInventoryExpirationDefaultDateRange","SponsorKitInventoryFiltersGuard","createAdminFilterItems","createAdminHideUnhideFilterItems","AdminEQueryFilterDefinitionsResolver","allReasons","loadAllReasons","reasons","EQueryCloseReasonsStorage","REASONS_STORAGE_TOKEN","auditTrailReasonsStorage","maxByteslength","isCheckedCustomReason","standardReason","customReason","hasOnlyWhiteSpaces","reasons$","reasonFormGroup","AuditTrailReasonComponent","isEnabledCustomReason","hasOnlyWhiteSpacesValidation","observeReasonValues","FilterUrlParamsPreparer","filterUrlParamsPreparer","getEQuerySummaries","fields$","eQueriesFiltersItems","EQuerySummaryStorage","getEQueryDetails","closeEQuery","reopenEQuery","reopenData","CoordinatorEQueryDetailsStorage","COORDINATOR_EQUERY_DETAILS_TOKEN","eQuerySummaryStorage","isInvalid","canUserRespond$","eQueryMaxNumberOfAttachmentsReopenClosed","showConfirmDialog","isDisabledClose","reopen","isDisabledReopen","EQueryReopenData","canBeReopened$","canBeReopened","canBeClosed$","canBeClosed","showReason$","canUserRespond","escalations$","emailEscalations","responses$","canUploadAttachments$","confirmation","CoordinatorEQueryDetailsDialogComponent","getEQueriesSummariesColumns","AdminEQuerySummaryColumns","eQuerySummaryFilterResolver","eQuerySummaryInventoryColumns","eQueryDetailsStorage","filterIsNone$","observedFields","observableFilterValues$","filterItems$","observeOn","filterDef","eQueriesSummaries$","openEQuery","equeryDetails","userFilter","AdminEQuerySummaryComponent","hideEQuery","EQueryHideStorage","allHideReasons","loadAllHideReasons","EQueryHideReasonStorage","allUnhideReasons","loadAllUnhideReasons","EQueryUnhideReasonStorage","HIDE_TOKEN","eQueryHideStorage","EQueryHideDialogComponent","HideMenuAgRendererComponent","getEQueriesHideUnhideColumns","AdminEQueryHideColumns","eQueryHideUnhideStorage","adminEQueryHideUnhideColumns","eQueriesAdminSummaries$","AdminEQueryHideComponent","escalationSentTimeQueryParam","escalationSentTime","AdminEQueryEscalationsFilterResolver","FormResultType","refresher$","getEscalations","prepareFilterParams","escalations","createEscalation","reloadEscalations","deleteEscalation","escalation","escalationId","AdminEQueryEscalationsStorage","loadEmails","searchByType","searchFields","loadEQueries","loadAccessionNumber","loadAccessionNumberHideEQuery","deserializerFn","fieldFn","AdminEQueryEscalationSearchFieldsStorage","adminEscalationsStorage","reasonMaxLength","emailControl","escalationLevelControl","formGroup","escalationLevel","errors$","onAdd","errors","NewEscalationDialogComponent","DELETE_ESCALATION_TOKEN","onRemove","DeleteEscalationDialogComponent","EscalationRemovalButtonAgRenderer","escalationEmailsStorage","canAdministrate$","canUserAdd$","addEscalation","canAdministrate","canRemove","removalColumn","AdminEscalationEmailsComponent","eQuerySummaryUrl","hideUrl","escalationEmailsUrl","usageReportUrl","AdminEQueryTabsComponent","hideUnHideUrl","CoordinatorEQueryTabsComponent","getEQueryStage","EQueryStageStorage","eQueryStageStorage","eQueryStageId$","prefilledData$","PrefilledEQueryCreateFormComponent","getEQueriesReportFilterItems","eQueryUsageReportType","getEQueriesReportOptionFilterItems","keyValue$","getUsageEQueriesReport","filterReport","reportFilter","AdminUsageEQueriesReportFilterItems","adminUsageEQueriesReportFilterItems","filter$","adminUsageEQueriesReport$","AdminUsageEQueryReportComponent","loadEmailNotificationAlertsFilterItems","AdminEmailAlertsStorage","emailAlertsStorage","emailNotificationAlertsFilterDefinitions","AdminEmailNotificationAlertsComponent","sentDate","SetDefaultAdminEmailNotificationFiltersGuard","getCustomViewList","viewReportListData","getViewColumnDetailsById","viewName","dynamicColumnDetailsData","saveDefaultColumns","requestInfo","saveUpdatedColumnInfo","requestData","columnDetails","addNewColumn","deleteColumn","appDataColumnDefinitionId","AdminEditColumnStorage","showCustomDeleteDialog","ModalDialogService","providedIn","COLUMN_INFO_TOKEN","adminEditStorage","formBuilder","deleteDialogService","columnInfo","datatypeList","hyperlinkField","defaultField","mandatoryField","hiddenField","columnViewInfo","editForm","getColumnForm","onDeleteClick","columnDisplayName","closeButtonText","deleteButtonText","getColumnInfo","closeDialog","updatedColumnInfo","getFormControl","onDataTypeSelected","selectedDataType","lable","defaultFlag","mandatoryFlag","hyperlinkFlag","hiddenFlag","dbViewColumnName","formatString","hyperlinkRoute","actionDbColumnName","entityAttribute","physicalEntity","physicalEntityAttribute","customSQL","formType","resultType","getRawValue","appDataDefinitionId","AdminColumnFormComponent","openEditDialog","AdminEditColumnService","editColumnService","viewData","isLoadingCompleted","dropdownError","isSubmitted","defaultDropDownText","viewList","viewDisplayName","naturalKey","onDropDownChange","selectedView","loadColumnInfoByView","getDefaultAndAvailableColumns","defaultColumns","setDefaultColumns","dc","setNonDefaultColumns","nonDefaultColumns","info","onAddNewClick","openEditColumnForm","columnDefinitionId","EditDefaultColumnsComponent","adminRoutes","runGuardsAndResolvers","documentsFilterDefaultDateRange","activityReportsFilterDefaultDateRange","sponsorStudyUrl","studies","saveStudyIsFavorite","loadStudies","SponsorStudiesStorage","categoryStorage","sponsorStudiesStorage","studyDocumentsCategories","firstAllowedCategory","CanSponsorViewStudyDocumentsGuard","SponsorRouteData","filterFieldDefs","getFilterDef","CategoryDocumentsFilterStorage","filterDefinitions$","getSiteId","siteIdentities","redirectToFirstSiteIfEmptySiteId","selectedSiteIdentity$","getSelectedSiteIdentity","onSiteChanged","navigateToSite","allowedCategories$","siteDocumentsCategories","getTabName","SiteDocumentsComponent","SponsorGuard","getAlertsUnreadBySitesCounter","concatMap","SponsorUnreadReportsStorage","SponsorEQueriesCountersStorage","studyList","cardStudyList","studyGroupId","sponsorEQueriesCountersStorage","sampleTrackingOptionResolver","resultAlertsLinkClassName","sponsorCommunicationLinkClassName","selectedStudies","getSponsorCommunicationsLink","getStudySubjectsLink","getStudyDocumentsLink","getSiteDocumentsLink","getSiteOverviewLink","getLabDataLink","getLabResultsLink","getActivityReportLink","getResultAlertsLink","getTableauLink","getSampleTrackingLink","sampleTrackerData","protocolCode","localStorage","setItem","appPermissions","alertsCounter","getSpecificCounter","alertsUnreadCount$","getLinkBadgetText","alertsIsDisabled$","getLinkDisabledStatus","eQueriesCounter$","getEQueriesCounter","eQueriesDisabled$","getEQueriesLinkDisabledStatus","commCounter","commUnreadCount$","commIsDisabled$","navigationLinks","numberOfSites","numberOfSubjects","enableStudyHealthDashboard","appendReportsLink","counter$","hasAccessToProtocols","otherPermissions","SponsorNavigationComponent","SelectedStudyResolver","unreadReportsStorage","loadStudyReports","study$","getStudyReports","loadSiteReports","getSiteReports","SponsorReportsStorage","selectedCategory$","selectedStudy$","SponsorCommunicationsComponent","StudyDocumentsComponent","DocumentsByChildComponent","sponsorRouteData","SponsorDocumentsColumns","currentStudy","subjectSiteId","SponsorLabTestResultsLinkBuilder","loadSponsorSubjectLabResults","subjectId$","loadLabTestsIdentities","loadLabTestsData","processRawData","loadLabTestsSiteData","loadAllQueryParam$","setTrendsFlagsAndOrderNums","subjectsFlags","SponsorLabResultsStorage","sponsorLabResultsStorage","testIdentities","LabTestsIdentitiesStorage","SponsorDocumentsFilterItemsStorage","SponsorLevelComponent","SponsorProtocolAccessessStorage","protocolAccessessStorage","SponsorProtocolAccessReportComponent","SponsorActivityReportFilterItemsStorage","RESTRICTED_SPONSOR_REPORTS_CATEGORIES","getSponsorActivityReportType","SponsorActivityReportDocumentsStorage","SponsorActivityReportsDocumentsColumns","categoryIdChangeFlow$","SponsorActivityReportDocumentsComponent","studyUserPermissions$","categories$","studyUserPermissions","appendDocumentsTab","appendProtocolAccessTab","documentsTab","SponsorActivityReportsComponent","SponsorResultAlertsComponent","trendsFilterFields","siteDataFilterFields","LabResultsFilterStorage","covanceFilter","testsDataSnapshotDictionary","testsData","filterredData$","LabResultsDataStorage","labTestsIdentitiesStorage","labTestsIdentities","selectedTest","zcTestId","selTest","siteBoxPlotUrl","visitBoxPlotUrl","trendsUrl","onTestChanged","SponsorTrendAnalysisComponent","renderer","boxtooltip","resultId","LabResultSponsorTooltipRenderer","bandRenderrer","labResultSponsorTooltipRenderer","sponsorRoutes","selectionDone","labTestsData","uniqSubjects","alertMessage","maxNumberOfTrends","yAxisTitle","td","tr","SponsorTrendsComponent","siteDisplayName","loadSponsorStudySites","SponsorStudySitesStorage","countriesFilterSubject","regionsFilterSubject","rawData$","st","countriesFilter","regionFilter","countryFilterDefined","regionFilterDefined","allCountries$","allRegions$","onCountryFilterChanged","onRegionFilterChanged","maxUnreadCount","unreadResultAlertsCount","unreadSiteCommunications","unreadSiteActionsCount","barColumnComparator","appendResultAlertsLink","appendSiteActionsLink","appendSiteCommLink","StudySitesComponent","loadSubjectIdentitiesByStudy","subjectIdentities","loadSubjectsByStudy","loadSubjectsByStudySiteIdentities","sites$","sitesParamString","SponsorSubjectsStorage","getNumberAndInitials","viz","viz2","sponsorSubjectsStorage","siteIdentities$","selectedSiteIdentities$","showMessage$","isLargeStudy","subjectsData$","loadSubjectsBySite","loadAllSubjects","maxNumOfAlertsSnapshot","alertsCount","onSelectedSiteIdentityChanged","selSite","lastVisitDate","StudySubjectsComponent","subjectItems$","selectedZcsubjectId$","selectedSubjectIdentity$","selectedZcsubjectId","SponsorSelectedSubjectLabResultsStorage","loadCtSubject","SponsorCtSubjectsStorage","SponsorSelectedSubjectRouteData","studyRouteData","ctSubjectsStorage","selectedZcSubjectId$","subjectLookupItems$","createSubjectLookupItems","selectedSubjectLookupItems$","getSelectedSubjectLookupItems","selectedSubjectId$","ctSubject$","getCtSubject","subjectDataLegend$","createLegendItems","onSubjectChange","SubjectLookupItem","lookupItems$","selectedZcSubjectId","zcSubjectId$","sponsorStudy","subject$","SponsorSubjectComponent","sponsorDefaultActivityHandler","loadSponsorStudySiteIdentities","SponsorStudySiteIdentitiesStorage","sponsorStudySiteIdentitiesStorage","SponsorStudySiteIdentitiesResolver","SponsorSubjectIdentitiesResolver","sponsorSubjectsRoutes","routeConfig","CanSponsorViewDocumentCategoryGuard","CanSponsorViewActivityReportsGuard","SponsorStudyPermissionsResolver","CanSponsorViewProtocolAccessGuard","onSiteIdentityChanged","siteIdentity","SponsorTestResultsComponent","filteredData$","SponsorStandardTestResultsStorage","currentSiteIdentity","isLargeSite$","SponsorStandardTestResultsComponent","SponsorMicrobiologyStorage","SponsorMicrobiologyComponent","selectedSiteId$","allReports$","showExport$","SiteDocumentsGridComponent","sponsorTestResultsActivityHandler","sponsorStudyDocumentsActivityHandler","SponsorSelectedStudySiteIdentityResolver","isActive","SponsorTrendAnalysisRedirectionComponent","SiteDocumentsRedirectionComponent","SponsorTestResultsRedirectionComponent","labResultSponsorToolTipRenderer","splitGenders","boxPlotGroupSelector$","boxPlotXAxisTickRenderrer$","boxPlotXAxisSorting$","boxPlotDataExtraFilter$","xAxisTitle","extraFilter","boxPlotChartData","sg","gs","tickRenderrer","splitGender","groupSelector","xTickRenderrer","SponsorBoxplotComponent","SponsorActivityReportsFiltersGuard","filterItemsStorage","SponsorLabReportsComponent","SponsorKitInventoryComponent","SponsorKitInventoryOnHandComponent","SponsorKitInventoryExpirationComponent","CanSponsorViewKitInventoryGuard","SponsorEQueryTabsComponent","firstCounter","SponsorEQueryRedirectionComponent","CanSponsorViewEQueriesGuard","SponsorEQueryColumns","sponsorEQueriesColumns","SponsorAwaitingEQueriesComponent","SponsorSubmittedEQueriesComponent","getTrustedToken","getAllDashboards","TableauStorage","selectedDashboard","TableauDialogComponent","tableauStorage","listOfReportSumary","vizOptions","hideTabs","hideToolbar","SPONSOR_NAME","onFirstInteractive","containerDiv2","newUrl","contentUrl","globalViz2","Viz","vizOptions2","subMenu","self","getWorkbook","getActiveSheet","getWorksheets","sheet","dashboardUrl","getDashboardData","onfullscreenchange","fullscreenElement","isFullScreen","initViz","containerDiv","vizUrl","loadViz","checkForReport","globalViz","TableauEventName","FILTER_CHANGE","onFilterValueChange","getFilterAsync","param","worksheet","activeSheetName","getName","updatedValue","getAppliedValues","getFieldName","activateSheetAsync","applyFilterAsync","FilterUpdateType","REPLACE","dashboards","loadDashboard","formUrl","exportToPDF","showExportPDFDialog","exportImage","showExportImageDialog","exportPPT","showExportPowerPointDialog","exportexcel","records","excelTypeFormate","sheet_set_column_format","coulmn","wb","book_new","ex","formatJson","getDataType","rowObj","cell","ws","C","Z","decode_range","get_table","encode_cell","parseFloat","z","viewDataSummary","getSummaryDataAsync","maxRows","ignoreAliases","ignoreSelection","includeAllColumns","tableData","tableHeader","toggleView","isSummaryVisible","cevent","m2","show","btn2","checkForFullMode","sessionStorage","getItem","openFullscreen","backToNormalMode","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","msRequestFullscreen","TableauComponent","CanSponsorViewStudyHealthDashboardGuard","subjectsRoutes","investigatorDocumentsActivityHandler","categoryParamName","investigatorRoutes","SiteCommunicationsMassUploadStorage","readFileAsBinaryString","reader","FileReader","onerror","abort","DOMException","onload","readAsBinaryString","parseFile","sheet_to_json","ExcelParser","UPLOAD_ERROR_DIALOG_DATA_TOKEN","UploadErrorDialogComponent","siteCommunicationsMassUploadStorage","excelParser","allowedRecipientFileExtensions","projectHeaderCellContent","siteHeaderCellContent","errorDetails","displayErrors","siteLimitDateControl","recipientsFileFormArray","allowedContentFilesExtensions","onSelectedRecepientsFiles","selectedRecepientsFile","sheetRows","headerRow","projectHeaderCell","siteHeaderCell","parsedRows","parseSheetRow","invalidRows","parseError","metadataItems","duplicates","getDuplicates","closePopup","sheetRow","sitesCell","itemDescription","SiteCommunicationsMassUploadComponent","getSpecificUser","UsersStorage","usersStorage","currentUserPk$","UserResolver","getGeneralReports","GeneralReportsStorage","GeneralDocumentsComponent","generalManualsColumns","GeneralDocumentsColumns","GeneralLevelComponent","elearningOpener","processNotificationLink","urlDate","openElearning","downloadDocument","MailLinksComponent","mailLinksRoutes","loadUsers","searchParams$","page$","userParams$","usersModel$","pairwise","oldParams","newParams","usersModel","isEmulationAvailable","UserEmulationStorage","childrenAfterGroup","userTitle","getEmulateUserUrl","UserEmulationGroupRenderer","protocolSearchTerm","projectSearchTerm","siteNumSearchTerm","sponsorFilterSearchTerm","protocolFilterSearchTerm","projectNumberFilterSearchTerm","regionFilterSearchTerm","subProtocolFilterSearchTerm","siteNumFilterSearchTerm","investigatorFilterSearchTerm","applicationRoleFilterSearchTerm","blindingRoleFilterSearchTerm","clientProtocolFilter","covanceProjectNumberFilter","siteNumFilter","investigatorFilter","applicationRoleFilter","blindingRoleFilter","results$","UserEmulationComponent","UserEmulationModule","categoryIdValue","generalCategory","createGeneralTabs","childGeneralCategories","GeneralDocumentsTabsComponent","childCategoryIdValue","GeneralDocumentsWithCategoriesComponent","isInvestigator$","isSponsor$","isAdminOrInternal$","DashboardContainerComponent","userPermissionStorage","currentUser$","userPermissions$","UserSettingsAccessGuard","generalDocumentsActivityHandler","SponsorEQueryFilterItem","firstEQuery","SponsorEQueriesStorage","SponsorEQueryDetailsDialogComponent","dashboardRoutes","globalDashboardRoutes","toggleFavorite","goToStudy","StudyCard","StudyCardComponent","containsCaseInsensitive","haystack","needle","FilterTypeEnum","unresolvedEQueryStatuses","loadingComplete","hasAccessToStudies","allStudyCards","studySorterMenuItems","sortingMethodStorageKey","categoryDisplayOrder","categoryNamesDisplayMap","eQueriesTooltip","unreadCounters$","unreadAlertsBySites$","permissions$","sortingMethod$","unresolvedEQueries$","alertCounters","sortingMethod","unresolvedEQueries","createStudyCards","studyCards","applyQuickSearchFilter","restoreStudySorter","applySorter","filterStudies","sorter","sortStudies","selectedSorter","onlyFavorites","card","eQueryCounters","studyCounters","studyAlertCounter","getUrlByCategory","studyItems","eQueryCounter","studyLink","SponsorStudyListComponent","SponsorDashboardModule","GeneralCategoriesResolver","activityReportsLink","editColumnsLink","canManageUserAccess$","canManageAuditLogs$","canManageCommonLinks$","canManageAnnouncements$","canManageProtocolActivation$","canReadProtocolActivation$","canMassUploadSiteCommunications$","canEmulate$","canConfigureColumns$","canManageCoordinatorEQuery$","canManageAdminEQuery$","AdminDashboardComponent","AdminDashboardModule","hasAccessToSites","siteSorterMenuItems","unreadInfo","sum","current","allSitesInfo","eQueryCounters$","unreadReportData","getSiteInfo","siteInfo","restoreSelectedSiteSorter","filterSites","siteSorter","sortSites","selectedSiteSorter","favorites","siteUnreadReports","siteUnreadLoaded","categoryDocs","unreadItem","getUrlForUnreadItem","eQueryInfo","getEQueryInfo","countersReady","eQueryInfoReady","equeryCounters","ec","unresolvedTotal","SitesListComponent","isFavoriteFlow","firstCategoryWithData","SiteCardComponent","InvestigatorDashboardModule","DashboardModule","displayLoginWidget","onAuthInfoLoad","authInfoSubscription","LoginPageComponent","isExistReturnUrl","LogoutPageComponent","authenticationRoutes","UserAuthenticatedGuard","corporateRoutes","SampleTrackingLevelComponent","reportUrl","newReportsCount","loadNewReportCount$","getNewReportCount","forceLoadReportCount","getGeneratedReports","reportList","getScheduledReports","getReportById","isGenerateReportValid","reportData","generateReports","scheduleReports","schedule","deleteReport","updateReportActivity","reportUpdateRequest","runReport","reportRunTime","reportContent","filterContent","deleteExistingReport","updateReportReadStatus","getDynamicListViewColumnInfo","listViewName","gridDataColumnPickerData","resetColumnConfig","ReportsStorageService","FilterNames","DbFilterNames","SampleStatus","createGroupUrl","updateGroupUrl","studyGroups","loadStudyGroups","studyData","studyGroupName","createStudyGroup","createStudyGroupRequest","deleteStudyGroup","editStudyGroup","editRequest","getPortfolioFilterData","portfolioFilterRequestData","portfolioFilterData","getSampleCountData","countFilterRequest","sampleCountData","loadEmptyCountData","getSamplesGridData","groupTrackingGridData","getDynamicListView","dynamicListViewGridData","getSampleSearch","constructParams","getVisitData","getSampleHeaderDetails","getSampleDetails","getReportData","barcodeNo","getSampleActivityData","containerid","getOpenEqueryQuery","formatedStudyGroups","groupedItems","sgn","filteredStudyGroups","createDbDate","updateDbDate","fsg","protocolCodeAndSponsorName","protocolData","getUserEmailPreferences","defaultEmail","searchResults","subjectSearchData","samples","displayAge","birthDate","visitBySubjectID","visitListData","sampleBySubjectID","sampleListData","saveUserConfigRequest","userConfig","definitionId","configJson","resetColumnSettings","samplesInInventory","samplesNotReceived","samplesReceived","samplesShipped","samplesDiscarded","samplesOnHold","samplesCollected","samplesCancelled","samplesRemoved","samplesShippedFromSiteToThirdParty","samplesShippedFromSiteToLabcorp","ob","SampleTrackingStorage","sampleTrackingStorage","sampleMonitoringUrl","newNotificationCount","loadNewNotificationCount$","getNewNotificationCount","loadProtocols","forceLoadNotificationCount","getFormDropDownData","criterias","getNotificationRulesGridData","createNewRule","ruleNameExists","getRule","sampleTrackerEditRuleData","updateRule","getRuleTypes","ruleTypes","notificationMethod","deleteRule","getMonitoringNotificationsGridData","timeFrame","getMonitoringNotificationsStatus","ruleData","getNotificationCriteria","eventType","SampleMonitoringStorage","monitoringStorage","SampleTrackingGuard","disableToolTip","sampleTrackingLink","sampleAliquotesLink","sampleMonitoringLink","reportsLink","preferenceLink","sampleTrackingLinksInfo","reportCount","notificationCount","newReportCount","newNotificationDisplayCount","reportDisplayText","smToolTip","SampleTrackingLinksInfoStorage","SampleTrackingNavigationComponent","routerList","AddRouterToBreadCrumb","currentRouteData","BreadcrumbService","breadcrumbService","removeItem","getDefaultUrlByRole","STWorkspaceLevelLayoutComponent","urlbuilder","actionButtonOption","isRouteToDashboard","searchList","alignBreadcrumb","portfolioRoute","breadcrumb","SampleTrackingDashboardComponent","SampleTrackingPreferencesComponent","Operator","sampleAliquotsHeaderData","isHoldIndicator","skipForDownload","isLink","visitDetailsHeading","sampleDetailsHeading","sampleDetailsHeadingForDiscarded","sampleDetailsHeadingForCancelled","sampleDetailsHeadingForInInventoryOrShipped","sampleDetailsHeadingForNotReceived","aliquotsGridHeader","createReportForSample","gridDetails","fileNameToDownload","clonedGridData","clonedVisitData","clonedSampleData","flatternGridData","constructHeaderForReportDownload","downloadData","constructDownloadModelForSample","exportAsExcel","createReportForVisit","constructDownloadModelForVisit","expandData","childDataForDownload","barcode","parentDataForDownload","cgv","cvd","vd","visitModelForDownload","sampleAliquotsModelForDownload","csd","aliquotsModelForDownload","sd","sampleModelForDownload","sheet_add_aoa","skipHeader","investigatorNameAndNo","patientNumber","randomizationNumber","visitNameAndPvc","specimenCollectedDate","kitReceivedDate","sampleData","containerBarcode","containerReceiptDate","expectedReceiptCondition","actualReceiptCondition","specimenType","containerLabelLine1","containerLabelLine2","aliquotedDate","InInventory","Shipped","Discarded","sampleRegisteredDate","smartSpecimenClass","smartSpecimenClassDescription","Cancelled","currentSampleStatus","NotReceived","pendingDaysReceipt","notification1SentDate","notification1SentTo","notification2SentDate","notification2SentTo","notification3SentDate","notification3SentTo","containerNumber","barcodeNumber","aliquotCreatedDate","cancellationDescription","gridTitle","sdh","vdh","TrackingOverviewService","trackingService","isSampleOnHold","equeryOpenDate","sampleSearchData","sampleSearch","forkJoin","equeryData","formatedData","sampleAliquot","sa","parentBarcode","sampleCount","isOnSMHold","parentAliquotDate","childAliquotDate","setSMHoldData","cd","pa","visitDetail","investigatorNumber","local","eQueryOpenHoldModel","eQueryDetails","equeryOpenData","onClickCreateReport","onEQueryButtonClick","protocolFK","eqUrl","VisitOverviewComponent","isSamePageNavigation","getSampleOverviewDetails","onAccessionNumberClick","onParentBarcodeClick","splitData","parentContainer","headerDetails","sampleModel","statusCssClass","setStatusCssClass","containerId","isParent","sampleDetailsData","sampleActivityData","activityStatus","SampleOverviewComponent","clearSelectedFilters","resetMyFilters","resetAllFilters","clearFilters$","clearFilterSelection","mission","SampleTrackingSelectFilterService","powers","pow","getSampleStatusInfo","formatedCount","transformCount","imgName","isHold","imgSize","sampleTrackingCancelledSamplesHelpText","timeFrameLabel","sampleTrackingAffectedByHoldSamplesHelpText","buttonLabel","sampleTrackingReceivedSamplesHelpText","sampleTrackingInInventorySamplesHelpText","sampleTrackingShippedFromLabcorpSamplesHelpText","sampleTrackingPendingArrivalSamplesHelpText","disableNavigation","subValue","enableShippedToFilter","sampleTrackingShippedFromSiteToLabcorpSamplesHelpText","sampleTrackingShippedFromSiteToThirdPartySamplesHelpText","sampleTrackingDiscardedFromSpecimenManagementSamplesHelpText","sampleTrackingRemovedFromSpecimenManagementSamplesHelpText","sampleTrackingAllSamplesHelpText","inputNum","absoluteVal","abs","power","reducedValue","getAllSamplesStatusInfo","SampleStatusService","SHIPMENT_CONFIRM_TOKEN","messageRequest","confirmDialogRequest","ConfirmDialogRequest","dropdownErrorMsg","textMaxLength","reasonErrorMsg","textAreaPlaceholder","confirmForm","confirmOptions","textareaPlaceholder","onStay","confirmDialogResponse","selectedOption","dropDownData","showReasonAreaByDefault","ConfirmDialogComponent","ActionType","ReportType","DynamicReportView","DateRangeTypes","protocolColumn","enableSearch","investigatorNumberColumn","investigatorNameColumn","screeningNumberColumn","patientNumberColumn","collectionDateColumn","collectionTimeColumn","containerNumberColumn","containerBarcodeColumn","sampleStatusColumn","kitReceiptDateColumn","kitReceiptTimeColumn","containerReceiptDateColumn","containerReceiptTimeColumn","expectedReceiptConditionColumn","actualReceiptConditionColumn","cancellationDescriptionColumn","containerLabelLine1Column","containerLabelLine2Column","visitDescriptionColumn","protocolVisitCodeColumn","shipmentCreatedDate","shipmentCreatedTime","shipmentSubmittedDate","shipmentSubmittedTime","scheduledShipmentDate","scheduledShipmentTime","shipmentCourier","shippedToOrganizationName","siteAirbillNumberColumn","specimenTypeColumn","daysWithActiveeQuery","eQueryType","numberOfSamplesEffectedByEquery","eQueryOpenDate","deleteService","basicGridcolumns","shippedFromSiteColumns","shipmentsOnHoldColumns","getColumnBySampleId","getGridColumnInfo","dynamicListColumnInfo","configJSON","userConfigcolumn","getConfigJsonMappedColumn","getGridHeaderInfo","columnHeader","viewInfo","loadGridColumnOnColumnSettings","listcolumnData","columnList","showResetDialogConfirmation","configData","columnData","reverseButtons","displayClose","loadGridColumnOnColumnSwap","appDataColumnId","isColumnSwapped","updatedGridHeader","isColumnUpdated","currentRecord","updatedRecord","getColumnSettingInfo","columnOptions","selectedcolumns","columnNameDisplay","applySearch","formattedData","onGridItemClickReceivedList","columnKey","dbColumnName","accessionnumber","container_number","routeUrl","actionDbViewColumnName","getDateColumns","filteredColumns","getDateColumnsByColumnFilter","dateColumns","getDefaultTimeFrameOption","statusID","getDynamicColumnList","dynamicColumnList","joinColumns","customSqlColumns","getFilteredSelectedColumnList","getColumnInfoList","customColumns","columnId","defaultDateTimeFormat","columnsList","SampleColumnsService","sampleColumnService","globalErrorHandler","columnSettingsService","getFilterData","projectFilter","invNumberFilter","dataList","protocolDefined","regionDefined","projectFilterDefined","invFilterDefined","countryName","filterDataByPatientNumber","patientInfo","patientnumber","getDropdownFilterData","portfolioData","filteredPortfolioData","sgpd","getFilteredItems","defaultList","myFilterList","filteredList","loadSelectedFilterList","protocolFilters","countryFilter","invFilter","selectedFilterList","addSelectedItems","investigatorNum","selectedIds","dbColumn","secondaryIds","sortId","getWhereFilters","selectedFilters","timeFrameFilter","selectedTimeFrame","whereFilter","in","between","loadDropDownItems","idField","extraField","selectFilterData","sfd","arr","sortFilterItems","getSampleCountRequestData","investigatorSite","overallInvFilters","getCountRequestData","loadInvSiteId","invFilters","filterRequest","SampleTrackingSampleCountRequest","filterInfo","investigatorSiteId","closeConfirmDialog","listViewConfirmDialogRef","displayConfirmDialog","isProtocol","yesButtonText","noButtonText","isSampleTracking","dialogRef","formatGridData","skipExpandData","columnHeaders","isReceivedView","childrenData","parentData","formatTime","getProtocolFilterPairs","getSelectedFilterValue","isID","getSelectedFilterIds","loadSqlProtocolData","protocolIdList","protocolInfoList","showNoDataText","snackBar","closeSnackbar","isClosingAction","getDynamicListRequestInfo","queryFilters","dynamicColumnInfo","dB_View_Name","dbViewName","dB_View_Column_Name","viewNaturalKey","joinTableFilter","customSql","specimenCollectionDate","containerReceivedDate","notification1Sent","notification2Sent","notification3Sent","effectiveDate","specimenCollectionTime","containerReceivedTime","sampleRegisteredTime","kitReceivedTime","notification1SentTime","notification2SentTime","notification3SentTime","shippedTime","eQueryOpenTime","formatDateTimeValue","dialogRequest","columnValue","SamplesHelperService","selectFilterService","samplestatusService","breadCrumbService","samplesService","currentFilter","showMyFilterLoading","isEnableSaveFilter","defaultProtocolFilter","defaultProjectFilter","defaultRegionFilter","defaultCountryFilter","defaultInvestigatorFilter","newText","editText","deleteText","infoMsg","menuToolTip","isLoadCountEnabled","protocolSponsorPairs","filterCount","dashboardData","initializePageData","loadProtocolData","getProtocolFilterData","setFilterData","loadSampleCountData","myFilterItems","filterList","applyFilter","setListViewData","selectedStudyGroup$","onStatusSelectChange","onSubjectSearch","sponsorProtocolPair","pt","clearFilter","loadCount","onProjectFilterChanged","onProtocolFilterChanged","onInvestigatorNameFilterChanged","getProtocolList","onMyFilterChange","selectedProtocolFilters","sf","selectedProjectFilters","selectedRegionFilters","selectedCountryFilters","selectedInvestigatorNumFilters","regions$","projects$","countries","invsiteList","invNumber$","onMyFilterSubmit","onSaveFilterClick","previousRequestData","fi","getProtocolFilterList","routerUrl","sponsorProtocolIds","loadCountData","countData","protocolList","protocolPk","filterRequestData","sampleStatusList","exclude","selectedFilterItems","OverviewDashboardComponent","downloadAsCsv","getMappedData","getAllSamplesColumnMapping","getNotReceivedColumnMapping","getReceivedSamplesListColumnMapping","getShippedColumnMapping","getInventoryColumnMapping","getDiscardedColumnMapping","getCancelledColumnMapping","getShippedFromSiteColumnMapping","getShipmentsOnHoldColumns","getBasicGridColumnMapping","getDownloadData","downloadInfo","childData","downloadAsCSV","isDynamicView","clonedGridColumns","loadCommonMappings","protocolVisitDescription","loadExpectedDataMapping","containerLabel1","containerLabel2","commonMappings","expectedMappings","sampleStatus","cancelDescription","addEndColumns","expectedReturnState","daysPendingReceipt","shippedToLocation","airwayBillNumber","specimenClassDescription","specimenClass","courier","shippedToOrgName","expectedMapping","airwayBillNumberColumn","listData","commonColumnMappings","endColumnMappings","daysOpen","samplesAffectedByQuery","samplesEffectedByQuery","SamplesDataDownloadService","samplesHelperService","downloadService","gridLoadingComplete","defaultPageSize","timeframeOptions","collpaseFilter","filterSamplesInfo","applyGridSearch","selectedDateRange","defaultShippedToFilter","filterByPatient","loadGridData","clearInterval","gridDataSubscription","getFilterDefaultValues","filterSubject","timeFrameFilterChange","formattedGridData","onShippedToFilterChanged","formatData","gridData$","shippedTo","onTimeFrameOptionSelected","statusId","dl","filterRequestInfo","SamplesGridRequestInfo","sampleType","isOnHoldListData","countryId","timeFrameFilterColumn","setInterval","checkIfLoaded","zoom","outerWidth","SampleTrackingFilterSamplesComponent","ReportAction","reportStorage","generatedReportsHeader","displayCustomData","ngClass","actions","actionType","exportExcel","scheduledReportsHeader","actionName","notify","run","reportDateRangeOptions","sampleTrackingReportDateRangeOptions","getDateRangeFilters","getDateRangeOptions","SpecimenManagementInventoryReport","selectedData","selectedItemsList","getDropDownValueList","itemList","applySearchToGrid","getDateRangeValue","dateValue","dateType","getSelectedDateRangeValue","getSelectedDateRangeByDaysBack","daysBack","getColumnSettingsInfo","dynamicColumnsInfo","formatedResult","columnSettings","getConfigJsonForColumnInfo","updateColumnSettingsInfo","configInfo","ReportColumnsService","reportsColumnService","reportsStorageService","trackingGridService","generatedReportDetails","loadingScheduledReports","isGeneral","scheduledReportDetails","getActivatedRouteType","viewAllReports","viewScheduledReport","getHeaderText","reloadScheduledReports","loadScheduledReports","reloadGeneratedReports","generatedReportData","scheduledReportData","getReportDataRequestInfo","generatedReports","scheduledReports","loadLatestReports","latestReportsCount","SampleTrackingReportsComponent","openGenerateReportForm","updateReadDataFormat","readUpdateItem","reportID","ViewGeneratedReportsComponent","dataLoaded","timeFrameFiltersubject","loadAllData","gridFilter","ViewScheduledReportsComponent","SampleTrackingReportsLoaderComponent","ConditionTypes","RuleEventType","EventType","reportService","reportColumnService","showActionsLoading","selectedItemList","showSaveOptions","showScheduleOptions","disableSchedule","disableSave","disableGenerate","isScheduleRoute","isReportNameError","dateRangeOptions","expandEditView","reportOption","disableAllActionButtons","getDynamicReportColumns","getSavedReports","onEditViewClick","columnSettingsInfo","dynamicColumnData","resetColumnToDefault","selectedReportDateRange","beginDateValue","endDateValue","filterErrorMsg","clonedItems","paramsFilterContent","parsedKey","reoccurencePattern","scheduleFilterContent","enableAllActionButtons","onFilterOptionsChange","onGenerateReportClick","constructFilterParams","onSaveReportClick","reportMsg","DateTimeFormat","timeZone","reportAction","NotGeneratedSaved","GeneratedSaved","isError","setGenerateReportData","generateRes","onScheduleReportClick","onScheduleClick","scheduleData","scheduleParams","getReportDetailsById","generateReportData","preSelectedFilterItem","matchingReport","SMInventoryReport","SampleTrackingReport","hasFilterSelected","reportInfo","filterJSON","GeneratedNotSaved","NewReportComponent","subjectIDSearchHeader","hideSort","subjectVisitHeader","subjectSampleHeader","visitSampleGridItemClick","SubjectSearchService","subjectSearchService","statusService","sampleHerlperServcie","resultCount","emptyPlaceholder","subjectRequestData","patientId","listViewData","allSamplesList","investigatorSitelId","SubjectSearchOverviewComponent","headerLabel","patientDetails","setPatientDetails","dateOfBirth","SubjectVisitDetailsComponent","SampleMonitoringComponent","SampleTrackingResultAction","frequencyList","actionList","regexPattern","getSampleMonitoringForm","isCreate","frequency","ruleName","numberOfDays","includeId","sortFilterItemsByValue","newCondition","getConditionsList","cancelledSamples","getCancelledSamplesConditions","getEventConditions","getRuleEventType","CancelledEvent","PendingArrivalNonBatch","PendingArrivalBatch","ActiveeQueryEvent","getDropDownList","condition","criteriaData","addNotificationCritieria","criteria","notificationConditions","isNonBatchEvent","addNumbeofDaysToCriteria","selectedCondition","selectedConditionValue","conditionValueList","loadId","daysPending","getFilteredCriteria","getFilteredDropDownList","getRuleData","criteriaJSON","eventdata","specimenTypes","monitorRuleName","emailImmediateFlag","createdDate","lastEditedDate","getFilteredDataList","dropDownField","showAll","columnName","columnValues","isFilterDefined","SampleMonitoringService","smStorage","sampleMonitoringService","showDataLoading","notificationStatus","mergedResult","nd","accessionContainer","notificationDate","getNotificationsColumnDefs","dataStyleClass","SampleMonitoringNotificationsComponent","groupname","getHighlightedText","originalText","regex","TextHighlightService","STUDY_GROUP_CREATE_TOKEN","textHighlighterService","studyGroupInfo","studyListInfo","studyGroupTitleCtl","createFromGroup","isUniqueName","createGroup","getSelectedStudyIds","CreateGroupRequest","createRequest","oneStudyChecked","isStudySelected","isFormInValid","cardProtocolCode","CreateStudyGroupComponent","MESSAGE_SERVICE_TOKEN","messageDialogRequest","MessageDialogRequest","isSuccess","MessageDialogComponent","STUDY_GROUP_VIEW_TOKEN","deleteGroup","editGroup","ViewStudyGroupComponent","STUDY_GROUP_DELETE_TOKEN","DeleteStudyGroupComponent","protocolsToCheck","protocolsToUnCheck","STUDY_GROUP_EDIT_TOKEN","STUDY_GROUP_EDIT_INFO_TOKEN","groupStudies","otherStudies","createOtherStudies","selectedOtherStudies","getSelectedOtherStudies","unCheckedGroupStudies","getUnCheckedGroupStudies","editrequest","EditGroupRequest","isGroupNameUpdated","isStudyUpdated","groupStudyList","otherStudyList","filteredResult","EditStudyGroupComponent","DELETE_REPORT_TOKEN","scheduledContent","DeleteReportComponent","showPostActionDialogue","success","showViewDialog","allStudyGroups","showDeleteReportDialog","SampleTrackingDialogService","modalDialogService","showExpiredRulesToggle","createNewRuleUrl","rules","rule","staticGridData","FilterExpiredRules","dynamicGridData","emailNotification","deleteDialogData","iif","showExpiredRules","isExpirationField","SampleMonitoringNotificationRulesComponent","showRuleNameLoading","formDropdownData","defaultFrequency","showListLoading","showSpecimenAndRegionLoading","showSubmitLoading","dateErrorMsg","ruleNameError","isEmailEnabled","isEditmode","isViewOnlyMode","conditionList","isCriteriaLoading","filteredConditionsList","isPendingEvent","selectedSpecimenTypes","isEmailImmediateFlag","conditionsArray","loadFromDropdownLists","onRuleNameChange","selectedProtocol","ruleTypeId","selectedEvent","emailFlag","updateData","monitorCritera","onProtocolSelected","checkIfRuleNameExists","clearConditions","loadCriteria","onEventSelected","ruleType","onFrequencySelected","onSpecimentTypesSelected","onExpirationDateAdded","checkDateTime","addNewCondition","selectedConditions","newConditionsList","isAutoSelected","disableAddCondition","removeCondition","conditions","formNumber","updateCriteriaList","getFormArrayControl","onConditionSelected","formGroupID","existingCondition","getConditionDropDownList","setConditionList","onConditionValuesSelected","isInitialLoad","selectedForm","autoSelected","valueList","filterOtherValues","onBatchReturnSamples","includeBatchReturnSamples","eventList","ruleTypeName","isValidJSON","monitorCriteria","deletedFlag","patchValue","loadSpecimenType","loadNotificationCriteria","ruleEventId","specimentTypeList","notificationCondition","regions","addNewNotificationCriteria","visitDescriptions","protocolVisitCodes","expectedReceiptConditions","investigators","mc","conditionName","selectedCriteria","rl","SMNotificationRuleFormComponent","showExportMenu","expandFilter","columnSwapped","getDynamicGridColumns","statusKey","dynamicListColumns","DynamicListViewComponent","sampleTrackingRoutes","SampleManagementGuard","SampleManagementLevelComponent","FormButtonType","sampleManagementUrl","getPendingRegistrationList","formatPendingSamplesList","sampleRegistrationPendingListData","getRegisteredSamplesList","formatRegisteredSampleList","sampleRegistrationRegisteredSampleData","searchEnabledColumns","getPendingRegisterationHeader","resume","helpTextClass","getRegisteredSamplesHeader","showIndicator","indicatorField","subFields","importAction","lastSavedDate","containers","numberOfContainersRegistered","totalNumberOfContainers","isAlternateContainer","alternateData","indicator","containerIdentifier","alternateContainerDescription","isAdditionalContainer","SampleDetailsService","defaultSortField","displayDateFilter","getPendingSamplesList","registerSample","PendingSampleRegistrationComponent","showSubmitAlert","closeAlert","loadRegisteredSamples","headerList","investigatorSiteNumber","RegisteredSamplesComponent","subSeq","activeField","relatedFormFields","subSequence","ErrorMsg","siteShippingUrl","getShipmentSummaryDetails","siteShipmentId","shipmentSummaryData","getShipmentList","fromDateRange","toDateRange","shipmentList","getInProgressShipmentList","inProgressData","getSumbittedDataByProtocolList","SiteShippingToolStorage","onActionClick","isYesButtonClicked","DeleteDialogComponent","sessionFormName","sessionBarcodesList","sessionContainerGrid","sessionContainerTransferData","sessionFocusData","sessionResumeShipment","isUserEmulated","getCountryId","address","selectedAddress","getToLabSiteId","orgName","selectedOrg","companyName","labSiteId","getWarningMessage","statusCode","submittedOn","airbillNumber","getShipmentTableHeader","sampleKey","formatShipmentDetails","checkPermission","barcodeRaw","pad","hasPermission","unFormattedBarcode","formatBarcode","userEnteredBarcode","formattedBarcode","sliceContainerAndAccession","getLocalStorage","formValue","barcodes","transferData","currentFocus","setCurrentFocusData","showShipmentDetails","setContainerValuesToLocalStorage","containerBarcodes","setGridDataToLocalStorage","setFormValuesToLocalStorage","shipmentFormData","setContainerTransferDataToLocalStorage","containerTransferData","setResumeShipment","isResumeShipment","deleteLocalStorage","formatBarcodeList","barcodeList","formattedList","barcodeInfo","loadShippingFromAddressDetails","shipmentFormGroup","shipmentData","countryList","fromAddressLine1","shippingFromAddress","shippingAddressLine1","fromAddressLine2","shippingAddressLine2","fromAddressLine3","shippingAddressLine3","fromCity","shippingCity","fromCountryId","shippingCountry","fromOrganizationName","shippingOrgName","fromPhoneNumber","shippingOrgPhone","fromPostalCode","shippingPostalCode","fromStateProvince","shippingState","loadDestinationAddressDetails","addressList","toAddressLine1","destinationAddress","destinationAddressLine1","toAddressLine2","destinationAddressLine2","toAddressLine3","destinationAddressLine3","toCity","destinationCity","toCountryId","destinationCountry","toOrganizationName","destinationOrgName","toPhoneNumber","destinationOrgPhone","toPostalCode","destinationPostalCode","toStateProvince","destinationState","toLabSiteId","da","getExistingShipmentWarning","containerTransferReason","isWarning","listItem","ctr","transferReasonId","showSaveOrSubmitConfirmation","shipmentName","isSaveAction","showSaveConfirmation","showSubmitConfirmation","showSaveShipmentError","patchShipmentName","shippingToName","getContainerTransferData","warningResult","containerTransferReasonId","otherReason","siteShipmentContainerId","investigatorsiteShipmentContainerId","transferedOn","num","applySamplesSearch","ShipmentFormService","getShippingFromAddress","containerBarcodeList","addressFilterList","dropDownValue","getAddressValue","customAddressItem","getDestinationAddress","otherAddressItem","isAribillNumberValid","getToLabcorpAddress","shippedToAddressData","getCourier","courierData","getContainerSearchData","formatedBarcode","getContainerTransferReason","getInprogressShipmentDetails","isToAddress","labSiteName","departmentName","addressLineOne","addressLineTwo","city","zipCode","loadCountryList","deleteShipment","shipmentId","deleteContainerFromShipment","ShipmentFormStorage","shippingStorage","createShipmentFormService","shipmentFormStorage","isInprogressListLoadingComplete","inProgressListHeader","PrepareHeaderColumn","PrepareInProgressHeaderColumn","loadShipmentDetails","loadInProgressShipments","isEmulated","onInProgressGridActionEvent","handelDeleteShipment","viewAllShipments","formatShipmentList","inProgressDataGridDetails","onRowsSelected","view","numberOfContainers","investigatorSiteShipmentContainerId","showWarning","deleteInprogressShipment","ShipmentListComponent","downloadAsXlsx","headerText","timeRange","expectedReturnCondition","trackingNumber","courierName","shipmentSubmittedBy","kitReceiptDate","actualReturnCondition","ProtocolShipmentService","protocolShipmentService","isProtocolLoading","protocolError","protocolDefaultText","timeFilterData","protocolShipmentData","ps","onProtocolChange","isExcelFormat","ProtocolShipmentListComponent","service","canDeactivate","showNotSavedAlert","oneFieldFilled","confirmationOnLoad","filledControls","CreateShipmentFormGuard","numericPattern","getAllFormFields","formFields","FormField","addAddressFields","getShipmentFormGroup","loadShippingAddressControls","loadDestinationAddressControls","loadShippingFormControls","loadInProgressFormData","shippingAddress","getAddressData","destination","getDestinationAddressData","shippingFrom","shippingToLabcorp","airBillNumber","FormQuestionService","formQuestionService","shipmentFormService","isDataLoaded","containerData","containerCreationStartedOn","loadFormData","onFormSubmit","isSubmited","formValueChangeEvent","startedOnDate","createdOn","gridList","setGridData","CreateShipmentComponent","ResumeShipmentFormGuard","shipmentStorage","savedShipmentData","containerGridData","getDateValue","investigatorsiteshipmentId","containerID","investigatorSiteshipmentContainerId","ResumeShipmentComponent","summaryByProtocolData","toSubAddressData","fromSubAddressData","showSuccess","printedOn","summaryData","getSubAddressData","toState","fromState","loadData","includeTransferReason","addHeader","containerBarcodeRaw","transferredTo","addContainerDataToProtocol","ShipmentSummaryComponent","SMWorkspaceLevelLayoutComponent","samplesShippedByProtocol","shipmentsLink","SMNavigationComponent","SiteShippingLoaderComponent","accessionDetailsHeader","EQueryUsageReportType","getAccessionDetails","getVisitDetails","sampleRegistrationVisitData","saveVisitDetails","getRegisteredVisitDetails","sampleRegistrationRegisteredVisitData","getContainerList","sampleRegistrationContainerListData","getCollectionStatusList","sampleRegistrationCollectionStatusData","collectionStatusId","statusDescription","showReason","isCollected","getReasonsList","sampleRegistrationSampleNotCollectionStatusData","notCollectedReasonId","notCollectedReasonDescription","isCommentRequired","deleteSampleRegistration","submitSampleRegistration","updateContainer","insertAdditionalContainer","registeredVisitId","containerDescription","getAlternateSampleReason","sampleRegistrationAlternateSampleReasonData","alternateReasonId","alternateReasonDescription","resetAlternateContainer","RegisterSampleStorage","ADDITIONAL_CONTAINER_TOKEN","intendedUseFormControl","containerRequest","addContainer","onNext","AdditionalContainerComponent","registerSampleStorage","alternateSampleList","dropdownHeader","textareaHeader","displayRequired","isSMAlert","hideCloseIcon","warningBtnText","validateAdditionalBarcode","ct","format1","format2","formatedCode","AdditionalContainerError","showAdditionalContainerDialog","isMatchingAccession","errorText","showAdditionalDialog","validatePatientId","isPatientError","InValidBarcode","PatientError","getSaveRequestData","kitRequestedOn","kitExpiresOn","kitDescription","kitboxLabel1","kitboxLabel2","visitScheduleId","patientIdentifier","visitCollectionDateTime","visitCollectionTime","checkCollectionDateTime","isSame","showDeleteWarning","cssStyle","deleteRegistrationReasonDialog","getContainersHeader","isDropdownField","headerStyleClass","childHeader","disableField","AccessionDetailsService","accessionService","saving","containerFormControl","showAdditionalContainer","showBarcodeLoading","searchContainer","statusList","collectionStatusList","onValidAccessionEntered","checkContainerCode","sampleRegistrationAccessionData","accessionDetails","loadContainers","onAlternateContainerSelect","registeredContainerId","modifiedon","containerList","formatedContainerList","onStatusSelect","isReturnMandatory","disableLink","registeredContainerCollectionStatusId","registeredContainerNotCollectedReasonId","notCollectedReason","selectedReason","collectedStatus","registeredContainerAlternateReasonId","notCollectedOtherReason","disableAction","collectionStatus","isValidContainerNumber","SampleRegisteredForVisitError","openAdditionalContainer","barcodeEvent","barcodeData","submitRegistration","subHeaderText","formatContainerList","returnRequirement","label1","unCollectedData","reloadData","RegisterSamplesComponent","showBarcodeScanner","accessionFormControl","collectionTime","visitDropDown","visitInfoList","showVisitLoading","patienError","showOtherDetails","timeError","checkAccessionNumber","checkPatientIds","updateVisitDetails","validateCollectionDate","addAccession","clearData","NoAccessionFound","NonLabCorpKit","NoPermission","PermissionRequired","AccessRequired","SampleAlreadyShipped","SubmittedSamples","deleteSampleRegistrationDialog","loadVisitDetails","openBarcodeScanner","nextClick","selectedVisit","onVisitSelected","updateHeaderDetails","OnlyNumberError","MaxBytesError","validateCollectionDateTime","time","isVisitDateValid","addedTime","getHours","getMinutes","registedVisitId","OpenDeleteSampleRegistration","deleteReason","deletedOn","isSampleDeleted","AccessionDetailsComponent","sampleManagementRoutes","routing","forRoot","audienceRoles$","onChangedRoles","AudienceRolesSelectComponent","AdminFormFieldsModule","AuditTrailReasonsStorage","AuditTrailModule","suggestions","isLoadingSuggestions","maxSymbolsCount","maxLength","onSuggestionClick","suggestion","suggestionsPopover","CovanceTextFieldComponent","CovanceTextFieldModule","protocolsChange","searchProtocolFlow$","isSearchingForProtocols$","selectedProtocols","ProtocolSearchSelectComponent","userSearchService","searchUserFlow$","isSearchingForUsers$","users$","onUsersChange","UserSearchSelectComponent","searchTerm$","items$","loadItems","onSearchTermChanged","onSelectedItemChange","clearSelect","itemsLoader","ProtocolSearchFieldComponent","AdminSharedModule","getSiteSubjects","AdminSubjectsStorage","createEQuery","descriptions","isActiveEQueryChanged","errorType","EQueryStorage","titlesByCategoryId","getStandardTitles","titles","standardTitlesByCategoryId","StandardTitlesStorage","searchUserEmail","loadProtocol","searchProtocol","AdminProtocolAccessSearchFieldsStorage","searchFieldStorage","emailSearchField","protocolSearchField","searchFieldFormGroup","atLeastOneRequiredField","emailsLoader","protocolLoader","searchFieldValues","AdminProtocolAccessFilterComponent","AdminActivityReportsModule","successUpload","UploadDialogActionButtonsComponent","percentDone","UploadProgressComponent","ApplicationTrainingInfoComponent","GeneralDocumentInfoComponent","SiteCommunicationsInfoComponent","SponsorCommunicationsInfoComponent","StudyManualInfoComponent","TrainingMaterialsInfoComponent","selectStyle","selectedAccessions$","AccessionSelectComponent","DocumentLetterNumberComponent","standardTitlesStorage","isLoadingStandardTitles","standardTitles","DocumentTitleComponent","DocumentVersionNumberComponent","projectsStorage","valueChanged","searchProjectFlow$","isSearchingForProjects$","onProjectsChange","selectedProjects","ProjectSelectComponent","projectStorage","SiteSelectByProjectsComponent","siteStorage","showLimitDate","showAllSites","multiSelectProject","selectedSitesControl","allSitesControl","project$","isAllSites","SitesSelectComponent","subjects$","selectedSubjects$","onSelectedItemsChange","SubjectSelectComponent","validateNotEmpty","onCategoryChange","selectedCategories","CategorySelectComponent","UserPermissionsModule","protocolStorage","ProjectsSelectByProtocolComponent","AdminEquerySummaryFiltersGuard","EQUERY_EDIT_TOKEN","ACCESSION_SUBJECT_TOKEN","ACTIVE_EQUERY_TOKEN","eQueryStorage","accessionSubject","activeEQuery","previewOptions","hideComments","hideEscalations","extractNewAttachments","extractExistingAttachments","extractNewQuestions","extractExistingQuestions","resultError","issueTypeDescription","queryText","AttachedFile","AdminEQueryPreviewDialogComponent","CoordinatorEQueryTitleComponent","firstLevelEmailEscalations","secondLevelEmailEscalations","thirdLevelEmailEscalations","CoordinatorEQueryEmailEscalationsComponent","searchFieldsStorage","textFieldStyles","numberFieldStyles","eQueryIdSearchField","accessionNumberSearchField","eQueriesLoader","accessionNumbersLoader","EscalationEmailsFilterComponent","EscalationSearchFieldComponent","EscalationLevelSelectComponent","onTouch","onSelectedLevel","mail","mailFormArray","EmailControl","duplidateEmailValidator","duplicateEmailError","emailFormControls","EscalationMailFormArray","baseMailsValidator","emailIndex","mailControls","$escalationMailDrop","setMailDrop","EscalationMailEmitter","escalationMailEmitter","isFirstValid","mailsMaxCount","mailsMinCount","formMails","escalationKey","escalationMail","dropFrom","escalationName","dropTo","deleteElement","EscalationMailComponent","selectedMail","elementIndex","searchedMailChanged","searchedMail","isDuplicateEmail","hasDuplidateEmailError","addMail","userEmailsSearchComponent","onDragStart","onDragOver","onDrop","isDuplicateMail","escalationMailDrop","EscalationMailDrop","submitEmail1","firstEmailEntered","submitEmail2","secondEmailEntered","checkThirdEmail","mailCtrl","childMailCtrl","validateEmail","escalationMails1Ctrl","secondEmailComponent","escalationMails2Ctrl","checkSecondEmail","setEmailErrors","detectChanges","customErrorMessage","EscalationMailFormControl","EscalationsComponent","uploadedFiles","uploadedFilesControls","uploadedFileDescriptionControls","maxAttachmentDescriptionBytes","eQueryMaxNumberOfAttachments","fileEditorForm","newFormControl","noWhitespaceValidator","controlValue","fileKey","getFilesWithDescriptions","filesToDescriptions","EQueryAttachmentsUploaderComponent","escalationMailsSiteCtrl","isPrefilledDataInvalid","prefilledData","getEQueryData","navigateToSummaryTab","mapPrefilledQuestionsToQuestionsInfos","prefilledQuestions","pq","query","issueDesc","PrefilledDataError","getEQueryUrlPart","prefilledEQueryCreate","attachmentsUploader","projectId","escalationMails1","escalationMails2","escalationMailsSite","queries","responseMask","responseMaskDescription","maskDesc","AdminPrefilledEQueryEditComponent","CommentsComponent","EQueryQuestionsComponent","rangeDateFilter","fillReportTypesDictionary","resolveFilterItems","usageReportType","usageReportTypesDictionary","UsageEQueryReportFilterItemsResolver","usageEQueryReportFilterItemsResolver","startSearch$","usageEQueryReportTypes","Sponsor","Project","Country","All","usageEQueryReportType","usageEQueryReportValue","search$","filterDefs$","AdminUsageEQueriesReportFilter","onUsageReportChange","AdminUsageEQueryFilterComponent","AdminUsageEQueryReportDataComponent","getMergeEQueryData","eQueryStage","currentActiveEQueryId","AdminPrefilledActiveEQueryEditComponent","ActiveEQueryComponent","getQuestions","ActiveEQueryQuestionsComponent","ActiveEQueryAttachmentsComponent","searchEqueryFieldsStorage","HideEqueryFilterComponent","AdminEQueryModule","AdminModule","SponsorSubjectLabTestsGridComponent","SponsorEQueryGridComponent","SponsorEQueryModule","SponsorModule","GeneralDocumentsModule","OnScreenResultsModule","shouldUseLegacyOktaWidget","forgotPasswordLink","idpLink","customLink","config","authClient","baseUrl","logo","oktaWidgetLogoPath","i18n","en","oktaWidgetTitle","features","idpDiscovery","oktaWidgetIdpDiscovery","requestContext","helpLinks","forgotPassword","help","custom","widget","widgetLogin","showSignInToGetTokens","setTokens","OktaWidgetComponent","AuthenticationModule","ngModule","MailLinksModule","intercept","handle","emulReq","clone","setParams","emulateAsParamName","EmulationInterceptor","skipWhile","authReq","setHeaders","TokenInterceptor","showLoadingBar$","LoadingBar","loadingBar","canShowLoadingBar","LoadingBarComponent","loadingBarDelay","routeSubscription","setupRouteLoadingBar","showLoadingBar","hideLoadingBar","showing$","delayedLoadingBar$","RouteLoadingBar","routeLoadingBar","LoadingBarModule","navigateToHome","STHeaderComponent","messageText","studyGroupPk","SampleTrackingActionService","textHighlightService","actionService","createStudyGroupInfo","studyGroupCards","searchTextHighlight","allStudyGroupCards","addStudyInfo","newStudyGroupInfo","getStudyGroupInfo","setCreateAndUpdateDates","updateDate","updatedDate","cardGroupName","studyGroupList","groupInfo","ActionButtonOption","StudyGroupListComponent","sampleTrackingDialogService","sampleTrackingActionService","viewStudyGroup","StudyGroupCardComponent","onProtocolClick","ProtocolsComponent","validateContainerNo","getAccessionAndContainerNo","SampleSearchService","sampleSearchService","searchForVisit","validation","searchForSample","searchForVisitError","searchForSampleError","onVisitSearchClick","showLoadingForVisit","accessionContainerData","onSampleSearchClick","sampleSearchValue","containerNoValidationMsg","showLoadingForSample","onSearchForSampleKeyDownEvent","SamplesSearchComponent","sampleStatusService","statusSelect","handleNgclass","statusInfo","selectStatus","SampleStatusComponent","VisitDetailsComponent","clearSelection","defaultItemText","currentSelected","onsingleValueSelect","unCheck","skipEmit","SampleTrackingSelectComponent","exportFileName","pagination","autoPagination","suppressPaginationPanel","paginationPageSize","goToPageItems","setPages","paginationGetTotalPages","gotToPage","paginationGoToPage","paginationSetPageSize","onGridReady","onPaginationChange","SampleTrackingGridComponent","SampleTrackingAgExportComponent","containerValue","ContainerRendererComponent","AccessionRendererComponent","SampleDetailsComponent","hideDescription","SampleActivityComponent","onBreadCrumbClick","AppBreadcrumbComponent","SampleTrackingReportTypesComponent","reloadGeneratedData","activeFlag","notifyFlag","enableToggleClass","isDownloadAction","recordCount","reportStatus","hideToggle","downloadAsExcel","folderName","storageLocation","editReport","scheduledReportName","enableReport","updateReport","notifyReport","scheduledReportContent","isNotify","ReportActionRendererComponent","reloadGridDataEmitter","reloadGeneratedDataEmitter","updateReadDataEmitter","showActionsHeader","displayRow","rowLimit","superScriptField","reloadGridData","reloadGeneratedGridData","updateReadGridDataFormat","ReportTrackingGridComponent","reloadUpdatedData","onReloadGridData","isGeneratedGridReload","ScheduledReportGridComponent","updateReadData","GeneratedReportGridComponent","onMyFilterAdd","isUniqueFilterName","searchFilterName","searchfilterItems","showMenu","showFilterInput","filterMenuOptions","activeButtonText","warnButtonText","isExactFilterNameFound","hideMenu","onFilterItemSelect","onFilterMenuClick","onSubmitButtonClick","onCloseButtonClick","onSelectboxClick","focusElement","onAddNewItem","MyFiltersComponent","onScheduleChange","scheduleTypes","weekdayItems","weekItems","selectedWeekday","selectedWeek","infoMessage","showInfoPopup","showWeekdayDropdownList","showWeekDropdownList","selectedScheduleType","dailyData","isEveryWeekDay","weeklyData","monthlyData","isInfoMsgAccepted","startTime","scheduleRunTime","toLocaleString","hour","minute","hour12","setScheduledData","onScheduleTypeChange","getDefaultWeekday","getDefaultWeek","onDailyOptionChange","errorField","onWeekdayItemChange","getEffectiveDate","onWeekItemChange","onInfoActionClick","onScheduleActionClick","validateDailyData","daily","validateWeeklyData","weekly","recureEvery","validateMonthlyData","isDay","monthly","dayNumber","dayMonth","weekMonths","weekday","week","onStartTimeSet","skipValidation","currentDateTime","isSameOrAfterTime","isSameOrAfter","currentDay","daysToBeAdd","effectiveDateString","selectedDayDate","isSameOrAfterDayDate","selectedDay","isSameOrAfterDay","isSameOrAfterMonthTime","selectedMonthDay","daysInMonth","verifyDateFormat","clearValidationMsg","weeks","wi","weekDay","weekDayNumber","wdi","weekCount","hasExtraDays","setDate","ScheduleReportComponent","reportcolumnService","dateRangeTypes","onDateRangeTypeChange","onDataLoad","isSaveFilterEnabled","isStudyGroupLoading","isRegionLoading","isProjectLoading","isCountryLoading","isInvestigatorLoading","reportTypes","selectedReportTypeId","showDateRange","allProtocolCodeAndSponsorName","studyGroupPortfolioData","protocolFilterData","regionFilterData","projectFilterData","countryFilterData","reUpdateSelectedItems","getFilterOptions","clearDateRange","selectedDateRangeTypeKey","selectedTimeFrameValue","clearAllSelectedItems","onStudyGroupSelectChange","studyGroupData","getOtherFilterData","onProtocolSelectChange","getSelectedFilterData","onRegionSelectChange","onProjectSelectChange","onCountrySelectChange","onInvestigatorSelectChange","onClearFiltersClick","loadingOn","onReportTypeChange","onDateRangeButtonClick","studyGroupSelectedItem","selectedProtocolList","sgsi","myFilterChangesAction","shouldEmitEvent","pd","loadingOff","projectList","investigatorList","regionList","projectData","regionData","countryData","investigatorData","selectedProtocolsData","setOtherFilterData","protocolSelectedItem","regionSelectedItem","projectSelectedItem","countrySelectedItem","investigatorSelectedItem","FilterOptionsComponent","changeDetecterRef","preferences","emailCategories","emailPrefCategories","sampleTrackingCategory","onEmailPreferenceChange","emailPref","SampleTrackingUserSettings","ShipmentGridComponent","formValueChangesEvent","shippingFromAddressList","destinationAddressList","customToAddressList","courierList","hideSelectField","showShippingFromLoading","showDestinationLoading","showCourierLoading","showAirbillLoading","showSaveLoading","shippingLabel","airbillExists","loadCustomAddressAndTransferReason","simpleChange","loadDestinationAddressOnOrgName","onFormValueChanges","scrollIntoView","searchedBarcodes","onContainerBarcodeChanges","onBarcodeAddedEvent","onContainerHandlerButtonClick","Next","Save","saveForLater","Cancel","Edit","editBarcodes","back","shipmentformData","constructShipmentData","removeLocalStorage","isAirbillNumberValid","getAirBillError","onShippingToLabcorpChange","shippingToList","loadCourierData","uniqueCourierList","labSiteCourierId","isPreferred","preferredCourier","formattedBarcodes","loadShippingFromAddress","loadDestinationAddress","loadCourierList","loadToLabcorpAddress","addressField","selectedCourier","labsiteCourierId","returnData","isInProgressShipment","toLabcorpAddress","SiteShipmentFormComponent","showActionButtons","allowedFormats","selectedCamera","camIndex","AZTEC","CODABAR","CODE_128","CODE_39","CODE_93","DATA_MATRIX","EAN_13","EAN_8","ITF","MAXICODE","PDF_417","QR_CODE","RSS_14","RSS_EXPANDED","UPC_A","UPC_E","UPC_EAN_EXTENSION","onCamerasFound","devices","cameraList","backCamera","camera","onCamerasNotFound","onScanSuccess","onBarcodeActionClick","onScanFailure","onScanError","onScanComplete","isSaveClicked","switchCamera","BarcodeScannerComponent","formGroupDirective","isSubField","alignDate","minValueLength","isPhoneNumber","onScheduledDateEntered","onInvalidSchedulesDateEntered","displayDropdown","ShipmentFormFieldComponent","isOrgNameRequired","expandSection","showError","parentControl","parentControlName","hideParentField","setAddressForm","clearAddress","setParentValue","getFormGroupName","fieldKey","showChildFields","onAddressSelected","parentValue","addressLine1","addressLine2","phone","AddressFormFieldComponent","onBarcodeAdded","onButtonClick","onSubmitClick","collapseSamples","onContainerButtonClick","buttonType","checkBarcodeExists","isBarcodeAlreadyAdded","barcodeDetailsData","shippedData","handleContainerBarcodeWarning","cb","handleDeleteContainer","ctd","containerBarcodeAddedEvent","removeEmptyShipment","addRegisteredSamplesToShipment","sampleInfo","kitItemSpecificationId","showAlert","addSampleToShipment","clearBarcodeField","ContainerBarcodeHandlerComponent","shipmentService","onAddToShipmentEvent","samplesList","loadRegisteredSamplesList","containersInShipment","filterSamplesOnBarcode","addSamplestoShipment","selectedSamples","getSampleHeader","formatSamplesList","selectRow","isInShipment","ShipmentRegisteredSamplesComponent","SiteShippingToolModule","searchControl","selectedSearch","searchError","onSearchContextSelect","resetValue","searchLabel","searchControlId","AppDashboardSearchComponent","SampleTrackingModule","SMHeaderComponent","SampleManagementModule","esaSettings","angularEnableProdMode","AppModule","bootstrap","bootstrapModule"],"mappings":"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KACNs9C,cAAc,EACd2kI,cAAc,GAGL4B,GAAwC,CACjD3xH,YAAa,+BACbx3D,IAAK,4BACLsF,KAAM,KACNs9C,cAAc,EACd2kI,cAAc,GAGL6B,GAAsC,CAC/C5xH,YAAa,iBACbx3D,IAAK,mBACLsF,KAAM,KACNs9C,cAAc,EACd2kI,cAAc,GCteL8B,GAAiC,CAC1C7xH,YAAa,gBACbx3D,IAAK,eACLsF,KAAM,KACNs9C,cAAc,EACd2kI,cAAc,GAWL+B,GAAmC,CAC5C9xH,YAAa,0BACbx3D,IAAK,WACLsF,KAAM,KACNs9C,cAAc,EACd2kI,cAAc,GAGLgC,GAAyB,CAClC/xH,YAAa,cACbx3D,IAAK,aACL4iD,cAAc,EACd2kI,cAAc,GAGLiC,GAA8C,CACvDhyH,YAAa,uCACbx3D,IAAK,yBACL4iD,cAAc,EACd2kI,cAAc,GAGLkC,GAA6B,CACtCjyH,YAAa,yBACbx3D,IAAK,iBACLsF,KAAM,KACNs9C,cAAc,EACd2kI,cAAc,EACd9kI,QAAQ,G,26EC5BZ,cAuFI,WACYjyC,EACAy9B,EACAr5B,EACA80K,GAHA,KAAAl5K,aACA,KAAAy9B,UACA,KAAAr5B,SACA,KAAA80K,gBAzFK,KAAAx4G,cAAgB,qBAAU,CACvC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,KAGa,KAAA6xB,WAAa,qBAAU,CACpC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,KAGa,KAAA4mF,iBAAmB,qBAAU,GACvC7hL,KAAKopE,cAAa,CACrB,IACGppE,KAAKi7F,WAAU,CAClB,MAGa,KAAA6mF,uBAAyB,qBAAU,CAChD,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,KAGa,KAAAC,uBAAyB,qBAAU,CAChD,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAQJ,CA4TJ,O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8CJ,2BAAgC,QAAnBC,EAAiB,IA3C7B,mBAAS,CACNpzN,aAAc,CAAC,IACflT,QAAS,CAAC,IACVmT,QAAS,CACL,KACA,IACA,GACA,GACA,IACA,GACA,KACA,GACA,KACA,KACA,KACA,GACA,KACA,IAEJC,gBAAiB,CACb,GACA,GACA,GACA,GACA,GACA,IAEJC,UAAW,CACP,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,OAGKizN,E,CAAb,G,uUC6IA,2BAA2B,QAAdC,EAAW,IAxJvB,mBAAS,CACNrzN,aAAc,CACV,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEJC,QAAS,CACL,IACA,GACA,KACA,IACA,KACA,KACA,KACA,GACA,GACA,GACA,KACA,GACA,GACA,GACA,KACA,GACA,GACA,GACA,KACA,GACA,GACA,MAEJE,UAAW,CACP,KACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEJD,gBAAiB,CACb,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,OAGKmzN,E,CAAb,G,icCtQA,cAGI,WAAYlgK,GACRl9D,KAAKjL,KAAOmoE,EAAkBxP,cAClC,CACJ,OANa2vK,EAAmC,IAL/C,oBAAU,CACPh1N,SAAU,iCACVC,SAAU,EAAQ,MAClBE,gBAAiB,0BAAwBC,S,wBAKV,MAHtB40N,E,CAAb,G,ubCDA,cAEI,WACqB30N,EACAwjG,GADA,KAAAxjG,aACA,KAAAwjG,wBACjB,CA2BR,OAzBW,YAAAz1E,YAAP,SAAmB57B,GAAnB,WACUhC,EAAa,aAAegC,GAGlC,OAF0BmF,KAAKksG,uBAAuBH,sBAAsBlzG,GAEnD8I,KACrB,aAAI,SAAC7H,GACD,OAAKA,KAODA,EAAiBsxG,IAAI,+BANrB,EAAK1iG,WACAG,MACAsB,YACE,EAYf,IAER,EA/BS6qJ,EAA2B,IADvC,uB,wBAIoC,IACY,MAJpCA,E,CAAb,G,ubCaA,cAWI,WAAY/M,EAAoCptJ,GATzC,KAAAs/H,cAAe,EAUlB,IAAMm4B,EAAsBz3J,EAAM2R,OAAOzX,KAAK4M,KAAK,aAAI,SAAAzK,GAAK,OAAAA,EAAE,KAAUwD,qBAAZ,KAC5DsF,KAAKo6H,QAAUk4B,EAAoB3wJ,KAAK,aAAI,SAAAhL,GAAK,OAAAA,EAAEoC,MAAF,IACrD,CACJ,OAbI,IADC,kB,6DAGD,IADC,kB,uDAGD,IADC,kB,0DAGD,IADC,kB,iBACewqB,GAAA,I,8BAEhB,IADC,kB,0DATQ+5M,EAA0B,IATtC,oBAAU,CACPj1N,SAAU,uBACVC,SAAU,EAAQ,MAClBC,OAAQ,CAAC,EAAQ,OACjBC,gBAAiB,0BAAwBC,OACzCyB,UAAW,CACP,CAAE2kC,QAASsqF,GAAkBn3E,YAAa,O,wBAchB,GAAyB,OAX9Cs7K,E,CAAb,G,uUCqBA,2BAAmC,QAAtBC,EAAmB,IA3B/B,mBAAS,CACNxzN,aAAc,CACV,GACA,GACA,GACA,GACA,GACA,IAEJlT,QAAS,CACL,IAEJmT,QAAS,CACL,IACA,GACA,GACA,MAEJC,gBAAiB,GAEjBC,UAAW,CACN,GACA,GACA,GACA,OAGIqzN,E,CAAb,G,uUCuHA,2BAA6B,QAAhBC,EAAa,IAtFzB,mBAAS,CACNzzN,aAAc,CACV,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEJC,QAAS,CACL,IACA,GACA,GACA,KACA,IACA,KACA,KACA,KACA,GACA,GACA,KACA,iCACA,KACA,KACA,IAEJE,UAAW,CACP,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEJD,gBAAiB,CACb,GACA,OAGKuzN,E,CAAb,G,uUCnIA,2BAAsC,QAAzBC,EAAsB,IArBlC,mBAAS,CACNzzN,QAAS,CACL,KACA,IAEJD,aAAc,CACV,GACA,GACA,GACA,IAEJlT,QAAS,CACL,GACA,GACA,IAEJqT,UAAW,CACP,GACA,OAGKuzN,E,CAAb,G,+WCLA,2BAAqC,QAAxBC,EAAqB,IAlBjC,mBAAS,CACN1zN,QAAS,CACL,KACA,KACA,MAEJD,aAAc,CACV,KACA,MAEJE,gBAAiB,CACb,KACA,MAEJC,UAAW,CACP,SAGKwzN,E,CAAb,G,gxDCRA,cAqBI,WACYxtK,EACAxnD,EACApH,EACAyxC,GAJZ,WACY,KAAAmd,sBACA,KAAAxnD,aACA,KAAApH,WACA,KAAAyxC,iBAxBL,KAAA4qL,2BAA4B,EAI5B,KAAAt2L,aAAe,GAsBlBrnC,KAAK49N,mBAAqB59N,KAAKsB,SAASmgB,gBAAgB,mBACxDzhB,KAAK29N,0BAA4B39N,KAAKsB,SAASq8N,0BAC/C,IAAMzvN,EAAY8vC,UAAUvlD,OAAO6R,SAASC,MAExCK,EAAyB,GAE7B5K,KAAKsB,SAASsJ,SAASiQ,SAAQ,SAAAgjN,GAC3B,IAAIC,EAAyB,CACzB//M,KAAM8/M,EAAQ9/M,KACdxT,KAAMszN,EAAQt4N,IAAM2I,GAExBtD,EAAS/U,KAAKioO,EAClB,IAGAx8N,EAASuK,eACJlK,KACG,aAAI,SAAAwgB,GAAgB,MAAiB,QAAjBA,EAAyB7gB,EAASmgB,gBAAgB,sBAAwBngB,EAASmgB,gBAAgB,aAAnG,KACtBI,WAAU,SAAAG,GAAiB,SAAKA,cAAgBA,CAArB,IAEjC,IAAM+7M,EAA8B,CAChCC,WAAYh+N,KAAKkwD,oBAAoBpqB,SACrCknB,GAAI,yBACJixK,QAASj+N,KAAKkwD,oBAAoBvqB,OAAO93B,MAAM,WAAW,GAC1DqwN,KAAMl+N,KAAKsB,SAAS68N,mBACpBC,KAAM,CACFC,GAAI,CACA,oBAAqBr+N,KAAKsB,SAASg9N,gBACnC,eAAkBt+N,KAAKsB,SAASmgB,gBAAgB,mBAAmB1D,KACnE,SAAY,0CACZ,KAAQ/d,KAAKgiB,cAAcjE,OAGnC0nB,SAAUzlC,KAAKkwD,oBAAoBzqB,SACnCO,YAAahmC,KAAKkwD,oBAAoBxqB,YACtC64L,SAAU,CACNC,aAAcx+N,KAAKsB,SAASm9N,wBAEhCD,aAAc,CACVE,eAAgBxwN,GAEpBywN,UAAW,CACPC,eAAgB5+N,KAAKsB,SAASmgB,gBAAgB,mBAAmBlc,IACjEs5N,KAAM7+N,KAAKgiB,cAAczc,IACzBu5N,OAAQl0N,IAIhB5K,KAAK++N,OAAS,IAAI,GAAWhB,EACjC,CA8CJ,OA5CW,YAAAx0N,SAAP,WACIvJ,KAAKg/N,aACT,EAEa,YAAAA,YAAb,W,oGAGoB,O,uBAAA,GAAMh/N,KAAK++N,OAAOE,yB,OAI9B,OAJIr4L,EAAQ,SAEZ5mC,KAAKkwD,oBAAoBpqB,SAASI,aAAag5L,UAAUt4L,GAEzD,GAAM5mC,KAAKkwD,oBAAoBzoB,mB,cAA/B,SACAznC,KAAK0I,WAAWG,MAAMoP,sB,+BAEtBjY,KAAKoxB,WAAY,EACjBhsB,QAAQs9C,KAAK,8BAA+B,GAC5C1iD,KAAKqnC,aAAe,IAAM,EAAEE,SAAW,EAAEliC,OAAS,G,oBAElDrF,KAAK+yC,eAAejwB,e,6BAIrB,YAAAkS,SAAP,WACI,QAASh1B,KAAKqnC,YAClB,EAEO,YAAAx/B,QAAP,WACI,OAAO7H,KAAKinC,UAAYjnC,KAAKknC,QACjC,EAEa,YAAAk1D,SAAb,W,kGACIp8F,KAAKoxB,WAAY,EACjBpxB,KAAKqnC,aAAe,G,iBAEhB,O,uBAAA,GAAMrnC,KAAKkwD,oBAAoBp4C,MAAM9X,KAAKinC,SAAUjnC,KAAKknC,W,cAAzD,SACAlnC,KAAK0I,WAAWG,MAAMoP,sB,+BAEtBjY,KAAKoxB,WAAY,EACjBhsB,QAAQs9C,KAAK,8BAA+B,GAC5C1iD,KAAKqnC,aAAe,IAAM,EAAEE,SAAW,EAAEliC,OAAS,G,oBAElDrF,KAAK+yC,eAAejwB,e,6BA3G5B,IADC,kB,yDAID,IADC,kB,yDAdQq8M,EAAmB,IAN/B,oBAAU,CACP92N,SAAU,cACVC,SAAU,EAAQ,MAClBC,OAAQ,CAAC,EAAQ,OACjBC,gBAAiB,0BAAwBC,S,wBAwBR,IACT,IACF,IACM,uBAzBnB02N,E,CAAb,G,uUCUA,2BAWA,C,MAAA,O,EAXaC,EACK,EAAAhT,QAAd,WACI,MAAO,CACHiT,SAAU,EACVn1N,UAAW,CACP,IACA,GACA,GAGZ,EAVSk1N,EAAoB,MAlBhC,mBAAS,CACNp1N,QAAS,CACL,MAEJD,aAAc,CACV,GACA,GACA,GACA,GAEJE,gBAAiB,CACb,GAEJpT,QAAS,CACL,GACA,OAGKuoO,E,CAAb,G,uUChBA,2BAA8B,QAAjBE,EAAe,IAP3B,mBAAS,CACNt1N,QAAS,CACL,IACA,KAEJD,aAAc,CAAC,OAENu1N,E,CAAb,G,ubCJA,cACI,WACYh+N,GAAA,KAAAA,UACR,CAaR,OAXW,YAAAi+N,UAAP,SAAiB1+H,EAAuB74D,G,MACpC,IAAK64D,EAAIt7F,IAAIiU,WAAWxZ,KAAKsB,SAASwD,QAClC,OAAOkjC,EAAKw3L,OAAO3+H,GAGvB,IAAK,iBAAM7gG,KAAKsB,SAASoD,kBAAoBm8F,EAAIp7F,QAAQ2lG,IAAI,mBAAoB,CAC7E,IAAMq0H,EAAU5+H,EAAI6+H,MAAM,CAAEC,WAAS,KAAI,EAAC,GAAG3/N,KAAKsB,SAASs+N,oBAAuB,GAAG5/N,KAAKsB,SAASoD,eAAgB,KACnH,OAAOsjC,EAAKw3L,OAAOC,E,CAEvB,OAAOz3L,EAAKw3L,OAAO3+H,EACvB,EAfSg/H,EAAoB,IADhC,uB,wBAGyB,OAFbA,E,CAAb,G,kcCCA,cACI,WACY3vK,EACA5uD,GADA,KAAA4uD,sBACA,KAAA5uD,UACR,CAqBR,OAnBW,YAAAi+N,UAAP,SAAiB1+H,EAAuB74D,GACpC,OAAK64D,EAAIt7F,IAAIiU,WAAWxZ,KAAKsB,SAASwD,QAI/B9E,KAAKkwD,oBAAoBvuC,SAC3BhgB,KACG,OAAAm+N,GAAA,IAAU,SAAC17N,GAAgB,OAACA,EAAEwd,eAAH,IAC3B,OAAAxf,GAAA,KACA,aAAI,SAAAgC,GAAK,OAAAA,EAAE4iC,QAAQA,OAAV,IACT,OAAAylE,GAAA,IAAS,SAAC7lE,GACN,IAAMm5L,EAAUl/H,EAAI6+H,MAAM,CACtBM,WAAY,CAAE,cAAiB,UAAUp5L,KAG7C,OAAOoB,EAAKw3L,OAAOO,EACvB,KAdG/3L,EAAKw3L,OAAO3+H,EAgB3B,EAxBSo/H,EAAgB,IAD5B,uB,wBAGoC,IACX,OAHbA,E,CAAb,G,uUCJA,2BACqB,KAAAC,gBAAkB,IAAIzzL,GAAA,GAAyB,EAepE,QAbI,sBAAW,gCAAiB,C,IAA5B,WACI,OAAOzsC,KAAKkgO,gBAAgBv+N,KACxB,OAAAqiG,EAAA,KAER,E,gCAEO,YAAAg3D,KAAP,WACIh7J,KAAKkgO,gBAAgBl4L,MAAK,EAC9B,EAEO,YAAA6D,KAAP,WACI7rC,KAAKkgO,gBAAgBl4L,MAAK,EAC9B,EAfSm4L,EAAU,IADtB,wBACYA,E,CAAb,G,ubCKA,cAGI,WAAqBC,GAAA,KAAAA,aACjBpgO,KAAKqgO,kBAAoBD,EAAWC,iBACxC,CACJ,OANaC,EAAmB,IAN/B,oBAAU,CACPj4N,SAAU,cACVC,SAAU,EAAQ,MAClBC,OAAQ,CAAC,EAAQ,OACjBC,gBAAiB,0BAAwBC,S,wBAKR,MAHxB63N,E,CAAb,G,kcCHA,cAII,WACqBxzN,EACAszN,GADA,KAAAtzN,SACA,KAAAszN,aALJ,KAAAG,gBAAkB,GAM/B,CAgDR,OA9CW,YAAAv+N,YAAP,WACQhC,KAAKwgO,mBACLxgO,KAAKwgO,kBAAkBv+N,aAE/B,EAEO,YAAAw+N,qBAAP,WACIzgO,KAAKwgO,kBAAoB,OAAAjgL,GAAA,GACrBvgD,KAAK0gO,iBACL1gO,KAAK2gO,kBACPh/N,KACE,OAAAqrC,EAAA,IAAU,SAAA5oC,GAAK,OAAAA,CAAA,KACjByd,WACN,EAEQ,YAAA6+M,eAAR,sBACUE,EAAW,IAAIr9M,GAAA,GAAiB,SAAA1B,GAKlC,OAJA,EAAKu+M,WAAWplE,OAEhBn5I,EAAUmmB,OAEH,WACH,EAAKo4L,WAAWv0L,MACpB,CACJ,IAEMg1L,EAAqB,OAAAr9H,GAAA,GAASxjG,KAAKugO,iBACpC5+N,KACG,OAAA6lI,GAAA,GAAK,GACL,OAAA/6B,GAAA,IAAS,WAAM,OAAAm0H,CAAA,KAGvB,OAAO5gO,KAAK8M,OAAO6hF,OAAOhtF,KACtB,cAAO,SAAA+nB,GAAS,OAAAA,aAAiB,GAAjB,IAChB,aAAI,WAAM,OAAAm3M,CAAA,IAElB,EAEQ,YAAAF,eAAR,WACI,OAAO3gO,KAAK8M,OAAO6hF,OAAOhtF,KACtB,cAAO,SAAA+nB,GAAS,OAAAA,aAAiB,KAC1BA,aAAiB,KACjBA,aAAiB,GAFR,IAGhB,aAAI,WAAM,cAAAxgB,GAAA,QAElB,EAtDS43N,EAAe,IAD3B,uB,wBAMgC,IACI,MANxBA,E,CAAb,G,ubCgBA,cACI,WAAYC,GACRA,EAAgBN,sBACpB,CACJ,OAJaO,EAAgB,IAhB5B,mBAAS,CACNh3N,QAAS,CACL,KACA,KAEJD,aAAc,CACV,IAEJlT,QAAS,CACL,IAEJqT,UAAW,CACP,GACA,M,wBAIyB,MADpB82N,E,CAAb,G,ubCTA,cAMI,WAAYz/N,EAA0BD,EAA4BoH,GAAA,KAAAA,aAC9D,IAAM1D,EAAczD,EAAYyD,YAEhChF,KAAKqoH,SAAWrjH,EAAYrD,KAAK,aAAI,SAAA1H,GAAQ,OAAAA,EAAKgL,SAAS8mI,oBAAd,KAExC,iBAAMzqI,EAASoD,kBAChB1E,KAAKgsI,qBAAuBhnI,EAAYrD,KAAK,aAAI,SAAA1H,GAAQ,OAAAA,EAAKgL,SAASkD,QAAd,KAGjE,CAKJ,OAHW,YAAA84N,eAAP,WACIjhO,KAAK0I,WAAWG,MAAMsB,UAC1B,EAnBS+2N,EAAiB,IAN7B,oBAAU,CACP74N,SAAU,YACVC,SAAU,EAAQ,MAClBC,OAAQ,CAAC,EAAQ,OACjBC,gBAAiB,0BAAwBC,S,wBAQhB,KAAuB,IAA+B,OANtEy4N,E,CAAb,G,swDCHA,cAMI,WAA6B5lM,EACA+0I,GADA,KAAA/0I,gBACA,KAAA+0I,wBALrB,KAAAu0B,WAAY,CAMpB,CAyEJ,OAvEiB,YAAAZ,YAAb,SAAyBhrF,G,uGAEhB,O,sBAAA,GAAMh5G,KAAKqwK,sBAAsBhE,iBAAiBrzD,I,cAAlD,SAA4D32G,YACxD6sC,MAAK,WACF,EAAK01J,WAAY,EACjB,EAAKu8B,YAAc,gDACnB,EAAK1vL,aACL,EAAK4+H,sBAAsBt9D,cAE/B,IACC5jE,OAAM,WACH,EAAKy1J,WAAY,EACjB,EAAKu8B,YAAc,8BACnB,EAAK1vL,aACL,EAAK4+H,sBAAsBt9D,cAE/B,I,6BAEJ/yG,KAAK4kM,WAAY,E,+BAMZ,YAAAr4B,iBAAb,SAA8B60D,G,uGAGrB,O,sBAAA,GAAMphO,KAAKqwK,sBAAsB9D,iBAAiB60D,I,cAAlD,SAAiE/+N,YAC7D6sC,MAAK,WACF,EAAK01J,WAAY,EACjB,EAAKu8B,YAAc,gDACnB,EAAK1vL,aACL,EAAK4+H,sBAAsBt9D,cAC/B,IACC5jE,OAAM,WACH,EAAKy1J,WAAY,EACjB,EAAKu8B,YAAc,8BACnB,EAAK1vL,aACL,EAAK4+H,sBAAsBt9D,cAE/B,I,6BAEJ/yG,KAAK4kM,WAAY,E,+BAIZ,YAAAp4B,eAAb,SAA4BxzD,G,uGAGpB,O,sBAAA,GAAMh5G,KAAKqwK,sBAAsB7D,eAAexzD,I,cAAhD,SAA0D32G,YACtD6sC,MAAK,WACF,EAAK01J,WAAY,EACjB,EAAKu8B,YAAc,gDACnB,EAAK1vL,aACL,EAAK4+H,sBAAsBt9D,cAC/B,IACC5jE,OAAM,WACH,EAAKy1J,WAAY,EACjB,EAAKu8B,YAAc,8BACnB,EAAK1vL,aACL,EAAK4+H,sBAAsBt9D,cAE/B,I,6BAEJ/yG,KAAK4kM,WAAY,E,+BAIhB,YAAAnzJ,WAAR,WACIzxC,KAAKs7B,cAAcorK,uBAAuB1mM,KAAKmhO,YAAanhO,KAAK4kM,UACrE,EAhFSy8B,EAA2B,IADvC,uB,wBAO+C,GACQ,MAP3CA,E,CAAb,G,80ECSA,cA8BI,WACqBhxD,EACA7tJ,EACA8Y,EACAgmM,EACAC,GALrB,WACqB,KAAAlxD,wBACA,KAAA7tJ,oBACA,KAAA8Y,gBACA,KAAAgmM,uBACA,KAAAC,gBA9Bd,KAAAptJ,WAAa,IAAI,IAAY,IAE7B,KAAA6vF,iBAAkB,EAKlB,KAAAjvK,KAAqB,GAcpB,KAAA6vM,WAAY,EAWhB,IAAMj/G,EAAiB,OAAAplC,GAAA,GACnB,OAAAr3C,GAAA,GAAG,IACHlJ,KAAKm0E,WAAWvgD,aACXjyB,KACG,OAAA6kB,GAAA,GAAa,KACb,OAAAw9E,EAAA,OAIZhkG,KAAK64H,MAAQ74H,KAAKqwK,sBAAsBvoG,IAExC9nE,KAAK2iB,aAAe,OAAA1a,GAAA,GAAc,CAC9BjI,KAAK64H,MACLlzC,IACDhkF,KACC,aAAI,SAAC,G,IAAA,UAAC6gJ,EAAO,KAAE19D,EAAI,KACf,OAAC,EAAK08I,qBAAqBh/E,GAAU19D,EAArC,IAEJ,aAAI,SAAC,G,IAAA,UAAC28I,EAAe,KAAE38I,EAAI,KACvB,OAAC,EAAK48I,oBAAoBD,EAAiB38I,GAA3C,KAEHjjE,WAAU,SAAC,G,IAACojJ,EAAD,QAAW,GACnB,EAAK08D,mBAAqB18D,EAC1B,EAAKjB,iBAAkB,EACvB,EAAKxhJ,kBAAkBM,cAC3B,GACR,CAqFJ,OAnFW,YAAA9gB,YAAP,WACIhC,KAAK2iB,aAAa1gB,aACtB,EAEa,YAAAoqK,iBAAb,W,kGAEmB,SAAMrsK,KAAK6zG,mBAAmBxxG,a,cAAvCjM,EAAS,UACJqO,SAAW66L,GAA2BrnM,OAA7C,MACA,GAAM+H,KAAKuhO,cAAcv9B,YAAY5tM,EAAO+tM,gB,OAA5C,S,mCAIA,YAAAtwF,iBAAR,WACI,OAAO7zG,KAAKs7B,cAAcu4E,iBAAiB7zG,KAAK2hO,oBAAoBhgO,KAChE,OAAAqrC,EAAA,IAAU,SAAAhC,GAAU,OAAAA,EAAOgE,QAAP,IACpB,aAAI,SAAAT,GAAgB,OAAAA,GAAgB,CAAE9pC,OAAQ66L,GAA2B33J,MAArD,IAE5B,EAEQ,YAAA65L,qBAAR,SAA6Bv1D,G,QACzB,IAAKA,GAAsC,IAAvBA,EAAY12K,OAAgB,MAAO,GACvD,IAAIksO,EAAoC,G,IACxC,IAAuB,SAAAx1D,GAAW,8BAAE,CAA/B,IAAI11J,EAAU,QACTotL,EAAiB89B,EAAgBxlO,QAAO,SAAApE,GAC1C,OAAAA,EAAEgnE,UAAUnmD,gBAAkBnC,EAAW61J,eAAe1zJ,aAAxD,IACJ,GAAKirL,GAA4C,IAA1BA,EAAepuM,OAKtCyK,KAAK4hO,aAAarrN,EAAYotL,EAAe,QAL7C,CACI,IAAIk+B,EAAoB7hO,KAAK8hO,kBAAkBvrN,GAC/CkrN,EAAgB5rO,KAAKgsO,E,oGAM7B,OAAOJ,CACX,EAEQ,YAAAM,wBAAR,SAAgCxrN,EAAwBotL,GACpD,IAAMnlM,EAAa+X,EAAW43J,aAAatgK,MAAM,KAEjD,GADA81L,EAAe3B,YAAcxjM,EAAW,GACnC+X,EAAW63J,aAAhB,CACA,IAAM4zD,EAAazrN,EAAW63J,aAAavgK,MAAM,KACjD81L,EAAes+B,YAAcD,EAAW,E,CAC5C,EAEQ,YAAAF,kBAAR,SAA0BvrN,GACtB,IAAIsrN,EAAoB,IAAI,GAO5B,OANAA,EAAkBhtN,QAAU0B,EAAW1B,QACvCgtN,EAAkBhjK,UAAYtoD,EAAW61J,eACzCy1D,EAAkBK,cAAgB3rN,EAAW61J,eAC7Cy1D,EAAkB7/B,YAAczrL,EAAW43J,aAC3CnuK,KAAK+hO,wBAAwBxrN,EAAYsrN,GACzC7hO,KAAK4hO,aAAarrN,EAAYsrN,GACvBA,CACX,EAEQ,YAAAD,aAAR,SAAqBrrN,EAAwBotL,GACzC,IAAI/uL,EAAY,IAAI,GACpBA,EAAUy7K,WAAa95K,EAAWnB,WAClCR,EAAU8wI,aAAenvI,EAAWmvI,aACpC9wI,EAAU2vL,iBAAmBhuL,EAAWmvI,aACxC9wI,EAAU4hD,YAAcjgD,EAAWigD,YACnCmtI,EAAer/C,UAAUzuJ,KAAK+e,GAC9B+uL,EAAep/C,cAAc1uJ,KAAK+e,EACtC,EAGQ,YAAA8sN,oBAAR,SAA4B/9B,EAAkC7+G,G,QAC1D,IAAKA,EAAQ,OAAO6+G,EACpB,IAAIw+B,EAAmC,G,IACvC,IAAsB,SAAAx+B,GAAc,8BAAE,CAAjC,IAAIy+B,EAAS,QACVz+D,GAAwBy+D,EAAUvjK,UAAWimB,IAC7Cq9I,EAAetsO,KAAKusO,GAExB,IAAInyN,EAAYmyN,EAAU99E,UAAUroJ,QAAO,SAAApE,GAAK,OAAA8rK,GAAwB9rK,EAAE6tJ,aAAc5gE,EAAxC,IAC5C70E,GAAaA,EAAU1a,OAAS,GAChC6sO,EAAU79E,cAAgBt0I,EAC1BkyN,EAAetsO,KAAKusO,IAEpBA,EAAU79E,cAAgB69E,EAAU99E,S,mGAG5C,OAAO69E,CACX,EAhJA,IADC,kB,iBAC0BE,K,yCAHlBC,EAAuB,IANnC,oBAAU,CACPj6N,SAAU,mBACVC,SAAU,EAAQ,MAClBC,OAAQ,CAAC,EAAQ,OACjBC,gBAAiB,0BAAwBC,S,wBAiCG,GACJ,oBACJ,GACO,GACP,MAnC3B65N,E,CAAb,G,swDCFA,cAkBI,WACqBC,EACAC,EACT95N,GAFS,KAAA65N,8BACA,KAAAC,8BACT,KAAA95N,aALL,KAAAk8L,WAAY,CAMf,CA+DR,OA7DiB,YAAA69B,eAAb,SAA4B9+B,G,kGACxB,OAAI3jM,KAAKyzK,mBAAmBC,oBACxB/tB,aAAaC,QAAQ,gBAAiBnhH,KAAKC,UAAUi/J,IACrD3jM,KAAK0I,WACAG,MACAkP,iBACAxB,WAAWotL,GACXx5L,WACL,KAGiB,GAAMnK,KAAK4mM,eAAe5mM,KAAK2jM,gBAAgBthM,a,cAA9DksC,EAAe,UAEJ9pC,SAAW66L,GAA2BrwJ,OAAnD,MACA,GAAMjvC,KAAKusK,oB,OAAX,S,wBAGAh+H,EAAa9pC,SAAW66L,GAA2B9wJ,KAAnD,MACA,GAAMxuC,KAAKwsK,kB,OAAX,S,mCAIK,YAAAD,iBAAb,W,kGACyB,SAAMvsK,KAAKwzG,iBAAiBxzG,KAAK2jM,gBAAgBthM,a,cAAhEksC,EAAe,UAEJ9pC,SAAW66L,GAA2BrwJ,OAAnD,MACA,GAAMjvC,KAAKwiO,4BAA4Bj2D,iBAAiBh+H,EAAa15B,U,OAArE,S,mCAID,YAAA2+F,iBAAP,SAAwBmwF,GACpB,OAAO3jM,KAAKuiO,4BAA4B/uH,iBAAiBmwF,GAAgBhiM,KACrE,OAAAqrC,EAAA,IAAU,SAAAhC,GAAU,OAAAA,EAAOgE,QAAP,IACpB,aAAI,SAAAT,GAAgB,OAAAA,GAAgB,CAAE9pC,OAAQ66L,GAA2B33J,MAArD,IAE5B,EAEO,YAAAi/J,eAAP,SAAsBjD,GAClB,OAAO3jM,KAAKuiO,4BAA4B37B,eAAejD,GAAgBhiM,KACnE,OAAAqrC,EAAA,IAAU,SAAAhC,GAAU,OAAAA,EAAOgE,QAAP,IACpB,aAAI,SAAAT,GAAgB,OAAAA,GAAgB,CAAE9pC,OAAQ66L,GAA2B33J,MAArD,IAE5B,EAEO,YAAAhS,WAAP,SAAkB4uH,GACd,OAAOA,EAAc5rJ,MAAM,IAAIyE,KAAI,SAAAiO,GAAQ,WAAOA,EAAKk5L,gBAAZ,GAC/C,EACa,YAAA/3B,eAAb,W,kGACyB,SAAMxsK,KAAKyzG,eAAezzG,KAAK2jM,gBAAgBthM,a,cAA9DksC,EAAe,UAEJ9pC,SAAW66L,GAA2B9wJ,KAAnD,MACA,GAAMxuC,KAAKwiO,4BAA4Bh2D,eAAej+H,EAAak+H,c,OAAnE,S,mCAID,YAAAh5D,eAAP,SAAsBkwF,GAClB,OAAO3jM,KAAKuiO,4BAA4B9uH,eAAezzG,KAAK6mM,eAAgB7mM,KAAK2jM,gBAAgBhiM,KAC7F,OAAAqrC,EAAA,IAAU,SAAAhC,GAAU,OAAAA,EAAOgE,QAAP,IACpB,aAAI,SAAAT,GAAgB,OAAAA,GAAgB,CAAE9pC,OAAQ66L,GAA2B33J,MAArD,IAE5B,EAjFA,IADC,kB,iBACsB,K,qCAGvB,IADC,kB,iBAC0B06L,K,yCAG3B,IADC,kB,8DAID,IADC,kB,iBACkB9+M,GAAA,I,iCAZVm/M,EAAuB,IAPnC,oBAAU,CACPr6N,SAAU,mBACVC,SAAU,EAAQ,MAClBC,OAAQ,CAAC,EAAQ,OACjBC,gBAAiB,0BAAwBC,S,wBAsBS,GACA,GAC1B,OArBfi6N,E,CAAb,G,ktBCFA,cAOI,WACYryD,EACAqzB,EACSlhL,EACT9Z,GAJZ,WACY,KAAA2nK,wBACA,KAAAqzB,yBACS,KAAAlhL,oBACT,KAAA9Z,aATL,KAAAyrE,WAAa,IAAI,IAAY,IAC7B,KAAAyvH,cAAqC,GACrC,KAAA5/B,iBAAkB,EAUrB,IAAMr+E,EAAiB,OAAAplC,GAAA,GACnB,OAAAr3C,GAAA,GAAG,IACHlJ,KAAKm0E,WAAWvgD,aACXjyB,KACG,OAAA6kB,GAAA,GAAa,KACb,OAAAw9E,EAAA,OAIN60B,EAAQ74H,KAAKqwK,sBAAsB3tB,cAEzC1iJ,KAAK2iB,aAAe,OAAA1a,GAAA,GAAc,CAC9B4wH,EACAlzC,IACDhkF,KACC,aAAI,SAAC,G,IAAA,UAAC6gJ,EAAO,KAAE19D,EAAI,KACf,OAAC,EAAKogF,uBAAuB1iB,EAAS19D,GAAtC,KAEHjjE,WAAU,SAAC,G,IAAC2gI,EAAD,QAAQ,GAChB,EAAKohD,cAAgBphD,EACrB,EAAKwhB,iBAAkB,EACvB,EAAKxhJ,kBAAkBM,cAC3B,GACR,CAmBJ,OAjBW,YAAA6/M,gBAAP,SAAuB3vN,GACnB2yI,aAAaC,QAAQ,gBAAiBnhH,KAAKC,UAAU1xB,IACrDhT,KAAK0I,WACAG,MACAkP,iBACA5C,aAAanC,GACb7I,UAET,EAEO,YAAAnI,YAAP,WACIhC,KAAK2iB,aAAa1gB,aACtB,EAEQ,YAAAijK,uBAAR,SAA+BnwK,EAA2B+vF,GACtD,OAAOA,EAAO/vF,EAAKkH,QAAO,SAAA6hD,GAAY,OAAA6lH,GAAwB7lH,EAAS4nG,aAAc5gE,EAA/C,IAAwD/vF,CAClG,EAvDS6tO,EAAkB,IAN9B,oBAAU,CACPv6N,SAAU,gBACVC,SAAU,EAAQ,MAClBC,OAAQ,CAAC,EAAQ,OACjBC,gBAAiB,0BAAwBC,S,wBAUN,GACC,GACI,oBAChB,OAXfm6N,E,CAAb,G,ubCZA,cAEI,aACA,CAyBJ,OAvBW,YAAAC,oBAAP,SAA2BnsN,GACvB,OAAKA,EAIDjP,MAAMiP,KAAiBA,EAAc,IAC9B,iCAEJ,KANI,+BAOf,EAEO,YAAAosN,2BAAP,SAAkClrO,EAAYohI,EAAqBtiH,GAU/D,OATI9e,EAAMrC,OAAS,GAAKqC,EAAMrC,QAAU,KACpCyjI,EAAcphI,EAAMe,MAAM,EAAG,GAC7B+d,EAAc9e,EAAMe,MAAM,IAG1Bf,EAAMrC,OAAS,KACfyjI,EAAcphI,EAAMe,MAAM,EAAG,IAC7B+d,EAAc9e,EAAMe,MAAM,KAEvB,CAAEqgI,YAAW,EAAEtiH,YAAW,EACrC,EA3BSqsN,EAAmB,IAD/B,uB,4BACYA,E,CAAb,G,2bCSA,cAUI,WACY1yD,EACA1rJ,EACAjc,EACAs6N,GAJZ,WACY,KAAA3yD,wBACA,KAAA1rJ,gBACA,KAAAjc,aACA,KAAAs6N,sBAZL,KAAAC,eAA8B,IAAI,IAAY,GAAI,CDqBlD,SAACx8N,GACJ,IAAM7O,EAAQ6O,EAAQ7O,MAAMuP,OAE5B,OAAKvP,EAIDA,IAAW,iBAAiBujB,KAAKvjB,GAC1B,CAAEsrO,WAAY,wCAGrBtrO,GAA2B,IAAjBA,EAAMrC,QAAiC,KAAjBqC,EAAMrC,OAInC,CAAE2tO,WAAY,gDAHV,KARA,IAYf,ICjCO,KAAAC,gBAA+B,IAAI,IAAY,GAAI,CDqCnD,SAAC18N,GACJ,IAAM7O,EAAQ6O,EAAQ7O,MAAMuP,OAE5B,OAAKvP,EAIDA,IAAW,kBAAkBujB,KAAKvjB,GAC3B,CAAEsrO,WAAY,uCAGrBtrO,GAAUA,EAAMrC,OAAS,GAAKqC,EAAMrC,QAAU,GACvC,KAGJ,CAAE2tO,WAAY,qDAXV,IAYf,IC3CIljO,KAAKijO,eAAervM,aAAa/R,WAAU,WAAQ,EAAKuhN,oBAAsB,EAAI,IAClFpjO,KAAKmjO,gBAAgBvvM,aAAa/R,WAAU,WAAQ,EAAKwhN,qBAAuB,EAAI,GACxF,CAuFJ,OArFW,YAAAC,mBAAP,sBACItjO,KAAKojO,oBAAsB,GAEtBpjO,KAAKijO,eAAerrO,MAAMuP,QAI/BnH,KAAKujO,qBAAsB,EAC3BvjO,KAAKqwK,sBAAsBhD,gBAAgBrtK,KAAKijO,eAAerrO,MAAMuP,QAChE0a,WAAU,SAAAzrB,GACFA,EAAOymM,QAQR,EAAKumC,oBAAsBhtO,EAAOu8B,UAPlC,EAAK09I,sBAAsB8I,iBAAmB,IAAI51J,GAAA,GAAW,SAAA4sJ,GAAM,OAAAA,EAAGnoI,KAAK5xC,EAAOotO,uBAAf,IACnE,EAAK96N,WACAG,MACAkP,iBACAvB,eACArM,YAIT,EAAKo5N,qBAAsB,EAC3B,EAAK5+M,cAAc7B,cACvB,KAlBA9iB,KAAKojO,oBAAsB,oCAmBnC,EAEO,YAAAK,oBAAP,W,MAAA,OAEIzjO,KAAKqjO,qBAAuB,GAE5B,IAAMK,EAAoB1jO,KAAKmjO,gBAAgBvrO,MAAMyuD,QAAQ,IAAK,IAAIl/C,OAEtE,GAAKu8N,EAAL,CAKA,IAAI1qG,EAAc,GACdtiH,EAAc,EAEfsiH,GAAF,EAA+Bh5H,KAAKgjO,oBAAoBF,2BAA2BY,EAAmB1qG,EAAatiH,IAAtG,YAAEA,EAAW,cAE3B,IAAMitN,EAA2B3jO,KAAKgjO,oBAAoBH,oBAAoBnsN,GAE1EitN,EACA3jO,KAAKqjO,qBAAuBM,GAIhC3jO,KAAK4jO,sBAAuB,EAC5B5jO,KAAKqwK,sBAAsBhD,gBAAgBr0C,EAAatiH,GACnDmL,WAAU,SAAAzrB,GACFA,EAAOymM,QAQR,EAAKwmC,qBAAuBjtO,EAAOu8B,UAPnC,EAAK09I,sBAAsB8I,iBAAmB,IAAI51J,GAAA,GAAW,SAAA4sJ,GAAM,OAAAA,EAAGnoI,KAAK5xC,EAAOotO,uBAAf,IACnE,EAAK96N,WACAG,MACAkP,iBACAtB,cAAcC,GACdvM,YAIT,EAAKy5N,sBAAuB,EAC5B,EAAKj/M,cAAc7B,cACvB,I,MA/BA9iB,KAAKqjO,qBAAuB,gDAgCpC,EAEO,YAAAQ,8BAAP,sBACIn8M,YAAW,WACP,IAAI9vB,EAAQ,EAAKurO,gBAAgBvrO,MAAMuP,OAEnCvP,GAAUA,EAAM6iB,QAAQ,MAAQ,IAChC7iB,EAAQA,EAAMyuD,QAAQ,IAAK,IAC3B,EAAK88K,gBAAgBr3B,WAAWl0M,IAGhCA,GAAUA,EAAMrC,OAAS,GAAKqC,EAAMrC,QAAU,IAC9C,EAAK4tO,gBAAgBr3B,WAAW,CAACl0M,EAAMe,MAAM,EAAG,GAAI,IAAKf,EAAMe,MAAM,IAAI2E,KAAK,KAG9E1F,GAASA,EAAMrC,OAAS,IACxB,EAAK4tO,gBAAgBr3B,WAAW,CAACl0M,EAAMe,MAAM,EAAG,IAAK,IAAKf,EAAMe,MAAM,KAAK2E,KAAK,IAExF,GACJ,EAvGSwmO,EAAsB,IANlC,oBAAU,CACPz7N,SAAU,qBACVC,SAAU,EAAQ,MAClBC,OAAQ,CAAC,EAAQ,OACjBC,gBAAiB,0BAAwBC,S,wBAaN,GACR,oBACH,IACS,MAdxBq7N,E,CAAb,G,ubCDA,cAYI,WAAoBC,GAApB,WAAoB,KAAAA,sBANb,KAAAC,aAAe,IAAI,eAOtBhkO,KAAK2iB,aAAe3iB,KAAK+jO,oBAAoB/nD,cAAcn6J,WACvD,SAAA4sK,GACQA,GACA,EAAKy4B,WAAWrsM,SAAQ,SAAAhjB,GAAK,OAAAA,EAAE+1B,UAAW,CAAb,GAErC,GACR,CAeJ,OAbW,YAAA5rB,YAAP,WACIhC,KAAK2iB,aAAa1gB,aACtB,EAEO,YAAAgiO,cAAP,SAAqBC,GACjB,OAAOA,EAAWt2M,SAAW,mBAAqB,2BACtD,EAEO,YAAAu2M,aAAP,SAAoBD,GACZA,EAAW9mD,mBACfp9K,KAAKgkO,aAAap6N,KAAKs6N,EAE3B,EA9BA,IADC,kB,0DAID,IADC,mB,6DALQE,EAAqB,IANjC,oBAAU,CACP/7N,SAAU,gBACVC,SAAU,EAAQ,MAClBC,OAAQ,CAAC,EAAQ,OACjBC,gBAAiB,0BAAwBC,S,wBAcA,MAZhC27N,E,CAAb,G,ubCFA,cAgBI,WACWprD,GAAA,KAAAA,iBACP,CACR,OAjBI,IADC,kB,4DAID,IADC,kB,6DAID,IADC,kB,0DAID,IADC,kB,oEAID,IADC,kB,+DAbQqrD,EAAqB,IANjC,oBAAU,CACPh8N,SAAU,oBACVC,SAAU,EAAQ,MAClBC,OAAQ,CAAC,EAAQ,OACjBC,gBAAiB,0BAAwBC,S,wBAmBb,MAjBnB47N,E,CAAb,G,ouBCkBA,cA6BI,WAAoB/3C,GAApB,WAAoB,KAAAA,sBAvBb,KAAAt4J,aAAc,EAGd,KAAAuxD,UAAW,EAYX,KAAA53C,eAAiB,IAAI,eAKrB,KAAAjgB,cAAe,EAKlB1tB,KAAK2iB,aAAe3iB,KAAKssL,oBAAoBtQ,cAAcn6J,WACvD,SAAAq6J,GACQA,GACA,EAAKooD,gBAAe,EAE5B,GACR,CAuGJ,OArGW,YAAAvhN,YAAP,sBACU/H,EAAgBhb,KAAKm0B,aAAen0B,KAAKm0B,aAAe,GAK9D,GAJAn0B,KAAKuzB,YAAcvY,GAAgC,GAC9Chb,KAAK+W,MAA6B,IAArB/W,KAAK+W,KAAKxhB,SACxByK,KAAKukO,gBAAkBvkO,KAAKukO,gBAAkBvkO,KAAKukO,gBAAkB,SAErEvkO,KAAKulF,SACT,GAAIvlF,KAAK+W,MAAQ/W,KAAK+W,KAAKxhB,OAAS,EAAG,CACnCyK,KAAKukO,gBAAkBvkO,KAAKukO,iBAA4C,SAAzBvkO,KAAKukO,gBAA6BvkO,KAAKukO,gBAAkB,MACxGvkO,KAAK+W,KAAK8D,SAAQ,SAAA9lB,GAAQ,OAAAA,EAAKo0B,SAAU,CAAf,IAC1B,IAAI,EAAoC,GAUxC,GATAnpB,KAAKuzB,YAAY1Y,SAAQ,SAAAxP,GACrB,IAAIye,EAAQ,EAAK/S,KAAKmd,WAAU,SAAAr8B,GAAK,OAAAA,EAAEqf,KAAO7L,EAAK6L,EAAd,KACtB,IAAX4S,EACA,EAAK/S,KAAK+S,GAAOX,SAAU,EAE3B,EAAatzB,KAAKwV,EAG1B,IACI,GAAgB,EAAa9V,OAAS,EACnByK,KAAKuzB,YACX1Y,SAAQ,SAAAxP,IAEF,IADH,EAAa6oB,WAAU,SAAAr8B,GAAK,OAAAA,EAAEqf,KAAO7L,EAAK6L,EAAd,MAEpC,EAAKqc,YAAc,EAAKA,YAAYt3B,QAAO,SAAApE,GAAK,OAAAA,EAAEqf,KAAO7L,EAAK6L,EAAd,IAExD,IAEJlX,KAAKyxB,YAAczxB,KAAK+W,I,MAExB/W,KAAK+W,KAAO,GACZ/W,KAAKyxB,YAAc,EAE3B,EAEO,YAAAzvB,YAAP,WACIhC,KAAK2iB,aAAa1gB,aACtB,EAEO,YAAA0yB,iBAAP,SAAwBtpB,GAChBA,EAAK8d,QACLnpB,KAAKuzB,YAAY19B,KAAKwV,GAEtBrL,KAAKuzB,YAAcvzB,KAAKuzB,YAAYt3B,QAAO,SAAA24B,GAAM,OAAAA,EAAG1d,KAAO7L,EAAK6L,EAAf,IAGrDlX,KAAKwkO,gBAAkB,CAAEn5N,KAAI,GAE7BrL,KAAK03J,qBACT,EAEO,YAAA+sE,oBAAP,SAA2Bp5N,GACvBrL,KAAKyxB,YAAY5W,SAAQ,SAAAhjB,GAAK,OAAAA,EAAEsxB,SAAU,CAAZ,IAC9BnpB,KAAKuzB,YAAc,GACnBloB,EAAK8d,SAAW9d,EAAK8d,QACjB9d,EAAK8d,SACLnpB,KAAKuzB,YAAY19B,KAAKwV,GAG1BrL,KAAKwkO,gBAAkB,CAAEn5N,KAAI,GAE7BrL,KAAK03J,qBACT,EAEO,YAAAr2F,WAAP,SAAkBp+C,GACdjjB,KAAK0tB,cAAe,CACxB,EAEO,YAAAg3M,QAAP,SAAer5N,GACXA,EAAK8d,SAAU,EACfnpB,KAAKuzB,YAAcvzB,KAAKuzB,YAAYt3B,QAAO,SAAA24B,GAAM,OAAAA,EAAG1d,KAAO7L,EAAK6L,EAAf,IACjDlX,KAAK03J,qBACT,EAEO,YAAAA,oBAAP,WACI13J,KAAK2tC,eAAe/jC,KAAK5J,KAAKuzB,YAClC,EAEO,YAAA+wM,eAAP,SAAsBK,G,QAElB,QAFkB,IAAAA,OAAA,GAClB3kO,KAAK0tB,cAAe,EAChB1tB,KAAKyxB,Y,IACL,IAAiB,SAAAzxB,KAAKyxB,aAAW,8BAAE,CAAtB,QACJtI,SAAU,C,mGAGvBnpB,KAAKm0B,aAAen0B,KAAKulF,SAAWvlF,KAAKm0B,aAAe,GACxDn0B,KAAKuzB,YAAcvzB,KAAKulF,UAAYvlF,KAAKm0B,cAAgBn0B,KAAKm0B,aAAa5+B,OAAS,EAAIyK,KAAKm0B,aAAe,GACvGwwM,GACD3kO,KAAK03J,qBAEb,EAEO,YAAA/hI,WAAP,SAAkBpC,GACd,OAAKA,GAAeA,EAAYh+B,OAAS,EAAY,GAC9Cg+B,EAAY56B,MAAM,GAAGyE,KAAI,SAAAiO,GAAQ,WAAOA,EAAKzT,KAAZ,GAC5C,EAEO,YAAAk6B,kBAAP,SAAyB9J,GACrBhoB,KAAKyxB,YAAczxB,KAAK+W,KAAK9a,QAAO,SAAAoP,GAAQ,OAAgE,IAAhEA,EAAKzT,MAAM8gB,cAAc+B,QAAQuN,EAAWtP,cAA5C,GAChD,EAxIA,IADC,kB,oDAID,IADC,kB,4DAID,IADC,kB,yDAID,IADC,kB,4DAID,IADC,kB,iEAID,IADC,kB,gEAID,IADC,mB,+DApBQksN,EAA6B,IALzC,oBAAU,CACPv8N,SAAU,yBACVC,SAAU,EAAQ,MAClBC,OAAQ,CAAC,EAAQ,S,wBA+BwB,MA7BhCq8N,E,CAAb,G,8dCTA,sCAGW,KAAAv5I,WAAa,IAAI,eAGjB,KAAAC,YAAc,IAAI,eAGlB,KAAAC,aAAe,IAAI,eAGnB,KAAAtvD,gBAAkB,IAAI,eAGtB,KAAAuvD,wBAA0B,IAAI,eAG9B,KAAAC,YAAc,IAAI,eAGlB,KAAAC,mBAAqB,IAAI,eAazB,KAAAm5I,eAAiB,GAwBjB,KAAAlpM,WAA0B,KAM1B,KAAAmxC,mBAAoB,EAapB,KAAA6e,aAAc,EAGd,KAAAC,iBAAkB,EAGlB,KAAAnwD,YAAa,EAGb,KAAAC,iBAA2B,KAM3B,KAAAmwD,UAAW,EAGX,KAAArwD,UAAW,EAGX,KAAAD,WAAY,EAGZ,KAAAK,WAAY,EAGZ,KAAAC,WAAY,EAMZ,KAAAC,cAAwB,KAGxB,KAAAgpM,YAAa,EAGb,KAAAC,gBAAiB,EAGjB,KAAAC,yBAA0B,EAG1B,KAAAC,mBAAqB,GAErB,KAAAC,cAA0B,GAE1B,KAAA15M,aAAe,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,KAItC,KAAAyR,iBAAmB,IAAIwP,GAAA,EAA2B,IAUxC,KAAAq/C,mBAAkC,CAC/CC,cAAe,CACXpvF,WAAY,SAAUC,EAAGC,GACrB,MACS,iBADMD,EAEA6hB,GAAA,EAAY7f,iBAAiBhC,EAAGC,GAEhC,SAAMmvF,kBAAkBpvF,EAAGC,EAE9C,GAEJi+C,cAAc,EACdmxC,iBAAiB,EACjBhgC,eAAe,EACfigC,+BAA+B,EAC/Bnb,aAAa,EACbrK,UAAW,GACXylB,YAAa,GACbC,aAAc,GACdC,uBAAuB,EACvBxf,qBAAsB,EACtBC,mBAAmB,EACnBC,+BAAgC,KAChCuf,sBAAuB,uBAEvBC,uBAAwB,qsDAgBxBC,wBAAwB,EACxBC,qBAAqB,EACrBC,4BAA4B,EAC5BC,sBAAsB,EACtBlO,kBAAmB,SAAUvhF,GACzBA,EAAOu/B,IAAIiiD,kBACf,GAMI,KAAAnU,QAAoB,GAEpB,KAAAqiB,eAAiB,qBAAS,WAC1B,EAAKlwD,aAAe,EAAKA,YAAYD,MACrC,EAAKC,YAAYD,IAAIowD,cAChB,EAAK93F,KAEsB,IAArB,EAAKA,KAAKQ,QACjB,EAAKmnC,YAAYD,IAAIqwD,oBAFrB,EAAKpwD,YAAYD,IAAIswD,qBAKjC,IAGO,KAAAC,iBAAmB,SAACxwD,GACvB,OAAOA,CACX,EAuGO,KAAAywD,kBAAoB,WACvB,GAAK,EAAKvwD,YAAYD,IAAtB,CAIA,EAAKC,YAAYD,IAAIiiD,mBACrB,EAAKhiD,YAAYD,IAAI+E,eAAe,EAAK0rD,aAEzC,IAAMC,EAA2B,GAEjC,EAAKzwD,YAAYD,IAAIU,+BAA8B,SAAAC,GAC3CA,EAAQgwD,cACRD,EAAct3F,KAAKunC,EAE3B,IAEA,qBAAS,WAAM,SAAKH,iBAAiB+K,KAAKmlD,EAA3B,GAAf,E,CACJ,CA+DJ,QAhXI,sBAAW,yBAAU,C,IAKrB,WACI,OAAOntF,KAAKjL,IAChB,E,IAPA,SAAsB6C,GAClBoI,KAAKjL,KAAO6C,EACZoI,KAAK4sF,gBACT,E,gCAUA,sBAAW,yBAAU,C,IAgBrB,WACI,OAAO5sF,KAAKuqE,OAChB,E,IAlBA,SAAsB3yE,GAClBoI,KAAKuqE,QAAU3yE,EACfoI,KAAK4sF,iBAIL,IAAMS,EAAUrtF,KAAK4+D,SAAW5+D,KAAK4+D,QAAQniC,IACzC4wD,IACAA,EAAQC,cAAc,MACtB5lE,YAAW,WACP2lE,EAAQC,cAAc11F,GACtBy1F,EAAQ33B,YACZ,IAER,E,gCAgBA,sBAAW,0BAAW,C,IAKtB,WACI,OAAO11D,KAAK4+D,OAChB,E,IAPA,SAAuBhnE,GACnBoI,KAAK4+D,QAAUhnE,EACf,oBAASA,EAAOoI,KAAK8rF,mBACzB,E,gCA8DA,sBAAW,4BAAa,C,IAAxB,WACI,OAAQ9rF,KAAK4rF,iBAAmB5rF,KAAKy7B,aAAez7B,KAAK2rF,WAC7D,E,gCAEA,sBAAW,yBAAU,C,IAArB,WACI,OAAO3rF,KAAK0iB,YAAc1iB,KAAK0iB,WAAWntB,OAAS,EAAIyK,KAAK0iB,WAAWntB,OAAS,CACpF,E,gCAyEO,YAAAwtB,YAAP,WACS/iB,KAAK08B,cACN18B,KAAK08B,YAAc18B,KAAK8rF,oBAG5B9rF,KAAKutF,cACLvtF,KAAKwtF,eAEDxtF,KAAKosF,eACLpsF,KAAK08B,YAAY0vD,aAAepsF,KAAKosF,cAGrCpsF,KAAK8sE,oBACL9sE,KAAK08B,YAAYowC,mBAAoB,EAE7C,EAEO,YAAA9qE,YAAP,WACQhC,KAAK08B,aAAe18B,KAAK08B,YAAYD,MACrCz8B,KAAK08B,YAAYD,IAAIgxD,oBAAoB,gBAAiBztF,KAAKitF,mBAC/DjtF,KAAK08B,YAAYD,IAAIgxD,oBAAoB,cAAeztF,KAAKitF,mBAErE,EAEO,YAAA1jF,SAAP,WACA,EAEQ,YAAA47N,SAAR,WACI,GAAKnlO,KAAK8kO,WAAV,CACA9kO,KAAKklO,cAAgB,GAErB,IADA,IAAIp5M,EAAa9rB,KAAKqtF,QAAQ+3I,0BACrB/vO,EAAI,EAAGA,GAAKy2B,EAAYz2B,IAC7B2K,KAAKklO,cAAcrvO,KAAKR,E,CAEhC,EAEO,YAAAgwO,UAAP,SAAiBz6M,GACb5qB,KAAKqtF,QAAQi4I,mBAAmB16M,EACpC,EAEO,YAAAkC,oBAAP,SAA2BlC,GACvB5qB,KAAKqtF,QAAQk4I,sBAAsB36M,GACnC5qB,KAAKmlO,UACT,EAEO,YAAAK,YAAP,SAAmBviN,GACfjjB,KAAKqtF,QAAUpqE,EAAOwZ,IACtBz8B,KAAKmlO,UACT,EAEO,YAAAM,mBAAP,SAA0BxiN,GACtBjjB,KAAKqtF,QAAQk4I,sBAAsBtiN,EAAOiD,UAC1ClmB,KAAKqtF,QAAQi4I,mBAAmBriN,EAAO+C,YAAc,EACzD,EAEO,YAAAwmC,cAAP,SAAqB9iC,GACjB1pB,KAAKyrF,YAAY7hF,KAAK8f,EAC1B,EAEO,YAAAmpD,0BAAP,SAAiCnpD,GAC7B1pB,KAAKwrF,wBAAwB5hF,KAAK8f,EACtC,EAEO,YAAAgkE,aAAP,SAAoBhkE,GAChB1pB,KAAKqrF,WAAWzhF,KAAK8f,EACzB,EAEO,YAAAhE,cAAP,WACI1lB,KAAKitF,mBACT,EAEO,YAAAU,eAAP,SAAsBjkE,GAClB1pB,KAAKurF,aAAa3hF,KAAK8f,EAC3B,EAEO,YAAAkkE,cAAP,SAAqBlkE,GACjB1pB,KAAKsrF,YAAY1hF,KAAK8f,EAC1B,EAEO,YAAAyU,kBAAP,SAAyBzU,GACrB1pB,KAAKi8B,gBAAgBryB,KAAK8f,EAC9B,EAEO,YAAAmkE,oBAAP,SAA2Bj2F,GACvBoI,KAAKktF,YAAct1F,EAEfoI,KAAK08B,aAAe18B,KAAK08B,YAAYD,KACrCz8B,KAAK08B,YAAYD,IAAI+E,eAAe5pC,GAGpCoI,KAAK27B,YAAc37B,KAAK27B,WAAWc,KACnCz8B,KAAK27B,WAAWc,IAAI+E,eAAe5pC,GAGvCoI,KAAK0rF,mBAAmB9hF,KAAKhS,EACjC,EAEO,YAAAk2F,iBAAP,WACI9tF,KAAK6tF,oBAAoB,GAC7B,EAqBQ,YAAAN,YAAR,WACSvtF,KAAK8+B,YAIV9+B,KAAK8+B,WAAWjkB,SAAQ,SAAAuoB,GACfA,EAAOrkC,uBAA0BqkC,EAAOvK,cAAiBuK,EAAO2qD,mBACjE3qD,EAAOrkC,sBAAwB,MAG9BqkC,EAAOg6C,0BAA6Bh6C,EAAO4qD,iBAAoB5qD,EAAO6qD,qBACvE7qD,EAAOg6C,yBAA2B,KAE1C,GACJ,EAEQ,YAAAoQ,aAAR,sBACI,GAAKxtF,KAAK8+B,WAAV,CAIA,IAAMovD,EAAmBluF,KAAK8+B,WAAW7iC,QAAO,SAAAmnC,GAAU,QAAEA,EAAOC,gBAAkBD,EAAOI,YAAlC,IAE1D,GAAgC,IAA5B0qD,EAAiB34F,OAArB,CAIA,IAMM0qC,EALS,EACG,EACF,EAKhBjgC,KAAK08B,YAAY8G,aAAe,SAACtmC,GAC7B,IAAIixF,EAAe,EAEf,iBAAMjxF,EAAOmhC,KAAKitB,gBAClB4iC,EAAiBjyF,QAAO,SAAAmnC,GAAU,QAAEA,EAAOC,YAAT,IAAuBxoB,SAAQ,SAAAuoB,GAC7D,IAAMwoB,EAAQxoB,EAAOC,aAAanmC,EAAOnI,MACrC62D,EAAQuiC,IACRA,EAAeviC,EAEvB,IAGJ,IAAIwiC,EAAUD,GAAgB,EAAKzxD,YAAYgqC,UAAYzmC,GAAUA,EAWrE,OATI,iBAAM/iC,EAAOmhC,KAAKitB,gBAClB,EAAKxsB,WAAW7iC,QAAO,SAAAmnC,GAAU,QAAEA,EAAOI,YAAT,IAAuB3oB,SAAQ,SAAAuoB,GAC5D,IAAM4lB,EAAO5lB,EAAOI,aAAatmC,EAAOnI,MACpCi0D,EAAOolC,IACPA,EAAUplC,EAElB,IAGGolC,CACX,C,EACJ,EApYA,IADC,mB,2DAID,IADC,mB,4DAID,IADC,mB,6DAID,IADC,mB,gEAID,IADC,mB,wEAID,IADC,mB,4DAID,IADC,mB,mEAID,IADC,kB,wFAWD,IADC,kB,+DAID,IADC,kB,wFAsBD,IADC,kB,2DAID,IADC,kB,6DAID,IADC,kB,kEAID,IADC,kB,2FAWD,IADC,kB,4DAID,IADC,kB,gEAID,IADC,kB,2DAID,IADC,kB,iEAID,IADC,kB,0DAID,IADC,kB,yDAID,IADC,kB,yDAID,IADC,kB,0DAID,IADC,kB,0DAID,IADC,kB,0DAID,IADC,kB,4DAID,IADC,kB,8DAID,IADC,kB,2DAID,IADC,kB,+DAID,IADC,kB,wEAID,IADC,kB,mEAsFD,IADC,kB,iEA9MQs3I,EAA2B,IANvC,oBAAU,CACPr9N,SAAU,uBACVC,SAAU,EAAQ,MAClBC,OAAQ,CAAC,EAAQ,OACjBC,gBAAiB,0BAAwBC,UAEhCi9N,E,CAAb,G,swDCQA,cAmEI,WAAoB54N,EAAwBwuB,GAA5C,WAAoB,KAAAxuB,SAAwB,KAAAwuB,gBA7DrC,KAAAC,WAAY,EAGZ,KAAAC,UAAW,EAOX,KAAAC,YAAa,EAMb,KAAAC,iBAA2B,KAG3B,KAAAC,WAA0B,KAG1B,KAAAC,WAAY,EAGZ,KAAAC,WAAY,EASZ,KAAAC,cAAwB,KAGxB,KAAA+oM,eAAiB,GAGjB,KAAA9oM,cAAgB,IAAI,eAGpB,KAAAC,eAAiB,IAAI,eAGrB,KAAAC,gBAAkB,IAAI,eAEtB,KAAAC,eAAgB,EAEhB,KAAAC,YAA4B,CAC/B,CACIr7B,MAAO,gBACPs7B,SAAU,WAAM,SAAKC,WAAL,GAEpB,CACIv7B,MAAO,kBACPs7B,SAAU,WAAM,SAAKE,YAAL,IAOjB,KAAAC,WAAa,SAACC,GACjB,OAAOA,CACX,CAL+E,CA8RnF,OAtVI,sBAAW,yBAAU,C,IAArB,WACI,OAAOx8B,KAAKu7B,WAAav7B,KAAKw7B,QAClC,E,gCA6DA,sBAAW,2BAAY,C,IAAvB,WACI,IAAMiB,EAAMz8B,KAAK08B,YAAYD,IACzBE,EAAa,EAUjB,OATIF,GACAz8B,KAAK08B,YAAYD,IAAIG,wBAAuB,SAACjmC,GACrCA,EAAEkmC,OAINF,GACJ,IAEGA,CACX,E,gCAEA,sBAAW,0BAAW,C,IAAtB,WACI,IAAMF,EAAMz8B,KAAK08B,YAAYD,IACzBK,EAAc,EAYlB,OAXIL,GACAz8B,KAAK08B,YAAYD,IAAIG,wBAAuB,SAACjmC,GACrCA,EAAEkmC,OAIDlmC,EAAE5B,KAAKgoC,QACRD,GAER,IAEGA,CACX,E,gCAEO,YAAAE,oBAAP,WACI,GAAqC,IAAjCh9B,KAAKi9B,iBAAiB1nC,OACtB,MAAO,0BAGX,IAAM2nC,EAAsB,GAI5B,OAFAl9B,KAAK08B,YAAYD,IAAIU,+BAA8B,SAAAC,GAAW,OAAAF,EAASrnC,KAAKunC,EAAd,IAE1Dp9B,KAAKi9B,iBAAiB1nC,SAAW2nC,EAAS3nC,OACnC,YAGJ,yBACX,EAEO,YAAA8nC,gBAAP,WACI,OAAwC,IAAjCr9B,KAAKi9B,iBAAiB1nC,MACjC,EAEO,YAAA+nC,iBAAP,WACI,OAAO,gBAAKt9B,KAAKwqB,SAAS,SAAA/yB,GAAK,OAAAA,EAAE8lC,WAAF,GACnC,EAEO,YAAAC,yBAAP,WACI,OAAO,gBAAKx9B,KAAKi9B,kBAAkB,SAACxlC,GAAe,OAAAA,EAAE1C,MAAQ0C,EAAE1C,KAAKwoC,WAAjB,GACvD,EAGO,YAAAE,QAAP,SAAeC,GACXA,EAAWtB,UACf,EAEO,YAAAuB,gBAAP,WACI,IAAM5oC,EAAOiL,KAAK49B,cAClB59B,KAAK+7B,cAAcnyB,KAAK7U,EAC5B,EAEa,YAAA8oC,iBAAb,W,uGACU9oC,EAAOiL,KAAK49B,cACZE,EAAe/oC,EAAKkH,QAAO,SAAAxE,GAAK,OAACA,EAAE8lC,WAAH,IACjC,mBAAQO,GAAT,Y,iBAEI,O,sBAAA,GAAM99B,KAAKs7B,cACNyC,QAAQ,6EAA8E,KAAM,OAC5Fp8B,KAAK,OAAAS,GAAA,MACLC,a,cAHL,S,aAKA,O,SAAA,I,OAGJ,OADArC,KAAKg8B,eAAepyB,KAAK7U,GACzB,I,OAGAiL,KAAKg8B,eAAepyB,KAAK7U,G,mCAI1B,YAAAipC,sBAAP,WACI,IAAMjpC,EAAOiL,KAAKi+B,eAClBj+B,KAAK+7B,cAAcnyB,KAAK7U,EAC5B,EAEO,YAAAmpC,uBAAP,WACI,IAAMnpC,EAAOiL,KAAKi+B,eAClBj+B,KAAKg8B,eAAepyB,KAAK7U,EAC7B,EAEO,YAAAopC,kBAAP,SAAyBzU,GACrB1pB,KAAKi8B,gBAAgBryB,KAAK8f,EAC9B,EAEO,YAAA0U,aAAP,WACIp+B,KAAK08B,YAAYD,IAAIU,+BAA8B,SAACkB,GAC5CA,EAAKxB,OAGTwB,EAAKC,aAAcD,EAAKtpC,KAAsBgoC,OAClD,GACJ,EAEO,YAAAxiB,UAAP,WACIva,KAAK08B,YAAYD,IAAI8B,mBACzB,EAEO,YAAAC,YAAP,WACIx+B,KAAK08B,YAAYD,IAAI+B,aACzB,EAEA,sBAAW,wBAAS,C,IAApB,WACI,QAAKx+B,KAAKwqB,SAI2D,IAA9DxqB,KAAKwqB,QAAQvuB,QAAO,SAAAxE,GAAK,OAACA,EAAEslC,QAAUtlC,EAAEgnC,SAAf,IAA0BlpC,MAC9D,E,gCAEO,YAAAmpC,sBAAP,WACI,OAAO1+B,KAAK2+B,UAAY,KAAO,UACnC,EAGO,YAAArC,WAAP,WACI,IAAMmF,EAAgBzhC,KAAK4+B,kBAC3B5+B,KAAKmhC,2BACL,IAAMO,GAAW1hC,KAAK27B,YAAc37B,KAAK08B,aAAaD,IAAIkF,aAAaF,GACnEG,EAAWC,GAAA,KAAUH,EAAS,CAAEzsB,KAAM,SAAU6sB,KAAK,IAEzD,GAAuB,MAAnB9hC,KAAK+hC,WAAoB,CACzB,IAAIC,EAAkBH,GAAA,MAAWI,cAAcjiC,KAAK+hC,YACpDF,GAAA,MAAWK,kBAAkBN,EAAUI,E,CAG3C,IAAIG,EAAcN,GAAA,MAAWD,EAAU,CAAEQ,SAAU,OAAQC,SAAS,EAAOptB,KAAM,WAC3EurB,EAAOxgC,KAAK2/B,UAAUwC,EAAa,qEACnCjD,EAAcuC,EAAcvC,SAAQ,QAE1Cl/B,KAAKugC,aAAarB,EAAUsB,EAChC,EAEO,YAAAnE,UAAP,WACI,IAAMoF,EAAgBzhC,KAAK4+B,kBAC3B5+B,KAAKmhC,2BACL,IAAMO,GAAW1hC,KAAK27B,YAAc37B,KAAK08B,aAAaD,IAAIkF,aAAaF,GACnEG,EAAWC,GAAA,KAAUH,EAAS,CAAEzsB,KAAM,SAAU6sB,KAAK,IAEzD,GAAuB,MAAnB9hC,KAAK+hC,WAAoB,CAEzB,IAAIO,EAAiBV,EAASW,WAAaX,EAASW,WAAW,GAAK,KAChEC,EAAaZ,EAASa,OAAOH,GAEf,MAAdE,GACAX,GAAA,MAAWa,eACPF,EACAxiC,KAAK+hC,WACL,CAAEY,QAAS,G,CAKvB,IAAIC,EAAaf,GAAA,MAAWD,EAAU,CAAEQ,SAAU,MAAOntB,KAAM,WACzDurB,EAAOxgC,KAAK2/B,UAAUiD,EAAY,YAClC1D,EAAcuC,EAAcvC,SAAQ,OAE1Cl/B,KAAKugC,aAAarB,EAAUsB,EAChC,EAEQ,YAAA5C,YAAR,WACI,OAAK59B,KAAK08B,YAAYD,IAGTz8B,KAAKi9B,iBAAiBhhC,QAAO,SAAAoiC,GAAQ,OAACA,EAAKxB,KAAN,IAAaz/B,KAAI,SAAAihC,GAAQ,OAAAA,EAAKtpC,IAAL,IAFhE,EAIf,EAEQ,YAAAkpC,aAAR,WACI,OAAKj+B,KAAKwqB,QAIKxqB,KAAKwqB,QAAQvuB,QAAO,SAAAlH,GAAQ,OAACA,EAAKgoC,MAAN,IAHhC,EAKf,EAEQ,YAAA6B,gBAAR,WACI,IAAMC,GAAoB7+B,KAAK27B,YAAc37B,KAAK08B,aAAaoC,WAC1D7iC,QAAO,SAAAhF,GAAK,OAACA,EAAEwiC,UAAYxiC,EAAE+E,KAAjB,IACZoB,KAAI,SAAAnG,GAAK,OAAAA,EAAE+E,KAAF,IAId,MAAO,CACH+iC,aAJiB/+B,KAAK07B,iBACtB,gBAAgB17B,KAAK07B,iBAAgB,IACnC,KAGFsD,WAAYH,EACZI,YAAY,EACZC,SAAUl/B,KAAK6kO,eAAkB7kO,KAAK6kO,eAAiB7kO,KAAKm/B,oBAC5DC,oBAAqB,SAACliC,GAClB,IAAMmiC,EAAYniC,EAAOoiC,OAAOC,YAAY1G,aAC5C,OAAIwG,aAAqBG,SACbH,EAAuBniC,EAAOmhC,MAEnCnhC,EAAOtF,KAClB,EAER,EAEQ,YAAAunC,kBAAR,WACI,IAAMtyB,EAAU7M,KAAK8M,OAAOG,SAASjN,KAAK8M,OAAOvH,KASjD,OARAsH,EAAQE,YAAc,CAAC,EACO/M,KAAK8M,OAAO2yB,aAAa5yB,GAGlDgB,MAAM,KACN5R,QAAO,SAAAyjC,GAAW,OAAC,mBAAQA,EAAT,IAClBpiC,KAAK,IAGd,EAEQ,YAAAqiC,UAAR,SAAkBC,EAAcC,GAM5B,IALA,IAEMC,EAAiBC,KAAKH,GACtBI,EAAa,GAEVC,EAAS,EAAGA,EAASH,EAAevqC,OAAQ0qC,GALnC,IAKwD,CAItE,IAHA,IAAMtnC,EAAQmnC,EAAennC,MAAMsnC,EAAQA,EAN7B,KAQRC,EAAc,IAAIr9B,MAAMlK,EAAMpD,QAC3BF,EAAI,EAAGA,EAAIsD,EAAMpD,OAAQF,IAC9B6qC,EAAY7qC,GAAKsD,EAAMwnC,WAAW9qC,GAGtC,IAAM+qC,EAAY,IAAIC,WAAWH,GAEjCF,EAAWnqC,KAAKuqC,E,CAIpB,OADa,IAAIE,KAAKN,EAAY,CAAE/qB,KAAM4qB,GAE9C,EAEQ,YAAAU,aAAR,SAAqBrB,EAAkBsB,GACnC,GAAI/nC,OAAOgoC,UAAUC,iBACjBjoC,OAAOgoC,UAAUC,iBAAiBF,EAAMtB,OACrC,CACH,IAAMyB,EAAOryB,SAASsyB,cAAc,KACpCD,EAAKp2B,KAAOs2B,IAAIC,gBAAgBN,GAChCG,EAAKI,SAAW7B,EAChB5wB,SAAS9I,KAAKw7B,YAAYL,GAC1BA,EAAKM,QACL3yB,SAAS9I,KAAK07B,YAAYP,E,CAElC,EAEQ,YAAAQ,yBAAR,WACI,GAAInhC,KAAK27B,WAAY,CACjB,IAAMyF,EAAYphC,KAAKu8B,WAAWv8B,KAAK08B,YAAYD,IAAI4E,gBACvDrhC,KAAK27B,WAAWc,IAAI6E,aAAaF,GAE7BphC,KAAK27B,WAAW4F,iBAChBvhC,KAAK27B,WAAWc,IAAI+E,eAAexhC,KAAK27B,WAAW4F,gB,CAG/D,EA3VA,IADC,kB,4DAID,IADC,kB,0DAID,IADC,kB,yDAQD,IADC,kB,2DAID,IADC,kB,0DAID,IADC,kB,iEAID,IADC,kB,2DAID,IADC,kB,0DAID,IADC,kB,0DAID,IADC,kB,gEAID,IADC,kB,uDAID,IADC,kB,8DAID,IADC,kB,+DAID,IADC,mB,8DAID,IADC,mB,+DAID,IADC,mB,gEAmBD,IADC,kB,2DArEQokM,EAA+B,IAN3C,oBAAU,CACPt9N,SAAU,eACVC,SAAU,EAAQ,MAClBC,OAAQ,CAAC,EAAQ,OACjBC,gBAAiB,0BAAwBC,S,wBAqEb,IAA+B,OAnElDk9N,E,CAAb,G,ubCbA,cAKI,WACYj9N,EACAy9B,GADA,KAAAz9B,aACA,KAAAy9B,SACR,CAoBR,OAlBW,YAAA4kB,OAAP,SAAcC,IACLA,EAAIpzD,OAAUozD,EAAIj2D,QAEvBiL,KAAKpI,MAAQozD,EAAIj2D,KAAK0E,gBACtBuG,KAAK4lO,eAAiB56K,EAAIj2D,KAAKyjL,iBAC1Bx4K,KAAK4lO,gBAAmB5lO,KAAKpI,SAElCoI,KAAK+2K,WAAa,CAAEt9K,gBAAiBuG,KAAKpI,MAAO4gL,gBAAiBx4K,KAAK4lO,iBAE3E,EAEO,YAAAz7N,SAAP,sBACSnK,KAAK+2K,aACV/2K,KAAKmmC,QAAQgzI,iBAAmB,IAAI51J,GAAA,GAAW,SAAA4sJ,GAAM,OAAAA,EAAGnoI,KAAK,EAAK+uI,WAAb,IACrD/2K,KAAK0I,WAAWG,MAAMkP,iBAAiBtB,cAAczW,KAAK+2K,WAAWyB,iBAAiBruK,WAE1F,EA1BS07N,EAA0B,IANtC,oBAAU,CACPx9N,SAAU,qBACVC,SAAU,2EACVC,OAAQ,CAAC,EAAQ,MACjBC,gBAAiB,0BAAwBC,S,wBAQjB,IACH,MAPZo9N,E,CAAb,G,ubCAA,cASI,WAAoBn9N,EACAy9B,GADA,KAAAz9B,aACA,KAAAy9B,SAAkC,CAiB1D,OAfW,YAAA4kB,OAAP,SAAcC,GACLA,EAAIpzD,QAEToI,KAAKpI,MAAQozD,EAAIpzD,MAEjBoI,KAAK+2K,WAAa,CAAEt9K,gBAAiBuG,KAAKpI,MAAO4gL,gBAAiB,MAEtE,EAEO,YAAAruK,SAAP,sBACInK,KAAKmmC,QAAQgzI,iBAAmB,IAAI51J,GAAA,GAAW,SAAA4sJ,GAAM,OAAAA,EAAGnoI,KAAK,EAAK+uI,WAAb,IACrD/2K,KAAK0I,WAAWG,MAAMkP,iBAAiBvB,eAAerM,UAE1D,EAzBS27N,EAA0B,IANtC,oBAAU,CACPz9N,SAAU,qBACVC,SAAU,wDACVC,OAAQ,CAAC,EAAQ,MACjBC,gBAAiB,0BAAwBC,S,wBAWT,IACH,MAVpBq9N,E,CAAb,G,ubCHA,cAUI,WACW9sD,GAAA,KAAAA,iBACP,CAER,OAZI,IADC,kB,4DAID,IADC,kB,8DAID,IADC,kB,oEAPQ+sD,EAAsB,IAPlC,oBAAU,CACP19N,SAAU,qBACVC,SAAU,EAAQ,MAClBC,OAAQ,CAAC,EAAQ,OACjBC,gBAAiB,0BAAwBC,S,wBAcb,MAXnBs9N,E,CAAb,G,ubCDA,2BAgBA,QARW,YAAAhjN,YAAP,SAAmBwL,GACXA,GAAWA,EAAQ1oB,iBACnB7F,KAAK6F,gBAAgBgV,SAAQ,SAAAhjB,GACzBA,EAAEmuO,gBAAuC,cAArBnuO,EAAE8jL,cAC1B,GAER,EAXA,IADC,kB,oEAID,IADC,kB,+DALQsqD,EAAuB,IAPnC,oBAAU,CACP59N,SAAU,sBACVC,SAAU,EAAQ,MAClBC,OAAQ,CAAC,EAAQ,OACjBC,gBAAiB,0BAAwBC,UAGhCw9N,E,CAAb,G,ubCEA,cAEI,WACW5oB,EACChtC,EACAvjK,GAFD,KAAAuwM,UACC,KAAAhtC,wBACA,KAAAvjK,QACR,CASR,OAPW,YAAAo5N,kBAAP,SAAyBpyD,GACjBA,EAAW/+K,OACXiL,KAAKqwK,sBAAsB8I,iBAAmB,IAAI51J,GAAA,GAAW,SAAA4sJ,GAAM,OAAAA,EAAGnoI,KAAK8rI,EAAW/+K,KAAnB,KAGvEiL,KAAK8M,OAAO3C,SAAS2pK,EAAWvuK,IACpC,EAdS4gO,EAAsB,IANlC,oBAAU,CACP99N,SAAU,iBACVC,SAAU,EAAQ,MAClBC,OAAQ,CAAC,EAAQ,S,wBAMG,GACe,GACf,OALX49N,E,CAAb,G,ubCJA,cAEI,aAEA,CACJ,OALaC,EAAkC,IAN9C,oBAAU,CACP/9N,SAAU,eACVC,SAAU,EAAQ,MAClBC,OAAQ,CAAC,EAAQ,OACjBC,gBAAiB,0BAAwBC,S,4BAEhC29N,E,CAAb,G,swDCeA,cAyBI,WACYjgM,EACA2rB,EACAz3B,EACAiB,EACA5yB,GAJA,KAAAy9B,UACA,KAAA2rB,qBACA,KAAAz3B,iBACA,KAAAiB,gBACA,KAAA5yB,aA3BL,KAAAutL,QAAqB,GAMrB,KAAAozB,WAAoC,IAAI,eAGxC,KAAAgd,oBAA6C,IAAI,eAGjD,KAAA9sC,qBAA6C,IAAI,cAgBpD,CA+JR,OA7JW,YAAAhwL,SAAP,WACSvJ,KAAKjL,OACViL,KAAKkwG,OAASlwG,KAAKjL,KAAKuxO,WACxBtmO,KAAKs2L,OAASt2L,KAAKjL,KAAKwxO,WAC5B,EAEO,YAAAh8M,cAAP,SAAqBi8M,EAA2BC,GAC5C,YADiB,IAAAD,OAAA,QAA2B,IAAAC,OAAA,GACxCA,GAA8C,IAA1BzmO,KAAKjL,KAAK2xO,YACvB,yBAEP1mO,KAAKjL,MAAQiL,KAAKjL,KAAK4xO,eAAiBH,GAC2B,IAA/DxmO,KAAKjL,KAAK4xO,aAAajuN,cAAc+B,QAAQ,cAC7Cza,KAAKkwG,OAASlwG,KAAKjL,KAAKuxO,WACjB,kBAEXtmO,KAAKkwG,OAASlwG,KAAKjL,KAAKuxO,WACjB,0BAEPE,GAAqBxmO,KAAK4mO,cAC1B5mO,KAAKkwG,QAAS,EACP,mCAEXlwG,KAAKkwG,OAASlwG,KAAKjL,KAAKuxO,WACjB,gBACX,EAEO,YAAAO,gBAAP,WACI,GAA6C,cAAzC7mO,KAAKjL,KAAK4xO,aAAajuN,cAA3B,CACA,IAAIilL,EAA+B,CAC/Bz3L,SAAUlG,KAAKjL,KAAK0kM,SACpBv6J,SAAUl/B,KAAKjL,KAAKmqC,SAAW,QAC/B4nM,WAAY9mO,KAAKjL,KAAK+xO,WACtBC,gBAAiB/mO,KAAKjL,KAAKgyO,gBAC3BnhO,mBAAoB,iBAExB5F,KAAK8xD,mBAAmBjB,0BAA0B8sI,GAClD39L,KAAKsrK,wB,CACT,EAEO,YAAAqlB,cAAP,WACI,GAA6C,cAAzC3wL,KAAKjL,KAAK4xO,aAAajuN,cAA3B,CACA,IAAIilL,EAA+B,CAC/Bz3L,SAAUlG,KAAKjL,KAAK0kM,SACpBv6J,SAAUl/B,KAAKjL,KAAKmqC,SAAW,OAC/B4nM,WAAY9mO,KAAKjL,KAAK+xO,WACtBC,gBAAiB/mO,KAAKjL,KAAKgyO,gBAC3BnhO,mBAAoB,iBAExB5F,KAAK8xD,mBAAmBjB,0BAA0B8sI,GAClD39L,KAAKsrK,wB,CACT,EAEO,YAAA07D,WAAP,WACIhnO,KAAKq6B,eAAen4B,YAAY,iDAEhClC,KAAK0I,WAAWG,MAAMkP,iBAClBtX,SAASiV,kBAAkB,GAC3BvL,SAAS,CAAE4C,YAAa,CAAE7G,SAAUlG,KAAKjL,KAAK0kM,WACtD,EAEa,YAAA3uB,aAAb,W,uGACmB,SAAM9qK,KAAKwzG,mBAAmBnxG,a,OAC7C,OADe,SACJoC,SAAW66L,GAA2B33J,MAC7C,IAGH,GAAM3nC,KAAKmmC,QAAQklI,qBAAqBnyH,OAAOl5C,KAAKjL,KAAK0kM,Y,cAAzD,SAAqEp3L,YACjE6sC,MAAK,WACF,EAAK01J,WAAY,EACjB,EAAKu8B,YAAc,EAAKpsO,KAAKkyO,oBAAsB,qBACnD,EAAKx1L,aACL,EAAK43K,WAAWz/M,MAAK,EACzB,IACCulC,OAAM,WACH,EAAKy1J,WAAY,EACjB,EAAKu8B,YAAc,EAAKpsO,KAAKkyO,oBAAsB,gBACnD,EAAKx1L,aACL,EAAK43K,WAAWz/M,MAAK,EACzB,IACJ5J,KAAKq6B,eAAen4B,YAAY,mD,YAGvB,YAAAglO,aAAb,W,4FAEI,OADAlnO,KAAKkwG,QAAUlwG,KAAKkwG,OACpB,GAAMlwG,KAAKmnO,cAAa,I,cAAxB,S,YAGS,YAAAC,aAAb,W,4FAEI,OADApnO,KAAKs2L,QAAUt2L,KAAKs2L,OACpB,GAAMt2L,KAAKmnO,cAAa,I,cAAxB,S,YAGS,YAAAl8D,UAAb,W,6GAIK,OAHGC,EAAmB,IAAI,KAAS,SAAS9qJ,UAAUqQ,IAAS2pJ,QAAS,wBAAuB,IAAIh8J,KAAKo+K,iBAAiBz8K,kBAAkB08K,SACxItxB,EAAgBnrK,KAAKjL,KAAKsyO,uBAC1Bj8D,EAAgBprK,KAAKjL,KAAKq2K,cAAc/kH,QAAQ,MAAO,IAC1D,GAAMrmD,KAAKmmC,QAAQ8kI,UAAU/xH,OAAOl5C,KAAKjL,KAAK0kM,UAAWvuB,EAAeC,EAAeC,I,cAAvF,SAAuG/oK,YACnG6sC,MAAK,WACF,EAAK01J,WAAY,EACjB,EAAKu8B,YAAc,EAAKpsO,KAAKkyO,oBAAsB,mBACnD,EAAKx1L,aACL,EAAK43K,WAAWz/M,MAAK,GACrB,EAAKy8N,oBAAoBz8N,MAAK,EAClC,IACCulC,OAAM,WACH,EAAKy1J,WAAY,EACjB,EAAKu8B,YAAc,EAAKpsO,KAAKkyO,oBAAsB,cACnD,EAAKx1L,aACL,EAAK43K,WAAWz/M,MAAK,EACzB,IACJ5J,KAAKq6B,eAAen4B,YAAY,gD,YAG7B,YAAA0kO,WAAP,WACI,OAAO5mO,KAAKkwG,SAAWlwG,KAAKjL,KAAKyxM,gBACrC,EAEc,YAAA2gC,aAAd,SAA2B9d,G,yGAOtB,OANGrwG,EAA+B,CAC/BygF,SAAUvgJ,OAAOl5C,KAAKjL,KAAK0kM,UAC3B96J,UAAW3+B,KAAKkwG,OAChBo3H,SAAUtnO,KAAKs2L,OACfprB,cAAkBz6I,IAAS2pJ,QAAQrpJ,OAAO,wBAAuB,IAAI3S,KAAKo+K,iBAAiBz8K,kBAAkB08K,UAEhH,GAAMz8L,KAAKmmC,QAAQ4kI,qBAAqB/xD,I,cAAxC,SAAkD32G,YAC9C6sC,MAAK,WACF,EAAKm6K,WAAWz/M,KAAKy/M,EACzB,IACCl6K,OAAM,WACH,EAAKk6K,WAAWz/M,MAAK,EACzB,I,YAGA,YAAA4pG,iBAAR,WACI,OAAOxzG,KAAKs7B,cAAcwrK,uBAAuB9mM,KAAKjL,MAAM4M,KACxD,OAAAqrC,EAAA,IAAU,SAAAhC,GAAU,OAAAA,EAAOgE,QAAP,IACpB,aAAI,SAAAT,GAAgB,OAAAA,GAAgB,CAAE9pC,OAAQ66L,GAA2B33J,MAArD,IAE5B,EAEQ,YAAA8J,WAAR,WACIzxC,KAAKs7B,cAAcorK,uBAAuB1mM,KAAKmhO,YAAanhO,KAAK4kM,UAAW,MAChF,EAEc,YAAAt5B,uBAAd,W,uGACI,OAAItrK,KAAKjL,KAAKgoC,OACV,IAEH,GAAM/8B,KAAKmmC,QAAQmlI,uBAAuBpyH,OAAOl5C,KAAKjL,KAAKmiB,M,cAA3D,SAAiE7U,YAC7D6sC,MAAK,WACF,EAAKm6K,WAAWz/M,MAAK,GACrB,EAAK2vL,qBAAqB3vL,KAAK,EAAK7U,KAAK0kM,SAC7C,IACCtqJ,OAAM,WACH,EAAKk6K,WAAWz/M,MAAK,EACzB,I,YAzLR,IADC,kB,uDAID,IADC,kB,iBACY,K,2BAGb,IADC,mB,iBACkB,iB,iCAGnB,IADC,mB,iBAC2B,iB,0CAG5B,IADC,mB,iBAC4B,iB,2CAfpB29N,EAA6B,IANzC,oBAAU,CACPl/N,SAAU,yBACVC,SAAU,EAAQ,MAClBC,OAAQ,CAAC,EAAQ,OACjBC,gBAAiB,0BAAwBC,S,wBA4BpB,GACW,qBACJ,KACD,GACH,OA9Bf8+N,E,CAAb,G,ubCJA,cAmEI,WACY5iN,EACAC,GAFZ,WACY,KAAAD,gBACA,KAAAC,cAtDL,KAAAE,uBAAyB,CAAC,GAAI,GAAI,IAAK,KAGvC,KAAAC,gBAAkB,GAGlB,KAAAC,YAAc,8BAGd,KAAAC,qBAAuB,yBAMvB,KAAAC,oBAAqB,EAGrB,KAAAE,oBAAsB,kBAGtB,KAAAE,oBAAsB,MAMtB,KAAAK,YAAuC,IAAI,eAG3C,KAAA6hN,sBAA+C,IAAI,eAGnD,KAAAC,2BAAoD,IAAI,eAGxD,KAAAC,sBAA8C,IAAI,eAQlD,KAAA1hN,YAAc,EAEd,KAAAC,MAAQ,CAAED,YAAahmB,KAAKgmB,YAAaE,SAAUlmB,KAAK+kB,iBAEvD,KAAAsB,kBAAiC,IAAI,IAQzCrmB,KAAKumB,mBAAqBvmB,KAAKqmB,kBAAkB1kB,KAC7C,OAAA6kB,GAAA,GAAa,MACf3E,WAAU,SAAC4E,GACT,IAAMC,EAAYD,EAAWC,UACvBC,EAAiB,EAAKC,KAAKC,OAAO5qB,QAAO,SAAC6qB,GAAyB,OAAAA,EAAG5uB,MAAQwuB,CAAX,IAAsB,GAC3FC,IACAA,EAAeI,iBAAmBN,EAAW1I,MAEjD,EAAKiJ,eAAiB,EAAKpC,YAAYqC,6BACnC,EAAKL,KACL,EAAKhC,YAAYsC,eAAe,EAAKN,KAAM,EAAKA,KAAK7xB,OAEzD,EAAKoyB,cAAc,EAAKH,eAC5B,GACJ,CAgOJ,OA7NW,YAAAI,eAAP,SAAsBC,GACdA,GAC6B,0BAA5BA,EAAchN,WACc,eAA5BgN,EAAchN,WACdgN,EAAcC,cAC8B,0BAAzCD,EAAcC,aAAajN,YACJ/L,SAASiZ,uBAAuB,yBAAyBhyB,QAEhFyK,KAAKwnB,cAAc,IAG/B,EAEO,YAAAzE,YAAP,WACQ/iB,KAAKimB,MAAMC,WAAalmB,KAAK+kB,kBAC7B/kB,KAAKimB,MAAMC,SAAWlmB,KAAK+kB,iBAE/B/kB,KAAKgnB,eAAiB,GAElBhnB,KAAK4mB,MAAQ5mB,KAAK4mB,KAAK7xB,MAAQiL,KAAK4mB,KAAK7xB,KAAKQ,SAC9CyK,KAAKgnB,eAAiBhnB,KAAKklB,mBAAqBllB,KAAK4mB,KAAK7xB,KAAO,mBAAQiL,KAAK4mB,KAAK7xB,KAAM,CAACiL,KAAKolB,qBAAsB,CAACplB,KAAKslB,sBAEvHtlB,KAAKynB,oBACLznB,KAAK4kB,YAAY+C,gBAAgB3nB,KAAK4mB,OAI9C5mB,KAAKmnB,cAAcnnB,KAAKgnB,eAC5B,EAEA,sBAAW,+BAAgB,C,IAA3B,WAGI,OAAOhnB,KAAK2nO,kBAAoB3nO,KAAK4mB,KAAKC,OAAOtxB,OAAS,EAAIyK,KAAK4mB,KAAKC,OAAOtxB,MACnF,E,gCAKO,YAAAiI,KAAP,SAAYqpB,GAAZ,WACI7mB,KAAK4mB,KAAKC,OAAOhM,SAAQ,SAACiM,GAClBA,EAAG5uB,MAAQ2uB,EAAO3uB,KAAO,EAAK0uB,KAAK7xB,MAAQ,EAAK6xB,KAAK7xB,KAAKQ,QAC1DuxB,EAAGtpB,KAAoB,QAAZspB,EAAGtpB,KAAiB,OAAqB,SAAZspB,EAAGtpB,KAAkB,KAAmB,OAAZspB,EAAGtpB,KAAgB,MAAQ,KAC/F,EAAKwpB,eAAiB,EAAKpC,YAAYgD,cAAed,EAAGtpB,MAAoB,QAAZspB,EAAGtpB,KAAiBqpB,EAAQ,EAAKG,iBAElGF,EAAGtpB,KAAO,IAElB,IAEAwC,KAAKimB,MAAMD,YAAc,EACzBhmB,KAAKmnB,cAAcnnB,KAAKgnB,eAC5B,EAMO,YAAAa,gBAAP,SAAuBhB,EAA0B9xB,GAC7CiL,KAAK2lB,YAAY/b,KAAK7U,EAAKmiB,GAC/B,EAKO,YAAA6Q,wBAAP,SAA+BrB,EAAmBsB,GAC9C,IAAMvB,EAAa,CACfC,UAAS,EACT3I,KAAMiK,GAEVhoB,KAAKimB,MAAMD,YAAc,EAEzBhmB,KAAKqmB,kBAAkB2hB,KAAKvhB,EAChC,EAEO,YAAA8D,cAAP,SAAqB1D,EAA0B2D,EAAiBuS,GAC5D,IAAKlW,EAAOkvK,kBACR,OAAKh5J,EACE,GADe,WAG1B,IAAI1iB,EAAY,GAMhB,OALAwM,EAAOmvK,QAAQn7K,SAAQ,SAAAhjB,GACfA,EAAEK,MAAQsyB,IACVnQ,EAAYxiB,EAAE6yB,MAEtB,IACOrQ,CACX,EAMO,YAAA4N,wBAAP,SAA+BvB,EAAmBsB,GAC9C,IAAMrB,EAAiB3mB,KAAK4mB,KAAKC,OAAO5qB,QAAO,SAAA6qB,GAAM,OAAAA,EAAG5uB,MAAQwuB,CAAX,IAAsB,GACvEC,IACAA,EAAeuB,oBAAsBvB,EAAewB,YAChDlsB,QAAO,SAAAoP,GAAQ,OAAgE,IAAhEA,EAAKhL,MAAMqY,cAAc+B,QAAQuN,EAAWtP,cAA5C,IAE3B,EAMO,YAAA0P,uBAAP,SAA8BC,GAC1B,IAAMC,EAAmBtoB,KAAK4mB,KAAKC,OAAO5qB,QAAO,SAAC6qB,GAAyB,OAAAA,EAAG5uB,MAAQmwB,EAAGnwB,GAAd,IAAmB,GAC9F,GAAIowB,EACA,IAAe,IAAXD,EAAGnR,GACHoR,EAAiBJ,oBAAoBrN,SAAQ,SAAA0N,GAAO,OAAAA,EAAIC,UAAYH,EAAGG,SAAnB,IACpDF,EAAiBG,oBAAsBJ,EAAGG,UAAY,KAAO,sBAC1D,CACH,IAAME,EAAqBJ,EAAiBJ,oBAAoBjsB,QAAO,SAAAssB,GAAO,OAAAA,EAAIrR,KAAOmR,EAAGnR,EAAd,IAAkB,GAC5FwR,IACAA,EAAmBF,UAAYH,EAAGG,WAGtC,IAAMG,EAA2Bra,SAASsa,eAAeN,EAAiBpwB,IAAM,MAC1E2wB,EAAiBP,EAAiBJ,oBAAoB9qB,KAAI,SAAAmrB,GAAO,OAAAA,EAAIC,SAAJ,IACjEM,EAAwBD,EAAeE,MAAMC,SAC7CC,EAAyBJ,EAAeK,KAAKF,SACnDL,EAAyBQ,QAAUL,EACnCH,EAAyBS,eACpBN,GAAyBA,IAA0BG,EAExDX,EAAiBG,qBAAuBK,GAAyBD,EAAe5sB,QAAO,SAAAotB,GAAM,OAAAA,CAAA,IAAI9zB,OAAS,gB,CAIlHyK,KAAKgnB,eAAiBhnB,KAAK4kB,YAAYqC,6BACnCjnB,KAAK4mB,KACL5mB,KAAK4kB,YAAYsC,eAAelnB,KAAK4mB,KAAM5mB,KAAK4mB,KAAK7xB,OAEzDiL,KAAKimB,MAAMD,YAAc,EACzBhmB,KAAKmnB,cAAcnnB,KAAKgnB,eAC5B,EAKO,YAAAsC,aAAP,SAAoBrD,GAChBjmB,KAAKimB,MAAQA,EACbjmB,KAAKmnB,cAAcnnB,KAAKgnB,eAC5B,EAEO,YAAA4gN,WAAP,SAAkB99M,GACd,OAAK9pB,KAAK6nO,UAA8B,IAAlB7nO,KAAK6nO,UACvB/9M,EAAQ9pB,KAAK6nO,QAErB,EAKO,YAAArgN,cAAP,SAAqBd,GACjB1mB,KAAK4mB,KAAKC,OAAOhM,SAAQ,SAACiM,GAElB,IAKMyC,EANNzC,EAAG5uB,MAAQwuB,GACL6C,EAAUjb,SAASsa,eAAe9B,EAAG5uB,OAEvCqxB,EAAQC,UAAUhF,OAAO,cAGvB+E,EAAUjb,SAASsa,eAAe9B,EAAG5uB,OAEvCqxB,EAAQC,UAAU5N,OAAO,YAGrC,GACJ,EAEO,YAAA5Z,YAAP,WACIhC,KAAKumB,mBAAmBtkB,aAC5B,EAEO,YAAAmhD,eAAP,SAAsB3+C,GAClB,OAAOA,EAAO6gD,YAAc7gD,EAAO6gD,YAAc,EACrD,EAEO,YAAAg1C,WAAP,SAAkBvlG,EAAc+yO,GAC5B,OAAK/yO,GAAS+yO,EACV/yO,EAAKQ,QAAU,GAAaR,EACzBA,EAAK4D,MAAM,EAAG,IAAM,MAFc5D,CAG7C,EAEO,YAAAy0L,eAAP,SAAsBz0L,EAAc4/L,GAChC,IAAKA,EAAc,OAAO5/L,EAC1B,IAAKA,EAAQ,MAAO,IACpB,IAAMwuM,EAAQ,IAAIx1L,OAAO,IAAK,MAC9B,OAAOhZ,EAAKsxD,QAASk9I,GAAO,SAACj/I,GAAU,aAC3C,EAEO,YAAAyjL,eAAP,SAAsB9kN,GAClBjjB,KAAKwnO,sBAAsB59N,KAAKqZ,EACpC,EAEO,YAAA+kN,wBAAP,SAA+B/kN,GAC3BjjB,KAAKynO,2BAA2B79N,KAAKqZ,EACzC,EAEO,YAAAglN,yBAAP,SAAgChlN,GAC5BjjB,KAAK0nO,sBAAsB99N,KAAKqZ,EACpC,EAKQ,YAAAkE,cAAR,SAAsBH,GAElBhnB,KAAKmrB,WAAanE,EACdhnB,KAAKorB,iBAELprB,KAAKqrB,UAAYrE,EAAezxB,OAChCyK,KAAKgmB,YAAchmB,KAAKimB,MAAMD,YAE9BhmB,KAAKmrB,WAAanE,EAAeruB,OAC5BqH,KAAKimB,MAAMD,YAAc,GAAKhmB,KAAKimB,MAAMC,SAC1ClmB,KAAKimB,MAAMD,YAAchmB,KAAKimB,MAAMC,WAI5ClmB,KAAK2kB,cAAc7B,cACvB,EAjTA,IADC,kB,qDAID,IADC,kB,oEAID,IADC,kB,gEAID,IADC,kB,oEAID,IADC,kB,uEAID,IADC,kB,gEAID,IADC,kB,4DAID,IADC,kB,qEAID,IADC,kB,mEAID,IADC,kB,mEAID,IADC,kB,oEAID,IADC,kB,oEAID,IADC,kB,yDAID,IADC,mB,iBACmB,iB,kCAGpB,IADC,mB,iBAC6B,iB,4CAG9B,IADC,mB,iBACkC,iB,iDAGnC,IADC,mB,iBAC6B,iB,4CAqC9B,IADC,uBAAa,iBAAkB,CAAC,kB,mDACIwI,c,mEAxF5B48M,EAA2B,IANvC,oBAAU,CACP7/N,SAAU,cACVC,SAAU,EAAQ,MAClBC,OAAQ,CAAC,EAAQ,OACjBC,gBAAiB,0BAAwBC,S,wBAsEd,oBACF,QArEhBy/N,E,CAAb,G,ubCTA,cAqCI,WAAoBx/N,GAAA,KAAAA,aAnCb,KAAA8iB,aAAe,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,KAetC,KAAA1G,uBAAyB,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,KAGhD,KAAAC,gBAAkB,GASlB,KAAAY,YAAuC,IAAI,eAG3C,KAAAwiN,kBAA2C,IAAI,eAG/C,KAAA9B,oBAA6C,IAAI,cAEV,CAiBlD,OAfW,YAAAx+M,gBAAP,SAAuB3hB,GAGnBlG,KAAK0I,WAAWG,MAAMkP,iBAClBtX,SAASiV,kBAAkB,GAC3BvL,SAAS,CAAE4C,YAAa,CAAE7G,SAAQ,IAC1C,EAEO,YAAAkiO,iBAAP,SAAwBnlN,EAAiBolN,GACjCA,EACAroO,KAAKqmO,oBAAoBz8N,KAAKqZ,GAE9BjjB,KAAKmoO,kBAAkBv+N,KAAKqZ,EAEpC,EAhDA,IADC,kB,4DAID,IADC,kB,oEAID,IADC,kB,gEAID,IADC,kB,oEAID,IADC,kB,uEAID,IADC,kB,gEAID,IADC,kB,mEAID,IADC,kB,yDAID,IADC,mB,iBACmB,iB,kCAGpB,IADC,mB,iBACyB,iB,wCAG1B,IADC,mB,iBAC2B,iB,0CAnCnBqlN,EAA4B,IANxC,oBAAU,CACPjgO,SAAU,wBACVC,SAAU,EAAQ,KAClBC,OAAQ,CAAC,EAAQ,OACjBC,gBAAiB,0BAAwBC,S,wBAuCT,OArCvB6/N,E,CAAb,G,ubCAA,cAqCI,WAAoB5/N,GAAA,KAAAA,aAnCb,KAAA8iB,aAAe,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,KAetC,KAAA1G,uBAAyB,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,KAGhD,KAAAC,gBAAkB,GASlB,KAAAY,YAAuC,IAAI,eAG3C,KAAAwiN,kBAA2C,IAAI,eAG/C,KAAAI,eAAuC,IAAI,cAEJ,CAiBlD,OAfW,YAAA1gN,gBAAP,SAAuB3hB,GAGnBlG,KAAK0I,WAAWG,MAAMkP,iBAClBtX,SAASiV,kBAAkB,GAC3BvL,SAAS,CAAE4C,YAAa,CAAE7G,SAAQ,IAC1C,EAEO,YAAAkiO,iBAAP,SAAwBnlN,GACpBjjB,KAAKmoO,kBAAkBv+N,KAAKqZ,EAChC,EAEO,YAAAs2K,qBAAP,SAA4Bt2K,GACxBjjB,KAAKuoO,eAAe3+N,KAAKqZ,EAC7B,EAhDA,IADC,kB,4DAID,IADC,kB,oEAID,IADC,kB,gEAID,IADC,kB,oEAID,IADC,kB,uEAID,IADC,kB,gEAID,IADC,kB,mEAID,IADC,kB,yDAID,IADC,mB,iBACmB,iB,kCAGpB,IADC,mB,iBACyB,iB,wCAG1B,IADC,mB,iBACsB,iB,qCAnCdulN,EAA4B,IANxC,oBAAU,CACPngO,SAAU,wBACVC,SAAU,EAAQ,KAClBC,OAAQ,CAAC,EAAQ,OACjBC,gBAAiB,0BAAwBC,S,wBAuCT,OArCvB+/N,E,CAAb,G,ubCOA,cAuCI,WACYl8C,GADZ,WACY,KAAAA,sBA/BL,KAAA76J,YAA4B,GAM5B,KAAAk+J,iBAA6E,IAAI,eAGjF,KAAAZ,iBAA6C,IAAI,eAGjD,KAAA05C,cAA0C,IAAI,eAE9C,KAAA91M,SAAW,GACX,KAAAga,mBAAkC,IAAI,IAAY,GAAI,CAAC3sC,KAAK0oO,uBAC5D,KAAAC,iBAAgC,IAAI,IAAY,GAAI,CAAC3oO,KAAK0oO,uBAC1D,KAAAE,kBAAkC,GAClC,KAAAr3M,kBAAmB,EACnB,KAAAs3M,UAAW,EACX,KAAAC,iBAAkB,EAElB,KAAAC,kBAAoB,CACvBtkO,OAAQ,MACRukO,iBAAkB,OAClBC,eAAgB,WAEb,KAAAC,wBAAyB,EAM5BlpO,KAAK2iB,aAAe3iB,KAAKssL,oBAAoBxQ,eAAej6J,WACxD,SAAC4rC,GACOA,IACA,EAAKvgB,oBAAiB7/B,EAE9B,GACR,CAgKJ,OA7JW,YAAA+Z,eAAP,SAAsBC,IACkC,IAA/CA,EAAchN,UAAUI,QAAQ,WAChC4M,EAAcC,eACiD,IAA5DD,EAAcC,aAAajN,UAAUI,QAAQ,YACtBnM,SAASiZ,uBAAuB,eAAehyB,QAEtEyK,KAAKmpO,WAGjB,EAEO,YAAApmN,YAAP,SAAmBwL,GACXA,EAAQkD,aAAezxB,KAAKyxB,aAAezxB,KAAKyxB,YAAYl8B,SAC5DyK,KAAKitC,aACDjtC,KAAKktC,gBAAkBltC,KAAKktC,eAAeh2B,IAC3ClX,KAAKopO,mBAAmBppO,KAAKktC,iBAGjC3e,EAAQ+uK,uBAAyBt9L,KAAKs9L,wBACtCt9L,KAAKopO,mBAAmBppO,KAAKs9L,uBAC7Bt9L,KAAK2sC,mBAAmB9Y,SAAS7zB,KAAKs9L,sBAAsBnmM,MAEpE,EAEO,YAAAkyO,kBAAP,SAAyB5kO,GACrBzE,KAAK6oO,UAAW,EAChB7oO,KAAKuxB,kBAAmB,EACxBvxB,KAAK8oO,iBAAkB,EACvB9oO,KAAK2yB,SAAW,KAED,UAAXluB,GAKJzE,KAAK+oO,kBAAoB,CACrBtkO,OAAM,EACNukO,iBAA6B,WAAXvkO,EAAsB,KAAO,OAC/CwkO,eAA2B,WAAXxkO,EAAsB,MAAQ,WAGnC,QAAXA,IACAzE,KAAK2sC,mBAAmB9Y,SAAS7zB,KAAK8oL,WAAWoE,SACjDltL,KAAKktC,eAAiB,CAAE/1C,KAAM6I,KAAK2sC,mBAAmB/0C,MAAOsF,OAAQ,CAAC,IAG3D,WAAXuH,GACAzE,KAAK2sC,mBAAmBm5F,UAAU,OAhBlC9lI,KAAK8oO,iBAAkB,CAkB/B,EAEO,YAAAM,mBAAP,SAA0B5tN,GACtBxb,KAAKktC,eAAiB1xB,EACtBxb,KAAKmpO,WACDnpO,KAAKktC,gBAAkBltC,KAAKktC,eAAeh2B,IAC3ClX,KAAK2sC,mBAAmB9Y,SAAS7zB,KAAKktC,eAAe/1C,MACrD6I,KAAK+uL,iBAAiBnlL,KAAK5J,KAAKktC,iBAEhCltC,KAAKyoO,cAAc7+N,KAAK5J,KAAKktC,eAErC,EAEO,YAAAo8L,oBAAP,SAA2B7kO,GAA3B,WACmB,WAAXA,GAKJzE,KAAK2yB,SAAW,KAChB3yB,KAAKktC,eAAe/1C,KAAO6I,KAAK2sC,mBAAmB/0C,MAC9CoI,KAAKyxB,YAAYlmB,MAAK,SAAAukL,GAAM,OAAAA,EAAG34L,OAAS,EAAK+1C,eAAe/1C,IAAhC,KAC7B6I,KAAKyxB,YAAY57B,KAAKmK,KAAKktC,gBAE/BltC,KAAK2vL,iBAAiB/lL,KAAK,CAAEnF,OAAM,EAAEsyI,WAAY/2I,KAAKktC,iBACtDltC,KAAKmpO,YAVDnpO,KAAKmpO,UAYb,EAEO,YAAAI,mBAAP,SAA0B9kO,GAA1B,WACmB,WAAXA,IACIzE,KAAKktC,eAAeh2B,IACpBlX,KAAK2vL,iBAAiB/lL,KAAK,CAAEnF,OAAM,EAAEsyI,WAAY/2I,KAAKktC,iBACtDltC,KAAKktC,oBAAiB7/B,IAEtBrN,KAAKyxB,YAAczxB,KAAKyxB,YAAYx1B,QAAO,SAAA6zL,GAAM,OAAAA,EAAG34L,OAAS,EAAK+1C,eAAe/1C,IAAhC,IACjD6I,KAAK2sC,mBAAmB9Y,SAAS,IACjC7zB,KAAKktC,oBAAiB7/B,IAG9BrN,KAAKmpO,UACT,EAEO,YAAAK,iBAAP,WACIxpO,KAAKuxB,kBAAoBvxB,KAAKuxB,iBAC9BvxB,KAAK2oO,iBAAiB90M,SAAS,IAC/B7zB,KAAK4oO,kBAAoB5oO,KAAKyxB,YAC9B,IAAMg4M,EAAen7N,SAASsa,eAAe,mBACzC6gN,GACA/hN,YACI,WACI+hN,EAAa9lK,OACjB,GACA,EAEZ,EAEO,YAAA+lK,aAAP,WACI1pO,KAAKuxB,kBAAmB,EACxBvxB,KAAK2sC,mBAAmB9Y,SAAS7zB,KAAK2oO,iBAAiB/wO,OACvDoI,KAAKktC,eAAiB,CAAE/1C,KAAM6I,KAAK2oO,iBAAiB/wO,MAAOsF,OAAQ,CAAC,GAEpE8C,KAAKspO,oBAAoB,OACzBtpO,KAAKyoO,cAAc7+N,KAAK5J,KAAKktC,eACjC,EAEO,YAAApb,kBAAP,sBACQ9xB,KAAKyxB,cACLzxB,KAAK4oO,kBAAoB5oO,KAAKyxB,YAAYx1B,QAAO,SAAAoP,GAAQ,OAAgF,IAAhFA,EAAKlU,KAAKuhB,cAAc+B,QAAQ,EAAKkuN,iBAAiB/wO,MAAM8gB,cAA5D,IACzD1Y,KAAKkpO,yBAA2BlpO,KAAKyxB,YAAYlmB,MAAK,SAAAF,GAAQ,OAAAA,EAAKlU,KAAKuhB,gBAAkB,EAAKiwN,iBAAiB/wO,MAAM8gB,aAAxD,IAEtE,EAEO,YAAA1W,YAAP,WACQhC,KAAK2iB,cACL3iB,KAAK2iB,aAAa1gB,aAE1B,EAEQ,YAAAknO,SAAR,WACInpO,KAAK6oO,UAAW,EAChB7oO,KAAK8oO,iBAAkB,EACvB9oO,KAAKuxB,kBAAmB,CAC5B,EAEQ,YAAA0b,WAAR,sBACQjtC,KAAKyxB,aAAezxB,KAAKyxB,YAAYl8B,SACrCyK,KAAK4oO,kBAAoB5oO,KAAKyxB,YAC9BzxB,KAAKktC,eAAiBltC,KAAKyxB,YAAYlmB,MAAK,SAAAukL,GAAM,OAAAA,EAAG34L,OAAS,EAAKw1C,mBAAmB/0C,KAApC,IAE1D,EAEQ,YAAA8wO,mBAAR,sBACI,OAAO,SAACjiO,GACJ,GAAIA,EAAQ7O,MAAO,CACf,IAAM,EAAQ6O,EAAQ7O,MAAMuP,OAE5B,IAAK,EACD,MAAO,CAAE+7N,WAAY,yBAGzB,GAAI,GAAS,EAAKzxM,aAAe,EAAKA,YAAYlmB,MAAK,SAAAukL,GAAM,OAAAA,EAAG34L,OAAS,CAAZ,IACzD,MAAO,CAAE+rO,WAAY,6B,CAG7B,OAAO,IACX,CACJ,EA5MA,IADC,kB,2DAID,IADC,kB,6DAID,IADC,kB,2DAID,IADC,kB,iBAC6B,O,4CAG9B,IADC,mB,iBACwB,iB,uCAGzB,IADC,mB,iBACwB,iB,uCAGzB,IADC,mB,iBACqB,iB,oCA8BtB,IADC,uBAAa,iBAAkB,CAAC,kB,mDACI53M,c,mEAnD5Bq+M,EAAkB,IAP9B,oBAAU,CACPthO,SAAU,iBACVC,SAAU,EAAQ,MAClBC,OAAQ,CAAC,EAAQ,OACjBC,gBAAiB,0BAAwBC,S,wBA2CR,MAxCxBkhO,E,CAAb,G,ubCEA,cAgDI,aA1CO,KAAAC,iBAAqC,IAAI,eAEzC,KAAAC,cAA8B,CACjC,CAAE3yN,GAAI,EAAG/f,KAAM,SACf,CAAE+f,GAAI,EAAG/f,KAAM,UACf,CAAE+f,GAAI,EAAG/f,KAAM,YAIZ,KAAA2yO,aAA6B,CAChC,CAAE5yN,GAAI,EAAG/f,KAAM,UACf,CAAE+f,GAAI,EAAG/f,KAAM,UACf,CAAE+f,GAAI,EAAG/f,KAAM,WACf,CAAE+f,GAAI,EAAG/f,KAAM,aACf,CAAE+f,GAAI,EAAG/f,KAAM,YACf,CAAE+f,GAAI,EAAG/f,KAAM,UACf,CAAE+f,GAAI,EAAG/f,KAAM,aAGZ,KAAA4yO,UAA0B,CAC7B,CAAE7yN,GAAI,EAAG/f,KAAM,SACf,CAAE+f,GAAI,EAAG/f,KAAM,UACf,CAAE+f,GAAI,EAAG/f,KAAM,SACf,CAAE+f,GAAI,EAAG/f,KAAM,UACf,CAAE+f,GAAI,EAAG/f,KAAM,SAGZ,KAAA6yO,gBAA8B,CAAC,EAC/B,KAAAC,aAA2B,CAAC,EAE5B,KAAA5iM,aAAuB,KAEvB,KAAA6iM,YAAc,4HACd,KAAAC,eAAgB,EAChB,KAAAC,yBAA0B,EAC1B,KAAAC,sBAAuB,EACvB,KAAAC,qBAAmC,CAAEpzN,GAAI,EAAG/f,KAAM,MAClD,KAAAozO,UAAuB,CAAEC,gBAAgB,EAAO1qO,KAAM,MACtD,KAAA2qO,WAAyB,CAAC,EAC1B,KAAAC,YAA2B,CAAC,EAE5B,KAAAC,mBAAoB,CAE3B,CA4VJ,OA1VW,YAAA5nN,YAAP,SAAmBwL,GAAnB,WACQA,EAAQk5J,iBAAmBznL,KAAKynL,iBAAmBznL,KAAKynL,gBAAgBuU,qBACxEh8L,KAAKw2C,iBACLx2C,KAAKsqO,qBAAuBtqO,KAAK6pO,cAAct+N,MAAK,SAAAwhJ,GAAM,OAAAA,EAAG51J,KAAKuhB,gBAAkB,EAAK+uK,gBAAgBuU,mBAAmBtjL,aAAlE,IAC1D1Y,KAAK4qO,UAAY,IAAIrjO,KAAKvH,KAAKynL,gBAAgBojD,iBAAiBC,eAAe,QAAS,CAAEC,KAAM,UAAWC,OAAQ,UAAWC,QAAQ,IACtIjrO,KAAKkrO,mBAEb,EAEO,YAAAC,qBAAP,SAA4BtgE,GACxB7qK,KAAKsqO,qBAAuBz/D,EAC5B7qK,KAAKw2C,iBACLx2C,KAAKgqO,gBAAkBhqO,KAAKorO,oBAC5BprO,KAAKiqO,aAAejqO,KAAKqrO,gBAC7B,EAEO,YAAAC,oBAAP,WACItrO,KAAKuqO,UAAUzqO,KAAO,KACtBE,KAAKqnC,aAAe,KACpBrnC,KAAKurO,WAAa,CACtB,EAEO,YAAAC,oBAAP,SAA2BngO,GACvBrL,KAAKgqO,gBAAkB3+N,EACvBrL,KAAKyrO,kBACT,EAEO,YAAAC,iBAAP,SAAwBrgO,GACpBrL,KAAKiqO,aAAe5+N,EACpBrL,KAAKyrO,kBACT,EAEO,YAAAE,kBAAP,SAAyBlnO,GACrBzE,KAAKmqO,eAAgB,EACjB1lO,IACAzE,KAAK2qO,mBAAoB,EACzB3qO,KAAK4rO,sBAAsBnnO,GAEnC,EAEO,YAAAmnO,sBAAP,SAA6BnnO,GACzBzE,KAAKmqO,eAAgB,EACrBnqO,KAAKqnC,aAAe,KACpBrnC,KAAKurO,WAAa,EAClB,IAAIpuC,EAAsB,CAAC,EACvBD,EAAoB,CAAC,EACzB,GAAIz4L,EAAQ,CACR,IAAIzE,KAAKsqO,uBAAwBtqO,KAAKsqO,qBAAqBpzN,GA8DvD,YADAlX,KAAKqnC,aAAe,qCAjBpB,GA1CqC,IAAjCrnC,KAAKsqO,qBAAqBpzN,IAAYlX,KAAK6rO,sBAE3C1uC,EAAiB,CACb2uC,MAAOrnM,KAAKC,UAAU,CAAC,CACnBk7J,UAAW5/L,KAAKuqO,UAAUzqO,MAAQ,eAKT,IAAjCE,KAAKsqO,qBAAqBpzN,IAAYlX,KAAK+rO,uBAE3C5uC,EAAiB,CACb6uC,OAAQvnM,KAAKC,UAAU,CAAC,CACpBk7J,UAAW5/L,KAAKyqO,WAAWwB,YAC3B58M,IAAKrvB,KAAKgqO,gBAAgB7yO,UAMD,IAAjC6I,KAAKsqO,qBAAqBpzN,IAAYlX,KAAKksO,wBAGvC/uC,EADAn9L,KAAK0qO,YAAYyB,MACA,CACbC,QAAS3nM,KAAKC,UAAU,CAAC,CACrBk7J,UAAW5/L,KAAK0qO,YAAY2B,UAC5Bh9M,IAAKrvB,KAAK0qO,YAAY4B,aAKb,CACbF,QAAS3nM,KAAKC,UAAU,CAAC,CACrBk7J,UAAW5/L,KAAK0qO,YAAY6B,WAC5BC,QAASxsO,KAAKgqO,gBAAgB7yO,KAC9Bs1O,KAAMzsO,KAAKiqO,aAAa9yO,WAOnC6I,KAAK4qO,YAAc5qO,KAAKqnC,eAAiBrnC,KAAKmqO,cAG/C,OAFAnqO,KAAKqnC,aAAe,0CACpBrnC,KAAKurO,WAAa,GAIlBpuC,GAAkBn9L,KAAK4qO,YAAc5qO,KAAKqnC,eAI1C61J,EAAe,CACXC,eAAgBA,EAChB0tC,gBAJqB,IAAI,KAAS,SAASzqN,UAAUqQ,EAAOzwB,KAAK4qO,UAAW,CAAC,WAAWxwD,QAAS,wBAAuB,IAAIh8J,KAAKo+K,iBAAiBz8K,kBAAkB08K,SAKpKT,mBAAoBh8L,KAAKsqO,qBAAqBnzO,M,GASzDsN,GAAWjP,OAAOg3B,KAAK0wK,GAAc3nM,QAAUC,OAAOg3B,KAAK2wK,GAAgB5nM,UAC5EyK,KAAKsqO,qBAAuB,CAAC,EAC7BtqO,KAAK4pO,iBAAiBhgO,KAAK,CAAEszL,aAAY,EAAEz4L,OAAM,IAEzD,EAEO,YAAAioO,eAAP,SAAsBnhB,GAClBvrN,KAAK4qO,UAAYrf,EACjBvrN,KAAKyrO,kBACT,EAEO,YAAAA,iBAAP,SAAwBkB,QAAA,IAAAA,OAAA,GACpB,IAAI/B,EAAYn6M,EAAOzwB,KAAK4qO,UAAW,WACnCgC,EAAkBn8M,IAClBo8M,EAAoBjC,EAAUkC,cAAcF,GAChD,GAAqC,IAAjC5sO,KAAKsqO,qBAAqBpzN,GAAU,CAC/By1N,GACD3sO,KAAK6rO,oBAET,IAAIkB,EAAat8M,IACbu8M,EAA4C,QAA7BD,EAAWh8M,OAAO,OAAoB,EAAK/wB,KAAKuqO,UAAUzqO,MAAQ,EAEjFE,KAAKitO,oBADLJ,EAC2BE,EAAWh8M,OAAO,mBAElBg8M,EAAW53L,IAAI63L,EAAa,QAAQj8M,OAAO,kB,CAI9E,GAAqC,IAAjC/wB,KAAKsqO,qBAAqBpzN,GAAU,CACpClX,KAAK+rO,qBACL,IAAImB,EAAkBz8M,IAASpB,IAAIrvB,KAAKgqO,gBAAgB7yO,MACpDg2O,EAAuBD,EAAgBJ,cAAcF,GAGrD5sO,KAAKitO,oBADLE,GAAwBN,EACGK,EAAgBn8M,OAAO,mBAEvBm8M,EAAgB/3L,IAAIn1C,KAAKyqO,WAAWwB,YAAa,SAASl7M,OAAO,kB,CAKpG,GAAqC,IAAjC/wB,KAAKsqO,qBAAqBpzN,GAE1B,GADAlX,KAAKksO,sBACDlsO,KAAK0qO,YAAYyB,MAAO,CACxB,IAAIiB,EAAc38M,EAAOzwB,KAAK4qO,UAAW,WAAWtjO,MAAMtH,KAAK0qO,YAAY2B,WAEvEgB,EAAmBD,EAAY1N,QAAQoN,cAAcF,GACrDU,EAAyBF,EAAY1N,QAAQoN,cAAcF,GAG3D5sO,KAAKitO,oBADLI,GAAoBC,EACOF,EAAYr8M,OAAO,mBAEnBq8M,EAAYj4L,IAAIn1C,KAAK0qO,YAAY4B,SAAU,UAAUv7M,OAAO,kB,KAGxF,CAKH,IAJA,IAAIw8M,EAAmB98M,EAAOzwB,KAAK4qO,UAAW,WAAWz1L,KAAKn1C,KAAK0qO,YAAY6B,WAAY,SAAShoL,QAAQ,SACxGqH,EAAQ,EACR4hL,EAAcD,EAAiB7N,QAAQ8N,cACvC5rL,EAAW,GACNvsD,EAAI,EAAGA,GAAKm4O,IACbD,EAAiBx8M,OAAO,UAAY/wB,KAAKgqO,gBAAgB7yO,OACzDy0D,IACAhK,EAAW2rL,EAAiBx8M,OAAO,mBAC/B66B,KAAW5rD,KAAKiqO,aAAa/yN,KAJP7hB,IAQ9Bk4O,EAAiBp4L,IAAI,EAAG,OAE5Bn1C,KAAKitO,oBAAsBrrL,C,CAGvC,EAEO,YAAA6rL,iBAAP,WAEIztO,KAAKurO,WADa,oDACUpwN,KAAKnb,KAAK4qO,WAAa,EAAI,EACvD5qO,KAAKqnC,aAAernC,KAAKurO,WAAa,4DAA8D,EACxG,EAEO,YAAAmC,mBAAP,WACI1tO,KAAKqnC,aAAernC,KAAKurO,WAAa,IAC1C,EAEQ,YAAAL,iBAAR,WACI,GAAqC,IAAjClrO,KAAKsqO,qBAAqBpzN,GAAU,CACpC,IAAM40N,EAAQrnM,KAAKj9B,MAAMxH,KAAKynL,gBAAgBwU,sBAAsB6vC,OACpE9rO,KAAKuqO,UAAY,CACbC,eAAgB/iO,MAAMqkO,EAAM,GAAGlsC,WAC/B9/L,KAAM2H,MAAMqkO,EAAM,GAAGlsC,WAAa,GAAKksC,EAAM,GAAGlsC,U,CAIxD,GAAqC,IAAjC5/L,KAAKsqO,qBAAqBpzN,GAAU,CACpC,IAAM,EAASutB,KAAKj9B,MAAMxH,KAAKynL,gBAAgBwU,sBAAsB+vC,QACrEhsO,KAAKyqO,WAAa,CACdwB,YAAa,EAAO,GAAGrsC,UACvB+tC,MAAO,EAAO,GAAGt+M,KAErBrvB,KAAKgqO,gBAAkBhqO,KAAK8pO,aAAav+N,MAAK,SAAAqiO,GAAM,OAAAA,EAAGz2O,OAAS,EAAO,GAAGk4B,GAAtB,G,CAGxD,GAAqC,IAAjCrvB,KAAKsqO,qBAAqBpzN,GAAU,CACpC,IAAM,EAAUutB,KAAKj9B,MAAMxH,KAAKynL,gBAAgBwU,sBAAsBmwC,SACtEpsO,KAAK0qO,YAAc,CACfyB,OAAS,EAAQ,GAAGK,UAAY,EAAQ,GAAGC,KAC3CJ,UAAY,EAAQ,GAAGG,SAAW,EAAQ,GAAGC,KAAQ,GAAK,EAAQ,GAAGp9M,IACrEi9M,SAAW,EAAQ,GAAGE,SAAW,EAAQ,GAAGC,KAAQ,GAAK,EAAQ,GAAG7sC,UACpE2sC,WAAa,EAAQ,GAAGC,SAAW,EAAQ,GAAGC,KAAQ,EAAQ,GAAG7sC,UAAY,GAC7EiuC,QAAS,EAAQ,GAAGrB,QACpBsB,cAAe,EAAQ,GAAGrB,MAE9BzsO,KAAKgqO,gBAAkBhqO,KAAK8pO,aAAav+N,MAAK,SAAAqiO,GAAM,OAAAA,EAAGz2O,OAAS,EAAQ,GAAGq1O,OAAvB,IACpDxsO,KAAKiqO,aAAejqO,KAAK+pO,UAAUx+N,MAAK,SAAAqiO,GAAM,OAAAA,EAAGz2O,OAAS,EAAQ,GAAGs1O,IAAvB,G,CAElDzsO,KAAKyrO,kBACT,EAEQ,YAAAI,kBAAR,WAEI,OADA7rO,KAAK0tO,qBACDl4O,OAAOg3B,KAAKxsB,KAAKuqO,WAAWh1O,UACtByK,KAAKuqO,UAAUC,kBAAoBxqO,KAAKuqO,UAAUzqO,MAAS2H,MAAMzH,KAAKuqO,UAAUzqO,SAClFE,KAAKqnC,aAAe,8BACpBrnC,KAAKurO,WAAa,GACX,IAGXvrO,KAAKqnC,aAAe,2CACb,EAGf,EAEQ,YAAA0kM,mBAAR,WAEI,OADA/rO,KAAK0tO,qBACDl4O,OAAOg3B,KAAKxsB,KAAKyqO,YAAYl1O,SACvByK,KAAKyqO,WAAWwB,aAAexkO,MAAMzH,KAAKyqO,WAAWwB,cACvDjsO,KAAKqnC,aAAe,8BACpBrnC,KAAKurO,WAAa,GACX,KAGPvrO,KAAKgqO,kBAAoBhqO,KAAKgqO,gBAAgB9yN,MAC9ClX,KAAKqnC,aAAe,2BACpBrnC,KAAKurO,WAAa,GACX,IAGXvrO,KAAKurO,WAAa,EAClBvrO,KAAKqnC,aAAe,4BACb,EAGf,EAEQ,YAAA6kM,oBAAR,WAEI,GADAlsO,KAAK0tO,qBACDl4O,OAAOg3B,KAAKxsB,KAAK0qO,aAAan1O,OAAQ,CACtC,GAAIyK,KAAK0qO,YAAYyB,MAAO,CACxB,GAAI1kO,MAAMzH,KAAK0qO,YAAY2B,cAAgBrsO,KAAK0qO,YAAY2B,YAAcrsO,KAAK0qO,YAAY2B,UAAY,GAGnG,OAFArsO,KAAKqnC,aAAe,4BACpBrnC,KAAKurO,WAAa,GACX,EAGX,KAAMvrO,KAAK0qO,YAAY4B,UAAatsO,KAAK0qO,YAAY4B,UAAY7kO,MAAMzH,KAAK0qO,YAAY4B,UAGpF,OAFAtsO,KAAKqnC,aAAe,8BACpBrnC,KAAKurO,WAAa,GACX,EAGX,IAAKvrO,KAAK0qO,YAAY2B,UAAY,KAAOrsO,KAAK2qO,kBAE1C,OADA3qO,KAAKmqO,eAAgB,GACd,C,KAER,CACH,IAAKnqO,KAAKiqO,eAAiBjqO,KAAKiqO,aAAa/yN,GAGzC,OAFAlX,KAAKqnC,aAAe,sBACpBrnC,KAAKurO,WAAa,GACX,EAEX,IAAKvrO,KAAKgqO,kBAAoBhqO,KAAKgqO,gBAAgB9yN,GAG/C,OAFAlX,KAAKqnC,aAAe,yBACpBrnC,KAAKurO,WAAa,GACX,EAEX,KAAMvrO,KAAK0qO,YAAY6B,YAAc9kO,MAAMzH,KAAK0qO,YAAY6B,YAGxD,OAFAvsO,KAAKqnC,aAAe,8BACpBrnC,KAAKurO,WAAa,GACX,C,CAGf,OAAO,C,CAGX,OADAvrO,KAAKqnC,aAAe,4BACb,CACX,EAEQ,YAAAmP,eAAR,WACIx2C,KAAKoqO,yBAA0B,EAC/BpqO,KAAKqqO,sBAAuB,EAC5BrqO,KAAK4qO,WAAY,IAAIrjO,MAAOujO,eAAe,QAAS,CAAEC,KAAM,UAAWC,OAAQ,UAAWC,QAAQ,IAElGjrO,KAAKuqO,UAAY,CAAEC,gBAAgB,EAAO1qO,KAAM,MAChDE,KAAKyqO,WAAa,CAAC,EACnBzqO,KAAK0qO,YAAc,CAAEyB,OAAO,GAC5BnsO,KAAK2qO,mBAAoB,EACzB3qO,KAAK0tO,oBACT,EAEQ,YAAAtC,kBAAR,WACI,IAAMoB,GAAU,IAAIjlO,MAAOujO,eAAe,QAAS,CAAE0B,QAAS,SAC9D,OAAOxsO,KAAK8pO,aAAav+N,MAAK,SAAAwiO,GAAO,OAAAA,EAAI52O,OAASq1O,CAAb,KAAyBxsO,KAAK8pO,aAAa,EACpF,EAEQ,YAAAuB,eAAR,WAGI,IAFA,IAAI2C,EAAY,EACZC,GAAe,EACV54O,EAAI,EAAGA,IAAK,IAAIkS,MAAO+nB,UAAWj6B,IAAK,CAE5B,QADA,IAAIkS,MAAK,IAAIA,MAAO2mO,QAAQ74O,IAAIy1O,eAAe,QAAS,CAAE0B,QAAS,WAE/EyB,GAAe,EACfD,KAEAC,GAAe,C,CAMvB,OAHIA,GACAD,IAEGhuO,KAAK+pO,UAAUx+N,MAAK,SAAAqiO,GAAM,OAAAA,EAAG12N,KAAO82N,CAAV,KAAwBhuO,KAAK+pO,UAAU,EAC5E,EAzYA,IADC,kB,gEAID,IADC,mB,iBACwB,iB,uCANhBoE,EAAuB,IAPnC,oBAAU,CACP9lO,SAAU,sBACVC,SAAU,EAAQ,MAClBC,OAAQ,CAAC,EAAQ,OACjBC,gBAAiB,0BAAwBC,S,4BAGhC0lO,E,CAAb,G,kgCCLA,cAwDI,WACqB99D,EACT1rJ,EACAypN,GAFS,KAAA/9D,wBACT,KAAA1rJ,gBACA,KAAAypN,sBArDL,KAAAC,eAAoC,GAMpC,KAAAlgB,qBAAuD,IAAI,eAG3D,KAAAmgB,sBAAoF,IAAI,eAGxF,KAAAC,WAAoC,IAAI,eAGxC,KAAA3uL,kBAAoB,CACvB9xB,WAAY,cACZC,cAAc,EACdC,YAAa,SAQV,KAAAwgN,qBAAsB,EACtB,KAAAC,qBAAsB,EACtB,KAAA7xB,mBAAoB,EACpB,KAAA8xB,iBAAkB,EAClB,KAAAC,kBAAmB,EACnB,KAAAC,kBAAmB,EACnB,KAAAC,uBAAwB,EACxB,KAAAC,YAAc,CACjB,CAAE53N,GAAI,EAAG7W,MAAO,wCAChB,CAAE6W,GAAI,EAAG7W,MAAO,2BAEb,KAAA0uO,qBAAuB,EACvB,KAAAC,eAAgB,EAGf,KAAAz0C,iBAAqC,CAAEhuJ,QAAS,CAAC,GACjD,KAAA0iM,8BAA8D,GAC9D,KAAA9M,eAA+B,GAC/B,KAAA+M,wBAAgD,GAChD,KAAAC,mBAA2C,GAC3C,KAAAC,iBAAyC,GACzC,KAAAC,kBAA0C,GAC1C,KAAAC,kBAA0C,GAC1C,KAAAC,uBAAwB,EAM5BvvO,KAAKwvO,kBACT,CAoZJ,OAlZW,YAAAzsN,YAAP,SAAmBwL,GACXvuB,KAAKywL,sBACLzwL,KAAKyvO,iBACLzvO,KAAK+uO,qBAAuB/uO,KAAKywL,oBAAoBloF,WACjDh6E,EAAQkiK,qBACLzwL,KAAKywL,oBAAoBlkJ,SACzB/2C,OAAOg3B,KAAKxsB,KAAKywL,oBAAoBlkJ,SAASh3C,SACjDyK,KAAKuvO,uBAAwB,EAC7BvvO,KAAKumF,uBAELvmF,KAAKywL,oBAAoBzlF,YACzBhrG,KAAKqtB,gBAAkBrtB,KAAKouO,oBAAoB13C,sBAChD12L,KAAK0vO,yBAA2B1vO,KAAKywL,oBAAoBzlF,UAAU5vD,UAC/Dp7C,KAAKywL,oBAAoBzlF,UAAUusF,WACnCv3L,KAAK2vO,uBAAyB3vO,KAAKouO,oBAAoB92C,gCAAgCt3L,KAAKywL,oBAAoBzlF,UAAUusF,YAE1Hv3L,KAAKywL,oBAAoBzlF,UAAU78E,UAAYnuB,KAAKywL,oBAAoBzlF,UAAU38E,UAClFruB,KAAK2vO,uBAAyB3vO,KAAKouO,oBAAoB/2C,0BAA0Br3L,KAAKywL,oBAAoBzlF,YAE9GhrG,KAAKgvO,eAAgB,EACrBhvO,KAAKsuO,sBAAsB1kO,KAAK,CAAE1R,IAAK8H,KAAK0vO,yBAA0B93O,MAAOoI,KAAK2vO,2BAItFphN,EAAQqhN,uBAAyB5vO,KAAK4vO,wBACtC5vO,KAAKu6L,iBAAiBhuJ,QAAU,CAAC,EACjCvsC,KAAKwvO,mBAEb,EAEO,YAAAK,yBAAP,SAAgCr0N,GAAhC,WACIxb,KAAKu6L,iBAAiBhuJ,QAAU,CAC5B0/H,YAAazwJ,GAGjB,IAAI+xM,EAAoBvtN,KAAKivO,8BAEzBzzN,GAAgBA,EAAajmB,SAC7Bg4N,EAAoB/xM,EAAape,KAAI,SAACw0B,GAClC,OAAQ,EAAKk+M,eAAep+M,UAAUnmB,MAAK,SAAAomB,GAAM,OAAAA,EAAGx6B,OAASy6B,EAAGz6B,IAAf,GACrD,IACIiG,KAAI,SAAAie,GAAK,OAAAA,EAAEtmB,KAAKu5K,0BAAP,IACTtmG,QAAO,SAACY,EAAK9mD,GAAQ,OAAA8mD,EAAI7iB,OAAOjkC,EAAX,GAAiB,KAG9C9hB,KAAK+vO,mBAAmBxiB,GAAmB,EAC/C,EAEO,YAAAyiB,uBAAP,SAA8Bx0N,GAC1Bxb,KAAKu6L,iBAAiBhuJ,QAAU,CAC5B0/H,YAAajsK,KAAKu6L,iBAAiBhuJ,QAAQ0/H,YAC3CnuH,SAAUtiC,GAEdxb,KAAKmvO,mBAAqBnvO,KAAKiwO,sBAAsBjwO,KAAKkvO,wBAAyB1zN,EAAc,gBACjGxb,KAAK8tL,cAAc9tL,KAAKmvO,mBAAoB,CAAErxL,UAAU,IAAQ,EACpE,EAEO,YAAAoyL,qBAAP,SAA4B10N,GACxBxb,KAAKu6L,iBAAiBhuJ,QAAU,CAC5B0/H,YAAajsK,KAAKu6L,iBAAiBhuJ,QAAQ0/H,YAC3CnuH,SAAU99C,KAAKu6L,iBAAiBhuJ,QAAQuR,SACxC6yE,OAAQn1G,GAEZxb,KAAKovO,iBAAmBpvO,KAAKiwO,sBAAsBjwO,KAAKmvO,mBAAoB3zN,EAAc,UAC1Fxb,KAAK8tL,cAAc9tL,KAAKovO,iBAAkB,CAAEtxL,UAAU,EAAM6yE,QAAQ,IAAQ,EAChF,EAEO,YAAAw/G,sBAAP,SAA6B30N,GACzBxb,KAAKu6L,iBAAiBhuJ,QAAU,CAC5B0/H,YAAajsK,KAAKu6L,iBAAiBhuJ,QAAQ0/H,YAC3CnuH,SAAU99C,KAAKu6L,iBAAiBhuJ,QAAQuR,SACxC6yE,OAAQ3wH,KAAKu6L,iBAAiBhuJ,QAAQokF,OACtCj/D,QAASl2C,GAEbxb,KAAKqvO,kBAAoBrvO,KAAKiwO,sBAAsBjwO,KAAKmvO,mBAAoB3zN,EAAc,iBAC3Fxb,KAAK8tL,cAAc9tL,KAAKqvO,kBAAmB,CAAEvxL,UAAU,EAAM6yE,QAAQ,EAAMj/D,SAAS,IAAQ,EAChG,EAEO,YAAA0+K,sBAAP,SAA6B50N,GACzBxb,KAAKu6L,iBAAiBhuJ,QAAU,CAC5B0/H,YAAajsK,KAAKu6L,iBAAiBhuJ,QAAQ0/H,YAC3CnuH,SAAU99C,KAAKu6L,iBAAiBhuJ,QAAQuR,SACxC6yE,OAAQ3wH,KAAKu6L,iBAAiBhuJ,QAAQokF,OACtCj/D,QAAS1xD,KAAKu6L,iBAAiBhuJ,QAAQmlB,QACvCg/D,QAASl1G,GAEbxb,KAAKsvO,kBAAoBtvO,KAAKiwO,sBAAsBjwO,KAAKqvO,kBAAmB7zN,EAAc,eAC1Fxb,KAAK8tL,cAAc9tL,KAAKsvO,kBAAmB,CAAExxL,UAAU,EAAM6yE,QAAQ,EAAMj/D,SAAS,EAAMg/D,SAAS,IAAQ,EAC/G,EAEO,YAAA2/G,2BAAP,SAAkC70N,GAC9Bxb,KAAKu6L,iBAAiBhuJ,QAAU,SACzBvsC,KAAKu6L,iBAAiBhuJ,SAAO,CAChC+8E,aAAc9tG,IAElB,IAAM8qK,EAAgBtmL,KAAKiwO,sBAAsBjwO,KAAKsvO,kBAAmB9zN,EAAc,oBACvFxb,KAAK8tL,cAAcxH,EAAe,CAAExoI,UAAU,EAAM6yE,QAAQ,EAAMj/D,SAAS,EAAMg/D,SAAS,EAAMpH,cAAc,IAAQ,EAC1H,EAEO,YAAAgnH,oBAAP,WACItwO,KAAK+uO,qBAAuB,EAC5B/uO,KAAKu6L,iBAAiBhuJ,QAAU,CAAC,EACjCvsC,KAAKuwO,YACLvwO,KAAKwvO,kBAAiB,EAC1B,EAEO,YAAAgB,mBAAP,SAA0BjoI,GACtBvoG,KAAKu6L,iBAAiBhyF,WAAaA,EAAWrxF,GAC9ClX,KAAKmuN,qBAAqBvkN,KAAK5J,KAAKu6L,iBACxC,EAEO,YAAAk2C,uBAAP,WACIzwO,KAAKgvO,eAAiBhvO,KAAKgvO,cACtBhvO,KAAKgvO,gBACNhvO,KAAK0vO,yBAA2B,KAChC1vO,KAAK2vO,uBAAyB,KAC9B3vO,KAAKsuO,sBAAsB1kO,KAAK,QAE/B5J,KAAK0vO,0BAA4B1vO,KAAKgvO,gBACvChvO,KAAKqtB,gBAAkBrtB,KAAKouO,oBAAoB13C,sBAChD12L,KAAKquO,eAAe,GAAG7lN,WAAY,EACnCxoB,KAAK0vO,yBAA2B1vO,KAAKquO,eAAe,GAAGz2O,MACvDoI,KAAKsuO,sBAAsB1kO,KAAK,CAAE1R,IAAK8H,KAAK0vO,yBAA0B93O,MAAOoI,KAAK2vO,yBAE1F,EAEO,YAAAx8L,kBAAP,SAAyB63D,GACrBhrG,KAAK0vO,yBAA2B1kI,EAAUpzG,MAC1CoI,KAAKsuO,sBAAsB1kO,KAAK,CAAE1R,IAAK8H,KAAK0vO,yBAA0B93O,MAAOoI,KAAK2vO,wBACtF,EAEO,YAAAn7C,sBAAP,SAA6BvxK,GACzBjjB,KAAK2vO,uBAAyB1sN,EAC9BjjB,KAAKsuO,sBAAsB1kO,KAAK,CAAE1R,IAAK8H,KAAK0vO,yBAA0B93O,MAAOoI,KAAK2vO,wBACtF,EAEQ,YAAAppJ,oBAAR,sBAOI,GANAvmF,KAAKuvO,uBACAvvO,KAAK8vO,gBACH9vO,KAAKywL,qBACLzwL,KAAKywL,oBAAoBlkJ,WACvB/2C,OAAOg3B,KAAKxsB,KAAKywL,oBAAoBlkJ,SAASh3C,OAEnDyK,KAAK8vO,gBAAkB9vO,KAAKywL,qBAAuBzwL,KAAKywL,oBAAoBlkJ,QAAS,CACrF,IAAMmkM,EAAyB1wO,KAAKywL,oBAAoBlkJ,QAAQ0/H,aAAe,GAC/EjsK,KAAK8vO,eAAiB,SACf9vO,KAAK8vO,gBAAc,CACtB90N,cAAe01N,EACXtzO,KAAI,SAAC8Z,GACD,OAAQ,EAAK44N,eAAep+M,UAAUnmB,MAAK,SAAAomB,GAAM,OAAAA,EAAGza,KAAOA,CAAV,GACrD,IAAGjb,QAAO,SAACtF,GAAkB,OAAAA,CAAA,MAGrC,IAAIg6O,EAAuB3wO,KAAK8vO,eAAe90N,cAAc5d,KAAI,SAAAwzO,GAAQ,OAAAA,EAAK77O,KAAKu5K,0BAAV,IACrEtmG,QAAO,SAACY,EAAK9mD,GAAQ,OAAA8mD,EAAI7iB,OAAOjkC,EAAX,GAAiB,IACrC6uN,GAAyBA,EAAqBp7O,SAC/Co7O,EAAuB3wO,KAAKivO,+BAEhCjvO,KAAKu6L,iBAAiBhuJ,QAAU,SAAKvsC,KAAKu6L,iBAAiBhuJ,SAAO,CAAE0/H,YAAajsK,KAAK8vO,eAAe90N,gBACrGhb,KAAK6wO,sBAAsBF,E,CAEnC,EAEQ,YAAAZ,mBAAR,SAA2Bv0N,EAA4Cs1N,GAAvE,gBAAuE,IAAAA,OAAA,GACnE9wO,KAAKuwO,YACD/0N,GAAgBA,EAAajmB,OAC7ByK,KAAK0sK,uBAAuBlxJ,EAAcs1N,GAG1C9wO,KAAKqwK,sBAAsB3tB,cACtB7gI,WAAU,SAAA0sJ,GACP,EAAK0gE,8BACD1gE,EAAanxK,KAAI,SAAA2zO,GACb,MAAO,CACHv6K,YAAau6K,EAAGv6K,YAChBkvF,aAAcqrF,EAAGrrF,aAEzB,IACJ,EAAKgnB,uBAAuB,EAAKuiE,8BAA+B6B,EAEpE,GAEZ,EAEQ,YAAApkE,uBAAR,SAA+BlxJ,EAA4Cs1N,GAA3E,WACI9wO,KAAKqwK,sBAAsB3D,uBAAuBlxJ,GAC7CqG,WAAU,SAAAykK,GACP,EAAK4oD,wBACD,EAAKC,mBACL,EAAKE,kBACL,EAAKC,kBACLhpD,EACJ,EAAKwH,cAAcxH,EAAe,CAAC,EAAGwqD,GACtC,EAAKE,aACD,EAAKzB,wBACL,EAAKgB,YACL,EAAKhqJ,sBACL,EAAKgpJ,uBAAwB,EAErC,GACR,EAEQ,YAAAU,sBAAR,SAA8B3pD,EAAqC9qK,EAA4BwM,GAC3F,IAAIu+J,EAAwBD,EAW5B,OAVI9qK,GAAgBA,EAAajmB,SAC7BgxL,EAAwB,GACxB/qK,EAAape,KAAI,SAAAw0B,GAAM,OAAAA,EAAGz6B,IAAH,IAClB0jB,SAAQ,SAAA1jB,GACLovL,EACK1wL,KAAI,MADT0wL,EAAqB,GACRD,EACJrqL,QAAO,SAAAuqL,GAAQ,OAAAA,EAAKx+J,KAA4C7wB,CAAjD,KAE5B,KAEDovL,CACX,EAEQ,YAAAuH,cAAR,SAAsBxH,EAAqCkK,EAA8BsgD,QAAA,IAAAA,OAAA,GACrF,IAAI1gD,EAAe,GACb6gD,EAAc,GACdt8B,EAAc,GACdu8B,EAAmB,GACnBC,EAAa,GAEf7qD,GACAA,EAAczrK,SAAQ,SAAAk2N,GAEd3gD,EAAav6L,KAAK,CACdqhB,GAAI65N,EAAGl4O,WACP1B,KAAM45O,EAAGrrF,aACT3wJ,KAAM,CACFumI,kBAAmBy1G,EAAGz1G,kBACtBw2D,yBAA0Bi/C,EAAGj/C,yBAC7B3xE,cAAe4wH,EAAG5wH,iBAI1B8wH,EAAYp7O,KAAK,CACbqhB,GAAI65N,EAAG5wH,cACPhpH,KAAM45O,EAAG54M,cACTpjC,KAAM,CACFojC,cAAe44M,EAAG54M,iBAI1Bg5M,EAAWt7O,KAAK,CACZqhB,GAAI65N,EAAGpgH,OACPx5H,KAAM45O,EAAGpgH,OACT57H,KAAM,CACF47H,OAAQogH,EAAGpgH,UAInBgkF,EAAY9+M,KAAK,CACbqhB,GAAI65N,EAAG17C,UACPl+L,KAAM45O,EAAG9qD,cAGbirD,EAAiBr7O,KAAK,CAClBqhB,GAAI65N,EAAGhoD,mBACP5xL,KAAM45O,EAAG52D,mBAAqB,MAAQ42D,EAAG/pK,iBACzCjyE,KAAM,CACFolL,mBAAoB42D,EAAG52D,qBAIvC,IAGCqW,GAAYA,EAAQ1yI,WACrB99C,KAAKuuK,aAAevuK,KAAKouO,oBAAoBr3C,qBAAqB,iBAAkB3G,EAAan0L,QAAO,SAAAlH,GAAQ,OAAW,MAAXA,EAAKmiB,EAAL,MAG/Gs5K,GAAYA,EAAQ9+H,UACrB1xD,KAAKoxO,YAAcpxO,KAAKouO,oBAAoBr3C,qBAAqB,YAAak6C,EAAYh1O,QAAO,SAAAlH,GAAQ,OAAW,MAAXA,EAAKmiB,EAAL,MAGxGs5K,GAAYA,EAAQ7/D,SACrB3wH,KAAKqxO,WAAarxO,KAAKouO,oBAAoBr3C,qBAAqB,SAAUo6C,EAAWl1O,QAAO,SAAAlH,GAAQ,OAAW,MAAXA,EAAKmiB,EAAL,MAGnGs5K,GAAYA,EAAQ9/D,UACrB1wH,KAAKsxO,YAActxO,KAAKouO,oBAAoBr3C,qBAAqB,UAAW4d,EAAY14M,QAAO,SAAAlH,GAAQ,OAAW,MAAXA,EAAKmiB,EAAL,MAGtGs5K,GAAYA,EAAQlnE,eACrBtpH,KAAKuxO,iBAAmBvxO,KAAKouO,oBAAoBr3C,qBAAqB,2BAA4Bm6C,EAAiBj1O,QAAO,SAAAlH,GAAQ,OAAW,MAAXA,EAAKmiB,EAAL,MAGlIlX,KAAKu6L,iBAAiBhuJ,SAAW/2C,OAAOg3B,KAAKxsB,KAAKu6L,iBAAiBhuJ,SAASh3C,SAC5EyK,KAAKywL,oBAAoBrkB,eAAkBpsK,KAAKu6L,iBAAiBhuJ,QAAmB,YAAIvsC,KAAKu6L,iBAAiBhuJ,QAAQ0/H,YAAY7uK,KAAI,SAAAw0B,GAAM,OAAAA,EAAGz6B,IAAH,IAAW,GACvJ6I,KAAKywL,oBAAoB/qC,aAAgB1lJ,KAAKu6L,iBAAiBhuJ,QAAgB,SAAIvsC,KAAKu6L,iBAAiBhuJ,QAAQuR,SAAS1gD,KAAI,SAAAw0B,GAAM,OAAAA,EAAGz6B,IAAH,IAAW,IAEnJ6I,KAAKu6L,iBAAiBhyF,WAAavoG,KAAK+uO,qBACpC+B,GACA9wO,KAAKmuN,qBAAqBvkN,KAAK5J,KAAKu6L,kBAExCv6L,KAAK2kB,cAAc7B,cACvB,EAEQ,YAAA0sN,iBAAR,SAAyBsB,GAAzB,gBAAyB,IAAAA,OAAA,GACrB9wO,KAAKqwK,sBAAsBtC,sBACtBlsJ,WAAU,SAAAoqJ,GACP,EAAKk2D,eAAiBl2D,EAClB7uK,KAAI,SAAAmZ,GACA,MAAO,CACHW,GAAIX,EAAWW,GACf/f,KAAMof,EAAW61J,eACjBr3K,KAAMwhB,EAEd,IAAG/Y,MAAK,SAACZ,EAAGC,GAAM,OAAAD,EAAEzF,KAAK2oB,cAAcjjB,EAAE1F,KAAvB,IAEtB,EAAK24O,eAAiB,CAClBhvO,MAAO,iBACP4wB,UAAW,EAAKywM,gBAGpB,EAAK9xD,sBAAsB3tB,cACtB7gI,WAAU,SAAA0sJ,GACP,EAAK0gE,8BACD1gE,EAAanxK,KAAI,SAAA2zO,GACb,MAAO,CACHv6K,YAAau6K,EAAGv6K,YAChBkvF,aAAcqrF,EAAGrrF,aAEzB,GACR,IAEJ,EAAKqqF,mBAAmB,EAAKd,8BAA+B6B,EAChE,GACR,EAEQ,YAAAD,sBAAR,SAA8BW,GAA9B,WACIxxO,KAAKuwO,YACLvwO,KAAKqwK,sBAAsB3D,uBAAuB8kE,GAC7C3vN,WAAU,SAAAykK,GACP,EAAK4oD,wBAA0B5oD,EAC/B,EAAKwH,cAAcxH,EAAe,CAAC,GACnC,EAAKmrD,qBACL,EAAKT,YACT,GACR,EAEQ,YAAAS,mBAAR,WACI,IAAMC,EAAuB1xO,KAAKywL,oBAAoBlkJ,QAAQuR,UAAY,GAC1E,GAAI99C,KAAKuuK,aAAc,CACnBvuK,KAAKuuK,aAAevuK,KAAKouO,oBAAoB3oD,cAAczlL,KAAKuuK,aAAcmjE,GAC9E1xO,KAAKmvO,mBAAqBnvO,KAAKiwO,sBAAsBjwO,KAAKkvO,wBAAyBlvO,KAAKuuK,aAAavzJ,cAAe,gBACpHhb,KAAKu6L,iBAAiBhuJ,QAAQuR,SAAW99C,KAAKuuK,aAAavzJ,cAC3Dhb,KAAK8tL,cAAc9tL,KAAKmvO,mBAAoB,CAAErxL,UAAU,IAExD,IAAM6zL,EAAqB3xO,KAAKywL,oBAAoBlkJ,QAAQokF,QAAU,GACtE3wH,KAAKqxO,WAAarxO,KAAKouO,oBAAoB3oD,cAAczlL,KAAKqxO,WAAYM,GAC1E3xO,KAAKovO,iBAAmBpvO,KAAKiwO,sBAAsBjwO,KAAKmvO,mBAAoBnvO,KAAKqxO,WAAWr2N,cAAe,UAC3Ghb,KAAKu6L,iBAAiBhuJ,QAAQokF,OAAS3wH,KAAKqxO,WAAWr2N,cACvDhb,KAAK8tL,cAAc9tL,KAAKovO,iBAAkB,CAAEtxL,UAAU,EAAM6yE,QAAQ,IAEpE,IAAMihH,EAAsB5xO,KAAKywL,oBAAoBlkJ,QAAQmlB,SAAW,GACxE1xD,KAAKoxO,YAAcpxO,KAAKouO,oBAAoB3oD,cAAczlL,KAAKoxO,YAAaQ,GAC5E5xO,KAAKqvO,kBAAoBrvO,KAAKiwO,sBAAsBjwO,KAAKmvO,mBAAoBnvO,KAAKoxO,YAAYp2N,cAAe,iBAC7Ghb,KAAKu6L,iBAAiBhuJ,QAAQmlB,QAAU1xD,KAAKoxO,YAAYp2N,cACzDhb,KAAK8tL,cAAc9tL,KAAKqvO,kBAAmB,CAAEvxL,UAAU,EAAM6yE,QAAQ,EAAMj/D,SAAS,IAEpF,IAAMmgL,EAAsB7xO,KAAKywL,oBAAoBlkJ,QAAQmkF,SAAW,GACxE1wH,KAAKsxO,YAActxO,KAAKouO,oBAAoB3oD,cAAczlL,KAAKsxO,YAAaO,GAC5E7xO,KAAKsvO,kBAAoBtvO,KAAKiwO,sBAAsBjwO,KAAKqvO,kBAAmBrvO,KAAKsxO,YAAYt2N,cAAe,eAC5Ghb,KAAKu6L,iBAAiBhuJ,QAAQmkF,QAAU1wH,KAAKsxO,YAAYt2N,cACzDhb,KAAK8tL,cAAc9tL,KAAKsvO,kBAAmB,CAAExxL,UAAU,EAAM6yE,QAAQ,EAAMj/D,SAAS,EAAMg/D,SAAS,IAEnG,IAAMohH,EAA2B9xO,KAAKywL,oBAAoBlkJ,QAAQ+8E,cAAgB,GAClFtpH,KAAKuxO,iBAAmBvxO,KAAKouO,oBAAoB3oD,cAAczlL,KAAKuxO,iBAAkBO,GACtF9xO,KAAKu6L,iBAAiBhuJ,QAAQ+8E,aAAetpH,KAAKuxO,iBAAiBv2N,cAEnEhb,KAAK2kB,cAAc7B,c,CAE3B,EAEQ,YAAAytN,UAAR,WACIvwO,KAAKyuO,qBAAsB,EAC3BzuO,KAAK48M,mBAAoB,EACzB58M,KAAK2uO,kBAAmB,EACxB3uO,KAAK0uO,iBAAkB,EACvB1uO,KAAK4uO,kBAAmB,EACxB5uO,KAAK6uO,uBAAwB,CACjC,EAEQ,YAAAmC,WAAR,WACIhxO,KAAKyuO,qBAAsB,EAC3BzuO,KAAK48M,mBAAoB,EACzB58M,KAAK2uO,kBAAmB,EACxB3uO,KAAK0uO,iBAAkB,EACvB1uO,KAAK4uO,kBAAmB,EACxB5uO,KAAK6uO,uBAAwB,CACjC,EAEQ,YAAAY,eAAR,WACIzvO,KAAKgvO,eAAgB,EACrBhvO,KAAKqtB,gBAAkB,KACvBrtB,KAAK0vO,yBAA2B,GAChC1vO,KAAK2vO,uBAAyB,KAC9B3vO,KAAKsuO,sBAAsB1kO,KAAK,KACpC,EA9cA,IADC,kB,oEAID,IADC,kB,8DAID,IADC,kB,uEAID,IADC,mB,iBAC4B,iB,2CAG7B,IADC,mB,iBAC6B,iB,4CAG9B,IADC,mB,iBACkB,iB,iCAlBVmoO,EAAsB,IAPlC,oBAAU,CACP1pO,SAAU,qBACVC,SAAU,EAAQ,MAClBC,OAAQ,CAAC,EAAQ,OACjBC,gBAAiB,0BAAwBC,S,wBA4DG,GACjB,oBACM,MA3DxBspO,E,CAAb,G,wuBCAA,cAeI,WACYxwO,EACA8uK,EACA2hE,GAHZ,WACY,KAAAzwO,cACA,KAAA8uK,wBACA,KAAA2hE,oBAbL,KAAAC,YAA+C,CAClD,CAAE/6N,GAAI,EAAGtf,MAAO,QAChB,CAAEsf,GAAI,EAAGtf,MAAO,SAChB,CAAEsf,GAAI,EAAGtf,MAAO,cAIZ,KAAAuB,WAAiC,kBAQrC6G,KAAKuB,YAAYyD,YACbrD,KACI,aAAI,SAAA1H,GAEA,OADA,EAAK+K,YAAc/K,EACZA,CACX,IACA,OAAAkqJ,GAAA,IAAU,SAAClqJ,GACP,cAAAo/K,GAAA,GAAS,CACL,EAAKhJ,sBAAsB7B,wBAAwBv0K,GACnD,EAAKo2K,sBAAsBl2E,8BAA8BlgG,IAF7D,IAKJ,aAAI,SAAC,G,IAAA,UAACgK,EAAgB,KAAEiuO,EAAe,KAGnC,GAFA,EAAKC,oBAAsBD,EAC3B,EAAKE,uBAAyBF,EAAgBj2O,QAAO,SAAApE,GAAK,OAAAA,EAAEsB,aAAe,EAAKA,UAAtB,IAAkCiE,KAAI,SAAAvF,GAAK,OAAAA,CAAA,IAAG,GACpGoM,EAAkB,CAClB,EAAKA,iBAAmBA,EACxB,IAAI,EAAQA,EAAiBA,iBAAiBhI,QAAO,SAAApE,GAAK,OAAAA,EAAEsB,aAAe,EAAKA,UAAtB,IAAkC,GACxF,IACA,EAAK6lL,eAAiB,EAAKizD,YAAYh2O,QAAO,SAAApE,GAAK,OAAAA,EAAEqf,KAAO,EAAMq9E,SAAf,I,CAG/D,KACF1yE,WAAU,WACJ,EAAKmwN,kBAAkBlvN,cAC3B,GAEZ,CASJ,OAPW,YAAAuvN,wBAAP,SAA+BznN,GAA/B,WACI,GAAK5qB,KAAKiE,mBACL2mB,GAA0C,IAAzBA,EAAcr1B,QAApC,CACA,IAAI+8O,EAAYtyO,KAAKiE,iBAAiBA,iBAAiBhI,QAAO,SAAAq4F,GAAQ,OAAAA,EAAKn7F,aAAe,EAAKi5O,uBAAuBj5O,UAAhD,IAA4D,GAClIm5O,EAAU/9I,UAAY3pE,EAAc,GAAG1T,GACvClX,KAAKqwK,sBAAsBh6H,qBAAqB,CAACi8L,GAAYtyO,KAAKgF,YAAYC,SAASC,O,CAC3F,EAvDSqtO,EAA0B,IANtC,oBAAU,CACPlqO,SAAU,oBACVC,SAAU,EAAQ,MAClBC,OAAQ,CAAC,EAAQ,OACjBC,gBAAiB,0BAAwBC,S,wBAkBhB,KACU,GACJ,uBAlBtB8pO,E,CAAb,G,ubCJA,cASI,aARO,KAAAzxF,oBAAqB,EAMrB,KAAAn7H,YAAuC,IAAI,cAElC,CAKpB,OAHW,YAAAkC,gBAAP,SAAuB6B,GACnB1pB,KAAK2lB,YAAYqiB,KAAKte,EAC1B,EATA,IADC,kB,4DAID,IADC,mB,iBACmB,iB,kCAPX8oN,EAAqB,IAPjC,oBAAU,CACPnqO,SAAU,gBACVC,SAAU,EAAQ,MAClBC,OAAQ,CAAC,EAAQ,OACjBC,gBAAiB,0BAAwBC,S,4BAGhC+pO,E,CAAb,G,iiECSA,cAmDI,WACYrsM,EACAz9B,EACAspO,EACAp3B,EACRvgL,GAJQ,KAAA8L,UACA,KAAAz9B,aACA,KAAAspO,oBACA,KAAAp3B,4BAhDL,KAAA1G,kBAAmB,EAEnB,KAAA8K,cAAe,EAIf,KAAAI,aAAsC,IAAI,eAE1C,KAAAqzB,sBAA+C,IAAI,eACnD,KAAAC,wBAAmF,GACnF,KAAAC,uBAAkF,GAClF,KAAAC,oBAA+E,GAC/E,KAAAC,YAAsE,GACtE,KAAAl+B,YAAyB,GACzB,KAAAm+B,iBAAkB,EAClB,KAAAvpB,oBAAqB,EACrB,KAAAzL,WAA0B,GAC1B,KAAAi1B,yBAA0B,EAC1B,KAAAC,wBAAyB,EACzB,KAAAC,oBAAqB,EACrB,KAAAn+D,YAA2B,CAC9BjuJ,OAAQ7mB,KAAK46M,0BAA0BrI,yBACvCx9M,KAAM,IAEH,KAAA88M,gBAAgC,IAAI,GACpC,KAAAwY,WAAY,EACZ,KAAA9M,mBAAoB,EACpB,KAAAyJ,oBAAqB,EACrB,KAAAksB,oBAAqB,EACrB,KAAA/qC,mBAAoB,EACpB,KAAAgrC,iBAAkB,EAClB,KAAA9rM,aAAe,GACf,KAAAosK,qBAAsB,EACtB,KAAA2/B,cAAgB,wBAEf,KAAAz/B,kBAA8B,GAE9B,KAAA0/B,eAAgB,EAChB,KAAAp0B,cAAiC,GACjC,KAAAjL,sBAAiD,GACjD,KAAAuD,wBAA+E,GAC/E,KAAA2H,2BAA6B,GAUjCzuL,EAAA,OAAc,MACdzwB,KAAKk/M,2BAA6BzuL,IAAS2pJ,QAAQrpJ,OAAO,0BAC1D/wB,KAAKszO,qCACLtzO,KAAKs6M,kBACLt6M,KAAKo7M,WAAap7M,KAAK46M,0BAA0BlJ,gBACrD,CA0SJ,OAxSW,YAAA3uL,YAAP,SAAmBwwN,GACXA,EAAav0B,cAAgBh/M,KAAKg/M,eAClCh/M,KAAKm/M,eACLn/M,KAAKwzO,kCACLxzO,KAAKyzO,qBAEb,EAGA,sBAAI,8BAAe,C,IAAnB,SAAoB3xN,GACXA,GACLxT,SAASsa,eAAe,mBAAmB8qN,gBAC/C,E,gCAEO,YAAA1rM,KAAP,WACIhoC,KAAKyzM,qBAAsB,EACvBzzM,KAAK2zO,mBAAqB3zO,KAAK2zM,kBAAkBxzM,YACjDH,KAAK4zO,0BAA0B5zO,KAAK2zM,mBAExC3zM,KAAK46M,0BAA0BpH,qBAAoB,EACvD,EAEO,YAAAqgC,oBAAP,SAA2B5wN,GACvBjjB,KAAK2zM,kBAAoB1wL,EAAOowL,SAChCrzM,KAAKg0M,sBAAwB/wL,EAAO+wL,sBACpCh0M,KAAKi/M,cAAgBh8L,EAAOg8L,aAChC,EAEa,YAAA60B,8BAAb,SAA2C7wN,G,mGACnCA,IAAWwqL,GAAesmC,MAC1B/zO,KAAKgoC,OAEL/kB,IAAWwqL,GAAeumC,KAA1B,MACA,GAAMh0O,KAAKi0O,gB,OAAX,S,wBAEAhxN,IAAWwqL,GAAeymC,QAC1Bl0O,KAAKwqD,SAELvnC,IAAWwqL,GAAe0mC,MAC1Bn0O,KAAKo0O,e,YAIN,YAAAA,aAAP,WACIp0O,KAAKyzM,qBAAsB,EAC3BzzM,KAAK46M,0BAA0BpH,qBAAoB,EACvD,EAEO,YAAA6gC,KAAP,WACIr0O,KAAKyzM,qBAAsB,EAC3BzzM,KAAK46M,0BAA0BpH,qBAAoB,EACvD,EAEO,YAAAn0D,eAAP,SAAsBloJ,GAClB,OAAO6I,KAAKy0M,kBAAkBj9M,IAAIL,EACtC,EAEa,YAAAilG,SAAb,SAAsB07G,EAAsB/F,G,YAAtB,IAAA+F,OAAA,QAAsB,IAAA/F,MAAA,I,kGAC3B,SAAM/xM,KAAK46M,0BAA0BhD,6BAA6B7F,EAAS+F,GAAcz1M,a,OACtG,OADa,WAEPiyO,EAAmBt0O,KAAKu0O,sBAAsBv0O,KAAKy0M,kBAAkB78M,MAAOkgN,GAClF93M,KAAKu9M,mBAAoB,EACzBv9M,KAAKmoM,mBAAqB2P,EAC1B93M,KAAKmzO,gBAAkBr7B,EACvB93M,KAAKmmC,QAAQnvB,eAAes9N,GACvBzyN,WAAU,SAAC4rC,GACR,EAAK06I,mBAAoB,EACzB,EAAKgrC,iBAAkB,EACvB,EAAKqB,qBACL,EAAKp1B,aAAax1M,MAAK,GACnBkuM,GAAgB,EAAKsD,WACrB,EAAK1yM,WAAWG,MAAMsP,mBAAmBT,eAAeX,OAAO5M,WAE/D,EAAKzB,WAAWG,MAAMsP,mBAAmBT,eAAeP,yBAAyBs2C,EAAI+sJ,YAAYrwM,UAEzG,KAhBU,I,QAmBL,YAAA8pO,aAAb,W,2GACQliC,EAAU/xM,KAAKy0M,kBAAkBj9M,IAAI,sBAAsBA,IAAI,sBAAsBI,MACpFoI,KAAK2zM,mBAAuD,IAAlC3zM,KAAK2zM,kBAAkBp+M,QAAiBw8M,EAAnE,MACa,GAAM/xM,KAAK46M,0BAA0B3C,wBAAwB51M,a,OAC1E,IADIjM,EAAS,UACFsjB,YAAe,UAC1Bq4L,EAAU37M,EAAO4oL,eAAeJ,eAChC5+K,KAAK46M,0BAA0B1C,kBAAkBnG,EAAS/xM,KAAKy0M,mB,iBAEnE,SAAMz0M,KAAKo8F,UAAS,EAAM21G,I,cAA1B,S,YAGG,YAAAvnJ,OAAP,WACIxqD,KAAK0I,WAAWG,MAAMsP,mBAAmBT,eAAeX,OAAO5M,UACnE,EAEO,YAAAm6L,cAAP,WACI,OAAQtkM,KAAKy0M,kBAAkBpzJ,OAASrhD,KAAKqzO,gBAAkBrzO,KAAK2zM,mBAAuD,IAAlC3zM,KAAK2zM,kBAAkBp+M,MACpH,EAEO,YAAAk/O,qBAAP,SAA4BxxN,GAA5B,WACSA,IACLjjB,KAAKkzO,oBAAqB,EAC1BlzO,KAAKmmC,QAAQmzK,qBAAqBr2L,GAAQpB,WAAU,SAAAha,GAChD,EAAKqrO,oBAAqB,EAC1B,EAAKG,cAAgBxrO,EACrB,EAAKmqO,kBAAkBlvN,cAC3B,IACJ,EAEO,YAAA4xN,gBAAP,WACI,OAAK10O,KAAKqzO,cACH,4DAD2B,EAEtC,EAEO,YAAAmB,mBAAP,WACIx0O,KAAK46M,0BAA0BzG,qBAC/Bn0M,KAAKi/M,cAAgB,GACrBj/M,KAAKg0M,sBAAwB,EACjC,EAEO,YAAA2gC,0BAAP,SAAiC1xN,GAC7BjjB,KAAK8yO,iBAAmB7vN,EACxBjjB,KAAK40O,eAAiB50O,KAAK8yO,gBAAkB9yO,KAAK4yO,oBAAsB5yO,KAAK2yO,uBAC7E3yO,KAAKozO,cAAgBnwN,EAAS,wBAA0B,aAC5D,EAEQ,YAAA4xN,gBAAR,SAAwBhC,GACpB,IAAKA,IAAgBA,EAAYt9O,OAAU,MAAO,GAElD,IAAIu/O,GADJjC,EAAcA,EAAY52O,QAAO,SAAApE,GAAK,OAAAA,EAAEykN,aAAezkN,EAAEykN,YAAY/mN,MAA/B,KAElC6H,KAAI,SAACiO,GACD,MAAO,CACHnT,IAAKmT,EAAK0pO,iBACVn9O,MAAOyT,EAAKixM,YACZ04B,YAAa3pO,EAAK2pO,YAE1B,IACA/4O,QAAO,SAAClH,EAAMM,EAAG+yL,GAAQ,OAAAA,EAAIl0J,WAAU,SAAAr8B,GAAK,OAAAA,EAAEK,MAAQnD,EAAKmD,GAAf,MAAwB7C,CAA3C,IAA8CmI,MAAK,SAACZ,EAAGC,GAAM,OAAAD,EAAIC,GAAK,EAAI,CAAb,IACtFo4O,EAAmBH,EAAkB74O,QAAO,SAAApE,GAAK,OAAAA,EAAEm9O,WAAF,IAIrD,OAHIC,GAAgD,IAA5BA,EAAiB1/O,QACrCyK,KAAKy0M,kBAAkB3I,WAAW,CAAE,cAAiBmpC,EAAiB,KAEnEH,CACX,EAEQ,YAAAlB,0BAAR,SAAkCvgC,GAC9B,GAAKA,GAAgC,IAApBA,EAAS99M,OAA1B,CACA,IAAI2/O,EAAoBl1O,KAAK46M,0BAA0BxG,kBAAkBf,GACzErzM,KAAK2zO,iBAAmBtgC,EAASlzM,WACjCH,KAAKm1O,wBAAwBD,GAC7Bl1O,KAAKo1O,uBAAuBF,GAC5Bl1O,KAAKq1O,gBAAgBH,E,CACzB,EAEQ,YAAA/1B,aAAR,WACSn/M,KAAK00M,eACV10M,KAAKk/M,2BAA6Bl/M,KAAK00M,aAAawK,2BAChDl/M,KAAK00M,aAAatB,YAClBpzM,KAAKqqN,WAAY,GAEyC,OAA1DrqN,KAAKy0M,kBAAkBj9M,IAAI,qBAAqBI,OAAkBoI,KAAK20O,2BAA0B,GACjG30O,KAAK00M,aAAarB,WAClBrzM,KAAK2zM,kBAAoB3zM,KAAK00M,aAAarB,UAE3CrzM,KAAK00M,aAAah6J,WAClB16C,KAAK80K,YAAc90K,KAAK00M,aAAah6J,SACrC16C,KAAKi/M,cAAgBj/M,KAAK00M,aAAauK,eAEvCj/M,KAAK00M,aAAapB,eAClBtzM,KAAKg0M,sBAAwBh0M,KAAK00M,aAAapB,cAEnDtzM,KAAKyzM,oBAAsBzzM,KAAK00M,aAAanB,cACzCvzM,KAAKyzM,qBAAwBzzM,KAAKk0M,kBAAoBl0M,KAAK2zM,kBAAkBp+M,OAAS,IACtFyK,KAAK4zO,0BAA0B5zO,KAAK2zM,mBAEpC3zM,KAAKk0M,kBACLl0M,KAAK46M,0BAA0B3G,kBAAkB,CAAEC,iBAAkBl0M,KAAKk0M,mBAE9El0M,KAAKgyO,kBAAkBlvN,eAE3B,EAEQ,YAAAwyN,qBAAR,SAA6Bt/B,GACzB,OAAOA,EACH/5M,QAAO,SAAClH,EAAMM,EAAG+yL,GAAQ,OAAAA,EACrBl0J,WAAU,SAAAr8B,GAAK,OAAAA,EAAED,MAAM8gB,gBAAkB3jB,EAAK6C,MAAM8gB,aAArC,MAAwDrjB,CADlD,GAEjC,EAEQ,YAAAm+O,gCAAR,sBACIxzO,KAAKy0M,kBAAkBj9M,IAAI,sBAAsBA,IAAI,sBAAsBo8B,aAAa/R,WAAU,SAAC1qB,GAC/F,GAAIA,GAAQA,EAAK5B,QAAU,GAAK,EAAKu9O,iBACO,IAApC,EAAKF,oBAAoBr9O,OAAc,CACvC,IAAIggP,EAAe,EAAK3C,oBAAoB32O,QAAO,SAAApE,GAAK,OAAAA,EAAE+5M,QAAQK,aAC9Dp6M,EAAE+5M,QAAQK,YAAYv5L,gBAAkBvhB,EAAKuhB,aADO,IACQtb,KAAI,SAACvF,GAAK,OAAAA,EAAE+5M,OAAO,IAC/E2jC,GAAgBA,EAAahgP,OAAS,EACtC,EAAKs8M,gBAAkB0jC,EAAa,GAEpC,EAAK1jC,gBAAkB,EAAK+gC,oBAAoB32O,QAAO,SAAApE,GAAK,MAAY,WAAZA,EAAED,KAAF,IAAsB,GAAGg6M,O,CAIrG,GACJ,EAEQ,YAAA2iC,sBAAR,SAA8B9/B,EAAwBqD,QAAA,IAAAA,OAAA,GAClD,IAAIpD,EAA6B,CAAC,EAClC,GAAID,EAAmB,CACfA,EAAkBI,sBAClBH,EAAe10M,KAAK46M,0BAA0BpG,+BAA+BC,EAAmBC,EAAc10M,KAAK20M,cAEnHF,EAAkByB,qBAClBxB,EAAe10M,KAAK46M,0BAA0B7E,8BAA8BtB,EAAmBC,EAAc10M,KAAK20M,YAAa30M,KAAK2yO,yBAExI,IAAM6C,EAAkBx1O,KAAK6yO,YAAYtnO,MAAK,SAAAqpB,GAAM,OAAAA,EAAGh9B,QAAU68M,EAAkB5hB,OAA/B,IAChD2iD,IACA9gC,EAAa+gC,iBAAmBD,EAAgBt9O,KAEpDu4B,EAAA,OAAc,MACdikL,EAAa8K,UAAYx/M,KAAKk/M,2BAC9BxK,EAAa2H,eAAiB5H,EAAkBmK,cAChDlK,EAAarC,YAAcyF,EAAe,KAAOrnL,IAAS2pJ,QAAQrpJ,OAAO,0BACzE2jL,EAAaxzB,sBAAwBuzB,EAAkBvzB,qB,CAE3D,IAAMw0D,EAAa,CAAEhhC,aAAY,EAAEuK,cAAej/M,KAAKi/M,cAAe02B,qBAAsB31O,KAAKk0M,iBAAkBkH,WAAYp7M,KAAKo7M,YAOpI,OANIp7M,KAAKk0M,mBACLwhC,EAAWl7B,WAAax6M,KAAK00M,aAAa8F,YAE1Cx6M,KAAKg0M,wBACL0hC,EAAW1hC,sBAAwBh0M,KAAKg0M,uBAErC0hC,CACX,EAEQ,YAAApC,mCAAR,sBACI,OAAArrO,GAAA,GAAc,CAACjI,KAAKmmC,QAAQizK,wBAAyBp5M,KAAKmmC,QAAQ0zK,+BAC7Dh4L,WAAU,SAAC,G,IAAA,UAACm0L,EAAW,KAAEjrL,EAAU,KAChC,EAAK6nN,oBAAsB58B,EAC3B,EAAK4+B,eAAiB,EAAK9B,gBAAkB,EAAKF,oBAAsB,EAAKD,uBAC7E,EAAKp7B,wBAA0BxsL,EAAWuoL,YAC9C,GACR,EAEQ,YAAAgH,gBAAR,sBACIt6M,KAAKmmC,QAAQm0K,kBAAkBz4L,WAAU,SAAAzrB,GACrC,EAAKu+M,YAAcv+M,EACnB,EAAK47O,kBAAkBlvN,cAC3B,GACJ,EAEQ,YAAA2wN,mBAAR,sBACIzzO,KAAKy0M,kBAAkBj9M,IAAI,iBAAiBo8B,aAAa/R,WAAU,SAACjqB,IAChEA,EAAQA,EAAMuP,SACDvP,EAAMrC,QAAU,GACzB,EAAKk/O,qBAAqB78O,EAElC,IACAoI,KAAKy0M,kBAAkB7gL,aAAa/R,WAAU,WAC1C,EAAKgyL,8BACL,EAAK4+B,sBAAsB7oO,MAAK,EACpC,GACJ,EAEQ,YAAAiqM,4BAAR,WACI,IAAMC,EAAmB9zM,KAAKy0M,kBAAkB78M,MAChDk8M,EAAiB0L,UAAYx/M,KAAKk/M,2BAClCl/M,KAAK46M,0BAA0B/G,4BAA4BC,EAC/D,EAEQ,YAAAqhC,wBAAR,SAAgC9hC,GAAhC,WACIrzM,KAAK+yO,yBAA0B,EAC/B/yO,KAAKmmC,QAAQ2yK,uBAAuBzF,GAAUxxL,WAAU,SAACgzL,GACrD,EAAK69B,wBAA0B79B,EAC/B,EAAK69B,wBAAwBl1O,MAAK,SAACZ,EAAGC,GAAM,OAAAD,EAAEhF,MAAMkoB,cAAcjjB,EAAEjF,MAAxB,IAC5C,EAAK86O,wBAAwB78O,KAAK,EAAK68O,wBAAwBj8O,OAAO,EAAKi8O,wBAAwBx+M,WAAU,SAAAt3B,GAAK,MAAY,yBAAZA,EAAEhF,KAAF,IAAqC,GAAG,IAC1J,EAAKm7O,yBAA0B,EAC/B,EAAKf,kBAAkBlvN,cAC3B,GACJ,EAEQ,YAAAsyN,uBAAR,SAA+B/hC,GAA/B,WACIrzM,KAAKgzO,wBAAyB,EAC9BhzO,KAAKmmC,QAAQozK,oBAAoBlG,GAAUxxL,WAAU,SAAC+zN,GAClD,EAAKjD,uBAAyB,EAAK2C,qBAAqBM,GAAkBp4O,MAAK,SAACZ,EAAGC,GAAM,OAAAD,EAAEhF,MAAMkoB,cAAcjjB,EAAEjF,MAAxB,IACzF,EAAK+6O,uBAAuB98O,KAAK,EAAK88O,uBAAuBl8O,OAAO,EAAKk8O,uBAAuBz+M,WAAU,SAAAt3B,GAAK,MAAY,yBAAZA,EAAEhF,KAAF,IAAqC,GAAG,IACvJ,EAAKg9O,eAAiB,EAAK9B,gBAAkB,EAAKF,oBAAsB,EAAKD,uBAC7E,EAAKK,wBAAyB,EAC9B,EAAKhB,kBAAkBlvN,cAC3B,GACJ,EAEQ,YAAAuyN,gBAAR,SAAwBhiC,GAAxB,WACIrzM,KAAKizO,oBAAqB,EAC1BjzO,KAAKmmC,QAAQszK,WAAWpG,GAAUxxL,WAAU,SAACgxN,GACzC,EAAKA,YAAc,EAAKgC,gBAAgBhC,GAAar1O,MAAK,SAACZ,EAAGC,GAAM,OAAAD,EAAEhF,MAAMkoB,cAAcjjB,EAAEjF,MAAxB,IACpE,EAAKq7O,oBAAqB,EAC1B,EAAKjB,kBAAkBlvN,cAC3B,GACJ,EArWA,IADC,kB,iBACyB,M,wCAE1B,IADC,kB,6DAGD,IADC,kB,iEAGD,IADC,kB,6DAGD,IADC,kB,2DAGD,IADC,mB,iBACoB,iB,mCAErB,IADC,mB,iBAC6B,iB,4CA2D9B,IADC,oBAAU,mB,iBACc,c,wBAAA,gB,oCA1EhB+yN,EAAyB,IANrC,oBAAU,CACPxtO,SAAU,qBACVC,SAAU,EAAQ,MAClBC,OAAQ,CAAC,EAAQ,OACjBC,gBAAiB,0BAAwBC,S,wBAsDpB,GACG,IACO,oBACQ,GACnB,QAxDXotO,E,CAAb,G,gcCVA,2BAGW,KAAAC,mBAAoB,EAGpB,KAAAjtB,aAAiC,IAAI,eAErC,KAAAktB,eAAkC,GAIlC,KAAAC,eAAkC,KAClC,KAAAC,SAAW,CAoEtB,QAlEW,YAAA1sO,SAAP,WACIvJ,KAAK+1O,eAAiB,CAClB,iBAAcG,MACd,iBAAcC,QACd,iBAAcC,SACd,iBAAcC,QACd,iBAAcC,QACd,iBAAcC,YACd,iBAAcC,OACd,iBAAcC,MACd,iBAAcC,IACd,iBAAcC,SACd,iBAAcC,QACd,iBAAcC,QACd,iBAAcC,OACd,iBAAcC,aACd,iBAAcC,MACd,iBAAcC,MACd,iBAAcC,kBAEtB,EAEO,YAAAC,eAAP,SAAsBC,GAClB,GAAIA,GAAWA,EAAQ7hP,OAAQ,CAC3ByK,KAAKq3O,WAAaD,EAClB,IAAME,EAAat3O,KAAKq3O,WAAW9rO,MAAK,SAAAgsO,GAAU,OAAAA,EAAOl3O,MAAMulI,SAAS,OAAtB,IAC9C0xG,IACAt3O,KAAKg2O,eAAiBsB,E,CAGlC,EAEO,YAAAE,kBAAP,WACIpyO,QAAQoZ,MAAM,oBAClB,EAEO,YAAAi5N,cAAP,SAAqBp8N,GACjBrb,KAAK8oN,YAAcztM,EACdrb,KAAK81O,mBACN91O,KAAK03O,sBAAqB,EAElC,EAEO,YAAAC,cAAP,WAEA,EAEO,YAAAC,YAAP,SAAmBv8N,GACfjW,QAAQoZ,MAAMnD,EAClB,EAEO,YAAAw8N,eAAP,SAAsBx8N,GAClBjW,QAAQoZ,MAAMnD,EAClB,EAEO,YAAAq8N,qBAAP,SAA4BI,GACxB93O,KAAK6oN,aAAaj/M,KAAK,CACnBkuO,cAAa,EACbhvB,YAAa9oN,KAAK8oN,aAE1B,EAEO,YAAAivB,aAAP,WACK/3O,KAAKi2O,UAAYj2O,KAAKq3O,WAAW9hP,OAAS,EAAKyK,KAAKi2O,SAAW,EAAIj2O,KAAKi2O,WACzEj2O,KAAKg2O,eAAiBh2O,KAAKq3O,WAAWr3O,KAAKi2O,WAAaj2O,KAAKq3O,WAAW,EAC5E,EA7EA,IADC,kB,kEAID,IADC,mB,iBACoB,iB,mCANZW,EAAuB,IANnC,oBAAU,CACP3vO,SAAU,kBACVC,SAAU,EAAQ,MAClBC,OAAQ,CAAC,EAAQ,OACjBC,gBAAiB,0BAAwBC,UAEhCuvO,E,CAAb,G,kcCGA,cA4FI,WAAoBC,EAAgD3lN,GAAhD,KAAA2lN,qBAAgD,KAAA3lN,aAnF7D,KAAA4lN,YAAa,EAkBb,KAAA3lN,iBAAkB,EAGlB,KAAAS,UAAY,OAMZ,KAAAN,WAAY,EAGZ,KAAAC,SAAW,GAGX,KAAAwlN,WAAY,EAGZ,KAAAtlN,eAAiB,GAGjB,KAAAulN,eAAiB,EAGjB,KAAAtlN,aAAc,EAGd,KAAAulN,eAAgB,EAShB,KAAAtlN,oBAAqB,EAGrB,KAAAE,wBAAgD,IAAI,eAGpD,KAAAqlN,uBAA4C,IAAI,eAGhD,KAAAC,8BAAuD,IAAI,eAG3D,KAAAnlN,eAAuC,IAAI,eAG3C,KAAAC,0BAAmD,IAAI,eAEvD,KAAA3F,cAAe,EACf,KAAA4F,gBAAiB,EAEjB,KAAA7B,YAAgD,GAEhD,KAAA5D,oBAAoC,CACvCC,WAAY,cACZiyB,mBAAmB,EACnBhyB,cAAc,EACdC,YAAa,QAKjB,CA2EJ,OAzEW,YAAAzkB,SAAP,sBACIvJ,KAAK2iB,aAAe3iB,KAAK2zB,aAAaC,aAAa/R,WAAU,SAAAjqB,GACzD,EAAK06B,WAAWxP,cACpB,IACA9iB,KAAKyxB,YAAczxB,KAAK6qB,YAC5B,EAEO,YAAA9H,YAAP,SAAmBwL,GACXA,GAAWA,EAAQ1D,cAAgB7qB,KAAKuyB,kBACxCvyB,KAAKyxB,YAAczxB,KAAK6qB,aAEhC,EAEO,YAAA7oB,YAAP,WACIhC,KAAK2iB,aAAa1gB,aACtB,EAEO,YAAAqyB,oBAAP,SAA2BjpB,GACvBrL,KAAKyxB,YAAY5W,SAAQ,SAAAhjB,GACjBA,EAAEK,MAAQmT,EAAKnT,MACfmT,EAAKuiB,UAAW,EAExB,IACA5tB,KAAK2zB,aAAaE,SAASxoB,EAAKzT,OAChCoI,KAAK0tB,cAAe,EACpB1tB,KAAKizB,wBAAwBrpB,KAAKyB,EACtC,EAEO,YAAAmpB,kBAAP,SAAyBvR,GACrBjjB,KAAK2zB,aAAaE,SAAS5Q,EAAOwR,WAClCz0B,KAAKs4O,uBAAuB1uO,KAAKqZ,EAAOwR,UAC5C,EAEO,YAAAI,eAAP,WACI,GAAI70B,KAAK2zB,aAAamB,SAAW90B,KAAK2zB,aAAa/7B,OAASoI,KAAK+0B,aAAc,CAC3E,GAAI/0B,KAAKq4O,gBAAkBr4O,KAAK2zB,aAAaqB,SAAS,YAAch1B,KAAK2zB,aAAaqB,SAAS,OAE3F,OADAh1B,KAAK6yB,eAAiB,oCACf,EAEX,GAAI7yB,KAAK2zB,aAAaqB,SAAS,YAE3B,OADAh1B,KAAK6yB,eAAiB7yB,KAAKK,MAAQ,gBAC5B,EAEX,GAAIL,KAAK2zB,aAAaqB,SAAS,MAE3B,OADAh1B,KAAK6yB,eAAiB,qCACf,EAEX,GAAyB,0BAArB7yB,KAAKq0B,aAA2Cr0B,KAAK2zB,aAAaqB,SAAS,WAE3E,OADAh1B,KAAK6yB,eAAiB,gDACf,EAEX,GAAI7yB,KAAK2zB,aAAaqB,SAAS,YAAch1B,KAAK2zB,aAAaqB,SAAS,MAEpE,OADAh1B,KAAK6yB,eAAiB,sBAAwB7yB,KAAKK,OAC5C,C,MAGXL,KAAK6yB,eAAiB,GAE1B,OAAO,CACX,EAEO,YAAAsC,aAAP,SAAoBv9B,GAChBoI,KAAKqzB,0BAA0BzpB,KAAKhS,EACxC,EAEO,YAAAk6B,kBAAP,SAAyB9J,GACrBhoB,KAAKyxB,YAAczxB,KAAK6qB,aAAa5uB,QAAO,SAAAoP,GAAQ,OAAgE,IAAhEA,EAAKzT,MAAM8gB,cAAc+B,QAAQuN,EAAWtP,cAA5C,GACxD,EAEO,YAAA8/N,gBAAP,WACIx4O,KAAK0tB,cAAgB1tB,KAAK0tB,aAC1B1tB,KAAKyxB,YAAczxB,KAAK6qB,YAC5B,EArKA,IADC,kB,4DAID,IADC,kB,iBACoB,M,mCAGrB,IADC,kB,2DAID,IADC,kB,0DAID,IADC,kB,yDAID,IADC,kB,sDAID,IADC,kB,4DAID,IADC,kB,4DAID,IADC,kB,gEAID,IADC,kB,0DAID,IADC,kB,4DAID,IADC,kB,0DAID,IADC,kB,yDAID,IADC,kB,0DAID,IADC,kB,+DAID,IADC,kB,+DAID,IADC,kB,4DAID,IADC,kB,8DAID,IADC,kB,6DAID,IADC,kB,8DAID,IADC,kB,mEAID,IADC,mB,iBAC+B,iB,8CAGhC,IADC,mB,iBAC8B,iB,6CAG/B,IADC,mB,iBACqC,iB,oDAGtC,IADC,mB,iBACsB,iB,qCAGvB,IADC,mB,iBACiC,iB,gDA9EzB4tN,EAA0B,IANtC,oBAAU,CACPpwO,SAAU,sBACVC,SAAU,EAAQ,MAClBC,OAAQ,CAAC,EAAQ,OACjBC,gBAAiB,0BAAwBC,S,wBA8FD,IAAwC,uBA5FvEgwO,E,CAAb,G,ubCDA,cAkDI,WACYR,EACA9xM,GADA,KAAA8xM,qBACA,KAAA9xM,UAxCL,KAAAuyM,mBAAoB,EAwBpB,KAAAruB,WAAY,EAOZ,KAAAsuB,eAAgB,EAChB,KAAAvtC,cAAe,EACf,KAAAwtC,WAAY,EAGZ,KAAA/mC,gBAAgC,IAAI,EAK3C,CAiGJ,OA/FW,YAAAtoM,SAAP,WACIvJ,KAAK64O,cAAgB74O,KAAKi4O,mBAAmBxxO,QAAQjP,IAAIwI,KAAK84O,mBAC9D94O,KAAK85I,UAAY95I,KAAKi4O,mBAAmBxxO,QAAQjP,IAAIwI,KAAK6+D,UAE9D,EAEO,YAAA97C,YAAP,SAAmBwL,GAcf,GAbIA,EAAQynL,aAAeh2M,KAAKg2M,aAAeh2M,KAAK64O,eAA8C,yBAA7B74O,KAAK64O,cAAcjhP,QAAqCoI,KAAK+4O,kBAC9F,IAA5B/4O,KAAKg2M,YAAYzgN,QAAiByK,KAAK64O,cAAcjhP,QACrDoI,KAAK6xM,gBAAkB7xM,KAAKg2M,YAAY,GAAGpE,QAC3C5xM,KAAKg5O,iBACLh5O,KAAK64O,cAAchlN,SAAS7zB,KAAKg2M,YAAY,GAAGp+M,OAChDoI,KAAKorM,cAAe,IAGS,IAA5BprM,KAAKg2M,YAAYzgN,QAAkByK,KAAKg2M,YAAYzgN,OAAS,GAAKyK,KAAKorM,eACxEprM,KAAKi5O,gBAIT1qN,GAAWA,EAAQwqN,iBAAmB/4O,KAAK64O,cAAe,CAC1D,IAAIzlC,EAAYpzM,KAAK+4O,gBAAkB,SAAW,GAClD/4O,KAAKi5O,aAAa7lC,E,CAElB7kL,EAAQsjL,iBAAmB7xM,KAAK+4O,iBAAmB/4O,KAAK64O,gBAE1C,WADF74O,KAAKk5O,kBAEbl5O,KAAKg5O,iBAIjB,EAEO,YAAAG,iBAAP,SAAwBxoM,GACpB,OAAO3wC,KAAKo5O,SAAWzoM,CAC3B,EAEO,YAAA0uG,eAAP,SAAsBloJ,GAClB,IAAIe,EAAM8H,KAAKm5O,iBAAiBhiP,GAChC,OAAO6I,KAAKi4O,mBAAmBxxO,QAAQjP,IAAIwI,KAAK6+D,WAAWrnE,IAAIU,EACnE,EAEO,YAAAmhP,gBAAP,WACI,SAAIr5O,KAAK64O,cAAcjhP,QAASoI,KAAK85I,UAAUv4F,WACd,yBAA7BvhD,KAAK64O,cAAcjhP,OAChBoI,KAAK+4O,gBAChB,EAEO,YAAAO,kBAAP,SAAyBr2N,GAChBA,IACLjjB,KAAK6xM,gBAAkB5uL,EAAO2uL,QAC9B5xM,KAAKg5O,iBACLh5O,KAAKorM,cAAe,EAExB,EAEQ,YAAA6tC,aAAR,SAAqBM,QAAA,IAAAA,MAAA,IACZv5O,KAAKqqN,YACVrqN,KAAK6xM,gBAAkB,CAAC,EACxB7xM,KAAK64O,cAAchlN,SAAS0lN,GAC5Bv5O,KAAKg5O,iBAET,EAEQ,YAAAA,eAAR,WACI,GAAKh5O,KAAK85I,YACL95I,KAAK6xM,gBAAgBI,aAAgBjyM,KAAKqqN,WAA/C,CACA,IAAItY,EAAU/xM,KAAK6xM,gBAAgBI,YAC/BunC,EAAex5O,KAAK6xM,gBAAgBqI,eACpCu/B,EAAez5O,KAAK6xM,gBAAgBsI,eACpCn6M,KAAK6xM,gBAAgBoI,gBAAkBj6M,KAAK6xM,gBAAgBoI,eAAe1kN,OAAS,KAC/Ew8M,EAAU,KAAO/xM,KAAK6xM,gBAAgBoI,gBAAgB1kN,OAAS,GAChEw8M,EAAUA,EAAU,KAAO/xM,KAAK6xM,gBAAgBoI,gBAEhDu/B,EAAex5O,KAAK6xM,gBAAgBoI,eACpCw/B,EAAgBA,EAAqDz5O,KAAK6xM,gBAAgBqI,eAAiB,IAAMu/B,EAAlFz5O,KAAK6xM,gBAAgBqI,iBAI5Dl6M,KAAK85I,UAAUtiJ,IAAIwI,KAAKo5O,SAAW,WAAWvlN,SAASk+K,GACvD/xM,KAAK85I,UAAUtiJ,IAAIwI,KAAKo5O,SAAW,gBAAgBvlN,SAAS2lN,GAC5Dx5O,KAAK85I,UAAUtiJ,IAAIwI,KAAKo5O,SAAW,gBAAgBvlN,SAAS4lN,GAC5Dz5O,KAAK85I,UAAUtiJ,IAAIwI,KAAKo5O,SAAW,QAAQvlN,SAAS7zB,KAAK6xM,gBAAgBuI,MACzEp6M,KAAK85I,UAAUtiJ,IAAIwI,KAAKo5O,SAAW,SAASvlN,SAAS7zB,KAAK6xM,gBAAgBn7K,OAC1E12B,KAAK85I,UAAUtiJ,IAAIwI,KAAKo5O,SAAW,cAAcvlN,SAAS7zB,KAAK6xM,gBAAgBwI,SAC/Er6M,KAAK85I,UAAUtiJ,IAAIwI,KAAKo5O,SAAW,WAAWvlN,SAAS7zB,KAAK6xM,gBAAgB5rB,aAC5EjmL,KAAK85I,UAAUtiJ,IAAIwI,KAAKo5O,SAAW,YAAYvlN,SAAS7zB,KAAK6xM,gBAAgB6nC,M,CACjF,EAEQ,YAAAR,eAAR,WACI,IAAIthP,EAAQoI,KAAKmmC,QAAQ+yK,gBAAgBl5M,KAAK6xM,iBAG9C,OAFAj6M,EAAQA,GAAgB,SACxBoI,KAAK64O,cAAchlN,SAASj8B,GACrBA,CACX,EAlJA,IADC,kB,yDAID,IADC,kB,0DAID,IADC,kB,kEAID,IADC,kB,kEAID,IADC,kB,sDAID,IADC,kB,iEAID,IADC,kB,2DAID,IADC,kB,iEAID,IADC,kB,yDAID,IADC,kB,6DAID,IADC,kB,iEAID,IADC,kB,0DAID,IADC,kB,2DAUD,IADC,kB,iBACuB,K,sCAhDf+hP,EAAyB,IANrC,oBAAU,CACPtxO,SAAU,qBACVC,SAAU,EAAQ,MAClBC,OAAQ,CAAC,EAAQ,OACjBC,gBAAiB,0BAAwBC,S,wBAqDT,IACX,MApDZkxO,E,CAAb,G,opBCUA,cAuCI,WACYxzM,EACA6rM,EACAp3B,EACAlyM,EACA2xB,GAJA,KAAA8L,UACA,KAAA6rM,oBACA,KAAAp3B,4BACA,KAAAlyM,aACA,KAAA2xB,iBAnCL,KAAAs5K,kBAA8B,GAE9B,KAAAsL,cAAiC,GAEjC,KAAAxL,qBAAsB,EAEtB,KAAA/sE,eAAgB,EAEhB,KAAAyhE,mBAAoB,EAEpB,KAAAoP,wBAA+E,GAE/E,KAAA47B,iBAAkB,EAIlB,KAAAyG,eAAqD,IAAI,eAEzD,KAAAC,cAA8C,IAAI,eAElD,KAAAC,cAAuC,IAAI,eAC3C,KAAAC,iBAAkB,EAClB,KAAAxwB,oBAAqB,EAErB,KAAA7Z,iBAAkB,EAClB,KAAAsX,oBAAqB,EACrB,KAAArtC,YAAc,EACb,KAAAq6B,sBAAiD,GAUrDh0M,KAAKo7M,WAAap7M,KAAK46M,0BAA0BlJ,gBACrD,CA2OJ,OAzOW,YAAAsoC,uBAAP,SAA8BC,GAC1Bj6O,KAAK+5O,iBAAkB,EACvB/5O,KAAK65O,cAAcjwO,KAAKqwO,EAC5B,EAEO,YAAAlvB,mBAAP,WACI/qN,KAAKq6B,eAAen4B,YAAY,iDAChClC,KAAKupN,oBAAsBvpN,KAAKupN,kBACpC,EAEO,YAAAntH,SAAP,WACIp8F,KAAK85O,cAAclwO,MAAK,EAC5B,EAEO,YAAAk6M,aAAP,SAAoBrrC,GAApB,WACSA,IACDA,EAAgBz4K,KAAK8mN,qBAAqBlvN,OAE9C6gL,EAAgBA,EAActxK,OAC9B,IAAIyyM,EAAkB55M,KAAK46M,0BAA0B7H,cAAct6B,GAE/Dz4K,KAAKk6O,mBAAmBtgC,EAAgB3G,mBAAqBjzM,KAAKm6O,sBAAsB1hE,GACxFz4K,KAAK87M,YAAY,CAAEv0K,QAAS,+DAAgEiwK,WAAW,IAItGoC,IACL55M,KAAKgnN,oBAAqB,EAC1BhnN,KAAKmmC,QAAQwzK,uBAAuBC,GAC/B/3L,WAAU,SAAC4rC,GACR,IAAM14D,EAAO04D,EAAI2sL,mBAGjB,GAFA,EAAKpzB,oBAAqB,EAC1B,EAAK3/K,aAAe,KAChBtyC,GAAQA,EAAKQ,OAAQ,CACrB,GAAI,EAAK4kP,sBAAsBplP,EAAK,GAAG49M,aAAe,EAAKwnC,sBAAsBplP,EAAK,GAAG0E,gBAAkB1E,EAAK,GAAGyjL,iBAE/G,YADA,EAAKsjC,YAAY,CAAEv0K,QAAS,+DAAgEiwK,WAAW,IAG3G,IAAIyH,EAAgBlqN,EAAK,GACzB,GAAIA,EAAKQ,OAAS,EAAG,CACjB,IAAI8kP,EAActlP,EAAKkH,QAAO,SAAApE,GAAK,OAAiB,IAAjBA,EAAEu6M,UAAF,IACnC6M,EAAgBo7B,GAAeA,EAAY9kP,QAAU,EAAI8kP,EAAY,GAAKp7B,C,CAE9EA,EAAcnM,mBAAqBr6B,EACnC,EAAK6hE,8BAA8Br7B,EAAerF,EAAgB3G,iB,CAE1E,IACR,EAEO,YAAA4V,aAAP,SAAoBn/L,GAChB1pB,KAAKupN,oBAAqB,EAC1BvpN,KAAK8mN,qBAAqBjzL,SAASnK,EAAMo/L,aACpCp/L,EAAMo/L,aACX9oN,KAAK8jN,aAAap6L,EAAMo/L,YAC5B,EAEO,YAAAjhM,gBAAP,SAAuB6B,GAAvB,WACQksJ,EAAUlsJ,EAAM30B,KAAK49M,WAAajpL,EAAM30B,KAAK49M,WAAajpL,EAAM30B,KAAK0jL,cACzEz4K,KAAK87M,YACD,CACIv0K,QAAS,gBAAgBquI,EAAO,yKAGhCd,YAAa,CACTjuJ,OAAQ7mB,KAAK46M,0BAA0BrI,yBAAyBt2M,QAAO,SAAAgvF,GAAK,MAAU,WAAVA,EAAE/yF,GAAF,IAC5EnD,KAAM,CAAC20B,EAAM30B,OAEjBq0L,cAAe,wBACfrG,gBAAgB,EAChBjiL,MAAO,qBAEX,GACF+gB,WAAU,SAAA4rC,GACR,GAAIA,EAAIyjJ,qBAAuB,EAAKkK,WAAY,CAC5C,IAAI,EAAe1xL,EAAM30B,KAAKi+M,mBAC9B,EAAKW,kBAAoB,EAAKA,kBAAkB13M,QAAO,SAAAs+O,GAAM,OAAAA,IAAO,CAAP,IAC7D,EAAKC,sBAAsB9wN,EAAM30B,KAAM,GACvC,EAAKi/M,sBAAwB,EAAKA,sBAAsB/3M,QAAO,SAAAw+O,GAAO,OAAAA,EAAIznC,qBAAuB,CAA3B,IACtE,EAAKl+B,YAAc,CACfjuJ,OAAQ,EAAKiuJ,YAAYjuJ,OACzB9xB,KAAM,EAAK+/K,YAAY//K,KAAKkH,QAAO,SAAC/E,GAAW,OAAAA,EAAE87M,qBAAuB,CAAzB,KAEnD,EAAK0nC,6BACL,EAAK9/B,0BAA0BlH,iCAAiC,EAAKC,mBACrE,EAAKiH,0BAA0BhH,0BAA0B,EAAK9+B,aAC9D,EAAK8lC,0BAA0B7G,uCAAuC,EAAKC,uBACzC,IAAjC,EAAKl/B,YAAY//K,KAAKQ,QAAgB,EAAKilN,YAAc,EAAKmgC,qB,CAEvE,GACJ,EAEO,YAAAC,+BAAP,SAAsC7lP,GAAtC,WACIA,EAAK8lB,SAAQ,SAAAggO,GACT,EAAKlnC,kBAAkB99M,KAAKglP,EAAW7nC,oBACvC,EAAKiM,cAAcppN,KAAK,CACpBy4D,YAAausL,EAAWvsL,YACxBsnH,QAASilE,EAAWpiE,cACpB8C,YAAas/D,EAAWt/D,YACxBu/D,uBAAwBD,EAAWC,uBACnC9nC,mBAAoB6nC,EAAW7nC,qBAEnC,EAAKl+B,YAAY//K,KAAK+lF,QAAQ+/J,EAClC,IACA76O,KAAK80K,YAAc,MAAK90K,KAAK80K,aAC7B90K,KAAK46M,0BAA0BhH,0BAA0B5zM,KAAK80K,aAC9D90K,KAAK46M,0BAA0BlH,iCAAiC1zM,KAAK2zM,mBACrE3zM,KAAK06O,6BACL16O,KAAK+6O,UAAUhmP,EAAOA,EAAKQ,OAAS,GACpCyK,KAAKgyO,kBAAkBlvN,cAC3B,EAEO,YAAA6sL,WAAP,WACI3vM,KAAK0vM,iBAAkB,EACvB1vM,KAAK25K,YAAc,EACnB35K,KAAKgyO,kBAAkBlvN,cAC3B,EAEQ,YAAAi4N,UAAR,SAAkBnvL,GAAlB,gBAAkB,IAAAA,MAAA,GACd5rD,KAAK0vM,iBAAkB,EACvB1vM,KAAK25K,YAAc/tH,EACnBlkC,YAAW,WAAQ,EAAKioL,YAAc,GAAG,IAC7C,EAEQ,YAAAgrC,oBAAR,sBACS36O,KAAK80K,YAAY//K,KAAKQ,QACvByK,KAAK87M,YACD,CACIv0K,QAAS,kKAET6hJ,cAAe,2BACfrG,gBAAgB,EAChBjiL,MAAO,qBAEX,GACFa,KACE,OAAAwiJ,GAAA,IAAU,SAAC51G,GACP,cAAAm5J,GAAA,IAAI,WAAM,OAAAn5J,EAAa2iK,kBAAb,GACN,EAAK/qK,QAAQo0K,eAAe,EAAKC,YADrC,KAIN34L,WAAU,WAAM,SAAKnZ,WAAWG,MAAMsP,mBAAmBT,eAAeX,OAAO5M,UAA/D,GAE1B,EAEQ,YAAA2xM,YAAR,SAAoB/mN,EAA4By+G,QAAA,IAAAA,OAAA,GAC5C,IAAI24E,EAAa,SAA8Bp3L,GAAI,CAAEs0L,aAAc,WACnE,OAAOrpL,KAAK46M,0BAA0B5lE,kBAAkBm3C,EAAe34E,GAClE7xG,KAAK,OAAAqrC,EAAA,IAAU,SAAAhC,GAAU,OAAAA,EAAOgE,QAAP,IAAkB,aAAI,SAAAT,GAAgB,OAAAA,CAAA,IACxE,EAEQ,YAAAysM,oBAAR,SAA4BviE,EAAuB1jL,GAC/CA,EAAOiL,KAAK46M,0BAA0BnI,sBAAsB19M,GAC5DiL,KAAK2zM,kBAAkB99M,KAAK4iL,GAC5Bz4K,KAAK0/M,YAAY3qN,GACjBiL,KAAK46M,0BAA0BhH,0BAA0B5zM,KAAK80K,aAC9D90K,KAAK46M,0BAA0BlH,iCAAiC1zM,KAAK2zM,mBACrE3zM,KAAK06O,6BACL16O,KAAK+6O,YACL/6O,KAAKi7O,mBACT,EAEQ,YAAAv7B,YAAR,SAAoB3qN,GAChBiL,KAAK80K,YAAY//K,KAAK+lF,QAAQ/lF,GAC9BiL,KAAK80K,YAAc,MAAK90K,KAAK80K,aAC7B90K,KAAKi/M,cAAcppN,KAAK,CACpBy4D,YAAav5D,EAAKu5D,YAClBsnH,QAAS7gL,EAAK49M,WACdp3B,YAAaxmL,EAAKwmL,YAClBu/D,uBAAwB/lP,EAAK+lP,uBAC7B9nC,mBAAoBj+M,EAAKi+M,qBAE7BhzM,KAAKgyO,kBAAkBlvN,cAC3B,EAEQ,YAAAo3N,mBAAR,SAA2BzhE,GAEvB,OADAz4K,KAAKi7O,sBACEj7O,KAAK2zM,kBAAkBpoM,MAAK,SAAA3T,GAAS,OAAAA,IAAU6gL,CAAV,GAChD,EAEQ,YAAAwiE,kBAAR,WACIj7O,KAAK8mN,qBAAqBjzL,SAAS,GACvC,EAEQ,YAAAymN,8BAAR,SAAsCvlP,EAAsC0jL,GAA5E,WAEI,GADAz4K,KAAK0vM,iBAAkB,EACC,IAApB36M,EAAKq9M,WAAT,CAII,MAA6BpyM,KAAK46M,0BAA0BzI,kBAAkBp9M,EAAKq9M,WAAYr9M,GAA7FwyC,EAAO,UAAE6hJ,EAAa,gBAC5BppL,KAAK87M,YAAY,CAAEv0K,QAAO,EAAEiwK,WAAW,EAAOpuB,cAAa,IAAIvnK,WAAU,SAAA4rC,GACrE,IAAKA,EAAI/zC,YAAa,CAClB,GAAwB,IAApB3kB,EAAKq9M,WAYL,YADA,EAAK4oC,oBAAoBviE,EAAe1jL,GAVxC,EAAK+mN,YAAY,EAAKlB,0BAA0BtD,2BAA2B,EAAKC,0BAC3E11L,WAAU,SAAAw2L,GACP,IAAKA,EAAc3+L,YAIf,OAHA,EAAKs6L,sBAAsBn+M,KAAK,EAAK+kN,0BAA0BxC,yBAAyBC,EAAetjN,IACvG,EAAK6lN,0BAA0B7G,uCAAuC,EAAKC,4BAC3E,EAAKgnC,oBAAoBviE,EAAe1jL,EAGhD,G,CAMhB,G,MArBIiL,KAAKg7O,oBAAoBviE,EAAe1jL,EAsBhD,EAEQ,YAAAolP,sBAAR,SAA8B1hE,GAC1B,OAAOz4K,KAAK80K,YAAY//K,KAAKwW,MAAK,SAACrU,GAC/B,OAAQA,EAAEuhL,cAAcpyH,QAAQ,IAAK,MAAQoyH,EAAcpyH,QAAQ,IAAK,KACjEnvD,EAAEy7M,aAAel6B,EAAcpyH,QAAQ,IAAK,KAC5CnvD,EAAEuC,gBAAkBvC,EAAEshL,kBAAoBC,EAAcpyH,QAAQ,IAAK,GAChF,GACJ,EAEQ,YAAAq0L,2BAAR,WACI,IAAI54F,EAA6B,CAC7BuxD,SAAUrzM,KAAK2zM,kBACfK,sBAAuBh0M,KAAKg0M,sBAC5BiL,cAAej/M,KAAKi/M,eAExBj/M,KAAK45O,eAAehwO,KAAKk4I,EAC7B,EAEQ,YAAA04F,sBAAR,SAA8BzlP,EAAW6gL,GACrC51K,KAAKi/M,cAAgBj/M,KAAKi/M,cAAchjN,QAAO,SAAA+9K,GAAM,OAAAA,EAAGg5B,qBAAuBp9B,CAA1B,IACjD7gL,EAAK0jN,qCAAuCz4M,KAAKw6M,YACjDx6M,KAAKmmC,QAAQs0K,4BAA4Bz6M,KAAKw6M,WAAYzlN,EAAK0jN,qCAAqC52L,WAE5G,EAtRA,IADC,kB,iBAC4B,M,2CAE7B,IADC,kB,kEAGD,IADC,kB,4DAGD,IADC,kB,iEAGD,IADC,kB,6DAGD,IADC,kB,oEAGD,IADC,kB,8DAGD,IADC,kB,kEAGD,IADC,kB,uEAGD,IADC,kB,gEAGD,IADC,kB,2DAGD,IADC,mB,iBACsB,iB,qCAEvB,IADC,mB,iBACqB,iB,oCAEtB,IADC,mB,iBACqB,iB,oCA7Bbq5N,EAAgC,IAN5C,oBAAU,CACP7yO,SAAU,4BACVC,SAAU,EAAQ,MAClBC,OAAQ,CAAC,EAAQ,OACjBC,gBAAiB,0BAAwBC,S,wBA0CpB,GACU,oBACQ,GACf,IACI,QA5CnByyO,E,CAAb,G,+yBCCA,cA6BI,WACqBxyO,EACTy9B,EACAg1M,EACA9gN,EACA7X,GALZ,WACqB,KAAA9Z,aACT,KAAAy9B,UACA,KAAAg1M,kBACA,KAAA9gN,iBACA,KAAA7X,oBA5BL,KAAAu3N,iBAAkB,EAGlB,KAAAqB,qBAA0C,IAAI,eAC9C,KAAAruC,gBAAiB,EACjB,KAAAsuC,YAAgD,GAChD,KAAAjuK,aAAiD,GAEjD,KAAA0zE,oBAAqB,EACrB,KAAAuuD,iBAAmB,gBACnB,KAAAl7H,WAAa,IAAI,IAAY,IAE7B,KAAA9mD,gBAA+B,CAClC,CAAEn1B,IAAK,QAASN,MAAO,QAASg2B,UAAU,GAC1C,CAAE11B,IAAK,SAAUN,MAAO,cAAeg2B,UAAU,GACjD,CAAE11B,IAAK,UAAWN,MAAO,eAAgBg2B,UAAU,GACnD,CAAE11B,IAAK,YAAaN,MAAO,eAAgBg2B,UAAU,GACrD,CAAE11B,IAAK,YAAaN,MAAO,eAAgBg2B,UAAU,IAIlD,KAAAtT,aAAiD,GASpD,IAAMqrE,EAAiB,OAAAplC,GAAA,GACnB,OAAAr3C,GAAA,GAAG,IACHlJ,KAAKm0E,WAAWvgD,aACXjyB,KACG,OAAA6kB,GAAA,GAAa,KACb,OAAAw9E,EAAA,OAGZhkG,KAAKumB,mBAAqBo/D,EAAe9jE,WAAU,SAACijE,GAChD,EAAK8+F,YAAY9+F,GACjB,EAAKtiE,kBAAkBM,cAC3B,GACJ,CAgMJ,OA9LW,YAAAvZ,SAAP,WACIvJ,KAAKs7O,2BACT,EAEO,YAAAv4N,YAAP,SAAmBwwN,GACXA,EAAagI,sBAAwBv7O,KAAKq7O,aAAer7O,KAAKq7O,YAAY9lP,QAC1EyK,KAAKw7O,uBAAuBx7O,KAAKu7O,qBAAsBv7O,KAAKq7O,YAEpE,EAEO,YAAAr5O,YAAP,WACIhC,KAAKumB,mBAAmBtkB,aAC5B,EAEO,YAAAutM,eAAP,WACIxvM,KAAK0I,WAAWG,MAAMsP,mBAAmBX,oBAAoBrN,UACjE,EAEO,YAAA0d,gBAAP,SAAuB6B,GAEvB,EAEO,YAAA+xN,qBAAP,WACIz7O,KAAK+sM,gBAAiB,EACtB/sM,KAAKw7O,uBAAuBx7O,KAAKsa,aAAald,KAAI,SAAAvF,GAAK,OAAAA,EAAEm7M,kBAAF,IAAuBhzM,KAAKotE,cACnFptE,KAAKo7O,qBAAqBxxO,KAAK5J,KAAKsa,cACpCta,KAAKq7O,YAAYxgO,SAAQ,SAAAhjB,GAAK,OAAAA,EAAEuyB,aAAc,CAAhB,IAC9BpqB,KAAKsa,aAAe,EACxB,EAEO,YAAAohM,eAAP,SAAsBhyL,GAClB,IAAIgyN,EAAoDhyN,EAAMztB,QAAO,SAAApE,GAAK,OAAAA,EAAEuyB,WAAF,IAC1EpqB,KAAKsa,aAAe,kBAAO,GAAIta,KAAKsa,aAAiBohO,GAAkB,wBAC3E,EAEO,YAAA93D,YAAP,SAAmB9+F,GAEf,GADA9kF,KAAK8gJ,oBAAqB,EACrBh8D,GAASA,EAAKvvF,QAAWyK,KAAKq7O,YAAY9lP,OAExC,CACH,IAAI41B,EAAanrB,KAAKm7O,gBAAgBviC,mBAAmB9zH,EAAM9kF,KAAK27O,kBAAmB37O,KAAKotE,cAC5FptE,KAAK80K,YAAc,CAAEjuJ,OAAQ7mB,KAAK27O,kBAAmB5mP,KAAMo2B,E,MAH3DnrB,KAAK80K,YAAc,CAAEjuJ,OAAQ7mB,KAAK27O,kBAAmB5mP,KAAMiL,KAAKotE,cAKpEptE,KAAK8gJ,oBAAqB,EAC1B9gJ,KAAKwiB,kBAAkBM,cAC3B,EAEO,YAAAw4N,0BAAP,sBACIt7O,KAAK8gJ,oBAAqB,EAC1B9gJ,KAAKmmC,QAAQ2nK,2BAA2BjsL,WAAU,SAACzrB,GAC/C,EAAKwlP,kBAAkBxlP,GACvB,EAAK0+K,YAAc,CAAEjuJ,OAAQ,EAAK80N,kBAAmB5mP,KAAM,EAAKq4E,cAChE,EAAK0zE,oBAAqB,EAC1B,EAAKt+H,kBAAkBM,cAC3B,GACJ,EAEQ,YAAA04N,uBAAR,SAA+B7sC,EAAsB/oB,GAC5C+oB,GAAeA,EAAWp5M,QAG3ByK,KAAKotE,aAAew4G,EAAS3pL,QAAO,SAAApE,GAAK,OAA8C,IAA9C82M,EAAWl0L,QAAQ5iB,EAAEm7M,mBAArB,IACzChzM,KAAK80K,YAAc,CAAEjuJ,OAAQ7mB,KAAK27O,kBAAmB5mP,KAAMiL,KAAKotE,eAHhEptE,KAAK80K,YAAc,CAAEjuJ,OAAQ7mB,KAAK27O,kBAAmB5mP,KAAMiL,KAAKq7O,aAKpEr7O,KAAKwiB,kBAAkBM,cAC3B,EAEQ,YAAA64N,gBAAR,WA2FI,MA1FiB,CACb,CACIjsL,YAAa,GACbx3D,IAAK,GACLi8B,aAAc,IACd7J,SAAU,wBACVuxN,WAAW,GAEf,CACI3jP,IAAK,YACLw3D,YAAa,aACbv7B,aAAc,IACd2mB,cAAc,EACd2kI,cAAc,GAElB,CACIvnL,IAAK,6BACLw3D,YAAa,2BACbv7B,aAAc,IACd2mB,cAAc,EACd2kI,cAAc,GAElB,CACIvnL,IAAK,mBACLi8B,aAAc,IACdu7B,YAAa,QACb5U,cAAc,EACd2kI,cAAc,EACdjiL,KAAM,QAEV,CACItF,IAAK,sBACLw3D,YAAa,SACb5U,cAAc,EACd3mB,aAAc,IACdsrJ,cAAc,EACd6uB,cAAe,gBACfC,eAAgB,YAChB9jL,WAAY,CACR,CACIvyB,IAAK,iBACLwyB,MAAO,wBAInB,CACIxyB,IAAK,GACLw3D,YAAa,kBACb8+I,UAAW,CAAC,CAAEt2M,IAAK,mBAAoB,CAAEA,IAAK,oBAC9C4iD,cAAc,EACd3mB,aAAc,IACdsrJ,cAAc,GAElB,CACIvnL,IAAK,0BACLw3D,YAAa,6BACbv7B,aAAc,IACd2mB,cAAc,EACd2kI,cAAc,GAElB,CACIvnL,IAAK,mBACLw3D,YAAa,SACb5U,cAAc,EACd3mB,aAAc,IACdsrJ,cAAc,GAElB,CACIvnL,IAAK,eACLw3D,YAAa,WACb5U,cAAc,EACd3mB,aAAc,IACdsrJ,cAAc,GAGlB,CACIvnL,IAAK,kBACLw3D,YAAa,YACb5U,cAAc,EACd3mB,aAAc,IACdsrJ,cAAc,GAElB,CACIvnL,IAAK,qBACLw3D,YAAa,iBACb5U,cAAc,EACd3mB,aAAc,IACdsrJ,cAAc,IAGJriL,KAAI,SAAAvF,GAAK,OAAAA,CAAA,GAC/B,EAEQ,YAAA+jP,kBAAR,SAA0B7mP,GAA1B,WACI,GAAKA,GAASA,EAAKQ,OAAnB,CACA,IAAIgkL,EAAexkL,EAAKqI,KAAI,SAAAvF,GACxB,IAAI+9K,EAAU/9K,EAAE4gL,eAAiB5gL,EAAE4gL,cAAcljL,OAASsC,EAAE4gL,cAAgB5gL,EAAEo3M,oBAI9E,GAHAp3M,EAAE4gL,cAAgB7C,EAClB/9K,EAAEm7M,mBAAqBn7M,EAAE86M,WAAa/8B,EACtC/9K,EAAEo7D,mBAAqBxiC,EAAO54B,EAAEo7D,oBAAoBprD,QAAU4oB,EAAO54B,EAAEo7D,oBAAoBliC,OAAO,qBAAuB,GACrHl5B,EAAEi3M,qBAAsB,CACxB,IAAIC,EAAgD,CAChDC,UAAW,iBACXV,eAAe,EACfW,oBAAqBp3M,EAAEq3M,+BAE3Br3M,EAAEgX,SAAW,CAACkgM,E,CAQlB,OANIl3M,EAAEs3M,wBACFt3M,EAAEo3M,oBAAsBr5B,EACxB/9K,EAAE4gL,cAAgB7C,EAClB/9K,EAAEy2M,eAAgB,EAClBz2M,EAAEm3M,UAAY,cAEXn3M,CACX,IACAmI,KAAKq7O,YAAc9hE,EAAat9K,QAAO,SAAApE,GAAK,OAACA,EAAEikP,YAAH,IAC5C97O,KAAKotE,aAAeptE,KAAKq7O,YAAYj+O,KAAI,SAAAvF,GAAK,OAAAA,CAAA,IAC1CmI,KAAKu7O,uBACLv7O,KAAKotE,aAAeptE,KAAKotE,aAAanxE,QAAO,SAAApE,GAAK,OAA6D,IAA7D,EAAK0jP,qBAAqB9gO,QAAQ5iB,EAAEm7M,mBAApC,I,CAE1D,EA5OA,IADC,kB,oEAID,IADC,kB,gEAID,IADC,mB,iBAC4B,iB,2CATpB+oC,EAAkC,IAN9C,oBAAU,CACP1zO,SAAU,8BACVC,SAAU,EAAQ,MAClBC,OAAQ,CAAC,EAAQ,OACjBC,gBAAiB,0BAAwBC,S,wBAgCR,IACZ,GACQ,GACD,KACG,uBAlCtBszO,E,CAAb,G,uUCsEA,2BAAsC,QAAzBC,EAAsB,IAtDlC,mBAAS,CACNjyO,aAAc,CACV,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEJC,QAAS,CACL,IACA,GACA,GACA,GACA,KACA,IACA,KACA,GACA,GACA,GACA,GACA,KACA,KACA,sBACA,MAEJnT,QAAS,CACL,IAEJqT,UAAW,CACP,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEJD,gBAAiB,CACb,GACA,OAGK+xO,E,CAAb,G,ubC9EA,cAoBI,WACYhZ,EACA3yD,EACA3nK,EACAic,GAJZ,WACY,KAAAq+M,sBACA,KAAA3yD,wBACA,KAAA3nK,aACA,KAAAic,gBArBL,KAAAgvJ,WAA6C,CAChD,CAAEz8J,GAAI,EAAGtf,MAAO,8BAChB,CAAEsf,GAAI,EAAGtf,MAAO,4BAChB,CAAEsf,GAAI,EAAGtf,MAAO,qBAEb,KAAAqkP,cAA6B,IAAI,IAAY,IAO7C,KAAAC,eAAiB,EAGjB,KAAA5tD,gBAAwC,IAAI,eAQ/CtuL,KAAKi8O,cAAcroN,aAAa/R,WAAU,WAAQ,EAAKs6N,YAAc,GAAI,EAAKx3N,cAAc7B,cAAgB,GAChH,CAgHJ,OA9GW,YAAAs5N,sBAAP,SAA6B/wO,GACpBA,GAAwB,IAAhBA,EAAK9V,SAClByK,KAAKk8O,eAAiB7wO,EAAK,GAAG6L,GAC9BlX,KAAKq8O,aACuB,IAAxBr8O,KAAKk8O,gBACLl8O,KAAKi8O,cAAc1wM,e7BZpB,SAAC9kC,GACJ,IAAM7O,EAAQ6O,EAAQ7O,MAAMuP,OAE5B,OAAKvP,EAIDA,IAAW,iBAAiBujB,KAAKvjB,GAC1B,CAAEsrO,WAAY,wCAGrBtrO,GAA2B,IAAjBA,EAAMrC,QAAiC,KAAjBqC,EAAMrC,OAInC,CAAE2tO,WAAY,gDAHV,KARA,IAYf,I6BHQljO,KAAKs8O,YAAc,wBACnBt8O,KAAKu8O,gBAAkB,iBACvBv8O,KAAK8sN,UAAY,IACc,IAAxB9sN,KAAKk8O,gBACZl8O,KAAKi8O,cAAc1wM,e7BGpB,SAAC9kC,GACJ,IAAM7O,EAAQ6O,EAAQ7O,MAAMuP,OAE5B,OAAKvP,EAIDA,IAAW,kBAAkBujB,KAAKvjB,GAC3B,CAAEsrO,WAAY,uCAGrBtrO,GAAUA,EAAMrC,OAAS,GAAKqC,EAAMrC,QAAU,GACvC,KAGJ,CAAE2tO,WAAY,qDAXV,IAYf,I6BlBQljO,KAAKs8O,YAAc,sBACnBt8O,KAAKu8O,gBAAkB,kBACvBv8O,KAAK8sN,UAAY,KAGjB9sN,KAAKi8O,cAAc1wM,cAAc,aAAiB,KAClDvrC,KAAKs8O,YAAc,sBACnBt8O,KAAKu8O,gBAAkB,qBACvBv8O,KAAK8sN,UAAY,IAGzB,EAEO,YAAA7gN,OAAP,SAAcgX,GAOV,GAN4B,IAAxBjjB,KAAKk8O,gBAAwBl8O,KAAKi8O,cAAc56L,OAChDrhD,KAAKsjO,qBAEmB,IAAxBtjO,KAAKk8O,gBAAwBl8O,KAAKi8O,cAAc56L,OAChDrhD,KAAKyjO,sBAEmB,IAAxBzjO,KAAKk8O,gBAAwBl8O,KAAKi8O,cAAc56L,MAAO,CACvD,IAAKrhD,KAAKi8O,cAAcrkP,MAGpB,OAFAoI,KAAKm8O,YAAc,6CACnBn8O,KAAK2kB,cAAc7B,eAGvB9iB,KAAKsuL,gBAAgB1kL,KAAK5J,KAAKi8O,cAAcrkP,M,CAErD,EAEO,YAAA0rO,mBAAP,sBACItjO,KAAKm8O,YAAc,GAEdn8O,KAAKi8O,cAAcrkP,MAAMuP,QAI9BnH,KAAK8yB,aAAc,EACnB9yB,KAAKqwK,sBAAsBhD,gBAAgBrtK,KAAKi8O,cAAcrkP,MAAMuP,QAC/D0a,WAAU,SAAAzrB,GACFA,EAAOymM,QAQR,EAAKs/C,YAAc/lP,EAAOu8B,UAP1B,EAAK09I,sBAAsB8I,iBAAmB,IAAI51J,GAAA,GAAW,SAAA4sJ,GAAM,OAAAA,EAAGnoI,KAAK5xC,EAAOotO,uBAAf,IACnE,EAAK96N,WACAG,MACAkP,iBACAvB,eACArM,YAIT,EAAK2oB,aAAc,EACnB,EAAKnO,cAAc7B,cACvB,KAlBA9iB,KAAKm8O,YAAc,oCAmB3B,EAEO,YAAA1Y,oBAAP,W,MAAA,OAEIzjO,KAAKm8O,YAAc,GAEnB,IAAMzY,EAAoB1jO,KAAKi8O,cAAcrkP,MAAMyuD,QAAQ,IAAK,IAAIl/C,OAEpE,GAAKu8N,EAAL,CAKA,IAAI1qG,EAAc,GACdtiH,EAAc,EAEfsiH,GAAF,EAA+Bh5H,KAAKgjO,oBAAoBF,2BAA2BY,EAAmB1qG,EAAatiH,IAAtG,YAAEA,EAAW,cAE3B,IAAMitN,EAA2B3jO,KAAKgjO,oBAAoBH,oBAAoBnsN,GAE1EitN,EACA3jO,KAAKm8O,YAAcxY,GAIvB3jO,KAAK8yB,aAAc,EACnB9yB,KAAKqwK,sBAAsBhD,gBAAgBr0C,EAAatiH,GACnDmL,WAAU,SAAAzrB,GACFA,EAAOymM,QAQR,EAAKs/C,YAAc/lP,EAAOu8B,UAP1B,EAAK09I,sBAAsB8I,iBAAmB,IAAI51J,GAAA,GAAW,SAAA4sJ,GAAM,OAAAA,EAAGnoI,KAAK5xC,EAAOotO,uBAAf,IACnE,EAAK96N,WACAG,MACAkP,iBACAtB,cAAcC,GACdvM,YAIT,EAAK2oB,aAAc,EACnB,EAAKnO,cAAc7B,cACvB,I,MA/BA9iB,KAAKm8O,YAAc,gDAgC3B,EAEO,YAAAE,WAAP,WACIr8O,KAAKi8O,cAAcpoN,SAAS,GAChC,EAvIA,IADC,kB,0DAgBD,IADC,mB,iBACuB,iB,sCAlBf2oN,EAA2B,IANvC,oBAAU,CACPn0O,SAAU,uBACVC,SAAU,EAAQ,MAClBC,OAAQ,CAAC,EAAQ,OACjBC,gBAAiB,0BAAwBC,S,wBAuBR,GACE,GACX,IACG,uBAxBlB+zO,E,CAAb,G,uUCyLA,2BAAoC,QAAvBC,EAAoB,IA5GhC,mBAAS,CACN1yO,aAAc,CACV,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEJC,QAAS,CACL,IACA,GACA,GACA,KACA,IACA,KACA,GACA,GACA,GACA,GACA,KACA,KACA,sBACA,KACA,KACA,IAEJE,UAAW,CACP,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,MAEJD,gBAAiB,CACb,GACA,GACA,GACA,GACA,GACA,GACA,GACA,OAGKwyO,E,CAAb,G,ubC1LA,cAMI,WAAYl7O,EAA0BD,EAA4BoH,GAAA,KAAAA,aAC9D,IAAM1D,EAAczD,EAAYyD,YAEhChF,KAAKqoH,SAAWrjH,EAAYrD,KAAK,aAAI,SAAA1H,GAAQ,OAAAA,EAAKgL,SAAS8mI,oBAAd,KAExC,iBAAMzqI,EAASoD,kBAChB1E,KAAKgsI,qBAAuBhnI,EAAYrD,KAAK,aAAI,SAAA1H,GAAQ,OAAAA,EAAKgL,SAASkD,QAAd,KAGjE,CAKJ,OAHW,YAAA84N,eAAP,WACIjhO,KAAK0I,WAAWG,MAAMsB,UAC1B,EAnBSuyO,EAAiB,IAN7B,oBAAU,CACPr0O,SAAU,YACVC,SAAU,EAAQ,MAClBC,OAAQ,CAAC,EAAQ,OACjBC,gBAAiB,0BAAwBC,S,wBAQhB,KAAuB,IAA+B,OANtEi0O,E,CAAb,G,ubCLA,cAOI,aAEA,CACJ,OAPI,IADC,kB,8DAGD,IADC,kB,iEAJQ3W,EAAsB,IANlC,oBAAU,CACP19N,SAAU,iBACVC,SAAU,EAAQ,MAClBC,OAAQ,CAAC,EAAQ,OACjBC,gBAAiB,0BAAwBC,S,4BAEhCs9N,E,CAAb,G,uUCmEA,2BAAsC,QAAzB4W,EAAsB,IA5ClC,mBAAS,CACN5yO,aAAc,CACV,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEJC,QAAS,CACL,IACA,GACA,GACA,GACA,KACA,IACA,KACA,GACA,GACA,GACA,GACA,KACA,KACA,sBACA,KACA,IAEJnT,QAAS,CACL,IAEJqT,UAAW,CACP,GACA,GACA,GACA,IAEJD,gBAAiB,CACb,OAGK0yO,E,CAAb,G,uUCvCM,GAAW,sBAAYC,YAAa,KAE1Cx3O,QAAQoZ,MAAM,6CAA8Co+N,aAExD,GAASC,uBACT,2BAgDJ,+BAAyB,QAAZC,EAAS,IA7CrB,mBAAS,CACN9yO,QAAS,CACL,IACA,IACA,IACA,KACA,IAAsBoiN,UACtB,GAAqBA,UACrB,GACA,GACA,GACA,GACA,KACA,GACA,IACA,GACAD,GACA,KACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEJpiN,aAAc,CACV,GAEJG,UAAW,CACP,CAAE2kC,QAAS,IAAUC,SAAU,IAC/B,CACID,QAAS,IACTgoD,SAAU,GACV50C,OAAO,GAEX,CACIpT,QAAS,IACTgoD,SAAU,GACV50C,OAAO,IAGf86L,UAAW,CAAC,MAEHD,E,CAAb,GC9EA,cAAyBE,gBAAgB,G","file":"app.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([2427,2]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from './deserializers';\r\nexport * from './settings';\r\nexport * from './formatters';\r\nexport * from './comparators';\r\nexport * from './url-builder/url-builder';\r\nexport * from './languages-store';\r\nexport * from './none-value-helper';\r\nexport * from './core.module';\r\n","import { routeSnapshotExtensions } from './route-extensions';\r\nimport { ActivatedRouteSnapshot } from '@angular/router';\r\nimport { SponsorStudySite } from '../sponsor/sites/sponsor-study-site';\r\nimport { CategoryNaturalKey } from '../documents/models/category';\r\nimport { SponsorStudy } from '../sponsor-dashboard/sponsor-study';\r\nimport { Site } from '../sites/site';\r\nimport { User } from '../user/user';\r\nimport { Settings } from '../core/settings';\r\nimport { SponsorStudySiteIdentity } from '../sponsor/sites/sponsor-study-site-identity';\r\n\r\nexport type ProtocolIdParameter = { name: 'protocolId' };\r\nexport type ChildCategoryIdParameter = { name: 'childCategoryId' };\r\nexport type CSiteIdParameter = { name: 'siteId' };\r\nexport type ZcTestCodeParameter = { name: 'zcTestCode' };\r\nexport type StudyUrlParamParameter = { name: 'studyUrlParam' };\r\nexport type CSiteUrlParamParameter = { name: 'siteUrlParam' };\r\nexport type CategoryIdParameter = { name: 'categoryId' };\r\nexport type EditedUserPkParameter = { name: 'editedUserPk' };\r\nexport type ZcSubjectIdParameter = { name: 'zcSubjectId'};\r\n\r\nexport type StudySitesData = { name: 'studySites' };\r\nexport type SelectedStudyData = { name: 'selectedStudy' };\r\nexport type SelectedSiteData = { name: 'selectedSite' };\r\nexport type StudyPermissionsData = { name: 'studyPermissions' };\r\nexport type DrawerBehaviorData = { name: 'drawerBehavior' };\r\nexport type SiteSpecificCategoriesData = { name: 'siteSpecificCategories' };\r\nexport type UserData = { name: 'user' };\r\nexport type TabNameData = { name: 'tabName' };\r\nexport type BoxPlotGroupSelectorData = { name: 'boxPlotGroupSelector'};\r\nexport type BoxPlotXAxisTitle = { name: 'boxPlotXAxisTitle'};\r\nexport type BoxPlotXTickRenderrer = { name: 'boxPlotXTickRenderrer'};\r\nexport type BoxPlotXAxisSortingSelector = { name: 'boxPlotXAxisSortingSelector'};\r\nexport type BoxPlotDataExtraFilter = { name: 'boxPlotDataExtraFilter'};\r\nexport type FilterDefaultDateRange = { name: 'filterDefaultDateRange' };\r\nexport type SponsorSubjectsItemsData = { name: 'sponsorSubjectIdentities' };\r\nexport type StudySiteIdentitiesData = { name: 'studySiteIdentities' };\r\nexport type SelectedSiteIdentityData = { name: 'selectedSiteIdentity' };\r\nexport type SelectedStudyGroup = { name: 'selectedStudyGroup' };\r\n\r\nexport type EQueryIdParameter = { name: 'eQueryId' };\r\nexport type EQueryStageId = { name: 'eQueryStageId'};\r\nexport type AccessionNumber = { name: 'accessionNumber'};\r\n\r\ntype AllRouteParameters =\r\n | ProtocolIdParameter\r\n | ChildCategoryIdParameter\r\n | CSiteIdParameter\r\n | ZcTestCodeParameter\r\n | StudyUrlParamParameter\r\n | CSiteUrlParamParameter\r\n | CategoryIdParameter\r\n | EditedUserPkParameter\r\n | ZcSubjectIdParameter\r\n | TabNameData\r\n | EQueryIdParameter\r\n | EQueryStageId\r\n | AccessionNumber;\r\n\r\ntype AllRouteData =\r\n | StudySitesData\r\n | SelectedStudyData\r\n | SelectedSiteData\r\n | StudyPermissionsData\r\n | DrawerBehaviorData\r\n | SiteSpecificCategoriesData\r\n | UserData\r\n | BoxPlotGroupSelectorData\r\n | BoxPlotXAxisTitle\r\n | BoxPlotXTickRenderrer\r\n | BoxPlotXAxisSortingSelector\r\n | BoxPlotDataExtraFilter\r\n | FilterDefaultDateRange\r\n | SponsorSubjectsItemsData\r\n | StudySiteIdentitiesData\r\n | SelectedSiteIdentityData\r\n | SelectedStudyGroup\r\n ;\r\n\r\ntype ParamName =\r\n T extends { name: infer N }\r\n ? N extends string\r\n ? N\r\n : never\r\n : never;\r\n\r\ntype ParamsType = {\r\n readonly [K in ParamName]: K\r\n};\r\n\r\nexport const routeParams: ParamsType = {\r\n protocolId: 'protocolId',\r\n childCategoryId: 'childCategoryId',\r\n siteId: 'siteId',\r\n zcTestCode: 'zcTestCode',\r\n studyUrlParam: 'studyUrlParam',\r\n siteUrlParam: 'siteUrlParam',\r\n categoryId: 'categoryId',\r\n editedUserPk: 'editedUserPk',\r\n zcSubjectId: 'zcSubjectId',\r\n tabName: 'tabName',\r\n eQueryId: 'eQueryId',\r\n eQueryStageId: 'eQueryStageId',\r\n accessionNumber: 'accessionNumber',\r\n};\r\n\r\nexport type CategoryParameters = ParamName;\r\n\r\nexport const routeData: ParamsType = {\r\n studySites: 'studySites',\r\n selectedStudy: 'selectedStudy',\r\n selectedSite: 'selectedSite',\r\n studyPermissions: 'studyPermissions',\r\n drawerBehavior: 'drawerBehavior',\r\n siteSpecificCategories: 'siteSpecificCategories',\r\n user: 'user',\r\n boxPlotGroupSelector: 'boxPlotGroupSelector',\r\n boxPlotXAxisTitle: 'boxPlotXAxisTitle',\r\n boxPlotXTickRenderrer: 'boxPlotXTickRenderrer',\r\n boxPlotXAxisSortingSelector: 'boxPlotXAxisSortingSelector',\r\n boxPlotDataExtraFilter: 'boxPlotDataExtraFilter',\r\n filterDefaultDateRange: 'filterDefaultDateRange',\r\n sponsorSubjectIdentities: 'sponsorSubjectIdentities',\r\n studySiteIdentities: 'studySiteIdentities',\r\n selectedSiteIdentity: 'selectedSiteIdentity',\r\n selectedStudyGroup: 'selectedStudyGroup',\r\n};\r\n\r\nexport function findProtocolId(route: ActivatedRouteSnapshot): number {\r\n return +routeSnapshotExtensions.findParameter(route, routeParams.protocolId);\r\n}\r\n\r\nexport function findSiteId(route: ActivatedRouteSnapshot): number {\r\n return +routeSnapshotExtensions.findParameter(route, routeParams.siteId);\r\n}\r\n\r\nexport function findEditedUserPk(route: ActivatedRouteSnapshot): number {\r\n return +routeSnapshotExtensions.findParameter(route, routeParams.editedUserPk);\r\n}\r\n\r\nexport function findCategoryId(route: ActivatedRouteSnapshot): CategoryNaturalKey {\r\n return routeSnapshotExtensions.findParameter(route, routeParams.categoryId);\r\n}\r\n\r\nexport function findChildCategoryId(route: ActivatedRouteSnapshot): CategoryNaturalKey {\r\n return routeSnapshotExtensions.findParameter(route, routeParams.childCategoryId);\r\n}\r\n\r\nexport function findStudySites(route: ActivatedRouteSnapshot): SponsorStudySite[] {\r\n return routeSnapshotExtensions.findData(route, routeData.studySites);\r\n}\r\n\r\nexport function findStudySiteIdentities(route: ActivatedRouteSnapshot): SponsorStudySiteIdentity[] {\r\n return routeSnapshotExtensions.findData(route, routeData.studySiteIdentities);\r\n}\r\n\r\nexport function findSelectedStudy(route: ActivatedRouteSnapshot): SponsorStudy {\r\n return routeSnapshotExtensions.findData(route, routeData.selectedStudy);\r\n}\r\n\r\nexport function findSelectedSite(route: ActivatedRouteSnapshot): Site {\r\n return routeSnapshotExtensions.findData(route, routeData.selectedSite);\r\n}\r\n\r\nexport function findTabName(route: ActivatedRouteSnapshot): string {\r\n return routeSnapshotExtensions.findParameter(route, routeParams.tabName);\r\n}\r\n\r\nexport function findUser(route: ActivatedRouteSnapshot): User {\r\n return routeSnapshotExtensions.findData(route, routeData.user);\r\n}\r\n\r\nexport function findFilterDefaultDateRange(route: ActivatedRouteSnapshot): (s: Settings) => number {\r\n return routeSnapshotExtensions.findData<(s: Settings) => number>(route, routeData.filterDefaultDateRange);\r\n}\r\n\r\nexport function findSiteUrlParam(route: ActivatedRouteSnapshot): string {\r\n return routeSnapshotExtensions.findParameter(route, routeParams.siteUrlParam);\r\n}\r\n\r\nexport function findStudyUrlParam(route: ActivatedRouteSnapshot): string {\r\n return routeSnapshotExtensions.findParameter(route, routeParams.studyUrlParam);\r\n}\r\n\r\nexport function findAccessionNo(route: ActivatedRouteSnapshot): string {\r\n return routeSnapshotExtensions.findQueryParams(route, routeParams.accessionNumber);\r\n}\r\n","export * from './models/category';\r\nexport * from './models/default-report-sort';\r\nexport * from './documents-columns/documents-columns';\r\nexport * from './models/dlLink';\r\nexport * from './models/report';\r\nexport * from './models/reports-package';\r\nexport * from './models/reports-read-model';\r\nexport * from './models/tab-category';\r\n\r\nexport * from '../shared/document-downloader/document-downloader';\r\nexport * from './report-downloader';\r\nexport * from './language-link/language-link-ag-renderer.component';\r\nexport * from './categories-storage';\r\nexport * from './unread-reports-storage';","import { TrainingMaterialsReport } from './../../documents/models/report';\r\nimport { ColDef } from 'ag-grid-community';\r\nimport { Moment, duration } from 'moment';\r\nimport { AdminSiteActionActivityReport } from '../../admin/activity-reports/report-types/admin-site-action-activity-report';\r\nimport { CovanceGridColumn, dateRenderer, dateTimeComparator, dateTimeRenderer } from '../../covance-ag-grid';\r\nimport { SponsorSiteActionActivityReport } from '../../sponsor/activity-reports/report-types/sponsor-site-action-activity-report';\r\nimport { AdminLabReportActivityReport } from '../../admin/activity-reports/report-types/admin-lab-report-activity-report';\r\nimport { SponsorLabReportActivityReport } from '../../sponsor/activity-reports/report-types/sponsor-lab-report-activity-report';\r\nimport { SubjectTitleRenderer } from '../../renderer/subject-title-renderer';\r\nimport { AdminLabManualActivityReport } from '../../admin/activity-reports/report-types/admin-lab-manual-activity-report';\r\nimport { SponsorLabManualActivityReport } from '../../sponsor/activity-reports/report-types/sponsor-lab-manual-activity-report';\r\nimport { Category } from '../../documents/models/category';\r\nimport { comparators } from '../../core/comparators';\r\nimport { ActivityReportEQuery } from '../../admin/activity-reports/report-types/activity-report-e-query';\r\nimport { ResponseAgeRendererComponent } from '../../covance-ag-grid/renderers/response-age-renderer/response-age-renderer.component';\r\n\r\nexport const userNameColumn: ColDef = {\r\n headerName: 'User Name',\r\n field: 'userName',\r\n filter: 'agTextColumnFilter',\r\n floatingFilterComponentParams: { suppressFilterButton: true }\r\n};\r\n\r\nexport const emailColumn: ColDef = {\r\n headerName: 'Email',\r\n field: 'email',\r\n filter: 'agTextColumnFilter',\r\n floatingFilterComponentParams: { suppressFilterButton: true }\r\n};\r\n\r\nexport const blindingRoleColumn: ColDef = {\r\n headerName: 'Blinding Role',\r\n field: 'blindingRole',\r\n filter: 'agTextColumnFilter',\r\n floatingFilterComponentParams: { suppressFilterButton: true }\r\n};\r\n\r\nexport const activeSiteColumn: ColDef = {\r\n headerName: 'Site Status',\r\n field: 'activeFlag',\r\n filter: 'agTextColumnFilter',\r\n floatingFilterComponentParams: { suppressFilterButton: true }\r\n};\r\n\r\nexport const studyRoleColumn: ColDef = {\r\n headerName: 'Study Role',\r\n field: 'studyRole',\r\n filter: 'agTextColumnFilter',\r\n floatingFilterComponentParams: { suppressFilterButton: true }\r\n};\r\n\r\nexport const countryColumn: ColDef = {\r\n headerName: 'Country',\r\n field: 'country',\r\n filter: 'agTextColumnFilter',\r\n floatingFilterComponentParams: { suppressFilterButton: true }\r\n};\r\n\r\nexport const sponsorNameColumn: ColDef = {\r\n field: 'sponsorName',\r\n headerName: 'Sponsor',\r\n filter: 'agTextColumnFilter',\r\n floatingFilterComponentParams: { suppressFilterButton: true }\r\n};\r\n\r\nexport const protocolNameColumn: ColDef = {\r\n headerName: 'Protocol',\r\n field: 'protocolName',\r\n filter: 'agTextColumnFilter',\r\n floatingFilterComponentParams: { suppressFilterButton: true },\r\n comparator: (a, b) => comparators.mixedStringComparator(a, b),\r\n};\r\n\r\nexport const protocolNumberColumn: ColDef = {\r\n headerName: 'Protocol #',\r\n field: 'protocolNumber',\r\n filter: 'agTextColumnFilter',\r\n floatingFilterComponentParams: { suppressFilterButton: true },\r\n comparator: (a, b) => comparators.mixedStringComparator(a, b),\r\n};\r\n\r\nexport const siteSpecificColumn: ColDef = {\r\n headerName: 'Site Specific',\r\n field: 'sites',\r\n valueGetter: (params: { data: TrainingMaterialsReport }) => (params.data.sites || []).map(s => s.siteNum).join(', '),\r\n filter: 'agTextColumnFilter',\r\n floatingFilterComponentParams: { suppressFilterButton: true },\r\n comparator: (a, b) => comparators.mixedStringComparator(a, b),\r\n};\r\n\r\nexport function getSiteNameColumn(sort: 'asc' | 'desc' | null = null): ColDef {\r\n return {\r\n headerName: 'Site Name',\r\n sort: sort,\r\n field: 'siteName',\r\n filter: 'agTextColumnFilter',\r\n floatingFilterComponentParams: { suppressFilterButton: true }\r\n };\r\n}\r\n\r\nexport function getCompositeSiteColumn(sort: 'asc' | 'desc' | null = null): ColDef {\r\n return {\r\n headerName: 'Site',\r\n sort: sort,\r\n field: 'siteDisplayName',\r\n filter: 'agTextColumnFilter',\r\n floatingFilterComponentParams: { suppressFilterButton: true }\r\n };\r\n}\r\n\r\nexport const visitColumn: ColDef = {\r\n headerName: 'Visit',\r\n field: 'visit',\r\n filter: 'agTextColumnFilter',\r\n};\r\n\r\ntype SiteActionOrLabReportActivityReport = AdminLabReportActivityReport | SponsorLabReportActivityReport | AdminSiteActionActivityReport | SponsorSiteActionActivityReport;\r\n\r\nexport const visitCollectionDateColumn: ColDef = {\r\n headerName: 'Visit Collection Date',\r\n field: 'visitCollectionDate',\r\n filter: 'agTextColumnFilter',\r\n comparator: dateTimeComparator,\r\n valueGetter: (params: { data: SiteActionOrLabReportActivityReport }) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n return dateTimeRenderer({ value: params.data.visitCollectionDate });\r\n },\r\n};\r\n\r\nexport const accessionNumberColumns: ColDef = {\r\n headerName: 'Accession Number',\r\n field: 'accessionNumber',\r\n filter: 'agTextColumnFilter',\r\n};\r\n\r\nexport const subcategoryTitleColumn: ColDef = {\r\n headerName: 'Subcategory',\r\n field: 'subcategoryTitle',\r\n filter: 'agTextColumnFilter',\r\n floatingFilterComponentParams: { suppressFilterButton: true }\r\n};\r\n\r\nexport const subjectNumberAndInitialsColumn: ColDef = {\r\n headerName: 'Subject',\r\n field: 'fakeSubjectId', // Warn: Using fake FieldId here since AG export skips field without FieldId. \r\n valueGetter: (params: { data: SiteActionOrLabReportActivityReport }) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n\r\n const subjectTitle = params.data.zcSubjectId ? SubjectTitleRenderer.renderTitle({\r\n data: {\r\n subjectNumber: params.data.subjectNumber,\r\n initials: params.data.subjectInitials,\r\n screeningNumber: params.data.screeningNumber,\r\n zcSubjectId: params.data.zcSubjectId\r\n }\r\n }) : '';\r\n\r\n return subjectTitle;\r\n },\r\n};\r\n\r\nexport const eQueryIdColumn: ColDef = {\r\n headerName: 'eQueryId',\r\n field: 'eQueryId',\r\n width: 70,\r\n comparator: (a, b) => comparators.numberComparator(a, b)\r\n};\r\n\r\nexport const createDateColumn: ColDef = {\r\n headerName: 'Create Date',\r\n field: 'createDate',\r\n width: 70,\r\n comparator: dateTimeComparator,\r\n valueGetter: (params: { data: ActivityReportEQuery }) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n return dateTimeRenderer({ value: params.data.createDate });\r\n }\r\n};\r\n\r\nexport const responseDateColumn: ColDef = {\r\n headerName: 'Response Date Time',\r\n field: 'responseDate',\r\n width: 70,\r\n comparator: dateTimeComparator,\r\n valueGetter: (params: { data: ActivityReportEQuery }) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n return dateTimeRenderer({ value: params.data.responseDate });\r\n }\r\n};\r\n\r\nexport const issueTypesColumn: ColDef = {\r\n headerName: 'Issue Type',\r\n field: 'issueTypes',\r\n width: 70,\r\n comparator: comparators.stringComparator,\r\n};\r\n\r\nexport const statusColumn: ColDef = {\r\n headerName: 'Status',\r\n field: 'status',\r\n width: 70,\r\n comparator: (a, b) => comparators.numberComparator(a, b)\r\n};\r\n\r\nexport const responseAgeColumn: ColDef = {\r\n headerName: 'Time Before Response',\r\n field: 'responseAge',\r\n width: 70,\r\n cellRendererFramework: ResponseAgeRendererComponent,\r\n comparator: comparators.distanceComparator,\r\n filterValueGetter: (params: { data: ActivityReportEQuery } ) => params.data.responseAge ? params.data.responseAge.formattedValue : null\r\n};\r\n\r\nexport const readDateTimeColumn: ColDef = {\r\n headerName: 'Last Read',\r\n field: 'accessDateTime',\r\n comparator: dateTimeComparator,\r\n valueGetter: (params: { data: any }) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n return dateTimeRenderer({ value: params.data.accessDateTime });\r\n },\r\n filter: 'agTextColumnFilter'\r\n};\r\n\r\nexport const documentTypeColumn: ColDef = {\r\n headerName: 'Document Type',\r\n field: 'documentType',\r\n filter: 'agTextColumnFilter',\r\n};\r\n\r\nexport const projectNumberColumn: ColDef = {\r\n headerName: 'Project',\r\n field: 'projectNumber',\r\n filter: 'agTextColumnFilter',\r\n};\r\n\r\nexport const siteNumberColumn: ColDef = {\r\n headerName: 'Site Number',\r\n field: 'siteNum',\r\n filter: 'agTextColumnFilter',\r\n};\r\n\r\nexport const descriptionColumn: ColDef = {\r\n headerName: 'Description',\r\n field: 'description',\r\n filter: 'agTextColumnFilter',\r\n};\r\n\r\nexport const notifyTypeColumn: ColDef = {\r\n headerName: 'Notify Type',\r\n field: 'notifyType',\r\n filter: 'agTextColumnFilter',\r\n};\r\n\r\nexport const emailDateTimeColumn: ColDef = {\r\n headerName: 'Sent Time',\r\n field: 'emailDateTime',\r\n comparator: dateTimeComparator,\r\n valueGetter: (params: { data: any }) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n return dateTimeRenderer({ value: params.data.emailDateTime });\r\n },\r\n filter: 'agTextColumnFilter'\r\n};\r\n\r\nexport const emailSentToColumn: ColDef = {\r\n headerName: 'Sent To',\r\n field: 'emailSentTo',\r\n filter: 'agTextColumnFilter',\r\n};\r\n\r\nexport const timeBetweenReadAndPosted: ColDef = {\r\n headerName: 'Time Between Read and Posted',\r\n field: 'fakeDateId', // Warn: Using fake FieldId here since AG export skips field without FieldId.\r\n valueGetter: (params: { data: SiteActionOrLabReportActivityReport }) => {\r\n if (!params.data || !params.data.accessDateTime) {\r\n return null;\r\n }\r\n const timeSpan = duration(params.data.accessDateTime.diff(params.data.postedDateTime));\r\n return new TimeBetweenReadAndPosted(Math.floor(timeSpan.asDays()), timeSpan.hours());\r\n },\r\n comparator: (a: TimeBetweenReadAndPosted, b: TimeBetweenReadAndPosted) => {\r\n if (a && !b) {\r\n return 1;\r\n }\r\n if (!a && b) {\r\n return -1;\r\n }\r\n if (!a && !b) {\r\n return 0;\r\n }\r\n if (a.value > b.value) {\r\n return 1;\r\n }\r\n if (a.value < b.value) {\r\n return -1;\r\n }\r\n return 0;\r\n }\r\n};\r\n\r\nclass TimeBetweenReadAndPosted {\r\n private readonly numVal: number;\r\n private readonly strVal: string;\r\n\r\n public get value() {\r\n return this.numVal;\r\n }\r\n\r\n constructor(days: number, hours: number) {\r\n this.numVal = days > 0 ? days * 24 + hours : hours;\r\n this.strVal = days > 0 ? `${days} d ${hours} h` : `${hours} h`;\r\n }\r\n\r\n public toString() {\r\n return this.strVal;\r\n }\r\n}\r\n\r\nexport function buildDateColumn(field: K, label: string, sort: 'asc' | 'desc' | null = null): ColDef {\r\n return {\r\n headerName: label,\r\n sort: sort,\r\n field: field.toString(),\r\n comparator: dateTimeComparator,\r\n valueGetter: (params: { data: T }) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n\r\n return dateRenderer({ value: params.data[field] });\r\n },\r\n floatingFilterComponentParams: { suppressFilterButton: true },\r\n filter: 'agTextColumnFilter'\r\n };\r\n}\r\n\r\nexport function buildDateTimeColumn(field: K, label: string): ColDef {\r\n return {\r\n headerName: label,\r\n field: field.toString(),\r\n comparator: dateTimeComparator,\r\n valueGetter: (params: { data: T }) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n\r\n return dateTimeRenderer({ value: params.data[field] });\r\n },\r\n floatingFilterComponentParams: { suppressFilterButton: true },\r\n filter: 'agTextColumnFilter'\r\n };\r\n}\r\n\r\nexport function getActivityReportsVersionColumn(): CovanceGridColumn {\r\n return {\r\n headerName: 'Version Number/Date/Title',\r\n field: 'version',\r\n minWidth: 155,\r\n valueGetter: (params: { data: T }) => {\r\n const report = params.data;\r\n if (!report) {\r\n return null;\r\n }\r\n\r\n if (Category.isSynopsis(report.subcategoryId)) {\r\n return dateRenderer({ value: report.versionDate });\r\n } else if (Category.isLabManualsOthers(report.subcategoryId)) {\r\n return report.title;\r\n } else {\r\n return report.version;\r\n }\r\n },\r\n };\r\n}\r\n","import { required, dataMember } from 'santee-dcts';\r\n\r\nexport class Distance {\r\n @required()\r\n @dataMember()\r\n public minutes: number;\r\n\r\n @required()\r\n @dataMember()\r\n public hours: number;\r\n\r\n @required()\r\n @dataMember()\r\n public days: number;\r\n\r\n @required()\r\n @dataMember()\r\n public ticks: number;\r\n\r\n @required()\r\n @dataMember()\r\n public formattedValue: string;\r\n\r\n public toString() {\r\n return this.formattedValue;\r\n }\r\n}\r\n","export * from './filters/boolean-ag-floating-filter.component';\r\nexport * from './filters/boolean-filter.component';\r\nexport * from './filters/filter-header.component';\r\n\r\nexport * from './renderers/actions-menu-ag-renderer-base';\r\nexport * from './renderers/bar-renderer.component';\r\nexport * from './renderers/cell-tooltip-ag-renderer.component';\r\nexport * from './renderers/covance-ag-grid-column-renderers';\r\nexport * from './renderers/header-group-renderer.component';\r\nexport * from './renderers/header-tooltip-ag-renderer.component';\r\nexport * from './renderers/hidden-document-ag-renderer.component';\r\nexport * from './renderers/link-ag-renderer.component';\r\nexport * from './renderers/multicell-ag-renderer.component';\r\nexport * from './renderers/multiline-ag-renderer.component';\r\nexport * from './renderers/test-link-ag-renderer.component';\r\nexport * from './renderers/text-list-ag-renderer.component';\r\nexport * from './renderers/view-history-ag-renderer.component';\r\n\r\nexport * from './covance-grid-column';\r\nexport * from './covance-ag-grid-column-comparators';\r\nexport * from './covance-ag-grid-helper';\r\nexport * from './covance-ag-grid.component';\r\n","export * from './covance-filter.module';\r\nexport * from './covance-filter';\r\nexport * from './covance-chain-filter';\r\nexport * from './covance-filter.models';","import { CategoryNaturalKey } from '../documents/models/category';\r\nimport { UserActionName } from './user-action';\r\n\r\ntype DownloadActionsByCategory = {\r\n [key in CategoryNaturalKey]?: UserActionName;\r\n};\r\n\r\nconst documentCategories: DownloadActionsByCategory = {\r\n 'regulatory-documents': 'Download General Manuals - Regulatory Documents',\r\n 'general-information': 'Download General Manuals - General Information',\r\n 'quick-reference-guide': 'Download General Manuals - Quick Reference Guide',\r\n 'general-communications': 'Download General Communications',\r\n 'specimen-collection': 'Download General Training Materials - Specimen Collection',\r\n 'packaging-and-shipping': 'Download General Training Materials - Packaging and Shipping',\r\n 'application-training': 'Download Application Training',\r\n\r\n 'result-alerts': 'Download Result Alerts',\r\n 'lab-reports': 'Download Lab Results',\r\n 'data-revisions': 'Download Data Revisions',\r\n 'cancellation': 'Download Cancellations',\r\n\r\n 'study-manuals': 'Download Lab Manuals - Study Manuals',\r\n 'synopsis': 'Download Lab Manuals - Specimen Collection Guides',\r\n 'lab-manuals-others': 'Download Lab Manuals - Others',\r\n\r\n 'site-actions': 'Download Site Actions',\r\n 'site-communications': 'Download Site Communications',\r\n 'sponsor-communications-main': 'Download Sponsor Communications',\r\n 'sponsor-communications-e-learning': 'Download Sponsor Communications',\r\n\r\n 'training-materials-e-learning': 'Download Training Materials - eLearning',\r\n 'training-materials-others': 'Download Training Materials - Others',\r\n};\r\n\r\nexport const downloadActions = {\r\n documentCategories\r\n};","import { CategoryNaturalKey } from '../documents/models/category';\r\nimport { UserActionName } from './user-action';\r\n\r\ntype UploadActionsByCategory = {\r\n [key in CategoryNaturalKey]?: UserActionName;\r\n};\r\n\r\nconst uploadCategories: UploadActionsByCategory = {\r\n 'regulatory-documents': 'Upload General Manuals - Regulatory Documents',\r\n 'general-information': 'Upload General Manuals - General Information',\r\n 'quick-reference-guide': 'Upload General Manuals - Quick Reference Guide',\r\n 'general-communications': 'Upload General Communications',\r\n 'specimen-collection': 'Upload General Training Materials - Specimen Collection',\r\n 'packaging-and-shipping': 'Upload General Training Materials - Packaging and Shipping',\r\n 'application-training': 'Upload Application Training',\r\n\r\n 'study-manuals': 'Upload Lab Manuals - Study Manuals',\r\n 'synopsis': 'Upload Lab Manuals - Specimen Collection Guides',\r\n 'lab-manuals-others': 'Upload Lab Manuals - Others',\r\n\r\n 'site-actions': 'Upload Site Actions',\r\n 'site-communications': 'Upload Site Communications',\r\n 'sponsor-communications-main': 'Upload Sponsor Communications',\r\n 'sponsor-communications-e-learning': 'Upload Sponsor Communications',\r\n\r\n 'training-materials-e-learning': 'Upload Training Materials - eLearning',\r\n 'training-materials-others': 'Upload Training Materials - Others',\r\n};\r\n\r\nexport const uploadActions = {\r\n uploadCategories\r\n};","import { CategoryNaturalKey } from '../documents/models/category';\r\nimport { UserActionName } from './user-action';\r\n\r\ntype EmailNotificatonPreferencesActionsByCategory = {\r\n [key in CategoryNaturalKey]?: UserActionName;\r\n};\r\n\r\nexport const emailNotificationPreferencesActions: EmailNotificatonPreferencesActionsByCategory = {\r\n 'result-alerts': 'Change Result Alerts Email Preferences',\r\n 'lab-reports': 'Change Lab Results Email Preferences',\r\n 'data-revisions': 'Change Data Revisions Email Preferences',\r\n 'site-actions': 'Change Site Actions Email Preferences',\r\n 'site-communications': 'Change Communications Email Preferences',\r\n 'sponsor-communications': 'Change Sponsor Communications Email Preferences',\r\n 'lab-manuals': 'Change Lab Manuals Email Preferences',\r\n 'training-materials': 'Change Training Materials Email Preferences'\r\n};\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, ConnectableObservable, Subscription } from 'rxjs';\r\nimport { map, first, publishReplay } from 'rxjs/operators';\r\nimport { Settings } from '../core/settings';\r\nimport { isNil, chain } from 'lodash';\r\nimport { UserStorage } from '../user/user-storage';\r\nimport { DlLink, DownloadLinkType } from '../documents/models/dlLink';\r\nimport { UserActionName } from './user-action';\r\nimport { ActivityData, ActivityDetailData, ActivityDocumentDetail, DetailedActivityData, DefaultActivityData, ActivitySiteDetail, ActivityStudySiteDetail } from './activity-data';\r\nimport { CategoryNaturalKey } from '../documents/models/category';\r\nimport { downloadActions } from './download-actions';\r\nimport { uploadActions } from './upload-actions';\r\nimport { NavigationActivity } from './navigation-activity/navigation-activity';\r\nimport { assertUnreachableCode } from '../shared/assert-unreachable-code';\r\nimport { EmailPreference } from '../user/email-preferences/email';\r\nimport { emailNotificationPreferencesActions } from './email-notification-preferences-actions';\r\n\r\nexport interface ActivitySession {\r\n userSessionId: string;\r\n}\r\n\r\ntype UserEmulationActivityAction = 'StartEmulation' | 'EndEmulation';\r\n\r\n@Injectable()\r\nexport class ActivityLogger implements OnDestroy {\r\n\r\n public get activitySession(): Observable {\r\n return this.activitySession$;\r\n }\r\n\r\n private readonly activitySession$: ConnectableObservable;\r\n private readonly activitySessionSubscription: Subscription;\r\n\r\n constructor(\r\n private readonly http: HttpClient,\r\n private readonly settings: Settings,\r\n private readonly userStorage: UserStorage,\r\n private readonly navigationActivity: NavigationActivity,\r\n ) {\r\n this.activitySession$ = this.createUserSession()\r\n .pipe(\r\n map(userSessionId => ({ userSessionId: userSessionId })),\r\n publishReplay(1),\r\n ) as ConnectableObservable;\r\n\r\n this.activitySessionSubscription = this.activitySession$.connect();\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.activitySessionSubscription.unsubscribe();\r\n }\r\n\r\n public async logActivity(userActionName: UserActionName): Promise {\r\n if (!userActionName) {\r\n return;\r\n }\r\n\r\n const activitySession = await this.activitySession$.pipe(first()).toPromise();\r\n\r\n await this.sendActivities([new DefaultActivityData(userActionName, activitySession.userSessionId)]);\r\n }\r\n\r\n public async logAccessEQueryDetailView(details: ActivitySiteDetail | ActivityStudySiteDetail): Promise {\r\n if (!details) {\r\n return;\r\n }\r\n\r\n const activitySession = await this.activitySession$.pipe(first()).toPromise();\r\n\r\n await this.sendActivities([new DetailedActivityData('Access Query Detail View', activitySession.userSessionId, [details])]);\r\n }\r\n\r\n public async logDownloadActivity(dlLinks: DlLink | DlLink[]): Promise {\r\n const links = !Array.isArray(dlLinks)\r\n ? [dlLinks]\r\n : dlLinks;\r\n\r\n const activitySession = await this.activitySession$.pipe(first()).toPromise();\r\n\r\n await this.processDownloadedLinks(activitySession, links);\r\n }\r\n\r\n public async logUploadActivity(categoryId: CategoryNaturalKey): Promise {\r\n const userAction = uploadActions.uploadCategories[categoryId];\r\n\r\n if (!userAction) {\r\n return;\r\n }\r\n\r\n const activitySession = await this.activitySession$.pipe(first()).toPromise();\r\n const activityData = new DefaultActivityData(userAction, activitySession.userSessionId);\r\n\r\n await this.sendActivities([activityData]);\r\n }\r\n\r\n public logEditFileActivity(documentId: string): Promise {\r\n return this.processDocumentActivity('Edit File', documentId);\r\n }\r\n\r\n public logAddTranslationsActivity(documentId: string): Promise {\r\n return this.processDocumentActivity('Add Translations', documentId);\r\n }\r\n\r\n public logHideUnhideDocumentActivity(documentId: string): Promise {\r\n return this.processDocumentActivity('Hide/Unhide Document', documentId);\r\n }\r\n\r\n public logChangePreferredLanguageActivity(editedUserId: number): Promise {\r\n return this.logUserSettingsActivity(editedUserId, ['Change Preferred Language']);\r\n }\r\n\r\n public logChangePreferredUnitsActivity(editedUserId: number): Promise {\r\n return this.logUserSettingsActivity(editedUserId, ['Change Preferred Units']);\r\n }\r\n\r\n public logAddEmailNotificationActivity(editedUserId: number): Promise {\r\n return this.logUserSettingsActivity(editedUserId, ['Add Email Notification']);\r\n }\r\n\r\n public logEditEmailNotificationActivity(editedUserId: number): Promise {\r\n return this.logUserSettingsActivity(editedUserId, ['Edit Email Notification']);\r\n }\r\n\r\n public logDeleteEmailNotificationActivity(editedUserId: number): Promise {\r\n return this.logUserSettingsActivity(editedUserId, ['Delete Email Notification']);\r\n }\r\n\r\n public logResetEmailPreferences(editedUserId: number): Promise {\r\n return this.logUserSettingsActivity(editedUserId, ['Reset Email Preferences']);\r\n }\r\n\r\n public async logChangeEmailPreferencesActivity(emailPreferences: EmailPreference[], editedUserId: number): Promise {\r\n if (!emailPreferences || !emailPreferences.length || !editedUserId) {\r\n return;\r\n }\r\n\r\n const userActions = chain(emailPreferences)\r\n .groupBy(x => x.categoryId)\r\n .map((grouped: EmailPreference[], categoryId: CategoryNaturalKey) => {\r\n const userAction = emailNotificationPreferencesActions[categoryId];\r\n return userAction ? userAction : null;\r\n })\r\n .filter(x => !!x)\r\n .value();\r\n\r\n await this.logUserSettingsActivity(editedUserId, userActions);\r\n }\r\n\r\n public async logNavigationActivity(): Promise {\r\n const activityData = this.navigationActivity.getNavigationActivity();\r\n\r\n if (activityData) {\r\n await this.sendActivities([activityData]);\r\n }\r\n }\r\n\r\n public async logUserEmulationActivity(action: UserEmulationActivityAction, emulatedUserId: number): Promise {\r\n let userAction: UserActionName = null;\r\n\r\n if (action === 'StartEmulation') {\r\n userAction = 'User Emulation started';\r\n } else if (action === 'EndEmulation') {\r\n userAction = 'User Emulation stopped';\r\n }\r\n\r\n if (!userAction) {\r\n return;\r\n }\r\n\r\n const activitySession = await this.activitySession$.pipe(first()).toPromise();\r\n\r\n return this.processUserEmulationActivity(\r\n activitySession,\r\n userAction,\r\n emulatedUserId);\r\n }\r\n\r\n public async refreshUserSession(): Promise {\r\n const activitySession = await this.activitySession$.pipe(first()).toPromise();\r\n\r\n await this.post(`${this.settings.apiUrl}/activities/user-session/${activitySession.userSessionId}/refresh`).toPromise();\r\n }\r\n\r\n private async logUserSettingsActivity(editedUserId: number, userActionNames: UserActionName[]): Promise {\r\n const currentUser = await this.userStorage.currentUser.pipe(first()).toPromise();\r\n\r\n if (!userActionNames\r\n || !userActionNames.length\r\n || !editedUserId\r\n || editedUserId === currentUser.metadata.userId) {\r\n return;\r\n }\r\n\r\n const activitySession = await this.activitySession$.pipe(first()).toPromise();\r\n const activityData = userActionNames.map(userActionName => new DefaultActivityData(userActionName, activitySession.userSessionId));\r\n\r\n await this.sendActivities(activityData);\r\n }\r\n\r\n private async processDocumentActivity(userActionName: UserActionName, documentId: string): Promise {\r\n if (!userActionName || !documentId) {\r\n return;\r\n }\r\n\r\n const activitySession = await this.activitySession$.pipe(first()).toPromise();\r\n\r\n await this.sendActivities([\r\n new DetailedActivityData(\r\n userActionName,\r\n activitySession.userSessionId,\r\n [new ActivityDocumentDetail(documentId)]\r\n )\r\n ]);\r\n }\r\n\r\n private async processUserEmulationActivity(\r\n activitySession: ActivitySession,\r\n userActionName: UserActionName,\r\n emulatedUserId: number\r\n ) {\r\n if (!userActionName || isNil(emulatedUserId)) {\r\n return;\r\n }\r\n\r\n await this.sendActivities([new DefaultActivityData(userActionName, activitySession.userSessionId)]);\r\n }\r\n\r\n private async sendActivities(activityDataList: ActivityData[]) {\r\n try {\r\n await this\r\n .post(`${this.settings.apiUrl}/activities/log-activities`, activityDataList)\r\n .toPromise();\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n\r\n private createUserSession(): Observable {\r\n return this\r\n .post(`${this.settings.apiUrl}/activities/user-session`)\r\n .pipe(\r\n map(response => response)\r\n );\r\n }\r\n\r\n private post(url: string, body: T = null): Observable {\r\n const headers = new HttpHeaders().set('ignoreEmulation', 'ignoreEmulation');\r\n return this.http.post(url, body, { headers });\r\n }\r\n\r\n private async processDownloadedLinks(activitySession: ActivitySession, links: DlLink[]): Promise {\r\n if (!links || !links.length) {\r\n return;\r\n }\r\n\r\n const activityData = chain(links)\r\n .groupBy(link => link.categoryNaturalKey)\r\n .map((grouped: DlLink[], categoryId: CategoryNaturalKey) => {\r\n const userAction = downloadActions.documentCategories[categoryId];\r\n\r\n if (!userAction) {\r\n return null;\r\n }\r\n\r\n const activityDetails = chain(grouped)\r\n .map(link => this.getActvitiyDetailFromDlLink(link))\r\n .filter(detail => !!detail)\r\n .value();\r\n\r\n const activity = new DetailedActivityData(\r\n userAction,\r\n activitySession.userSessionId,\r\n activityDetails\r\n );\r\n\r\n return activity;\r\n })\r\n .filter(activity => !!activity)\r\n .value();\r\n\r\n if (activityData.length) {\r\n await this.sendActivities(activityData);\r\n }\r\n }\r\n\r\n private getActvitiyDetailFromDlLink(link: DlLink): ActivityDetailData | null {\r\n switch (link.linkType) {\r\n case DownloadLinkType.ByFile:\r\n return new ActivityDocumentDetail(\r\n link.reportId,\r\n );\r\n case DownloadLinkType.ByDate:\r\n return null;\r\n case DownloadLinkType.ByDocument:\r\n return new ActivityDocumentDetail(\r\n link.documentId\r\n );\r\n default:\r\n assertUnreachableCode(link);\r\n }\r\n\r\n return null;\r\n }\r\n}","export function assertUnreachableCode(x: never): never {\r\n throw new Error('Unreachable code');\r\n}","import { ValidatorFn, AbstractControl, ValidationErrors } from '@angular/forms';\r\nimport { includes } from 'lodash';\r\nimport * as moment from 'moment';\r\n\r\nexport const maxBytesError = 'maxBytes';\r\n\r\nexport function maxLengthInBytes(maxBytesCount: number): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const utf8BytesCount = control.value ? unescape(encodeURIComponent(control.value)).length : 0;\r\n return utf8BytesCount > maxBytesCount\r\n ? { [maxBytesError]: { requiredLength: maxBytesCount, actualLength: utf8BytesCount } }\r\n : null;\r\n };\r\n}\r\n\r\nexport const forbiddenValueError = 'forbiddenValue';\r\n\r\nexport function forbidValues(forbiddenValues: string[]): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors => {\r\n return includes(forbiddenValues, control.value)\r\n ? { [forbiddenValueError]: control.value }\r\n : null;\r\n };\r\n}\r\n\r\nexport function notNullOrWhiteSpace(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const value: string = control.value;\r\n return (value == null || value.trim().length === 0)\r\n ? { 'required': true }\r\n : null;\r\n };\r\n}\r\n\r\nexport const inValidDateError = 'inValidDate';\r\n\r\nexport function dateValidation(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const value: string = control.value;\r\n const date = Date.parse(value);\r\n return isNaN(date)\r\n ? { [inValidDateError]: control.value }\r\n : null;\r\n }; \r\n}\r\n\r\nexport const futureDateError = 'futureDateError';\r\n\r\nexport function futureDateValidation(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const value: string = control.value;\r\n const date = moment(value);\r\n const currentDate = moment();\r\n return date.isValid && date.isAfter(currentDate) ? { [futureDateError]: control.value } : null;\r\n };\r\n}","'use strict';\r\nimport { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { combineLatest, Observable } from 'rxjs';\r\nimport { map, filter } from 'rxjs/operators';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport { UserStorage } from './user-storage';\r\nimport { User } from './user';\r\nimport { routeData } from '../shared/route-helpers';\r\n\r\n@Component({\r\n selector: 'user-settings',\r\n template: require('./user-settings.component.html'),\r\n styles: [require('./user-settings.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class UserSettingsComponent {\r\n public readonly userFullName$: Observable;\r\n\r\n constructor(\r\n private readonly route: ActivatedRoute,\r\n userStorage: UserStorage\r\n ) {\r\n const editedUser$ = this.route.data.pipe(\r\n filter(x => !!x),\r\n map(data => (data[routeData.user] as User))\r\n );\r\n\r\n this.userFullName$ = combineLatest([editedUser$, userStorage.currentUser])\r\n .pipe(map(([editedUser, currentUser]: [User, User]) => {\r\n return editedUser.metadata.userId === currentUser.metadata.userId\r\n ? ''\r\n : editedUser.metadata.fullName;\r\n }));\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { UrlBuilder } from '../../web/core';\r\nimport { TabCategory } from '../../web/documents';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { findUser } from '../shared/route-helpers';\r\n\r\n@Component({\r\n selector: 'user-settings-tabbed',\r\n template: require('../../web/shared/tabs.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class UserSettingsTabbedComponent {\r\n public tabsCategories: Observable;\r\n\r\n constructor(\r\n urlBuilder: UrlBuilder,\r\n route: ActivatedRoute\r\n ) {\r\n const user = findUser(route.snapshot);\r\n const userId = user.metadata.userId;\r\n const tabsCategories = [\r\n {\r\n name: 'General',\r\n url: urlBuilder\r\n .esa()\r\n .globalPopup()\r\n .userGeneralSettings(userId)\r\n .url()\r\n }\r\n ];\r\n\r\n if (user.isSponsorOrInvestigator) {\r\n tabsCategories.push(\r\n {\r\n name: 'Email Preferences',\r\n url: urlBuilder\r\n .esa()\r\n .globalPopup()\r\n .userEmailSettings(userId)\r\n .url()\r\n });\r\n }\r\n\r\n this.tabsCategories = of(tabsCategories);\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ChangeDetectionStrategy, Input, Output, EventEmitter } from '@angular/core';\r\nimport { EmailPreferenceLevelType } from './email-preference-level-type';\r\nimport { isEmpty } from 'lodash';\r\n\r\nfunction convertLevelToString(level: EmailPreferenceLevelType): string {\r\n return EmailPreferenceLevelType[level];\r\n}\r\n\r\nfunction convertStringToLevel(level: keyof typeof EmailPreferenceLevelType): EmailPreferenceLevelType {\r\n return EmailPreferenceLevelType[level];\r\n}\r\n\r\n@Component({\r\n selector: 'email-preference-level-select',\r\n template: require('./email-preference-level-select.component.html'),\r\n styles: [require('./email-preference-level-select.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class EmailPreferenceLevelSelectComponent implements OnInit {\r\n @Input()\r\n public levels: EmailPreferenceLevelType[];\r\n\r\n @Output()\r\n public levelChange: EventEmitter = new EventEmitter();\r\n\r\n public stringLevels: string[];\r\n public selectedLevel: string;\r\n\r\n public ngOnInit() {\r\n if (isEmpty(this.levels)) {\r\n throw new Error('levels are not provided');\r\n }\r\n this.stringLevels = this.levels.map(l => convertLevelToString(l));\r\n this.selectedLevel = convertLevelToString(this.levels[0]);\r\n }\r\n\r\n public onLevelChange(levels: (keyof typeof EmailPreferenceLevelType)[]) {\r\n this.selectedLevel = levels[0];\r\n this.levelChange.emit(convertStringToLevel(levels[0]));\r\n }\r\n}","import { ReactiveFormsModule } from '@angular/forms';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { CovanceAgGridModule } from '../covance-ag-grid/covance-ag-grid.module';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { GlobalPopupModule } from '../global-popup';\r\n\r\nimport { EmailNotificationHeaderAgComponent } from './email-preferences/email-notification-header-ag.component';\r\nimport { EmailActionsMenuAgRendererComponent } from './email-preferences/email-actions-menu-ag-renderer.component';\r\nimport { EmailAddressFormDialog } from './email-preferences/email-address-form-dialog.component';\r\nimport { EmailPreferencesComponent } from './email-preferences/email-preferences.component';\r\nimport { UserSettingsComponent } from './user-settings.component';\r\nimport { UserStorage } from './user-storage';\r\nimport { UserSettingsStorage } from './user-settings-storage';\r\nimport { EmailPreferencesStorage } from './email-preferences/email-preferences-storage';\r\nimport { UserSettingsTabbedComponent } from './user-settings-tabbed-component';\r\nimport { UserGeneralPreferencesComponent } from './user-general-preferences-component';\r\nimport { CovanceFilterModule } from '../covance-filter/covance-filter.module';\r\nimport { UnitStorage } from './unit-storage';\r\nimport { EmailPreferenceLevelSelectComponent } from './email-preferences/levels/email-preference-level-select.component';\r\nimport { EmailPreferencesCategoriesStorage } from './email-preferences/email-preferences-categories-storage';\r\nimport { UserAudienceRoleGuard } from './user-audience-role-guard';\r\n\r\n@NgModule({\r\n declarations: [\r\n UserSettingsComponent,\r\n EmailPreferencesComponent,\r\n EmailNotificationHeaderAgComponent,\r\n EmailAddressFormDialog,\r\n EmailActionsMenuAgRendererComponent,\r\n UserSettingsTabbedComponent,\r\n UserGeneralPreferencesComponent,\r\n EmailPreferenceLevelSelectComponent\r\n ],\r\n imports: [\r\n SharedModule,\r\n CovanceFilterModule,\r\n GlobalPopupModule,\r\n CovanceAgGridModule,\r\n ReactiveFormsModule\r\n ],\r\n exports: [\r\n UserSettingsComponent\r\n ],\r\n entryComponents: [\r\n EmailNotificationHeaderAgComponent,\r\n EmailAddressFormDialog,\r\n EmailActionsMenuAgRendererComponent\r\n ],\r\n providers: [\r\n UserStorage,\r\n UnitStorage,\r\n EmailPreferencesStorage,\r\n UserSettingsStorage,\r\n EmailPreferencesCategoriesStorage,\r\n UserAudienceRoleGuard,\r\n ]\r\n})\r\nexport class UserModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { dataMember, required, typedArray } from 'santee-dcts';\r\nimport { keyBy } from 'lodash';\r\nimport { CategoryNaturalKey } from '../documents';\r\nimport { User } from '../user/user';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nexport type EsaFeatures = 'investigatorBoxplot' | 'sponsorBoxPlots';\r\n\r\nexport class CorporateMandate {\r\n\r\n @dataMember()\r\n @required()\r\n public readonly key: string;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly value: string;\r\n}\r\n\r\nexport class FeatureToggler {\r\n\r\n @dataMember()\r\n @required()\r\n public readonly key: EsaFeatures;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly value: boolean;\r\n}\r\n\r\nexport class Link {\r\n\r\n @dataMember()\r\n @required()\r\n public readonly key: string;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly text: string;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly url: string;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly shouldOpenInNewTab: boolean;\r\n\r\n public navigate(): void {\r\n if (!this.shouldOpenInNewTab) {\r\n window.location.href = this.url;\r\n } else {\r\n window.open(this.url);\r\n }\r\n }\r\n}\r\n\r\nexport class UploadedFileExtension {\r\n @dataMember()\r\n @required()\r\n public readonly categoryId: string;\r\n\r\n @dataMember()\r\n @required()\r\n @typedArray(String)\r\n public readonly extensions: string[]; \r\n}\r\n\r\n@Injectable()\r\nexport class Settings {\r\n @dataMember()\r\n @required()\r\n public readonly angularEnableProdMode: boolean;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly shouldUseLegacyOktaWidget: boolean;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly oktaWidgetIdpDiscovery: boolean;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly oktaWidgetTitle: string;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly oktaWidgetLogoPath: string;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly apiUrl: string;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly clientId: string;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly issuer: string;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly inactivityPeriodSeconds: number;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly timeoutPeriodSeconds: number;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly maxNumberOfDocumentsForDownload: number;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly maxNumberOfSponsorLabReports: number;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly maxNumberOfVisibleFilterOptions: number;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly minFilterSearchTermLengthForLargeArrays: number;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly maxNumberOfTrends: number;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly maxSizeOfUploadedDocument: number;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly extremelyLargeSiteThreshhold: number;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly activityReportsFilterDefaultDateRange: number;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly sqlRequestLimitForActivityReports: number;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly documentsFilterDefaultDateRange: number;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly kitInventoryExpirationDefaultDateRange: number;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly enableStudyHealthDashboard: boolean;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly tableauAPI: string;\r\n \r\n @dataMember()\r\n @required()\r\n @typedArray(CorporateMandate)\r\n public readonly corporateMandates: CorporateMandate[];\r\n\r\n @dataMember()\r\n @required()\r\n @typedArray(FeatureToggler)\r\n public readonly featureTogglers: FeatureToggler[];\r\n\r\n @dataMember()\r\n @required()\r\n @typedArray(Link)\r\n public readonly links: Link[];\r\n\r\n @dataMember()\r\n @required()\r\n @typedArray(Link)\r\n public readonly idpLinks: Link[];\r\n\r\n //redirect user on login page automatically after JWT expiration\r\n public readonly redirectOnExpiration = true;\r\n\r\n @dataMember()\r\n public readonly emulatedUserId?: number;\r\n\r\n public get authenticationTokenPostFieldName() {\r\n return 'ESA-Authentication';\r\n }\r\n\r\n public get emulateAsParamName() {\r\n return `emulateAs`;\r\n }\r\n\r\n @dataMember()\r\n @required()\r\n @typedArray(UploadedFileExtension)\r\n public readonly uploadedFileExtensions: UploadedFileExtension[];\r\n\r\n @dataMember()\r\n @required()\r\n @typedArray(String)\r\n public readonly playableVideoFileExtensions: string[];\r\n\r\n @dataMember()\r\n @required()\r\n @typedArray(String)\r\n public readonly eQueryAttachmentsExtensions: string[];\r\n\r\n @dataMember()\r\n @required()\r\n public readonly eQueryMaxNumberOfAttachments: number;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly eQueryMaxNumberOfAttachmentsReopenClosed: number;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly eQueryMaxSizeOfAttachments: number;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly eQueryMaxNumberOfAttachmentsPerIssue: number;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly sampleTrackingCancelledSamplesHelpText: string;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly sampleTrackingReceivedSamplesHelpText: string;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly sampleTrackingInInventorySamplesHelpText: string;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly sampleTrackingShippedFromLabcorpSamplesHelpText: string;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly sampleTrackingPendingArrivalSamplesHelpText: string;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly sampleTrackingShippedFromSiteToLabcorpSamplesHelpText: string;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly sampleTrackingShippedFromSiteToThirdPartySamplesHelpText: string;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly sampleTrackingDiscardedFromSpecimenManagementSamplesHelpText: string;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly sampleTrackingRemovedFromSpecimenManagementSamplesHelpText: string;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly sampleTrackingAllSamplesHelpText: string;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly sampleTrackingAffectedByHoldSamplesHelpText: string;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly pendoSponsorApiKey: string;\r\n\r\n @dataMember()\r\n @required()\r\n public readonly pendoInvestigatorApiKey: string;\r\n\r\n private corporateMandatesDictionaryStorage: { [key: string]: CorporateMandate };\r\n private featureTogglersDictionaryStorage: { [key: string]: FeatureToggler };\r\n\r\n private linksDictionaryStorage: { [key: string]: Link };\r\n\r\n public get linksDictionary() {\r\n if (!this.linksDictionaryStorage) {\r\n this.linksDictionaryStorage = {};\r\n if (this.links) {\r\n this.linksDictionaryStorage = keyBy(this.links, x => x.key);\r\n }\r\n }\r\n return this.linksDictionaryStorage;\r\n }\r\n\r\n private idpLinksDictionaryStorage: { [key: string]: Link };\r\n\r\n public get idplinksDictionary() {\r\n if (!this.idpLinksDictionaryStorage) {\r\n this.idpLinksDictionaryStorage = {};\r\n if (this.idpLinks) {\r\n this.idpLinksDictionaryStorage = keyBy(this.idpLinks, x => x.key);\r\n }\r\n }\r\n return this.idpLinksDictionaryStorage;\r\n }\r\n\r\n public get corporateMandatesDictionary() {\r\n if (!this.corporateMandatesDictionaryStorage) {\r\n this.corporateMandatesDictionaryStorage = {};\r\n if (this.corporateMandates) {\r\n this.corporateMandatesDictionaryStorage = keyBy(this.corporateMandates, x => x.key);\r\n }\r\n }\r\n return this.corporateMandatesDictionaryStorage;\r\n }\r\n\r\n public get featureTogglersDictionary() {\r\n if (!this.featureTogglersDictionaryStorage) {\r\n this.featureTogglersDictionaryStorage = {};\r\n if (this.featureTogglers) {\r\n this.featureTogglersDictionaryStorage = keyBy(this.featureTogglers, x => x.key);\r\n }\r\n }\r\n return this.featureTogglersDictionaryStorage;\r\n }\r\n\r\n public isFeatureEnabled(featureKey: EsaFeatures) {\r\n if (!this.featureTogglersDictionary[featureKey]) {\r\n return true;\r\n }\r\n return this.featureTogglersDictionary[featureKey].value;\r\n }\r\n\r\n public uploadedFileExtensionsByCategoryId(categoryId: CategoryNaturalKey): string[] | null {\r\n const item = this.uploadedFileExtensions.find(x => x.categoryId === categoryId);\r\n return item ? item.extensions : null;\r\n }\r\n\r\n public getSpecificUserApiUrl(user: User) {\r\n if (user.isInvestigator) {\r\n return `${this.apiUrl}/investigator`;\r\n } else if (user.isSponsor) {\r\n return `${this.apiUrl}/sponsor`;\r\n } else {\r\n throw User.notSupportedRoleError();\r\n }\r\n }\r\n\r\n public getSubDomain(): Observable {\r\n let browserUrl = window.location.href;\r\n const appSubDomain$ = of(this.findSubDomain(browserUrl)).pipe(map(subdomain => subdomain));\r\n\r\n return appSubDomain$;\r\n }\r\n\r\n private findSubDomain(url: string): string {\r\n if (url.search(/invp/i) !== -1) {\r\n return 'invp';\r\n } else if (url.search(/xsp/i) !== -1) {\r\n return 'xsp';\r\n } else {\r\n return 'invp';\r\n }\r\n }\r\n}\r\n\r\n","import { HelperParams } from './helper-params';\r\nimport { NavigationExtras, Params, PRIMARY_OUTLET, UrlTree } from '@angular/router';\r\n\r\ninterface UrlBuilderParams {\r\n preserveFragments?: boolean;\r\n preserveQueryParams?: boolean;\r\n urlSegmentGroupKey?: string;\r\n queryParams?: Params;\r\n saveReturnUrl?: boolean;\r\n navigationExtras?: NavigationExtras;\r\n}\r\n\r\nexport class BaseBuildPart {\r\n protected readonly returnUrlQueryKey = 'returnUrl';\r\n protected readonly outletName = 'global-popup';\r\n\r\n constructor(private readonly baseHelperParams: HelperParams,\r\n private readonly parent: BaseBuildPart,\r\n private readonly commands: any[]) {\r\n this.parent = parent;\r\n\r\n this.commands = parent != null ?\r\n [...this.parent.commands, ...commands] :\r\n [...commands];\r\n }\r\n\r\n public url(params?: UrlBuilderParams): any[] {\r\n const commands = this.prepareCommands(params);\r\n return ['/', ...commands];\r\n }\r\n\r\n public urlTree(params?: UrlBuilderParams): UrlTree {\r\n const router = this.baseHelperParams.router;\r\n const commands = this.prepareCommands(params);\r\n\r\n let queryParams: Params = [];\r\n\r\n if (params) {\r\n if (params.preserveQueryParams) {\r\n queryParams = router.parseUrl(router.url).queryParams;\r\n } else if (params.queryParams) {\r\n queryParams = params.queryParams;\r\n }\r\n }\r\n\r\n return router.createUrlTree(commands, {queryParams: queryParams});\r\n }\r\n\r\n public navigate(params?: UrlBuilderParams): Promise {\r\n const urlTree = this.getNavigationUrlTree(params);\r\n const navigationExtras = (params && params.navigationExtras) || undefined;\r\n\r\n return this.baseHelperParams.router.navigateByUrl(urlTree, navigationExtras);\r\n }\r\n\r\n public getUrl(params?: UrlBuilderParams): string {\r\n const urlTree = this.getNavigationUrlTree(params);\r\n\r\n return urlTree.toString();\r\n }\r\n\r\n public reload(params?: UrlBuilderParams) {\r\n const urlTree = this.getNavigationUrlTree(params);\r\n const url = this.baseHelperParams.urlSerializer.serialize(urlTree);\r\n window.location.href = this.baseHelperParams.location.prepareExternalUrl(url);\r\n }\r\n\r\n public getExistingReturnUrl(): string | null {\r\n if (!window.location.search) {\r\n return null;\r\n }\r\n\r\n const queryParams = window.location.search.split('&');\r\n\r\n for (let queryParam of queryParams) {\r\n const result = new RegExp(`${this.returnUrlQueryKey}=(.*)`).exec(queryParam);\r\n\r\n if (result && result[1]) {\r\n return result[1];\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private getNavigationUrlTree(params?: UrlBuilderParams) {\r\n if (params && params.saveReturnUrl) {\r\n if (!params.queryParams) {\r\n params.queryParams = {};\r\n }\r\n\r\n const returnUrl = this.getExistingReturnUrl();\r\n\r\n params.queryParams[this.returnUrlQueryKey] = returnUrl ? decodeURIComponent(returnUrl) : this.getReturnUrl();\r\n }\r\n\r\n return this.urlTree(params);\r\n }\r\n\r\n private getReturnUrl(): string {\r\n const baseElement = window.document.querySelector('base');\r\n\r\n if (!baseElement) {\r\n return location.href;\r\n }\r\n\r\n const returnUrl = location.href.substring(baseElement.href.length);\r\n\r\n return returnUrl ? returnUrl : '/';\r\n }\r\n\r\n private prepareCommands(params?: UrlBuilderParams) {\r\n const router = this.baseHelperParams.router;\r\n const commands = [...this.commands];\r\n\r\n if (params && params.preserveFragments) {\r\n const urlSegmentGroupKey = params.urlSegmentGroupKey || PRIMARY_OUTLET;\r\n const currentPaths = this.baseHelperParams.router.parseUrl(router.url).root.children[urlSegmentGroupKey].segments.map(s => s.path);\r\n\r\n const subCommands = currentPaths.length > this.commands.length ?\r\n currentPaths.slice(this.commands.length) :\r\n [];\r\n\r\n commands.push(...subCommands);\r\n }\r\n\r\n return commands.length > 0 ? commands : ['/'];\r\n }\r\n}","import { BaseBuildPart } from './base-build-part';\r\nimport { HelperParams } from './helper-params';\r\nimport { CategoryNaturalKey } from '../../documents';\r\n\r\nexport class ActivityReportsBuildPart extends BaseBuildPart {\r\n constructor(private readonly activityReportsHelperParams: HelperParams,\r\n parent: BaseBuildPart) {\r\n super(activityReportsHelperParams, parent, ['activity-reports']);\r\n }\r\n\r\n public documents(categoryId?: CategoryNaturalKey) {\r\n const paths = ['documents'];\r\n\r\n if (categoryId) {\r\n paths.push(categoryId);\r\n }\r\n\r\n return new BaseBuildPart(this.activityReportsHelperParams, this, paths);\r\n }\r\n\r\n public protocolAccess() {\r\n return new BaseBuildPart(this.activityReportsHelperParams, this, ['protocol-access']);\r\n }\r\n\r\n public accessInvestigation() {\r\n return new BaseBuildPart(this.activityReportsHelperParams, this, ['access-investigation']);\r\n }\r\n\r\n public emailNotificationAlerts() {\r\n return new BaseBuildPart(this.activityReportsHelperParams, this, ['email-alerts']);\r\n }\r\n}","import { BaseBuildPart } from './base-build-part';\r\nimport { HelperParams } from './helper-params';\r\n\r\nexport class AdminKitInventoryBuildPart extends BaseBuildPart {\r\n constructor(private readonly activityReportsHelperParams: HelperParams,\r\n parent: BaseBuildPart) {\r\n super(activityReportsHelperParams, parent, ['kit-inventory']);\r\n }\r\n\r\n public inventorySummary() {\r\n return new BaseBuildPart(this.activityReportsHelperParams, this, ['inventory-summary']);\r\n }\r\n\r\n public onHandExpiration() {\r\n return new BaseBuildPart(this.activityReportsHelperParams, this, ['on-hand-expiration']);\r\n }\r\n}","import { BaseBuildPart } from './base-build-part';\r\nimport { HelperParams } from './helper-params';\r\n\r\nexport class CoordinatorEQueryBuildPart extends BaseBuildPart {\r\n constructor(private readonly activityReportsHelperParams: HelperParams,\r\n parent: BaseBuildPart) {\r\n super(activityReportsHelperParams, parent, ['coordinator-e-query']);\r\n }\r\n\r\n public eQuerySummary() {\r\n return new BaseBuildPart(this.activityReportsHelperParams, this, ['query-summary']);\r\n }\r\n\r\n public hideEQueries() {\r\n return new BaseBuildPart(this.activityReportsHelperParams, this, ['hide']);\r\n }\r\n\r\n public escalationEmails() {\r\n return new BaseBuildPart(this.activityReportsHelperParams, this, ['escalation-emails']);\r\n }\r\n\r\n public usageReport() {\r\n return new BaseBuildPart(this.activityReportsHelperParams, this, ['usage-report']);\r\n }\r\n}\r\n","import { BaseBuildPart } from './base-build-part';\r\nimport { HelperParams } from './helper-params';\r\n\r\nexport class AdminEQueryBuildPart extends BaseBuildPart {\r\n constructor(private readonly activityReportsHelperParams: HelperParams,\r\n parent: BaseBuildPart) {\r\n super(activityReportsHelperParams, parent, ['admin-e-query']);\r\n }\r\n\r\n public hideEQueries() {\r\n return new BaseBuildPart(this.activityReportsHelperParams, this, ['hide']);\r\n }\r\n\r\n public escalationEmails() {\r\n return new BaseBuildPart(this.activityReportsHelperParams, this, ['escalation-emails']);\r\n }\r\n\r\n public usageReport() {\r\n return new BaseBuildPart(this.activityReportsHelperParams, this, ['usage-report']);\r\n }\r\n\r\n public eQuerySummary() {\r\n return new BaseBuildPart(this.activityReportsHelperParams, this, ['query-summary']);\r\n }\r\n}\r\n","import { BaseBuildPart } from './base-build-part';\r\nimport { HelperParams } from './helper-params';\r\nimport { ActivityReportsBuildPart } from './activity-reports-build-part';\r\nimport { AdminKitInventoryBuildPart } from './admin-kit-inventory-build-part';\r\nimport { CoordinatorEQueryBuildPart } from './coordinator-e-query-build-part';\r\nimport { AdminEQueryBuildPart } from './admin-e-query-build-part';\r\n\r\nexport class AdminBuildPart extends BaseBuildPart {\r\n constructor(private readonly adminHelperParams: HelperParams,\r\n parent: BaseBuildPart) {\r\n super(adminHelperParams, parent, ['admin']);\r\n this.adminHelperParams = adminHelperParams;\r\n }\r\n\r\n public uploadDocuments(categoryId?: string): BaseBuildPart {\r\n const paths = ['documents'];\r\n\r\n if (categoryId) {\r\n paths.push(categoryId);\r\n }\r\n\r\n return new BaseBuildPart(this.adminHelperParams, this, paths);\r\n }\r\n\r\n public announcements(): BaseBuildPart {\r\n return new BaseBuildPart(this.adminHelperParams, this, ['announcements']);\r\n }\r\n\r\n public commonLinks(): BaseBuildPart {\r\n return new BaseBuildPart(this.adminHelperParams, this, ['common-links']);\r\n }\r\n\r\n public protocols(): BaseBuildPart {\r\n return new BaseBuildPart(this.adminHelperParams, this, ['protocols']);\r\n }\r\n\r\n public userAccess(): BaseBuildPart {\r\n return new BaseBuildPart(this.adminHelperParams, this, ['user-profiles']);\r\n }\r\n\r\n public auditLogs(): BaseBuildPart {\r\n return new BaseBuildPart(this.adminHelperParams, this, ['audit-logs']);\r\n }\r\n\r\n public kitInventory(): AdminKitInventoryBuildPart {\r\n return new AdminKitInventoryBuildPart(this.adminHelperParams, this); \r\n }\r\n\r\n public coordinatorEQuery(): CoordinatorEQueryBuildPart {\r\n return new CoordinatorEQueryBuildPart(this.adminHelperParams, this);\r\n }\r\n\r\n public adminEQuery(): AdminEQueryBuildPart {\r\n return new AdminEQueryBuildPart(this.adminHelperParams, this);\r\n }\r\n\r\n public activityReports(): ActivityReportsBuildPart {\r\n return new ActivityReportsBuildPart(this.adminHelperParams, this);\r\n }\r\n\r\n public editDefaultColumns(): BaseBuildPart {\r\n return new BaseBuildPart(this.adminHelperParams, this, ['edit', 'columns']);\r\n }\r\n}","import { BaseBuildPart } from './base-build-part';\r\nimport { HelperParams } from './helper-params';\r\nimport { Category } from '../../documents';\r\nimport { GeneralDocumentsCommands } from './types';\r\n\r\nexport class GeneralDocumentsBuildPart extends BaseBuildPart {\r\n constructor(private readonly generalDocumentsHelperParams: HelperParams,\r\n parent: BaseBuildPart,\r\n private readonly generalCommands: GeneralDocumentsCommands) {\r\n super(generalDocumentsHelperParams, parent, generalCommands);\r\n }\r\n\r\n public category(category: Category) {\r\n const [outletCommands] = this.generalCommands as GeneralDocumentsCommands;\r\n\r\n outletCommands.outlets[this.outletName].push(category.categoryId);\r\n\r\n return new BaseBuildPart(this.generalDocumentsHelperParams, this, []);\r\n }\r\n}","import { HelperParams } from './helper-params';\r\nimport { BaseBuildPart } from './base-build-part';\r\nimport { Category } from '../../documents';\r\nimport { GeneralDocumentsBuildPart } from './general-documents-build-part';\r\nimport { GeneralDocumentsCommands, GlobalOutletsCommands } from './types';\r\n\r\nexport class GlobalPopupBuildPart extends BaseBuildPart {\r\n constructor(private readonly globalPopupHelperParams: HelperParams,\r\n private readonly baseBuildPartParent: BaseBuildPart) {\r\n super(globalPopupHelperParams, baseBuildPartParent, []);\r\n }\r\n\r\n public empty() {\r\n return new BaseBuildPart(this.globalPopupHelperParams, this.baseBuildPartParent, this.getCommands(null));\r\n }\r\n\r\n public generalDocuments(category: Category) {\r\n const commands = this.getCommands(['general-documents', category.categoryId]) as GeneralDocumentsCommands;\r\n return new GeneralDocumentsBuildPart(this.globalPopupHelperParams, this.baseBuildPartParent, commands);\r\n }\r\n\r\n public siteCommunicationsMassUpload(): BaseBuildPart {\r\n const outletCommands = ['site-communications-mass-upload'];\r\n\r\n return new BaseBuildPart(this.globalPopupHelperParams, this.baseBuildPartParent, this.getCommands(outletCommands));\r\n }\r\n\r\n public user(editedUserPk: number): BaseBuildPart {\r\n const outletCommands = ['user', editedUserPk.toString()];\r\n\r\n return new BaseBuildPart(this.globalPopupHelperParams, this.baseBuildPartParent, this.getCommands(outletCommands) as [GlobalOutletsCommands]);\r\n }\r\n\r\n public userGeneralSettings(editedUserPk: number) {\r\n const outletCommands = ['user', editedUserPk.toString(), 'general-settings'];\r\n\r\n return new BaseBuildPart(this.globalPopupHelperParams, this.baseBuildPartParent, this.getCommands(outletCommands));\r\n }\r\n\r\n public userEmailSettings(editedUserPk: number) {\r\n const outletCommands = ['user', editedUserPk.toString(), 'email-settings'];\r\n\r\n return new BaseBuildPart(this.globalPopupHelperParams, this.baseBuildPartParent, this.getCommands(outletCommands));\r\n }\r\n\r\n public emulateUser(): BaseBuildPart {\r\n const outletCommands = ['emulate-user'];\r\n\r\n return new BaseBuildPart(this.globalPopupHelperParams, this.baseBuildPartParent, this.getCommands(outletCommands));\r\n }\r\n\r\n public terms(): BaseBuildPart {\r\n const outletCommands = ['terms-and-conditions'];\r\n return new BaseBuildPart(this.globalPopupHelperParams, this.baseBuildPartParent, this.getCommands(outletCommands));\r\n }\r\n\r\n public portaldisclaimer(): BaseBuildPart {\r\n const outletCommands = ['disclaimer'];\r\n return new BaseBuildPart(this.globalPopupHelperParams, this.baseBuildPartParent, this.getCommands(outletCommands));\r\n }\r\n\r\n public investigatorEQueryDetails(eQueryId: number) {\r\n const outletCommands = ['investigator-e-query-details', eQueryId.toString()];\r\n return new BaseBuildPart(this.globalPopupHelperParams, this.baseBuildPartParent, this.getCommands(outletCommands));\r\n }\r\n\r\n public sponsorEQueryDetails(eQueryId: number) {\r\n const outletCommands = ['sponsor-e-query-details', eQueryId.toString()];\r\n return new BaseBuildPart(this.globalPopupHelperParams, this.baseBuildPartParent, this.getCommands(outletCommands));\r\n }\r\n\r\n public coordinatorEQueryDetails(eQueryId: number) {\r\n const outletCommands = ['coordinator-e-query-details', eQueryId.toString()];\r\n return new BaseBuildPart(this.globalPopupHelperParams, this.baseBuildPartParent, this.getCommands(outletCommands));\r\n }\r\n\r\n private getCommands(outletCommands: string[]): any[] {\r\n return [{outlets: {[this.outletName]: outletCommands}}];\r\n }\r\n}","import { BaseBuildPart } from './base-build-part';\r\nimport { HelperParams } from './helper-params';\r\nimport { Category } from '../../documents';\r\n\r\nexport class DocumentsCategoriesBuildPart extends BaseBuildPart {\r\n constructor(private readonly documentsCategoriesHelperParams: HelperParams,\r\n parent: BaseBuildPart,\r\n subCategory: Category) {\r\n super(documentsCategoriesHelperParams, parent, [subCategory.categoryId]);\r\n }\r\n\r\n public subCategory(underSubCategory: Category) {\r\n return new BaseBuildPart(this.documentsCategoriesHelperParams, this, [underSubCategory.categoryId]);\r\n }\r\n}","import { BaseBuildPart } from './base-build-part';\r\nimport { HelperParams } from './helper-params';\r\nimport { Category } from '../../documents';\r\nimport { DocumentsCategoriesBuildPart } from './documents-categories-build-part';\r\n\r\nexport class DocumentsBuildPart extends BaseBuildPart {\r\n constructor(private readonly documentsHelperParams: HelperParams,\r\n parent: BaseBuildPart,\r\n category: Category) {\r\n super(documentsHelperParams, parent, ['documents', category.categoryId]);\r\n }\r\n\r\n public category(category: Category) {\r\n return new DocumentsCategoriesBuildPart(this.documentsHelperParams, this, category);\r\n }\r\n}","import { BaseBuildPart } from './base-build-part';\r\nimport { HelperParams } from './helper-params';\r\n\r\nexport class MicrobiologyBuildPart extends BaseBuildPart {\r\n constructor(private readonly microbiologyHelperParams: HelperParams,\r\n parent: BaseBuildPart) {\r\n super(microbiologyHelperParams, parent, ['microbiology-data']);\r\n }\r\n\r\n public isolateCultureData() {\r\n return new BaseBuildPart(this.microbiologyHelperParams, this, ['isolate-culture-data']);\r\n }\r\n}","import { BaseBuildPart } from './base-build-part';\r\nimport { HelperParams } from './helper-params';\r\n\r\nexport class StandardTestResultsBuildPart extends BaseBuildPart {\r\n constructor(private readonly standardTestResultsHelperParams: HelperParams,\r\n parent: BaseBuildPart,\r\n tab?: string) {\r\n super(standardTestResultsHelperParams, parent, StandardTestResultsBuildPart.getPaths(tab));\r\n }\r\n\r\n public testResults() {\r\n return new BaseBuildPart(this.standardTestResultsHelperParams, this, ['test-results']);\r\n }\r\n\r\n public trends() {\r\n return new BaseBuildPart(this.standardTestResultsHelperParams, this, ['trends']);\r\n }\r\n\r\n public boxplots() {\r\n return new BaseBuildPart(this.standardTestResultsHelperParams, this, ['boxplots']);\r\n }\r\n\r\n private static getPaths(tab?: string) {\r\n\r\n const paths = ['standard-test-results'];\r\n\r\n if (tab) {\r\n paths.push(tab);\r\n }\r\n\r\n return paths;\r\n }\r\n}","import { BaseBuildPart } from './base-build-part';\r\nimport { HelperParams } from './helper-params';\r\nimport { MicrobiologyBuildPart } from './microbiology-build-part';\r\nimport { StandardTestResultsBuildPart } from './standard-test-results-build-part';\r\n\r\nexport class OnScreenResultsBuildPart extends BaseBuildPart {\r\n constructor(private readonly onScreenResultsHelperParams: HelperParams,\r\n parent: BaseBuildPart,\r\n tab?: string) {\r\n super(onScreenResultsHelperParams, parent, OnScreenResultsBuildPart.getPaths(tab));\r\n }\r\n\r\n public standardTestResults(tab?: string) {\r\n return new StandardTestResultsBuildPart(this.onScreenResultsHelperParams, this, tab);\r\n }\r\n\r\n public microbiology() {\r\n return new MicrobiologyBuildPart(this.onScreenResultsHelperParams, this);\r\n }\r\n\r\n private static getPaths(tab?: string) {\r\n const paths = ['on-screen-results'];\r\n\r\n if (tab) {\r\n paths.push(tab);\r\n }\r\n\r\n return paths;\r\n }\r\n}","import { BaseBuildPart } from './base-build-part';\r\nimport { HelperParams } from './helper-params';\r\n\r\nexport class EQueryBuildPart extends BaseBuildPart {\r\n constructor(private readonly eQueryHelperParams: HelperParams,\r\n parent: BaseBuildPart,\r\n siteId?: number) {\r\n super(eQueryHelperParams, parent, siteId ? ['e-queries', siteId] : ['e-queries']);\r\n }\r\n\r\n public awaitingResponse() {\r\n return new BaseBuildPart(this.eQueryHelperParams, this, ['awaiting']);\r\n }\r\n\r\n public responseSubmitted() {\r\n return new BaseBuildPart(this.eQueryHelperParams, this, ['submitted']);\r\n }\r\n}\r\n","import { BaseBuildPart } from './base-build-part';\r\nimport { HelperParams } from './helper-params';\r\nimport { Site } from '../../sites';\r\nimport { Category } from '../../documents';\r\nimport { DocumentsBuildPart } from './documents-build-part';\r\nimport { SubjectParams } from './types';\r\nimport { OnScreenResultsBuildPart } from './on-screen-results-build-part';\r\nimport {EQueryBuildPart} from './e-query-build-part';\r\n\r\nexport class SiteBuildPart extends BaseBuildPart {\r\n constructor(private readonly siteHelperParams: HelperParams,\r\n parent: BaseBuildPart,\r\n site: Site) {\r\n super(siteHelperParams, parent, [site.study.studyUrlParameter, site.siteUrlParameter]);\r\n }\r\n\r\n public onScreenResults(tab?: string): OnScreenResultsBuildPart {\r\n return new OnScreenResultsBuildPart(this.siteHelperParams, this, tab);\r\n }\r\n\r\n public documents(category: Category): DocumentsBuildPart {\r\n return new DocumentsBuildPart(this.siteHelperParams, this, category);\r\n }\r\n\r\n public labReports(): BaseBuildPart {\r\n return new BaseBuildPart(this.siteHelperParams, this, ['lab-reports']);\r\n }\r\n\r\n public kitInventory(): BaseBuildPart {\r\n return new BaseBuildPart(this.siteHelperParams, this, ['kit-inventory']);\r\n }\r\n\r\n public eQueries(): EQueryBuildPart {\r\n return new EQueryBuildPart(this.siteHelperParams, this);\r\n }\r\n\r\n public subject(subject?: SubjectParams, tab?: string): BaseBuildPart {\r\n const paths = ['subjects'];\r\n\r\n if (subject) {\r\n const zcSubjectId = subject.zcSubjectId.toString();\r\n paths.push(zcSubjectId);\r\n\r\n if (tab) {\r\n paths.push(tab);\r\n }\r\n }\r\n\r\n return new BaseBuildPart(this.siteHelperParams, this, paths);\r\n }\r\n}\r\n","import { BaseBuildPart } from './base-build-part';\r\nimport { HelperParams } from './helper-params';\r\nimport { LabTestIdentity } from '../../sponsor/lab-results/lab-test';\r\nimport { StudyBuildPart } from './study-build-part';\r\n\r\nexport class TrendAnalysisBuildPart extends BaseBuildPart {\r\n constructor(private readonly trendAnalysisHelperParams: HelperParams,\r\n parent: StudyBuildPart,\r\n labTest: LabTestIdentity) {\r\n super(trendAnalysisHelperParams, parent, labTest ? ['trend-analysis', labTest.zcTestCode] : ['trend-analysis']);\r\n }\r\n\r\n public trends(): BaseBuildPart {\r\n return new BaseBuildPart(this.trendAnalysisHelperParams, this, ['trends']);\r\n }\r\n\r\n public siteBoxPlot(): BaseBuildPart {\r\n return new BaseBuildPart(this.trendAnalysisHelperParams, this, ['site-boxplot']);\r\n }\r\n\r\n public visitBoxPlot(): BaseBuildPart {\r\n return new BaseBuildPart(this.trendAnalysisHelperParams, this, ['visit-boxplot']);\r\n }\r\n}","import { BaseBuildPart } from './base-build-part';\r\nimport { HelperParams } from './helper-params';\r\nimport { StudyBuildPart } from './study-build-part';\r\n\r\nexport class TestResultsBuildPart extends BaseBuildPart {\r\n constructor(private readonly testResultsHelperParams: HelperParams,\r\n parent: StudyBuildPart,\r\n siteId: number) {\r\n super(testResultsHelperParams, parent, siteId ? ['test-results', siteId] : ['test-results']);\r\n }\r\n\r\n public standardTestResults(): BaseBuildPart {\r\n return new BaseBuildPart(this.testResultsHelperParams, this, ['standard-test-results']);\r\n }\r\n\r\n public microbiology(): BaseBuildPart {\r\n return new BaseBuildPart(this.testResultsHelperParams, this, ['microbiology']);\r\n }\r\n}","import { BaseBuildPart } from './base-build-part';\r\nimport { HelperParams } from './helper-params';\r\nimport { StudyBuildPart } from './study-build-part';\r\n\r\nexport class KitInventoryBuildPart extends BaseBuildPart {\r\n constructor(private readonly studyHelperParams: HelperParams,\r\n parent: StudyBuildPart,\r\n siteId: number) {\r\n super(studyHelperParams, parent, siteId ? ['kit-inventory', siteId] : ['kit-inventory']);\r\n }\r\n\r\n public inventorySummary(): BaseBuildPart {\r\n return new BaseBuildPart(this.studyHelperParams, this, ['inventory-summary']);\r\n }\r\n\r\n public expiration(): BaseBuildPart {\r\n return new BaseBuildPart(this.studyHelperParams, this, ['on-hand-expiration']);\r\n }\r\n}","import { BaseBuildPart } from './base-build-part';\r\nimport { HelperParams } from './helper-params';\r\nimport { SponsorStudy } from '../../sponsor-dashboard/sponsor-study';\r\nimport { Category, CategoryNaturalKey } from '../../documents';\r\nimport { ActivityReportsBuildPart } from './activity-reports-build-part';\r\nimport { TrendAnalysisBuildPart } from './trend-analysis-build-part';\r\nimport { LabTestIdentity } from '../../sponsor/lab-results/lab-test';\r\nimport { TestResultsBuildPart } from './test-results-build-part';\r\nimport { KitInventoryBuildPart } from './kit-inventory-build-part';\r\nimport { SponsorStudySiteIdentity } from '../../sponsor/sites/sponsor-study-site-identity';\r\nimport {EQueryBuildPart} from './e-query-build-part';\r\n\r\nexport class StudyBuildPart extends BaseBuildPart {\r\n constructor(private readonly studyHelperParams: HelperParams,\r\n parent: BaseBuildPart,\r\n study: SponsorStudy) {\r\n super(studyHelperParams, parent, ['study', study.protocolId]);\r\n }\r\n\r\n public trendAnalysis(labTest?: LabTestIdentity): TrendAnalysisBuildPart {\r\n return new TrendAnalysisBuildPart(this.studyHelperParams, this, labTest);\r\n }\r\n\r\n public testResults(siteId?: number): TestResultsBuildPart {\r\n return new TestResultsBuildPart(this.studyHelperParams, this, siteId);\r\n }\r\n\r\n public sites(): BaseBuildPart {\r\n return new BaseBuildPart(this.studyHelperParams, this, ['sites']);\r\n }\r\n\r\n public sponsorCommunications(): BaseBuildPart {\r\n const categoryId: CategoryNaturalKey = 'sponsor-communications';\r\n return new BaseBuildPart(this.studyHelperParams, this, [categoryId]);\r\n }\r\n\r\n public subjects(subjectId?: string, tab?: string): BaseBuildPart {\r\n const routes = ['subjects'];\r\n\r\n if (subjectId) {\r\n routes.push(subjectId.toString());\r\n\r\n if (tab) {\r\n routes.push(tab);\r\n }\r\n }\r\n\r\n return new BaseBuildPart(this.studyHelperParams, this, routes);\r\n }\r\n\r\n public labReports(): BaseBuildPart {\r\n const labReportsRoutePath = ['lab-reports'];\r\n\r\n return new BaseBuildPart(this.studyHelperParams, this, labReportsRoutePath);\r\n }\r\n\r\n public kitInventory(siteId?: number): KitInventoryBuildPart {\r\n return new KitInventoryBuildPart(this.studyHelperParams, this, siteId); \r\n }\r\n\r\n public tableau(): BaseBuildPart {\r\n const tableauRoutePath = ['tableau'];\r\n\r\n return new BaseBuildPart(this.studyHelperParams, this, tableauRoutePath); \r\n }\r\n\r\n public studyDocuments(childCategory?: Category): BaseBuildPart {\r\n const studyDocumentsRoutePath = 'study-documents';\r\n if (!childCategory) {\r\n return new BaseBuildPart(this.studyHelperParams, this, [studyDocumentsRoutePath]);\r\n }\r\n return new BaseBuildPart(this.studyHelperParams, this, [studyDocumentsRoutePath, childCategory.categoryId]);\r\n }\r\n\r\n public siteDocuments(site?: SponsorStudySiteIdentity, childCategoryId?: CategoryNaturalKey): BaseBuildPart {\r\n const routePaths = ['site-documents'];\r\n if (site != null) {\r\n routePaths.push(site.siteId.toString());\r\n }\r\n if (childCategoryId != null) {\r\n routePaths.push(childCategoryId.toString());\r\n }\r\n\r\n return new BaseBuildPart(this.studyHelperParams, this, routePaths);\r\n }\r\n\r\n public eQueries(siteId?: number): EQueryBuildPart {\r\n return new EQueryBuildPart(this.studyHelperParams, this, siteId);\r\n }\r\n\r\n public resultAlerts(): BaseBuildPart {\r\n const resultAlertsPath = 'result-alerts';\r\n return new BaseBuildPart(this.studyHelperParams, this, [resultAlertsPath]);\r\n }\r\n\r\n public activityReports(): ActivityReportsBuildPart {\r\n return new ActivityReportsBuildPart(this.studyHelperParams, this);\r\n }\r\n}\r\n","import { BaseBuildPart } from './base-build-part';\r\nimport { HelperParams } from './helper-params';\r\nimport { SponsorStudy } from '../../sponsor-dashboard/sponsor-study';\r\nimport { StudyBuildPart } from './study-build-part';\r\n\r\nexport class SponsorBuildPart extends BaseBuildPart {\r\n constructor(private readonly sponsorHelperParams: HelperParams,\r\n parent: BaseBuildPart) {\r\n super(sponsorHelperParams, parent, ['sponsor']);\r\n }\r\n\r\n public study(study: SponsorStudy): StudyBuildPart {\r\n return new StudyBuildPart(this.sponsorHelperParams, this, study);\r\n }\r\n}","import { StudyGroupInfo } from '../../../sample-tracking/group-info/study-group-info';\r\nimport { BaseBuildPart } from '../base-build-part';\r\nimport { HelperParams } from '../helper-params';\r\n\r\nexport class StudyGroupDashboardBuildPart extends BaseBuildPart {\r\n constructor(\r\n private readonly overviewHelperParams: HelperParams,\r\n parent: BaseBuildPart,\r\n studyInfo: StudyGroupInfo) {\r\n super(overviewHelperParams, parent, ['samples', studyInfo.groupPk, 'study-group']);\r\n }\r\n\r\n public overview(): BaseBuildPart {\r\n return new BaseBuildPart(this.overviewHelperParams, this, ['overview']);\r\n }\r\n\r\n public studyGroupDashboard(): BaseBuildPart {\r\n return new BaseBuildPart(this.overviewHelperParams, this, ['study-group']);\r\n }\r\n\r\n public filterSamples(type: string): BaseBuildPart {\r\n return new BaseBuildPart(this.overviewHelperParams, this, ['filter-samples', type]);\r\n }\r\n}\r\n","import { SampleTrackerData, StudyInfo } from '../../../sample-tracking/group-info/study-group-info';\r\nimport { BaseBuildPart } from './../base-build-part';\r\nimport { HelperParams } from './../helper-params';\r\n\r\nexport class ProtocolDashboardBuildPart extends BaseBuildPart {\r\n constructor(\r\n private readonly protocolHelperParams: HelperParams,\r\n parent: BaseBuildPart,\r\n protocolInfo: SampleTrackerData) {\r\n super(protocolHelperParams, parent, ['samples', protocolInfo.protocolFk, 'protocol']);\r\n }\r\n\r\n public protocolDashboard(): BaseBuildPart {\r\n return new BaseBuildPart(this.protocolHelperParams, this, ['protocol']);\r\n }\r\n\r\n public filterSamples(type: string): BaseBuildPart {\r\n return new BaseBuildPart(this.protocolHelperParams, this, ['filter-samples', type]);\r\n }\r\n}\r\n","import { BaseBuildPart } from './../base-build-part';\r\nimport { HelperParams } from './../helper-params';\r\n\r\nexport class SampleTrackingReportBuildPart extends BaseBuildPart {\r\n constructor(\r\n private readonly reportHelperParams: HelperParams,\r\n parent: BaseBuildPart) {\r\n super(reportHelperParams, parent, ['reports']);\r\n }\r\n\r\n public home(): BaseBuildPart {\r\n return new BaseBuildPart(this.reportHelperParams, this, ['overview']);\r\n }\r\n\r\n public GeneratedReports(): BaseBuildPart {\r\n return new BaseBuildPart(this.reportHelperParams, this, ['view', 'generated-reports']);\r\n }\r\n\r\n public ScheduledReports(): BaseBuildPart {\r\n return new BaseBuildPart(this.reportHelperParams, this, ['view', 'scheduled-reports']);\r\n }\r\n\r\n public NewGenerateReport(reportTypeId: number): BaseBuildPart {\r\n return new BaseBuildPart(this.reportHelperParams, this, ['new-report', reportTypeId, 'generate']);\r\n }\r\n\r\n public NewScheduledReport(reportTypeId: number): BaseBuildPart {\r\n return new BaseBuildPart(this.reportHelperParams, this, ['new-report', reportTypeId, 'schedule']);\r\n }\r\n}\r\n","import { StudyGroupInfo } from '../../../sample-tracking/group-info/study-group-info';\r\nimport { BaseBuildPart } from '../base-build-part';\r\nimport { HelperParams } from '../helper-params';\r\n\r\nexport class SampleMonitoringBuildPart extends BaseBuildPart {\r\n constructor(\r\n private readonly helperParam: HelperParams,\r\n parent: BaseBuildPart) {\r\n super(helperParam, parent, ['sample-monitoring']);\r\n }\r\n\r\n public notifications(): BaseBuildPart {\r\n return new BaseBuildPart(this.helperParam, this, ['notifications']);\r\n }\r\n\r\n public notificationRules(): BaseBuildPart {\r\n return new BaseBuildPart(this.helperParam, this, ['notification', 'rules']);\r\n }\r\n\r\n public newRuleForm(): BaseBuildPart {\r\n return new BaseBuildPart(this.helperParam, this, ['new', 'rule']);\r\n }\r\n\r\n public editRuleForm(ruleId: string): BaseBuildPart {\r\n return new BaseBuildPart(this.helperParam, this, ['rule', ruleId]);\r\n }\r\n}\r\n","import { BaseBuildPart } from './../base-build-part';\r\nimport { HelperParams } from './../helper-params';\r\nimport { SampleTrackerData, StudyGroupInfo } from '../../../sample-tracking/group-info/study-group-info';\r\nimport { StudyGroupDashboardBuildPart } from './study-group-dashboard-build-part';\r\nimport { ProtocolDashboardBuildPart } from './protocol-dashboard-build-part';\r\nimport { SampleTrackingReportBuildPart } from './sample-tracking-report-build-part';\r\nimport { SampleMonitoringBuildPart } from './sample-monitoring-build-part';\r\n\r\nexport class SampleTrackingBuildPart extends BaseBuildPart {\r\n constructor(\r\n private readonly sampleTrackingHelperParams: HelperParams,\r\n parent: BaseBuildPart\r\n ) {\r\n super(sampleTrackingHelperParams, parent, ['sampletracking']);\r\n }\r\n\r\n public home(): BaseBuildPart {\r\n return new BaseBuildPart(this.sampleTrackingHelperParams, this, ['home']);\r\n }\r\n\r\n public sampleAliquots(): BaseBuildPart {\r\n return new BaseBuildPart(this.sampleTrackingHelperParams, this, ['samples']);\r\n }\r\n\r\n public sampleMonitoring(): SampleMonitoringBuildPart {\r\n return new SampleMonitoringBuildPart(this.sampleTrackingHelperParams, this);\r\n }\r\n\r\n public report(): SampleTrackingReportBuildPart {\r\n return new SampleTrackingReportBuildPart(this.sampleTrackingHelperParams, this);\r\n }\r\n\r\n public preference(): BaseBuildPart {\r\n return new BaseBuildPart(this.sampleTrackingHelperParams, this, ['preference']);\r\n }\r\n\r\n public studyGroup(studyGroup: StudyGroupInfo): StudyGroupDashboardBuildPart {\r\n return new StudyGroupDashboardBuildPart(this.sampleTrackingHelperParams, this, studyGroup);\r\n }\r\n\r\n public protocolInfo(protocolInfo: SampleTrackerData): ProtocolDashboardBuildPart {\r\n return new ProtocolDashboardBuildPart(this.sampleTrackingHelperParams, this, protocolInfo);\r\n }\r\n\r\n public visitDetails(): BaseBuildPart {\r\n return new BaseBuildPart(this.sampleTrackingHelperParams, this, ['tracking', 'visit']);\r\n }\r\n\r\n public sampleDetails(containerNo: number): BaseBuildPart {\r\n return new BaseBuildPart(this.sampleTrackingHelperParams, this, ['tracking', 'sample', containerNo]);\r\n }\r\n\r\n public subjectSearchResults(subjectID: string): BaseBuildPart {\r\n return new BaseBuildPart(this.sampleTrackingHelperParams, this, ['subject', subjectID, 'search']);\r\n }\r\n\r\n public subjectVisitDetails(subjectID: string): BaseBuildPart {\r\n return new BaseBuildPart(this.sampleTrackingHelperParams, this, ['subject', subjectID, 'visit', 'list']);\r\n }\r\n\r\n public subjectSampleDetails(subjectID: string): BaseBuildPart {\r\n return new BaseBuildPart(this.sampleTrackingHelperParams, this, ['subject', subjectID, 'samples', 'list']);\r\n }\r\n}","import { BaseBuildPart } from './base-build-part';\r\nimport { HelperParams } from './helper-params';\r\nimport { Site } from '../../sites';\r\n\r\nexport class SiteShippingToolBuildPart extends BaseBuildPart {\r\n constructor(\r\n private readonly overviewHelperParams: HelperParams,\r\n parent: BaseBuildPart) {\r\n super(overviewHelperParams, parent, ['shipment']);\r\n }\r\n\r\n public list(): BaseBuildPart {\r\n return new BaseBuildPart(this.overviewHelperParams, this, ['list']);\r\n }\r\n\r\n public createShipment(): BaseBuildPart {\r\n return new BaseBuildPart(this.overviewHelperParams, this, ['create']);\r\n }\r\n\r\n public shipmentSummary(id: number): BaseBuildPart {\r\n return new BaseBuildPart(this.overviewHelperParams, this, [id, 'view', 'summary']);\r\n }\r\n\r\n public shipmentSubmittedSummary(id: number): BaseBuildPart {\r\n return new BaseBuildPart(this.overviewHelperParams, this, [ id, 'submitted', 'summary']);\r\n }\r\n\r\n public resumeShipment(id: number): BaseBuildPart {\r\n return new BaseBuildPart(this.overviewHelperParams, this, ['resume', id]);\r\n }\r\n\r\n public samplesShipmentByProtocol(): BaseBuildPart {\r\n return new BaseBuildPart(this.overviewHelperParams, this, ['protocol-list']);\r\n }\r\n\r\n public details(): BaseBuildPart {\r\n return new BaseBuildPart(this.overviewHelperParams, this, ['details']);\r\n }\r\n}\r\n","import { BaseBuildPart } from './base-build-part';\r\nimport { HelperParams } from './helper-params';\r\nimport { SiteShippingToolBuildPart } from './site-shipping-tool-build-part';\r\n\r\nexport class SampleManagementBuildPart extends BaseBuildPart {\r\n constructor(\r\n private readonly overviewHelperParams: HelperParams,\r\n parent: BaseBuildPart) {\r\n super(overviewHelperParams, parent, ['sample-management']);\r\n }\r\n\r\n public pendingRegistration(): BaseBuildPart {\r\n return new BaseBuildPart(this.overviewHelperParams, this, ['pending', 'registration' , 'list']);\r\n }\r\n\r\n public registeredSamples(): BaseBuildPart {\r\n return new BaseBuildPart(this.overviewHelperParams, this, ['registered', 'samples', 'list']);\r\n }\r\n\r\n public registerNewSample(): BaseBuildPart {\r\n return new BaseBuildPart(this.overviewHelperParams, this, ['sample', 'registration']);\r\n }\r\n\r\n public resumeRegistration(): BaseBuildPart {\r\n return new BaseBuildPart(this.overviewHelperParams, this, ['resume', 'sample', 'registration']);\r\n }\r\n\r\n public siteShipping(): SiteShippingToolBuildPart {\r\n return new SiteShippingToolBuildPart(this.overviewHelperParams, this);\r\n }\r\n\r\n}\r\n","import { BaseBuildPart } from './base-build-part';\r\nimport { HelperParams } from './helper-params';\r\nimport { Site } from '../../sites';\r\nimport { PRIMARY_OUTLET } from '@angular/router';\r\nimport { AdminBuildPart } from './admin-build-part';\r\nimport { GlobalPopupBuildPart } from './global-popup-build-part';\r\nimport { SiteBuildPart } from './site-build-part';\r\nimport { SponsorBuildPart } from './sponsor-build-part';\r\nimport { SampleTrackingBuildPart } from './sample-tracking/sample-tracking-build-part';\r\nimport { SiteShippingToolBuildPart } from './site-shipping-tool-build-part';\r\nimport { SampleManagementBuildPart } from './sample-management-build-part';\r\n\r\nexport class EsaBuildPart extends BaseBuildPart {\r\n constructor(private readonly esaHelperParams: HelperParams) {\r\n super(esaHelperParams, null, []);\r\n }\r\n\r\n public admin(): AdminBuildPart {\r\n return new AdminBuildPart(this.esaHelperParams, this);\r\n }\r\n\r\n public sponsor(): SponsorBuildPart {\r\n return new SponsorBuildPart(this.esaHelperParams, this);\r\n }\r\n\r\n public site(site: Site): SiteBuildPart {\r\n return new SiteBuildPart(this.esaHelperParams, this, site);\r\n }\r\n\r\n public globalPopup(): GlobalPopupBuildPart {\r\n return new GlobalPopupBuildPart(this.esaHelperParams, this);\r\n }\r\n\r\n public user(): BaseBuildPart {\r\n return new BaseBuildPart(this.esaHelperParams, this, ['user']);\r\n }\r\n\r\n public login(): BaseBuildPart {\r\n return new BaseBuildPart(this.esaHelperParams, this, ['login']);\r\n }\r\n\r\n public sampletracking(): SampleTrackingBuildPart {\r\n return new SampleTrackingBuildPart(this.esaHelperParams, this);\r\n }\r\n\r\n public logout(): BaseBuildPart {\r\n const outlets: { [outletName: string]: string[]; } = {};\r\n outlets[PRIMARY_OUTLET] = ['logout'];\r\n outlets[this.outletName] = null;\r\n\r\n return new BaseBuildPart(this.esaHelperParams, this, [{ outlets: outlets }]);\r\n }\r\n\r\n public terms(): BaseBuildPart {\r\n return new BaseBuildPart(this.esaHelperParams, this, ['terms-and-conditions']);\r\n }\r\n\r\n public portaldisclaimer(): BaseBuildPart {\r\n return new BaseBuildPart(this.esaHelperParams, this, ['disclaimer']);\r\n }\r\n\r\n public navigateToReturnUrl(): Promise {\r\n const returnUrl = this.esaHelperParams.router.routerState.snapshot.root.queryParams[this.returnUrlQueryKey];\r\n\r\n if (returnUrl) {\r\n const url = decodeURIComponent(returnUrl);\r\n return this.esaHelperParams.router.navigateByUrl(url);\r\n }\r\n\r\n return this.navigate();\r\n }\r\n\r\n public sampleManagement(): SampleManagementBuildPart {\r\n return new SampleManagementBuildPart(this.esaHelperParams, this);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { Router, UrlSerializer } from '@angular/router';\r\nimport { EsaBuildPart } from './esa-build-part';\r\n\r\n@Injectable()\r\nexport class UrlBuilder {\r\n constructor(private readonly router: Router,\r\n private readonly location: Location,\r\n private readonly urlSerializer: UrlSerializer) { }\r\n\r\n public esa(): EsaBuildPart {\r\n return new EsaBuildPart({router: this.router, location: this.location, urlSerializer: this.urlSerializer});\r\n }\r\n}","import { LabTestResult } from '../lab-test-results';\r\nimport { Selection, select } from 'd3';\r\nimport { CvdChartData, BoxplotData, CvdChartDataValue } from '@covance/ng-cvd3';\r\nimport { LabTrendsChartDataValue } from './trends-chart-data-builder';\r\nimport { ChartLegendItem } from '../legend';\r\nimport { isEmpty, chain } from 'lodash';\r\n\r\nconst FEMALE_COLOR = '#F06292'; \r\nconst MALE_COLOR = '#4FC3F7';\r\nconst DEFAULT_COLOR = '#609EC9';\r\n\r\nexport function getShapeByGender(gender: string) {\r\n switch ((gender || '').toLowerCase()) {\r\n case 'male':\r\n case 'm':\r\n return 'triangle-down';\r\n case 'female':\r\n case 'f':\r\n return 'triangle-up';\r\n default:\r\n return 'circle';\r\n }\r\n}\r\n\r\nexport function getColorByGender(gender: string) {\r\n switch ((gender || '').toLowerCase()) {\r\n case 'male':\r\n case 'm':\r\n return MALE_COLOR;\r\n case 'female':\r\n case 'f':\r\n return FEMALE_COLOR;\r\n default:\r\n return DEFAULT_COLOR;\r\n }\r\n}\r\n\r\nexport function getSexLabelByShape(shape: string) {\r\n switch (shape) {\r\n case 'triangle-up':\r\n return 'female';\r\n case 'triangle-down':\r\n return 'male';\r\n default:\r\n return 'unknown';\r\n }\r\n}\r\n\r\nexport class FlaggedClassNames {\r\n public static readonly high = 'flagged-high';\r\n public static readonly low = 'flagged-low';\r\n public static readonly other = 'flagged-other';\r\n public static readonly nonFlagged = 'non-flagged';\r\n}\r\n\r\nexport function getFlaggedClassName(labTestResult: LabTestResult): string {\r\n if (!labTestResult.isFlagged) {\r\n return FlaggedClassNames.nonFlagged;\r\n }\r\n\r\n if (labTestResult.alertFlag) {\r\n const alertFlag = labTestResult.alertFlag.toUpperCase();\r\n\r\n if (alertFlag.startsWith('H')) {\r\n return FlaggedClassNames.high;\r\n }\r\n\r\n if (alertFlag.startsWith('L')) {\r\n return FlaggedClassNames.low;\r\n }\r\n }\r\n\r\n return FlaggedClassNames.other;\r\n}\r\n\r\nexport function canBeUsedInCharts(r: LabTestResult) {\r\n return !r.isCancelled && \r\n r.currentResult && \r\n r.currentResult.numericResult !== null &&\r\n !r.isQuestion;\r\n}\r\n\r\nexport function canBeUsedInTrends(r: LabTestResult) {\r\n return canBeUsedInCharts(r) && r.visitCollectionDate;\r\n}\r\n\r\nconst pointsSelector = '.cv-scatter g.cv-groups g.cv-group path.cv-point';\r\nconst linesSelector = '.cv-wrap g.cv-groups g.cv-group path.cv-line';\r\nconst opaqueClassName = 'opaque';\r\nconst hiddienClassName = 'cvdhidden';\r\n\r\nfunction classedAllLineChartElements(svgChart: Selection[], HTMLElement, any>, className: string, onOfSwitch: boolean) {\r\n [linesSelector, pointsSelector]\r\n .forEach(selector => {\r\n svgChart.selectAll(selector)\r\n .classed(className, onOfSwitch);\r\n });\r\n}\r\n\r\nfunction classedSelectedLineChartElements(svgChart: Selection[], HTMLElement, any>, className: string, selectedRows: number[]) {\r\n svgChart.selectAll(linesSelector)\r\n .classed(className, (d) => {\r\n return !d.length || selectedRows.indexOf(d[0].rows[0]) !== -1;\r\n });\r\n\r\n svgChart.selectAll(pointsSelector)\r\n .classed(className, (d) => selectedRows.indexOf(d.rows[0]) !== -1);\r\n}\r\n\r\nfunction removeClassFromAllLineChartElements(svgChart: Selection[], HTMLElement, any>, className: string) {\r\n classedAllLineChartElements(svgChart, className, false);\r\n}\r\n\r\nexport function hideAllButSelectedSubjects(svgChart: Selection[], HTMLElement, any>, selectedItems: ChartLegendItem[], data: LabTestResult[]) {\r\n if (isEmpty(selectedItems)) {\r\n removeClassFromAllLineChartElements(svgChart, hiddienClassName);\r\n return;\r\n }\r\n const selectedSubjectsIds = selectedItems.map(i => i.key);\r\n const selectedTests = data\r\n .filter(test => selectedSubjectsIds.indexOf(test.ctSubjectId) === -1)\r\n .map(e => e.labTestId);\r\n \r\n classedSelectedLineChartElements(svgChart, hiddienClassName, selectedTests);\r\n}\r\n\r\nexport function opaqueAllButSelectedSubjects(svgChart: Selection[], HTMLElement, any>, selectedItem: ChartLegendItem, data: LabTestResult[]) {\r\n const selectedTests = data.filter(p => p.ctSubjectId !== selectedItem.key).map(e => e.labTestId);\r\n classedSelectedLineChartElements(svgChart, opaqueClassName, selectedTests);\r\n}\r\n\r\nexport function removeOpacityFromAllElements(svgChart: Selection[], HTMLElement, any>) {\r\n removeClassFromAllLineChartElements(svgChart, opaqueClassName);\r\n}\r\n\r\nexport function getOutliers() {\r\n return select('.cvd3-chart').selectAll('.cv-outlier');\r\n}\r\n\r\nexport function clearOutliers() {\r\n getOutliers().remove();\r\n}\r\n\r\nexport function buildBoxPlotGenderLegend(data: CvdChartData[], isGendersSplited: boolean) {\r\n if (isEmpty(data)) {\r\n return [];\r\n }\r\n\r\n let genders: string[];\r\n if (isGendersSplited) {\r\n genders = data.map(d => d.key);\r\n } else {\r\n const outliers = getOutliers().data() as BoxplotData[];\r\n genders = chain(outliers)\r\n .map(dataPoint => dataPoint.shape)\r\n .uniq()\r\n .map(shape => getSexLabelByShape(shape))\r\n .value();\r\n }\r\n return chain(genders).map(g => ({\r\n shape: getShapeByGender(g),\r\n color: isGendersSplited ? getColorByGender(g) : getColorByGender(''),\r\n label: g,\r\n key: null\r\n }))\r\n .orderBy(l => l.label.toLowerCase())\r\n .value();\r\n}\r\n\r\nexport function boxPlotVisitTickRenderrer(groupKey: string, results: LabTestResult[]) {\r\n if (isEmpty(results)) {\r\n return '';\r\n }\r\n\r\n var result = results.find(r => r.visitCode === groupKey);\r\n return result && result.visitName || '';\r\n}\r\n\r\nexport function boxPlotSiteTickRenderrer(groupKey: string, results: LabTestResult[]) {\r\n if (isEmpty(results)) {\r\n return '';\r\n }\r\n\r\n var result = results.find(r => r.siteNumber === groupKey);\r\n return result && result.siteNumber || '';\r\n}","export class PageTitle {\r\n\r\n public static getSponsorTitle(title?: string): string {\r\n return PageTitle.getTitle('Sponsor Portal', title);\r\n }\r\n\r\n public static getAdminTitle(title?: string) {\r\n return PageTitle.getTitle('Investigator Portal', title);\r\n }\r\n\r\n public static getInvestigatorTitle(title?: string) {\r\n return PageTitle.getTitle('Investigator Portal', title);\r\n }\r\n\r\n private static getTitle(mainTitle: string, subTitle: string): string {\r\n if (! subTitle) {\r\n return mainTitle;\r\n }\r\n\r\n return `${mainTitle} - ${subTitle}`;\r\n }\r\n}","import { isEmpty, isNil } from 'lodash';\r\nimport { LabTestResultGridRowItem } from '../on-screen-results/grid-row-item';\r\nimport { SubjectColumnParams } from '../on-screen-results/standard-test-results/osr-subject-columns-renderer.component';\r\n\r\n\r\nexport class SubjectTitleRenderer {\r\n public static get removedSubjectLabel() {\r\n return 'Removed';\r\n }\r\n\r\n public static renderTitle(x: SubjectTitleGetterParams): string {\r\n const result = [x.data.subjectNumber, x.data.initials];\r\n\r\n if (!x.data.zcSubjectId ) {\r\n return this.removedSubjectLabel;\r\n }\r\n\r\n const numberAndInitials = result.filter(item => !isEmpty(item)).join(' - ');\r\n\r\n if (numberAndInitials) {\r\n return numberAndInitials;\r\n }\r\n\r\n if (x.data.screeningNumber) {\r\n return x.data.screeningNumber;\r\n }\r\n\r\n return `No ID (ZC${x.data.zcSubjectId})`;\r\n }\r\n\r\n public static renderSubjectTitle(x: LabTestResultGridRowItem): SubjectColumnParams {\r\n const subjectNumberAndInitials = this.renderTitle(x);\r\n const subjectInfo: string[] = [];\r\n\r\n if (!!subjectNumberAndInitials) {\r\n subjectInfo.push(subjectNumberAndInitials);\r\n if (subjectNumberAndInitials !== this.removedSubjectLabel) {\r\n const emptyChar = ': ';\r\n if (!!x.data.screeningNumber) {\r\n subjectInfo.push(`: (${x.data.screeningNumber})`);\r\n } else {\r\n subjectInfo.push(emptyChar);\r\n }\r\n if (!isNil(x.data.age)) {\r\n subjectInfo.push(`: ${x.data.age} : ${x.data.ageUnit}`);\r\n } else {\r\n subjectInfo.push(emptyChar + emptyChar);\r\n }\r\n if (!isNil(x.data.ageProjectDisplayValue)) {\r\n subjectInfo.push(`: ${x.data.ageProjectDisplayValue} `);\r\n } else {\r\n subjectInfo.push(emptyChar + emptyChar);\r\n }\r\n if (!!x.data.sex) {\r\n subjectInfo.push(`: ${x.data.sex}`);\r\n } else {\r\n subjectInfo.push(emptyChar);\r\n }\r\n }\r\n }\r\n\r\n subjectInfo.push(`:${x.data.exportSortId}`);\r\n\r\n const result = {\r\n subjectNumberAndInitials: subjectNumberAndInitials,\r\n screeningNumber: x.data.screeningNumber,\r\n age: x.data.age,\r\n ageProjectDisplayValue: x.data.ageProjectDisplayValue,\r\n gender: x.data.sex,\r\n exportSortId: x.data.exportSortId,\r\n text: subjectNumberAndInitials,\r\n routerLink: [''],\r\n toString: () => subjectInfo.join(' ')\r\n };\r\n\r\n return result;\r\n }\r\n\r\n public static renderSubjectNumberOrScreening(data: SubjectNumberOrScreeningParams): string {\r\n return data.subjectNumber\r\n ? data.subjectNumber\r\n : data.screeningNumber || '';\r\n }\r\n}\r\n\r\ninterface SubjectTitleGetterParams {\r\n data: {\r\n subjectNumber: string;\r\n initials: string;\r\n screeningNumber: string;\r\n zcSubjectId: string;\r\n };\r\n}\r\n\r\ninterface SubjectNumberOrScreeningParams {\r\n subjectNumber: string;\r\n screeningNumber: string;\r\n}","import { isNil } from 'lodash';\r\nimport * as moment from 'moment';\r\nimport { DATE_TIME_FORMAT } from './formatters';\r\nimport { LinkParams } from '../covance-ag-grid';\r\nimport { Distance } from '../shared';\r\n\r\nlet stringCollator: Intl.Collator;\r\nlet numericStringCollator: Intl.Collator;\r\n\r\nif (window.hasOwnProperty('Intl') && Intl.Collator) {\r\n stringCollator = new Intl.Collator(undefined, { numeric: false, sensitivity: 'base' });\r\n numericStringCollator = new Intl.Collator(undefined, { numeric: true, sensitivity: 'base' });\r\n console.debug('Collator API is available');\r\n}\r\n\r\nexport const comparators = {\r\n stringComparator: getStringComparator(numericStringCollator),\r\n mixedStringComparator: getStringComparator(stringCollator),\r\n\r\n dateTimeComparator(valueA: string | moment.Moment, valueB: string | moment.Moment) {\r\n\r\n const missingValuesComparison = missingValuesComparer(valueA, valueB);\r\n if (missingValuesComparison !== null) {\r\n return missingValuesComparison;\r\n }\r\n\r\n const momentA = (typeof valueA === 'string') ? moment(valueA, DATE_TIME_FORMAT) : valueA;\r\n const momentB = (typeof valueB === 'string') ? moment(valueB, DATE_TIME_FORMAT) : valueB;\r\n\r\n const isMomentAValid = momentA && momentA.isValid();\r\n const isMomentBValid = momentB && momentB.isValid();\r\n if (isMomentAValid && isMomentBValid) {\r\n if (momentA.isAfter(momentB)) {\r\n return 1;\r\n }\r\n if (momentA.isBefore(momentB)) {\r\n return -1;\r\n }\r\n return 0;\r\n }\r\n if (isMomentAValid && !isMomentBValid) {\r\n return 1;\r\n }\r\n if (!isMomentAValid && isMomentBValid) {\r\n return -1;\r\n }\r\n return 0;\r\n },\r\n\r\n numberComparator(valueA: number, valueB: number) {\r\n const missingValuesComparison = missingValuesComparer(valueA, valueB);\r\n if (missingValuesComparison !== null) {\r\n return missingValuesComparison;\r\n }\r\n\r\n return valueA - valueB;\r\n },\r\n\r\n linkParamsComparator(a: LinkParams, b: LinkParams) {\r\n const valueA = a ? a.text : null;\r\n const valueB = b ? b.text : null;\r\n return comparators.mixedStringComparator(valueA, valueB);\r\n },\r\n\r\n linkNumberParamsComparator(a: LinkParams, b: LinkParams) {\r\n const valueA = a ? a.text : null;\r\n const valueB = b ? b.text : null;\r\n return comparators.numberComparator(+valueA, +valueB);\r\n },\r\n\r\n distanceComparator(a: Distance, b: Distance) {\r\n const valueA = a ? a.ticks : null;\r\n const valueB = b ? b.ticks : null;\r\n return comparators.numberComparator(valueA, valueB);\r\n }\r\n};\r\n\r\n///returns number if one or two values are missing and null if not.\r\nfunction missingValuesComparer(valueA: any, valueB: any) {\r\n const valueAMissing = isNil(valueA);\r\n const valueBMissing = isNil(valueB);\r\n\r\n if (valueAMissing && valueBMissing) {\r\n return 0;\r\n }\r\n if (valueAMissing) {\r\n return -1;\r\n }\r\n if (valueBMissing) {\r\n return 1;\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction getStringComparator(collator: Intl.Collator) {\r\n return (valueA: string | number, valueB: string | number): number => {\r\n const missingValuesComparison = missingValuesComparer(valueA, valueB);\r\n if (missingValuesComparison !== null) {\r\n return missingValuesComparison;\r\n }\r\n\r\n const stringValueA = valueA.toString();\r\n const stringValueB = valueB.toString();\r\n\r\n return collator\r\n ? collator.compare(stringValueA, stringValueB)\r\n : stringValueA.localeCompare(stringValueB, undefined, { numeric: collator.resolvedOptions().numeric });\r\n };\r\n}\r\n","export class TooltipItem {\r\n public labelText = '';\r\n public labelClass = '';\r\n public contentText = '';\r\n public contentClass = '';\r\n\r\n constructor(labelText?: string, contentText?: string) {\r\n if (labelText) {\r\n this.labelText = labelText;\r\n }\r\n\r\n if (contentText) {\r\n this.contentText = contentText;\r\n }\r\n }\r\n}","import {Pipe, PipeTransform} from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport {formatters} from './../core';\r\n\r\n@Pipe({\r\n name: 'formatDate'\r\n})\r\nexport class FormatDatePipe implements PipeTransform {\r\n public transform(value: moment.Moment): string {\r\n return formatters.formatDate(value);\r\n }\r\n}","import {Pipe, PipeTransform} from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport {formatters} from './../core';\r\n\r\n@Pipe({\r\n name: 'formatDateTime'\r\n})\r\nexport class FormatDateTimePipe implements PipeTransform {\r\n public transform(value: moment.Moment): string {\r\n return formatters.formatDateTime(value);\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safeHtml'\r\n})\r\nexport class SafeHtmlPipe implements PipeTransform {\r\n constructor(private sanitizer: DomSanitizer) { }\r\n\r\n public transform(value: string) {\r\n return this.sanitizer.bypassSecurityTrustHtml(value);\r\n }\r\n}","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { UnitOption } from '../lab-test-results';\r\nimport { UnitStorage } from '../user/unit-storage';\r\n\r\n@Component({\r\n selector: 'unit-selector',\r\n template: require('./unit-selector.component.html'),\r\n styles: [require('./unit-selector.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class UnitSelectorComponent {\r\n public readonly unitOptions: UnitOption[];\r\n public selectedUnitOption: Observable;\r\n\r\n constructor(private readonly unitStorage: UnitStorage) {\r\n this.unitOptions = unitStorage.unitOptions;\r\n this.selectedUnitOption = unitStorage.currentUnit;\r\n }\r\n\r\n public onUnitChanged(option: UnitOption) {\r\n this.unitStorage.setUnit(option);\r\n }\r\n}\r\n","import { UserStorage } from './../user/user-storage';\r\nimport { AuthenticationState } from './../authentication/authentication-state';\r\nimport {Component, ChangeDetectionStrategy} from '@angular/core';\r\nimport { ActivatedRoute, Params } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport {UrlBuilder} from '../core/url-builder/url-builder';\r\nimport { Settings, Link, CorporateMandate} from '../core/settings';\r\nimport { map, publishReplay, refCount } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'footer',\r\n template: require('./footer.component.html'),\r\n styles: [require('./footer.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class FooterComponent {\r\n public copyright: CorporateMandate;\r\n public version: CorporateMandate;\r\n public privacyLink: Link;\r\n public contactUsLink: Observable;\r\n public termsAndConditionsLink: string[];\r\n public disclaimerLink: string[];\r\n public queryParams$: Observable;\r\n public isAuthenticated$: Observable;\r\n public isUserLoggedIn: boolean;\r\n\r\n constructor(urlBuilder: UrlBuilder, settings: Settings, authState: AuthenticationState, route: ActivatedRoute, userStorage: UserStorage) {\r\n this.queryParams$ = route.queryParams;\r\n this.copyright = settings.corporateMandatesDictionary['copyright'];\r\n this.version = settings.corporateMandatesDictionary['version'];\r\n this.privacyLink = settings.linksDictionary['privacy-policy'];\r\n this.isAuthenticated$ = authState.authInfo.pipe(map(a => a.isAuthenticated));\r\n this.isAuthenticated$.subscribe(val => { this.isUserLoggedIn = val; });\r\n if (this.isUserLoggedIn) {\r\n this.contactUsLink = userStorage.currentUser\r\n .pipe(\r\n map(u => u.isSponsor ? settings.linksDictionary['contact-us-sponsor'] : settings.linksDictionary['contact-us']),\r\n publishReplay(1),\r\n refCount());\r\n } else {\r\n this.contactUsLink = settings.getSubDomain()\r\n .pipe(\r\n map(appSubDomain => appSubDomain === 'xsp' ? settings.linksDictionary['contact-us-sponsor'] : settings.linksDictionary['contact-us']),\r\n );\r\n }\r\n this.termsAndConditionsLink = urlBuilder.esa().globalPopup().terms().url();\r\n this.disclaimerLink = urlBuilder.esa().globalPopup().portaldisclaimer().url();\r\n }\r\n}","import { Component, ChangeDetectionStrategy, Input, Output, EventEmitter, OnInit, OnDestroy, ChangeDetectorRef, OnChanges } from '@angular/core';\r\nimport { ActivatedRoute, Router, Params } from '@angular/router';\r\nimport { isEmpty, forIn, find } from 'lodash';\r\nimport { Observable, Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'covance-dropdown-select',\r\n template: require('./covance-dropdown-select.component.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CovanceSelectDropdownComponent implements OnInit, OnChanges, OnDestroy {\r\n @Input()\r\n public queryParam: string;\r\n\r\n @Input()\r\n public selectedItem: any;\r\n\r\n @Input()\r\n public dataSource: Observable;\r\n\r\n @Input()\r\n public items: any[];\r\n\r\n @Input()\r\n public emptyValue: string;\r\n\r\n @Input()\r\n public valueGetter: (item: any) => string;\r\n\r\n @Input()\r\n public textGetter: (item: any) => string;\r\n\r\n @Output()\r\n public onChange = new EventEmitter();\r\n\r\n private subscription: Subscription;\r\n\r\n constructor(protected router: Router, protected activatedRoute: ActivatedRoute, private changeDetectorRef: ChangeDetectorRef) { }\r\n\r\n public ngOnInit() {\r\n if (this.dataSource) {\r\n this.subscription = this.dataSource.subscribe((items) => {\r\n this.items = items;\r\n this.selectItemByQueryParam();\r\n this.changeDetectorRef.markForCheck();\r\n });\r\n }\r\n }\r\n\r\n public ngOnChanges() {\r\n this.selectItemByQueryParam();\r\n }\r\n\r\n public change($event: any) {\r\n const queryParams: Params = {};\r\n forIn(this.activatedRoute.snapshot.queryParams, (value: string, key: string) => {\r\n queryParams[key] = value;\r\n });\r\n\r\n queryParams[this.queryParam] = this.getValue($event);\r\n\r\n this.router.navigate([], {\r\n queryParams: queryParams,\r\n relativeTo: this.activatedRoute,\r\n replaceUrl: true\r\n });\r\n\r\n this.onChange.emit($event);\r\n }\r\n\r\n public selectItemByQueryParam() {\r\n if (!isEmpty(this.items)) {\r\n\r\n if (this.queryParam) {\r\n const queryParamValue = this.activatedRoute.snapshot.queryParams[this.queryParam];\r\n const selectedItem = find(this.items, (item: any) => this.getValue(item) === queryParamValue);\r\n\r\n if (selectedItem) {\r\n this.selectedItem = selectedItem;\r\n }\r\n }\r\n\r\n if (this.onChange) {\r\n this.onChange.emit(this.selectedItem);\r\n }\r\n }\r\n }\r\n\r\n public ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n private getValue(item: any): string {\r\n if (!item) {\r\n return item;\r\n }\r\n\r\n if (this.valueGetter) {\r\n return this.valueGetter(item);\r\n }\r\n\r\n return item;\r\n }\r\n\r\n private getText(item: any): string {\r\n if (this.textGetter) {\r\n return this.textGetter(item);\r\n }\r\n\r\n return this.getValue(item);\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'millisecondsConverter' })\r\nexport class MillisecondsConverterPipe implements PipeTransform {\r\n public transform(value: number, args: string[]): any {\r\n return this.millisToMinutesAndSeconds(value);\r\n }\r\n\r\n private millisToMinutesAndSeconds(milliseconds: number): string {\r\n const minutes = Math.floor(milliseconds / 60000);\r\n const seconds = ((milliseconds % 60000) / 1000);\r\n return (seconds === 60 ? (minutes + 1) + ':00' : minutes + ':' + (seconds < 10 ? '0' : '') + seconds.toFixed(0));\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { UserPreferencesStorage } from './user-preferences-storage';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n ],\r\n providers: [\r\n UserPreferencesStorage,\r\n ],\r\n})\r\nexport class UserPreferencesModule { }\r\n","import {Component, ChangeDetectionStrategy, Input, ViewChild} from '@angular/core';\r\nimport { MdlTextFieldComponent } from '@angular-mdl/core';\r\nimport { FormControl } from '@angular/forms';\r\n@Component({\r\n selector: 'clearable-textfield',\r\n template: require('./clearable-textfield.component.html'),\r\n styles: [require('./clearable-textfield.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ClearableTextfield {\r\n\r\n @ViewChild('searchText')\r\n public selectFilterComponent: MdlTextFieldComponent;\r\n\r\n @Input()\r\n public control: FormControl;\r\n\r\n @Input()\r\n public label: string;\r\n\r\n public resetFilter() {\r\n this.control.reset();\r\n this.selectFilterComponent.setFocus();\r\n }\r\n}","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'covance-expansion-panel',\r\n template: require('./covance-expansion-panel.component.html'),\r\n styles: [require('./covance-expansion-panel.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CovanceExpansionPanelComponent {\r\n @Input()\r\n public isToggled: boolean;\r\n\r\n public toggle(): void {\r\n this.isToggled = !this.isToggled;\r\n }\r\n}\r\n","import {\r\n ChangeDetectorRef, ElementRef, EventEmitter,\r\n HostListener, Input, OnChanges, OnDestroy, Output\r\n} from '@angular/core';\r\nimport { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { orderBy } from 'lodash';\r\nimport { GridDetails, GridData, GridHeader, GridEvent, CheckBoxEvent } from '../../../sample-tracking/tracking-overview/interfaces/grid';\r\nimport { Pager } from '../pagination/pagination.component';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { TrackingGridService } from '../tracking-grid.service';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\n\r\n@Component({\r\n selector: 'app-tracking-grid',\r\n template: require('./tracking-grid.component.html'),\r\n styles: [require('./tracking-grid.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TrackingGridComponent implements OnChanges, OnDestroy {\r\n\r\n @Input()\r\n public grid: GridDetails;\r\n\r\n @Input()\r\n public isLoadingCompleted: boolean;\r\n\r\n @Input()\r\n public showPagination: boolean;\r\n\r\n @Input()\r\n public showSearchOrFilter: boolean;\r\n\r\n @Input()\r\n public setDefaultWidth = true;\r\n\r\n @Input()\r\n public paginationPagePerItems = [10, 50, 100, 200];\r\n\r\n @Input()\r\n public initialPageSize = 10;\r\n\r\n @Input()\r\n public loadingText = 'Loading Aliquots Details...';\r\n\r\n @Input()\r\n public emptyDataPlaceHolder = 'No Aliquots available.';\r\n\r\n @Input()\r\n public skipDefaultOrderBy = false;\r\n\r\n @Input()\r\n public hideDefaultSortIcon = true;\r\n\r\n @Input()\r\n public defaultOrderByField = 'accessionNumber';\r\n\r\n @Input()\r\n public draggableColumn = false;\r\n\r\n @Input()\r\n public defaultSortingOrder = 'asc';\r\n\r\n @Input()\r\n public loadColumnFilterOnChange = true;\r\n\r\n @Input()\r\n public handleDateTimeFormat = true;\r\n\r\n @Input()\r\n public showChildRows = false;\r\n\r\n @Input()\r\n public reasonList: { header: string, otherReason?: string, list: { key: string, value: string, showOther?: boolean }[] };\r\n\r\n @Output()\r\n public onRowSelected: EventEmitter = new EventEmitter();\r\n\r\n @Output()\r\n public onItemClick: EventEmitter = new EventEmitter();\r\n\r\n @Output()\r\n public onColumnOrderChange: EventEmitter = new EventEmitter();\r\n\r\n @Output()\r\n public onDropDownSelect: EventEmitter = new EventEmitter();\r\n\r\n @Output()\r\n public onReasonSelect: EventEmitter = new EventEmitter();\r\n\r\n @Output()\r\n public onSubmitted: EventEmitter = new EventEmitter();\r\n\r\n public filterData: GridData[];\r\n\r\n public paginationData: GridData[];\r\n\r\n public gridCount: number;\r\n\r\n public currentPage = 1;\r\n\r\n public pager = { currentPage: this.currentPage, pageSize: this.initialPageSize } as Pager;\r\n public selectedElement: HTMLElement = null;\r\n public selectedelementId = '';\r\n private headerSearchValue: Subject<{}> = new Subject<{}>();\r\n private searchSubscription: Subscription;\r\n\r\n\r\n constructor(\r\n private changeDectRef: ChangeDetectorRef,\r\n private gridService: TrackingGridService\r\n ) {\r\n this.searchSubscription = this.headerSearchValue.pipe(\r\n debounceTime(200),\r\n ).subscribe((searchData: { headerKey: string, text: string }) => {\r\n const headerKey = searchData.headerKey as keyof GridData;\r\n const selectedHeader = this.grid.header.filter((gh: GridHeader) => gh.key === headerKey)[0];\r\n if (selectedHeader) {\r\n selectedHeader.headerSearchText = searchData.text;\r\n }\r\n this.paginationData = this.gridService.searchOnFilterCheckBoxChange(\r\n this.grid,\r\n this.gridService.onHeaderSearch(this.grid, this.grid.data));\r\n\r\n this.setPagination(this.paginationData);\r\n });\r\n }\r\n\r\n @HostListener('document:click', ['$event.target'])\r\n public onOutsideClick(targetElement: HTMLElement): void {\r\n if (targetElement &&\r\n (targetElement.className !== 'filter-menu is-active') &&\r\n (targetElement.className !== 'filter-img') &&\r\n (targetElement.offsetParent &&\r\n targetElement.offsetParent.className !== 'filter-menu is-active')) {\r\n const isFilterMenuActive = document.getElementsByClassName('filter-menu is-active').length;\r\n if (isFilterMenuActive) {\r\n this.onFilterClick('');\r\n }\r\n }\r\n }\r\n\r\n public ngOnChanges(): void {\r\n if (this.pager.pageSize !== this.initialPageSize) {\r\n this.pager.pageSize = this.initialPageSize;\r\n }\r\n this.paginationData = [];\r\n\r\n if (this.grid && this.grid.data && this.grid.data.length) {\r\n if (!this.skipDefaultOrderBy) {\r\n this.grid.header.forEach((gh: GridHeader) => {\r\n gh.sort = gh.key === this.defaultOrderByField ? this.defaultSortingOrder : null;\r\n });\r\n }\r\n\r\n this.paginationData = this.skipDefaultOrderBy ? this.grid.data : orderBy(this.grid.data, [this.defaultOrderByField], [this.defaultSortingOrder]);\r\n if (this.showSearchOrFilter) {\r\n setTimeout(() => { this.gridService.setUniqueValues(this.grid); }, 0);\r\n }\r\n\r\n }\r\n this.setPagination(this.paginationData);\r\n }\r\n\r\n /*\r\n works when sorting changes on header.\r\n */\r\n public sort(header: GridHeader) {\r\n this.grid.header.forEach((gh: GridHeader) => {\r\n if (gh.key === header.key && this.grid.data && this.grid.data.length) {\r\n gh.sort = (gh.sort === 'asc' ? 'desc' : gh.sort === 'desc' ? 'asc' : gh.sort === null ? 'asc' : null);\r\n this.paginationData = this.gridService.sortByHeader((!gh.sort || gh.sort === 'asc'), header, this.paginationData);\r\n } else {\r\n gh.sort = null;\r\n }\r\n });\r\n\r\n this.pager.currentPage = 1;\r\n this.setPagination(this.paginationData);\r\n }\r\n\r\n /*\r\n works on column data click\r\n emit event to parent component\r\n */\r\n public onGridItemClick(header: GridHeader, data: GridData, isChild = false) {\r\n this.onItemClick.emit({ data, header, isChild });\r\n }\r\n\r\n /*\r\n works when header search box value changes\r\n */\r\n public onHeaderSearchBoxChange(headerKey: string, searchText: string) {\r\n const searchData = {\r\n headerKey,\r\n text: searchText\r\n };\r\n this.pager.currentPage = 1;\r\n const selectedHeader = this.grid.header.filter((gh: GridHeader) => gh.key === headerKey)[0];\r\n if (selectedHeader) {\r\n selectedHeader.headerSearchText = searchData.text;\r\n }\r\n this.paginationData = this.gridService.searchOnFilterCheckBoxChange(\r\n this.grid,\r\n this.gridService.onHeaderSearch(this.grid, this.grid.data));\r\n this.setPagination(this.paginationData);\r\n }\r\n\r\n /* \r\n works when typing on filter menu search box \r\n used to filter unique items \r\n */\r\n public onFilterSearchBoxChange(headerKey: string, searchText: string) {\r\n const selectedHeader = this.grid.header.filter(gh => gh.key === headerKey)[0];\r\n if (selectedHeader) {\r\n selectedHeader.filteredUniqueItems = selectedHeader.uniqueItems.\r\n filter(item => item.label.toLowerCase().indexOf(searchText.toLowerCase()) !== -1);\r\n }\r\n }\r\n\r\n /* \r\n works on checkbox change inside filter menu.\r\n used to select/unselect checkboxes.\r\n */\r\n public onFilterCheckBoxChange(ce: CheckBoxEvent) {\r\n const selectedCheckBox = this.grid.header.filter((gh: GridHeader) => gh.key === ce.key)[0];\r\n if (selectedCheckBox) {\r\n if (ce.id === -1) {\r\n selectedCheckBox.filteredUniqueItems.forEach(fui => fui.isChecked = ce.isChecked);\r\n selectedCheckBox.selectedFilterCount = ce.isChecked ? null : '0 Item Selected';\r\n } else {\r\n const selectedUniqueItem = selectedCheckBox.filteredUniqueItems.filter(fui => fui.id === ce.id)[0];\r\n if (selectedUniqueItem) {\r\n selectedUniqueItem.isChecked = ce.isChecked;\r\n }\r\n\r\n const selectAllCheckboxElement = document.getElementById(selectedCheckBox.key + '-1') as HTMLInputElement;\r\n const selectedStatus = selectedCheckBox.filteredUniqueItems.map(fui => fui.isChecked);\r\n const isAllCheckBoxSelected = selectedStatus.every(Boolean);\r\n const isSomeCheckBoxSelected = selectedStatus.some(Boolean);\r\n selectAllCheckboxElement.checked = isAllCheckBoxSelected;\r\n selectAllCheckboxElement.indeterminate =\r\n !isAllCheckBoxSelected && isAllCheckBoxSelected !== isSomeCheckBoxSelected;\r\n\r\n selectedCheckBox.selectedFilterCount = !isAllCheckBoxSelected && selectedStatus.filter(ss => ss).length + ' Item Selected';\r\n }\r\n }\r\n\r\n this.paginationData = this.gridService.searchOnFilterCheckBoxChange(\r\n this.grid,\r\n this.gridService.onHeaderSearch(this.grid, this.grid.data));\r\n\r\n this.pager.currentPage = 1;\r\n this.setPagination(this.paginationData);\r\n }\r\n\r\n /*\r\n works when pagination changes\r\n */\r\n public onPageChange(pager: Pager) {\r\n this.pager = pager;\r\n this.setPagination(this.paginationData);\r\n }\r\n\r\n /* \r\n works when filter image click on header.\r\n used to show/hide filter menu. \r\n */\r\n public onFilterClick(headerKey: string) {\r\n this.grid.header.forEach((gh: GridHeader) => {\r\n if (gh.key === headerKey) {\r\n const element = document.getElementById(gh.key) as HTMLElement;\r\n if (element) {\r\n element.classList.toggle('is-active');\r\n }\r\n } else {\r\n const element = document.getElementById(gh.key) as HTMLElement;\r\n if (element) {\r\n element.classList.remove('is-active');\r\n }\r\n }\r\n });\r\n }\r\n\r\n public onColumnHeaderDrop(event: CdkDragDrop) {\r\n let header = [...this.grid.header];\r\n moveItemInArray(header, event.previousIndex, event.currentIndex);\r\n this.grid = {\r\n header: header, data: this.grid.data\r\n };\r\n this.onColumnOrderChange.emit(header);\r\n this.changeDectRef.markForCheck();\r\n }\r\n\r\n public onGroupingRowClick(index: number) {\r\n const groupingElement = document.getElementById('grouping-row-' + index);\r\n if (groupingElement) {\r\n groupingElement.classList.toggle('show');\r\n }\r\n\r\n const tableRowElement = document.getElementById('table-row-' + index);\r\n if (tableRowElement) {\r\n tableRowElement.classList.toggle('collapse');\r\n }\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.searchSubscription.unsubscribe();\r\n }\r\n\r\n public onSelectAllRow(isChecked: boolean) {\r\n this.grid.header[0].allRowSelected = isChecked;\r\n this.grid.data.forEach((gd: any) => {\r\n gd.rowSelected = isChecked;\r\n });\r\n this.onRowSelected.emit(this.grid.data);\r\n this.changeDectRef.markForCheck();\r\n }\r\n\r\n public onRowSelect(id: number, header: GridHeader, isChecked: boolean) {\r\n this.grid.header[0].allRowSelected = false;\r\n this.grid.data.forEach((t: any) => {\r\n if (t[header.selectId as keyof GridData] === id) {\r\n t.rowSelected = isChecked;\r\n }\r\n });\r\n this.onRowSelected.emit(this.grid.data);\r\n this.changeDectRef.markForCheck();\r\n }\r\n\r\n public handleNgClass(header: GridHeader, rowData: string) { \r\n if (!header.cssClasses || !rowData || !rowData.length) { return ''; }\r\n let className = '';\r\n header.cssClasses.forEach(t => {\r\n if (t.key.toLowerCase() === rowData.toLowerCase()) {\r\n className = t.class;\r\n }\r\n });\r\n return className;\r\n }\r\n\r\n public onDropdownChange(selectedValue: any, header: GridHeader, data: any) {\r\n if (!selectedValue || !header.dropDownList) { return; }\r\n let value = header.dropDownList.find(t => t.key === selectedValue || t.value === selectedValue);\r\n this.onDropDownSelect.emit({ header: header, data: data, selectedValue: value });\r\n }\r\n\r\n public onReasonChange(selectedValue: any, data: any) {\r\n if (!selectedValue) { return; }\r\n let value = this.reasonList.list.find(t => t.key === selectedValue || t.value === selectedValue);\r\n data.showOtherReason = value.showOther;\r\n this.onReasonSelect.emit({ data: data, selectedValue: value });\r\n }\r\n\r\n public onSubmitClicked(data: any) {\r\n this.onSubmitted.emit(data);\r\n }\r\n\r\n /*\r\n set final grid data (filterData)\r\n */\r\n private setPagination(paginationData: GridData[]) {\r\n\r\n this.filterData = paginationData;\r\n if (this.showPagination) {\r\n\r\n this.gridCount = paginationData.length;\r\n this.currentPage = this.pager.currentPage;\r\n\r\n this.filterData = paginationData.slice(\r\n (this.pager.currentPage - 1) * this.pager.pageSize,\r\n this.pager.currentPage * this.pager.pageSize\r\n );\r\n\r\n }\r\n this.changeDectRef.markForCheck();\r\n }\r\n\r\n}","import {\r\n Component, ChangeDetectionStrategy,\r\n Input, AfterContentInit, Output,\r\n EventEmitter, OnChanges\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-pagination',\r\n template: require('./pagination.component.html'),\r\n styles: [require('./pagination.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n\r\nexport class PaginationComponent implements AfterContentInit, OnChanges {\r\n\r\n @Input()\r\n public totalItems: number;\r\n\r\n @Input()\r\n public currentPage = 1;\r\n\r\n @Input()\r\n public pageSize = 10;\r\n\r\n @Input()\r\n public pagePerItems = [10, 50, 100, 200];\r\n\r\n @Output()\r\n public paginationEvent = new EventEmitter();\r\n\r\n public pager: Pager;\r\n\r\n public showAfterDots: boolean;\r\n\r\n public showBeforeDots: boolean;\r\n\r\n public gotoPageItems: number[];\r\n\r\n constructor() {\r\n \r\n }\r\n\r\n public ngAfterContentInit(): void {\r\n // this.getPager();\r\n }\r\n\r\n public ngOnChanges() {\r\n this.getPager();\r\n }\r\n\r\n public getPager() {\r\n let totalPages = Math.ceil(this.totalItems / this.pageSize);\r\n\r\n if (this.currentPage < 1) {\r\n this.currentPage = 1;\r\n } else if (this.currentPage > totalPages) {\r\n this.currentPage = totalPages;\r\n }\r\n\r\n let startPage: number;\r\n let endPage: number;\r\n\r\n if (totalPages <= 5) {\r\n startPage = 1;\r\n endPage = totalPages;\r\n this.showBeforeDots = false;\r\n this.showAfterDots = false;\r\n } else {\r\n if (this.currentPage <= 3) {\r\n startPage = 1;\r\n endPage = 5;\r\n this.showBeforeDots = false;\r\n this.showAfterDots = true;\r\n } else if (this.currentPage + 1 >= totalPages) {\r\n startPage = totalPages - 4;\r\n endPage = totalPages;\r\n this.showBeforeDots = true;\r\n this.showAfterDots = false;\r\n } else {\r\n startPage = this.currentPage - 2;\r\n endPage = this.currentPage + 2;\r\n this.showBeforeDots = true;\r\n this.showAfterDots = (endPage !== totalPages);\r\n }\r\n }\r\n\r\n let startIndex = (this.currentPage - 1) * this.pageSize;\r\n let endIndex = Math.min(startIndex + this.pageSize - 1, this.totalItems - 1);\r\n\r\n let pages = Array.from(Array((endPage + 1) - startPage).keys()).map(i => startPage + i);\r\n this.gotoPageItems = Array.from(Array(totalPages).keys()).map(i => 1 + i);\r\n\r\n this.pager = {\r\n totalItems: this.totalItems,\r\n currentPage: this.currentPage,\r\n pageSize: this.pageSize,\r\n totalPages: totalPages,\r\n startPage: startPage,\r\n endPage: endPage,\r\n startIndex: startIndex,\r\n endIndex: endIndex,\r\n visiblePages: pages,\r\n gotoPages: this.gotoPageItems\r\n };\r\n }\r\n\r\n public setPage(selectedValue: number) {\r\n this.currentPage = +selectedValue;\r\n this.onPaginationAction();\r\n }\r\n\r\n public onPagePerItemSelect(selectedValue: number) {\r\n this.pageSize = +selectedValue;\r\n this.onPaginationAction();\r\n }\r\n\r\n public onAfterDotsclick() {\r\n this.currentPage = this.currentPage + 2;\r\n this.onPaginationAction();\r\n }\r\n\r\n public onBeforeDotsclick() {\r\n this.currentPage = this.currentPage - 2;\r\n this.onPaginationAction();\r\n }\r\n\r\n private onPaginationAction() {\r\n this.getPager();\r\n this.paginationEvent.emit(this.pager);\r\n }\r\n}\r\n\r\nexport interface Pager {\r\n totalItems: number;\r\n currentPage: number;\r\n pageSize: number;\r\n totalPages: number;\r\n startPage: number;\r\n endPage: number;\r\n startIndex: number;\r\n endIndex: number;\r\n visiblePages: number[];\r\n gotoPages: number[];\r\n}","import { Component, ChangeDetectionStrategy, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-spinner',\r\n template: require('./spinner.component.html'),\r\n styles: [require('./spinner.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SpinnerComponent {\r\n @Input()\r\n public text: string;\r\n\r\n constructor() { }\r\n}","import { ChangeDetectorRef, Component, EventEmitter, Input, Output, OnInit, OnChanges, SimpleChanges } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { CovanceFilterDateRangeType } from './../../covance-filter/filter-type/covance-filter-date-range-type';\r\nimport { IMyDpOptions, IMyDateModel, IMyDate } from 'mydatepicker';\r\nimport { Event } from '@angular/router';\r\n\r\nexport type DateRangeType = 'dateRange' | 'today' | 'weekly' | 'monthly' | 'twoMonths' | 'quarterly';\r\n\r\nexport interface DateRangeFilterValue {\r\n rangeType: DateRangeType;\r\n dateBegin: string;\r\n dateEnd: string;\r\n}\r\n\r\nexport interface RangeKind {\r\n key: DateRangeType;\r\n value: string;\r\n selected: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'timeframe-filter',\r\n template: require('./timeframe-filter.component.html'),\r\n styles: [require('./timeframe-filter.component.scss')]\r\n})\r\nexport class TimeframeFilterComponent implements OnChanges {\r\n\r\n @Input()\r\n public label: string;\r\n\r\n @Input()\r\n public previousDateRangeValue: DateRangeFilterValue;\r\n\r\n @Input()\r\n public timeFrameRanges: RangeKind[] = [];\r\n\r\n @Input()\r\n public disableToDate = false;\r\n\r\n @Input()\r\n public customFromDateLabel = 'DD/MM';\r\n\r\n @Input()\r\n public customToDateLabel = 'DD/MM';\r\n\r\n @Input()\r\n public myDatePickerOptions: IMyDpOptions;\r\n\r\n @Output()\r\n public valueChange = new EventEmitter();\r\n\r\n public selectedRange: RangeKind;\r\n\r\n public dateRangeValue: DateRangeFilterValue;\r\n\r\n public isShowToSelector: boolean;\r\n\r\n public isShowFromSelector: boolean;\r\n\r\n public showDropDown = false;\r\n\r\n public fromDate: IMyDate;\r\n\r\n public toDate: IMyDate;\r\n\r\n public customRangeKind: RangeKind;\r\n\r\n public rangeKinds: RangeKind[] = [\r\n { key: 'today', value: 'Today', selected: false },\r\n { key: 'weekly', value: 'Last 7 days', selected: false },\r\n { key: 'monthly', value: 'Last 30 days', selected: true },\r\n { key: 'twoMonths', value: 'Last 60 days', selected: false },\r\n { key: 'quarterly', value: 'Last 90 days', selected: false },\r\n ];\r\n\r\n public get isDateRangeKindSelected(): boolean {\r\n return this.selectedRange != null && this.selectedRange.key === 'dateRange';\r\n }\r\n\r\n constructor(protected filterDateRangeType: CovanceFilterDateRangeType, private ref: ChangeDetectorRef) {\r\n if (this.timeFrameRanges.length === 0) {\r\n this.timeFrameRanges = this.rangeKinds;\r\n }\r\n if (!this.myDatePickerOptions) {\r\n this.myDatePickerOptions = {\r\n dateFormat: 'dd-mmm-yyyy',\r\n showTodayBtn: true,\r\n todayBtnTxt: 'Today'\r\n };\r\n }\r\n let label = this.customFromDateLabel + ' - ' + this.customToDateLabel;\r\n this.customRangeKind = {\r\n key: 'dateRange', value: label, selected: false\r\n };\r\n let defaultDate: Date = new Date();\r\n this.fromDate = this.loadDefaultDates(defaultDate);\r\n this.toDate = this.loadDefaultDates(defaultDate);\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges) {\r\n if (changes.customFromDateLabel) {\r\n this.customRangeKind.value = this.customFromDateLabel + ' - ' + this.customToDateLabel;\r\n }\r\n if (changes.customToDateLabel) {\r\n this.customRangeKind.value = this.customFromDateLabel + ' - ' + this.customToDateLabel;\r\n }\r\n if (changes.previousDateRangeValue) {\r\n if (!this.previousDateRangeValue) { return; }\r\n if (this.previousDateRangeValue.rangeType === 'dateRange') {\r\n if (!this.dateRangeValue || (this.dateRangeValue.dateBegin !== this.previousDateRangeValue.dateBegin ||\r\n this.dateRangeValue.dateEnd !== this.previousDateRangeValue.dateEnd)) {\r\n let event: Event;\r\n this.fromDate = this.loadDefaultDates(new Date(this.previousDateRangeValue.dateBegin));\r\n this.toDate = this.loadDefaultDates(new Date(this.previousDateRangeValue.dateEnd));\r\n this.togglePopover(event, false);\r\n this.onPopoverHide();\r\n }\r\n }\r\n if (this.previousDateRangeValue.rangeType !== 'dateRange') {\r\n let range = this.timeFrameRanges.filter(t => t.key === this.previousDateRangeValue.rangeType)[0];\r\n this.onRangeKindChange(range);\r\n }\r\n }\r\n }\r\n\r\n public loadDefaultDates(defaultDate: Date) {\r\n return {\r\n year: defaultDate.getFullYear(),\r\n month: defaultDate.getMonth() + 1,\r\n day: defaultDate.getDate()\r\n };\r\n }\r\n\r\n public onRangeKindChange(selectedRangeKind: RangeKind) {\r\n this.handleTimeframeFilter(selectedRangeKind);\r\n this.selectedRange = selectedRangeKind;\r\n this.onPopoverHide();\r\n switch (selectedRangeKind.key) {\r\n case 'today':\r\n this.dateRangeValue = null;\r\n this.valueChange.emit(this.getTodayRange());\r\n break;\r\n case 'weekly':\r\n this.dateRangeValue = null;\r\n this.valueChange.emit(this.getWeeklyRange());\r\n break;\r\n case 'monthly':\r\n this.dateRangeValue = null;\r\n this.valueChange.emit(this.getMonthlyRange());\r\n break;\r\n case 'twoMonths':\r\n this.dateRangeValue = null;\r\n this.valueChange.emit(this.getTwoMonthsRange());\r\n break;\r\n case 'quarterly':\r\n this.dateRangeValue = null;\r\n this.valueChange.emit(this.getQuarterlyRange());\r\n break;\r\n }\r\n }\r\n\r\n public applyDateChanges() {\r\n if (this.isInvalidDateRange() || !this.dateRangeValue.dateBegin || !this.dateRangeValue.dateEnd) { return; }\r\n this.onPopoverHide();\r\n this.valueChange.emit(this.dateRangeValue);\r\n }\r\n\r\n public togglePopover(event: Event, triggerEmit = true) {\r\n this.onRangeKindChange(this.customRangeKind);\r\n const newRangeValue = this.getDateRangeType();\r\n this.dateRangeValue = this.dateRangeValue ? this.dateRangeValue : this.getEmptyDateRangeValue();\r\n if ((newRangeValue.dateBegin !== this.dateRangeValue.dateBegin ||\r\n newRangeValue.dateEnd !== this.dateRangeValue.dateEnd) && triggerEmit) {\r\n this.valueChange.emit(newRangeValue);\r\n }\r\n this.dateRangeValue = newRangeValue;\r\n this.showDropDown = !this.showDropDown;\r\n }\r\n\r\n public handleTimeframeFilter(selectedRange: RangeKind) {\r\n for (let timeRange of this.timeFrameRanges) {\r\n timeRange.selected = false;\r\n }\r\n selectedRange.selected = true;\r\n if (selectedRange.key !== 'dateRange') {\r\n this.customRangeKind.selected = false;\r\n }\r\n }\r\n\r\n public handleNgClass(selectedRange: RangeKind) {\r\n return selectedRange.selected ? 'timeFrameButton-active' : 'timeFrameButton-standard';\r\n }\r\n\r\n public onShowToSelector(isShowToSelector: boolean) {\r\n this.isShowToSelector = isShowToSelector;\r\n }\r\n\r\n public onShowFromSelector(isShowFromSelector: boolean) {\r\n this.isShowFromSelector = isShowFromSelector;\r\n }\r\n\r\n public onDateBeginChange($event: IMyDateModel) {\r\n this.fromDate = $event.date && $event.date.day !== 0 ? $event.date : this.fromDate;\r\n let date = moment($event.jsdate);\r\n let formatedDate = this.formatDateTime(date);\r\n if (!formatedDate || formatedDate === this.dateRangeValue.dateBegin) { return; }\r\n this.dateRangeValue.dateBegin = formatedDate;\r\n if (this.disableToDate) {\r\n this.applyDateChanges();\r\n }\r\n }\r\n\r\n public onDateEndChange($event: IMyDateModel) {\r\n this.toDate = $event.date && $event.date.day !== 0 ? $event.date : this.toDate;\r\n let date = moment($event.jsdate);\r\n let formatedDate = this.formatDateTime(date);\r\n if (!formatedDate || formatedDate === this.dateRangeValue.dateEnd) { return; }\r\n this.dateRangeValue.dateEnd = formatedDate;\r\n }\r\n\r\n public isInvalidDateRange() {\r\n if (!this.dateRangeValue) {\r\n return '';\r\n }\r\n\r\n const dateBegin = moment(this.dateRangeValue.dateBegin);\r\n const dateEnd = moment(this.dateRangeValue.dateEnd);\r\n\r\n if (!dateBegin.isValid || !dateEnd.isValid) {\r\n return '';\r\n }\r\n\r\n var error = '';\r\n\r\n if (dateBegin.isAfter(dateEnd)) {\r\n error = 'From date should not be greater than To date.';\r\n }\r\n\r\n if (dateEnd.isAfter(moment())) {\r\n error = error + ' To date should not be greater than current date.';\r\n }\r\n\r\n if (dateBegin.isAfter(moment())) {\r\n error = error + ' From date should not be greater than current date.';\r\n }\r\n return error;\r\n }\r\n\r\n public getCustomRangerLabel() {\r\n if (!this.dateRangeValue) {\r\n return this.customRangeKind.value;\r\n }\r\n let value = '';\r\n if (this.dateRangeValue.dateBegin === '') {\r\n value = this.customFromDateLabel;\r\n } else {\r\n const dateBegin = moment(this.dateRangeValue.dateBegin);\r\n value = this.formatDateTime(dateBegin, this.myDatePickerOptions.dateFormat.toUpperCase(), this.customFromDateLabel);\r\n }\r\n\r\n if (this.dateRangeValue.dateEnd === '' || this.disableToDate) {\r\n value = value + ' - ' + this.customToDateLabel;\r\n } else {\r\n const dateEnd = moment(this.dateRangeValue.dateEnd);\r\n value = value + ' - ' + this.formatDateTime(dateEnd, this.myDatePickerOptions.dateFormat.toUpperCase(), this.customToDateLabel);\r\n }\r\n return value;\r\n }\r\n\r\n public onPopoverHide() {\r\n this.showDropDown = false;\r\n }\r\n\r\n public getTodayRange(): DateRangeFilterValue {\r\n return {\r\n dateBegin: this.formatDateTime(moment()),\r\n dateEnd: this.formatDateTime(moment()),\r\n rangeType: 'today'\r\n };\r\n }\r\n\r\n public getWeeklyRange(): DateRangeFilterValue {\r\n return {\r\n dateBegin: this.formatDateTime(moment().subtract(7, 'd')),\r\n dateEnd: this.formatDateTime(moment()),\r\n rangeType: 'weekly'\r\n };\r\n }\r\n\r\n public getMonthlyRange(): DateRangeFilterValue {\r\n return {\r\n dateBegin: this.formatDateTime(moment().subtract(30, 'd')),\r\n dateEnd: this.formatDateTime(moment()),\r\n rangeType: 'monthly'\r\n };\r\n }\r\n\r\n public getTwoMonthsRange(): DateRangeFilterValue {\r\n return {\r\n dateBegin: this.formatDateTime(moment().subtract(60, 'd')),\r\n dateEnd: this.formatDateTime(moment()),\r\n rangeType: 'twoMonths'\r\n };\r\n }\r\n\r\n public getQuarterlyRange(): DateRangeFilterValue {\r\n return {\r\n dateBegin: this.formatDateTime(moment().subtract(90, 'd')),\r\n dateEnd: this.formatDateTime(moment()),\r\n rangeType: 'quarterly'\r\n };\r\n }\r\n\r\n private formatDateTime(value: moment.Moment, format: string = 'YYYY-MM-DD', defaultString: string = ''): string {\r\n return moment.isMoment(value) && moment(value).isValid() ? value.format(format) : defaultString;\r\n }\r\n\r\n private getDateRangeType(): DateRangeFilterValue {\r\n let defaultFromDate = {\r\n year: this.fromDate.year,\r\n month: this.fromDate.month - 1,\r\n day: this.fromDate.day\r\n };\r\n\r\n let defaultToDate = {\r\n year: this.toDate.year,\r\n month: this.toDate.month - 1,\r\n day: this.toDate.day\r\n };\r\n return {\r\n dateBegin: moment(defaultFromDate) ? this.formatDateTime(moment(defaultFromDate)) : '',\r\n dateEnd: moment(defaultToDate) ? this.formatDateTime(moment(defaultToDate)) : '',\r\n rangeType: 'dateRange'\r\n };\r\n }\r\n\r\n private getEmptyDateRangeValue(): DateRangeFilterValue {\r\n return {\r\n dateBegin: '',\r\n dateEnd: '',\r\n rangeType: 'dateRange'\r\n };\r\n }\r\n}\r\n","import {\r\n Component, ChangeDetectionStrategy, Input,\r\n OnChanges, HostListener, Output, EventEmitter, SimpleChanges, OnInit\r\n} from '@angular/core';\r\nimport { SelectData, SelectItem } from '../../../interfaces/filter-data';\r\n\r\n@Component({\r\n selector: 'app-select',\r\n template: require('./select.component.html'),\r\n styles: [require('./select.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n\r\nexport class SelectComponent implements OnChanges, OnInit {\r\n @Input()\r\n public data: SelectData;\r\n\r\n @Input()\r\n public isLoading = true;\r\n\r\n @Input()\r\n public defaultDisplayItem = { name: 'All', id: 0 };\r\n\r\n @Input()\r\n public errorMsg: string;\r\n\r\n @Output()\r\n public onSelectChange: EventEmitter = new EventEmitter();\r\n\r\n public filterItems: SelectItem[];\r\n\r\n public displayItem: SelectItem;\r\n\r\n public selectedItems: SelectItem[] = [];\r\n\r\n public showDropdownList = false;\r\n\r\n public toolTipData: string[];\r\n\r\n @HostListener('document:click', ['$event.target'])\r\n public onOutsideClick(targetElement: HTMLElement) {\r\n if (this.data && this.data.title && targetElement &&\r\n (targetElement.className !== `select-menu ${this.data.title} is-active`) &&\r\n (targetElement.className !== `dropdown-icon ${this.data.title}`) &&\r\n (targetElement.offsetParent &&\r\n targetElement.offsetParent.className.indexOf('select-menu') === -1)) {\r\n const isSelectMenuActive = document.getElementsByClassName(`select-menu ${this.data.title} is-active`).length;\r\n if (isSelectMenuActive) {\r\n this.showDropdownList = false;\r\n }\r\n }\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.displayItem = this.defaultDisplayItem;\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges) {\r\n if (changes.data) {\r\n this.selectedItems = [];\r\n this.filterItems = [];\r\n this.displayItem = this.defaultDisplayItem;\r\n if (this.data && this.data.listItems && this.data.listItems.length) {\r\n this.data.listItems.forEach(li => li.isChecked = false);\r\n this.filterItems = this.data.listItems;\r\n if (this.data.selectedItems && this.data.selectedItems.length) {\r\n this.data.selectedItems.forEach((si: SelectItem) => {\r\n this.updateItemChanges({ ...si, isChecked: true });\r\n });\r\n // this.onSelectChange.emit(this.selectedItems);\r\n }\r\n // else {\r\n // this.filterItems.forEach(li => li.isChecked = false);\r\n // }\r\n }\r\n }\r\n }\r\n\r\n public onSearchBoxChange(searchText: string) {\r\n this.filterItems = this.data.listItems.filter(item => item.name.toLowerCase().indexOf(searchText.toLowerCase()) !== -1);\r\n }\r\n\r\n public onItemChange(value: SelectItem) {\r\n this.updateItemChanges(value);\r\n if (this.data.isSingleSelect) {\r\n this.showDropdownList = false;\r\n }\r\n this.onSelectChange.emit(this.selectedItems);\r\n }\r\n\r\n private updateItemChanges(value: SelectItem) {\r\n if (value && value.id) {\r\n if (!this.data.isSingleSelect) {\r\n if (value.isChecked) {\r\n this.selectedItems.push(value);\r\n const filterItem = this.filterItems.find(li => li.id === value.id);\r\n if (filterItem) {\r\n filterItem.isChecked = true;\r\n }\r\n } else {\r\n this.selectedItems = this.selectedItems.filter(si => si.id !== value.id);\r\n const filterItem = this.filterItems.find(li => li.id === value.id);\r\n if (filterItem) {\r\n filterItem.isChecked = false;\r\n }\r\n }\r\n } else {\r\n this.selectedItems = value.isChecked ? [value] : [];\r\n }\r\n } else {\r\n this.selectedItems = [];\r\n this.filterItems.forEach(li => li.isChecked = false);\r\n }\r\n const selectedItemsName = this.selectedItems.map(si => si.name);\r\n selectedItemsName.shift();\r\n this.toolTipData = selectedItemsName;\r\n this.displayItem = this.selectedItems.length ? this.selectedItems[0] : this.defaultDisplayItem;\r\n }\r\n}\r\n","import {Component, ChangeDetectionStrategy, Input, ViewChild} from '@angular/core';\r\nimport { MdlTextFieldComponent } from '@angular-mdl/core';\r\nimport { FormControl } from '@angular/forms';\r\n@Component({\r\n selector: 'search-bar',\r\n template: require('./search-bar.component.html'),\r\n styles: [require('./search-bar.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SearchBarComponent {\r\n\r\n @ViewChild('searchText')\r\n public selectFilterComponent: MdlTextFieldComponent;\r\n\r\n @Input()\r\n public control: FormControl;\r\n\r\n @Input()\r\n public label: string;\r\n\r\n public resetFilter() {\r\n this.control.reset();\r\n this.selectFilterComponent.setFocus();\r\n }\r\n}","import { Component, ChangeDetectionStrategy, Input, Output, EventEmitter, OnChanges, SimpleChanges, ChangeDetectorRef, OnInit, OnDestroy, HostListener } from '@angular/core';\r\nimport { FormControl, FormGroupDirective, } from '@angular/forms';\r\nimport { maxBytesError, inValidDateError, futureDateError } from '../../../../shared/validators';\r\nimport { IMyDpOptions, IMyDateModel, } from 'mydatepicker';\r\nimport { Subscription } from 'rxjs';\r\nimport { FormDropdown } from './../../interface/notification-data';\r\n\r\n@Component({\r\n selector: 'sm-form-field',\r\n template: require('./notification-form-field.component.html'),\r\n styles: [require('./notification-form-field.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class NotificationFormFieldComponent implements OnInit, OnChanges, OnDestroy {\r\n\r\n @Input()\r\n public controlName: string;\r\n\r\n @Input()\r\n public fieldControl: FormControl;\r\n\r\n @Input()\r\n public label: string;\r\n\r\n @Input()\r\n public placeholder: string;\r\n\r\n @Input()\r\n public dropDownList: FormDropdown[];\r\n\r\n @Input()\r\n public defaultDropDownList: FormDropdown[];\r\n\r\n @Input()\r\n public defaultValue: FormDropdown;\r\n\r\n @Input()\r\n public isDropDownField = false;\r\n\r\n @Input()\r\n public isRequired = false;\r\n\r\n @Input()\r\n public fieldInstruction = false;\r\n\r\n @Input()\r\n public showInput = true;\r\n\r\n @Input()\r\n public errorMsg = '';\r\n\r\n @Input()\r\n public errorMsgIcon = '';\r\n\r\n @Input()\r\n public customErrorMsg = '';\r\n\r\n @Input()\r\n public showLoading = false;\r\n\r\n @Input()\r\n public isDateField: boolean;\r\n\r\n @Input()\r\n public isNumberField: boolean;\r\n\r\n @Input()\r\n public displayError: boolean;\r\n\r\n @Input()\r\n public showDropDownSearch = false;\r\n\r\n @Input()\r\n public multiSelect: boolean;\r\n\r\n @Input()\r\n public showSelectAll: boolean;\r\n\r\n @Input()\r\n public isDisabled: boolean;\r\n\r\n @Input()\r\n public isViewOnly: boolean;\r\n\r\n @Input()\r\n public fieldType = 'text';\r\n\r\n @Input()\r\n public maxlength: number;\r\n\r\n @Input()\r\n public disableFutureDate: boolean;\r\n\r\n @Output()\r\n public onDropDownValueSelected: EventEmitter = new EventEmitter();\r\n\r\n @Output()\r\n public onDropDownValuesSelected: EventEmitter = new EventEmitter();\r\n\r\n @Output()\r\n public onDateEntered: EventEmitter = new EventEmitter();\r\n\r\n @Output()\r\n public onValueEntered: EventEmitter = new EventEmitter();\r\n\r\n @Output()\r\n public onRadioButtonValueChanged: EventEmitter = new EventEmitter();\r\n\r\n public showDropDown = false;\r\n public isInputFocused = false;\r\n public subscription: Subscription;\r\n public filterItems: FormDropdown[] = [];\r\n public checkedList: FormDropdown[] = [];\r\n public toolTip: string[];\r\n public selectAllChecked = true;\r\n\r\n public myDatePickerOptions: IMyDpOptions = {\r\n dateFormat: 'dd-mmm-yyyy',\r\n showTodayBtn: true,\r\n todayBtnTxt: 'Today'\r\n };\r\n\r\n constructor(private changedect: ChangeDetectorRef) {\r\n\r\n }\r\n\r\n public ngOnInit() {\r\n if (this.disableFutureDate) {\r\n let date: Date = new Date();\r\n this.myDatePickerOptions.disableSince = {\r\n year: date.getFullYear(),\r\n month: date.getMonth() + 1,\r\n day: date.getDate() + 1\r\n };\r\n }\r\n this.subscription = this.fieldControl.valueChanges.subscribe(value => {\r\n this.changedect.markForCheck();\r\n });\r\n this.filterItems = this.dropDownList;\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges) {\r\n if (changes && changes.dropDownList && this.isDropDownField) {\r\n this.filterItems = this.dropDownList;\r\n if (!this.dropDownList || this.dropDownList.length === 0) {\r\n this.checkedList = [];\r\n this.fieldControl.setValue('');\r\n this.onDropDownValuesSelected.emit([]);\r\n }\r\n if ((!this.defaultDropDownList || this.defaultDropDownList.length === 0) &&\r\n this.selectAllChecked && this.showSelectAll && this.filterItems) {\r\n this.filterItems.forEach(t => t.isChecked = true);\r\n this.checkedList = this.filterItems;\r\n this.fieldControl.setValue(this.checkedList.toString());\r\n this.onDropDownValuesSelected.emit(this.checkedList);\r\n }\r\n }\r\n if (changes && changes.defaultDropDownList && this.defaultDropDownList && this.isDropDownField && \r\n this.multiSelect && this.filterItems) {\r\n this.selectAllData();\r\n }\r\n if (changes && changes.defaultDropDownList && this.defaultDropDownList && this.isDropDownField &&\r\n !this.multiSelect && this.filterItems) {\r\n this.filterItems.forEach(item => {\r\n let index = this.defaultDropDownList.findIndex(t => t.key === item.key);\r\n if (index !== -1) {\r\n item.isChecked = true;\r\n } else {\r\n item.isChecked = false;\r\n }\r\n });\r\n }\r\n if (changes && changes.defaultValue && this.isDropDownField && !this.multiSelect && this.filterItems) {\r\n if (!this.defaultValue) {\r\n this.filterItems.forEach(t => t.isChecked = false);\r\n } else {\r\n this.fieldControl.setValue(this.defaultValue.value);\r\n this.filterItems.forEach(t => {\r\n t.isChecked = t.value === this.defaultValue.value ? true : false;\r\n });\r\n }\r\n }\r\n if (this.checkedList && this.checkedList.length > 1) {\r\n this.toolTip = this.checkedList.slice(1).map(data => ' ' + data.value);\r\n }\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n @HostListener('document:click', ['$event.target'])\r\n public onOutsideClick(targetElement: HTMLElement) {\r\n if (this.controlName && targetElement && \r\n (targetElement.className !== `drop-show ${this.controlName} active-list`) &&\r\n (targetElement.className !== `material-icons ${this.controlName}`) &&\r\n (targetElement.offsetParent &&\r\n targetElement.offsetParent.className.indexOf('drop-show') === -1)) {\r\n const isSelectMenuActive = document.getElementsByClassName(`drop-show ${this.controlName} active-list`).length;\r\n if (isSelectMenuActive) {\r\n this.showDropDown = false;\r\n }\r\n }\r\n }\r\n\r\n public onItemChange() {\r\n this.showDropDown = false;\r\n this.fieldControl.setValue('');\r\n if (this.isDropDownField && this.dropDownList) {\r\n this.dropDownList.forEach(t => t.isChecked = false);\r\n }\r\n this.filterItems = this.dropDownList;\r\n this.checkedList = [];\r\n this.selectAllChecked = false;\r\n this.onDropDownValueSelected.emit(null);\r\n this.onDropDownValuesSelected.emit(this.checkedList);\r\n }\r\n\r\n public dropDownItemClicked(item: FormDropdown) {\r\n this.filterItems.forEach(t => {\r\n t.isChecked = t.key === item.key;\r\n });\r\n this.fieldControl.setValue(item.value);\r\n this.fieldControl.markAsTouched();\r\n this.showDropDown = false;\r\n this.onDropDownValueSelected.emit(item);\r\n }\r\n\r\n public onScheduledChange($event: IMyDateModel) {\r\n this.fieldControl.setValue($event.formatted);\r\n this.onDateEntered.emit($event.formatted);\r\n }\r\n\r\n public unSelectAll() {\r\n this.selectAllChecked = !this.selectAllChecked;\r\n this.fieldControl.markAsTouched();\r\n if (this.selectAllChecked) {\r\n this.filterItems.forEach(t => t.isChecked = true);\r\n this.checkedList = this.filterItems;\r\n this.fieldControl.setValue(this.checkedList.toString());\r\n } else {\r\n this.checkedList = [];\r\n this.filterItems.forEach(t => t.isChecked = false);\r\n this.fieldControl.setValue('');\r\n }\r\n this.onDropDownValuesSelected.emit(this.checkedList);\r\n }\r\n\r\n public getSelectedValue(item: FormDropdown, isChecked: boolean) {\r\n item.isChecked = isChecked;\r\n if (isChecked) {\r\n this.checkedList.push(item);\r\n } else {\r\n this.checkedList = this.checkedList.filter(cl => cl.key !== item.key);\r\n }\r\n if (this.checkedList && this.checkedList.length > 1) {\r\n this.toolTip = this.checkedList.slice(1).map(data => ' ' + data.value);\r\n } else {\r\n this.toolTip = [];\r\n }\r\n this.selectAllChecked = this.checkedList.length === this.dropDownList.length && this.showSelectAll;\r\n this.fieldControl.setValue(this.checkedList.toString());\r\n this.fieldControl.markAsTouched();\r\n this.onDropDownValuesSelected.emit(this.checkedList);\r\n }\r\n\r\n public IsInvalidField() {\r\n if (this.fieldControl.touched || this.fieldControl.value || this.displayError) {\r\n if (this.fieldControl.hasError('required') || (this.isRequired && !this.fieldControl.value)) {\r\n this.customErrorMsg = this.label + ' is required.';\r\n return true;\r\n }\r\n if (this.fieldControl.hasError('pattern') && this.isNumberField && this.fieldControl.value) {\r\n this.customErrorMsg = 'Please enter a valid number';\r\n return true;\r\n }\r\n if (this.fieldControl.hasError(maxBytesError)) {\r\n this.customErrorMsg = 'Field exceeds maximum characters.';\r\n return true;\r\n }\r\n if (this.controlName === 'scheduledShipmentDate' && this.fieldControl.hasError('pattern')) {\r\n this.customErrorMsg = 'Please enter date in the format: DD-MMM-YYYY.';\r\n return true;\r\n }\r\n if (this.fieldControl.hasError('pattern') || this.fieldControl.hasError(inValidDateError)) {\r\n this.customErrorMsg = this.label ? 'Please enter valid ' + this.label + '.' :\r\n 'Please enter valid format.';\r\n return true;\r\n }\r\n if (this.isDateField && this.fieldControl.hasError(futureDateError)) {\r\n this.customErrorMsg = this.label + ' should not be greater than the entry date.';\r\n return true;\r\n }\r\n }\r\n this.customErrorMsg = '';\r\n return false;\r\n }\r\n\r\n public onSearchBoxChange(searchText: string) {\r\n this.filterItems = this.dropDownList.filter(item => item.value.toLowerCase().indexOf(searchText.toLowerCase()) !== -1);\r\n }\r\n\r\n public handleChange(value: boolean) {\r\n this.fieldControl.setValue(value);\r\n this.onRadioButtonValueChanged.emit(value);\r\n }\r\n\r\n private selectAllData() {\r\n if (this.defaultDropDownList && this.defaultDropDownList.length === this.dropDownList.length) {\r\n this.checkedList = this.dropDownList;\r\n this.checkedList.forEach(t => t.isChecked = true);\r\n this.filterItems = this.checkedList;\r\n this.fieldControl.setValue(this.checkedList.toString());\r\n return;\r\n }\r\n //this.selectAllChecked = false;\r\n this.checkedList = this.defaultDropDownList;\r\n this.checkedList.forEach(t => t.isChecked = true);\r\n this.fieldControl.setValue(this.checkedList.toString());\r\n this.filterItems.forEach(item => {\r\n let index = this.checkedList.findIndex(t => t.value === item.value);\r\n if (index !== -1) {\r\n item.isChecked = true;\r\n } else {\r\n item.isChecked = false;\r\n }\r\n });\r\n }\r\n}","import { Component, ChangeDetectionStrategy, Input, ChangeDetectorRef, OnInit } from '@angular/core';\r\nimport { NavigationServiceLink } from './navigation-service-link';\r\nimport { ActivatedRoute, Params, Router } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'sample-tracking-side-nav',\r\n template: require('./navigation-service.component.html'),\r\n styles: [require('./navigation-service.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class NavigationServiceComponent implements OnInit {\r\n\r\n @Input()\r\n public topLevelMenu: NavigationServiceLink[] = [];\r\n\r\n @Input()\r\n public hasChildMenu = false;\r\n\r\n public expandChildNav = false;\r\n public currentLink: number;\r\n\r\n public queryParams: Observable;\r\n\r\n constructor(route: ActivatedRoute, private router: Router, public changeDetectorRef: ChangeDetectorRef) {\r\n this.queryParams = route.queryParams;\r\n }\r\n\r\n public ngOnInit() {\r\n if (!this.hasChildMenu) { return; }\r\n this.topLevelMenu.forEach((t, index) => {\r\n t.url.subscribe(value => {\r\n this.validateUrl(value, index);\r\n if (t.children) {\r\n t.children.subscribe(childRoute => childRoute.forEach(route =>\r\n route.url.subscribe(urlSegment => this.validateUrl(urlSegment, index, true))));\r\n }\r\n });\r\n });\r\n }\r\n\r\n public getToolTip(rootLink: NavigationServiceLink) {\r\n return rootLink.badgeToolTip ? rootLink.badgeToolTip : rootLink.text;\r\n }\r\n\r\n public rootLinkClick(rootIndex: number, route: NavigationServiceLink) {\r\n this.currentLink = rootIndex;\r\n this.expandChildNav = !route.children ? false : !this.expandChildNav;\r\n }\r\n\r\n public childLinkClick(rootIndex: number) {\r\n this.currentLink = rootIndex;\r\n }\r\n\r\n private validateUrl(urlSegment: string[], index: number, isChildMenu = false) {\r\n let url = '';\r\n urlSegment.forEach((segement, i) => {\r\n url = i > 0 && i + 1 !== urlSegment.length ? url + segement + '/' : url = url + segement;\r\n });\r\n if (url === this.router.url) {\r\n this.currentLink = index;\r\n this.expandChildNav = isChildMenu;\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 { CovanceMaterialModule } from '../../covance-material';\r\nimport { AgGridModule } from 'ag-grid-angular/main';\r\nimport { MdlModule } from '@angular-mdl/core';\r\nimport { MdlSelectModule } from '@angular-mdl/select';\r\nimport { MdlPopoverModule } from '@angular-mdl/popover';\r\nimport { CvdModule } from '@covance/ng-cvd3';\r\nimport { FormatDatePipe } from './format-date.pipe';\r\nimport { FormatDateTimePipe } from './format-date-time.pipe';\r\nimport { SafeHtmlPipe } from './safe-html.pipe';\r\nimport { MultilineFormatter } from './multiline-formatter';\r\nimport { UnitSelectorComponent } from './unit-selector.component';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { FooterComponent } from './footer.component';\r\nimport { CovanceSelectDropdownComponent } from '../covance-dropdown-select/covance-dropdown-select.component';\r\nimport { DataRevisionIndicatorComponent } from './data-revision/data-revision-indicator.component';\r\nimport { DataRevisionIndicator } from './data-revision/data-revision-indicator';\r\nimport { MillisecondsConverterPipe } from './milliseconds-converter.pipe';\r\nimport { TooltipFormatter } from './tooltip-formatter';\r\nimport { CovanceSelectModule } from '../covance-select/covance-select.module';\r\nimport { UserPreferencesModule } from '../user-preferences/user-preferences.module';\r\nimport { ClearableTextfield } from './clearable-textfield/clearable-textfield.component';\r\nimport { DownloadDialogComponent } from './document-downloader/download-dialog.component';\r\nimport { CovanceExpansionPanelComponent } from './covance-expansion-panel/covance-expansion-panel.component';\r\nimport { TrackingGridComponent } from './covance-grid/tracking-grid/tracking-grid.component';\r\nimport { PaginationComponent } from './covance-grid/pagination/pagination.component';\r\nimport { SpinnerComponent } from './spinner/spinner.component';\r\nimport { TimeframeFilterComponent } from './time-frame-filter/timeframe-filter.component';\r\nimport { MyDatePickerModule } from 'mydatepicker';\r\nimport { TrackingGridService } from './covance-grid/tracking-grid.service';\r\nimport { SelectComponent } from '../sample-tracking/reports/new-report/filters/select/select.component';\r\nimport { SearchBarComponent } from '../sample-tracking/service/search-bar/search-bar.component';\r\nimport { DeleteModalComponent } from '../shared/model-dialog/delete/delete-modal.component';\r\nimport { ColumnSettingsComponent } from './covance-grid/column-settings/component/column-settings.component';\r\nimport { ColumnSettingsService } from './covance-grid/column-settings/service/column-settings.service';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { NotificationFormFieldComponent } from '../sample-tracking/sample-monitoring/notification-form/notification-form-field/notification-form-field.component';\r\nimport { NavigationServiceComponent } from '../sample-tracking/service/navigation-service/navigation-service.component';\r\nimport { PendoService } from './pendo-service/pendo-service';\r\nconst agGrid = AgGridModule.withComponents([]);\r\n\r\n@NgModule({\r\n providers: [\r\n MultilineFormatter,\r\n DataRevisionIndicator,\r\n TooltipFormatter,\r\n TrackingGridService,\r\n ColumnSettingsService,\r\n PendoService\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n HttpClientModule,\r\n ReactiveFormsModule,\r\n CovanceMaterialModule,\r\n RouterModule,\r\n agGrid,\r\n MdlModule,\r\n MdlSelectModule,\r\n MdlPopoverModule,\r\n CvdModule,\r\n CovanceSelectModule,\r\n UserPreferencesModule,\r\n MyDatePickerModule,\r\n DragDropModule\r\n ],\r\n declarations: [\r\n FormatDatePipe,\r\n FormatDateTimePipe,\r\n SafeHtmlPipe,\r\n UnitSelectorComponent,\r\n FooterComponent,\r\n CovanceSelectDropdownComponent,\r\n DataRevisionIndicatorComponent,\r\n MillisecondsConverterPipe,\r\n DownloadDialogComponent,\r\n ClearableTextfield,\r\n CovanceExpansionPanelComponent,\r\n TrackingGridComponent,\r\n PaginationComponent,\r\n SpinnerComponent,\r\n TimeframeFilterComponent,\r\n SelectComponent,\r\n SearchBarComponent,\r\n DeleteModalComponent,\r\n ColumnSettingsComponent,\r\n NotificationFormFieldComponent,\r\n NavigationServiceComponent\r\n ],\r\n exports: [\r\n CommonModule,\r\n FormsModule,\r\n CovanceMaterialModule,\r\n RouterModule,\r\n AgGridModule,\r\n MdlModule,\r\n MdlSelectModule,\r\n MdlPopoverModule,\r\n CvdModule,\r\n FormatDatePipe,\r\n FormatDateTimePipe,\r\n SafeHtmlPipe,\r\n UnitSelectorComponent,\r\n FooterComponent,\r\n CovanceSelectDropdownComponent,\r\n DataRevisionIndicatorComponent,\r\n MillisecondsConverterPipe,\r\n ClearableTextfield,\r\n CovanceSelectModule,\r\n UserPreferencesModule,\r\n DownloadDialogComponent,\r\n CovanceExpansionPanelComponent,\r\n TrackingGridComponent,\r\n PaginationComponent,\r\n SpinnerComponent,\r\n TimeframeFilterComponent,\r\n SelectComponent,\r\n SearchBarComponent,\r\n DeleteModalComponent,\r\n ColumnSettingsComponent,\r\n NotificationFormFieldComponent,\r\n NavigationServiceComponent\r\n ],\r\n entryComponents: [\r\n DownloadDialogComponent,\r\n DeleteModalComponent,\r\n ColumnSettingsComponent\r\n ],\r\n})\r\nexport class SharedModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot } from '@angular/router';\r\nimport { first, map } from 'rxjs/operators';\r\nimport { UrlBuilder } from '../core';\r\nimport { UserStorage } from './user-storage';\r\nimport { AudienceRoleName } from '../authentication/audience-role';\r\n\r\nconst audienceRoleDataKey = 'audienceRole';\r\n\r\n@Injectable()\r\nexport class UserAudienceRoleGuard implements CanActivate {\r\n constructor(private userStorage: UserStorage, private urlBuilder: UrlBuilder) {\r\n }\r\n\r\n public async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n const audienceRoleName = route.data[audienceRoleDataKey] as AudienceRoleName;\r\n\r\n if (!audienceRoleName) {\r\n throw new Error('Pass audienceRole to the route.data');\r\n }\r\n\r\n const userRole = await this.userStorage.currentUser\r\n .pipe(\r\n map(u => u.metadata.audienceRole),\r\n first())\r\n .toPromise();\r\n\r\n if (!this.isAudienceRoleValid(userRole, audienceRoleName)) {\r\n this.urlBuilder.esa().navigate();\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private isAudienceRoleValid(userRole: AudienceRoleName, audienceRoleName: AudienceRoleName | AudienceRoleName[]): boolean {\r\n if (Array.isArray(audienceRoleName)) {\r\n return audienceRoleName.indexOf(userRole) !== -1;\r\n } else {\r\n return audienceRoleName === userRole;\r\n }\r\n }\r\n}\r\n\r\nexport function audienceRole(roleName: AudienceRoleName | AudienceRoleName[]) {\r\n return { [audienceRoleDataKey]: roleName };\r\n}\r\n","import { UserActionName } from './user-action';\r\n\r\nconst enum ActivityDetailType {\r\n Document = 0,\r\n Study = 1,\r\n Site = 2,\r\n StudySite = 3\r\n}\r\n\r\nexport class ActivityDocumentDetail {\r\n public readonly detailType = ActivityDetailType.Document;\r\n constructor(\r\n public readonly documentId: string,\r\n ) {}\r\n}\r\n\r\nexport class ActivityStudyDetail {\r\n public readonly detailType = ActivityDetailType.Study;\r\n constructor(\r\n public readonly protocolId: number,\r\n ) {}\r\n}\r\n\r\nexport class ActivitySiteDetail {\r\n public readonly detailType = ActivityDetailType.Site;\r\n constructor(\r\n public readonly siteId: number,\r\n ) {}\r\n}\r\n\r\nexport class ActivityStudySiteDetail {\r\n public readonly detailType = ActivityDetailType.StudySite;\r\n constructor(\r\n public readonly protocolId: number,\r\n public readonly siteId: number,\r\n ) {}\r\n}\r\n\r\nexport type ActivityDetailData =\r\n | ActivityDocumentDetail\r\n | ActivityStudyDetail\r\n | ActivitySiteDetail\r\n | ActivityStudySiteDetail\r\n ;\r\n\r\nconst enum ActivityDataType {\r\n Default = 0,\r\n Detailed = 1\r\n}\r\n\r\nexport class DefaultActivityData {\r\n public readonly activityType = ActivityDataType.Default;\r\n constructor(\r\n public readonly userAction: UserActionName,\r\n public readonly userSessionId: string,\r\n ) {}\r\n}\r\n\r\nexport class DetailedActivityData {\r\n public readonly activityType = ActivityDataType.Detailed;\r\n constructor(\r\n public readonly userAction: UserActionName,\r\n public readonly userSessionId: string,\r\n public readonly details: ActivityDetailData[],\r\n ) {}\r\n}\r\n\r\nexport type ActivityData =\r\n | DefaultActivityData\r\n | DetailedActivityData\r\n ;","import { InjectionToken } from '@angular/core';\r\nimport { ColDef } from 'ag-grid-community';\r\nimport { chain, isEmpty } from 'lodash';\r\nimport { \r\n BooleanAgFloatingFilterComponent, \r\n booleanQuickFilterText, \r\n booleanRenderer, \r\n CovanceGridColumn, \r\n dateRenderer, \r\n dateTimeComparator, \r\n dateTimeRenderer, \r\n ViewHistoryAgRendererComponent, \r\n BooleanCellRendererParams, \r\n yesNoRenderer, \r\n BooleanAgFloatingFilterParams, \r\n dateTimeArrayComparator, \r\n dateArrayRenderer } from '../../covance-ag-grid';\r\nimport { GroupingOptionItem } from '../../grouping-selector';\r\nimport { LanguageLinkAgRendererComponent } from '../language-link/language-link-ag-renderer.component';\r\nimport { Category } from '../models/category';\r\nimport { LabManualsReport, LabReport, Report, SiteActionsReport, VisitReport, TrainingMaterialsReport } from '../models/report';\r\nimport { comparators } from '../../core';\r\nimport { Moment } from 'moment';\r\n\r\nexport interface DocumentsColumns {\r\n getColumnDefinitions(category: Category | undefined): ColDef[];\r\n hasStatusColumn(category: string): boolean;\r\n getGroupedColumns(category: string): GroupingOptionItem[];\r\n}\r\n\r\nexport const DOCUMENTS_COLUMNS_TOKEN = new InjectionToken('DocumentsColumns');\r\n\r\nexport const selectColumn: ColDef = {\r\n headerName: 'Select',\r\n width: 75,\r\n checkboxSelection: true,\r\n comparator: (valueA: any, valueB: any, nodeA: any, nodeB: any): number => {\r\n return nodeB.selected - nodeA.selected;\r\n }\r\n};\r\n\r\nexport const statusColumn: CovanceGridColumn = {\r\n headerName: 'Status',\r\n field: 'viewHistory',\r\n width: 75,\r\n cellRendererFramework: ViewHistoryAgRendererComponent,\r\n};\r\n\r\nexport const titleColumn: ColDef = {\r\n headerName: 'Title',\r\n field: 'title',\r\n floatingFilterComponentParams: { suppressFilterButton: true },\r\n filter: 'agTextColumnFilter',\r\n comparator: (a, b) => comparators.mixedStringComparator(a, b)\r\n};\r\n\r\nexport const categoryColumn: ColDef = {\r\n headerName: 'Category',\r\n field: 'subcategoryTitle',\r\n filter: 'agSetColumnFilter',\r\n};\r\n\r\nexport const letterNumberColumn: ColDef = {\r\n headerName: 'Letter Number',\r\n field: 'letterNumber',\r\n floatingFilterComponentParams: { suppressFilterButton: true },\r\n filter: 'agTextColumnFilter',\r\n comparator: (a, b) => comparators.mixedStringComparator(a, b)\r\n};\r\n\r\nexport const postedColumn: CovanceGridColumn = {\r\n sort: 'desc',\r\n headerName: 'Posted',\r\n field: 'postedDateTime',\r\n comparator: dateTimeComparator,\r\n valueGetter: (params: ReportParams) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n return dateTimeRenderer({ value: params.data.postedDateTime });\r\n },\r\n floatingFilterComponentParams: { suppressFilterButton: true },\r\n filter: 'agTextColumnFilter'\r\n};\r\n\r\nexport const versionNumberColumn: ColDef = {\r\n headerName: 'Version',\r\n field: 'version'\r\n};\r\n\r\nexport const versionDateColumn: ColDef = {\r\n headerName: 'Version Date',\r\n field: 'versionDate',\r\n comparator: dateTimeComparator,\r\n valueGetter: (params: ReportParams) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n\r\n let data = params.data as LabManualsReport;\r\n\r\n return dateRenderer({ value: data.versionDate });\r\n }\r\n};\r\n\r\nexport const zcProjectNumberColumn: ColDef = {\r\n headerName: 'Project',\r\n field: 'zcProjectNumber',\r\n filter: 'agTextColumnFilter',\r\n filterParams: { filterOptions: ['startsWith'] },\r\n floatingFilterComponentParams: { suppressFilterButton: true },\r\n width: 115\r\n};\r\n\r\nexport const trainingMaterialsProjectColumn: ColDef = {\r\n valueGetter: (params: TrainingMaterialsReportRendererParams) => params.data.projectNumber,\r\n headerName: 'Project Number',\r\n field: 'zcProjectNumber',\r\n filter: 'agTextColumnFilter',\r\n filterParams: { filterOptions: ['startsWith'] },\r\n floatingFilterComponentParams: { suppressFilterButton: true },\r\n width: 115\r\n};\r\n\r\n\r\nexport const regionColumn: ColDef = {\r\n headerName: 'Region',\r\n field: 'region',\r\n filter: 'agTextColumnFilter',\r\n floatingFilterComponentParams: { suppressFilterButton: true }\r\n};\r\n\r\nexport const sitesColumn: ColDef = {\r\n headerName: 'Sites',\r\n field: 'sites',\r\n valueGetter: (params: { data: Report }) => params.data.sites.map(fl => fl.siteNum).join(', '),\r\n floatingFilterComponentParams: { suppressFilterButton: true },\r\n filter: 'agTextColumnFilter'\r\n};\r\n\r\nexport function getSiteNumColumn(sort: 'asc' | 'desc' | null = null): ColDef {\r\n return {\r\n headerName: 'Site Number',\r\n field: 'siteNum',\r\n suppressMenu: true,\r\n filter: 'agTextColumnFilter',\r\n sort: sort,\r\n floatingFilterComponentParams: { suppressFilterButton: true },\r\n comparator: (a, b) => comparators.mixedStringComparator(a, b),\r\n };\r\n}\r\n\r\nexport const visitColumn: ColDef = {\r\n headerName: 'Visit',\r\n field: 'visit',\r\n floatingFilterComponentParams: { suppressFilterButton: true },\r\n filter: 'agTextColumnFilter',\r\n valueGetter: (params: VisitReportRendererParams) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n\r\n const visits = chain(params.data.visits)\r\n .filter(x => !isEmpty(x.visit))\r\n .map(x => x.visit)\r\n .sort()\r\n .value()\r\n .join(', ');\r\n\r\n return visits;\r\n }\r\n};\r\n\r\nexport const visitCollectionDateColumn: CovanceGridColumn = {\r\n headerName: 'Collected Date',\r\n field: 'visitCollectionDate',\r\n comparator: dateTimeArrayComparator,\r\n valueGetter: (params: VisitReportRendererParams) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n\r\n const collectionDates = chain(params.data.visits)\r\n .filter(x => !isEmpty(x.visitCollectionDate))\r\n .map(x => x.visitCollectionDate)\r\n .sortBy(x => x.valueOf())\r\n .value();\r\n\r\n return collectionDates;\r\n },\r\n cellRenderer: (params: {value: Moment[]}) => dateArrayRenderer(params.value),\r\n getQuickFilterText: (params: {value: Moment[]}) => dateArrayRenderer(params.value),\r\n};\r\n\r\nexport const isResponseRequiredColumn: ColDef = {\r\n headerName: 'Response Required',\r\n field: 'isResponseRequired',\r\n width: 150,\r\n cellRenderer: booleanRenderer,\r\n getQuickFilterText: booleanQuickFilterText,\r\n filter: 'agSetColumnFilter',\r\n filterParams: {\r\n cellRenderer: (params: BooleanCellRendererParams) => yesNoRenderer(params.value)\r\n },\r\n floatingFilterComponentFramework: BooleanAgFloatingFilterComponent,\r\n floatingFilterComponentParams: {\r\n booleanValueRenderer: yesNoRenderer\r\n } as BooleanAgFloatingFilterParams\r\n};\r\n\r\nexport const responseNeededByColumn: CovanceGridColumn = {\r\n headerName: 'Response Needed by',\r\n field: 'responseNeededBy',\r\n comparator: dateTimeComparator,\r\n valueGetter: (params: SiteActionsReportParams) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n return dateRenderer({ value: params.data.responseNeededBy });\r\n },\r\n floatingFilterComponentParams: { suppressFilterButton: true },\r\n filter: 'agTextColumnFilter'\r\n};\r\n\r\nfunction getDownloadColumn(headerName: string): CovanceGridColumn {\r\n return {\r\n headerName: headerName,\r\n getQuickFilterText: (params: ReportParams) => params.data.fileLinks.map(fl => fl.language).join(' '),\r\n suppressSorting: true,\r\n suppressMenu: true,\r\n suppressFilter: true,\r\n cellRendererFramework: LanguageLinkAgRendererComponent,\r\n noExport: true,\r\n cellStyle: function () {\r\n return { overflow: 'visible' };\r\n }\r\n };\r\n}\r\n\r\nexport const downloadColumn: CovanceGridColumn = getDownloadColumn('Download');\r\n\r\nexport const viewColumn: CovanceGridColumn = getDownloadColumn('View');\r\n\r\nexport const downloadViewColumn: CovanceGridColumn = getDownloadColumn('Download/View');\r\n\r\nexport const reportTypeColumn: CovanceGridColumn = {\r\n headerName: 'Type',\r\n field: 'type',\r\n width: 75\r\n};\r\n\r\ntype ReportParams = {\r\n data: Report;\r\n};\r\n\r\nexport type VisitReportRendererParams = {\r\n data: VisitReport;\r\n};\r\n\r\nexport type TrainingMaterialsReportRendererParams = {\r\n data: TrainingMaterialsReport;\r\n};\r\n\r\nexport type SiteActionsReportParams = {\r\n data: SiteActionsReport;\r\n};\r\n\r\nexport type LabReportParams = {\r\n data: LabReport;\r\n};\r\n","export function siteDisplayNameRenderer(params: SiteDisplayNameParams) {\r\n return [params.siteNumber, params.investigatorFullName].filter(i => !!i).join(' - ');\r\n}\r\n\r\ninterface SiteDisplayNameParams {\r\n siteNumber: string;\r\n investigatorFullName: string;\r\n}\r\n","import { dataMember, required, typedArray } from 'santee-dcts';\r\n\r\nexport class DocumentFilterItem {\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public type: KeyValuePair;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public protocol: KeyValuePair;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public project: KeyValuePair;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public site: KeyValuePair;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public visit: KeyValuePair;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public subject: KeyValuePair;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public accessionNumber: KeyValuePair;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public subcategory: KeyValuePair;\r\n \r\n @dataMember()\r\n @required({ nullable: true })\r\n public sponsor: KeyValuePair;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public kitType: KeyValuePair;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public description: KeyValuePair;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public status: KeyValuePair;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public documentType: KeyValuePair;\r\n}\r\n\r\nexport class KeyValuePair {\r\n @dataMember()\r\n @required()\r\n public key: string;\r\n\r\n @dataMember()\r\n @required()\r\n public value: string;\r\n\r\n public toString() {\r\n return this.value;\r\n }\r\n}\r\n\r\nexport class DocumentFilterItemReadModel {\r\n @dataMember()\r\n @required()\r\n @typedArray(DocumentFilterItem)\r\n public documentFilterItems: DocumentFilterItem[];\r\n}","import { Injectable } from '@angular/core';\r\nimport { Resolve, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { NavigationActivityRouteData, NavigationActivityHandler } from './handlers/navigation-activity-handler';\r\nimport { ActivityLogger } from '../activity-logger';\r\nimport { ActivityData } from '../activity-data';\r\n\r\n@Injectable()\r\nexport class NavigationActivityResolver implements Resolve {\r\n constructor(private readonly activityLogger: ActivityLogger) {}\r\n\r\n public resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n const dataKey: keyof NavigationActivityRouteData = 'navigationActivityHandler';\r\n const handler: NavigationActivityHandler = route.data[dataKey];\r\n\r\n if (!handler) {\r\n throw new Error('Use navigationActivityHandler for route');\r\n }\r\n\r\n const activitySession = this.activityLogger.activitySession;\r\n const data = handler({ route, state, activitySession });\r\n\r\n return data;\r\n }\r\n}\r\n\r\nexport interface NavigationActivityResolverData {\r\n activity: new (...args: any[]) => NavigationActivityResolver;\r\n}\r\n\r\nexport const navigationActivity: NavigationActivityResolverData = {\r\n activity: NavigationActivityResolver\r\n};","import { Observable } from 'rxjs';\r\nimport { map, publishLast, refCount } from 'rxjs/operators';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { deserialize } from 'santee-dcts';\r\nimport { Settings } from '../core/settings';\r\nimport { User } from './user';\r\n\r\n@Injectable()\r\nexport class UserStorage {\r\n private currentUserInternal: Observable = null;\r\n\r\n constructor(\r\n private readonly settings: Settings,\r\n private readonly http: HttpClient,\r\n ) {\r\n }\r\n\r\n public get currentUser() {\r\n if (!this.currentUserInternal) {\r\n this.currentUserInternal = this.loadUser();\r\n }\r\n\r\n return this.currentUserInternal;\r\n }\r\n\r\n private loadUser(): Observable {\r\n return this.http.get(`${this.settings.apiUrl}/user`)\r\n .pipe(\r\n map((response) => deserialize(response, User)),\r\n publishLast(),\r\n refCount(),\r\n );\r\n }\r\n}\r\n\r\n","export * from './global-popup.module';\r\nexport * from './global-popup.component';","import { Params } from '@angular/router';\r\nimport {CovanceGridColumn} from '../covance-ag-grid/covance-grid-column';\r\nexport type DateRangeType = 'dateRange' | 'today' | 'monthToDate' | 'yearToDate';\r\nimport { getAgeInDays } from '../on-screen-results/on-screen-results';\r\nimport { isNil } from 'lodash';\r\n\r\nexport interface FilterFieldDef {\r\n title?: string;\r\n\r\n type?: FilterFieldType;\r\n\r\n queryParam?: string;\r\n\r\n onChange?: (fieldVal: FilterFieldValue) => void;\r\n\r\n order?: number;\r\n\r\n isServerSideFilter?: boolean;\r\n\r\n isOff?: boolean;\r\n\r\n isPinned?: boolean;\r\n\r\n leaveOnlySelectedItems?: boolean;\r\n\r\n isMatch?: (str: any, entity: any) => boolean;\r\n\r\n getItems?: (entities?: any[]) => any[]; // for select, multiSelect...\r\n\r\n compare?: (a: any, b: any) => number;\r\n\r\n width?: number;\r\n\r\n skipMissingItems?: boolean;\r\n}\r\n\r\nexport interface FilterFieldValue {\r\n def: FilterFieldDef;\r\n queryParamValue?: string;\r\n value?: any;\r\n items?: any; // for select, multiSelect...\r\n filteredFieldName?: string; // for chain\r\n}\r\n\r\nexport enum FilterFieldType {\r\n Text,\r\n Number,\r\n NumberRange,\r\n Date,\r\n DateRange,\r\n Select,\r\n MultiSelect,\r\n Checkbox,\r\n ChainNode,\r\n External,\r\n AgeRange,\r\n Age,\r\n DateTimeRange\r\n}\r\n\r\nexport interface FilterGridColDef extends CovanceGridColumn {\r\n filterFieldDef?: FilterFieldDef;\r\n}\r\n\r\nexport interface FilterQueryParams {\r\n observableQueryParams: Params;\r\n allQueryParams: Params;\r\n}\r\n\r\nexport interface FilterDateRangeValue {\r\n rangeType: DateRangeType;\r\n dateBegin: string;\r\n dateEnd: string;\r\n}\r\n\r\nexport interface FilterNumberRangeValue {\r\n min: number;\r\n max: number;\r\n}\r\n\r\nexport class FilterAgeRangeValue {\r\n constructor(public ageValueStart: number, public ageUnitStart: string, public ageValueEnd: number, public ageUnitEnd: string) { }\r\n\r\n public isInRange(daysLived: number) {\r\n return (!isNil(this.fromDays) ? daysLived >= this.fromDays : true) && (!isNil(this.toDays) ? daysLived <= this.toDays : true);\r\n }\r\n\r\n public get isValid() {\r\n return (!this.fromDays || !this.toDays) || this.toDays >= this.fromDays;\r\n }\r\n\r\n public get fromDays() {\r\n return getAgeInDays(this.ageValueStart, this.ageUnitStart);\r\n }\r\n\r\n public get toDays() {\r\n return getAgeInDays(this.ageValueEnd, this.ageUnitEnd);\r\n }\r\n}\r\n\r\nexport class AgeFilter {\r\n constructor(public operator: string, public day: string) {\r\n }\r\n}\r\n","///\r\n\r\nimport { Component, ChangeDetectionStrategy, Input, Output, EventEmitter } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { RowNode, GridOptions, CsvExportParams, ProcessCellForExportParams } from 'ag-grid-community';\r\nimport { CovanceGridColumn } from './covance-grid-column';\r\nimport { isEmpty, some } from 'lodash';\r\nimport { MdlDialogService } from '@angular-mdl/core';\r\nimport * as xlsx from 'xlsx';\r\nimport { first } from 'rxjs/operators';\r\n\r\ninterface ExportType {\r\n title: string;\r\n exporter: () => void;\r\n}\r\n\r\nexport interface SortModel {\r\n colId: string;\r\n sort: string;\r\n}\r\n\r\n@Component({\r\n selector: 'ag-export',\r\n template: require('./ag-export.component.html'),\r\n styles: [require('./ag-export.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AgExportComponent {\r\n\r\n @Input()\r\n public gridOptions: GridOptions;\r\n\r\n @Input()\r\n public showPrint = false;\r\n\r\n @Input()\r\n public showSave = false;\r\n\r\n public get showSelect() {\r\n return this.showPrint || this.showSave;\r\n }\r\n\r\n @Input()\r\n public showExport = true;\r\n\r\n @Input()\r\n public exportData: { [key: string]: string }[];\r\n\r\n @Input()\r\n public exportDisclaimer: string = null;\r\n\r\n @Input()\r\n public exportGrid: GridOptions = null;\r\n\r\n @Input()\r\n public showTotal = false;\r\n\r\n @Input()\r\n public showCount = false;\r\n\r\n @Input()\r\n public selectedRowNodes: RowNode[];\r\n\r\n @Input()\r\n public rowData: ExportedData[];\r\n\r\n @Input()\r\n public checkBoxLabel: string = null;\r\n\r\n @Output()\r\n public documentsSave = new EventEmitter();\r\n\r\n @Output()\r\n public documentsPrint = new EventEmitter();\r\n\r\n @Output()\r\n public checkBoxClicked = new EventEmitter();\r\n\r\n public checkBoxValue = false;\r\n\r\n public exportTypes: ExportType[] = [\r\n {\r\n title: 'Export to CSV',\r\n exporter: () => this.exportCsv()\r\n },\r\n {\r\n title: 'Export to Excel',\r\n exporter: () => this.exportXlsx()\r\n }\r\n ];\r\n\r\n constructor(private router: Router, private dialogService: MdlDialogService) { }\r\n\r\n @Input()\r\n public handleSort = (sortModels: SortModel[]): SortModel[] => {\r\n return sortModels;\r\n }\r\n\r\n public get totalRecords() {\r\n const api = this.gridOptions.api;\r\n let totalCount = 0;\r\n if (api) {\r\n this.gridOptions.api.forEachNodeAfterFilter((s) => {\r\n if (s.group) {\r\n return;\r\n }\r\n\r\n totalCount++;\r\n });\r\n }\r\n return totalCount;\r\n }\r\n\r\n public get unreadCount() {\r\n const api = this.gridOptions.api;\r\n let unreadCount = 0;\r\n if (api) {\r\n this.gridOptions.api.forEachNodeAfterFilter((s) => {\r\n if (s.group) {\r\n return;\r\n }\r\n\r\n if (!s.data.isRead) {\r\n unreadCount++;\r\n }\r\n });\r\n }\r\n return unreadCount;\r\n }\r\n\r\n public getCheckboxIconName(): string {\r\n if (this.selectedRowNodes.length === 0) {\r\n return 'check_box_outline_blank';\r\n }\r\n\r\n const allNodes: RowNode[] = [];\r\n\r\n this.gridOptions.api.forEachNodeAfterFilterAndSort(rowNode => allNodes.push(rowNode));\r\n\r\n if (this.selectedRowNodes.length === allNodes.length) {\r\n return 'check_box';\r\n }\r\n\r\n return 'indeterminate_check_box';\r\n }\r\n\r\n public anyRowsSelected(): boolean {\r\n return this.selectedRowNodes.length !== 0;\r\n }\r\n\r\n public anyPrintableRows(): boolean {\r\n return some(this.rowData, r => r.isPrintable);\r\n }\r\n\r\n public anyPrintableRowsSelected(): boolean {\r\n return some(this.selectedRowNodes, (r: RowNode) => r.data && r.data.isPrintable);\r\n }\r\n\r\n\r\n public onClick(exportType: ExportType) {\r\n exportType.exporter();\r\n }\r\n\r\n public onSaveDocuments() {\r\n const data = this.getSelected();\r\n this.documentsSave.emit(data);\r\n }\r\n\r\n public async onPrintDocuments() {\r\n const data = this.getSelected();\r\n const unprintables = data.filter(r => !r.isPrintable);\r\n if (!isEmpty(unprintables)) {\r\n try {\r\n await this.dialogService\r\n .confirm('Some of the selected documents are not printable. Do you wish to continue?', 'No', 'Yes')\r\n .pipe(first())\r\n .toPromise();\r\n } catch (ex) {\r\n return;\r\n }\r\n this.documentsPrint.emit(data);\r\n return;\r\n\r\n } else {\r\n this.documentsPrint.emit(data);\r\n }\r\n }\r\n\r\n public onSaveUnreadDocuments() {\r\n const data = this.getAllUnread();\r\n this.documentsSave.emit(data);\r\n }\r\n\r\n public onPrintUnreadDocuments() {\r\n const data = this.getAllUnread();\r\n this.documentsPrint.emit(data);\r\n }\r\n\r\n public onCheckBoxClicked(event: boolean) {\r\n this.checkBoxClicked.emit(event);\r\n }\r\n\r\n public selectUnread() {\r\n this.gridOptions.api.forEachNodeAfterFilterAndSort((node) => {\r\n if (node.group) {\r\n return;\r\n }\r\n node.setSelected(!(node.data as ExportedData).isRead);\r\n });\r\n }\r\n\r\n public selectAll() {\r\n this.gridOptions.api.selectAllFiltered();\r\n }\r\n\r\n public deselectAll() {\r\n this.gridOptions.api.deselectAll();\r\n }\r\n\r\n public get isEnabled(): boolean {\r\n if (!this.rowData) {\r\n return false;\r\n }\r\n\r\n return this.rowData.filter(r => !r.isRead && r.isSavable).length !== 0;\r\n }\r\n\r\n public getUnreadDisabledAttr() {\r\n return this.isEnabled ? null : 'disabled';\r\n }\r\n\r\n private getSelected() {\r\n if (!this.gridOptions.api) {\r\n return [];\r\n }\r\n const data = this.selectedRowNodes.filter(node => !node.group).map(node => node.data);\r\n return data;\r\n }\r\n\r\n private getAllUnread(): ExportedData[] {\r\n if (!this.rowData) {\r\n return [];\r\n }\r\n\r\n const result = this.rowData.filter(data => !data.isRead);\r\n return result;\r\n }\r\n\r\n private getExportParams(): CsvExportParams {\r\n const columnsToExport = ((this.exportGrid || this.gridOptions).columnDefs as CovanceGridColumn[])\r\n .filter(c => !c.noExport && c.field)\r\n .map(c => c.field);\r\n const customHeader = this.exportDisclaimer ?\r\n `\"Disclaimer: ${this.exportDisclaimer}\"`\r\n : null;\r\n return {\r\n customHeader: customHeader,\r\n columnKeys: columnsToExport,\r\n skipGroups: true,\r\n fileName: this.getExportFileName(),\r\n processCellCallback: (params: ProcessCellForExportParams) => {\r\n const renderrer = params.column.getColDef().cellRenderer;\r\n if (renderrer instanceof Function) {\r\n return (renderrer as Function)(params.node);\r\n }\r\n return params.value;\r\n }\r\n };\r\n }\r\n\r\n private getExportFileName() {\r\n const urlTree = this.router.parseUrl(this.router.url);\r\n urlTree.queryParams = {};\r\n const urlWithoutQueryParams = this.router.serializeUrl(urlTree);\r\n\r\n const fileName = urlWithoutQueryParams\r\n .split('/')\r\n .filter(subPath => !isEmpty(subPath))\r\n .join('-');\r\n\r\n return fileName;\r\n }\r\n\r\n private b64toBlob(b64Data: any, contentType: string): Blob {\r\n const sliceSize = 512;\r\n\r\n const byteCharacters = atob(b64Data);\r\n const byteArrays = [];\r\n\r\n for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\r\n const slice = byteCharacters.slice(offset, offset + sliceSize);\r\n\r\n const byteNumbers = new Array(slice.length);\r\n for (let i = 0; i < slice.length; i++) {\r\n byteNumbers[i] = slice.charCodeAt(i);\r\n }\r\n\r\n const byteArray = new Uint8Array(byteNumbers);\r\n\r\n byteArrays.push(byteArray);\r\n }\r\n\r\n const blob = new Blob(byteArrays, { type: contentType });\r\n return blob;\r\n }\r\n\r\n private openFileLink(fileName: string, blob: Blob) {\r\n if (window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(blob, fileName); // IE specific blob download\r\n } else {\r\n const elem = document.createElement('a') as HTMLAnchorElement;\r\n elem.href = URL.createObjectURL(blob);\r\n elem.download = fileName;\r\n document.body.appendChild(elem);\r\n elem.click();\r\n document.body.removeChild(elem);\r\n }\r\n }\r\n\r\n private copyGridSortToExportGrid() {\r\n if (this.exportGrid) {\r\n const sortModel = this.handleSort(this.gridOptions.api.getSortModel());\r\n this.exportGrid.api.setSortModel(sortModel);\r\n\r\n if (this.exportGrid.quickFilterText) { \r\n this.exportGrid.api.setQuickFilter(this.exportGrid.quickFilterText);\r\n }\r\n }\r\n }\r\n\r\n // based on https://www.ag-grid.com/javascript-grid-excel/#exportToXlsx\r\n private exportXlsx() {\r\n const exportOptions = this.getExportParams();\r\n this.copyGridSortToExportGrid();\r\n const csvData = (this.exportGrid || this.gridOptions).api.getDataAsCsv(exportOptions);\r\n var workBook = xlsx.read(csvData, { type: 'binary', raw: true });\r\n\r\n if (this.exportData != null) {\r\n var additionalSheet = xlsx.utils.json_to_sheet(this.exportData);\r\n xlsx.utils.book_append_sheet(workBook, additionalSheet);\r\n }\r\n\r\n var xlsxContent = xlsx.write(workBook, { bookType: 'xlsx', bookSST: false, type: 'base64' });\r\n const blob = this.b64toBlob(xlsxContent, 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');\r\n const fileName = `${exportOptions.fileName}.xlsx`;\r\n\r\n this.openFileLink(fileName, blob);\r\n }\r\n\r\n private exportCsv() {\r\n const exportOptions = this.getExportParams();\r\n this.copyGridSortToExportGrid();\r\n const csvData = (this.exportGrid || this.gridOptions).api.getDataAsCsv(exportOptions);\r\n var workBook = xlsx.read(csvData, { type: 'binary', raw: true });\r\n\r\n if (this.exportData != null) { \r\n\r\n var firstSheetName = workBook.SheetNames ? workBook.SheetNames[0] : null;\r\n var firstSheet = workBook.Sheets[firstSheetName];\r\n \r\n if (firstSheet != null) {\r\n xlsx.utils.sheet_add_json(\r\n firstSheet,\r\n this.exportData,\r\n { origin: -1 }\r\n );\r\n }\r\n }\r\n\r\n var csvContent = xlsx.write(workBook, { bookType: 'csv', type: 'base64' });\r\n const blob = this.b64toBlob(csvContent, 'text/csv');\r\n const fileName = `${exportOptions.fileName}.csv`;\r\n\r\n this.openFileLink(fileName, blob);\r\n }\r\n}\r\n\r\ninterface ExportedData {\r\n isRead: boolean;\r\n isPrintable: boolean;\r\n isSavable: boolean;\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { AgExportComponent } from './ag-export.component';\r\nimport { CovanceAgGridHelper } from './covance-ag-grid-helper';\r\nimport { CovanceAgGridComponent } from './covance-ag-grid.component';\r\nimport { BooleanAgFloatingFilterComponent } from './filters/boolean-ag-floating-filter.component';\r\nimport { BooleanFilterComponent } from './filters/boolean-filter.component';\r\nimport { FilterHeaderComponent } from './filters/filter-header.component';\r\nimport { BarRendererComponent } from './renderers/bar-renderer.component';\r\nimport { CellTooltipAgRendererComponent } from './renderers/cell-tooltip-ag-renderer.component';\r\nimport { HeaderGroupRenderer } from './renderers/header-group-renderer.component';\r\nimport { HeaderTooltipAgRendererComponent } from './renderers/header-tooltip-ag-renderer.component';\r\nimport { HiddenDocumentAgRendererComponent } from './renderers/hidden-document-ag-renderer.component';\r\nimport { HiddenEQUeryAgRendererComponent } from './renderers/hidden-e-query-ag-renderer.component';\r\nimport { LinkAgRendererComponent } from './renderers/link-ag-renderer.component';\r\nimport { MulticellAgRendererComponent } from './renderers/multicell-ag-renderer.component';\r\nimport { MultilineAgRendererComponent } from './renderers/multiline-ag-renderer.component';\r\nimport { TestLinkAgRendererComponent } from './renderers/test-link-ag-renderer.component';\r\nimport { TextListAgRendererComponent } from './renderers/text-list-ag-renderer.component';\r\nimport { ViewHistoryAgRendererComponent } from './renderers/view-history-ag-renderer.component';\r\nimport { DetailModalPopupAgRendererComponent } from './renderers/detail-modal-popup-renderer.component';\r\nimport {AgeRendererComponent} from './renderers/age-renderer/age-renderer.component';\r\nimport {ResponseAgeRendererComponent} from './renderers/response-age-renderer/response-age-renderer.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n CovanceAgGridComponent,\r\n LinkAgRendererComponent,\r\n TextListAgRendererComponent,\r\n MultilineAgRendererComponent,\r\n MulticellAgRendererComponent,\r\n ViewHistoryAgRendererComponent,\r\n BooleanFilterComponent,\r\n AgExportComponent,\r\n CellTooltipAgRendererComponent,\r\n BarRendererComponent,\r\n HeaderTooltipAgRendererComponent,\r\n HeaderGroupRenderer,\r\n TestLinkAgRendererComponent,\r\n FilterHeaderComponent,\r\n HiddenDocumentAgRendererComponent,\r\n HiddenEQUeryAgRendererComponent,\r\n BooleanAgFloatingFilterComponent,\r\n DetailModalPopupAgRendererComponent,\r\n AgeRendererComponent,\r\n ResponseAgeRendererComponent\r\n ],\r\n imports: [\r\n SharedModule,\r\n ReactiveFormsModule\r\n ],\r\n exports: [CovanceAgGridComponent, AgExportComponent, FilterHeaderComponent],\r\n providers: [CovanceAgGridHelper],\r\n entryComponents: [\r\n LinkAgRendererComponent,\r\n TextListAgRendererComponent,\r\n MultilineAgRendererComponent,\r\n MulticellAgRendererComponent,\r\n ViewHistoryAgRendererComponent,\r\n BooleanFilterComponent,\r\n CellTooltipAgRendererComponent,\r\n BarRendererComponent,\r\n HeaderTooltipAgRendererComponent,\r\n HeaderGroupRenderer,\r\n TestLinkAgRendererComponent,\r\n FilterHeaderComponent,\r\n HiddenDocumentAgRendererComponent,\r\n HiddenEQUeryAgRendererComponent,\r\n BooleanAgFloatingFilterComponent,\r\n DetailModalPopupAgRendererComponent,\r\n AgeRendererComponent,\r\n ResponseAgeRendererComponent\r\n ]\r\n})\r\nexport class CovanceAgGridModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { CovanceGridColumn } from '../covance-ag-grid/covance-grid-column';\r\nimport { MulticellAgRendererComponent, MulticellItem, MulticellParams, MulticellTooltip } from '../covance-ag-grid/renderers/multicell-ag-renderer.component';\r\nimport { isEmpty } from 'lodash';\r\nimport { ActionsMenuAgRendererComponent } from '../covance-ag-grid/renderers/actions-menu-ag-renderer-base';\r\nimport { comparators } from '../core';\r\nimport { UserPermissions } from '../user-permissions/user-permissions';\r\nimport { CategoryNaturalKey } from '../documents/models/category';\r\nimport { AgeRendererComponent } from '../covance-ag-grid/renderers/age-renderer/age-renderer.component';\r\nimport { LinkParams, LinkAgRendererComponent } from '../covance-ag-grid';\r\nimport { SubjectTitleRenderer } from '../renderer/subject-title-renderer';\r\n\r\nexport interface ActionsMenuColumn extends CovanceGridColumn {\r\n userPermissions?: UserPermissions;\r\n categoryId?: CategoryNaturalKey;\r\n userId?: number;\r\n cellRendererFramework: new (...args: any[]) => ActionsMenuAgRendererComponent;\r\n}\r\n\r\ninterface MultiLineStringColumnParams {\r\n title: string;\r\n field: string;\r\n stringsValueGetter: (entity: T) => string[];\r\n tooltipGetter: (s: string) => MulticellTooltip[];\r\n useFilter?: boolean;\r\n}\r\n\r\n@Injectable()\r\nexport class GridColumns {\r\n\r\n public multiLineStringColumn(parameters: MultiLineStringColumnParams): CovanceGridColumn {\r\n const { title, field, stringsValueGetter, tooltipGetter, useFilter } = parameters;\r\n\r\n let colDef: CovanceGridColumn = {\r\n headerName: title,\r\n field: field,\r\n cellRendererFramework: MulticellAgRendererComponent,\r\n getLineCount: (entity: T) => {\r\n const strings = stringsValueGetter(entity);\r\n return strings ? strings.length : 0;\r\n },\r\n getRowHeight: (entity: T) => {\r\n //the value of lineHeight should match the one in grid.scss\r\n const lineHeight = 23;\r\n const strings = stringsValueGetter(entity);\r\n\r\n return (strings ? strings.length : 0) * lineHeight;\r\n },\r\n valueGetter: (params: { data: T }) => {\r\n const dataStrings = stringsValueGetter(params.data);\r\n if (isEmpty(dataStrings)) {\r\n return null;\r\n }\r\n\r\n const items = dataStrings.map(role => ({\r\n displayValue: role,\r\n tooltips: tooltipGetter(role) //add tooltip\r\n } as MulticellItem));\r\n\r\n return {\r\n items: items,\r\n toString: () => dataStrings.join('\\n')\r\n } as MulticellParams;\r\n },\r\n comparator: (a: MulticellParams, b: MulticellParams) => {\r\n return comparators.stringComparator(a.toString(), b.toString());\r\n }\r\n };\r\n\r\n if (useFilter) {\r\n colDef.filterValueGetter = (params: { data: T }) => {\r\n return stringsValueGetter(params.data);\r\n };\r\n colDef.filter = 'agSetColumnFilter';\r\n }\r\n\r\n return colDef;\r\n }\r\n\r\n public actionsMenuColumn(properties: ActionsMenuColumn): ActionsMenuColumn {\r\n return {\r\n ...properties,\r\n headerName: 'ActionsMenu',\r\n suppressSorting: true,\r\n noExport: true,\r\n suppressMenu: true,\r\n suppressFilter: true,\r\n maxWidth: 70,\r\n cellStyle: { overflow: 'visible', display: 'flex', justifyContent: 'flex-end' },\r\n headerValueGetter: () => ''\r\n };\r\n }\r\n\r\n public accessionNumberColumn(\r\n buildRouterLink: (params: AccessionNumberRendererParams) => string | any[],\r\n accessionNumbersAccessor: (data: TData) => string[],\r\n ): CovanceGridColumn {\r\n return {\r\n headerName: 'Accession',\r\n field: 'accessionNumber',\r\n width: 95,\r\n valueGetter: (params: AccessionNumberRendererParams) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n\r\n const accessionNumbers: string[] = accessionNumbersAccessor(params.data);\r\n\r\n const textedAccessionNumbers = accessionNumbers.join(', ');\r\n const serializedAccessionNumbers = JSON.stringify(accessionNumbers);\r\n\r\n const routerLink: LinkParams = {\r\n routerLink: buildRouterLink(params),\r\n queryParams: { accessionNumber: serializedAccessionNumbers },\r\n text: textedAccessionNumbers,\r\n toString: () => textedAccessionNumbers\r\n };\r\n\r\n return routerLink;\r\n },\r\n comparator: comparators.linkParamsComparator,\r\n cellRendererFramework: LinkAgRendererComponent,\r\n };\r\n }\r\n\r\n public subjectColumn(\r\n buildRouterLink: (params: SubjectRendererParams) => string | any[],\r\n titleRenderer: (data: TData) => string = data => {\r\n return data.subjectId ? SubjectTitleRenderer.renderTitle({\r\n data: {\r\n subjectNumber: data.subjectNumber,\r\n initials: data.subjectInitials,\r\n screeningNumber: data.screeningNumber,\r\n zcSubjectId: data.zcSubjectId\r\n }\r\n }) : '';\r\n }\r\n ): CovanceGridColumn {\r\n return {\r\n headerName: 'Subject',\r\n field: 'subjectId',\r\n width: 140,\r\n valueGetter: (params: SubjectRendererParams) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n\r\n const subjectTitle = titleRenderer(params.data);\r\n\r\n const linkParams: LinkParams = {\r\n routerLink: params.data.zcSubjectId\r\n ? buildRouterLink(params)\r\n : [],\r\n text: subjectTitle,\r\n toString: () => subjectTitle\r\n };\r\n\r\n return linkParams;\r\n },\r\n comparator: comparators.linkParamsComparator,\r\n cellRendererFramework: LinkAgRendererComponent\r\n };\r\n }\r\n}\r\n\r\ninterface AccessionNumberRendererParams {\r\n data: TData;\r\n}\r\n\r\ninterface DataWithSubject {\r\n zcSubjectId: string;\r\n subjectId: number;\r\n subjectNumber: string;\r\n subjectInitials: string;\r\n screeningNumber: string;\r\n}\r\n\r\ninterface SubjectRendererParams {\r\n data: TData;\r\n}\r\n","import { ActivatedRouteSnapshot } from '@angular/router';\r\n\r\nconst findNearestRouteValue = (\r\n route: ActivatedRouteSnapshot,\r\n accessorValue: (segment: ActivatedRouteSnapshot) => T\r\n): T => {\r\n let segment = route;\r\n\r\n while (segment) {\r\n const routeValue = accessorValue(segment);\r\n if (routeValue) {\r\n return routeValue;\r\n } else {\r\n segment = segment.parent;\r\n }\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst findNearestRouteParameter = (route: ActivatedRouteSnapshot, paramName: string): T => {\r\n return findNearestRouteValue(route, routeSnaphot => routeSnaphot.params[paramName]);\r\n};\r\n\r\nconst findNearestRouteData = (route: ActivatedRouteSnapshot, dataName: string): T => {\r\n return findNearestRouteValue(route, routeSnaphot => routeSnaphot.data[dataName]);\r\n};\r\n\r\nconst findQueryParamsData = (route: ActivatedRouteSnapshot, dataName: string): T => {\r\n return findNearestRouteValue(route, routeSnaphot => routeSnaphot.queryParams[dataName]);\r\n};\r\n\r\nexport const routeSnapshotExtensions = {\r\n findParameter: findNearestRouteParameter,\r\n findData: findNearestRouteData,\r\n findQueryParams: findQueryParamsData,\r\n};","import { Injectable } from '@angular/core';\r\nimport { Observable, Observer, ReplaySubject, combineLatest, interval } from 'rxjs';\r\nimport { distinctUntilChanged, map, share } from 'rxjs/operators';\r\nimport { Settings } from '../core/settings';\r\nimport * as moment from 'moment';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport { OktaAuth, IDToken, AuthTransaction, SessionObject } from '@okta/okta-auth-js';\r\nimport { UrlBuilder } from '../core/url-builder/url-builder';\r\n\r\nexport interface AuthInfo {\r\n isAuthenticated: boolean;\r\n idToken: IDToken | null;\r\n}\r\n\r\nconst wrongCredentialsMessage = 'There was a problem authenticating the account. Use the link below if you forgot your password or contact support for help.';\r\nconst expiredMessage = 'Your password has expired. Use the link below to reset it or contact support for help.';\r\n//https://developer.okta.com/docs/reference/error-codes\r\nconst oktaErrorMessages: { [errorCode: string]: string } = {\r\n 'E0000004': wrongCredentialsMessage\r\n};\r\n\r\n@Injectable()\r\nexport class AuthenticationState {\r\n\r\n public baseElement = document.querySelector('base');\r\n\r\n public clientId = this.settings.clientId;\r\n public redirectUrl = !!this.baseElement ? this.baseElement.href : window.location.href;\r\n public issuer = this.settings.issuer;\r\n public readonly oktaAuth: OktaAuth;\r\n\r\n private readonly authInfoSource: ReplaySubject = new ReplaySubject(1);\r\n private readonly expirationSource: Observable;\r\n\r\n private scopes: string[] = [\r\n 'openid',\r\n 'email',\r\n 'profile',\r\n 'address',\r\n 'phone',\r\n 'groups'\r\n ];\r\n\r\n private observer: Observer;\r\n\r\n constructor(\r\n private settings: Settings,\r\n private readonly http: HttpClient,\r\n private urlBuilder: UrlBuilder\r\n ) {\r\n const baseElement = document.querySelector('base');\r\n this.redirectUrl = !!baseElement ? baseElement.href : window.location.href;\r\n this.issuer = this.settings.issuer;\r\n\r\n this.oktaAuth = new OktaAuth({\r\n issuer: this.issuer,\r\n responseType: ['id_token'],\r\n clientId: this.clientId,\r\n redirectUri: this.redirectUrl,\r\n pkce: false,\r\n scopes: this.scopes,\r\n tokenManager: {\r\n storage: 'memory'\r\n }\r\n });\r\n\r\n this.loadInitialState();\r\n\r\n this.expirationSource = this.createExpirationSource().pipe(share());\r\n }\r\n\r\n public get authInfo() {\r\n return this.authInfoSource.asObservable();\r\n }\r\n\r\n public get sessionExists() {\r\n return this.oktaAuth.session.exists();\r\n }\r\n\r\n public get tokenExpiration() {\r\n return this.expirationSource;\r\n }\r\n\r\n public async refresh() {\r\n\r\n const session = await this.oktaAuth.session.get();\r\n\r\n if (session.status !== 'ACTIVE') {\r\n throw new Error('There is no active OKTA session');\r\n }\r\n\r\n await this.oktaAuth.session.refresh();\r\n\r\n const token = await this.oktaAuth.token.getWithoutPrompt({\r\n clientId: this.clientId,\r\n scopes: this.scopes\r\n });\r\n\r\n this.setToken(token.tokens.idToken);\r\n }\r\n\r\n public async login(username: string, password: string) {\r\n let loginResult: AuthTransaction;\r\n try {\r\n loginResult = await this.oktaAuth.signInWithCredentials({ username, password });\r\n } catch (ex) {\r\n const errorMessage = ex && (oktaErrorMessages[ex.errorCode] || ex.message || ex.error || ex);\r\n throw new Error(errorMessage);\r\n }\r\n\r\n switch (loginResult.status) {\r\n case 'SUCCESS':\r\n case 'PASSWORD_WARN':\r\n const token = await this.oktaAuth.token.getWithoutPrompt({\r\n sessionToken: loginResult.sessionToken,\r\n scopes: this.scopes\r\n });\r\n\r\n this.setToken(token.tokens.idToken);\r\n this.isAuthenticated();\r\n break;\r\n case 'LOCKED_OUT':\r\n throw new Error(wrongCredentialsMessage);\r\n case 'PASSWORD_EXPIRED':\r\n throw new Error(expiredMessage);\r\n\r\n default: {\r\n throw new Error(loginResult.status.toString());\r\n }\r\n }\r\n }\r\n\r\n public async loginWithWidget() {\r\n try {\r\n const tokens = await this.oktaAuth.tokenManager.getTokens();\r\n this.setToken(tokens.idToken);\r\n await this.isAuthenticated();\r\n } catch (ex) {\r\n const errorMessage = ex && (oktaErrorMessages[ex.errorCode] || ex.message || ex.error || ex);\r\n throw new Error(errorMessage);\r\n }\r\n }\r\n\r\n public async logout() {\r\n await this.oktaAuth.session.close();\r\n await this.oktaAuth.tokenManager.clear();\r\n this.setToken(null);\r\n await this.oktaAuth.signOut({\r\n postLogoutRedirectUri: `${this.settings.apiUrl}/logout`\r\n });\r\n }\r\n\r\n public async isAuthenticated() {\r\n\r\n let successfulAuthentication = false;\r\n try {\r\n\r\n const session = await this.oktaAuth.session.get();\r\n\r\n if (session.status === 'ACTIVE') {\r\n\r\n const tokens = await this.oktaAuth.tokenManager.getTokens();\r\n\r\n if (!tokens.idToken) {\r\n const token = await this.oktaAuth.token.getWithoutPrompt({\r\n scopes: this.scopes,\r\n responseType: 'id_token'\r\n });\r\n\r\n this.setToken(token.tokens.idToken);\r\n }\r\n\r\n successfulAuthentication = true;\r\n }\r\n \r\n } catch (e) {\r\n console.debug('Error while trying to fetch auth', e);\r\n }\r\n\r\n if (!successfulAuthentication) {\r\n this.setToken(null);\r\n }\r\n\r\n return successfulAuthentication;\r\n }\r\n\r\n private async loadInitialState() {\r\n this.isAuthenticated();\r\n }\r\n\r\n private setToken(idToken: IDToken | null) {\r\n console.debug('store auth result called', idToken);\r\n\r\n if (!idToken) {\r\n this.authInfoSource.next({ isAuthenticated: false, idToken: null });\r\n } else {\r\n this.authInfoSource.next({ isAuthenticated: true, idToken: idToken });\r\n }\r\n }\r\n\r\n private createExpirationSource() {\r\n\r\n return combineLatest(this.authInfo, interval(1000))\r\n .pipe(\r\n map(([authInfo]) => new ExpirationSnapshot(authInfo)),\r\n distinctUntilChanged((p, q) => {\r\n return p.isExpired === q.isExpired && p.authInfo === q.authInfo;\r\n }));\r\n }\r\n}\r\n\r\nexport class ExpirationSnapshot {\r\n public readonly isExpired: boolean | null = null;\r\n public readonly timeLeft: number;\r\n\r\n constructor(public readonly authInfo: AuthInfo) {\r\n\r\n if (authInfo.idToken && authInfo.idToken.idToken && authInfo.isAuthenticated) {\r\n const unixNow = moment.utc().unix();\r\n const unixLeft = authInfo.idToken.expiresAt - unixNow;\r\n this.isExpired = unixLeft <= 0;\r\n if (!this.isExpired) {\r\n this.timeLeft = unixLeft;\r\n }\r\n }\r\n }\r\n}","import { FilterFieldValue } from '../covance-filter';\r\nimport { HttpParams } from '@angular/common/http';\r\nimport * as moment from 'moment';\r\n\r\nexport function prepareFilterUrlParams(filterParameters: FilterFieldValue[]): HttpParams {\r\n if (!filterParameters) {\r\n return null;\r\n }\r\n \r\n let httpParams = new HttpParams();\r\n filterParameters\r\n .filter(p => p.value)\r\n .forEach((filterParam) => {\r\n const filterValue = filterParam.value;\r\n const paramName = filterParam.def.queryParam;\r\n\r\n if (paramName === 'date') {\r\n httpParams = httpParams.append('dateFrom', (filterValue.dateBegin) ? moment(filterValue.dateBegin).format('YYYY-MM-DDTHH:mm:ss') : '');\r\n httpParams = httpParams.append('dateTo', (filterValue.dateEnd) ? moment(filterValue.dateEnd).format('YYYY-MM-DDTHH:mm:ss') : '');\r\n return;\r\n }\r\n\r\n if (paramName === 'expirationDate') {\r\n httpParams = httpParams.append('expirationDateFrom', (filterValue.dateBegin) ? moment(filterValue.dateBegin).format('YYYY-MM-DDTHH:mm:ss') : '');\r\n httpParams = httpParams.append('expirationDateTo', (filterValue.dateEnd) ? moment(filterValue.dateEnd).format('YYYY-MM-DDTHH:mm:ss') : '');\r\n return;\r\n }\r\n\r\n if (paramName === 'sentDate') {\r\n httpParams = httpParams.append('sentDateFrom', (filterValue.dateBegin) ? moment(filterValue.dateBegin).format('YYYY-MM-DDTHH:mm:ss') : '');\r\n httpParams = httpParams.append('sentDateTo', (filterValue.dateEnd) ? moment(filterValue.dateEnd).format('YYYY-MM-DDTHH:mm:ss') : '');\r\n return;\r\n }\r\n\r\n if (Array.isArray(filterValue)) {\r\n filterValue\r\n .forEach(v => httpParams = httpParams.append(paramName, v.key || v));\r\n } else {\r\n httpParams = httpParams.append(paramName, filterValue.key || filterValue);\r\n }\r\n });\r\n\r\n return httpParams;\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { BehaviorSubject, merge, Observable, Subject } from 'rxjs';\r\nimport { first, map, publishReplay, refCount, switchMap, withLatestFrom } from 'rxjs/operators';\r\nimport { deserialize } from 'santee-dcts';\r\nimport { Settings } from '../core';\r\nimport { UserStorage } from '../user/user-storage';\r\nimport { CategoriesStorage } from './categories-storage';\r\nimport { Acknowledgement } from '../view-history';\r\nimport { DocumentsCounterBase, DocumentsCounterReadModel } from './models/documents-counter';\r\nimport { Report } from './models/report';\r\nimport { ReportsPackage } from './models/reports-package';\r\n\r\nexport const UNREAD_REPORTS_STORAGE = new InjectionToken>('DocumentsUnreadReportStorageToken');\r\n\r\nexport interface ReadDocumentMarker {\r\n markAsRead(reports: Report[]): Promise;\r\n}\r\n\r\nexport abstract class UnreadReportsStorage implements ReadDocumentMarker {\r\n\r\n public get allUnread(): Observable {\r\n return this.allUnreadStream;\r\n }\r\n\r\n public get docsHaveBeenRead(): Observable {\r\n return this.markedAsRead$.asObservable();\r\n }\r\n\r\n private readonly allUnreadStream: Observable;\r\n private readonly markedAsRead$ = new Subject();\r\n private readonly updatedUnreadCounters$ = new Subject();\r\n private readonly refresher = new BehaviorSubject>(this.getUnreadCounters());\r\n\r\n constructor(\r\n private readonly settings: Settings,\r\n private readonly http: HttpClient,\r\n protected readonly categoriesStorage: CategoriesStorage,\r\n private readonly userStorage: UserStorage\r\n ) {\r\n const loadedUnreadCounters$ = this.refresher\r\n .pipe(\r\n switchMap(x => x),\r\n publishReplay(1),\r\n refCount()\r\n );\r\n // TODO: Bad. Mutations in the transformations\r\n const recalculatedOnDocumentsReading$ = this.markedAsRead$\r\n .pipe(\r\n withLatestFrom(loadedUnreadCounters$),\r\n map(([updatedReports, unreadCounters]: [ReportsPackage, T[]]) => {\r\n return this.recountOnDocumentsReading(updatedReports, unreadCounters);\r\n })\r\n );\r\n\r\n const recalculatedOnCountersUpdating$ = this.updatedUnreadCounters$\r\n .pipe(\r\n withLatestFrom(loadedUnreadCounters$),\r\n map(([updatedReports, unreadCounters]: [ReportsPackage, T[]]) => {\r\n return this.recountOnCountersUpdating(updatedReports, unreadCounters);\r\n })\r\n );\r\n\r\n this.allUnreadStream = merge(\r\n loadedUnreadCounters$,\r\n recalculatedOnDocumentsReading$,\r\n recalculatedOnCountersUpdating$\r\n ).pipe(\r\n publishReplay(1),\r\n refCount()\r\n );\r\n }\r\n\r\n /**\r\n * @param reports Be careful, the current method works only with reports which have the same category\r\n */\r\n public async markAsRead(reports: Report[]): Promise {\r\n const unreadBySite = reports.filter(r => !r.isRead);\r\n\r\n if (unreadBySite.length !== 0) {\r\n const unreadUpdate: ReportsPackage = { reports: unreadBySite, category: unreadBySite[0].category };\r\n this.markedAsRead$.next(unreadUpdate);\r\n }\r\n \r\n const user = await this.userStorage.currentUser.pipe(first()).toPromise();\r\n reports.forEach(r => {\r\n r.isRead = true;\r\n if (!r.isReadByMe) {\r\n r.isReadByMe = true;\r\n const acknowledgement = new Acknowledgement();\r\n acknowledgement.user = user.metadata;\r\n r.viewHistory.push(acknowledgement);\r\n }\r\n });\r\n }\r\n\r\n public updateUnreads(reports: ReportsPackage) {\r\n if (!reports) {\r\n return;\r\n }\r\n\r\n this.updatedUnreadCounters$.next(reports);\r\n }\r\n\r\n public getFreshUnreadsStream() {\r\n this.refreshUnreads();\r\n return this.allUnread;\r\n }\r\n\r\n public refreshUnreads() {\r\n this.refresher.next(this.getUnreadCounters());\r\n }\r\n\r\n protected abstract recountOnDocumentsReading(counterUpdateInfo: ReportsPackage, unreadCounters: T[]): T[];\r\n\r\n protected abstract recountOnCountersUpdating(counterUpdateInfo: ReportsPackage, unreadCounters: T[]): T[];\r\n\r\n protected abstract getUnreadCounters(): Observable;\r\n\r\n protected loadUnreadCounters>\r\n (url: string, readModelCtor: new () => TReadModelCtor): Observable {\r\n return this.http.get(`${this.settings.apiUrl}/${url}`).pipe(\r\n map((response) => deserialize(response, readModelCtor).counters),\r\n );\r\n }\r\n}","import { Observable } from 'rxjs';\r\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { ActivitySession } from '../../activity-logger';\r\nimport { ActivityData } from '../../activity-data';\r\n\r\nexport type NavigationActivityHandler = (\r\n parameters: {\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot,\r\n activitySession: Observable\r\n }\r\n) => Observable;\r\n\r\nexport interface NavigationActivityRouteData {\r\n navigationActivityHandler: NavigationActivityHandler;\r\n}\r\n\r\nexport const navigationActivityHandler = (handler: NavigationActivityHandler): NavigationActivityRouteData => (\r\n {\r\n navigationActivityHandler: handler\r\n }\r\n);","import { MdlDialogReference } from '@angular-mdl/core';\r\nimport { Component, Inject, InjectionToken, ChangeDetectionStrategy, AfterViewInit, ChangeDetectorRef } from '@angular/core';\r\nimport { FormControl, ValidationErrors } from '@angular/forms';\r\nimport { includes, isEmpty } from 'lodash';\r\n\r\nexport const FILTER_NAME_DIALOG_DATA = new InjectionToken('FilterName');\r\n\r\nexport interface FilterNameDialogData {\r\n formTitle: string;\r\n filterName: string;\r\n occupiedFilterNames: string[];\r\n}\r\n\r\nexport interface FilterNameDialogResult {\r\n saveChanges: boolean;\r\n filterName?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'filter-name-dialog',\r\n styles: [require('./filter-name-dialog.component.scss')],\r\n template: require('./filter-name-dialog.component.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class FilterNameDialogComponent implements AfterViewInit {\r\n public formTitle: string;\r\n public control: FormControl;\r\n\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n private dialog: MdlDialogReference,\r\n @Inject(FILTER_NAME_DIALOG_DATA) dialogData: FilterNameDialogData\r\n ) {\r\n this.formTitle = dialogData.formTitle;\r\n this.control = new FormControl(dialogData.filterName);\r\n const occupiedFilterNames = dialogData.occupiedFilterNames.map(f => f.trim().toLocaleLowerCase());\r\n this.control.setValidators([this.nonEmptyNameValidator(), this.uiqueNameValidator(occupiedFilterNames)]);\r\n }\r\n\r\n public get validationError(): string {\r\n if (this.control.hasError('emptyName')) {\r\n return 'Name is required';\r\n }\r\n if (this.control.hasError('nonUniqueName')) {\r\n return 'Filter with the same name already exists';\r\n }\r\n return '';\r\n }\r\n\r\n public ngAfterViewInit() {\r\n //https://github.com/mseemann/angular2-mdl/issues/145\r\n //https://github.com/angular/angular/issues/10816#issuecomment-307638674\r\n this.ref.markForCheck(); \r\n }\r\n\r\n public onOkClick() {\r\n const result: FilterNameDialogResult = {\r\n saveChanges: true,\r\n filterName: this.filterName\r\n };\r\n this.dialog.hide(result);\r\n }\r\n\r\n public onCancelClick() {\r\n const result: FilterNameDialogResult = {\r\n saveChanges: false\r\n };\r\n this.dialog.hide(result);\r\n }\r\n\r\n private nonEmptyNameValidator() {\r\n return (): ValidationErrors => {\r\n const isInvalid = isEmpty(this.filterName);\r\n return isInvalid ? { 'emptyName': true } : null;\r\n };\r\n }\r\n\r\n private uiqueNameValidator(occupiedFilterNames: string[]) {\r\n return (): ValidationErrors => {\r\n const isInvalid = !isEmpty(this.filterName) && includes(occupiedFilterNames, this.filterName.toLocaleLowerCase());\r\n return isInvalid ? { 'nonUniqueName': true } : null;\r\n };\r\n }\r\n\r\n private get filterName(): string {\r\n return this.control.value ? this.control.value.trim() : null;\r\n }\r\n}","import { MdlDialogService } from '@angular-mdl/core';\r\nimport { MdlSelectComponent } from '@angular-mdl/select';\r\nimport {ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges, ViewChild, ViewEncapsulation, ElementRef, Output, EventEmitter} from '@angular/core';\r\nimport { ActivatedRoute, Params, Router } from '@angular/router';\r\nimport { cloneDeep, find, isEmpty, isEqual, isNil, sortBy } from 'lodash';\r\nimport { BehaviorSubject, Subscription, Subject } from 'rxjs';\r\nimport { flatMap, switchMap, map, withLatestFrom } from 'rxjs/operators';\r\nimport { comparators } from '../core/';\r\nimport { CovanceFilter } from '../covance-filter/covance-filter';\r\nimport { FilterFieldType, FilterFieldValue } from './covance-filter.models';\r\nimport { FilterNameDialogComponent, FilterNameDialogData, FilterNameDialogResult, FILTER_NAME_DIALOG_DATA } from './filter-name-dialog.component';\r\nimport { FiltersStorage, UserFilter } from './filters-storage';\r\nexport const selectedCovanceFilterName = 'selectedCovanceFilterName';\r\n\r\n@Component({\r\n selector: 'covance-filter',\r\n template: require('./covance-filter.component.html'),\r\n styles: [require('./covance-filter.component.scss')],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CovanceFilterComponent implements OnInit, OnDestroy, OnChanges {\r\n @Input()\r\n public disableSelectorFilter: boolean;\r\n\r\n @Input()\r\n public fieldVals: FilterFieldValue[] = [];\r\n\r\n @Input()\r\n public siteId: number = null;\r\n\r\n @Input()\r\n public protocolId: number = null;\r\n\r\n @Input()\r\n public group: string;\r\n\r\n @Input()\r\n public set hideFilterExpandButton(value: boolean) {\r\n this.isFilterExpandButtonHidden = value;\r\n this.isFilterExpand = value;\r\n }\r\n\r\n @Input()\r\n public hideFiltersFields: boolean;\r\n\r\n @Input()\r\n public isFilterExpand: boolean;\r\n\r\n @Output()\r\n public filterChanged = new EventEmitter();\r\n\r\n @ViewChild('selectFilter')\r\n public selectFilterComponent: MdlSelectComponent;\r\n\r\n @ViewChild('container')\r\n public container: ElementRef;\r\n\r\n public filterFieldType = FilterFieldType;\r\n public selectedFilter: UserFilter;\r\n public isFilterExpandButtonHidden = false;\r\n\r\n public filterSelectionNotification: Subject = new Subject();\r\n\r\n private filters: UserFilter[] = [];\r\n\r\n private savedFilters: UserFilter[];\r\n\r\n private filterSubscription: Subscription;\r\n\r\n private filterGroup = new BehaviorSubject(this.group);\r\n\r\n constructor(\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private dialogService: MdlDialogService,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n private filter: CovanceFilter,\r\n private filterStorage: FiltersStorage\r\n ) { }\r\n\r\n public ngOnInit() {\r\n\r\n const selectedFilterName = this.route.queryParams.pipe(\r\n map(qp => qp[selectedCovanceFilterName] || null)\r\n ); \r\n\r\n this.filterSubscription = this.filterStorage.isLoaded\r\n .pipe(\r\n flatMap(() => this.filterGroup),\r\n withLatestFrom(selectedFilterName),\r\n switchMap(([group, filterName]) => {\r\n this.filters = cloneDeep(this.filterStorage.getFilters(group, this.siteId, this.protocolId));\r\n this.selectedFilter = this.filters.find(f => f.name === filterName); \r\n this.savedFilters = cloneDeep(this.filters);\r\n return this.filter.listen(this.fieldVals || []);\r\n }))\r\n .subscribe((queryParams: Params) => {\r\n if (this.selectedFilter) {\r\n this.selectedFilter.params = queryParams;\r\n }\r\n\r\n this.updateSelect();\r\n\r\n this.changeDetectorRef.markForCheck();\r\n });\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges) {\r\n if (changes['siteId'] || changes['protocolId'] || changes['fieldVals'] && changes['fieldVals'].previousValue !== this.fieldVals) {\r\n this.selectedFilter = null;\r\n this.filterGroup.next(this.group);\r\n }\r\n }\r\n\r\n public getContainerWidth() {\r\n return this.container && this.container.nativeElement && this.container.nativeElement.offsetWidth;\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.filterSubscription.unsubscribe();\r\n }\r\n\r\n public onFilterChange(newSelectedFilter: UserFilter) {\r\n if (this.selectedFilter !== newSelectedFilter) {\r\n this.selectedFilter = newSelectedFilter;\r\n //EGU-2777\r\n this.filterSelectionNotification.next(true);\r\n\r\n let queryParams: Params = {};\r\n if (this.selectedFilter) {\r\n queryParams = {...this.selectedFilter.params };\r\n queryParams[selectedCovanceFilterName] = this.selectedFilter.name;\r\n }\r\n this.filterChanged.next(newSelectedFilter);\r\n this.router.navigate([], {\r\n queryParams: queryParams,\r\n relativeTo: this.route\r\n });\r\n }\r\n }\r\n\r\n public toggleFilter() {\r\n this.isFilterExpand = !this.isFilterExpand;\r\n }\r\n\r\n public isUnsavedFilter(filter: UserFilter) {\r\n if (!filter.id) {\r\n return true;\r\n }\r\n\r\n return this.isChangedFilter(filter);\r\n }\r\n\r\n public isEmptyFilter(filter: UserFilter): boolean {\r\n if (!filter) {\r\n return this.fieldVals ? !this.fieldVals.some(fieldVal => !isEmpty(fieldVal.queryParamValue)) : true;\r\n }\r\n return Object.keys(filter.params).length === 0;\r\n }\r\n\r\n public isChangedFilter(filter: UserFilter): boolean {\r\n const savedFilter = find(this.savedFilters, f => f.id === filter.id);\r\n const result = !isEqual(filter, savedFilter);\r\n return result;\r\n }\r\n\r\n public async save() {\r\n const savedFilter = await this.filterStorage.save(this.selectedFilter);\r\n\r\n const filter = find(this.savedFilters, (f: UserFilter) => f.id === this.selectedFilter.id);\r\n const index = this.savedFilters.indexOf(filter);\r\n this.savedFilters[index] = savedFilter;\r\n\r\n this.updateSelect();\r\n }\r\n\r\n public async create() {\r\n const dialogData: FilterNameDialogData = {\r\n formTitle: 'Create Filter',\r\n filterName: '',\r\n occupiedFilterNames: this.getOccupiedFilterNames()\r\n };\r\n\r\n const dialogResult = await this.showFilterNameDialog(dialogData);\r\n\r\n if (dialogResult.saveChanges) {\r\n const filter = new UserFilter();\r\n filter.siteId = this.siteId;\r\n filter.protocolId = this.protocolId;\r\n filter.name = dialogResult.filterName;\r\n filter.group = this.group;\r\n filter.params = {};\r\n\r\n this.fieldVals.forEach(fieldVal => {\r\n if (fieldVal.def.queryParam && !isNil(fieldVal.queryParamValue)) {\r\n filter.params[fieldVal.def.queryParam] = fieldVal.queryParamValue;\r\n }\r\n });\r\n\r\n const savedFilter = await this.filterStorage.save(filter);\r\n\r\n this.filters.push(savedFilter);\r\n this.savedFilters.push(savedFilter);\r\n this.selectedFilter = savedFilter;\r\n this.updateSelect();\r\n }\r\n }\r\n\r\n public async edit() {\r\n const dialogData: FilterNameDialogData = {\r\n formTitle: 'Edit Filter',\r\n filterName: this.selectedFilter.name,\r\n occupiedFilterNames: this.getOccupiedFilterNames(this.selectedFilter.id),\r\n };\r\n\r\n const dialogResult = await this.showFilterNameDialog(dialogData);\r\n\r\n if (dialogResult.saveChanges) {\r\n this.selectedFilter.name = dialogResult.filterName;\r\n this.updateSelect();\r\n }\r\n }\r\n\r\n public undo(filter: UserFilter) {\r\n const savedFilter = find(this.savedFilters, f => f.id === filter.id);\r\n const undoFilter = cloneDeep(savedFilter);\r\n const index = this.filters.indexOf(filter);\r\n this.filters[index] = undoFilter;\r\n this.onFilterChange(undoFilter);\r\n }\r\n\r\n public async showFilterNameDialog(dialogData: FilterNameDialogData): Promise {\r\n const dialog = await this.dialogService.showCustomDialog({\r\n component: FilterNameDialogComponent,\r\n providers: [\r\n {\r\n provide: FILTER_NAME_DIALOG_DATA,\r\n useValue: dialogData\r\n }\r\n ],\r\n isModal: true\r\n }).toPromise();\r\n\r\n try {\r\n const result = await dialog.onHide().toPromise();\r\n return result;\r\n } catch {\r\n return { saveChanges: false };\r\n }\r\n }\r\n\r\n public async delete() {\r\n const confirmed = await this.dialogService\r\n .confirm('Are you sure you want to delete the filter?', 'Cancel', 'OK')\r\n .toPromise().then(() => true).catch(() => false);\r\n\r\n if (confirmed) {\r\n if (!this.selectedFilter.id) {\r\n this.deleteFilter();\r\n } else {\r\n await this.filterStorage.delete(this.selectedFilter.id);\r\n this.savedFilters = this.savedFilters.filter(f => f.id !== this.selectedFilter.id);\r\n this.deleteFilter();\r\n }\r\n }\r\n }\r\n\r\n public getVisibleFieldVals() {\r\n if (!this.fieldVals) {\r\n return [];\r\n }\r\n const visibleFilters = this.fieldVals.filter(f => f.def.type !== FilterFieldType.External);\r\n const fieldVals = this.isFilterExpand ? visibleFilters : visibleFilters.filter(f => f.def.isPinned || !isEmpty(f.queryParamValue));\r\n const fieldValsWithOrder = sortBy(fieldVals.filter(val => !isNaN(val.def.order)), (val: FilterFieldValue) => val.def.order);\r\n const fieldValsWithoutOrder = fieldVals.filter(val => isNaN(val.def.order));\r\n\r\n return [...fieldValsWithOrder, ...fieldValsWithoutOrder];\r\n }\r\n\r\n public getFilters() {\r\n return this.filters.sort((a, b) => comparators.stringComparator(a.name, b.name));\r\n }\r\n\r\n public getFilterName(filter: UserFilter) {\r\n if (!filter) {\r\n return '';\r\n }\r\n if (this.isUnsavedFilter(filter)) {\r\n return filter.name + ' *';\r\n }\r\n return filter.name;\r\n }\r\n\r\n public getDisabledAttr(selectedFilter: boolean) {\r\n return selectedFilter ? null : 'disabled';\r\n }\r\n\r\n private getOccupiedFilterNames(filterId?: string) {\r\n const filterNames = this.filters\r\n .filter(f => f.id !== filterId)\r\n .map(f => f.name);\r\n\r\n const savedFilterNames = this.savedFilters\r\n .filter(f => f.id !== filterId)\r\n .map(f => f.name);\r\n\r\n return [...filterNames, ...savedFilterNames];\r\n }\r\n\r\n // hack for updating selected value in mdl-select\r\n private updateSelect() {\r\n if (this.selectedFilter) {\r\n const index = this.filters.indexOf(this.selectedFilter);\r\n this.selectedFilter = cloneDeep(this.selectedFilter);\r\n this.filters[index] = this.selectedFilter;\r\n this.selectFilterComponent.writeValue(this.selectedFilter);\r\n this.selectFilterComponent.isDirty();\r\n }\r\n }\r\n\r\n private deleteFilter() {\r\n this.filters = this.filters.filter(f => f.id !== this.selectedFilter.id);\r\n this.onFilterChange(null);\r\n this.selectFilterComponent.reset();\r\n }\r\n}\r\n","import { Component, Inject, InjectionToken , HostListener } from '@angular/core';\r\nimport { MdlDialogReference } from '@angular-mdl/core';\r\nimport { FilteredEntityField } from './covance-chain-filter';\r\n\r\nexport const CHAIN_NODE_DIALOG_ARGS = new InjectionToken('ChainNodeDialogArgs');\r\n\r\nexport interface ChainNodeDialogArgs {\r\n fields: FilteredEntityField[];\r\n}\r\n\r\nexport interface ChainNodeDialogResult {\r\n fieldName: string;\r\n title: string;\r\n}\r\n\r\n@Component({\r\n selector: 'chain-node-dialog',\r\n template: require('./chain-node-dialog.component.html'),\r\n styles: [require('./chain-node-dialog.component.scss')]\r\n})\r\nexport class ChainNodeDialogComponent {\r\n public readonly fields: FilteredEntityField[];\r\n public selectedField: FilteredEntityField;\r\n public title: string;\r\n\r\n constructor(\r\n private dialog: MdlDialogReference,\r\n @Inject(CHAIN_NODE_DIALOG_ARGS) args: ChainNodeDialogArgs\r\n ) {\r\n this.fields = args.fields;\r\n this.selectedField = args.fields[0];\r\n }\r\n\r\n public onChangeField(field: FilteredEntityField) {\r\n this.selectedField = field;\r\n this.title = field.title;\r\n }\r\n\r\n @HostListener('document:keydown.enter')\r\n public ok() {\r\n if (!this.selectedField || !this.selectedField.fieldName || !this.title) {\r\n return;\r\n }\r\n\r\n this.dialog.hide({\r\n fieldName: this.selectedField.fieldName,\r\n title: this.title\r\n } as ChainNodeDialogResult);\r\n }\r\n\r\n @HostListener('document:keydown.esc')\r\n public close() {\r\n this.dialog.hide();\r\n }\r\n}","import { Component, Input } from '@angular/core';\r\nimport { FilterFieldValue } from './covance-filter.models';\r\nimport { MdlDialogService } from '@angular-mdl/core';\r\nimport { ChainNodeDialogComponent, ChainNodeDialogArgs, CHAIN_NODE_DIALOG_ARGS, ChainNodeDialogResult } from './chain-node-dialog.component';\r\nimport { FilteredEntityField } from './covance-chain-filter';\r\nimport { CovanceFilterChainNodeType, PositionType } from './filter-type/covance-filter-chain-node-type';\r\n\r\n@Component({\r\n selector: 'covance-chain-filter',\r\n template: require('./covance-chain-filter.component.html'),\r\n styles: [require('./covance-chain-filter.component.scss')]\r\n})\r\nexport class CovanceChainFilterComponent {\r\n @Input()\r\n public fieldVals: FilterFieldValue[] = [];\r\n\r\n @Input()\r\n public filteredEntityFields: FilteredEntityField[];\r\n\r\n @Input()\r\n public enableAddPreFilter = true;\r\n\r\n @Input()\r\n public enableAddPostFilter = true;\r\n\r\n constructor(\r\n private dialogServce: MdlDialogService,\r\n private filterChainNodeType: CovanceFilterChainNodeType\r\n ) { }\r\n\r\n public async addPreFilter() {\r\n try {\r\n const newFieldVal = await this.createFilter(null);\r\n\r\n this.filterChainNodeType.setQueryParamValue(newFieldVal);\r\n this.filterChainNodeType.onFieldAdd(newFieldVal, PositionType.Pre);\r\n } catch (e) {\r\n console.debug(e);\r\n }\r\n }\r\n\r\n public async addPostFilter() {\r\n try {\r\n const newFieldVal = await this.createFilter(null);\r\n\r\n this.filterChainNodeType.setQueryParamValue(newFieldVal);\r\n this.filterChainNodeType.onFieldAdd(newFieldVal, PositionType.Post);\r\n } catch (e) {\r\n console.debug(e);\r\n }\r\n }\r\n\r\n private async createFilter(queryParam: string): Promise {\r\n const result = await this.openDialog();\r\n\r\n return this.filterChainNodeType.createFilterFieldValue(queryParam, result.title, result.fieldName);\r\n }\r\n\r\n private async openDialog(): Promise {\r\n const model: ChainNodeDialogArgs = {\r\n fields: this.filteredEntityFields\r\n };\r\n\r\n const mdlDialogReference = await this.dialogServce.showCustomDialog({\r\n component: ChainNodeDialogComponent,\r\n providers: [\r\n {\r\n provide: CHAIN_NODE_DIALOG_ARGS,\r\n useValue: model\r\n }\r\n ],\r\n isModal: true\r\n }).toPromise();\r\n\r\n const result = await mdlDialogReference.onHide().toPromise();\r\n\r\n if (!result) {\r\n return Promise.reject('Dialog has been cancelled.');\r\n }\r\n\r\n return result;\r\n }\r\n}","import { Input } from '@angular/core';\r\nimport { FilterFieldValue } from '../covance-filter.models';\r\nimport { CovanceFilterBaseType} from './covance-filter-base-type';\r\n\r\nexport class CovanceFilterBaseTypeComponent {\r\n @Input()\r\n public fieldVal: FilterFieldValue;\r\n\r\n public get width(): string {\r\n return this.fieldVal.def.width != null ? `${this.fieldVal.def.width}px` : null;\r\n }\r\n\r\n protected filterType: TFilterType;\r\n\r\n constructor(filterType: TFilterType) {\r\n this.filterType = filterType;\r\n }\r\n\r\n public onFieldChange($event: string) {\r\n this.fieldVal.value = $event;\r\n this.filterType.setQueryParamValue(this.fieldVal);\r\n this.filterType.onFieldChange(this.fieldVal);\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { CovanceFilterBaseTypeComponent } from './covance-filter-base-type.component';\r\nimport { CovanceFilterTextType } from './covance-filter-text-type';\r\n\r\n@Component({\r\n selector: 'covance-filter-text-type',\r\n template: require('./covance-filter-text-type.component.html')\r\n})\r\nexport class CovanceFilterTextTypeComponent extends CovanceFilterBaseTypeComponent {\r\n constructor(filterType: CovanceFilterTextType) {\r\n super(filterType);\r\n }\r\n}","import { Component } from '@angular/core';\r\nimport { Params } from '@angular/router';\r\nimport { CovanceFilterBaseTypeComponent } from './covance-filter-base-type.component';\r\nimport { CovanceFilterNumberType } from './covance-filter-number-type';\r\n\r\n@Component({\r\n selector: 'covance-filter-number-type',\r\n template: require('./covance-filter-number-type.component.html')\r\n})\r\nexport class CovanceFilterNumberTypeComponent extends CovanceFilterBaseTypeComponent {\r\n constructor(filter: CovanceFilterNumberType) {\r\n super(filter);\r\n }\r\n\r\n protected setFilterQueryParam(queryParams: Params) {\r\n if (!isNaN(+this.fieldVal.queryParamValue)) {\r\n queryParams[this.fieldVal.queryParamValue] = this.fieldVal.queryParamValue;\r\n }\r\n }\r\n}","import { Component, OnChanges, DoCheck, ChangeDetectorRef } from '@angular/core';\r\nimport { CovanceFilterBaseTypeComponent } from './covance-filter-base-type.component';\r\nimport { CovanceFilterNumberRangeType} from './covance-filter-number-range-type';\r\nimport { FilterFieldValue } from '../covance-filter.models';\r\n\r\n@Component({\r\n selector: 'covance-filter-number-range-type',\r\n template: require('./covance-filter-number-range-type.component.html'),\r\n styles: [require('./covance-filter-number-range-type.component.scss')]\r\n})\r\nexport class CovanceFilterNumberRangeTypeComponent extends CovanceFilterBaseTypeComponent implements OnChanges, DoCheck {\r\n public max: string;\r\n public min: string;\r\n\r\n private oldFieldValue: FilterFieldValue;\r\n\r\n constructor(filterType: CovanceFilterNumberRangeType, private changeDetectorRef: ChangeDetectorRef) {\r\n super(filterType);\r\n }\r\n\r\n public ngOnChanges() {\r\n this.oldFieldValue = this.fieldVal.value;\r\n if (this.fieldVal.value) {\r\n this.max = this.fieldVal.value.max;\r\n this.min = this.fieldVal.value.min;\r\n }\r\n }\r\n\r\n public ngDoCheck() {\r\n if (this.fieldVal.value !== this.oldFieldValue) {\r\n this.max = this.fieldVal.value.max;\r\n this.min = this.fieldVal.value.min;\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n public onMinChange($event: string) {\r\n this.min = $event;\r\n this.fieldVal.value.min = this.getNumberValue($event);\r\n this.filterType.setQueryParamValue(this.fieldVal);\r\n this.filterType.onFieldChange(this.fieldVal);\r\n }\r\n\r\n public onMaxChange($event: string) {\r\n this.max = $event;\r\n this.fieldVal.value.max = this.getNumberValue($event);\r\n this.filterType.setQueryParamValue(this.fieldVal);\r\n this.filterType.onFieldChange(this.fieldVal);\r\n }\r\n\r\n private getNumberValue(value: string): number {\r\n return this.filterType.isNumber(value) ? +value : null;\r\n }\r\n}","import { Component } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { CovanceFilterBaseTypeComponent } from './covance-filter-base-type.component';\r\nimport { CovanceFilterDateType } from './covance-filter-date-type';\r\n\r\n@Component({\r\n selector: 'covance-filter-date-type',\r\n template: require('./covance-filter-date-type.component.html')\r\n})\r\nexport class CovanceFilterDateTypeComponent extends CovanceFilterBaseTypeComponent {\r\n constructor(filterType: CovanceFilterDateType) {\r\n super(filterType);\r\n }\r\n\r\n public onDateChange($event: moment.Moment) {\r\n this.fieldVal.value = this.filterType.formatDateTime($event);\r\n this.filterType.setQueryParamValue(this.fieldVal);\r\n this.filterType.onFieldChange(this.fieldVal);\r\n }\r\n}","import { AfterViewInit, ChangeDetectorRef, Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { DateRangeType, FilterFieldValue } from './../covance-filter.models';\r\nimport { CovanceFilterBaseTypeComponent } from './covance-filter-base-type.component';\r\nimport { CovanceFilterDateRangeType } from './covance-filter-date-range-type';\r\nimport { Subscription } from 'rxjs';\r\n\r\ninterface RangeKind {\r\n key: DateRangeType;\r\n value: string;\r\n}\r\n\r\n@Component({\r\n selector: 'covance-filter-date-range-type',\r\n template: require('./covance-filter-date-range-type.component.html'),\r\n styles: [require('./covance-filter-date-range-type.component.scss')]\r\n})\r\nexport class CovanceFilterDateRangeTypeComponent\r\n extends CovanceFilterBaseTypeComponent\r\n implements AfterViewInit, OnDestroy {\r\n\r\n @Output()\r\n public valueChange = new EventEmitter();\r\n\r\n public isShowToSelector: boolean;\r\n\r\n public isShowFromSelector: boolean;\r\n\r\n public rangeKinds: RangeKind[] = [\r\n { key: 'dateRange', value: 'Range' },\r\n { key: 'today', value: 'Today' },\r\n { key: 'monthToDate', value: 'Month To Date' },\r\n { key: 'yearToDate', value: 'Year to Date' }\r\n ];\r\n\r\n public get selectedRangeKind(): RangeKind {\r\n if (this.fieldVal && this.fieldVal.value) {\r\n return this.rangeKinds.find(k => k.key === this.fieldVal.value.rangeType);\r\n }\r\n return this.rangeKinds[0];\r\n }\r\n\r\n public get isDateRangeKindSelected(): boolean {\r\n return this.selectedRangeKind != null && this.selectedRangeKind.key === 'dateRange';\r\n }\r\n\r\n private subscription: Subscription;\r\n\r\n constructor(protected filterDateRangeType: CovanceFilterDateRangeType, private ref: ChangeDetectorRef) {\r\n super(filterDateRangeType);\r\n this.subscription = filterDateRangeType.changeDetector.subscribe(_ => setTimeout(() => ref.markForCheck(), 0));\r\n }\r\n\r\n public onRangeKindChange(selectedRangeKinds: RangeKind[]) {\r\n this.fieldVal.value.rangeType = selectedRangeKinds[0].key;\r\n switch (this.selectedRangeKind.key) {\r\n case 'dateRange':\r\n this.onDateBeginChange(null);\r\n this.onDateEndChange(null);\r\n break;\r\n case 'today':\r\n case 'monthToDate':\r\n case 'yearToDate':\r\n this.onDateRangeChange();\r\n break;\r\n }\r\n }\r\n\r\n public onDateRangeChange() {\r\n this.filterType.setQueryParamValue(this.fieldVal);\r\n this.filterType.onFieldChange(this.fieldVal);\r\n this.valueChange.emit(this.fieldVal);\r\n }\r\n\r\n public onShowToSelector(isShowToSelector: boolean) {\r\n this.isShowToSelector = isShowToSelector;\r\n }\r\n\r\n public onShowFromSelector(isShowFromSelector: boolean) {\r\n this.isShowFromSelector = isShowFromSelector;\r\n }\r\n\r\n public onDateBeginChange($event: moment.Moment) {\r\n if (this.fieldVal.value) {\r\n this.fieldVal.value.dateBegin = this.filterType.formatDateTime($event);\r\n }\r\n //an ugly fix of incorect data picker renderring when after being cleared they do not catch data from the url\r\n setTimeout(\r\n () => {\r\n this.filterType.setQueryParamValue(this.fieldVal);\r\n this.filterType.onFieldChange(this.fieldVal);\r\n this.valueChange.emit(this.fieldVal);\r\n },\r\n 0);\r\n }\r\n\r\n public onDateEndChange($event: moment.Moment) {\r\n if (this.fieldVal.value) {\r\n this.fieldVal.value.dateEnd = this.filterType.formatDateTime($event);\r\n }\r\n setTimeout(\r\n () => {\r\n this.filterType.setQueryParamValue(this.fieldVal);\r\n this.filterType.onFieldChange(this.fieldVal);\r\n this.valueChange.emit(this.fieldVal);\r\n },\r\n 0);\r\n }\r\n\r\n public ngAfterViewInit(): void {\r\n //https://github.com/angular/angular/issues/10816#issuecomment-307638674\r\n setTimeout(() => this.ref.markForCheck(), 0);\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n public isInvalidDateRange() {\r\n if (!this.fieldVal.value || !this.fieldVal.value) {\r\n return false;\r\n }\r\n\r\n const dateBegin = moment(this.fieldVal.value.dateBegin);\r\n const dateEnd = moment(this.fieldVal.value.dateEnd);\r\n\r\n if (!dateBegin.isValid || !dateEnd.isValid) {\r\n false;\r\n }\r\n\r\n return dateBegin.isAfter(dateEnd);\r\n }\r\n}\r\n","import { Component, ChangeDetectorRef, OnDestroy } from '@angular/core';\r\nimport { CovanceFilterBaseTypeComponent } from './covance-filter-base-type.component';\r\nimport { CovanceFilterSelectType } from './covance-filter-select-type';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'covance-filter-select-type',\r\n template: require('./covance-filter-select-type.component.html'),\r\n styles: [require('./filter-common-style.scss')]\r\n})\r\nexport class CovanceFilterSelectTypeComponent extends CovanceFilterBaseTypeComponent implements OnDestroy {\r\n\r\n private readonly subscription: Subscription;\r\n\r\n constructor(filterType: CovanceFilterSelectType, ref: ChangeDetectorRef) {\r\n super(filterType);\r\n this.subscription = filterType.changeDetector.subscribe(_ => ref.markForCheck());\r\n }\r\n\r\n public getItems() {\r\n return this.fieldVal.items ? this.fieldVal.items : [];\r\n }\r\n\r\n public hasItems() {\r\n return this.fieldVal.items && this.fieldVal.items.length > 0;\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n}","import { Component, ChangeDetectorRef, OnDestroy, ElementRef, Input } from '@angular/core';\r\nimport { CovanceFilterBaseTypeComponent } from './covance-filter-base-type.component';\r\nimport { CovanceFilterMultiSelectType} from './covance-filter-multiselect-type';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'covance-filter-multiselect-type',\r\n template: require('./covance-filter-multiselect-type.component.html'),\r\n styles: [require('./filter-common-style.scss')]\r\n})\r\nexport class CovanceFilterMultiSelectTypeComponent extends CovanceFilterBaseTypeComponent implements OnDestroy {\r\n @Input()\r\n public containerLeftLimit: number;\r\n private readonly subscription: Subscription;\r\n\r\n constructor(filterType: CovanceFilterMultiSelectType, ref: ChangeDetectorRef) {\r\n super(filterType);\r\n this.subscription = filterType.changeDetector.subscribe(_ => ref.markForCheck());\r\n }\r\n\r\n public onOptionChange($event: string[]) {\r\n if (!this.fieldVal.items) {\r\n return;\r\n }\r\n\r\n this.fieldVal.value = $event;\r\n this.filterType.setQueryParamValue(this.fieldVal);\r\n this.filterType.onFieldChange(this.fieldVal);\r\n }\r\n\r\n public getItems() {\r\n return this.fieldVal.items ? this.fieldVal.items : [];\r\n }\r\n\r\n public hasItems() {\r\n return (!!this.fieldVal.items && this.fieldVal.items.length > 0);\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n}","import { Component } from '@angular/core';\r\nimport { CovanceFilterBaseTypeComponent } from './covance-filter-base-type.component';\r\nimport { CovanceFilterCheckboxType } from './covance-filter-checkbox-type';\r\n\r\n@Component({\r\n selector: 'covance-filter-checkbox-type',\r\n template: require('./covance-filter-checkbox-type.component.html'),\r\n styles: [require('./covance-filter-checkbox-type.component.scss')]\r\n})\r\nexport class CovanceFilterCheckboxTypeComponent extends CovanceFilterBaseTypeComponent {\r\n constructor(filterType: CovanceFilterCheckboxType) {\r\n super(filterType);\r\n }\r\n\r\n public getCheckboxIcon() {\r\n return this.fieldVal.value ? 'check_box' : 'check_box_outline_blank';\r\n }\r\n\r\n public onClick() {\r\n this.fieldVal.value = !this.fieldVal.value;\r\n this.filterType.setQueryParamValue(this.fieldVal);\r\n this.filterType.onFieldChange(this.fieldVal);\r\n }\r\n}","import { Component, OnInit, ChangeDetectionStrategy, Input } from '@angular/core';\r\nimport { CovanceFilterBaseTypeComponent } from './covance-filter-base-type.component';\r\nimport { CovanceFilterChainNodeType } from './covance-filter-chain-node-type';\r\n\r\n@Component({\r\n selector: 'covance-filter-chain-node-type',\r\n template: require('./covance-filter-chain-node-type.component.html'),\r\n styles: [require('./covance-filter-chain-node-type.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CovanceFilterChainNodeTypeComponent extends CovanceFilterBaseTypeComponent {\r\n // TODO: Need for change detection when click the back button.\r\n @Input()\r\n public fieldValue: any;\r\n\r\n constructor(filterType: CovanceFilterChainNodeType) {\r\n super(filterType);\r\n }\r\n\r\n public onChangeSelectValues(values: string[]) {\r\n this.fieldVal.value = values;\r\n this.filterType.setQueryParamValue(this.fieldVal);\r\n this.filterType.onFieldChange(this.fieldVal);\r\n }\r\n\r\n public getItems() {\r\n return this.fieldVal.items ? this.fieldVal.items : [];\r\n }\r\n\r\n public deleteChainNode() {\r\n this.filterType.deleteFieldVal(this.fieldVal);\r\n }\r\n}","import { FormControl } from '@angular/forms';\r\nimport { Component, OnDestroy, OnInit, Input } from '@angular/core';\r\nimport { CovanceFilterBaseTypeComponent } from './covance-filter-base-type.component';\r\nimport { CovanceFilterAgeRangeType } from './covance-filter-age-range-type';\r\nimport { FilterAgeRangeValue } from '../covance-filter.models';\r\nimport { combineLatest, Subscription, Subject } from 'rxjs'; \r\nimport { debounceTime, map, skip } from 'rxjs/operators';\r\nimport { Event } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'covance-filter-age-range-type',\r\n template: require('./covance-filter-age-range-type.component.html'),\r\n styles: [require('./covance-filter-age-range-type.component.scss')],\r\n})\r\nexport class CovanceFilterAgeRangeTypeComponent extends CovanceFilterBaseTypeComponent implements OnDestroy, OnInit {\r\n\r\n @Input()\r\n public filterSelectionNotification: Subject;\r\n\r\n public startUnit = new FormControl();\r\n public endUnit = new FormControl();\r\n public startValue = new FormControl();\r\n public endValue = new FormControl();\r\n private isRefreshed = false;\r\n private subscription: Subscription;\r\n private filterChanged = false;\r\n\r\n constructor(filterAgeRangeType: CovanceFilterAgeRangeType) {\r\n super(filterAgeRangeType);\r\n }\r\n\r\n public ngOnInit() {\r\n\r\n this.subscription = combineLatest([\r\n this.startUnit.valueChanges,\r\n this.endUnit.valueChanges,\r\n this.startValue.valueChanges,\r\n this.endValue.valueChanges])\r\n .pipe(\r\n skip(1),\r\n debounceTime(1000),\r\n map(([startUnit, endUnit, startValue, endValue]) => {\r\n return [(startUnit || this.ageUnits[0]), (endUnit || this.ageUnits[0]), startValue, endValue];\r\n })\r\n ).subscribe(([startUnit, endUnit, startValue, endValue]) => {\r\n this.fieldVal.value = new FilterAgeRangeValue(startValue, startUnit, endValue, endUnit);\r\n this.filterType.setQueryParamValue(this.fieldVal);\r\n this.filterType.onFieldChange(this.fieldVal);\r\n\r\n this.startUnit.setValue(startValue ? this.fieldVal.value && this.fieldVal.value.ageUnitStart : null, {emitEvent: false});\r\n this.endUnit.setValue(endValue ? this.fieldVal.value && this.fieldVal.value.ageUnitEnd : null, { emitEvent: false });\r\n\r\n this.isRefreshed = true;\r\n });\r\n\r\n this.filterSelectionNotification.subscribe(event => {\r\n this.filterChanged = event;\r\n });\r\n\r\n this.setInitialValues();\r\n }\r\n\r\n public ngDoCheck() {\r\n if (!this.fieldVal.value && this.isRefreshed) {\r\n this.setInitialValues();\r\n this.isRefreshed = false;\r\n }\r\n if (this.filterChanged) {\r\n this.setInitialValues();\r\n this.isRefreshed = false;\r\n this.filterChanged = false;\r\n }\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n this.filterSelectionNotification.unsubscribe();\r\n }\r\n\r\n public isInvalidAgeRange() {\r\n if (this.fieldVal.value) {\r\n return !this.fieldVal.value.isValid;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n public get ageUnits() {\r\n return ['years', 'days', 'months'];\r\n }\r\n\r\n private setInitialValues() {\r\n this.startUnit.setValue(this.fieldVal.value && this.fieldVal.value.ageUnitStart);\r\n this.endUnit.setValue(this.fieldVal.value && this.fieldVal.value.ageUnitEnd);\r\n this.startValue.setValue(this.fieldVal.value && this.fieldVal.value.ageValueStart);\r\n this.endValue.setValue(this.fieldVal.value && this.fieldVal.value.ageValueEnd);\r\n }\r\n}","import { ChangeDetectionStrategy, Component, DoCheck, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { queueScheduler, scheduled, Subject, Subscription } from 'rxjs';\r\nimport { mergeAll } from 'rxjs/operators';\r\nimport { AgeFilter } from '../../covance-filter.models';\r\nimport { CovanceFilterBaseTypeComponent } from '../covance-filter-base-type.component';\r\nimport { CovanceFilterAgeType, AgeOperator, allowedAgeOperators } from './covance-filter-age-type';\r\n\r\n@Component({\r\n selector: 'covance-filter-age',\r\n template: require('./covance-filter-age.component.html'),\r\n styles: [require('./covance-filter-age.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CovanceFilterAgeComponent extends CovanceFilterBaseTypeComponent implements OnDestroy, OnInit, DoCheck {\r\n @Input()\r\n public filterSelectionNotification: Subject;\r\n\r\n public readonly operatorControl = new FormControl();\r\n public readonly dayControl = new FormControl();\r\n public readonly operators: AgeOperator[] = [\r\n {\r\n title: '',\r\n value: null,\r\n },\r\n ...allowedAgeOperators\r\n ];\r\n public readonly days = ['', '1', '2', '3', '7'];\r\n\r\n private readonly subscription = new Subscription();\r\n private filterChanged = false;\r\n private isRefreshed = false;\r\n\r\n constructor(filterAgeType: CovanceFilterAgeType) {\r\n super(filterAgeType);\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.setAgeValues();\r\n this.subscription.add(\r\n scheduled(\r\n [\r\n this.operatorControl.valueChanges,\r\n this.dayControl.valueChanges\r\n ],\r\n queueScheduler,\r\n ).pipe(mergeAll()).subscribe(() => {\r\n const op = this.operatorControl.value;\r\n const day = this.dayControl.value;\r\n this.initValueChanges(op, day);\r\n this.isRefreshed = true;\r\n }),\r\n );\r\n\r\n this.subscription.add(\r\n this.filterSelectionNotification.subscribe(event => {\r\n this.filterChanged = event;\r\n }),\r\n );\r\n }\r\n\r\n public ngDoCheck() {\r\n if (!this.fieldVal.value && this.isRefreshed) {\r\n this.setAgeValues();\r\n this.isRefreshed = false;\r\n }\r\n if (this.filterChanged) {\r\n this.setAgeValues();\r\n this.filterChanged = false;\r\n this.isRefreshed = true;\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n private setAgeValues() {\r\n const ageFilter = this.fieldVal.value as AgeFilter;\r\n if (ageFilter) {\r\n this.dayControl.setValue(ageFilter.day);\r\n this.operatorControl.setValue(ageFilter.operator);\r\n } else {\r\n this.dayControl.reset();\r\n this.operatorControl.reset();\r\n }\r\n }\r\n\r\n private initValueChanges(operator: string, day: string) {\r\n this.fieldVal.value = new AgeFilter(operator, day);\r\n this.filterType.setQueryParamValue(this.fieldVal);\r\n this.filterType.onFieldChange(this.fieldVal);\r\n }\r\n}\r\n","import { AfterViewInit, ChangeDetectorRef, Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { Subscription } from 'rxjs';\r\nimport { CovanceFilterBaseTypeComponent } from '../covance-filter-base-type.component';\r\nimport { FilterFieldValue } from '../../covance-filter.models';\r\nimport { CovanceFilterDateTimeRangeType } from './covance-filter-date-time-range-type';\r\n\r\n@Component({\r\n selector: 'covance-filter-date-time-range-type',\r\n template: require('./covance-filter-date-time-range-type.component.html'),\r\n styles: [require('./covance-filter-date-time-range-type.component.scss')]\r\n})\r\nexport class CovanceFilterDateTimeRangeTypeComponent\r\n extends CovanceFilterBaseTypeComponent\r\n implements AfterViewInit, OnDestroy {\r\n\r\n @Input()\r\n public allowTimePicker: boolean;\r\n\r\n @Output()\r\n public valueChange = new EventEmitter();\r\n\r\n public isShowToSelector: boolean;\r\n\r\n public isShowFromSelector: boolean;\r\n\r\n private subscription: Subscription;\r\n\r\n constructor(protected filterDateRangeType: CovanceFilterDateTimeRangeType, private ref: ChangeDetectorRef) {\r\n super(filterDateRangeType);\r\n this.subscription = filterDateRangeType.changeDetector.subscribe(_ => setTimeout(() => ref.markForCheck(), 0));\r\n }\r\n\r\n public onDateRangeChange() {\r\n this.filterType.setQueryParamValue(this.fieldVal);\r\n this.filterType.onFieldChange(this.fieldVal);\r\n this.valueChange.emit(this.fieldVal);\r\n }\r\n\r\n public onDateBeginChange($event: moment.Moment) {\r\n if (this.fieldVal.value) {\r\n this.fieldVal.value.dateBegin = this.filterType.formatDateTime($event);\r\n }\r\n //an ugly fix of incorect data picker renderring when after being cleared they do not catch data from the url\r\n setTimeout(\r\n () => {\r\n this.filterType.setQueryParamValue(this.fieldVal);\r\n this.filterType.onFieldChange(this.fieldVal);\r\n this.valueChange.emit(this.fieldVal);\r\n },\r\n 0);\r\n }\r\n\r\n public onDateEndChange($event: moment.Moment) {\r\n if (this.fieldVal.value) {\r\n this.fieldVal.value.dateEnd = this.filterType.formatDateTime($event);\r\n }\r\n setTimeout(\r\n () => {\r\n this.filterType.setQueryParamValue(this.fieldVal);\r\n this.filterType.onFieldChange(this.fieldVal);\r\n this.valueChange.emit(this.fieldVal);\r\n },\r\n 0);\r\n }\r\n\r\n public ngAfterViewInit(): void {\r\n //https://github.com/angular/angular/issues/10816#issuecomment-307638674\r\n setTimeout(() => this.ref.markForCheck(), 0);\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n public isInvalidDateRange() {\r\n if (!this.fieldVal.value || !this.fieldVal.value) {\r\n return false;\r\n }\r\n\r\n const dateBegin = moment(this.fieldVal.value.dateBegin);\r\n const dateEnd = moment(this.fieldVal.value.dateEnd);\r\n\r\n if (!dateBegin.isValid || !dateEnd.isValid) {\r\n false;\r\n }\r\n\r\n return dateBegin.isAfter(dateEnd);\r\n }\r\n\r\n public onShowToSelector(isShowToSelector: boolean) {\r\n this.isShowToSelector = isShowToSelector;\r\n }\r\n\r\n public onShowFromSelector(isShowFromSelector: boolean) {\r\n this.isShowFromSelector = isShowFromSelector;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { CovanceDatePickerModule } from '../covance-date-picker/covance-date-picker.module';\r\nimport { CovanceFilter } from './covance-filter';\r\nimport { CovanceFilterComponent } from './covance-filter.component';\r\nimport { CovanceChainFilterComponent } from './covance-chain-filter.component';\r\nimport { FiltersStorage } from './filters-storage';\r\nimport { FilterNameDialogComponent } from './filter-name-dialog.component';\r\nimport { CovanceFilterTextTypeComponent } from './filter-type/covance-filter-text-type.component';\r\nimport { CovanceFilterNumberTypeComponent } from './filter-type/covance-filter-number-type.component';\r\nimport { CovanceFilterNumberRangeTypeComponent } from './filter-type/covance-filter-number-range-type.component';\r\nimport { CovanceFilterDateTypeComponent } from './filter-type/covance-filter-date-type.component';\r\nimport { CovanceFilterDateRangeTypeComponent } from './filter-type/covance-filter-date-range-type.component';\r\nimport { CovanceFilterSelectTypeComponent } from './filter-type/covance-filter-select-type.component';\r\nimport { CovanceFilterMultiSelectTypeComponent } from './filter-type/covance-filter-multiselect-type.component';\r\nimport { CovanceFilterCheckboxTypeComponent } from './filter-type/covance-filter-checkbox-type.component';\r\nimport { CovanceFilterTextType } from './filter-type/covance-filter-text-type';\r\nimport { CovanceFilterNumberType } from './filter-type/covance-filter-number-type';\r\nimport { CovanceFilterNumberRangeType } from './filter-type/covance-filter-number-range-type';\r\nimport { CovanceFilterDateType } from './filter-type/covance-filter-date-type';\r\nimport { CovanceFilterDateRangeType } from './filter-type/covance-filter-date-range-type';\r\nimport { CovanceFilterSelectType } from './filter-type/covance-filter-select-type';\r\nimport { CovanceFilterMultiSelectType } from './filter-type/covance-filter-multiselect-type';\r\nimport { CovanceFilterCheckboxType } from './filter-type/covance-filter-checkbox-type';\r\nimport { CovanceFilterChainNodeTypeComponent } from './filter-type/covance-filter-chain-node-type.component';\r\nimport { ChainNodeDialogComponent } from './chain-node-dialog.component';\r\nimport { CovanceFilterChainNodeType } from './filter-type/covance-filter-chain-node-type';\r\nimport { CovanceChainFilter } from './covance-chain-filter';\r\nimport { CovanceFilterAgeRangeType } from './filter-type/covance-filter-age-range-type';\r\nimport { CovanceFilterAgeRangeTypeComponent } from './filter-type/covance-filter-age-range-type.component';\r\nimport { CovanceFilterAgeComponent } from './filter-type/covance-filter-age/covance-filter-age.component';\r\nimport { CovanceFilterAgeType } from './filter-type/covance-filter-age/covance-filter-age-type';\r\nimport { CovanceFilterDateTimeRangeTypeComponent } from './filter-type/covance-filter-date-time-range/covance-filter-date-time-range-type.component';\r\nimport { CovanceFilterDateTimeRangeType } from './filter-type/covance-filter-date-time-range/covance-filter-date-time-range-type';\r\n\r\n@NgModule({\r\n declarations: [\r\n CovanceFilterComponent,\r\n CovanceChainFilterComponent,\r\n CovanceFilterChainNodeTypeComponent,\r\n FilterNameDialogComponent,\r\n ChainNodeDialogComponent,\r\n CovanceFilterTextTypeComponent,\r\n CovanceFilterNumberTypeComponent,\r\n CovanceFilterNumberRangeTypeComponent,\r\n CovanceFilterDateTypeComponent,\r\n CovanceFilterDateRangeTypeComponent,\r\n CovanceFilterSelectTypeComponent,\r\n CovanceFilterMultiSelectTypeComponent,\r\n CovanceFilterCheckboxTypeComponent,\r\n CovanceFilterAgeRangeTypeComponent,\r\n CovanceFilterAgeComponent,\r\n CovanceFilterDateTimeRangeTypeComponent\r\n ],\r\n imports: [\r\n SharedModule,\r\n CovanceDatePickerModule,\r\n ReactiveFormsModule\r\n ],\r\n exports: [\r\n CovanceFilterComponent,\r\n CovanceChainFilterComponent,\r\n CovanceFilterChainNodeTypeComponent,\r\n FilterNameDialogComponent,\r\n CovanceFilterTextTypeComponent,\r\n CovanceFilterNumberTypeComponent,\r\n CovanceFilterNumberRangeTypeComponent,\r\n CovanceFilterDateTypeComponent,\r\n CovanceFilterDateRangeTypeComponent,\r\n CovanceFilterSelectTypeComponent,\r\n CovanceFilterMultiSelectTypeComponent,\r\n CovanceFilterCheckboxTypeComponent,\r\n CovanceFilterAgeRangeTypeComponent,\r\n CovanceFilterAgeComponent,\r\n CovanceFilterDateTimeRangeTypeComponent\r\n ],\r\n providers: [\r\n CovanceFilter,\r\n CovanceChainFilter,\r\n CovanceFilterTextType,\r\n CovanceFilterNumberType,\r\n CovanceFilterNumberRangeType,\r\n CovanceFilterDateType,\r\n CovanceFilterDateRangeType,\r\n CovanceFilterSelectType,\r\n CovanceFilterMultiSelectType,\r\n CovanceFilterCheckboxType,\r\n CovanceFilterChainNodeType,\r\n CovanceFilterAgeRangeType,\r\n FiltersStorage,\r\n CovanceFilterAgeType,\r\n CovanceFilterDateTimeRangeType\r\n ],\r\n entryComponents: [\r\n FilterNameDialogComponent,\r\n ChainNodeDialogComponent,\r\n CovanceFilterTextTypeComponent,\r\n CovanceFilterNumberTypeComponent,\r\n CovanceFilterNumberRangeTypeComponent,\r\n CovanceFilterDateTypeComponent,\r\n CovanceFilterDateRangeTypeComponent,\r\n CovanceFilterSelectTypeComponent,\r\n CovanceFilterMultiSelectTypeComponent,\r\n CovanceFilterCheckboxTypeComponent,\r\n CovanceFilterAgeRangeTypeComponent,\r\n CovanceFilterAgeComponent,\r\n CovanceFilterDateTimeRangeTypeComponent\r\n ]\r\n})\r\nexport class CovanceFilterModule { }\r\n","import { deserialize, deserializeArray } from 'santee-dcts';\r\nimport { map, refCount, switchAll, flatMap, publishReplay } from 'rxjs/operators';\r\nimport { BehaviorSubject, combineLatest, Observable, of } from 'rxjs';\r\nimport { HttpClient} from '@angular/common/http';\r\nimport { Injectable, InjectionToken } from '@angular/core';\r\n\r\nimport { Settings } from '../../core/index';\r\nimport { Email, EmailPreferenceReadModel, EmailPreference } from './email';\r\nimport { EmailPreferenceLevelType } from './levels/email-preference-level-type';\r\nimport { User } from '../user';\r\nimport { ActivityLogger } from '../../activities/activity-logger';\r\n\r\nexport const EMAIL_PREFERENCE_STORAGE_TOKEN = new InjectionToken('EMAIL_PREFERENCE_STORAGE');\r\n\r\nexport interface LoadEmailPreferencesParams {\r\n user: User;\r\n levelIndicator: EmailPreferenceLevelType;\r\n}\r\n\r\n@Injectable()\r\nexport class EmailPreferencesStorage {\r\n public get emailPreferences(): Observable {\r\n return this.emailPreferencesInternal;\r\n }\r\n\r\n private readonly emailPreferencesInternal: Observable;\r\n private readonly refresher: BehaviorSubject = new BehaviorSubject(false);\r\n private readonly paramsSubject: BehaviorSubject = new BehaviorSubject(null);\r\n\r\n constructor(\r\n private readonly http: HttpClient,\r\n private readonly settings: Settings,\r\n private readonly activityLogger: ActivityLogger,\r\n ) {\r\n const sources = [this.refresher, this.paramsSubject];\r\n this.emailPreferencesInternal = combineLatest(sources)\r\n .pipe(\r\n map(([needToShowSpinner, params] : [boolean, LoadEmailPreferencesParams]) => {\r\n if (needToShowSpinner) {\r\n return this.returnNullToShowSpinner();\r\n }\r\n\r\n return this.http\r\n .get(`${this.settings.getSpecificUserApiUrl(params.user)}/email-preferences/level/${params.levelIndicator}/user/${params.user.metadata.userId}`)\r\n .pipe(map((response: EmailPreferenceReadModel[]) => deserializeArray(response, EmailPreferenceReadModel)));\r\n }),\r\n flatMap(x => of(of(null), x)),\r\n switchAll(),\r\n publishReplay(1),\r\n refCount(),\r\n );\r\n }\r\n\r\n public reloadEmailPreferences(params: LoadEmailPreferencesParams): void {\r\n this.paramsSubject.next(params);\r\n }\r\n\r\n public async saveEmailPreferences(emailPreferences: EmailPreference[], userPk: number): Promise {\r\n this.activityLogger.logChangeEmailPreferencesActivity(emailPreferences, userPk);\r\n\r\n await this.http.put(`${this.settings.apiUrl}/email-preferences/user/${userPk}`, emailPreferences)\r\n .toPromise();\r\n }\r\n\r\n public async resetToDefault(emailPreferences: EmailPreference[], userPk: number): Promise {\r\n this.activityLogger.logResetEmailPreferences(userPk);\r\n\r\n this.refresher.next(true);\r\n await this.http.put(`${this.settings.apiUrl}/email-preferences/user/${userPk}/reset`, emailPreferences)\r\n .toPromise();\r\n this.refresher.next(false);\r\n }\r\n\r\n public async saveOrUpdateEmail(email: Email, userPk: number): Promise {\r\n this.refresher.next(true);\r\n if (email.sitelinkUserEmailId) {\r\n this.activityLogger.logEditEmailNotificationActivity(userPk);\r\n\r\n await this.http\r\n .put(`${this.settings.apiUrl}/emails/${email.sitelinkUserEmailId}?editedUserPk=${userPk}`, email)\r\n .pipe(map((response) => deserialize(response, Email)))\r\n .toPromise();\r\n } else {\r\n this.activityLogger.logAddEmailNotificationActivity(userPk);\r\n\r\n await this.http\r\n .post(`${this.settings.apiUrl}/emails?editedUserPk=${userPk}`, email)\r\n .toPromise();\r\n }\r\n this.refresher.next(false);\r\n }\r\n\r\n public async deleteEmails(emails: Email[], userPk: number): Promise {\r\n this.activityLogger.logDeleteEmailNotificationActivity(userPk);\r\n\r\n this.refresher.next(true);\r\n await this.http\r\n .post(`${this.settings.apiUrl}/emails/delete?editedUserPk=${userPk}`, emails)\r\n .toPromise();\r\n this.refresher.next(false);\r\n }\r\n\r\n private returnNullToShowSpinner() {\r\n return of(null);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRoute, Params, Router } from '@angular/router';\r\nimport { difference, filter, forIn, isNil, keys, some, flatten } from 'lodash';\r\nimport { combineLatest, Observable, of } from 'rxjs';\r\nimport { distinctUntilChanged, map, switchAll } from 'rxjs/operators';\r\nimport { FilterFieldDef, FilterFieldType, FilterFieldValue, FilterGridColDef, FilterQueryParams } from './covance-filter.models';\r\nimport { CovanceFilterBaseType } from './filter-type/covance-filter-base-type';\r\nimport { CovanceFilterCheckboxType } from './filter-type/covance-filter-checkbox-type';\r\nimport { CovanceFilterDateRangeType } from './filter-type/covance-filter-date-range-type';\r\nimport { CovanceFilterDateType } from './filter-type/covance-filter-date-type';\r\nimport { CovanceFilterMultiSelectType } from './filter-type/covance-filter-multiselect-type';\r\nimport { CovanceFilterNumberRangeType } from './filter-type/covance-filter-number-range-type';\r\nimport { CovanceFilterNumberType } from './filter-type/covance-filter-number-type';\r\nimport { CovanceFilterSelectType } from './filter-type/covance-filter-select-type';\r\nimport { CovanceFilterTextType } from './filter-type/covance-filter-text-type';\r\nimport { CovanceFilterAgeRangeType } from './filter-type/covance-filter-age-range-type';\r\nimport { CovanceFilterAgeType } from './filter-type/covance-filter-age/covance-filter-age-type';\r\nimport { CovanceFilterDateTimeRangeType } from './filter-type/covance-filter-date-time-range/covance-filter-date-time-range-type';\r\n\r\nexport interface SerializedFilter {\r\n title: string;\r\n value: string;\r\n}\r\n\r\n@Injectable()\r\nexport class CovanceFilter {\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private filterTextType: CovanceFilterTextType,\r\n private filterNumberType: CovanceFilterNumberType,\r\n private filterNumberRangeType: CovanceFilterNumberRangeType,\r\n private filterDateType: CovanceFilterDateType,\r\n private filterDateRangeType: CovanceFilterDateRangeType,\r\n private filterSelectType: CovanceFilterSelectType,\r\n private filterMultiSelectType: CovanceFilterMultiSelectType,\r\n private filterAgeRangeType: CovanceFilterAgeRangeType,\r\n private filterCheckboxType: CovanceFilterCheckboxType,\r\n private filterAgeType: CovanceFilterAgeType,\r\n private filterDateTimeRangeType: CovanceFilterDateTimeRangeType,\r\n private router: Router) { }\r\n\r\n public listen(fieldVals: FilterFieldValue[]): Observable {\r\n const result = this.route.queryParams\r\n .pipe(\r\n distinctUntilChanged(),\r\n map((queryParams: Params) => {\r\n const covanceFilterQueryParams: Params = {}; \r\n fieldVals.forEach(fieldVal => {\r\n const queryParam = fieldVal.def.queryParam;\r\n fieldVal.queryParamValue = null;\r\n const urlParamValue = queryParams[queryParam] || null;\r\n if (fieldVal.def.queryParam && fieldVal.queryParamValue !== urlParamValue) {\r\n if (urlParamValue) {\r\n covanceFilterQueryParams[fieldVal.def.queryParam] = urlParamValue;\r\n }\r\n \r\n fieldVal.queryParamValue = urlParamValue;\r\n if (fieldVal.def.onChange) {\r\n fieldVal.def.onChange(fieldVal);\r\n }\r\n }\r\n const filterType = this.getFilterType(fieldVal.def.type);\r\n filterType.setValue(fieldVal);\r\n });\r\n\r\n return covanceFilterQueryParams;\r\n }),\r\n );\r\n return result;\r\n }\r\n\r\n public queryParamsToString(queryParams: Params): string {\r\n const paramsUrl = keys(queryParams)\r\n .map((key: string) => `${key}=${encodeURIComponent(queryParams[key])}`)\r\n .join('&');\r\n\r\n return paramsUrl;\r\n }\r\n\r\n public getObservableQueryParams(queryParams: string[]): Observable {\r\n let params: Params = null;\r\n\r\n return this.route.queryParams\r\n .pipe(\r\n map((allParams: Params) => {\r\n let isChanged = false;\r\n\r\n if (params == null) {\r\n params = {};\r\n isChanged = true;\r\n }\r\n\r\n forIn(\r\n allParams,\r\n (value: string, key: string) => {\r\n if (some(queryParams, (queryParam: string) => queryParam === key) &&\r\n params[key] !== value) {\r\n params[key] = value;\r\n isChanged = true;\r\n }\r\n });\r\n\r\n difference(keys(params), keys(allParams)).forEach(key => {\r\n delete params[key];\r\n isChanged = true;\r\n });\r\n\r\n if (!isChanged) {\r\n return of();\r\n }\r\n\r\n return of({\r\n observableQueryParams: params,\r\n allQueryParams: allParams\r\n } as FilterQueryParams);\r\n }),\r\n switchAll()\r\n );\r\n }\r\n\r\n public getFilteredData(list: Observable, fieldVals: FilterFieldValue[]): Observable {\r\n const observableQueryParams = this.getObservableQueryParams(fieldVals.map(q => q.def.queryParam));\r\n\r\n return combineLatest(list, observableQueryParams)\r\n .pipe(\r\n map(([entities, params]: [T[], FilterQueryParams]) => {\r\n if (!entities) {\r\n return null;\r\n }\r\n\r\n fieldVals.forEach(fieldVal => {\r\n const filterType = this.getFilterType(fieldVal.def.type);\r\n filterType.setItems(fieldVal, entities || []);\r\n\r\n const value = params.allQueryParams[fieldVal.def.queryParam];\r\n fieldVal.queryParamValue = value;\r\n filterType.setValue(fieldVal);\r\n\r\n if (!isNil(value) && !fieldVal.def.isServerSideFilter) {\r\n entities = filter(entities, (entity: T) => {\r\n if (fieldVal.def.isMatch) {\r\n return fieldVal.def.isMatch(fieldVal.value, entity);\r\n }\r\n const item = entity as any;\r\n return filterType.isMatch(fieldVal, item[fieldVal.def.queryParam]);\r\n });\r\n }\r\n });\r\n\r\n return entities;\r\n }));\r\n }\r\n\r\n public setFiltersItems(list: T[], fieldVals: FilterFieldValue[]) {\r\n let items = [...(list || [])];\r\n fieldVals.forEach(fieldVal => {\r\n if (fieldVal.def.type === FilterFieldType.External) {\r\n return;\r\n }\r\n const filterType = this.getFilterType(fieldVal.def.type);\r\n filterType.setItems(fieldVal, items || []);\r\n if (fieldVal.def.leaveOnlySelectedItems) {\r\n const selectedItems = flatten([...[fieldVal.value || fieldVal.items || []]]).map((i: any) => i && i.key);\r\n items = items.filter((item: any) => {\r\n const itemKey = item[fieldVal.def.queryParam] && item[fieldVal.def.queryParam].key;\r\n return selectedItems.indexOf(itemKey) !== -1;\r\n });\r\n }\r\n });\r\n }\r\n\r\n public getFieldValues(cols: FilterGridColDef[]): FilterFieldValue[] {\r\n const fieldVals = cols\r\n .filter(col => !col.filterFieldDef || (col.filterFieldDef && !col.filterFieldDef.isOff))\r\n .map(col => {\r\n const fieldDef: FilterFieldDef = {\r\n title: col.headerName,\r\n queryParam: col.field,\r\n type: FilterFieldType.Text\r\n };\r\n\r\n const def = col.filterFieldDef as any;\r\n if (def) {\r\n forIn(def, (value: string, key: string) => {\r\n if (!isNil(def[key])) {\r\n (fieldDef as any)[key] = value;\r\n }\r\n });\r\n }\r\n\r\n return { def: fieldDef };\r\n });\r\n\r\n return fieldVals;\r\n }\r\n\r\n public serializeFieldValues(fieldVals: FilterFieldValue[]): SerializedFilter[] {\r\n return fieldVals.map(fieldVal => ({\r\n title: fieldVal.def.title,\r\n value: fieldVal\r\n ? this.getFilterType(fieldVal.def.type).serializeValue(fieldVal.value)\r\n : ''\r\n }));\r\n }\r\n\r\n public resetFilter() {\r\n this.router.navigate([], {\r\n queryParams: [],\r\n relativeTo: this.route\r\n });\r\n }\r\n\r\n public setValue(fieldVal: FilterFieldValue, value: any) {\r\n fieldVal.value = value;\r\n const theFilter = this.getFilterType(fieldVal.def.type);\r\n theFilter.setQueryParamValue(fieldVal);\r\n theFilter.onFieldChange(fieldVal);\r\n }\r\n\r\n private getFilterType(type: FilterFieldType): CovanceFilterBaseType {\r\n switch (type) {\r\n case FilterFieldType.Text:\r\n return this.filterTextType;\r\n case FilterFieldType.Number:\r\n return this.filterNumberType;\r\n case FilterFieldType.NumberRange:\r\n return this.filterNumberRangeType;\r\n case FilterFieldType.Date:\r\n return this.filterDateType;\r\n case FilterFieldType.DateRange:\r\n return this.filterDateRangeType;\r\n case FilterFieldType.DateTimeRange:\r\n return this.filterDateTimeRangeType;\r\n case FilterFieldType.Select:\r\n return this.filterSelectType;\r\n case FilterFieldType.MultiSelect:\r\n return this.filterMultiSelectType;\r\n case FilterFieldType.Checkbox:\r\n return this.filterCheckboxType;\r\n case FilterFieldType.AgeRange:\r\n return this.filterAgeRangeType;\r\n case FilterFieldType.Age:\r\n return this.filterAgeType;\r\n default:\r\n return this.filterTextType;\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, combineLatest, Observable } from 'rxjs';\r\nimport { UnitOption } from '../lab-test-results/unit-option';\r\nimport { map, publishReplay, refCount } from 'rxjs/operators';\r\nimport { UserStorage } from './user-storage';\r\nimport { User } from './user';\r\n\r\n@Injectable()\r\nexport class UnitStorage {\r\n public readonly unitOptions: UnitOption[];\r\n\r\n private readonly unitInternal: BehaviorSubject = new BehaviorSubject(null);\r\n private readonly currentUnitInternal: Observable;\r\n\r\n constructor(userStorage: UserStorage) {\r\n this.unitOptions = [\r\n new UnitOption('si', 'SI', true),\r\n new UnitOption('conventional', 'Conventional', false),\r\n ];\r\n\r\n this.currentUnitInternal = combineLatest([userStorage.currentUser, this.unitInternal])\r\n .pipe(\r\n map(([currentUser, unitInternal]: [User, UnitOption]) => {\r\n if (!unitInternal) {\r\n return this.unitOptions.find(opt => opt.id === currentUser.settings.preferredUnits) || this.unitOptions[0];\r\n } else {\r\n return unitInternal;\r\n }\r\n }),\r\n publishReplay(1),\r\n refCount(),\r\n );\r\n }\r\n\r\n public get currentUnit(): Observable {\r\n return this.currentUnitInternal;\r\n }\r\n\r\n public setUnit(option: UnitOption) {\r\n this.unitInternal.next(option);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { GridDetails, GridData, GridHeader } from '../../sample-tracking/tracking-overview/interfaces/grid';\r\nimport * as moment from 'moment';\r\n\r\n@Injectable()\r\nexport class TrackingGridService {\r\n\r\n public defaultDateFormat = 'DD-MMM-YYYY';\r\n public defaultTimeFormat = 'HH:mm';\r\n\r\n /*\r\n works on checkbox change inside filter menu \r\n */\r\n public searchOnFilterCheckBoxChange(grid: GridDetails, filterItems: GridData[]): GridData[] {\r\n let filteredItems = filterItems;\r\n if (filterItems && filterItems.length) {\r\n let isUnCheckedUniqueItems = [] as { isChecked: boolean, label: string, id: number }[];\r\n grid.header.\r\n forEach((gh) => {\r\n if (gh.filteredUniqueItems) {\r\n isUnCheckedUniqueItems = gh.filteredUniqueItems.filter(fui => !fui.isChecked);\r\n isUnCheckedUniqueItems.forEach(icui => {\r\n filteredItems = [\r\n ...filteredItems.\r\n filter(\r\n // item => `${item[gh.key as keyof GridData]}`.\r\n // indexOf(icui.label === '(Blanks)' ? null : icui.label) !== 0\r\n item => item[gh.key as keyof GridData] !==\r\n (icui.label === '(Blanks)' ? null : icui.label)\r\n )\r\n ];\r\n });\r\n }\r\n });\r\n\r\n const sortedHeader = grid.header.find((gh: GridHeader) => !!gh.sort);\r\n if (sortedHeader && (sortedHeader.sort !== sortedHeader.prevSort)) {\r\n filteredItems = this.sortByHeader((!sortedHeader.sort || sortedHeader.sort === 'asc'), sortedHeader, filteredItems);\r\n sortedHeader.prevSort = sortedHeader.sort;\r\n }\r\n }\r\n return filteredItems;\r\n }\r\n\r\n /*\r\n works when typing on header searbox. \r\n */\r\n public onHeaderSearch(grid: GridDetails, searchedItems: GridData[]): GridData[] {\r\n if (searchedItems && searchedItems.length) {\r\n const searchAppliedHeaders = grid.header.filter((gh: GridHeader) => gh.headerSearchText);\r\n searchAppliedHeaders.forEach(sah => {\r\n searchedItems = [\r\n ...searchedItems.\r\n filter(\r\n (si: GridData) => `${si[sah.key as keyof GridData]}`.toLowerCase().indexOf(sah.headerSearchText === '-' ? null : sah.headerSearchText.toLowerCase()) !== -1\r\n )\r\n ];\r\n });\r\n }\r\n return searchedItems;\r\n }\r\n\r\n /*\r\n used to sort the grid data.\r\n */\r\n public sortByHeader(isSortByAsc: boolean, header: GridHeader, gridData: GridData[]) {\r\n if (gridData && gridData.length) {\r\n return isSortByAsc ?\r\n gridData.sort((a, b) => {\r\n const key = header.key as keyof GridData;\r\n if (header.isDate || header.isDateTime) {\r\n return !a[key] ? 1 : !b[key] ? -1 : +new Date(`${a[key]}`) - +new Date(`${b[key]}`);\r\n } else {\r\n return `${a[key]}`\r\n .localeCompare(`${b[key]}`, undefined, {\r\n numeric: true,\r\n sensitivity: 'base'\r\n });\r\n }\r\n }) :\r\n gridData.reverse();\r\n }\r\n return gridData;\r\n }\r\n\r\n /*\r\n used to get uniqueValues of each column.\r\n */\r\n public setUniqueValues(grid: GridDetails) {\r\n grid.header.forEach((gh: GridHeader) => {\r\n if (gh.enableFilter) {\r\n gh.filteredUniqueItems = gh.uniqueItems = [...new Set(grid.data.\r\n map((gd: GridData) => gd[gh.key as keyof GridData])\r\n )].\r\n sort((a: any, b: any) => {\r\n if (gh.isDate || gh.isDateTime) {\r\n return a === '' ? -1 : b === '' ? 1 : (new Date(a) > new Date(b)) ? 1 : (new Date(a) < new Date(b)) ? -1 : 0;\r\n }\r\n return a === null ? -1 : b === null ? 1 : a.toString().\r\n localeCompare(b, undefined, {\r\n numeric: true,\r\n sensitivity: 'base'\r\n });\r\n }).\r\n map((ui: string, i: number) => {\r\n return ({\r\n isChecked: true,\r\n label: ui || '(Blanks)',\r\n id: i\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n public setUniqueValuesOfHeader(grid: GridDetails, gridHeader: GridHeader) {\r\n gridHeader.filteredUniqueItems = gridHeader.uniqueItems = [...new Set(grid.data.\r\n map((gd: GridData) => gd[gridHeader.key as keyof GridData])\r\n )].\r\n sort((a: any, b: any) => {\r\n return a === null ? -1 : b === null ? 1 : a.toString().\r\n localeCompare(b, undefined, {\r\n numeric: true,\r\n sensitivity: 'base'\r\n });\r\n }).\r\n map((ui: string, i: number) => {\r\n return ({\r\n isChecked: true,\r\n label: ui || '(Blanks)',\r\n id: i\r\n });\r\n });\r\n }\r\n\r\n public dateFormatter(grid: GridDetails) {\r\n const dateField = grid.header.filter(gh => gh.isDate);\r\n const timeField = grid.header.filter(gh => gh.isTime);\r\n if ((!dateField || dateField.length === 0) && (!timeField && timeField.length === 0)) { return grid; }\r\n const defaultDateFormat = 'DD-MMM-YYYY';\r\n const defaultTimeFormat = 'HH:mm';\r\n if (grid && grid.data && grid.header && grid.header.length) {\r\n grid.data.forEach((gd: any) => {\r\n\r\n dateField.forEach((df: GridHeader) => {\r\n const valueField = (df.primaryField || df.key) as keyof GridData;\r\n df.skipConversion = true;\r\n gd[df.key as keyof GridData] = gd[valueField] ?\r\n moment(gd[valueField]).format(df.defaultDateFormat || defaultDateFormat) : null;\r\n });\r\n\r\n timeField.forEach((df: GridHeader) => {\r\n const valueField = (df.primaryField || df.key) as keyof GridData;\r\n df.skipConversion = true;\r\n gd[df.key as keyof GridData] = gd[valueField] ?\r\n moment(gd[valueField]).format(df.defaultTimeFormat || defaultTimeFormat) : null;\r\n });\r\n });\r\n }\r\n return grid;\r\n }\r\n}","import { ActivatedRoute, Params, Router } from '@angular/router';\r\nimport { forIn, isEmpty } from 'lodash';\r\nimport { FilterFieldValue } from '../covance-filter.models';\r\nimport { Subject, Observable } from 'rxjs';\r\n\r\nexport abstract class CovanceFilterBaseType {\r\n\r\n public changeDetector: Observable;\r\n\r\n protected changes = new Subject();\r\n\r\n constructor(protected router: Router, protected route: ActivatedRoute) {\r\n this.changeDetector = this.changes.asObservable();\r\n }\r\n\r\n public abstract isMatch(fieldVal: FilterFieldValue, value: any): boolean;\r\n\r\n public abstract serializeValue(value: any): string;\r\n\r\n public setItems(fieldVal: FilterFieldValue, entities: any[]) { }\r\n \r\n public setValue(fieldVal: FilterFieldValue) {\r\n fieldVal.value = fieldVal.queryParamValue;\r\n }\r\n\r\n public setQueryParamValue(fieldVal: FilterFieldValue) {\r\n fieldVal.queryParamValue = fieldVal.value ? fieldVal.value.toString() : null;\r\n }\r\n\r\n public onFieldChange(fieldVal: FilterFieldValue) {\r\n if (fieldVal.def.queryParam) {\r\n const queryParams: Params = {};\r\n forIn(this.route.snapshot.queryParams, (value: string, key: string) => {\r\n if (key !== fieldVal.def.queryParam) {\r\n queryParams[key] = value;\r\n }\r\n });\r\n\r\n if (!isEmpty(fieldVal.queryParamValue)) {\r\n queryParams[fieldVal.def.queryParam] = fieldVal.queryParamValue;\r\n }\r\n\r\n this.router.navigate([], {\r\n queryParams: queryParams,\r\n relativeTo: this.route\r\n });\r\n }\r\n\r\n if (fieldVal.def.onChange) {\r\n fieldVal.def.onChange(fieldVal);\r\n }\r\n }\r\n\r\n protected assertExistingEntityProperty(entity: { [key: string]: any }, key: string) {\r\n if (entity[key] == null) {\r\n const typeName = entity.constructor.name\r\n ? entity.constructor.name\r\n : 'entity';\r\n\r\n throw new Error(`The '${key}' property of ${typeName} is null/undefined. Probably should be filled on the server-side`);\r\n }\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class TermsStorage {\r\n\r\n private disclaimerHtmlCached: Promise;\r\n private osrDisclaimerTextCached: Promise;\r\n private portalDisclaimerHtmlCached: Promise;\r\n\r\n constructor(private http: HttpClient) {\r\n }\r\n\r\n public get disclaimerHtml() {\r\n if (!this.disclaimerHtmlCached) {\r\n this.disclaimerHtmlCached =\r\n this.http.get('corporate/terms', { responseType: 'text' })\r\n .toPromise();\r\n }\r\n\r\n return this.disclaimerHtmlCached;\r\n }\r\n\r\n public get osrDisclaimerText(): Promise {\r\n if (!this.osrDisclaimerTextCached) {\r\n this.osrDisclaimerTextCached =\r\n this.http.get('corporate/osrdisclaimer', { responseType: 'text' })\r\n .toPromise();\r\n }\r\n\r\n return this.osrDisclaimerTextCached;\r\n }\r\n\r\n public get portalDisclaimerHtml() {\r\n if (!this.portalDisclaimerHtmlCached) {\r\n this.portalDisclaimerHtmlCached =\r\n this.http.get('corporate/disclaimer', { responseType: 'text' })\r\n .toPromise();\r\n }\r\n\r\n return this.portalDisclaimerHtmlCached;\r\n }\r\n}","import { dataMember, required, typedArray } from 'santee-dcts';\r\n\r\nexport type CategoryNaturalKey = 'general-document' |\r\n 'application-training' |\r\n 'study-manuals' |\r\n 'site-communications' |\r\n 'sponsor-communications' |\r\n 'sponsor-communications-e-learning' |\r\n 'sponsor-communications-main' |\r\n 'kit-inventory-expiration' |\r\n 'lab-manuals' |\r\n 'general-manuals' |\r\n 'general-communications' |\r\n 'general-training-materials' |\r\n 'site-actions' |\r\n 'lab-manuals-others' |\r\n 'synopsis' |\r\n 'training-materials-e-learning' |\r\n 'training-materials-others' |\r\n 'training-materials' |\r\n 'packaging-and-shipping' |\r\n 'specimen-collection' |\r\n 'quick-reference-guide' |\r\n 'regulatory-documents' |\r\n 'general-information' |\r\n 'result-alerts' |\r\n 'lab-reports' |\r\n 'equery' |\r\n 'equery-summary' |\r\n 'cancellation' |\r\n 'data-revisions' |\r\n 'email-notification' |\r\n 'sample-report' |\r\n 'sample-tracking' ;\r\n\r\nexport class Category {\r\n\r\n @dataMember()\r\n @required()\r\n public categoryId: CategoryNaturalKey;\r\n\r\n @dataMember()\r\n @required()\r\n public name: string;\r\n\r\n @dataMember()\r\n @required()\r\n public icon: string;\r\n\r\n @dataMember()\r\n @required()\r\n public canCombineForPrinting: boolean;\r\n\r\n @dataMember()\r\n @required()\r\n @typedArray(Category)\r\n public children: Category[];\r\n\r\n public parent: Category;\r\n\r\n public isLabReport(): boolean {\r\n return this.categoryId === 'lab-reports';\r\n }\r\n\r\n public isSiteActions(): boolean {\r\n return this.categoryId === 'site-actions';\r\n }\r\n\r\n public toString() {\r\n return this.name;\r\n }\r\n\r\n public static isELearningCategory(categoryId: CategoryNaturalKey): boolean {\r\n return categoryId === 'training-materials-e-learning' || categoryId === 'sponsor-communications-e-learning';\r\n }\r\n\r\n public static isTrainingMaterialsELearning(categoryId: CategoryNaturalKey): boolean {\r\n return categoryId === 'training-materials-e-learning';\r\n }\r\n\r\n public static isSynopsis(categoryId: CategoryNaturalKey): boolean {\r\n return categoryId === 'synopsis';\r\n }\r\n\r\n public static isTrainingMaterialsOthers(categoryId: CategoryNaturalKey): boolean {\r\n return categoryId === 'training-materials-others'; \r\n }\r\n\r\n public static isLabManualsOthers(categoryId: CategoryNaturalKey): boolean {\r\n return categoryId === 'lab-manuals-others';\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Settings } from '../core/settings';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class UserPreferencesStorage {\r\n\r\n constructor(\r\n private readonly settings: Settings,\r\n private readonly http: HttpClient\r\n ) { }\r\n\r\n public get(key: string): Observable {\r\n return this.http\r\n .get(`${this.settings.apiUrl}/user-preferences-storage/items/${key}/value`)\r\n .pipe(map(response => response));\r\n }\r\n\r\n public set(key: string, value: string): Promise {\r\n return this.http\r\n .put(`${this.settings.apiUrl}/user-preferences-storage/items/${key}/value`, { value: value })\r\n .toPromise();\r\n }\r\n}","import { required, dataMember, typedArray } from 'santee-dcts';\r\nimport { deserializers } from '../../core';\r\nimport * as moment from 'moment';\r\n\r\nexport class KitDetail {\r\n @dataMember()\r\n @required({ nullable: true })\r\n public accessionNumber: string;\r\n\r\n @dataMember({ customDeserializer: value => moment(value) })\r\n @required({ nullable: true })\r\n public expiresOn: moment.Moment;\r\n\r\n public getExpiredDateFormat(): string {\r\n return this.expiresOn.format('MM/DD/YYYY');\r\n }\r\n}\r\n\r\nexport class KitDetailReadModel {\r\n @dataMember()\r\n @required()\r\n @typedArray(KitDetail)\r\n public kitDetails: KitDetail[];\r\n}\r\n","import { required, dataMember, typedArray } from 'santee-dcts';\r\nimport { deserializers } from '../../core';\r\nimport * as moment from 'moment';\r\n\r\nexport class SponsorStudyKitReport {\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public kitTypeId: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public ctSiteId: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public siteId: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public investigatorFullName: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public siteNumber: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public country: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public region: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public subprotocolId: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public kitType: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public description: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public status: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public pending: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public shipped: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public received: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public adjusted: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public onHand: number;\r\n\r\n @dataMember({ customDeserializer: value => moment(value) })\r\n @required({ nullable: true })\r\n public lastShipmentDate: moment.Moment;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public projectNumber: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public lastshipmentQuantity: number;\r\n}\r\n\r\nexport class SponsorStudyKitReportReadModel {\r\n @dataMember()\r\n @required()\r\n @typedArray(SponsorStudyKitReport)\r\n public kitReports: SponsorStudyKitReport[];\r\n}\r\n","import { required, dataMember, typedArray } from 'santee-dcts';\r\nimport { deserializers } from '../../core';\r\nimport * as moment from 'moment';\r\n\r\nexport class KitExpiration {\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public kitTypeId: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public ctSiteId: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public siteId: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public investigatorFullName: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public siteNumber: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public country: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public region: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public subprotocolId: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public kitType: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public description: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public status: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public projectNumber: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public zcProjectNumber: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public zcProjectNumberSite: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public accessionNumber: string;\r\n\r\n @dataMember({ customDeserializer: value => moment(value) })\r\n @required({ nullable: true })\r\n public shippedDate: moment.Moment;\r\n\r\n @dataMember({ customDeserializer: value => moment(value) })\r\n @required({ nullable: true })\r\n public expirationDate: moment.Moment;\r\n}\r\n\r\nexport class SponsorStudyKitExpirationReadModel {\r\n @dataMember()\r\n @required()\r\n @typedArray(KitExpiration)\r\n public kitExpirations: KitExpiration[];\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { deserialize } from 'santee-dcts';\r\nimport { Settings } from '../../core';\r\nimport { Kit, KitsReadModel } from './kit';\r\nimport { DocumentFilterItem, DocumentFilterItemReadModel } from '../../documents/document-filter-item';\r\nimport { FilterFieldValue } from '../../covance-filter';\r\nimport { prepareFilterUrlParams } from '../../documents/prepare-filter-url-params';\r\nimport { KitDetailReadModel, KitDetail } from './kit-detail';\r\nimport { SponsorStudyKitReport, SponsorStudyKitReportReadModel } from '../../sponsor/kit-inventory/sponsor-study-kit-report';\r\nimport { SponsorStudy } from '../../sponsor-dashboard/sponsor-study';\r\nimport { KitExpiration, SponsorStudyKitExpirationReadModel } from '../../sponsor/kit-inventory/kit-expiration-report';\r\nimport { Protocol } from '../../admin/shared';\r\n\r\n\r\n@Injectable()\r\nexport class KitInventoryStorage {\r\n\r\n constructor(\r\n protected settings: Settings,\r\n protected http: HttpClient,\r\n ) {}\r\n\r\n //investigator\r\n public getKits(site: number, filterParameters: FilterFieldValue[] = null): Observable {\r\n let filtersParams = prepareFilterUrlParams(filterParameters);\r\n\r\n return this.http.get(`${this.settings.apiUrl}/investigator/sites/${site}/kits`, { params: filtersParams })\r\n .pipe(map((response) => {\r\n if (response) {\r\n let kitData = deserialize(response, KitsReadModel).kits;\r\n return kitData;\r\n }\r\n return null;\r\n })\r\n );\r\n }\r\n\r\n //investigator, sponsor, admin\r\n public getKitDetails(site: number, ctSiteId: number, kitTypeId: number): Observable {\r\n\r\n return this.http.get(`${this.settings.apiUrl}/investigator/sites/${site}/kits/${ctSiteId}/${kitTypeId}`)\r\n .pipe(map((response) => {\r\n if (response) {\r\n let kitData = deserialize(response, KitDetailReadModel).kitDetails;\r\n return kitData;\r\n }\r\n return null;\r\n })\r\n );\r\n }\r\n\r\n //investigator\r\n public loadFilterItems(site: number): Observable {\r\n return this.http.get(\r\n `${this.settings.apiUrl}/investigator/sites/${site}/kits/filter-items`\r\n ).pipe(\r\n map((r) => deserialize(r, DocumentFilterItemReadModel).documentFilterItems)\r\n );\r\n }\r\n\r\n //sponsor\r\n public loadSponsorFilterItems(study: number): Observable {\r\n return this.http.get(\r\n `${this.settings.apiUrl}/sponsor/study/${study}/kit-report/filter-items`\r\n ).pipe(\r\n map((r) => deserialize(r, DocumentFilterItemReadModel).documentFilterItems)\r\n );\r\n }\r\n\r\n //sponsor\r\n public loadSponsorExpirationFilterItems(study: number): Observable {\r\n return this.http.get(\r\n `${this.settings.apiUrl}/sponsor/study/${study}/kit-expire/filter-items`\r\n ).pipe(\r\n map((r) => deserialize(r, DocumentFilterItemReadModel).documentFilterItems)\r\n );\r\n }\r\n\r\n //sponsor\r\n public getKitReports(study: SponsorStudy, filterParameters: FilterFieldValue[] = null): Observable {\r\n let filtersParams = prepareFilterUrlParams(filterParameters); \r\n\r\n return this.http.get(`${this.settings.apiUrl}/sponsor/study/${study.protocolId}/kit-report`, { params: filtersParams })\r\n .pipe(map((response) => {\r\n if (response) {\r\n let kitData = deserialize(response, SponsorStudyKitReportReadModel).kitReports;\r\n return kitData;\r\n }\r\n return null;\r\n })\r\n );\r\n }\r\n\r\n //sponsor\r\n public getSponsorKitExpirationReport(study: SponsorStudy, filterParameters: FilterFieldValue[] = null): Observable {\r\n let filtersParams = prepareFilterUrlParams(filterParameters);\r\n if (filtersParams && !filterParameters[4].value) {\r\n filtersParams = filtersParams.append('requestLimit', this.settings.maxNumberOfSponsorLabReports.toString());\r\n }\r\n\r\n return this.http.get(`${this.settings.apiUrl}/sponsor/study/${study.protocolId}/kit-expire`, { params: filtersParams })\r\n .pipe(map((response) => {\r\n if (response) {\r\n let kitData = deserialize(response, SponsorStudyKitExpirationReadModel).kitExpirations;\r\n return kitData;\r\n }\r\n return null;\r\n })\r\n );\r\n }\r\n\r\n //admin\r\n public getAdminKitReports(protocol: Protocol[], filterParameters: FilterFieldValue[] = null): Observable {\r\n let filtersParams = prepareFilterUrlParams(filterParameters);\r\n let studyId = 0;\r\n if (protocol) {\r\n studyId = protocol[0].id;\r\n }\r\n\r\n return this.http.get(`${this.settings.apiUrl}/admin/kit-reports/inventory/${encodeURI(studyId.toString())}`, { params: filtersParams })\r\n .pipe(map((response) => {\r\n if (response) {\r\n let kitData = deserialize(response, SponsorStudyKitReportReadModel).kitReports;\r\n return kitData;\r\n }\r\n return null;\r\n })\r\n );\r\n }\r\n\r\n //admin\r\n public getAdminKitExpirationReport(protocol: Protocol[], filterParameters: FilterFieldValue[] = null): Observable {\r\n let filtersParams = prepareFilterUrlParams(filterParameters);\r\n if (filtersParams && !filterParameters[4].value) {\r\n filtersParams = filtersParams.append('requestLimit', this.settings.maxNumberOfSponsorLabReports.toString());\r\n }\r\n\r\n let studyId = 0;\r\n if (protocol) {\r\n studyId = protocol[0].id;\r\n }\r\n\r\n return this.http.get(`${this.settings.apiUrl}/admin/kit-reports/expiration/${encodeURI(studyId.toString())}`, { params: filtersParams })\r\n .pipe(map((response) => {\r\n if (response) {\r\n let kitData = deserialize(response, SponsorStudyKitExpirationReadModel).kitExpirations;\r\n return kitData;\r\n }\r\n return null;\r\n })\r\n );\r\n }\r\n\r\n //admin\r\n public loadAdminFilterItems(study: number): Observable {\r\n return this.http.get(\r\n `${this.settings.apiUrl}/admin/kit-reports/inventory/${encodeURI(study.toString())}/filter-items`\r\n ).pipe(\r\n map((r) => deserialize(r, DocumentFilterItemReadModel).documentFilterItems)\r\n );\r\n }\r\n\r\n //admin\r\n public loadAdminExpirationFilterItems(study: number): Observable {\r\n return this.http.get(\r\n `${this.settings.apiUrl}/admin/kit-reports/expiration/${encodeURI(study.toString())}/filter-items`\r\n ).pipe(\r\n map((r) => deserialize(r, DocumentFilterItemReadModel).documentFilterItems)\r\n );\r\n }\r\n\r\n public getHelpText(): string {\r\n return `

Status : Value representing the status of a kit type. Kits can be Active, Inactive or On Hold.\r\n
Pending Shipment : Count of kits pending shipment.\r\n
Shipped to Site : Count of kits shipped to the investigator site.\r\n
Received by Lab : Number of used kits received back by Labcorp.\r\n
Adjusted by Site : Number of kits removed from or added to an investigator site’s inventory count.\r\n
On Hand : Number of kits currently at the site. This number may also reflect kits that have expired that Labcorp has not been notified about.\r\n
Last Shipment Quantity : Number of kits in most recent shipment to the site.\r\n
Last Shipment Date : Date of the most recent shipment to the site.

`;\r\n }\r\n\r\n}","import { Component } from '@angular/core';\r\nimport { TermsStorage } from './terms-storage';\r\n\r\n@Component({\r\n selector: 'osr-disclaimer',\r\n template: require('./osr-disclaimer.component.html'),\r\n styles: [require('./osr-disclaimer.component.scss')]\r\n})\r\nexport class OsrDisclaimerComponent {\r\n public osrDisclaimerText: Promise;\r\n\r\n constructor(termsStorage: TermsStorage) {\r\n this.osrDisclaimerText = termsStorage.osrDisclaimerText;\r\n }\r\n}","import { Component } from '@angular/core';\r\nimport { Settings, Link } from '../core';\r\n\r\n@Component({\r\n selector: 'kit-disclaimer',\r\n template: require('./kit-disclaimer.component.html'),\r\n styles: [require('./kit-disclaimer.component.scss')]\r\n})\r\nexport class KitDisclaimerComponent {\r\n public kitDisclaimerText: string;\r\n public kitOrderLink: Link;\r\n\r\n constructor(private readonly settings: Settings) {\r\n this.kitOrderLink = this.settings.linksDictionary['kit-inventory'];\r\n this.kitDisclaimerText = 'In order to ensure accurate inventory, please inform Labcorp of expired, lost, damaged or transferred kits by going to the ';\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { TermsStorage } from './terms-storage';\r\nimport { TermsPopupComponent } from './terms-popup.component';\r\nimport { GlobalPopupModule } from '../global-popup/global-popup.module';\r\nimport { TermsAcceptanceStorage } from './terms-acceptance-storage';\r\nimport { UserAcceptedTermsGuard } from './user-accepted-terms-guard';\r\nimport { AcceptTermsPageComponent } from './accept-terms-page.component';\r\nimport { OsrDisclaimerComponent } from './osr-disclaimer.component';\r\nimport { KitDisclaimerComponent } from './kit-disclaimer.component';\r\nimport { PortalDisclaimerPopupComponent } from './portal-disclaimer-popup.component';\r\n\r\n@NgModule({\r\n imports: [SharedModule, GlobalPopupModule],\r\n providers: [TermsStorage, TermsAcceptanceStorage, UserAcceptedTermsGuard],\r\n declarations: [TermsPopupComponent, AcceptTermsPageComponent, OsrDisclaimerComponent, KitDisclaimerComponent, PortalDisclaimerPopupComponent],\r\n exports: [OsrDisclaimerComponent, KitDisclaimerComponent]\r\n})\r\nexport class CorporateModule {\r\n\r\n}","import { AfterViewInit, ChangeDetectorRef, Component, EventEmitter, forwardRef, Input, OnChanges, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { IMyDate, IMyDateModel, IMyOptions, MyDatePicker } from 'mydatepicker';\r\nimport { ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MdlSelectComponent } from '@angular-mdl/select';\r\nimport { merge, Subscription } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\n\r\nenum CalToggle {\r\n Open = 1,\r\n CloseByDateSel = 2,\r\n CloseByCalBtn = 3,\r\n CloseByOutClick= 4,\r\n CloseByEsc = 5,\r\n CloseByApi = 6\r\n}\r\n@Component({\r\n selector: 'covance-date-picker',\r\n template: require('./covance-date-picker.component.html'),\r\n styles: [require('./covance-date-picker.component.scss')],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CovanceDatePickerComponent),\r\n multi: true\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: CovanceDatePickerComponent,\r\n multi: true\r\n }\r\n ]\r\n //TODO: fix work with ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CovanceDatePickerComponent implements OnInit, AfterViewInit, OnDestroy, OnChanges, ControlValueAccessor {\r\n @Input()\r\n public date: moment.MomentInput;\r\n\r\n @Input()\r\n public disabled: boolean;\r\n\r\n @Input()\r\n public disableUntil: moment.Moment;\r\n\r\n @Input()\r\n public allowTimePicker: boolean;\r\n\r\n @ViewChild('datePicker')\r\n public datePicker: MyDatePicker;\r\n\r\n @ViewChild('selectHours')\r\n public selectHours: MdlSelectComponent;\r\n\r\n @ViewChild('selectMinutes')\r\n public selectMinutes: MdlSelectComponent;\r\n\r\n @Output()\r\n public dateChanged: EventEmitter = new EventEmitter();\r\n\r\n @Output()\r\n public onCalendarDateTimeSelect: EventEmitter = new EventEmitter();\r\n\r\n public isShownDateSelector: boolean;\r\n\r\n public model: { date: IMyDate };\r\n\r\n public datePickerOptions: IMyOptions;\r\n\r\n public get value(): moment.MomentInput {\r\n return this.date;\r\n }\r\n\r\n public set value(v: moment.MomentInput) {\r\n this.date = v;\r\n this.ngOnChanges();\r\n this.onChange(this.date);\r\n this.onTouched();\r\n }\r\n public isDisabledTime = false;\r\n public selectedHours = '00';\r\n public selectedMinutes = '00';\r\n public hours: string[];\r\n public minutes: string[];\r\n\r\n private isValid: boolean;\r\n private subscription: Subscription;\r\n\r\n public constructor(private ref: ChangeDetectorRef) {\r\n this.hours = this.getTimeArray(24);\r\n this.minutes = this.getTimeArray(60);\r\n }\r\n\r\n public onChange: any = () => { };\r\n public onTouched: any = () => { };\r\n\r\n public writeValue(date: moment.MomentInput): void {\r\n if (date) {\r\n this.value = date;\r\n } else {\r\n this.value = moment(null);\r\n }\r\n }\r\n public registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n public registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n public setDisabledState?(isDisabled: boolean): void {\r\n this.datePicker.setDisabledState(isDisabled);\r\n }\r\n\r\n public ngOnInit() {\r\n this.datePickerOptions = {\r\n inline: false,\r\n width: '130px',\r\n height: '24px',\r\n showSelectorArrow: false,\r\n selectionTxtFontSize: 'inherit',\r\n indicateInvalidDate: true\r\n };\r\n if (this.disableUntil) {\r\n this.datePickerOptions.disableUntil = convertDate(this.disableUntil);\r\n }\r\n }\r\n\r\n public ngAfterViewInit(): void {\r\n if (this.allowTimePicker && this.selectHours && this.selectMinutes) {\r\n this.subscription = merge(\r\n merge(this.selectHours.popoverComponent.onShow, this.selectMinutes.popoverComponent.onShow).pipe(\r\n map(() => true)),\r\n merge(this.selectHours.popoverComponent.onHide, this.selectMinutes.popoverComponent.onHide).pipe(\r\n filter(() => !this.isShownDateSelector),\r\n map(() => false))\r\n ).subscribe((v) => {\r\n this.onCalendarDateTimeSelect.emit(v);\r\n });\r\n }\r\n }\r\n\r\n public ngOnChanges() {\r\n this.datePicker.locale = moment.locale();\r\n this.datePicker.setLocaleOptions();\r\n this.datePicker.placeholder = this.datePicker.opts.dateFormat;\r\n if (!this.date) {\r\n this.datePicker.updateDateValue({year: 0, month: 0, day: 0});\r\n this.isDisabledTime = true;\r\n this.isValid = true;\r\n return;\r\n }\r\n\r\n const date = moment(this.date);\r\n this.selectedHours = date.format('HH');\r\n this.selectedMinutes = date.format('mm');\r\n if (date.isValid()) {\r\n this.isDisabledTime = false;\r\n this.model = {\r\n date: convertDate(date)\r\n };\r\n this.isValid = true;\r\n } else {\r\n this.isValid = false;\r\n }\r\n this.ref.markForCheck();\r\n }\r\n public onCalendarToggle(event: number) {\r\n this.isShownDateSelector = event === CalToggle.Open;\r\n this.onCalendarDateTimeSelect.emit(this.isShownDateSelector);\r\n this.closeTimeSelection();\r\n }\r\n\r\n public onDateChange($event: IMyDateModel) {\r\n let date = moment($event.jsdate);\r\n date = date.isValid() ? this.allowTimePicker ? this.getDateTime(date) : date : null;\r\n this.date = date;\r\n this.isValid = true;\r\n this.dateChanged.emit(date);\r\n this.onChange(this.date);\r\n this.onTouched();\r\n }\r\n\r\n public onDateTextChange($event: any) {\r\n this.isValid = $event.value ? $event.valid : true;\r\n this.onChange(this.date);\r\n this.onTouched();\r\n }\r\n\r\n public validate() {\r\n return this.isValid || {\r\n invalid: true\r\n };\r\n }\r\n\r\n public getErrorText() {\r\n return this.isValid ? 'This field is required' : 'invalid date string';\r\n }\r\n\r\n public isInvalidDate() {\r\n return this.datePicker.invalidDate;\r\n }\r\n\r\n public onChangeTime() {\r\n const date = moment(this.date, 'YYYY-MM-DD');\r\n const dateTime = this.getDateTime(date);\r\n this.isValid = true;\r\n this.dateChanged.emit(dateTime);\r\n this.onChange(this.date);\r\n this.onTouched();\r\n this.closeTimeSelection();\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n private getDateTime(date: moment.Moment) {\r\n return date\r\n ? date.add(this.selectedMinutes, 'minutes').add(this.selectedHours, 'hours')\r\n : date;\r\n }\r\n\r\n private getTimeArray(numberOfElements: number) {\r\n return new Array(numberOfElements)\r\n .fill(0)\r\n .map((v, i) => {\r\n return ('0' + i).substr(-2, 2);\r\n });\r\n }\r\n\r\n private closeTimeSelection() {\r\n if (this.selectHours && this.selectMinutes) {\r\n this.selectHours.popoverComponent.hide();\r\n this.selectMinutes.popoverComponent.hide();\r\n }\r\n }\r\n}\r\n\r\nconst convertDate = (date: moment.Moment): IMyDate => ({\r\n year: date.year(),\r\n month: date.month() + 1,\r\n day: date.date()\r\n});\r\n","import { NgModule } from '@angular/core';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { MyDatePickerModule } from 'mydatepicker';\r\nimport { CovanceDatePickerComponent } from './covance-date-picker.component';\r\n\r\n@NgModule({\r\n declarations: [CovanceDatePickerComponent],\r\n imports: [SharedModule, MyDatePickerModule],\r\n exports: [CovanceDatePickerComponent]\r\n})\r\nexport class CovanceDatePickerModule { }","import { Params } from '@angular/router';\r\nimport { isEmpty } from 'lodash';\r\n\r\ninterface CommonSite {\r\n isExtremelyLarge: boolean;\r\n siteId: number;\r\n}\r\n\r\nexport const LOAD_ALL_RESULTS_QUERY_PARAMETER = 'load-all-results';\r\nexport const ACCESSION_FILTER_QUERY_PARAMETER = 'accessionNumber';\r\n\r\nexport function getOptionalParametersForSTRQuery(loadAllQueryParam: boolean, site: CommonSite, queryParams: Params ) {\r\n const doLoadAll = !(site.isExtremelyLarge) || loadAllQueryParam;\r\n if (doLoadAll) {\r\n return '';\r\n }\r\n\r\n let selectedAccessions: string[] = null;\r\n\r\n const selectedAccessionJson = queryParams[ACCESSION_FILTER_QUERY_PARAMETER];\r\n if (selectedAccessionJson) {\r\n try {\r\n const accessions: string[] = JSON.parse(selectedAccessionJson);\r\n selectedAccessions = isEmpty(accessions) ? null : accessions;\r\n } catch {\r\n console.warn('invalid accession number in query parameters');\r\n }\r\n }\r\n\r\n let optionalQueryParams = '';\r\n\r\n if (selectedAccessions) {\r\n optionalQueryParams = selectedAccessions.map(accession => `&selectedAccessions=${accession}`).join('');\r\n }\r\n\r\n return `?loadAll=false${optionalQueryParams}`;\r\n}","import { chain, isEmpty } from 'lodash';\r\nimport { Category, CategoryNaturalKey } from './category';\r\nimport { dataMember, typedArray, required } from 'santee-dcts';\r\nimport * as moment from 'moment';\r\nimport { deserializers, formatters } from '../../core';\r\nimport { Site } from '../../sites';\r\nimport { Acknowledgement, Readable } from '../../view-history';\r\nimport { SubjectNaturalKey } from '../../subjects';\r\n\r\nexport class VisitReportInfo {\r\n @dataMember()\r\n @required({ nullable: true })\r\n public visit: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public accessionNumber: string;\r\n\r\n @dataMember({ customDeserializer: deserializers.deserializeDate })\r\n @required({ nullable: true })\r\n public visitCollectionDate: moment.Moment;\r\n}\r\n\r\nexport class FileLink {\r\n @dataMember()\r\n @required({ nullable: true })\r\n public language: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public languageId: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public languageCode: string;\r\n\r\n @dataMember()\r\n @required()\r\n public fileId: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true})\r\n public fileName: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true})\r\n public uploadFileName: string; \r\n\r\n public get fileNameString(): string {\r\n return this.uploadFileName || '(none)';\r\n }\r\n}\r\n\r\nexport class Report implements Readable {\r\n public category: Category;\r\n\r\n public site: Site | undefined;\r\n\r\n @dataMember({ customDeserializer: deserializers.deserializeDate })\r\n public postedDateTime: moment.Moment;\r\n\r\n @dataMember()\r\n public reportId: string;\r\n\r\n @dataMember()\r\n public isRead: boolean;\r\n\r\n @dataMember()\r\n public isReadByMe: boolean;\r\n\r\n @dataMember()\r\n @required()\r\n public isPreviewAvailable: boolean;\r\n\r\n @dataMember()\r\n @required()\r\n public isPrintable: boolean;\r\n\r\n @dataMember()\r\n @required()\r\n public isSavable: boolean;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public siteId: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public siteNum: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public subProtocolId: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public protocolId: number;\r\n\r\n @dataMember()\r\n @required()\r\n public allSites: boolean;\r\n\r\n @dataMember()\r\n @typedArray(FileLink)\r\n public fileLinks: FileLink[];\r\n\r\n @dataMember()\r\n @typedArray(Site)\r\n public sites: Site[];\r\n\r\n @dataMember()\r\n @typedArray(Acknowledgement)\r\n public viewHistory: Acknowledgement[];\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public subcategoryTitle: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public subcategoryId: CategoryNaturalKey;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public zcProjectNumber: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public region: string;\r\n\r\n @dataMember()\r\n @required()\r\n public isHidden: boolean;\r\n\r\n public get fileLinkCategory(): CategoryNaturalKey {\r\n return this.subcategoryId || this.category.categoryId;\r\n }\r\n}\r\n\r\nexport abstract class VisitReport extends Report {\r\n @dataMember()\r\n @required({ nullable: true })\r\n public subjectId: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public subjectNumber: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public subjectInitials: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public screeningNumber: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public subjectNaturalKey: string;\r\n\r\n public get zcSubjectId(): string | null {\r\n const result = SubjectNaturalKey.fromString(this.subjectNaturalKey);\r\n\r\n return result\r\n ? result.zcSubjectId\r\n : null;\r\n }\r\n\r\n public get accessionNumbers(): string[] {\r\n const accessionNumbers = chain(this.visits)\r\n .filter(x => !isEmpty(x.accessionNumber))\r\n .map(x => x.accessionNumber)\r\n .sort()\r\n .value();\r\n return accessionNumbers;\r\n }\r\n\r\n @dataMember({ customDeserializer: deserializers.deserializeDate })\r\n @required({ nullable: true })\r\n public subjectBirthDate: moment.Moment;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public subjectGender: string;\r\n\r\n @dataMember()\r\n @typedArray(VisitReportInfo)\r\n @required()\r\n public visits: VisitReportInfo[];\r\n}\r\n\r\nexport class LabManualsReport extends Report {\r\n @dataMember()\r\n public title: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public version: string;\r\n\r\n @dataMember({ customDeserializer: deserializers.deserializeDate })\r\n @required({ nullable: true })\r\n public versionDate: moment.Moment;\r\n\r\n public getDescription(): string {\r\n return `Posted at ${formatters.formatDate(this.postedDateTime)}. Title: ${String.fromCharCode(160)}${this.title}`;\r\n }\r\n}\r\n\r\nexport class GeneralReport extends Report {\r\n @dataMember()\r\n @required()\r\n public title: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public subcategoryTitle: string;\r\n\r\n @dataMember()\r\n public letterNumber: string;\r\n\r\n @dataMember()\r\n @typedArray(String)\r\n @required()\r\n public audienceRoles: string[];\r\n}\r\n\r\nexport class SynopsisReport extends Report {\r\n @dataMember({ customDeserializer: deserializers.deserializeDate })\r\n public versionDate: moment.Moment;\r\n}\r\n\r\nexport class LabReport extends VisitReport {\r\n @dataMember()\r\n @required({ nullable: true })\r\n public testGroup: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public type: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public recipientType: string;\r\n\r\n public get fileLinkCategory(): CategoryNaturalKey {\r\n switch (this.type) {\r\n case 'Result Alert':\r\n case 'Alert':\r\n return 'result-alerts';\r\n case 'Data Revision':\r\n return 'data-revisions';\r\n case 'Cancellation':\r\n return 'cancellation';\r\n default:\r\n return this.category.categoryId;\r\n }\r\n }\r\n}\r\n\r\nexport class CommunicationReport extends Report {\r\n @dataMember()\r\n @required({ nullable: true })\r\n public title: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public letterNumber: string;\r\n}\r\n\r\nexport class TrainingMaterialsReport extends Report {\r\n @dataMember()\r\n @required({ nullable: true })\r\n public title: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public protocolNumber: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public allProjects: boolean;\r\n\r\n public get projectNumber(): string {\r\n return !!this.allProjects ? 'All Projects' : this.zcProjectNumber;\r\n }\r\n}\r\n\r\nexport class SiteActionsReport extends VisitReport {\r\n @dataMember({ customDeserializer: deserializers.deserializeBooleanFlag })\r\n public isResponseRequired: boolean;\r\n\r\n @dataMember()\r\n public title: string;\r\n\r\n @dataMember()\r\n public siteNum: string;\r\n\r\n @dataMember({ customDeserializer: deserializers.deserializeDate })\r\n public responseNeededBy: moment.Moment;\r\n\r\n public getDescription(): string {\r\n return `Posted at ${formatters.formatDate(this.postedDateTime)}. Title:${String.fromCharCode(160)}${this.title}`;\r\n }\r\n}\r\n","import { selectAll } from 'd3';\r\n\r\nexport const tooltipClassName = 'cvtooltip';\r\nexport function removeAllTooltips() {\r\n selectAll(`.${tooltipClassName}`).remove();\r\n}","import { Injectable } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { FilterFieldValue, FilterDateRangeValue } from '../covance-filter.models';\r\nimport { CovanceFilterDateType } from './covance-filter-date-type';\r\nimport * as moment from 'moment';\r\n\r\n@Injectable()\r\nexport class CovanceFilterDateRangeType extends CovanceFilterDateType {\r\n private readonly separator = 'To';\r\n private readonly dateBeginRegExp = new RegExp(`^(\\\\d{4}-\\\\d{2}-\\\\d{2})${this.separator}`);\r\n private readonly dateEndRegExp = new RegExp(`${this.separator}(\\\\d{4}-\\\\d{2}-\\\\d{2})$`);\r\n private dynamicRanges: { [key: string]: () => FilterDateRangeValue } = {\r\n 'today': () => this.getTodayRange(),\r\n 'monthToDate': () => this.getMonthToDateRange(),\r\n 'yearToDate': () => this.getYearToDateRange()\r\n };\r\n\r\n constructor(router: Router, route: ActivatedRoute) {\r\n super(router, route);\r\n }\r\n\r\n public serializeValue(filterValue: any): string {\r\n const valueRange = filterValue as FilterDateRangeValue;\r\n if (valueRange == null) {\r\n return '';\r\n }\r\n switch (valueRange.rangeType) {\r\n case 'today': return 'Today';\r\n case 'monthToDate': return 'Month To Date';\r\n case 'yearToDate': return 'Year To Date';\r\n case 'dateRange': return `From ${valueRange.dateBegin || ' - '} To ${valueRange.dateEnd || ' - '}`;\r\n default: return '';\r\n }\r\n }\r\n\r\n public isMatch(fieldVal: FilterFieldValue, value: any) {\r\n const filterValue = fieldVal.value as FilterDateRangeValue;\r\n\r\n if (!filterValue) {\r\n return false;\r\n }\r\n\r\n if (!filterValue.dateBegin && !filterValue.dateEnd) {\r\n return false;\r\n }\r\n\r\n const date = this.formatDateTime(value);\r\n return (!filterValue.dateBegin || (date >= filterValue.dateBegin)) && (!filterValue.dateEnd || (date <= filterValue.dateEnd));\r\n }\r\n\r\n public setValue(fieldVal: FilterFieldValue) {\r\n const rangeResolver = this.dynamicRanges[fieldVal.queryParamValue];\r\n if (rangeResolver) {\r\n fieldVal.value = rangeResolver();\r\n } else {\r\n fieldVal.value = {\r\n rangeType: 'dateRange',\r\n dateBegin: this.getDateBegin(fieldVal.queryParamValue),\r\n dateEnd: this.getDateEnd(fieldVal.queryParamValue)\r\n } as FilterDateRangeValue;\r\n }\r\n this.changes.next(true);\r\n }\r\n\r\n public setQueryParamValue(fieldVal: FilterFieldValue) {\r\n const filterValue = fieldVal.value as FilterDateRangeValue;\r\n\r\n if (!filterValue) {\r\n return;\r\n }\r\n\r\n if (filterValue.rangeType === 'dateRange') {\r\n fieldVal.queryParamValue = (filterValue.dateBegin || filterValue.dateEnd) ?\r\n `${(filterValue.dateBegin ? filterValue.dateBegin : '')}${this.separator}${(filterValue.dateEnd ? filterValue.dateEnd : '')}` : null;\r\n } else {\r\n fieldVal.queryParamValue = filterValue.rangeType;\r\n }\r\n }\r\n\r\n private getDateBegin(value: string): string {\r\n if (!value) {\r\n return null;\r\n }\r\n\r\n const match = this.dateBeginRegExp.exec(value);\r\n return match ? match[1] : '';\r\n }\r\n\r\n private getDateEnd(value: string): string {\r\n if (!value) {\r\n return null;\r\n }\r\n const match = this.dateEndRegExp.exec(value);\r\n return match ? match[1] : '';\r\n }\r\n\r\n private getTodayRange(): FilterDateRangeValue {\r\n return {\r\n dateBegin: this.formatDateTime(moment()),\r\n dateEnd: this.formatDateTime(moment()),\r\n rangeType: 'today'\r\n };\r\n }\r\n\r\n private getMonthToDateRange(): FilterDateRangeValue {\r\n return {\r\n dateBegin: this.formatDateTime(moment().startOf('month')),\r\n dateEnd: this.formatDateTime(moment()),\r\n rangeType: 'monthToDate'\r\n };\r\n }\r\n\r\n private getYearToDateRange(): FilterDateRangeValue {\r\n return {\r\n dateBegin: this.formatDateTime(moment().startOf('year')),\r\n dateEnd: this.formatDateTime(moment()),\r\n rangeType: 'yearToDate'\r\n };\r\n }\r\n}","export * from './investigator-sites-storage';\r\nexport * from './selected-site-resolver';\r\nexport * from './site';\r\nexport * from './sites.module';","import { CategoryNaturalKey } from '../../documents/models/category';\r\nimport { UserActionName } from '../user-action';\r\n\r\ntype ActionByCategory = {\r\n readonly [categoryId in CategoryNaturalKey]?: UserActionName;\r\n};\r\n\r\ntype TestResultsActions = {\r\n readonly [key: string]: UserActionName;\r\n};\r\n\r\nconst activityReports: ActionByCategory = {\r\n 'lab-manuals': 'View Activity Reports - Lab Manuals',\r\n 'site-actions': 'View Activity Reports - Site Actions',\r\n 'site-communications': 'View Activity Reports - Site Communications',\r\n 'training-materials': 'View Activity Reports - Training Materials',\r\n 'lab-reports': 'View Activity Reports - Lab Reports',\r\n 'result-alerts': 'View Activity Reports - Result Alerts',\r\n 'equery': 'View Activity Reports - eQuery'\r\n};\r\n\r\nconst documentCategories: ActionByCategory = {\r\n 'regulatory-documents': 'View General Manuals - Regulatory Documents',\r\n 'general-information': 'View General Manuals - General Information',\r\n 'quick-reference-guide': 'View General Manuals - Quick Reference Guide',\r\n\r\n 'general-communications': 'View General Communications',\r\n\r\n 'specimen-collection': 'View General Training Materials - Specimen Collection',\r\n 'packaging-and-shipping': 'View General Training Materials - Packaging and Shipping',\r\n\r\n 'application-training': 'View Application Training',\r\n\r\n 'lab-reports': 'View Lab Reports',\r\n 'result-alerts': 'View Result Alerts',\r\n\r\n 'study-manuals': 'View Lab Manuals - Study Manuals',\r\n 'synopsis': 'View Lab Manuals - Specimen Collection Guides',\r\n 'lab-manuals-others': 'View Lab Manuals - Others',\r\n 'site-actions': 'View Site Actions',\r\n 'site-communications': 'View Site Communications',\r\n 'sponsor-communications': 'View Sponsor Communications',\r\n 'training-materials-e-learning': 'View Training Materials - eLearning',\r\n 'training-materials-others': 'View Training Materials - Others',\r\n};\r\n\r\nconst testResults: TestResultsActions = {\r\n 'test-results': 'View Standard Test Results',\r\n 'trends': 'View Test Results Trends',\r\n 'boxplots': 'View Test Results - Box Plots',\r\n};\r\n\r\nexport const navigationActions = {\r\n activityReports,\r\n documentCategories,\r\n testResults,\r\n};\r\n","import { dataMember, required, typedArray } from 'santee-dcts';\r\n\r\nexport class Protocol {\r\n @dataMember()\r\n @required()\r\n public id: number;\r\n\r\n @dataMember()\r\n @required()\r\n public sponsor: string;\r\n\r\n @dataMember()\r\n @required()\r\n public protocolName: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n @typedArray(String)\r\n public projects: string[];\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public isAccessible: boolean;\r\n\r\n public toString() {\r\n return `${this.protocolName} - ${this.sponsor}`;\r\n }\r\n}\r\n\r\nexport class ProtocolsReadModel {\r\n @dataMember()\r\n @required()\r\n @typedArray(Protocol)\r\n public protocols: Protocol[];\r\n}","import { NgModule } from '@angular/core';\r\nimport { ChartLegendComponent } from './chart-legend.component';\r\nimport { GridLegendComponent } from './grid-legend.component';\r\nimport { SharedModule } from '../shared/shared.module';\r\n\r\n@NgModule({\r\n imports: [SharedModule],\r\n declarations: [\r\n ChartLegendComponent,\r\n GridLegendComponent\r\n ],\r\n exports: [\r\n ChartLegendComponent,\r\n GridLegendComponent\r\n ]\r\n})\r\nexport class LegendModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Params } from '@angular/router';\r\nimport { deserialize, dataMember, required, typedArray } from 'santee-dcts';\r\nimport { Settings } from '../core';\r\nimport { Observable } from 'rxjs';\r\nimport { map, switchMap, publishLast, refCount } from 'rxjs/operators';\r\nimport { findIndex } from 'lodash';\r\n\r\nexport class UserFilter {\r\n @dataMember()\r\n @required()\r\n public id: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public siteId: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public protocolId: number;\r\n\r\n @dataMember()\r\n @required()\r\n public name: string;\r\n\r\n @dataMember()\r\n @required()\r\n public group: string;\r\n\r\n @dataMember()\r\n public params: Params;\r\n}\r\n\r\nexport class UserFiltersReadModel {\r\n @dataMember()\r\n @required()\r\n @typedArray(UserFilter)\r\n public filters: UserFilter[];\r\n}\r\n\r\n@Injectable()\r\nexport class FiltersStorage {\r\n private filtersValue: UserFilter[] = null;\r\n private isLoadedValue: Observable = null;\r\n\r\n constructor(\r\n private settings: Settings,\r\n private http: HttpClient\r\n ) { }\r\n\r\n public getFilters(group: string, siteId: number, protocolId: number) {\r\n return this.filtersValue ? this.filtersValue.filter(f => f.group === group && f.siteId === siteId && f.protocolId === protocolId) : null;\r\n }\r\n\r\n public save(filter: UserFilter): Promise {\r\n return this.isLoaded\r\n .pipe(\r\n switchMap(() => {\r\n return this.http.post(`${this.settings.apiUrl}/user-filters/`, filter);\r\n }),\r\n map((rawData) => {\r\n const responseFilter = deserialize(rawData, UserFilter);\r\n if (!filter.id) {\r\n this.filtersValue.push(responseFilter);\r\n } else {\r\n const index = findIndex(this.filtersValue, f => f.id === filter.id);\r\n this.filtersValue[index] = responseFilter;\r\n }\r\n return responseFilter;\r\n })\r\n )\r\n .toPromise();\r\n }\r\n\r\n public delete(id: string): Promise {\r\n return this.isLoaded\r\n .pipe(\r\n switchMap(() => {\r\n return this.http.delete(`${this.settings.apiUrl}/user-filters/${id}`);\r\n }))\r\n .forEach(() => {\r\n this.filtersValue = this.filtersValue.filter(f => f.id !== id);\r\n });\r\n }\r\n\r\n private loadFilters() {\r\n return this.http.get(`${this.settings.apiUrl}/user-filters`)\r\n .pipe(\r\n map((rawData) => {\r\n this.filtersValue = deserialize(rawData, UserFiltersReadModel).filters.sort((a, b) => a.name.localeCompare(b.name));\r\n return true;\r\n }),\r\n publishLast(),\r\n refCount()\r\n );\r\n }\r\n\r\n public get isLoaded(): Observable {\r\n if (!this.isLoadedValue) {\r\n this.isLoadedValue = this.loadFilters();\r\n }\r\n\r\n return this.isLoadedValue;\r\n }\r\n}","export enum EmailPreferenceLevelType {\r\n User = 0,\r\n Protocol = 2,\r\n Site = 3,\r\n}","import { dataMember, required, typedArray } from 'santee-dcts';\r\nimport { CategoryNaturalKey } from '../../documents';\r\nimport { EmailPreferenceLevelType } from './levels/email-preference-level-type';\r\nimport { Site } from '../../sites/site';\r\nimport { Protocol } from '../../admin/shared/protocol';\r\n\r\nexport class EmailPreferenceCategory {\r\n\r\n @dataMember()\r\n @required()\r\n public categoryId: CategoryNaturalKey;\r\n\r\n @dataMember()\r\n @required()\r\n public categoryName: string;\r\n}\r\n\r\nexport class Email {\r\n @dataMember()\r\n @required()\r\n public sitelinkUserEmailId?: string;\r\n\r\n @dataMember()\r\n @required()\r\n public emailAddress: string;\r\n\r\n @dataMember()\r\n @required()\r\n public isDefault: boolean;\r\n\r\n public toString() {\r\n return this.description;\r\n }\r\n\r\n public get description() {\r\n return this.isDefault ? `${this.emailAddress} (default)` : this.emailAddress;\r\n }\r\n}\r\n\r\nexport class EmailPreference {\r\n @dataMember()\r\n @required()\r\n public sitelinkEmailPrefId: string;\r\n\r\n @dataMember()\r\n @required()\r\n public sitelinkUserEmailId: string;\r\n\r\n @dataMember()\r\n @required()\r\n public categoryId: CategoryNaturalKey;\r\n\r\n @dataMember()\r\n @required()\r\n public levelIndicator: EmailPreferenceLevelType;\r\n\r\n @dataMember()\r\n @required()\r\n public prefValue: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public siteId: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public protocolId: number;\r\n}\r\n\r\nexport class EmailPreferenceReadModel {\r\n @dataMember()\r\n @required()\r\n public email: Email;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public site: Site;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public protocol: Protocol;\r\n\r\n @dataMember()\r\n @required()\r\n @typedArray(EmailPreference)\r\n public emailPreferences: EmailPreference[];\r\n}","export class EQueryAttachmentDownloadLink {\r\n constructor(\r\n public readonly shouldOpenInNewTab: boolean\r\n ) {}\r\n}","import { Moment } from 'moment';\r\nimport { CategoryNaturalKey } from './category';\r\n\r\nexport const enum DownloadLinkType {\r\n ByFile = 0,\r\n ByDate = 1,\r\n ByDocument = 3\r\n}\r\n\r\ninterface DownloadLink {\r\n linkType: DownloadLinkType;\r\n categoryNaturalKey: CategoryNaturalKey;\r\n}\r\n\r\nexport class LinkByFile implements DownloadLink {\r\n public readonly linkType = DownloadLinkType.ByFile;\r\n constructor(\r\n public readonly fileId: string,\r\n public readonly reportId: string,\r\n public readonly categoryNaturalKey: CategoryNaturalKey,\r\n ) {}\r\n\r\n public toQueryParamsObject(): { [key in keyof LinkByFile]?: string } {\r\n return {\r\n fileId: this.fileId,\r\n reportId: this.reportId,\r\n categoryNaturalKey: this.categoryNaturalKey,\r\n };\r\n }\r\n}\r\n\r\nexport class LinkByDate implements DownloadLink {\r\n public readonly linkType = DownloadLinkType.ByDate;\r\n constructor (\r\n public readonly categoryNaturalKey: CategoryNaturalKey,\r\n public readonly date: Moment,\r\n ) {}\r\n}\r\n\r\nexport class LinkByDocument implements DownloadLink {\r\n public readonly linkType = DownloadLinkType.ByDocument;\r\n constructor(\r\n public readonly categoryNaturalKey: CategoryNaturalKey,\r\n public readonly documentId: string,\r\n ) {}\r\n}\r\n\r\nexport type DlLink =\r\n | LinkByFile\r\n | LinkByDate\r\n | LinkByDocument\r\n ;","export * from './models';\r\nexport * from './readable';\r\n","import { Injectable } from '@angular/core';\r\nimport { Dictionary, map } from 'lodash';\r\nimport {TooltipItem} from './tooltip-item';\r\n\r\n@Injectable()\r\nexport class TooltipFormatter {\r\n private items: TooltipItem[] = [];\r\n\r\n public addTooltipItems(newItems: TooltipItem[]) : void {\r\n this.items = this.items.concat(newItems);\r\n }\r\n\r\n public addItems(newItems: Dictionary) : void {\r\n this.addTooltipItems(map(newItems, (value, key) => new TooltipItem(key, value)));\r\n }\r\n\r\n public clear(): void {\r\n this.items = [];\r\n }\r\n\r\n public getTooltipContent(): string {\r\n return `\r\n ${map(this.items, (value) => this.getRowContent(value)).join('')}\r\n
`;\r\n }\r\n\r\n private getRowContent(item: TooltipItem): string {\r\n return `\r\n ${this.escapeHtml(item.labelText)}: \r\n ${this.escapeHtml(item.contentText)}\r\n `;\r\n }\r\n\r\n private escapeHtml(unsafe: string): string {\r\n // escaping string based on Angular's escaping in the sanitizer (which is not public for us to call)\r\n return unsafe.replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"').replace(/'/g, ''');\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { FilterFieldValue } from '../covance-filter.models';\r\nimport { CovanceFilterBaseType } from './covance-filter-base-type';\r\nimport * as moment from 'moment';\r\nimport { isEmpty } from 'lodash';\r\n\r\n@Injectable()\r\nexport class CovanceFilterDateType extends CovanceFilterBaseType {\r\n constructor(router: Router, route: ActivatedRoute) {\r\n super(router, route);\r\n }\r\n\r\n public serializeValue(filterValue: any): string {\r\n return filterValue;\r\n }\r\n\r\n public isMatch(fieldVal: FilterFieldValue, value: any) {\r\n if (isEmpty(value)) {\r\n return false;\r\n }\r\n\r\n return this.formatDateTime(value) === fieldVal.queryParamValue;\r\n }\r\n\r\n public formatDateTime(value: moment.Moment): string {\r\n return moment.isMoment(value) ? value.format('YYYY-MM-DD') : '';\r\n }\r\n\r\n public setValue(fieldVal: FilterFieldValue) {\r\n fieldVal.value = fieldVal.queryParamValue;\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { LabTestResult } from '../lab-test-results/lab-test-result';\r\nimport { LinkParams } from '../covance-ag-grid';\r\nimport { StandardTestResultsItem } from '../on-screen-results/standard-test-results/standard-test-results.component';\r\n\r\nexport const LAB_TEST_RESULTS_LINK_BUILDER = new InjectionToken('LabTestResultLinkBuilder');\r\n\r\nexport interface LabTestResultsLinkBuilder {\r\n getAccessionNumberLink(lab: LabTestResult): LinkParams;\r\n getTestLink(lab: LabTestResult): LinkParams;\r\n getSubjectLink(params: StandardTestResultsItem): any[];\r\n}","export * from './grid-row-item';\r\nexport * from './report-flag';\r\nexport * from './microbiology-data/index';\r\nexport * from './osr-legend-generator';\r\nexport * from './standard-test-results/index';","import { InjectionToken } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { LabTestResult } from '../../lab-test-results';\r\n\r\nexport const SITE_LAB_RESULTS_STORAGE = new InjectionToken('SiteLabResultsStorageToken');\r\n\r\nexport interface SiteTestDataStorage {\r\n getData: Observable;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRoute, Router, Params } from '@angular/router';\r\nimport { NoneValueHelper } from '../../core/';\r\nimport { FilterFieldValue, FilterFieldType } from '../covance-filter.models';\r\nimport { isEmpty, isArray, forIn, uniq, min, max } from 'lodash';\r\nimport { CovanceFilterMultiSelectType } from './covance-filter-multiselect-type';\r\n\r\nexport type ChainNodeQueryValue = [string, string, string[]];\r\n\r\nexport enum PositionType {\r\n Pre,\r\n Post\r\n}\r\n\r\ninterface ParsedChainIndex {\r\n chainIndex?: number;\r\n}\r\n\r\n@Injectable()\r\nexport class CovanceFilterChainNodeType extends CovanceFilterMultiSelectType {\r\n constructor(router: Router, route: ActivatedRoute, noneValueHelper: NoneValueHelper) {\r\n super(router, route, noneValueHelper);\r\n }\r\n\r\n public tryParseChainIndex(value: string, result?: ParsedChainIndex): boolean {\r\n const parsed = parseInt(value, 10);\r\n\r\n if (isNaN(parsed)) {\r\n return false;\r\n }\r\n\r\n if (result) {\r\n result.chainIndex = parsed;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public parseQueryValue(rawValue: string): ChainNodeQueryValue | null {\r\n try {\r\n const [title, filteredFieldName, values] = JSON.parse(rawValue) as ChainNodeQueryValue;\r\n\r\n if (isEmpty(title) || isEmpty(filteredFieldName)) {\r\n return null;\r\n }\r\n\r\n return [title, filteredFieldName, isArray(values) ? values : []];\r\n } catch (e) {\r\n return null;\r\n }\r\n }\r\n\r\n public setValue(fieldVal: FilterFieldValue) {\r\n const chainNode = this.parseQueryValue(fieldVal.queryParamValue);\r\n\r\n if (!chainNode) {\r\n return;\r\n }\r\n\r\n const [, , values] = chainNode;\r\n\r\n fieldVal.value = values;\r\n }\r\n\r\n public setItems(fieldVal: FilterFieldValue, entities: any[]) {\r\n let data = fieldVal.def.getItems ? fieldVal.def.getItems(entities) :\r\n uniq(entities.map((entity: any) => entity[fieldVal.def.queryParam]));\r\n\r\n fieldVal.items = data;\r\n }\r\n\r\n public setQueryParamValue(fieldVal: FilterFieldValue) {\r\n fieldVal.queryParamValue = JSON.stringify([fieldVal.def.title, fieldVal.filteredFieldName, !isEmpty(fieldVal.value) ? fieldVal.value : []]);\r\n }\r\n\r\n public onFieldChange(fieldVal: FilterFieldValue) {\r\n const queryParams: Params = {};\r\n\r\n queryParams[fieldVal.def.queryParam] = this.encodeQueryParam(fieldVal.queryParamValue);\r\n\r\n forIn(this.route.snapshot.queryParams, (value: string, key: string) => {\r\n if (key !== fieldVal.def.queryParam) {\r\n queryParams[key] = value;\r\n }\r\n });\r\n\r\n this.router.navigate([], {\r\n queryParams: queryParams,\r\n relativeTo: this.route\r\n });\r\n }\r\n\r\n public onFieldAdd(fieldVal: FilterFieldValue, position: PositionType) {\r\n const queryParams: Params = {};\r\n const chainsIndexes: number[] = [];\r\n\r\n forIn(this.route.snapshot.queryParams, (paramValue: string, paramKey: string) => {\r\n queryParams[paramKey] = paramValue;\r\n\r\n const result: ParsedChainIndex = {};\r\n\r\n if (this.tryParseChainIndex(paramKey, result)) {\r\n chainsIndexes.push(result.chainIndex);\r\n }\r\n });\r\n\r\n let newChainIndex = null;\r\n\r\n if (position === PositionType.Pre) {\r\n newChainIndex = chainsIndexes.length === 0 ? 0 : min(chainsIndexes) - 1;\r\n } else if (position === PositionType.Post) {\r\n newChainIndex = chainsIndexes.length === 0 ? 0 : max(chainsIndexes) + 1;\r\n }\r\n\r\n if (newChainIndex === null) {\r\n return;\r\n }\r\n\r\n fieldVal.def.queryParam = newChainIndex.toString();\r\n queryParams[fieldVal.def.queryParam] = fieldVal.queryParamValue;\r\n\r\n this.router.navigate([], {\r\n queryParams: queryParams,\r\n relativeTo: this.route\r\n });\r\n }\r\n\r\n public createFilterFieldValue(queryParam: string, title: string, filteredFieldName: string): FilterFieldValue {\r\n const fieldVal: FilterFieldValue = {\r\n def: {\r\n title: title,\r\n queryParam: queryParam,\r\n type: FilterFieldType.ChainNode\r\n },\r\n filteredFieldName: filteredFieldName\r\n };\r\n\r\n return fieldVal;\r\n }\r\n\r\n public deleteFieldVal(fieldVal: FilterFieldValue) {\r\n const queryParams: Params = {};\r\n\r\n forIn(this.route.snapshot.queryParams, (value: string, key: string) => {\r\n if (key !== fieldVal.def.queryParam) {\r\n queryParams[key] = value;\r\n }\r\n });\r\n\r\n this.router.navigate([], {\r\n queryParams: queryParams,\r\n relativeTo: this.route\r\n });\r\n }\r\n\r\n public encodeQueryParam(queryParam: string): string | null {\r\n try {\r\n // Chrome: clip-path attribute doesn't work, when url() contains parenthesis. So, decode it manualy.\r\n return encodeURIComponent(queryParam).replace(/\\(/g, '%28').replace(/\\)/g, '%29');\r\n } catch (e) { }\r\n\r\n return null;\r\n }\r\n\r\n public decodeQueryParam(queryParam: string): string | null {\r\n try {\r\n return decodeURIComponent(queryParam);\r\n } catch (e) { }\r\n\r\n return null;\r\n }\r\n}\r\n","import { Component, Inject, InjectionToken, OnDestroy, ChangeDetectionStrategy, SecurityContext } from '@angular/core';\r\nimport { MdlDialogReference } from '@angular-mdl/core';\r\nimport { HttpClient, HttpResponse, HttpEventType, HttpEvent, HttpProgressEvent, HttpErrorResponse, } from '@angular/common/http';\r\nimport { Observable, BehaviorSubject, Subscription } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { DlLink } from '../../documents/models/dlLink';\r\nimport {EQueryAttachmentDownloadLink} from '../../e-queries/models/e-query-attachment-download-link';\r\nimport { SampleReportInfo } from '../../documents/models/sample-report-info';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\nexport const DL_LINKS_TOKEN = new InjectionToken('dl-links');\r\n\r\nexport interface DlTask {\r\n params: DlLink | DlLink[] | EQueryAttachmentDownloadLink;\r\n url: string;\r\n}\r\n\r\nconst enum DownloadState {\r\n Start,\r\n InProgress,\r\n NotFoundError,\r\n UnknownError,\r\n SuccessfullyCompleted\r\n}\r\n\r\ninterface DownloadProgress {\r\n loaded: number;\r\n}\r\n\r\n@Component({\r\n selector: 'download-dialog',\r\n styles: [require('./download-dialog.component.scss')],\r\n template: require('./download-dialog.component.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DownloadDialogComponent implements OnDestroy {\r\n private dlSubscription: Subscription;\r\n\r\n private readonly downloadState$ = new BehaviorSubject(DownloadState.Start);\r\n private readonly downloadProgress$ = new BehaviorSubject(null);\r\n\r\n private readonly shouldOpenInNewTab: boolean = false;\r\n\r\n public get isStateStart(): Observable {\r\n return this.downloadState$.pipe(map(state => state === DownloadState.Start));\r\n }\r\n\r\n public get isStateInProgress(): Observable {\r\n return this.downloadState$.pipe(map(state => state === DownloadState.InProgress));\r\n }\r\n\r\n public get isStateNotFoundError(): Observable {\r\n return this.downloadState$.pipe(map(state => state === DownloadState.NotFoundError));\r\n }\r\n\r\n public get isStateUnknownError(): Observable {\r\n return this.downloadState$.pipe(map(state => state === DownloadState.UnknownError));\r\n }\r\n\r\n public get downloadProgress(): Observable {\r\n return this.downloadProgress$;\r\n }\r\n\r\n public get closeButtonLabel(): Observable {\r\n return this.downloadState$.pipe(\r\n map(state =>\r\n state === DownloadState.NotFoundError || state === DownloadState.UnknownError\r\n ? 'Close'\r\n : 'Cancel')\r\n );\r\n }\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private dialog: MdlDialogReference,\r\n private sanitizer: DomSanitizer,\r\n @Inject(DL_LINKS_TOKEN) dlTask: DlTask\r\n ) {\r\n if (dlTask.params instanceof EQueryAttachmentDownloadLink && dlTask.params.shouldOpenInNewTab) {\r\n this.shouldOpenInNewTab = dlTask.params.shouldOpenInNewTab;\r\n }\r\n this.startDownloading(dlTask.url, dlTask.params);\r\n }\r\n\r\n public close() {\r\n this.dialog.hide(false);\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.dlSubscription.unsubscribe();\r\n this.downloadState$.complete();\r\n this.downloadProgress$.complete();\r\n }\r\n\r\n private startDownloading(url: string, data: DlLink | DlLink[] | EQueryAttachmentDownloadLink | SampleReportInfo) {\r\n this.dlSubscription = this.http\r\n .post(url, data, { observe: 'events', responseType: 'blob', reportProgress: true })\r\n .subscribe({\r\n next: this.handleDownloadHttpEvent,\r\n error: this.handleDownloadError\r\n });\r\n }\r\n\r\n private handleDownloadHttpEvent = (event: HttpEvent) => {\r\n switch (event.type) {\r\n case HttpEventType.DownloadProgress:\r\n this.handleDownloadProgress(event);\r\n break;\r\n case HttpEventType.Response:\r\n this.handleOkResponse(event);\r\n break;\r\n }\r\n }\r\n\r\n private handleOkResponse(response: HttpResponse) {\r\n if (!response.ok) {\r\n this.downloadState$.next(DownloadState.NotFoundError);\r\n return;\r\n }\r\n\r\n const link = document.createElement('a') as HTMLAnchorElement;\r\n\r\n const filename = this.getFileName(response);\r\n const contentType = this.getContentType(response);\r\n const myBlob = new Blob([response.body], { type: contentType });\r\n\r\n if (!myBlob.size) {\r\n this.downloadState$.next(DownloadState.NotFoundError);\r\n return;\r\n }\r\n\r\n if (window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(myBlob, filename);\r\n } else {\r\n const fileURL = URL.createObjectURL(myBlob);\r\n link.href = this.sanitizer.sanitize(SecurityContext.NONE, fileURL);\r\n\r\n if (this.shouldOpenInNewTab) {\r\n link.target = '_blank';\r\n } else {\r\n link.download = filename;\r\n }\r\n\r\n //Firefox requires the link to be added to the document\r\n document.body.appendChild(link);\r\n link.click();\r\n URL.revokeObjectURL(fileURL);\r\n document.body.removeChild(link);\r\n }\r\n\r\n this.downloadState$.next(DownloadState.SuccessfullyCompleted);\r\n this.dialog.hide(true);\r\n }\r\n\r\n private handleDownloadProgress(event: HttpProgressEvent) {\r\n this.downloadProgress$.next({ loaded: event.loaded });\r\n this.downloadState$.next(DownloadState.InProgress);\r\n }\r\n\r\n private handleDownloadError = (error: HttpErrorResponse) => {\r\n if (error.status === 404) {\r\n this.downloadState$.next(DownloadState.NotFoundError);\r\n return;\r\n }\r\n\r\n this.downloadState$.next(DownloadState.UnknownError);\r\n }\r\n\r\n private getFileName(response: HttpResponse) {\r\n const defaultFileName = 'unknown';\r\n const filenameHeader = response.headers.get('content-disposition');\r\n if (!filenameHeader) {\r\n return defaultFileName;\r\n }\r\n const fileName = filenameHeader.split('filename=')[1] || defaultFileName;\r\n return decodeURIComponent(fileName).replace(/\"/g, '');\r\n }\r\n\r\n private getContentType(response: HttpResponse) {\r\n return response.headers.get('content-type') || 'application/octet-stream';\r\n }\r\n}","import { Component, Inject, InjectionToken, HostListener, Optional, ChangeDetectionStrategy } from '@angular/core';\r\nimport { MdlDialogReference } from '@angular-mdl/core';\r\n\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { invalidValues } from '../invalid-values.validator';\r\nimport { Email } from './email';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { EMAIL_PREFERENCE_STORAGE_TOKEN, EmailPreferencesStorage } from './email-preferences-storage';\r\n\r\nexport const EMAIL = new InjectionToken('Email');\r\nexport const USER_PK = new InjectionToken('userPk');\r\n\r\n@Component({\r\n selector: 'email-address-form-dialog',\r\n template: require('./email-address-form-dialog.component.html'),\r\n styles: [require('./email-address-form-dialog.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class EmailAddressFormDialog {\r\n public initialEmailAddress: string;\r\n public control: FormControl;\r\n\r\n constructor(\r\n @Inject(EMAIL_PREFERENCE_STORAGE_TOKEN)private readonly emailPreferencesStorage: EmailPreferencesStorage,\r\n private readonly dialog: MdlDialogReference,\r\n @Optional() @Inject(EMAIL) private readonly email: Email,\r\n @Inject(USER_PK) private readonly userPk: number,\r\n ) {\r\n this.initialEmailAddress = email ? email.emailAddress : '';\r\n\r\n this.control = new FormControl(this.initialEmailAddress);\r\n\r\n emailPreferencesStorage.emailPreferences.pipe(\r\n filter(prefs => !!prefs),\r\n map(prefs => {\r\n const emailAddresses = prefs.map(x => x.email.emailAddress);\r\n this.control.setValidators([Validators.required, Validators.pattern(/^[\\w.-]*@[\\w.-]*\\.\\w+$/), invalidValues(emailAddresses)]);\r\n })).toPromise();\r\n this.control.updateValueAndValidity();\r\n this.control.markAsUntouched();\r\n }\r\n\r\n public async submit() {\r\n if (this.control.invalid) {\r\n return;\r\n }\r\n\r\n let newEmail: Email = new Email();\r\n\r\n if (this.email) {\r\n this.email.emailAddress = this.control.value;\r\n newEmail = this.email;\r\n } else {\r\n newEmail.emailAddress = this.control.value;\r\n newEmail.isDefault = false;\r\n }\r\n\r\n await this.saveEmail(newEmail);\r\n this.dialog.hide();\r\n }\r\n\r\n public cancel() {\r\n this.dialog.hide();\r\n }\r\n\r\n @HostListener('document:keydown.esc')\r\n public close() {\r\n this.dialog.hide();\r\n }\r\n\r\n private async saveEmail(email: Email) {\r\n await this.emailPreferencesStorage.saveOrUpdateEmail(email, this.userPk);\r\n }\r\n}","import { FormControl } from '@angular/forms';\r\n\r\nexport function invalidValues(validableValues: string[] ) {\r\n return (control: FormControl): { [key: string]: any } => {\r\n\r\n let isValid = true;\r\n if (validableValues) {\r\n isValid = !validableValues.some(e => e === control.value);\r\n }\r\n\r\n return !isValid ? { 'invalidValues': true }\r\n : null;\r\n };\r\n}","import { anyArray, dataMember, required } from 'santee-dcts';\r\nimport { deserializers } from '../../core/deserializers';\r\nimport { Moment } from 'moment';\r\n\r\nexport class ActivityReport {\r\n @dataMember({ customDeserializer: deserializers.deserializeDate })\r\n @required({ nullable: true })\r\n public postedDateTime: Moment;\r\n\r\n @dataMember({ customDeserializer: deserializers.deserializeDate })\r\n @required({ nullable: true })\r\n public accessDateTime: Moment;\r\n}\r\n\r\nexport class ActivityReportsReadModel {\r\n @dataMember()\r\n @required()\r\n @anyArray()\r\n public activityReports: ActivityReport[];\r\n}\r\n\r\n","import { Report } from './report';\r\nimport { comparators } from '../../core/comparators';\r\nimport { ActivityReport } from '../../shared/activity-report/activity-report';\r\nimport { AdminProtocolAccessReport } from '../../admin/activity-reports/report-types/admin-activity-report-protocol-access';\r\nimport { SponsorProtocolAccessReport } from '../../sponsor/activity-reports/report-types/sponsor-protocol-access-report';\r\n\r\nexport const defaultReportSort: (a: Report | ActivityReport, b: Report | ActivityReport) => number = (a, b) =>\r\n comparators.dateTimeComparator(b ? b.postedDateTime : null, a ? a.postedDateTime : null);\r\n\r\nexport const defaultProtocolAccessesSort: (a: AdminProtocolAccessReport | SponsorProtocolAccessReport, b: AdminProtocolAccessReport | SponsorProtocolAccessReport) => number = (a, b) => {\r\n const dateComparatorResult = comparators.stringComparator(a ? a.siteName : null, b ? b.siteName : null);\r\n if (dateComparatorResult === 0) {\r\n return comparators.dateTimeComparator(b ? b.accessGivenDate : null, a ? a.accessGivenDate : null);\r\n }\r\n\r\n return dateComparatorResult;\r\n};\r\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { AgFrameworkComponent } from 'ag-grid-angular/main';\r\nimport { ICellRendererParams } from 'ag-grid-community/main';\r\n\r\n@Component({\r\n selector: 'tooltip-cell',\r\n template: require('./cell-tooltip-ag-renderer.component.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CellTooltipAgRendererComponent implements AgFrameworkComponent {\r\n\r\n public value: any;\r\n\r\n public agInit(row: ICellRendererParams): void {\r\n this.value = row.value;\r\n }\r\n}","import { includes } from 'lodash';\r\nimport * as moment from 'moment';\r\n\r\nconst truthfulStrings = ['t', 'y'];\r\n\r\nexport const deserializers = {\r\n deserializeDate(value: string): moment.Moment {\r\n return value ? moment(value) : null;\r\n },\r\n deserializeUtc(value: string): moment.Moment {\r\n return value ? moment.parseZone(value) : null;\r\n },\r\n deserializeBooleanFlag(value: string): boolean {\r\n const valueLowerCase = (value || '').toLowerCase();\r\n return includes(truthfulStrings, valueLowerCase);\r\n }\r\n};","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { isEmpty, isNil, find } from 'lodash';\r\nimport { IHeaderGroupParams, RowNode } from 'ag-grid-community';\r\nimport { IHeaderGroupAngularComp } from 'ag-grid-angular';\r\nimport { LinkParams } from './link-ag-renderer.component';\r\n\r\ninterface HeaderGroup extends IHeaderGroupParams {\r\n node?: RowNode;\r\n}\r\n\r\n@Component({\r\n selector: 'header-group',\r\n template: require('./header-group-renderer.component.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class HeaderGroupRenderer implements IHeaderGroupAngularComp {\r\n public params: LinkParams;\r\n public groupTypeName: string;\r\n private count: number;\r\n\r\n public agInit(params: HeaderGroup) {\r\n const data = params.node.key;\r\n const rowGroupIndex = params.node.rowGroupIndex;\r\n const groupColumn = find(params.columnApi.getAllColumns(), (col) => col.getColDef().rowGroupIndex === rowGroupIndex);\r\n this.groupTypeName = groupColumn.getColDef().headerName;\r\n \r\n if (!isNil(data)) {\r\n const isLinkParams = !isNil(data.routerLink);\r\n if (isLinkParams) {\r\n this.params = data;\r\n } else {\r\n this.params = {\r\n routerLink: [],\r\n text: data\r\n };\r\n }\r\n\r\n this.count = params.node.allChildrenCount;\r\n }\r\n }\r\n\r\n public get isText() {\r\n return this.params && isEmpty(this.params.routerLink);\r\n }\r\n\r\n public get isLink() {\r\n return this.params && !isEmpty(this.params.routerLink);\r\n }\r\n\r\n public get title() {\r\n return this.params ? `${this.params.text} (${this.count})` : null;\r\n }\r\n}","import { Component, ChangeDetectionStrategy, ViewChild, ElementRef } from '@angular/core';\r\nimport { Column, BeanStub, Utils as _ } from 'ag-grid-community';\r\nimport { IHeaderAngularComp } from 'ag-grid-angular/main';\r\nimport { IHeaderParams } from 'ag-grid-community/main';\r\n\r\n@Component({\r\n selector: 'heade-tooltip',\r\n template: require('./header-tooltip-ag-renderer.component.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class HeaderTooltipAgRendererComponent extends BeanStub implements IHeaderAngularComp {\r\n\r\n public displayName: string;\r\n\r\n @ViewChild('eSortAsc')\r\n private eSortAsc: ElementRef;\r\n\r\n @ViewChild('eSortDesc')\r\n private eSortDesc: ElementRef;\r\n\r\n @ViewChild('eLabel')\r\n private eLabel: ElementRef;\r\n\r\n @ViewChild('eText')\r\n private eText: ElementRef;\r\n\r\n private params: IHeaderParams;\r\n\r\n public agInit(params: IHeaderParams): void {\r\n this.displayName = params.displayName;\r\n this.params = params;\r\n this.setupSort();\r\n }\r\n\r\n public setupSort(): void {\r\n let enableSorting = this.params.enableSorting;\r\n\r\n if (!enableSorting) {\r\n this.removeSorters();\r\n return;\r\n }\r\n\r\n if (this.eLabel) {\r\n this.eLabel.nativeElement.addEventListener('click', (event: MouseEvent) => {\r\n this.params.progressSort(event.shiftKey);\r\n });\r\n }\r\n\r\n this.addDestroyableEventListener(this.params.column, Column.EVENT_SORT_CHANGED, this.onSortChanged.bind(this));\r\n this.onSortChanged();\r\n }\r\n\r\n private onSortChanged(): void {\r\n _.addOrRemoveCssClass(this.eLabel.nativeElement, 'ag-header-cell-sorted-asc', this.params.column.isSortAscending());\r\n _.addOrRemoveCssClass(this.eLabel.nativeElement, 'ag-header-cell-sorted-desc', this.params.column.isSortDescending());\r\n _.addOrRemoveCssClass(this.eLabel.nativeElement, 'ag-header-cell-sorted-none', this.params.column.isSortNone());\r\n\r\n if (this.eSortAsc) {\r\n _.addOrRemoveCssClass(this.eSortAsc.nativeElement, 'ag-hidden', !this.params.column.isSortAscending());\r\n }\r\n\r\n if (this.eSortDesc) {\r\n _.addOrRemoveCssClass(this.eSortDesc.nativeElement, 'ag-hidden', !this.params.column.isSortDescending());\r\n }\r\n }\r\n\r\n private removeSorters() {\r\n const sorters = [this.eSortAsc.nativeElement, this.eSortDesc.nativeElement];\r\n sorters.forEach((el) => el.parentNode.removeChild(el));\r\n }\r\n}","import {dataMember, required} from 'santee-dcts';\r\n\r\nexport class UserSettings {\r\n @dataMember()\r\n @required()\r\n public preferredLanguageId: string;\r\n\r\n @dataMember()\r\n @required()\r\n public preferredUnits: string;\r\n}\r\n","import { dataMember, required } from 'santee-dcts';\r\nimport { UserSettings } from './user-settings';\r\nimport { UserMetadata } from './user-metadata';\r\nimport { AudienceRoleName } from '../authentication/audience-role';\r\n\r\nexport class User {\r\n\r\n public readonly investigatorRoleName: AudienceRoleName = 'Investigator';\r\n public readonly sponsorRoleName: AudienceRoleName = 'Sponsor';\r\n public readonly adminRoleName: AudienceRoleName = 'Admin';\r\n public readonly internalRoleName: AudienceRoleName = 'Internal';\r\n public readonly systemAdminRoleName: AudienceRoleName = 'System Admin';\r\n\r\n @dataMember()\r\n @required()\r\n public metadata: UserMetadata;\r\n\r\n @dataMember()\r\n @required()\r\n public settings: UserSettings;\r\n\r\n public get isSponsor() {\r\n return this.metadata.audienceRole === this.sponsorRoleName;\r\n }\r\n\r\n public get isInvestigator() {\r\n return this.metadata.audienceRole === this.investigatorRoleName;\r\n }\r\n\r\n public get isAdmin() {\r\n return this.metadata.audienceRole === this.adminRoleName;\r\n }\r\n\r\n public get isSystemAdmin() {\r\n return this.metadata.audienceRole === this.systemAdminRoleName;\r\n }\r\n\r\n public get isInternal() {\r\n return this.metadata.audienceRole === this.internalRoleName;\r\n }\r\n\r\n public get isSponsorOrInvestigator() {\r\n return this.isSponsor || this.isInvestigator;\r\n }\r\n\r\n public static notSupportedRoleError(): Error {\r\n return new Error('Role is not supported');\r\n }\r\n} ","import { Injectable } from '@angular/core';\r\nimport { isEmpty, isNil, find, findLast, chain } from 'lodash';\r\n\r\nimport { comparators } from '../../core/comparators';\r\nimport { LabTestResult } from '../../lab-test-results/lab-test-result';\r\nimport { LabTestResultGridRowItem } from '../grid-row-item';\r\nimport { StandardTestResultsItem } from './standard-test-results.component';\r\nimport { SubjectColumnParams } from './osr-subject-columns-renderer.component';\r\nimport { SubjectTitleRenderer } from '../../renderer/subject-title-renderer';\r\nimport { TestResult } from '../../lab-test-results/test-result';\r\nimport { TextListItem, TextListParams } from '../../covance-ag-grid';\r\nimport { TestResultsParams } from '../test-result-ag-renderer.component';\r\nimport { LabTestSortArgs } from '../../lab-test-results/lab-test-sort-info';\r\nimport { ICellRendererParams } from 'ag-grid-community/main';\r\n\r\ninterface ICellRendererParamsTyped extends ICellRendererParams {\r\n data: T;\r\n}\r\n\r\n@Injectable()\r\nexport class StandardTestResultHelpers {\r\n public getUnits(res: LabTestResult[], params: LabTestResultGridRowItem) {\r\n if (!params.data) {\r\n return null;\r\n }\r\n\r\n const labTestResults = this.getLabTestResults(res, params);\r\n const testWithUnit = findLast(labTestResults, (item: LabTestResult) => item.currentResult && item.currentResult.unit);\r\n\r\n return testWithUnit ? testWithUnit.currentResult.unit : '';\r\n }\r\n\r\n public getUnitsForTestResultExport(res: LabTestResult[], params: LabTestResultGridRowItem) {\r\n if (!params.data) {\r\n return null;\r\n }\r\n\r\n const labTestResults = this.getLabTestResultsForExport(res, params);\r\n const testWithUnit = findLast(labTestResults, (item: LabTestResult) => item.currentResult && item.currentResult.unit);\r\n\r\n return testWithUnit ? testWithUnit.currentResult.unit : '';\r\n }\r\n\r\n public getRangeRenderer(res: LabTestResult[], params: LabTestResultGridRowItem): string {\r\n if (!params || !params.node || !params.data) {\r\n return null;\r\n }\r\n if (params.node.group) {\r\n return '';\r\n }\r\n\r\n const labTestResults = this.getLabTestResults(res, params);\r\n const testWithResult = findLast(labTestResults, (item: LabTestResult) => item.currentResult && item.currentResult.range);\r\n\r\n return testWithResult ? testWithResult.currentResult.range : '';\r\n }\r\n\r\n public getRangeRendererForTestResultExport(res: LabTestResult[], params: LabTestResultGridRowItem): string {\r\n if (!params || !params.node || !params.data) {\r\n return null;\r\n }\r\n if (params.node.group) {\r\n return '';\r\n }\r\n\r\n const labTestResults = this.getLabTestResultsForExport(res, params);\r\n const testWithResult = findLast(labTestResults, (item: LabTestResult) => item.currentResult && item.currentResult.range);\r\n\r\n return testWithResult ? testWithResult.currentResult.range : '';\r\n }\r\n\r\n public getDataRevision(params: ICellRendererParamsTyped, hasDataRevision: (labTest: T) => boolean) {\r\n if (!params || !params.node || !params.data) {\r\n return '';\r\n }\r\n return hasDataRevision(params.data) ? 'R' : '';\r\n }\r\n\r\n public sortLabTestResultData(a: LabTestResult, b: LabTestResult) {\r\n if (!a && !b) {\r\n return 0;\r\n }\r\n if (!a) {\r\n return 1;\r\n }\r\n if (!b) {\r\n return -1;\r\n }\r\n \r\n let result = comparators.dateTimeComparator(b.visitCollectionDate, a.visitCollectionDate);\r\n\r\n if (result === 0) {\r\n result = comparators.numberComparator(a.accessionId, b.accessionId);\r\n\r\n if (result === 0) {\r\n result = comparators.stringComparator(a.testGroup, b.testGroup);\r\n\r\n if (result === 0) {\r\n result = comparators.numberComparator(a.testSequence, b.testSequence);\r\n\r\n if (result === 0) {\r\n const aLabTestResult = a.currentResult;\r\n const bLabTestResult = b.currentResult;\r\n if (aLabTestResult && bLabTestResult) {\r\n result = comparators.numberComparator(aLabTestResult.sequence, bLabTestResult.sequence);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n public getResultRenderer(getResult: (res: TestResult) => string) {\r\n const renderrer = (params: StandardTestResultsItem) => {\r\n if (params.node.group) {\r\n return '';\r\n }\r\n const labTestResult = find(params.data.labTestResults, res => res.currentResult !== null);\r\n if (!labTestResult) {\r\n return '';\r\n }\r\n\r\n if (!labTestResult.currentResult === null) {\r\n return '';\r\n }\r\n\r\n return getResult(labTestResult.currentResult);\r\n };\r\n return renderrer;\r\n }\r\n\r\n public commentsRenderer(x: { [index: string]: string }) {\r\n if (!x) {\r\n return null;\r\n }\r\n return new TextListParams(Object.keys(x).map(c => c.toUpperCase())\r\n .map(c => ({\r\n text: c,\r\n tooltip: c\r\n } as TextListItem)));\r\n }\r\n\r\n public getAdminQuestionRenderer(params: LabTestResultGridRowItem) {\r\n if (!params || !params.node || !params.data) {\r\n return '';\r\n }\r\n return params.data.isQuestion ? 'Y' : '';\r\n }\r\n\r\n public getDisplayValue(testResultsParams: TestResultsParams) {\r\n if (!testResultsParams || isEmpty(testResultsParams.labTestResults)) {\r\n return null;\r\n }\r\n const result = testResultsParams.labTestResults[0];\r\n return result.isCancelled ? null : result.displayValue;\r\n }\r\n\r\n public getCombinedLabTestResultsUniqKey(res: LabTestResult) {\r\n return res.ctSubjectId + ':'\r\n + res.uniqLabTestIdKey + ':'\r\n + res.accessionId + ':'\r\n + res.visitTestId + ':'\r\n + res.visitCollectionDateValue;\r\n }\r\n\r\n public sortSubjects(a: SubjectColumnParams, b: SubjectColumnParams): number {\r\n const valueAMissing = isNil(a);\r\n const valueBMissing = isNil(b);\r\n\r\n if (valueAMissing && valueBMissing) {\r\n return 0;\r\n }\r\n if (valueAMissing) {\r\n return -1;\r\n }\r\n if (valueBMissing) {\r\n return 1;\r\n }\r\n\r\n let result = comparators.stringComparator(a.subjectNumberAndInitials, b.subjectNumberAndInitials);\r\n if (result === 0) {\r\n result = comparators.stringComparator(a.screeningNumber, b.screeningNumber);\r\n if (result === 0) {\r\n result = comparators.numberComparator(a.age, b.age);\r\n if (result === 0) {\r\n result = comparators.stringComparator(a.gender, b.gender);\r\n if (result === 0) {\r\n result = comparators.numberComparator(a.exportSortId, b.exportSortId);\r\n }\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n public getSubjectInfo(params: StandardTestResultsItem, routerLink: any[]): SubjectColumnParams {\r\n const data = params.data;\r\n if (!data) {\r\n return null;\r\n }\r\n const subjectNumberAndInitials = SubjectTitleRenderer.renderTitle(params);\r\n const subjectInfo: string[] = [];\r\n if (!!subjectNumberAndInitials) {\r\n subjectInfo.push(subjectNumberAndInitials);\r\n if (subjectNumberAndInitials !== SubjectTitleRenderer.removedSubjectLabel) {\r\n if (!!data.screeningNumber) {\r\n subjectInfo.push(`(${data.screeningNumber})`);\r\n }\r\n if (!isNil(data.age) && !data.isAgeProject) {\r\n subjectInfo.push(`${data.age} ${data.ageUnit}`);\r\n }\r\n if (!isNil(data.ageProjectDisplayValue) && data.isAgeProject) {\r\n subjectInfo.push(`${data.ageProjectDisplayValue} `);\r\n }\r\n if (!!data.sex) {\r\n subjectInfo.push(data.sex);\r\n }\r\n }\r\n }\r\n\r\n const displayText = subjectInfo.join(' ');\r\n const result = {\r\n routerLink: routerLink,\r\n screeningNumber: data.screeningNumber,\r\n subjectNumberAndInitials: subjectNumberAndInitials,\r\n age: data.age,\r\n ageProjectDisplayValue: data.ageProjectDisplayValue,\r\n gender: data.sex,\r\n hasSubjectDataRevision: data.hasSubjectDataRevision,\r\n text: displayText,\r\n toString: () => displayText\r\n };\r\n return result;\r\n }\r\n\r\n private getLabTestResults(res: LabTestResult[], params: LabTestResultGridRowItem): LabTestResult[] {\r\n const testId = params.data.testId;\r\n const testGroup = params.data.testGroup;\r\n const uniqLabTestIdKey = params.data.uniqLabTestIdKey;\r\n\r\n if (!res || isNil(testId) || isNil(testGroup)) {\r\n return [];\r\n }\r\n\r\n const sortInfoArgs: LabTestSortArgs = ['testId', 'testGroup', 'visitCollectionDate'];\r\n const testResults = chain(res)\r\n .filter(item =>\r\n item.uniqLabTestIdKey === uniqLabTestIdKey &&\r\n item.testId === testId &&\r\n item.testGroup === testGroup &&\r\n item.currentResult !== null)\r\n .sortBy(sortInfoArgs)\r\n .value();\r\n\r\n return testResults || [];\r\n }\r\n\r\n private getLabTestResultsForExport(res: LabTestResult[], params: LabTestResultGridRowItem): LabTestResult[] {\r\n const testId = params.data.testId;\r\n const testGroup = params.data.testGroup;\r\n const uniqLabTestIdKey = params.data.uniqLabTestIdKey;\r\n const accessionId = params.data.accessionId;\r\n\r\n if (!res || isNil(testId) || isNil(testGroup)) {\r\n return [];\r\n }\r\n\r\n const sortInfoArgs: LabTestSortArgs = ['testId', 'testGroup', 'visitCollectionDate'];\r\n const testResults = chain(res)\r\n .filter(item =>\r\n item.uniqLabTestIdKey === uniqLabTestIdKey &&\r\n item.accessionId === accessionId &&\r\n item.testId === testId &&\r\n item.testGroup === testGroup &&\r\n item.currentResult !== null)\r\n .sortBy(sortInfoArgs)\r\n .value();\r\n\r\n return testResults || [];\r\n }\r\n}\r\n","export interface GroupingOptionItem {\r\n columnTitle: string;\r\n title?: string;\r\n}\r\n\r\nexport const groupingOptions = Object.freeze({\r\n none: { columnTitle: 'None' },\r\n visit: { columnTitle: 'Visit' },\r\n subject: {\r\n columnTitle: 'Subject',\r\n title: 'Subject'\r\n }\r\n});","import { Injectable } from '@angular/core';\r\nimport { AuthenticationState, AuthInfo } from '../../authentication/authentication-state';\r\nimport { ActivityLogger } from '../../activities/activity-logger';\r\nimport { Settings } from '../../core/settings';\r\nimport { MdlDialogService } from '@angular-mdl/core';\r\nimport { DL_LINKS_TOKEN, DownloadDialogComponent } from './download-dialog.component';\r\nimport { first, map, skipWhile } from 'rxjs/operators';\r\nimport { HttpParams } from '@angular/common/http';\r\nimport { DlLink, LinkByDate, LinkByDocument, LinkByFile } from '../../documents/models/dlLink';\r\nimport { SampleReportInfo } from '../../documents/models/sample-report-info';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\nexport type DocumentAction = 'print' | 'save' | 'documentFile' | 'documentLink' | 'categoryLink' | 'sample-report';\r\n\r\nexport const printDocumentAction: DocumentAction = 'print';\r\nexport const zipDocuments: DocumentAction = 'save';\r\nexport const downloadDocumentByLinkAction: DocumentAction = 'documentLink';\r\nexport const downloadCategoryDocumentsAction: DocumentAction = 'categoryLink';\r\n\r\n@Injectable()\r\nexport class DocumentDownloader {\r\n\r\n constructor(\r\n private authenticationState: AuthenticationState,\r\n private settings: Settings,\r\n private activityLogger: ActivityLogger,\r\n private sanitizer: DomSanitizer,\r\n private dialogService: MdlDialogService) {\r\n }\r\n\r\n public async downloadDocumentsByUrl(action: DocumentAction, dlLinks: DlLink[]) {\r\n this.activityLogger.logDownloadActivity(dlLinks);\r\n return this.showDialog(action, dlLinks);\r\n }\r\n\r\n public getVideoUrl(dlLink: LinkByFile) {\r\n this.activityLogger.logDownloadActivity([dlLink]);\r\n return this.authenticationState.authInfo\r\n .pipe(\r\n skipWhile((x: AuthInfo) => !x.isAuthenticated),\r\n first(),\r\n map(x => {\r\n const linkParams = dlLink.toQueryParamsObject();\r\n const params = new HttpParams({\r\n fromObject: {\r\n ...linkParams,\r\n 'ESA-Authentication': x.idToken.idToken\r\n }\r\n });\r\n return `${this.settings.apiUrl}/download/documentFile?${params.toString()}`;\r\n })\r\n ).toPromise();\r\n }\r\n\r\n public downloadCategoryDocuments(link: LinkByDate) {\r\n this.activityLogger.logDownloadActivity(link);\r\n return this.showDialog(downloadCategoryDocumentsAction, link);\r\n }\r\n\r\n public downloadDocumentLink(notificationData: LinkByDocument) {\r\n this.activityLogger.logDownloadActivity(notificationData);\r\n return this.showDialog(downloadDocumentByLinkAction, notificationData);\r\n }\r\n\r\n public async downloadDocumentByUrl(dlLink: LinkByFile) {\r\n this.activityLogger.logDownloadActivity(dlLink);\r\n return this.showDialog('documentFile', dlLink);\r\n }\r\n\r\n public async downloadSampleReportByUrl(dlLink: SampleReportInfo) {\r\n return this.showDialog('sample-report', dlLink);\r\n }\r\n\r\n private async showDialog(action: DocumentAction, params: DlLink | DlLink[] | SampleReportInfo): Promise {\r\n\r\n const mdlDialogReference = await this.dialogService.showCustomDialog({\r\n component: DownloadDialogComponent,\r\n providers: [\r\n {\r\n provide: DL_LINKS_TOKEN,\r\n useValue: { url: `${this.settings.apiUrl}/download/${action}`, params }\r\n }\r\n ],\r\n isModal: true\r\n })\r\n .toPromise();\r\n\r\n return await mdlDialogReference.onHide().toPromise();\r\n }\r\n}","import {Injectable} from '@angular/core';\r\n\r\n@Injectable()\r\nexport class MultilineFormatter {\r\n\r\n public format(value: string): string[] {\r\n return value ? value.toString().split(/\\r?\\n/) : [];\r\n }\r\n}","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class DataRevisionIndicator {\r\n\r\n public get subjectDataRevisionMessage() {\r\n return 'Subject data revision occurred';\r\n }\r\n\r\n public get visitDataRevisionMessage() {\r\n return 'Visit data revision occurred';\r\n }\r\n\r\n public get resultDataRevisionMessage() {\r\n return 'Result data revision occurred';\r\n }\r\n}","import { Settings } from '../core';\r\nimport { deserialize} from 'santee-dcts';\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { map, publishLast, refCount } from 'rxjs/operators';\r\nimport { Site } from './site';\r\nimport { SitesReadModel } from './sites-read.model';\r\nimport { Project } from '../admin/shared/project';\r\n\r\n@Injectable()\r\nexport class InvestigatorSitesStorage {\r\n private sitesValue: Observable = null;\r\n\r\n constructor(\r\n private settings: Settings,\r\n private http: HttpClient\r\n ) { }\r\n\r\n public saveSiteIsFavorite(site: Site) {\r\n return this.http\r\n .post(`${this.settings.apiUrl}/investigator/sites/${site.siteId}/favorite/`, { isFavorite: !site.isFavorite });\r\n }\r\n\r\n public loadSites(reload: boolean = false): Observable {\r\n if (!this.sitesValue || reload) {\r\n this.sitesValue = this.http\r\n .get(`${this.settings.apiUrl}/investigator/sites`)\r\n .pipe(\r\n map((rawStudies) => deserialize(rawStudies, SitesReadModel).sites),\r\n publishLast(),\r\n refCount()\r\n );\r\n }\r\n\r\n return this.sitesValue;\r\n }\r\n\r\n public getMultiSelectedProjectSites(projects: Project[]): Observable {\r\n const subProtocolIds = this.getSubProtocolIds(projects);\r\n\r\n return this.http.get(`${this.settings.apiUrl}/investigator/sites/allSelectedProjectsites`, { params: { subProtocolIds } })\r\n .pipe(map(sites => deserialize(sites, SitesReadModel).sites));\r\n }\r\n\r\n private getSubProtocolIds(projects: Project[]): string[] {\r\n let subProtocolIds: string[] = [];\r\n\r\n projects.forEach(project => {\r\n subProtocolIds.push(project.subProtocolId.toString());\r\n });\r\n\r\n return subProtocolIds;\r\n }\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { isEmpty } from 'lodash';\r\nimport { combineLatest } from 'rxjs';\r\nimport { first, map } from 'rxjs/operators';\r\nimport { LanguagesStore, Settings } from '../core';\r\nimport { UserStorage } from '../user/user-storage';\r\nimport { DocumentAction, DocumentDownloader } from '../shared/document-downloader/document-downloader';\r\nimport { DlLink, LinkByFile } from './models/dlLink';\r\nimport { Report } from './models/report';\r\nimport { ReadDocumentMarker } from './unread-reports-storage';\r\n\r\n@Injectable()\r\nexport class ReportDownloader {\r\n\r\n constructor(\r\n private settings: Settings,\r\n private http: HttpClient,\r\n private userStorage: UserStorage,\r\n private langStore: LanguagesStore,\r\n private documentDownloader: DocumentDownloader,\r\n ) { }\r\n\r\n public printReports(reports: Report[], readMarker: ReadDocumentMarker) {\r\n return this.getTheFiles('print', reports, readMarker);\r\n }\r\n\r\n public saveReports(reports: Report[], readMarker: ReadDocumentMarker) {\r\n return this.getTheFiles('save', reports, readMarker);\r\n }\r\n\r\n public getPreview(dlLink: DlLink) {\r\n const url = `${this.settings.apiUrl}/download/documentPreview`;\r\n return this.http.post(url, dlLink, { responseType: 'json' }).pipe(map(s => s.toString()));\r\n }\r\n\r\n private async getTheFiles(action: DocumentAction, reports: Report[], readMarker: ReadDocumentMarker) {\r\n if (isEmpty(reports)) {\r\n return;\r\n }\r\n\r\n const fileLinks = await this.getPrintOrSaveParams(reports);\r\n\r\n const success = await this.documentDownloader.downloadDocumentsByUrl(action, fileLinks);\r\n if (success) {\r\n return readMarker.markAsRead(reports);\r\n }\r\n }\r\n\r\n private getPrintOrSaveParams(reports: Report[]): Promise {\r\n\r\n return combineLatest(this.langStore.allLanguages, this.userStorage.currentUser)\r\n .pipe(\r\n map(([langs, user]) => {\r\n const lang = user.settings.preferredLanguageId;\r\n const defLangId = langs[0].languageRowId;\r\n const fileLinks = reports.map(r => {\r\n const fileLink = (r.fileLinks.find(f => f.languageId === lang) ||\r\n r.fileLinks.find(f => f.languageId === defLangId) ||\r\n r.fileLinks[0]);\r\n\r\n return new LinkByFile(\r\n fileLink ? fileLink.fileId : null,\r\n r.reportId,\r\n r.fileLinkCategory);\r\n });\r\n return fileLinks;\r\n }),\r\n first()\r\n )\r\n .toPromise();\r\n }\r\n}\r\n","import { dataMember, required, typedArray } from 'santee-dcts';\r\nimport * as moment from 'moment';\r\nimport { deserializers } from '../../core';\r\nimport { OnScreenResults } from '../on-screen-results';\r\nimport { isEmpty } from 'lodash';\r\n\r\nexport class MicrobiologyData extends OnScreenResults {\r\n\r\n @dataMember()\r\n public ctSubjectId: number;\r\n\r\n @dataMember()\r\n public accessionId: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public accessionNumber: string;\r\n\r\n @dataMember({ customDeserializer: deserializers.deserializeDate })\r\n @required({ nullable: true })\r\n public collectionDateTime: moment.Moment;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public testGroupName: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public testSequence: number;\r\n\r\n @dataMember()\r\n public growth: string;\r\n\r\n @dataMember()\r\n public specimen: string;\r\n\r\n @dataMember()\r\n public organism: string;\r\n\r\n @dataMember()\r\n public organismComment: string;\r\n\r\n @dataMember()\r\n public agent: string;\r\n\r\n @dataMember()\r\n public micResult: string;\r\n\r\n @dataMember()\r\n public micPanelInterpretation: string;\r\n\r\n @dataMember()\r\n public kirbyBauerPanelZone: string;\r\n\r\n @dataMember()\r\n public kirbyBauerInterpretation: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public invalidKbPanelMessage: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public invalidMicPanelMessage: string;\r\n\r\n @dataMember()\r\n public test: string;\r\n\r\n @dataMember({ customDeserializer: deserializers.deserializeDate })\r\n @required({ nullable: true })\r\n public testCollectionDateTime: moment.Moment;\r\n\r\n @dataMember()\r\n public testAccessionId: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public result: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public sequence: number;\r\n\r\n @dataMember()\r\n public referenceRange: string;\r\n\r\n @dataMember()\r\n public observations: string;\r\n\r\n @dataMember()\r\n public finalReport: string;\r\n\r\n @dataMember()\r\n public type: string;\r\n\r\n @dataMember()\r\n public kitTypeDescription: string;\r\n\r\n @dataMember()\r\n public testDescription: string;\r\n\r\n @dataMember()\r\n public isSubTestCancelled: boolean;\r\n\r\n @dataMember()\r\n public subTestCancellationReason: string;\r\n\r\n @dataMember()\r\n public panel: string;\r\n\r\n @dataMember()\r\n public hasSubjectDataRevision: boolean;\r\n\r\n @dataMember()\r\n public hasVisitDataRevision: boolean;\r\n\r\n @dataMember()\r\n public hasSpecimenResultDataRevision: boolean;\r\n\r\n @dataMember()\r\n public hasOrganismResultDataRevision: boolean;\r\n\r\n @dataMember()\r\n public hasGrowthResultDataRevision: boolean;\r\n\r\n @dataMember()\r\n public hasTestResultDataRevision: boolean;\r\n\r\n @dataMember()\r\n public hasMicPanelResultDataRevision: boolean;\r\n\r\n @dataMember()\r\n public hasMicPanelInterpretationDataRevision: boolean;\r\n\r\n @dataMember()\r\n public hasKbPanelResultDataRevision: boolean;\r\n\r\n @dataMember()\r\n public hasKbPanelInterpretationDataRevision: boolean;\r\n\r\n @dataMember()\r\n public units: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public isSubGroupCancelled: boolean;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public subGroupCancellationReason: string;\r\n\r\n public get uniqMicroDataKey(): string {\r\n return `${this.agent} : ${this.panel}`;\r\n }\r\n\r\n public get visitColumnKey(): string {\r\n return `${this.collectionDateTime} : ${this.accessionId}`;\r\n }\r\n\r\n public get testCollectionKey(): string {\r\n return `${this.testCollectionDateTime} : ${this.testAccessionId}`;\r\n }\r\n\r\n public get fullOrganismTitle() {\r\n const data: string[] = [];\r\n\r\n if (!isEmpty(this.organism)) {\r\n data.push(this.organism);\r\n }\r\n\r\n if (!isEmpty(this.organismComment)) {\r\n data.push(`(${this.organismComment})`);\r\n }\r\n\r\n return data.join(' ');\r\n }\r\n\r\n public setPanel(panel: string) {\r\n this.panel = panel;\r\n }\r\n\r\n public get isSubCancelled(): boolean {\r\n return this.isSubTestCancelled || this.isSubGroupCancelled;\r\n }\r\n\r\n public get subCancellationReason(): string {\r\n\r\n if (this.isSubGroupCancelled) {\r\n return `Test group cancelled: ${this.subGroupCancellationReason}`;\r\n } else if (this.isSubTestCancelled) {\r\n return `Test cancelled: ${this.subTestCancellationReason}`;\r\n }\r\n\r\n return '';\r\n }\r\n}\r\n\r\nexport class MicrobiologyDataReadModel {\r\n @dataMember()\r\n @required()\r\n @typedArray(MicrobiologyData)\r\n public results: MicrobiologyData[];\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, combineLatest, of } from 'rxjs';\r\nimport { map, flatMap, switchAll } from 'rxjs/operators';\r\nimport { deserialize } from 'santee-dcts';\r\nimport { Settings } from '../../core/settings';\r\nimport { MicrobiologyData, MicrobiologyDataReadModel } from './microbiology-data';\r\nimport { Site } from '../../sites/site';\r\nimport { Subject } from '../../subjects/subject';\r\n\r\n@Injectable()\r\nexport class MicrobiologyStorage {\r\n\r\n constructor(\r\n private settings: Settings,\r\n private http: HttpClient\r\n ) {\r\n }\r\n\r\n public get dataDict(): { [microBiologyCategory: string]: (selectedSiteId: Observable) => Observable } {\r\n return {\r\n 'isolate-culture-data': (selectedSiteId: Observable) => this.getMicrobiologyForSite(selectedSiteId),\r\n };\r\n }\r\n\r\n public get dataDictPivot(): { [microBiologyCategory: string]: (selectedSite: Observable, selectedSubject: Observable) => Observable } {\r\n return {\r\n 'microbiology-pivot': (selectedSite: Observable, selectedSubject: Observable) => this.getMicrobiologyIsolateCultureForSubject(selectedSite, selectedSubject)\r\n };\r\n }\r\n\r\n public getMicrobiologyForSite(selectedSiteId: Observable): Observable {\r\n return selectedSiteId\r\n .pipe(\r\n map((siteId: number) =>\r\n this.http.get(`${this.settings.apiUrl}/sites/${siteId}/microbiology`)\r\n .pipe(map((response) =>\r\n deserialize(response, MicrobiologyDataReadModel).results))),\r\n flatMap((x) => of(of(null), x)),\r\n switchAll());\r\n }\r\n\r\n public getMicrobiologyIsolateCultureForSubject(selectedSite: Observable, selectedCtSubject: Observable): Observable {\r\n return combineLatest(\r\n selectedSite,\r\n selectedCtSubject\r\n ).pipe(\r\n map(([site, ctSubject]: [Site, Subject]) =>\r\n this.http.get(\r\n `${this.settings.apiUrl}/sites/${site.siteId}/subjects/${ctSubject.ctSubjectId}/microbiology`)\r\n .pipe(map((response) =>\r\n deserialize(response, MicrobiologyDataReadModel).results))),\r\n flatMap((x) => of(of(null), x)),\r\n switchAll());\r\n }\r\n}","import { IMdlCustomDialogConfiguration, MdlDialogService } from '@angular-mdl/core';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, OnDestroy } from '@angular/core';\r\nimport { AgRendererComponent } from 'ag-grid-angular/main';\r\nimport { ICellRendererParams } from 'ag-grid-community/main';\r\nimport { orderBy } from 'lodash';\r\nimport { combineLatest, Subscription } from 'rxjs';\r\n\r\nimport { LanguagesStore, Settings } from '../../core';\r\nimport { ELearningOpener } from '../../e-learning/e-learning-opener';\r\nimport { UserStorage } from '../../user/user-storage';\r\nimport { DocumentDownloader } from '../../shared/document-downloader/document-downloader';\r\nimport { Category } from '../models/category';\r\nimport { LinkByFile } from '../models/dlLink';\r\nimport { DocumentsCounterBase } from '../models/documents-counter';\r\nimport { UnreadReportsStorage, UNREAD_REPORTS_STORAGE } from '../unread-reports-storage';\r\nimport { FileLink, Report } from './../models/report';\r\nimport { PlayVideoDialogComponent, VideoDialogParameters, VIDEO_DIALOG_PARAMETERS } from './play-video-dialog.component';\r\nimport { PreviewDialogComponent, PREVIEW_TOKEN } from './preview-dialog.component';\r\n\r\nexport interface LanguageLinkParams {\r\n isLanguageSelectionDisabled: boolean;\r\n}\r\n\r\ntype GridRow = {\r\n data: Report,\r\n api: {\r\n redrawRows: () => void\r\n },\r\n};\r\n\r\n@Component({\r\n selector: 'language-link-cell',\r\n template: require('./language-link-ag-renderer.component.html'),\r\n styles: [require('./language-link-ag-renderer.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LanguageLinkAgRendererComponent implements AgRendererComponent, OnDestroy {\r\n public languages: FileLink[] = [];\r\n public preferredLanguage: FileLink;\r\n public isLanguageSelectionDisabled: boolean;\r\n public isPreviewAvailable: boolean;\r\n\r\n public get hasData() {\r\n return this.row && this.row.data;\r\n }\r\n\r\n private subscription: Subscription;\r\n private report: Report;\r\n private row: GridRow;\r\n\r\n constructor(\r\n private userStorage: UserStorage,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n @Inject(UNREAD_REPORTS_STORAGE) private unreadReportsRegistry: UnreadReportsStorage,\r\n private languagesStore: LanguagesStore,\r\n private documentDownloader: DocumentDownloader,\r\n private dialogService: MdlDialogService,\r\n private settings: Settings,\r\n private readonly eLearningOpener: ELearningOpener\r\n ) {\r\n this.preferredLanguage = new FileLink();\r\n this.preferredLanguage.fileId = '';\r\n this.preferredLanguage.language = '';\r\n this.preferredLanguage.fileName = '';\r\n }\r\n\r\n public refresh() {\r\n return false;\r\n }\r\n\r\n public agInit(row: ICellRendererParams): void {\r\n if (!row.data) {\r\n return;\r\n }\r\n this.isLanguageSelectionDisabled = row.value && row.value.isLanguageSelectionDisabled;\r\n\r\n this.subscription = combineLatest(this.languagesStore.orderLanguage, this.userStorage.currentUser)\r\n .subscribe(([orderFunc, u]) => {\r\n\r\n this.row = row;\r\n this.report = row.data as Report;\r\n this.languages = orderBy(this.report.fileLinks, orderFunc) || [];\r\n this.preferredLanguage = (this.languages.length > 1) ?\r\n this.languages.find(l => l.languageId === u.settings.preferredLanguageId) || this.languages[0]\r\n : this.languages[0];\r\n this.isPreviewAvailable = this.report.isPreviewAvailable;\r\n this.changeDetectorRef.markForCheck();\r\n });\r\n }\r\n\r\n public ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n public previewDocument(event: Event) {\r\n event.stopPropagation();\r\n\r\n const dlLink = new LinkByFile(\r\n this.preferredLanguage.fileId,\r\n this.report.reportId,\r\n this.report.fileLinkCategory\r\n );\r\n\r\n const configDialog: IMdlCustomDialogConfiguration = {\r\n component: PreviewDialogComponent,\r\n providers: [{\r\n provide: PREVIEW_TOKEN, useValue: dlLink\r\n }],\r\n isModal: true,\r\n clickOutsideToClose: true\r\n };\r\n\r\n this.dialogService.showCustomDialog(configDialog);\r\n }\r\n\r\n public async onLinkClick(fileLink: FileLink) {\r\n const dlLink = new LinkByFile(\r\n fileLink.fileId,\r\n this.report.reportId,\r\n this.report.fileLinkCategory\r\n );\r\n\r\n const fileExtension = `.${fileLink.fileName.split('.').pop()}`.toLowerCase();\r\n const isPlayableVideoFile = this.settings.playableVideoFileExtensions.some(e => e.toLowerCase() === fileExtension);\r\n\r\n if (isPlayableVideoFile) {\r\n await this.openPlayVideoDialog(dlLink);\r\n } else if (Category.isELearningCategory(dlLink.categoryNaturalKey)) {\r\n await this.openELearning(dlLink);\r\n } else {\r\n await this.downloadFile(dlLink);\r\n }\r\n }\r\n\r\n private async openPlayVideoDialog(dlLink: LinkByFile) {\r\n const url = await this.documentDownloader.getVideoUrl(dlLink);\r\n if (url) {\r\n await this.dialogService.showCustomDialog({\r\n component: PlayVideoDialogComponent,\r\n providers: [{\r\n provide: VIDEO_DIALOG_PARAMETERS,\r\n useValue: {\r\n videoUrl: url,\r\n videoLoaded: () => this.markAsRead()\r\n } as VideoDialogParameters\r\n }],\r\n isModal: true,\r\n clickOutsideToClose: true\r\n });\r\n\r\n }\r\n }\r\n\r\n private async openELearning(dlLink: LinkByFile) {\r\n const success = await this.eLearningOpener.open(dlLink);\r\n if (success) {\r\n await this.markAsRead();\r\n this.refreshView();\r\n }\r\n }\r\n\r\n private async downloadFile(dlLink: LinkByFile) {\r\n const success = await this.documentDownloader.downloadDocumentByUrl(dlLink);\r\n\r\n if (success) {\r\n await this.markAsRead();\r\n this.refreshView();\r\n }\r\n }\r\n\r\n private async markAsRead() {\r\n await this.unreadReportsRegistry.markAsRead([this.report]);\r\n }\r\n\r\n private refreshView() {\r\n this.row.api.redrawRows();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Settings } from '../../core';\r\ndeclare const pendo: any;\r\n\r\nexport interface VisitorInfo {\r\n id: string ;\r\n role: string;\r\n}\r\n\r\nexport interface AccountInfo {\r\n id?: string| number;\r\n sponsor?: string;\r\n site?: string;\r\n siteNumber?: string;\r\n city?: string;\r\n state?: string;\r\n region?: string;\r\n}\r\n\r\n@Injectable()\r\nexport class PendoService {\r\n\r\n private visitorInfo: VisitorInfo;\r\n\r\n constructor(private settings: Settings) {\r\n }\r\n\r\n public pendoInitialization(userInfo: any, blsApiKey: string) {\r\n if (this.settings.emulatedUserId || !blsApiKey) { return; }\r\n this.setPendoScript(window, blsApiKey);\r\n const pendoInitObj: { visitor: VisitorInfo, account: AccountInfo } = {\r\n visitor: {\r\n id: userInfo.email,\r\n role: userInfo.audienceRole,\r\n },\r\n account: null\r\n };\r\n this.visitorInfo = pendoInitObj.visitor;\r\n pendo.initialize(pendoInitObj);\r\n }\r\n\r\n public updateSponsorPendoDetails(studyCard: any) {\r\n if (this.settings.emulatedUserId) { return; }\r\n const pendoInitObj: { visitor: VisitorInfo, account: AccountInfo } = {\r\n visitor: this.visitorInfo,\r\n account: {\r\n id: studyCard.protocolId,\r\n sponsor: studyCard.sponsorName,\r\n }\r\n };\r\n pendo.updateOptions(pendoInitObj);\r\n }\r\n\r\n public updateInvestigatorPendoDetails(site: any) {\r\n if (this.settings.emulatedUserId) { return; }\r\n const pendoInitObj: { visitor: VisitorInfo, account: AccountInfo } = {\r\n visitor: this.visitorInfo,\r\n account: {\r\n id: site.siteId,\r\n sponsor: site.study.sponsor,\r\n site: site.investigatorFullName,\r\n siteNumber: site.siteNum,\r\n }\r\n };\r\n pendo.updateOptions(pendoInitObj);\r\n }\r\n\r\n private setPendoScript(pendoRef: any, apiKey: string) {\r\n let pendoActions = ['initialize', 'identify', 'updateOptions', 'pageLoad', 'track'];\r\n const windowPendoRef: any = pendoRef['pendo'] = pendoRef['pendo'] || {};\r\n windowPendoRef._q = windowPendoRef._q || [];\r\n let index: number;\r\n let count: number;\r\n for (index = 0, count = pendoActions.length; index < count; ++index) {\r\n (function (action: string) {\r\n windowPendoRef[action] = windowPendoRef[action] || function () {\r\n windowPendoRef._q[action === pendoActions[0] ? 'unshift' : 'push']([action].concat([].slice.call(arguments, 0)));\r\n };\r\n })(pendoActions[index]);\r\n }\r\n let htmlElement: any = document.createElement('script');\r\n htmlElement.async = true;\r\n htmlElement.src = 'https://cdn.pendo.io/agent/static/' + apiKey + '/pendo.js';\r\n let element: Element = document.getElementsByTagName('script')[0];\r\n element.parentNode.insertBefore(htmlElement, element);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { differenceBy, includes, intersectionBy, isEmpty, isNil, some } from 'lodash';\r\nimport { NoneValueHelper } from '../../core/';\r\nimport { FilterFieldValue } from '../covance-filter.models';\r\nimport { CovanceFilterSelectType } from './covance-filter-select-type';\r\n\r\n@Injectable()\r\nexport class CovanceFilterMultiSelectType extends CovanceFilterSelectType {\r\n constructor(router: Router, route: ActivatedRoute, private noneValueHelper: NoneValueHelper) {\r\n super(router, route);\r\n }\r\n\r\n public isMatch(fieldVal: FilterFieldValue, value: any) {\r\n if (isEmpty(fieldVal.value)) {\r\n return true;\r\n }\r\n\r\n if (this.noneValueHelper.isNone(value)) {\r\n return some(fieldVal.value, m => this.noneValueHelper.isNone(m));\r\n }\r\n\r\n const filterValues = fieldVal.value.map((m: string) => m ? m.toLowerCase() : m);\r\n return includes(filterValues, value ? value.toLowerCase() : value);\r\n }\r\n\r\n public serializeValue(filterValue: any): string {\r\n return filterValue\r\n ? (filterValue as any[]).map(v => v.value || v.toString()).join(', ')\r\n : '';\r\n }\r\n\r\n public setValue(fieldVal: FilterFieldValue) {\r\n try {\r\n const queryParams: any[] = fieldVal.queryParamValue ? JSON.parse(fieldVal.queryParamValue) : null;\r\n if (!isEmpty(queryParams)) {\r\n fieldVal.value = intersectionBy(fieldVal.items, queryParams, (x: any) => this.getItemVal(x));\r\n const missingItems = differenceBy(queryParams, fieldVal.value, (x: any) => this.getItemVal(x));\r\n if (!isEmpty(missingItems) && !fieldVal.def.skipMissingItems) {\r\n fieldVal.value.push(...missingItems);\r\n }\r\n } else {\r\n fieldVal.value = null;\r\n }\r\n\r\n this.addSelectedValueToSource(fieldVal);\r\n } catch (error) {\r\n fieldVal.queryParamValue = null;\r\n }\r\n }\r\n\r\n public setItems(fieldVal: FilterFieldValue, entities: any[]) {\r\n super.setItems(fieldVal, entities);\r\n this.setValue(fieldVal);\r\n }\r\n\r\n public setQueryParamValue(fieldVal: FilterFieldValue) {\r\n fieldVal.queryParamValue = !isEmpty(fieldVal.value) ? JSON.stringify(fieldVal.value.map((v: any) => this.getItemVal(v))) : null;\r\n }\r\n\r\n protected addSelectedValueToSource(fieldVal: FilterFieldValue) {\r\n if (isNil(fieldVal.value)) {\r\n this.sortItems(fieldVal);\r\n return;\r\n }\r\n if (isEmpty(fieldVal.items)) {\r\n fieldVal.items = [...fieldVal.value];\r\n } else {\r\n const missingItems = fieldVal.value.filter((p: any) => !fieldVal.items.find((i: any) => this.getItemVal(i) === this.getItemVal(p)));\r\n if (!isEmpty(missingItems)) {\r\n fieldVal.items.push(...missingItems);\r\n }\r\n }\r\n\r\n this.sortItems(fieldVal);\r\n }\r\n\r\n private getItemVal(item: any) {\r\n if (!item) {\r\n return null;\r\n }\r\n return item.key || item;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { FilterFieldValue } from '../covance-filter.models';\r\nimport { CovanceFilterBaseType } from './covance-filter-base-type';\r\nimport { isEmpty, isNil, includes, uniqBy } from 'lodash';\r\n\r\n@Injectable()\r\nexport class CovanceFilterSelectType extends CovanceFilterBaseType {\r\n constructor(router: Router, route: ActivatedRoute) {\r\n super(router, route);\r\n }\r\n\r\n public serializeValue(filterValue: any): string {\r\n return filterValue\r\n ? filterValue.value || filterValue.toString()\r\n : '';\r\n }\r\n\r\n public isMatch(fieldVal: FilterFieldValue, value: any) {\r\n return value === fieldVal.queryParamValue;\r\n }\r\n\r\n public setValue(fieldVal: FilterFieldValue) {\r\n if (isEmpty(fieldVal.items)) {\r\n return;\r\n }\r\n fieldVal.value = fieldVal.items.find((item: any) => { return (item && item.key) === fieldVal.queryParamValue; }) || fieldVal.queryParamValue || null;\r\n\r\n this.addSelectedValueToSource(fieldVal);\r\n }\r\n\r\n public setItems(fieldVal: FilterFieldValue, entities: any[]) {\r\n let data = fieldVal.def.getItems\r\n ? fieldVal.def.getItems(entities)\r\n : uniqBy(\r\n entities.map(entity => {\r\n const item = entity[fieldVal.def.queryParam];\r\n\r\n return item;\r\n }), \r\n item => item && item.key || item);\r\n fieldVal.items = data;\r\n this.addSelectedValueToSource(fieldVal);\r\n this.changes.next(true);\r\n this.setValue(fieldVal);\r\n }\r\n\r\n\r\n public setQueryParamValue(fieldVal: FilterFieldValue) {\r\n fieldVal.queryParamValue = !isEmpty(fieldVal.value) ? fieldVal.value.key || fieldVal.value : null;\r\n }\r\n\r\n protected addSelectedValueToSource(fieldVal: FilterFieldValue) {\r\n if (isNil(fieldVal.value) || isEmpty(fieldVal.value)) {\r\n this.sortItems(fieldVal);\r\n return;\r\n }\r\n\r\n if (!fieldVal.items) {\r\n fieldVal.items.source = [fieldVal.value];\r\n } else {\r\n if (!includes(fieldVal.items, fieldVal.value)) {\r\n fieldVal.items.push(fieldVal.value);\r\n }\r\n }\r\n\r\n this.sortItems(fieldVal);\r\n }\r\n\r\n protected sortItems(fieldVal: FilterFieldValue) {\r\n if (!fieldVal.items) {\r\n return;\r\n }\r\n\r\n if (fieldVal.def.compare) {\r\n fieldVal.items.sort(fieldVal.def.compare);\r\n } else {\r\n fieldVal.items.sort();\r\n }\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { FilterFieldValue, FilterNumberRangeValue } from '../covance-filter.models';\r\nimport { CovanceFilterBaseType } from './covance-filter-base-type';\r\nimport { isNil } from 'lodash';\r\n\r\n@Injectable()\r\nexport class CovanceFilterNumberRangeType extends CovanceFilterBaseType {\r\n private readonly separator = 'To';\r\n private readonly numberPattern = '\\\\s*-?[0-9]+(\\\\.[0-9]*)?\\\\s*';\r\n private readonly numberRegExp = new RegExp(`^(${this.numberPattern})$`);\r\n private readonly minRegExp = new RegExp(`^(${this.numberPattern})${this.separator}`);\r\n private readonly maxRegExp = new RegExp(`${this.separator}(${this.numberPattern})$`);\r\n\r\n constructor(router: Router, route: ActivatedRoute) {\r\n super(router, route);\r\n }\r\n\r\n public serializeValue(filterValue: any): string {\r\n return filterValue\r\n ? `From ${filterValue.min || ' - '} To ${filterValue.max || ' - '}`\r\n : '';\r\n }\r\n\r\n public isMatch(fieldVal: FilterFieldValue, value: any) {\r\n const range = fieldVal.value as FilterNumberRangeValue;\r\n\r\n return this.isMatchByRange(range, value);\r\n }\r\n\r\n public isMatchByRange(range: FilterNumberRangeValue, value: any) {\r\n if (range.min == null && range.max == null) {\r\n return true;\r\n }\r\n\r\n if (!this.isNumber(value)) {\r\n return false;\r\n }\r\n\r\n const numberValue = +value;\r\n return (range.min == null || numberValue >= range.min) && (range.max == null || numberValue <= range.max);\r\n }\r\n\r\n public setValue(fieldVal: FilterFieldValue) {\r\n if (!fieldVal.value || !fieldVal.queryParamValue) {\r\n fieldVal.value = {\r\n min: null,\r\n max: null\r\n } as FilterNumberRangeValue;\r\n }\r\n\r\n const matchMin = this.minRegExp.exec(fieldVal.queryParamValue);\r\n if (matchMin) {\r\n fieldVal.value.min = +matchMin[1];\r\n }\r\n\r\n const matchMax = this.maxRegExp.exec(fieldVal.queryParamValue);\r\n if (matchMax) {\r\n fieldVal.value.max = +matchMax[1];\r\n }\r\n }\r\n\r\n public setQueryParamValue(fieldVal: FilterFieldValue) {\r\n const filterValue = fieldVal.value as FilterNumberRangeValue;\r\n fieldVal.queryParamValue = (this.isNumber(filterValue.min) || this.isNumber(filterValue.max)) ?\r\n `${(this.isNumber(filterValue.min) ? filterValue.min : '')}${this.separator}${(this.isNumber(filterValue.max) ? filterValue.max : '')}` : '';\r\n }\r\n\r\n public isNumber(value: any): boolean {\r\n return !!this.numberRegExp.exec(value);\r\n }\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { sortBy } from 'lodash';\r\nimport { Observable } from 'rxjs';\r\nimport { flatMap, map } from 'rxjs/operators';\r\nimport { deserialize } from 'santee-dcts';\r\nimport { Settings } from '../core/settings';\r\nimport { Site } from '../sites/site';\r\nimport { SubjectsReadModel } from './subject';\r\n\r\n@Injectable()\r\nexport class SubjectsStorage {\r\n\r\n public lastVisitedZcSubjectId: string;\r\n\r\n constructor(\r\n private settings: Settings,\r\n private http: HttpClient,\r\n ) {\r\n }\r\n\r\n public getSubjects(selectedSite: Observable) {\r\n return selectedSite\r\n .pipe(\r\n flatMap((site: Site) => this.http\r\n .get(`${this.settings.apiUrl}/site/${site.siteId}/subjects`)),\r\n map((response) => {\r\n const result = deserialize(response, SubjectsReadModel).subjects;\r\n return sortBy(result, subject => subject.subjectNumber);\r\n }));\r\n }\r\n}","export * from './lab-test-results.module';\r\nexport * from './lab-test-result';\r\nexport * from './lab-results-storage';\r\nexport * from './test-result';\r\nexport * from './unit-option';\r\nexport * from './lab-test-sort-info';","import { dataMember, required, typedArray } from 'santee-dcts';\r\nimport * as moment from 'moment';\r\nimport { isEmpty, some, isNil } from 'lodash';\r\nimport { deserializers } from '../core/deserializers';\r\nimport { TestResult } from './test-result';\r\nimport { OnScreenResults } from '../on-screen-results/on-screen-results';\r\nimport { siteDisplayNameRenderer } from '../renderer/site-display-name-renderer';\r\n\r\nexport type Flags = { [index: string]: string };\r\n\r\nexport class Flag {\r\n\r\n public readonly name: string;\r\n\r\n public readonly category: string;\r\n\r\n constructor(name: string, category: string) {\r\n this.name = name;\r\n this.category = category;\r\n }\r\n\r\n public get nameUpperCase(): string {\r\n return this.name ? this.name.toUpperCase() : '';\r\n }\r\n\r\n public get fullName(): string {\r\n return `${this.nameUpperCase} - ${this.category}`;\r\n }\r\n}\r\n\r\nexport class LabTestResult extends OnScreenResults {\r\n\r\n @dataMember()\r\n @required()\r\n public testId: number;\r\n\r\n @dataMember()\r\n @required()\r\n public labTestId: number;\r\n\r\n @dataMember()\r\n @required()\r\n public zcTestCode: string;\r\n\r\n @dataMember({ customDeserializer: deserializers.deserializeDate })\r\n @required({ nullable: true })\r\n public visitCollectionDate: moment.Moment;\r\n\r\n public get visitCollectionDateValue(): number {\r\n if (!(moment.isMoment(this.visitCollectionDate) && this.visitCollectionDate.isValid())) {\r\n return null;\r\n }\r\n return this.visitCollectionDate.valueOf();\r\n }\r\n\r\n @dataMember()\r\n @required()\r\n public dayOfStudy: number;\r\n\r\n @dataMember()\r\n @required()\r\n public ctSubjectId: number;\r\n\r\n @dataMember()\r\n @required()\r\n public accessionId: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public siteNumber: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public resultFormat: string;\r\n\r\n @dataMember()\r\n @required()\r\n public visitTestId: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public visitCode: string;\r\n\r\n @dataMember()\r\n public visitTitle: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public accessionNumber: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public siResult: TestResult;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public convResult: TestResult;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public sponsorFlag: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public alertFlag: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public deltaFlag: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public exclusionFlag: string;\r\n\r\n @dataMember()\r\n @required()\r\n public test: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public testGroup: string;\r\n\r\n @dataMember()\r\n @required()\r\n public isOptional: boolean;\r\n\r\n @dataMember()\r\n public comments: string;\r\n\r\n @dataMember()\r\n public hasSubjectDataRevision: boolean;\r\n\r\n @dataMember()\r\n public hasVisitDataRevision: boolean;\r\n\r\n @dataMember()\r\n public hasResultDataRevision: boolean;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public testSequence: number;\r\n\r\n public subjectSerialNumber: number;\r\n\r\n public showResultsInSI: boolean;\r\n\r\n public exportSortId: number;\r\n\r\n public subjectSiteId: number;\r\n\r\n public trendFlags: Flag[];\r\n\r\n public get currentResult(): TestResult {\r\n return this.showResultsInSI ? this.siResult || null : this.convResult || null;\r\n }\r\n\r\n public get uniqLabTestIdKey(): string {\r\n return `${this.testId} : ${this.testGroup} : ${this.zcTestCode}`;\r\n }\r\n\r\n public get visitColumnKey(): string {\r\n return `${this.visitCollectionDate} : ${this.accessionId}`;\r\n }\r\n\r\n public get unit(): string {\r\n if (this.currentResult) {\r\n return this.currentResult.unit;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public get testNameWithUnit(): string {\r\n if (this.currentResult) {\r\n const unitPart = this.unit ? `(${this.unit})` : '';\r\n return `${this.test} ${unitPart}`;\r\n }\r\n\r\n return this.test;\r\n }\r\n\r\n public get protocolFlags(): Flags {\r\n let flags: Flags = {};\r\n if (this.sponsorFlag) {\r\n flags[this.sponsorFlag] = this.sponsorFlag;\r\n }\r\n return flags;\r\n }\r\n\r\n public get standardFlags(): Flags {\r\n let flags: Flags = {};\r\n if (this.alertFlag) {\r\n flags[this.alertFlag] = this.alertFlag;\r\n }\r\n if (this.deltaFlag) {\r\n flags[this.deltaFlag] = this.deltaFlag;\r\n }\r\n if (this.exclusionFlag) {\r\n flags[this.exclusionFlag] = this.exclusionFlag;\r\n }\r\n return flags;\r\n }\r\n\r\n public get flags(): Flag[] {\r\n let flags: Flag[] = [];\r\n if (this.alertFlag) {\r\n flags.push(new Flag(this.alertFlag, 'Alert Flag'));\r\n }\r\n if (this.deltaFlag) {\r\n flags.push(new Flag(this.deltaFlag, 'Delta Flag'));\r\n }\r\n if (this.exclusionFlag) {\r\n flags.push(new Flag(this.exclusionFlag, 'Visit Specific Flag'));\r\n }\r\n if (this.sponsorFlag) {\r\n flags.push(new Flag(this.sponsorFlag, 'Non-Visit Specific Flag'));\r\n }\r\n return flags;\r\n }\r\n\r\n public get isFlagged(): boolean {\r\n const flags = [this.sponsorFlag, this.alertFlag, this.deltaFlag, this.exclusionFlag];\r\n return some(flags, flag => !isEmpty(flag));\r\n }\r\n\r\n public get resultSequence(): number {\r\n return this.currentResult ? this.currentResult.sequence || 0 : 0;\r\n }\r\n\r\n public get isCombinedResult(): boolean {\r\n return this.resultFormat === 'F';\r\n }\r\n\r\n public get visitName(): string {\r\n return !isNil(this.visitDescription) && !isEmpty(this.visitDescription) ? this.visitDescription : this.visitTitle;\r\n }\r\n}\r\n\r\nexport class LabTestResultsReadModel {\r\n @dataMember()\r\n @required()\r\n @typedArray(LabTestResult)\r\n public results: LabTestResult[];\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { LabTestResult, Flag } from '../lab-test-results';\r\nimport { comparators } from '../core';\r\nimport { LinkParams, dateTimeRenderer, TestLinkAgRendererComponent } from '../covance-ag-grid';\r\nimport { FilterGridColDef } from '../covance-filter';\r\nimport { LabTestResultGridRowItem } from '../on-screen-results';\r\nimport { isNil, chain, isEmpty } from 'lodash';\r\nimport { StandardTestResultHelpers } from '../on-screen-results/standard-test-results/standard-test-result-helpers';\r\nimport { SubjectTitleRenderer } from '../renderer/subject-title-renderer';\r\nimport { CovanceGridColumn } from '../covance-ag-grid/covance-grid-column';\r\nimport { SubjectColumnParams } from '../on-screen-results/standard-test-results/osr-subject-columns-renderer.component';\r\nimport { LabTestResultsLinkBuilder, LAB_TEST_RESULTS_LINK_BUILDER } from './lab-test-results-link-builder';\r\n\r\n@Injectable()\r\nexport class LabTestsGridColumns {\r\n constructor(\r\n private helper: StandardTestResultHelpers,\r\n @Inject(LAB_TEST_RESULTS_LINK_BUILDER) private labTestResultsLinkBuilder: LabTestResultsLinkBuilder\r\n ) { }\r\n\r\n public getSubjectExportColumns(): CovanceGridColumn[] {\r\n return [\r\n {\r\n noExport: true,\r\n headerName: 'Subject',\r\n field: 'subject',\r\n valueGetter: (params: LabTestResultGridRowItem) => {\r\n const data = params.data;\r\n if (!data) {\r\n return null;\r\n }\r\n return SubjectTitleRenderer.renderSubjectTitle(params);\r\n },\r\n\r\n comparator: (a: SubjectColumnParams, b: SubjectColumnParams) => this.helper.sortSubjects(a, b)\r\n },\r\n {\r\n headerName: 'Subject',\r\n field: 'subjectToDisplay',\r\n valueGetter: (params: LabTestResultGridRowItem) => {\r\n const data = params.data;\r\n if (!data) {\r\n return null;\r\n }\r\n return SubjectTitleRenderer.renderTitle(params);\r\n }\r\n },\r\n {\r\n headerName: 'Subject Data Revision',\r\n field: 'hasSubjectDataRevision',\r\n valueGetter: (params: LabTestResultGridRowItem) => this.helper.getDataRevision(params, labTest => labTest.hasSubjectDataRevision)\r\n },\r\n {\r\n headerName: 'Screen No.',\r\n field: 'screeningNumber',\r\n cellClass: 'alwaysString'\r\n },\r\n {\r\n headerName: 'Age',\r\n field: 'age'\r\n },\r\n {\r\n headerName: 'Age Unit',\r\n field: 'ageUnit'\r\n },\r\n {\r\n headerName: 'Gender',\r\n field: 'sex'\r\n }\r\n ];\r\n }\r\n\r\n\r\n public getBaseColumns(res: LabTestResult[]): FilterGridColDef[] {\r\n return [\r\n {\r\n headerName: 'Test',\r\n field: 'test',\r\n pinned: 'left',\r\n width: 150,\r\n suppressSizeToFit: true,\r\n valueGetter: (params: LabTestResultGridRowItem) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n return this.labTestResultsLinkBuilder.getTestLink(params.data) as LinkParams;\r\n },\r\n comparator: (a: LinkParams, b: LinkParams) => comparators.stringComparator(a ? a.text : null, b ? b.text : null),\r\n cellRendererFramework: TestLinkAgRendererComponent\r\n },\r\n {\r\n headerName: 'Administrative Question',\r\n field: 'administrativeQuestion',\r\n hide: true,\r\n valueGetter: (params: LabTestResultGridRowItem) => this.helper.getAdminQuestionRenderer(params)\r\n },\r\n {\r\n headerName: 'Range',\r\n field: 'range',\r\n pinned: 'left',\r\n width: 80,\r\n valueGetter: (params: LabTestResultGridRowItem) => this.helper.getRangeRenderer(res, params)\r\n },\r\n {\r\n headerName: 'Units',\r\n field: 'units',\r\n pinned: 'left',\r\n width: 80,\r\n valueGetter: (params: LabTestResultGridRowItem) => this.helper.getUnits(res, params)\r\n },\r\n {\r\n headerName: 'Test Group',\r\n field: 'testGroup',\r\n valueGetter: (params: LabTestResultGridRowItem): string => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n\r\n return params.data.testGroup;\r\n },\r\n rowGroupIndex: 0,\r\n hide: true\r\n }\r\n ];\r\n }\r\n\r\n public getColumnsForExport(baseColumns: FilterGridColDef[]): CovanceGridColumn[] {\r\n const columnsToExport: CovanceGridColumn[] = [\r\n ...this.getSubjectExportColumns(),\r\n {\r\n headerName: 'Visit Description',\r\n field: 'visitName'\r\n },\r\n {\r\n headerName: 'Visit Date',\r\n field: 'visitCollectionDate',\r\n valueGetter: (params: LabTestResultGridRowItem) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n return dateTimeRenderer({ value: params.data.visitCollectionDate });\r\n }\r\n },\r\n {\r\n headerName: 'Visit Data Revision',\r\n field: 'hasVisitDataRevision',\r\n valueGetter: (params: LabTestResultGridRowItem) => this.getDataRevision(params, labTest => labTest.hasVisitDataRevision)\r\n },\r\n {\r\n headerName: 'Accession Number',\r\n field: 'accessionNumber'\r\n },\r\n {\r\n headerName: 'Result',\r\n field: 'results',\r\n valueGetter: (params: LabTestResultGridRowItem) => this.getResult(params)\r\n },\r\n {\r\n headerName: 'Result Data Revision',\r\n field: 'hasResultDataRevision',\r\n valueGetter: (params: LabTestResultGridRowItem) => this.getDataRevision(params, labTest => labTest.hasResultDataRevision)\r\n },\r\n {\r\n headerName: 'Flags',\r\n field: 'flags',\r\n valueGetter: (params: LabTestResultGridRowItem) => this.getFlags(params)\r\n },\r\n {\r\n headerName: 'Comment',\r\n field: 'comments'\r\n },\r\n {\r\n headerName: 'Cancellation Reason',\r\n field: 'cancellationReason'\r\n }\r\n ];\r\n return [...baseColumns, ...columnsToExport];\r\n }\r\n\r\n public getFlags(params: LabTestResultGridRowItem): string {\r\n if (!params || !params.node || !params.data) {\r\n return '';\r\n }\r\n\r\n const data = params.data;\r\n\r\n if (params.node.group || data.isCancelled) {\r\n return '';\r\n }\r\n\r\n if (data.isFlagged) {\r\n if (isEmpty(data.flags)) {\r\n return '';\r\n }\r\n\r\n return this.sortFlags(data.flags);\r\n\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n public sortFlags(flags: Flag[]): string {\r\n return chain(flags)\r\n .groupBy(f => f.category)\r\n .sortBy((flagsByCategory: Flag[]) => flagsByCategory[0].category)\r\n .map((flagsByCategory: Flag[]) =>\r\n chain(flagsByCategory)\r\n .map(f => f.name)\r\n .uniq()\r\n .sort()\r\n .value()\r\n .join(', ')\r\n )\r\n .value()\r\n .join(' ');\r\n }\r\n\r\n private getResult(params: LabTestResultGridRowItem): string {\r\n if (!params || !params.node || !params.data) {\r\n return '';\r\n }\r\n\r\n if (params.node.group || params.data.isCancelled) {\r\n return '';\r\n }\r\n\r\n const tempResult = params.data.currentResult;\r\n\r\n return !isNil(tempResult) ? tempResult.stringResult : '';\r\n }\r\n\r\n private getDataRevision(params: LabTestResultGridRowItem, hasDataRevision: (labTest: LabTestResult) => boolean): 'R' | '' {\r\n if (!params || !params.node || !params.data) {\r\n return '';\r\n }\r\n\r\n return hasDataRevision(params.data) ? 'R' : '';\r\n }\r\n}\r\n\r\n","import { SponsorStudySiteIdentity } from './../../sponsor/sites/sponsor-study-site-identity';\r\nimport { FilterFieldDef, FilterFieldType, FilterNumberRangeValue } from '../../covance-filter';\r\nimport { LabTestResult, Flag } from '../../lab-test-results';\r\nimport { uniq, some, isNil, isEmpty, chain } from 'lodash';\r\nimport { TestFilterItem } from './filtered-lab-test-results-storage';\r\nimport { Injectable } from '@angular/core';\r\nimport { CovanceFilterNumberRangeType } from '../../covance-filter/filter-type/covance-filter-number-range-type';\r\nimport { SubjectTitleRenderer } from '../../renderer/subject-title-renderer';\r\n\r\nexport const trendsSiteFilterTitle = 'Site';\r\n\r\n@Injectable()\r\nexport class OnScreenResultsFilterDefenitions {\r\n\r\n public readonly siteDataFilterFieldDefs: FilterFieldDef[];\r\n \r\n public readonly trendsFilterFieldDefs: FilterFieldDef[];\r\n\r\n private readonly visitFilter: FilterFieldDef = {\r\n title: 'Visit',\r\n queryParam: 'visitName',\r\n isMatch: (selectedValues: string[], entity: LabTestResult) => {\r\n return !isNil(entity.visitName)\r\n ? some(selectedValues, (val: string) => {\r\n if (isNil(val)) {\r\n return false;\r\n }\r\n\r\n return entity.visitName.toLowerCase() === val.toLowerCase();\r\n })\r\n : false;\r\n },\r\n type: FilterFieldType.MultiSelect\r\n };\r\n\r\n private readonly visitCollectionDateFilter: FilterFieldDef = {\r\n title: 'Collected Date',\r\n queryParam: 'visitCollectionDate',\r\n type: FilterFieldType.DateRange\r\n };\r\n\r\n private readonly accessionNumberFilter: FilterFieldDef = {\r\n title: 'Accession Number',\r\n queryParam: 'accessionNumber',\r\n type: FilterFieldType.MultiSelect,\r\n order: 100,\r\n compare: (a: number, b: number) => {\r\n return a - b;\r\n },\r\n isMatch: (selectedValues: string[], entity: LabTestResult) => {\r\n return some(selectedValues, val => val === entity.accessionNumber);\r\n }\r\n };\r\n\r\n private readonly testGroupFilter: FilterFieldDef = {\r\n title: 'Test Group',\r\n queryParam: 'testGroup',\r\n type: FilterFieldType.MultiSelect\r\n };\r\n\r\n private readonly testFilter: FilterFieldDef = {\r\n title: 'Test',\r\n queryParam: 'test',\r\n type: FilterFieldType.MultiSelect,\r\n getItems: (entities: LabTestResult[]) => this.getUniqueTestsWithUnits(entities),\r\n isMatch: (selectedKeys: TestFilterItem[], entity: LabTestResult) => this.isMatchToTestsWithUnits(selectedKeys, entity),\r\n };\r\n\r\n private readonly valueFilter: FilterFieldDef = {\r\n title: 'Value',\r\n queryParam: 'value',\r\n type: FilterFieldType.NumberRange,\r\n isMatch: (range: FilterNumberRangeValue, entity: LabTestResult) => {\r\n if (entity.isCancelled || entity.currentResult === null) {\r\n return false;\r\n }\r\n\r\n return this.filterNumberRangeType.isMatchByRange(range, entity.currentResult ? entity.currentResult.numericResult : null);\r\n }\r\n };\r\n\r\n private readonly isFlaggedFilter: FilterFieldDef = {\r\n title: 'Flagged Values',\r\n queryParam: 'isFlagged',\r\n type: FilterFieldType.Checkbox\r\n };\r\n\r\n private readonly isQuestionFilter: FilterFieldDef = {\r\n title: 'Administrative Questions',\r\n queryParam: 'isQuestion',\r\n type: FilterFieldType.Checkbox\r\n };\r\n\r\n private readonly flagsFilter: FilterFieldDef = {\r\n title: 'Flags',\r\n queryParam: 'flags',\r\n type: FilterFieldType.MultiSelect,\r\n getItems: (entities: LabTestResult[]) => this.getUniqueFlags(entities),\r\n isMatch: (selectedFlagKeys: string[], entity: LabTestResult) => this.isMatchToFlags(selectedFlagKeys, entity.flags)\r\n };\r\n\r\n private readonly subjectFilter: FilterFieldDef = {\r\n title: 'Subject',\r\n queryParam: 'initials',\r\n type: FilterFieldType.MultiSelect,\r\n order: 200,\r\n getItems: (entities: LabTestResult[]) => {\r\n return uniq(entities.map(entity => SubjectTitleRenderer.renderTitle({ data: entity })));\r\n },\r\n isMatch: (selectedValues: string[], entity: LabTestResult) => {\r\n const subjectTitle = SubjectTitleRenderer.renderTitle({ data: entity }).toLowerCase();\r\n return some(selectedValues, val => subjectTitle.indexOf(val.toLowerCase()) !== -1);\r\n }\r\n };\r\n\r\n private readonly genderFilter: FilterFieldDef = {\r\n title: 'Gender',\r\n queryParam: 'sex',\r\n type: FilterFieldType.MultiSelect\r\n };\r\n\r\n private readonly siteFilter: FilterFieldDef = {\r\n title: trendsSiteFilterTitle,\r\n queryParam: 'siteNumber',\r\n type: FilterFieldType.MultiSelect,\r\n isMatch: (selectedSites: {key: string, value: SponsorStudySiteIdentity}[], entity: LabTestResult) => {\r\n return !!(selectedSites.find(filteItem => filteItem.value.siteNumber === entity.siteNumber));\r\n }\r\n };\r\n\r\n private readonly ageFilter: FilterFieldDef = {\r\n title: 'Age',\r\n queryParam: 'age',\r\n type: FilterFieldType.NumberRange,\r\n };\r\n\r\n private readonly ageProjectFilter: FilterFieldDef = {\r\n title: 'Age',\r\n queryParam: 'daysLived',\r\n type: FilterFieldType.AgeRange,\r\n };\r\n\r\n private readonly flaggedTrendsFilter: FilterFieldDef = {\r\n title: 'Flagged Values',\r\n queryParam: 'isFlagged',\r\n type: FilterFieldType.Checkbox,\r\n isMatch: (isFlagged: boolean, entity: LabTestResult) => isFlagged === entity.trendFlags.length > 0\r\n };\r\n\r\n private readonly flagTrendsFilter: FilterFieldDef = {\r\n title: 'Flags',\r\n queryParam: 'flags',\r\n type: FilterFieldType.MultiSelect,\r\n getItems: (entities: LabTestResult[]) => this.getUniqueFlags(entities),\r\n isMatch: (selectedFlagKeys: string[], entity: LabTestResult) => this.isMatchToFlags(selectedFlagKeys, entity.trendFlags)\r\n };\r\n\r\n constructor(\r\n private readonly filterNumberRangeType: CovanceFilterNumberRangeType\r\n ) { \r\n this.siteDataFilterFieldDefs = [\r\n this.subjectFilter,\r\n this.genderFilter,\r\n this.ageProjectFilter,\r\n this.visitFilter,\r\n this.visitCollectionDateFilter,\r\n this.accessionNumberFilter,\r\n this.testGroupFilter,\r\n this.testFilter,\r\n this.valueFilter,\r\n this.isFlaggedFilter,\r\n this.isQuestionFilter,\r\n this.flagsFilter\r\n ];\r\n \r\n this.trendsFilterFieldDefs = [\r\n this.subjectFilter,\r\n this.visitFilter,\r\n this.genderFilter,\r\n this.siteFilter,\r\n this.ageProjectFilter,\r\n this.flaggedTrendsFilter,\r\n this.flagTrendsFilter,\r\n ];\r\n }\r\n\r\n private getUniqueFlags(entities: LabTestResult[]): string[] {\r\n if (isEmpty(entities)) {\r\n return [];\r\n }\r\n\r\n return chain(entities)\r\n .map((e: LabTestResult) => e.flags)\r\n .flatten()\r\n .uniqBy((f: Flag) => f.fullName)\r\n .map((f: Flag) => f.fullName)\r\n .value();\r\n }\r\n\r\n private isMatchToFlags(selectedFlagKeys: string[], entityFlags: Flag[]) {\r\n return entityFlags.some((f: Flag) => selectedFlagKeys.some(k => k === f.fullName));\r\n }\r\n\r\n private getUniqueTestsWithUnits(entities: LabTestResult[]): TestFilterItem[] {\r\n if (isEmpty(entities)) {\r\n return [];\r\n }\r\n\r\n return chain(entities)\r\n .orderBy(e => e.testNameWithUnit || '', 'desc')\r\n .uniqBy((e: LabTestResult) => e.zcTestCode)\r\n .map((e: LabTestResult) => new TestFilterItem(e.zcTestCode, e.testNameWithUnit))\r\n .orderBy((e: TestFilterItem) => e.toString())\r\n .value();\r\n }\r\n\r\n private isMatchToTestsWithUnits(selectedKeys: TestFilterItem[], entity: LabTestResult) {\r\n return selectedKeys.some(t => t.key === entity.zcTestCode);\r\n }\r\n\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { LabTestResult } from '../lab-test-results/lab-test-result';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport const SUBJECT_LAB_TESTS_DATA_SOURCE = new InjectionToken('SubjectLabTestsDataSource');\r\n\r\nexport interface SubjectLabTestsDataSource {\r\n labTestResults: Observable;\r\n}","import { isEmpty } from 'lodash';\r\n\r\nexport class SubjectNaturalKey {\r\n constructor(\r\n public readonly zcSubjectId: string,\r\n public readonly siteId: string,\r\n ) {}\r\n\r\n public static fromString(subjectNaturalKey: string | null): SubjectNaturalKey | null {\r\n if (isEmpty(subjectNaturalKey)) {\r\n return null;\r\n }\r\n\r\n const result = subjectNaturalKey.split('|');\r\n\r\n return new SubjectNaturalKey(result[0], result[1]);\r\n }\r\n}\r\n","import { UserActionName } from '../../../user-action';\r\nimport { navigationActivityHandler } from '../navigation-activity-handler';\r\nimport { map } from 'rxjs/operators';\r\nimport { DetailedActivityData, ActivitySiteDetail } from '../../../activity-data';\r\nimport { findSelectedSite } from '../../../../shared/route-helpers';\r\n\r\nexport const investigatorDefaultActivityHandler = (userAction: UserActionName) => {\r\n return navigationActivityHandler(\r\n ({ route, activitySession }) => {\r\n const selectedSite = findSelectedSite(route);\r\n\r\n return activitySession.pipe(\r\n map(session => new DetailedActivityData(\r\n userAction,\r\n session.userSessionId,\r\n [\r\n new ActivitySiteDetail(selectedSite.siteId)\r\n ]\r\n ))\r\n );\r\n }\r\n );\r\n};","import { Injectable, OnDestroy, Inject, InjectionToken } from '@angular/core';\r\nimport { LabTestResult, LabResultsStorage, UnitOption } from '../../lab-test-results';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Observable, ConnectableObservable, Subscription, combineLatest } from 'rxjs';\r\nimport { map, filter as rxFilter, publishReplay, refCount, switchMap, takeWhile, tap, distinctUntilChanged } from 'rxjs/operators';\r\nimport { CovanceFilter } from '../../covance-filter/covance-filter';\r\nimport { Site } from '../../sites/site';\r\nimport { FilterFieldValue, } from '../../covance-filter/covance-filter.models';\r\nimport { FilterStorage } from './lab-test-results-filter-storage';\r\nimport { SiteTestDataStorage } from './site-test-data-storage';\r\nimport { routeData } from '../../shared/route-helpers';\r\nimport { UnitStorage } from '../../user/unit-storage';\r\nimport { LOAD_ALL_RESULTS_QUERY_PARAMETER } from './standart-test-result-query-parameters';\r\n\r\nexport const SITE_LAB_RESULTS_FILTERS_STORAGE = new InjectionToken('SiteLabResultsFiltersStorageToken');\r\n\r\n@Injectable()\r\nexport class FilteredLabTestResultsStorage implements SiteTestDataStorage, OnDestroy {\r\n\r\n private readonly results: ConnectableObservable;\r\n\r\n private filterFieldVals: FilterFieldValue[];\r\n\r\n private connection: Subscription;\r\n\r\n constructor(\r\n labResultsStorage: LabResultsStorage,\r\n unitStorage: UnitStorage,\r\n route: ActivatedRoute,\r\n private readonly filter: CovanceFilter,\r\n @Inject(SITE_LAB_RESULTS_FILTERS_STORAGE) filterStorage: FilterStorage,\r\n ) {\r\n const site = route.parent.parent.data\r\n .pipe(\r\n map(x => (x[routeData.selectedSite] as Site)),\r\n rxFilter(x => !!x),\r\n publishReplay(1),\r\n refCount(),\r\n );\r\n\r\n const loadAll$ = site\r\n .pipe(\r\n switchMap(() => route.queryParams),\r\n map((p) => !!p[LOAD_ALL_RESULTS_QUERY_PARAMETER]),\r\n distinctUntilChanged(),\r\n takeWhile( v => !v, true),\r\n );\r\n\r\n const siteLabResults = combineLatest([\r\n unitStorage.currentUnit,\r\n labResultsStorage.getSiteLabResultsRestricted(site, loadAll$),\r\n ]).pipe(\r\n map((data: [UnitOption, LabTestResult[]]) => {\r\n const [unitOption, res] = data;\r\n let result: LabTestResult[] = null;\r\n if (res) {\r\n result = res.map(r => {\r\n r.showResultsInSI = unitOption.isSiUnit;\r\n return r;\r\n });\r\n }\r\n return result;\r\n }),\r\n );\r\n\r\n this.filterFieldVals = filterStorage.filterFieldsData; // this.filterFieldDefs.map(def => { return { def: def } as FilterFieldValue; });\r\n this.results = this.filter.getFilteredData(siteLabResults, this.filterFieldVals).pipe(publishReplay(1)) as ConnectableObservable;\r\n this.connection = this.results.connect();\r\n }\r\n\r\n public get getData(): Observable {\r\n return this.results;\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.connection.unsubscribe();\r\n }\r\n}\r\n\r\nexport class TestFilterItem {\r\n constructor(public zcTestCode: string, public testTitle: string) {\r\n }\r\n\r\n public toString() {\r\n return this.testTitle;\r\n }\r\n public get key() {\r\n return this.zcTestCode;\r\n }\r\n}\r\n","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../../node_modules/css-loader/index.js!../../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./select.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","import * as moment from 'moment';\r\nimport { isNil } from 'lodash';\r\n\r\nexport const DATE_FORMAT = 'll';\r\nexport const DATE_TIME_FORMAT = 'lll';\r\n\r\nexport const formatters = {\r\n \r\n formatBoolean(value: boolean): string {\r\n return isNil(value)\r\n ? ''\r\n : value ? 'Yes' : 'No';\r\n },\r\n\r\n formatDate(value: moment.Moment): string {\r\n return moment.isMoment(value) && value.isValid() ? value.format(DATE_FORMAT) : '';\r\n },\r\n\r\n formatDateTime(value: moment.Moment): string {\r\n return moment.isMoment(value) && value.isValid() ? value.format(DATE_TIME_FORMAT) : '';\r\n }\r\n};","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { AgFrameworkComponent } from 'ag-grid-angular/main';\r\nimport { ICellRendererParams } from 'ag-grid-community/main';\r\n\r\nexport interface MulticellParams {\r\n alwaysShowTooltip: boolean;\r\n items: MulticellItem[];\r\n}\r\n\r\nexport interface MulticellTooltip {\r\n title?: string;\r\n content: string;\r\n}\r\n\r\nexport interface MulticellItem {\r\n displayValue: string;\r\n tooltips: MulticellTooltip[];\r\n}\r\n\r\ninterface MulticellRendererParams extends ICellRendererParams {\r\n value: MulticellParams;\r\n}\r\n\r\n@Component({\r\n selector: 'multicell',\r\n template: require('./multicell-ag-renderer.component.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class MulticellAgRendererComponent implements AgFrameworkComponent {\r\n public alwaysShowTooltip: boolean;\r\n public items: MulticellItem[];\r\n\r\n public agInit(params: MulticellRendererParams): void {\r\n if (params.value) {\r\n this.alwaysShowTooltip = params.value.alwaysShowTooltip;\r\n this.items = params.value.items;\r\n }\r\n }\r\n}","import 'material-design-lite/material';\r\n\r\ndeclare module mdl {\r\n export interface ComponentHandler {\r\n\r\n /**\r\n * Searches existing DOM for elements of our component type and upgrades them\r\n * if they have not already been upgraded.\r\n *\r\n * @param optJsClass the programatic name of the element class we\r\n * need to create a new instance of.\r\n * @param optCssClass the name of the CSS class elements of this\r\n * type will have.\r\n */\r\n upgradeDom(optJsClass?: string, optCssClass?: string): void;\r\n\r\n\r\n /**\r\n * Upgrades a specific element rather than all in the DOM.\r\n *\r\n * @param element The element we wish to upgrade.\r\n * @param optJsClass Optional name of the class we want to upgrade\r\n * the element to.\r\n */\r\n upgradeElement(element: Element, optJsClass?: string): void;\r\n\r\n /**\r\n * Upgrades a specific list of elements rather than all in the DOM.\r\n *\r\n * @param elements\r\n * The elements we wish to upgrade.\r\n */\r\n upgradeElements(elements: Element | Element[] | NodeList | HTMLCollection): void;\r\n\r\n /**\r\n * Upgrades all registered components found in the current DOM. This is\r\n * automatically called on window load.\r\n */\r\n upgradeAllRegistered(): void;\r\n\r\n /**\r\n * Allows user to be alerted to any upgrades that are performed for a given\r\n * component type\r\n *\r\n * @param jsClass The class name of the MDL component we wish\r\n * to hook into for any upgrades performed.\r\n * @param callback The function to call upon an\r\n * upgrade. This function should expect 1 parameter - the HTMLElement which\r\n * got upgraded.\r\n */\r\n registerUpgradedCallback(jsClass: string, callback: (el: HTMLElement) => void): void;\r\n\r\n register(config: any): void;\r\n\r\n downgradeElements(nodes: Node | Node[] | NodeList): void;\r\n }\r\n}\r\n\r\n\r\nexport const componentHandler: mdl.ComponentHandler = (window as any).componentHandler;","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { AgRendererComponent } from 'ag-grid-angular/main';\r\nimport { ICellRendererParams } from 'ag-grid-community';\r\nimport { LabTestResultData } from './on-screen-results-renderer';\r\n\r\nexport interface TestResultsParams {\r\n labTestResults: LabTestResultData[];\r\n}\r\n\r\nexport interface TestResultsCellRendererParams extends ICellRendererParams {\r\n value: TestResultsParams;\r\n}\r\n\r\n@Component({\r\n selector: 'test-result-cell',\r\n template: require('./test-result-ag-renderer.component.html'),\r\n styles: [require('./test-result-ag-renderer.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TestResultAgRendererComponent implements AgRendererComponent {\r\n public labTestResults: LabTestResultData[];\r\n\r\n public agInit(params: TestResultsCellRendererParams): void {\r\n if (params.node.group) {\r\n return;\r\n }\r\n\r\n this.labTestResults = params.value.labTestResults;\r\n }\r\n\r\n public refresh() {\r\n return false;\r\n }\r\n}","import { Component, ChangeDetectionStrategy, OnDestroy } from '@angular/core';\r\nimport { AgRendererComponent } from 'ag-grid-angular/main';\r\nimport { LabTestResult } from '../../lab-test-results';\r\nimport { LabTestResultGridRowItem } from '../grid-row-item';\r\nimport { MdlDialogService } from '@angular-mdl/core';\r\n\r\n@Component({\r\n selector: 'test-title-cell',\r\n template: require('./test-title-ag-renderer.component.html'),\r\n styles: [require('./test-title-ag-renderer.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TestTitleAgRendererComponent implements AgRendererComponent {\r\n\r\n public title = '';\r\n public isOptional = false;\r\n public isQuestion = false;\r\n\r\n constructor(private dialogService: MdlDialogService) {\r\n }\r\n\r\n public refresh() {\r\n return false;\r\n }\r\n\r\n public agInit(row: LabTestResultGridRowItem): void {\r\n if (row.node.group) {\r\n return;\r\n }\r\n this.title = row.data.test;\r\n this.isOptional = row.data.isOptional;\r\n this.isQuestion = row.data.isQuestion;\r\n }\r\n\r\n public onQuestionMouseOver(event: MouseEvent) {\r\n // Don't show covance-tooltip together with Admin Question tooltip.\r\n event.stopPropagation();\r\n }\r\n}","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { AgRendererComponent } from 'ag-grid-angular/main';\r\nimport { DataRevisionIndicator } from '../../shared';\r\nimport { LabTestResultGridRowItem } from '../grid-row-item';\r\n\r\n@Component({\r\n selector: 'test-visit-cell',\r\n template: require('./test-visit-ag-renderer.component.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TestVisitAgRendererComponent implements AgRendererComponent {\r\n\r\n public visitTitle: string;\r\n\r\n public revisionMessage: string;\r\n\r\n public hasDataRevision: boolean;\r\n\r\n constructor(private dataRevisionIndicator: DataRevisionIndicator) {\r\n this.revisionMessage = dataRevisionIndicator.visitDataRevisionMessage;\r\n }\r\n\r\n public refresh() {\r\n return false;\r\n }\r\n\r\n public agInit(row: LabTestResultGridRowItem): void {\r\n if (row.node.group) {\r\n return;\r\n }\r\n\r\n this.visitTitle = row.data.visitName;\r\n this.hasDataRevision = row.data.hasVisitDataRevision;\r\n }\r\n}","import { Component, ChangeDetectionStrategy, Input, Output, EventEmitter } from '@angular/core';\r\nimport {GroupingOptionItem} from './grouping-options';\r\n\r\n@Component({\r\n selector: 'grouping-selector',\r\n template: require('./grouping-selector.component.html'),\r\n styles: [require('./grouping-selector.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class GroupingSelectorComponent {\r\n\r\n @Output()\r\n public selectedOptionChange = new EventEmitter();\r\n\r\n @Input()\r\n public options: GroupingOptionItem[] = [];\r\n\r\n @Input()\r\n public groupName = 'mdl-group';\r\n\r\n @Input()\r\n public set selectedOption(value: GroupingOptionItem) {\r\n this.selectedOptionValue = value;\r\n }\r\n\r\n public get selectedOption() {\r\n return this.selectedOptionValue;\r\n }\r\n\r\n private selectedOptionValue: GroupingOptionItem;\r\n\r\n public optionTextGetter = (option: any) => `Group by ${option.title || option.columnTitle}`;\r\n\r\n public optionValueGetter = (option: any) => option.columnTitle;\r\n\r\n public onSelection(option: GroupingOptionItem) {\r\n this.selectedOptionChange.emit(option);\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { SharedModule } from '../shared';\r\nimport { GroupingSelectorComponent } from './grouping-selector.component';\r\n\r\n@NgModule({\r\n imports: [SharedModule],\r\n exports: [GroupingSelectorComponent],\r\n declarations: [GroupingSelectorComponent]\r\n})\r\nexport class GroupingModule {\r\n}","import { dataMember, required } from 'santee-dcts';\r\n\r\nexport function getAgeProjectDays(years: number, months: number, days: number): number {\r\n let value = 0; \r\n if (years) {\r\n value = years * 365;\r\n }\r\n if (months) {\r\n value += months * 30.417;\r\n }\r\n if (days) {\r\n value += days;\r\n }\r\n return value;\r\n}\r\n\r\nexport function getAgeInDays(value: number, unit: string): number {\r\n if (!value) {\r\n return null;\r\n }\r\n let scale = 1;\r\n switch (unit) {\r\n case 'years':\r\n scale = 365;\r\n break;\r\n case 'months':\r\n scale = 30.417;\r\n break;\r\n }\r\n return scale * value;\r\n}\r\n\r\nexport abstract class OnScreenResults {\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public zcSubjectId: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public subjectNumber: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public screeningNumber: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public initials: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public sex: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public age: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public ageUnit: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public ageProjectDisplayValue: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public isAgeProject: boolean;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public ageInYears: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public ageInMonths: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public ageInDays: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public visitDescription: string;\r\n\r\n @dataMember()\r\n public isTestCancelled: boolean;\r\n\r\n @dataMember()\r\n public isGroupCancelled: boolean;\r\n\r\n @dataMember()\r\n public testCancellationReason: string;\r\n\r\n @dataMember()\r\n public groupCancellationReason: string;\r\n\r\n @dataMember()\r\n @required()\r\n public isQuestion: boolean;\r\n\r\n public get isCancelled(): boolean {\r\n return this.isTestCancelled || this.isGroupCancelled;\r\n }\r\n\r\n public get daysLived(): number {\r\n if (this.isAgeProject) {\r\n return getAgeProjectDays(this.ageInYears, this.ageInMonths, this.ageInDays);\r\n } else {\r\n return getAgeInDays(this.age, this.ageUnit);\r\n }\r\n }\r\n\r\n public get cancellationReason(): string {\r\n\r\n if (this.isGroupCancelled) {\r\n return `Test group cancelled: ${this.groupCancellationReason}`;\r\n } else if (this.isTestCancelled) {\r\n return `Test cancelled: ${this.testCancellationReason}`;\r\n }\r\n\r\n return '';\r\n }\r\n}\r\n","import { CovanceFilterBaseType } from '../covance-filter-base-type';\r\nimport { AgeFilter, FilterFieldValue } from '../../covance-filter.models';\r\nimport { Injectable } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { isEmpty } from 'lodash';\r\n\r\nexport interface AgeOperator {\r\n readonly title: string;\r\n readonly value: string;\r\n}\r\n\r\nexport const allowedAgeOperators: ReadonlyArray =\r\n Object.freeze([\r\n {\r\n title: '>',\r\n value: 'More',\r\n },\r\n {\r\n title: '<',\r\n value: 'Less'\r\n },\r\n {\r\n title: '=',\r\n value: 'Equal'\r\n }\r\n ]);\r\n\r\n@Injectable()\r\nexport class CovanceFilterAgeType extends CovanceFilterBaseType {\r\n private readonly separator = 'Then';\r\n private readonly operatorRegexValues = allowedAgeOperators.map(x => `'${x.value}'`).join(', ');\r\n private readonly operator = new RegExp(`([${this.operatorRegexValues}]+?)${this.separator}`);\r\n private readonly day = new RegExp(`${this.separator}(\\\\d+?)$`);\r\n constructor(router: Router, route: ActivatedRoute) {\r\n super(router, route);\r\n }\r\n\r\n public setValue(fieldVal: FilterFieldValue) {\r\n fieldVal.value = this.parseQueryString(fieldVal.queryParamValue);\r\n }\r\n\r\n public setQueryParamValue(fieldVal: FilterFieldValue) {\r\n fieldVal.queryParamValue = !isEmpty(fieldVal.value.operator)\r\n && !isEmpty(fieldVal.value.day) ?\r\n `${fieldVal.value.operator}Then${fieldVal.value.day}` : '';\r\n }\r\n\r\n public isMatch(fieldVal: FilterFieldValue, value: any): boolean {\r\n return false;\r\n }\r\n\r\n public serializeValue(value: any): string {\r\n return '';\r\n }\r\n\r\n private parseQueryString(value: string): AgeFilter {\r\n if (!value) {\r\n return null;\r\n }\r\n\r\n const filter = new AgeFilter(null, null);\r\n\r\n const op = this.operator.exec(value);\r\n const day = this.day.exec(value);\r\n filter.operator = op && op[1];\r\n filter.day = day && day[1];\r\n\r\n return filter;\r\n }\r\n\r\n}\r\n","import { Component, ChangeDetectionStrategy, Input, OnChanges } from '@angular/core';\r\nimport { MultilineFormatter } from './multiline-formatter';\r\n\r\n@Component({\r\n selector: 'multiline',\r\n template: require('./multiline.component.html'),\r\n styles: [require('./multiline.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class MultilineComponent implements OnChanges {\r\n\r\n @Input()\r\n public value: string;\r\n\r\n public values: string[];\r\n\r\n public constructor(private multilineFormatter: MultilineFormatter) { }\r\n\r\n public ngOnChanges() {\r\n this.values = this.multilineFormatter.format(this.value);\r\n }\r\n}","import { Component, ChangeDetectionStrategy, ElementRef, Input, ViewChild } from '@angular/core';\r\nimport { MdlTooltipComponent } from '@angular-mdl/core';\r\n\r\n@Component({\r\n selector: 'covance-tooltip',\r\n template: require('./covance-tooltip.component.html'),\r\n styles: [require('./covance-tooltip.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CovanceTooltipComponent {\r\n @ViewChild('resultContent')\r\n public resultContent: ElementRef;\r\n\r\n @ViewChild('tooltip')\r\n public tooltipComponent: MdlTooltipComponent;\r\n\r\n @Input()\r\n public alwaysShow = false;\r\n\r\n public onMouseOver(event: any) {\r\n const element = this.resultContent.nativeElement.firstElementChild;\r\n if (this.alwaysShow || (element.offsetWidth < element.scrollWidth)) {\r\n\r\n const windowHeight = window.innerHeight || document.documentElement.clientHeight;\r\n const elementBottom = element.getBoundingClientRect().bottom;\r\n const tooltipComponentHeight = this.tooltipComponent.element.clientHeight;\r\n if (windowHeight < elementBottom + tooltipComponentHeight + 20) {\r\n this.tooltipComponent.position = 'top';\r\n } else {\r\n this.tooltipComponent.position = 'bottom';\r\n }\r\n\r\n this.tooltipComponent.mouseEnter(event);\r\n }\r\n }\r\n\r\n public onMouseLeave() {\r\n this.tooltipComponent.mouseLeave();\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { CovanceSelectComponent } from './covance-select.component';\r\nimport { MultilineComponent } from '../shared/multiline.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MdlModule } from '@angular-mdl/core';\r\nimport { MdlPopoverModule } from '@angular-mdl/popover';\r\nimport { CovanceTooltipComponent } from '../shared/covance-tooltip/covance-tooltip.component';\r\nimport { MdlSelectModule } from '@angular-mdl/select';\r\nimport { CovanceMaterialModule } from '../../covance-material/covance-material.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n CovanceSelectComponent,\r\n MultilineComponent,\r\n CovanceTooltipComponent,\r\n ],\r\n imports: [\r\n ReactiveFormsModule,\r\n CommonModule,\r\n MdlModule,\r\n MdlSelectModule,\r\n MdlPopoverModule,\r\n CovanceMaterialModule,\r\n ],\r\n exports: [\r\n CovanceSelectComponent,\r\n MultilineComponent,\r\n CovanceTooltipComponent,\r\n ]\r\n})\r\nexport class CovanceSelectModule { }","import { MdlDialogReference } from '@angular-mdl/core';\r\nimport { ChangeDetectionStrategy, Component, Inject, InjectionToken } from '@angular/core';\r\nexport const DELETE_DIALOG_TOKEN = new InjectionToken('DeleteDialog');\r\n\r\n@Component({\r\n selector: 'delete-modal',\r\n template: require('./delete-modal.component.html'),\r\n styles: [require('./delete-modal.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n\r\nexport class DeleteModalComponent {\r\n\r\n public data: DeleteModalData;\r\n\r\n constructor(\r\n private dialog: MdlDialogReference,\r\n @Inject(DELETE_DIALOG_TOKEN) private readonly dialogData: DeleteModalData\r\n ) {\r\n this.data = dialogData;\r\n }\r\n\r\n public close() {\r\n const result = {\r\n action: 'Close',\r\n code: 0,\r\n isDeleted: false\r\n } as DeleteModalResult;\r\n\r\n this.dialog.hide(result);\r\n }\r\n\r\n public delete() {\r\n const result = {\r\n action: 'Delete',\r\n code: 1,\r\n isDeleted: true\r\n } as DeleteModalResult;\r\n\r\n this.dialog.hide(result);\r\n }\r\n}\r\n\r\nexport interface DeleteModalData {\r\n title: string;\r\n content: string;\r\n closeButtonText: string;\r\n deleteButtonText: string;\r\n reverseButtons?: boolean;\r\n displayClose?: boolean;\r\n}\r\n\r\nexport interface DeleteModalResult {\r\n action: string;\r\n code: number;\r\n isDeleted: boolean;\r\n}","import { Component, ChangeDetectionStrategy, Input, ChangeDetectorRef, Inject, InjectionToken} from '@angular/core';\r\nimport { AvailableColumns, SelectedColumns, ColumnSettingInfo } from '../column-settings';\r\nimport { uniqBy } from 'lodash';\r\nimport { MdlDialogReference } from '@angular-mdl/core';\r\nimport { CdkDragDrop, CdkDragStart, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\r\nexport const COLUMN_SETTING_TOKEN = new InjectionToken('ColumnSettingItem');\r\n\r\n@Component({\r\n selector: 'app-column-settings',\r\n template: require('./column-settings.component.html'),\r\n styles: [require('./column-settings.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n\r\nexport class ColumnSettingsComponent {\r\n\r\n @Input()\r\n public availableColumns: AvailableColumns[];\r\n\r\n @Input()\r\n public selectedColumns: SelectedColumns[];\r\n public settingsInfo: ColumnSettingInfo;\r\n public header = 'Column View Settings';\r\n public subheaderText = 'View';\r\n public selectedElement: HTMLElement = null;\r\n public selectedelementId = '';\r\n public multiSelectItems: SelectedColumns[] = [];\r\n public multiSelectedSection: string;\r\n public dragList: any[] = [];\r\n public dragListCopy: any[] = [];\r\n public dragErase: any;\r\n public showReset = true;\r\n\r\n constructor(\r\n private changeDectRef: ChangeDetectorRef,\r\n private dialogReference: MdlDialogReference,\r\n @Inject(COLUMN_SETTING_TOKEN) private readonly columnSettingInfo: ColumnSettingInfo,\r\n ) {\r\n this.settingsInfo = columnSettingInfo;\r\n this.availableColumns = [...columnSettingInfo.availableColumns];\r\n this.selectedColumns = [...columnSettingInfo.selectedColumns];\r\n this.subheaderText = columnSettingInfo.subheaderText ? columnSettingInfo.subheaderText : this.subheaderText;\r\n this.header = columnSettingInfo.header ? columnSettingInfo.header : this.header;\r\n this.showReset = columnSettingInfo.showReset;\r\n }\r\n\r\n public drop(event: CdkDragDrop) {\r\n if (event.item.element.nativeElement.classList.contains('selected')) {\r\n this.multiSelectDropListDropped(event);\r\n return;\r\n }\r\n if (event.previousContainer === event.container) {\r\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\r\n } else {\r\n if (event.container.id === 'availableList') {\r\n let selectedItemId = event.item.element.nativeElement.id;\r\n let selectedItem = this.selectedColumns.find(t => t.key === selectedItemId);\r\n if (selectedItem && selectedItem.isMandatory) { return; }\r\n }\r\n transferArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);\r\n }\r\n }\r\n\r\n public multiSelectDragStarted(e: CdkDragStart) {\r\n if (e.source.element.nativeElement.classList.contains('selected')) { \r\n let listData = e.source.dropContainer.data; \r\n this.dragList = []; \r\n this.dragListCopy = [...listData]; \r\n let dragElement = e.source.element.nativeElement; \r\n let container = Array.from(dragElement.parentElement!.children);\r\n let allSelected = document.querySelectorAll('.selected');\r\n\r\n allSelected.forEach((eli) => {\r\n let currentIndex = container.indexOf(eli);\r\n this.dragList.push(listData[currentIndex]);\r\n this.dragListCopy[currentIndex] = this.dragErase;\r\n });\r\n\r\n }\r\n }\r\n\r\n public multiSelectDropListDropped(event: CdkDragDrop) {\r\n\r\n if (event.previousContainer === event.container) {\r\n let posAdjust = event.previousIndex < event.currentIndex ? 1 : 0; \r\n this.dragListCopy.splice(event.currentIndex + posAdjust, 0, ...this.dragList);\r\n this.dragListCopy = this.dragListCopy.filter((el) => (el !== this.dragErase));\r\n for (let i = 0; i < event.container.data.length; i++) {\r\n event.container.data[i] = this.dragListCopy[i];\r\n }\r\n } else { \r\n this.dragListCopy = this.dragListCopy.filter((el) => (el !== this.dragErase));\r\n\r\n this.dragListCopy.forEach((item, index) => {\r\n event.previousContainer.data[index] = this.dragListCopy[index];\r\n });\r\n\r\n this.dragList.forEach(item => {\r\n event.previousContainer.data.pop();\r\n });\r\n let otherListCopy = [...event.container.data];\r\n otherListCopy.splice(event.currentIndex, 0, ...this.dragList); \r\n for (let i = 0; i < otherListCopy.length; i++) {\r\n event.container.data[i] = otherListCopy[i];\r\n }\r\n }\r\n\r\n let allSelected = document.querySelectorAll('.selected');\r\n allSelected.forEach((el) => {\r\n el.classList.remove('selected');\r\n });\r\n\r\n this.dragListCopy = [];\r\n this.dragList = [];\r\n this.multiSelectItems = [];\r\n this.multiSelectedSection = null;\r\n }\r\n\r\n public onResetClick() {\r\n let result = {\r\n availableColumns: this.availableColumns,\r\n selectedColumns: this.selectedColumns,\r\n resetSettings: true\r\n };\r\n this.dialogReference.hide(result);\r\n }\r\n\r\n public dragOnAvailableColumn(event: any) {\r\n this.dragStart(event);\r\n event.currentTarget.focus();\r\n const dragData = JSON.stringify({\r\n key: event.target.id,\r\n dragFrom: 'availableColumn'\r\n });\r\n event.dataTransfer.setData('dragData', dragData);\r\n }\r\n\r\n public dragOnSelectedColumn(event: any) {\r\n this.dragStart(event);\r\n event.currentTarget.focus();\r\n const dragData = JSON.stringify({\r\n key: event.target.id,\r\n dragFrom: 'selectedColumn'\r\n });\r\n event.dataTransfer.setData('dragData', dragData);\r\n }\r\n\r\n public allowDrop(event: any) {\r\n event.preventDefault();\r\n }\r\n\r\n public onColumnDragOver(event: any) {\r\n if (event.target.parentNode) {\r\n if (this.isBefore(this.selectedElement, event.target)) {\r\n if (this.isMandatoryField(event)) { return; }\r\n event.target.parentNode.insertBefore(this.selectedElement, event.target);\r\n\r\n } else {\r\n if (this.isMandatoryField(event)) { return; }\r\n event.target.parentNode.insertBefore(this.selectedElement, event.target.nextSibling);\r\n }\r\n }\r\n }\r\n\r\n public onAvailableColumnDrop(event: any) {\r\n event.preventDefault();\r\n !this.removeMultiSelectedColumns() && this.setList(event);\r\n }\r\n\r\n public onSelectedColumnDrop(event: MouseEvent) {\r\n event.preventDefault();\r\n !this.addMultiSelectedColumns() && this.setList(event);\r\n }\r\n\r\n public dragEnd() {\r\n this.selectedElement = null;\r\n this.selectedelementId = '';\r\n }\r\n\r\n public dragStart(event: any) {\r\n event.dataTransfer.effectAllowed = 'move';\r\n event.dataTransfer.setData('text/plain', null);\r\n this.selectedElement = event.target;\r\n this.selectedelementId = event.target.id;\r\n }\r\n\r\n public onAvailableColumnDoubleClick(event: any) {\r\n this.onSelectColumns('selectedColumns', event);\r\n event.target.classList.toggle('selected');\r\n this.multiSelectedSection = 'availableColumns';\r\n }\r\n\r\n public onSelectedColumnDoubleClick(event: any) {\r\n let column = this.columnSettingInfo.selectedColumns.find(sc => sc.key === event.target.id);\r\n if (column && column.isMandatory) { return; }\r\n this.onSelectColumns('availableColumns', event);\r\n event.target.classList.toggle('selected');\r\n this.multiSelectedSection = 'selectedColumns';\r\n }\r\n\r\n public onColumnClick(event: MouseEvent, listName: string) {\r\n if (listName === 'selected') {\r\n this.onSelectedColumnDoubleClick(event);\r\n }\r\n if (listName === 'available') {\r\n this.onAvailableColumnDoubleClick(event);\r\n }\r\n }\r\n\r\n public addColumns() {\r\n this.addMultiSelectedColumns();\r\n this.dragListCopy = [];\r\n this.dragList = [];\r\n }\r\n\r\n public removeColumns() {\r\n this.removeMultiSelectedColumns();\r\n this.dragListCopy = [];\r\n this.dragList = [];\r\n }\r\n\r\n public onApplyClick() {\r\n let result = {\r\n availableColumns: this.availableColumns,\r\n selectedColumns: this.selectedColumns,\r\n showReset: false\r\n };\r\n this.dialogReference.hide(result);\r\n }\r\n\r\n public onCancelClick() {\r\n this.selectedColumns = [...this.settingsInfo.selectedColumns];\r\n this.availableColumns = [...this.settingsInfo.availableColumns];\r\n this.dialogReference.hide();\r\n }\r\n\r\n private isBefore(el1: any, el2: any) {\r\n let cur;\r\n if (el2.parentNode === el1.parentNode) {\r\n for (cur = el1; cur; cur = cur.previousSibling) {\r\n if (cur === el2) { return true; }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n private setList(event: any) {\r\n if (this.selectedElement && this.selectedElement.id) {\r\n\r\n const list = Array.from(event.target.parentElement.childNodes)\r\n .filter((c: any) => c.id)\r\n .map((c: any) => { return ({ key: c.id, displayName: c.textContent.trim(), isMandatory: c.classList.contains('isMandatory')}); });\r\n const parentId = event.target.parentElement.id;\r\n\r\n if (list && list.length === 1) {\r\n if (list[0].key === 'placeholder') { // handle first item\r\n if (event.target.parentElement.id === 'selectedColumns') {\r\n this.selectedColumns = uniqBy([...this.selectedColumns, { key: this.selectedElement.id, displayName: this.selectedElement.textContent.trim() }], 'key');\r\n this.availableColumns = this.availableColumns.filter(ac => ac.key !== this.selectedElement.id);\r\n }\r\n if (event.target.parentElement.id === 'availableColumns') {\r\n this.availableColumns = uniqBy([...this.availableColumns, { key: this.selectedElement.id, displayName: this.selectedElement.textContent.trim() }], 'key');\r\n this.selectedColumns = this.selectedColumns.filter(ac => ac.key !== this.selectedElement.id);\r\n }\r\n }\r\n if (list[0].key === 'selectedColumns') { //dropping item on last of list\r\n this.selectedColumns = uniqBy([...this.selectedColumns, { key: this.selectedElement.id, displayName: this.selectedElement.textContent.trim() }], 'key');\r\n this.availableColumns = this.availableColumns.filter(ac => ac.key !== this.selectedElement.id);\r\n }\r\n if (list[0].key === 'availableColumns') { //dropping item on last of list\r\n let column = this.columnSettingInfo.selectedColumns.find(sc => sc.key === this.selectedelementId);\r\n if (column && !column.isMandatory) {\r\n this.availableColumns = uniqBy([...this.availableColumns, { key: this.selectedElement.id, displayName: this.selectedElement.textContent.trim() }], 'key');\r\n this.selectedColumns = this.selectedColumns.filter(ac => ac.key !== this.selectedElement.id);\r\n }\r\n }\r\n } else {\r\n if (parentId === 'selectedColumns') { //dropping item on mid of list\r\n this.selectedColumns = list;\r\n this.availableColumns = this.availableColumns.filter(ac => ac.key !== this.selectedElement.id);\r\n }\r\n if (parentId === 'availableColumns') { //dropping item on mid of list\r\n let column = this.columnSettingInfo.selectedColumns.find(sc => sc.key === this.selectedelementId);\r\n if (column && !column.isMandatory) {\r\n this.availableColumns = list;\r\n this.selectedColumns = this.selectedColumns.filter(ac => ac.key !== this.selectedElement.id);\r\n }\r\n }\r\n }\r\n }\r\n\r\n this.selectedElement = null;\r\n this.multiSelectItems = [];\r\n this.multiSelectedSection = null;\r\n this.changeDectRef.markForCheck();\r\n }\r\n\r\n private addMultiSelectedColumns() {\r\n if (this.multiSelectedSection === 'availableColumns' && this.multiSelectItems && this.multiSelectItems.length) {\r\n this.selectedColumns = uniqBy([...this.selectedColumns, ...this.multiSelectItems], 'key');\r\n this.availableColumns = this.availableColumns.filter(ac => !this.selectedColumns.some(sc => sc.key === ac.key));\r\n this.multiSelectItems = [];\r\n this.multiSelectedSection = null;\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n private removeMultiSelectedColumns() {\r\n if (this.multiSelectedSection === 'selectedColumns' && this.multiSelectItems && this.multiSelectItems.length) {\r\n this.availableColumns = uniqBy([...this.availableColumns, ...this.multiSelectItems], 'key');\r\n this.selectedColumns = this.selectedColumns.filter(sc => !this.availableColumns.some(ac => ac.key === sc.key));\r\n this.multiSelectItems = [];\r\n this.multiSelectedSection = null;\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n private onSelectColumns(selectedSection: string, event: any) {\r\n if (this.multiSelectedSection === selectedSection) {\r\n const selectedColumns = document.getElementById(selectedSection);\r\n const childNodes = Array.from(selectedColumns.childNodes).filter((c: any) => c.id);\r\n childNodes.forEach((ac: any) => ac.classList.remove('selected'));\r\n this.multiSelectItems = [];\r\n this.multiSelectedSection = null;\r\n }\r\n this.multiSelectItems = this.multiSelectItems.find(ms => ms.key === event.target.id) ?\r\n this.multiSelectItems.filter(ms => ms.key !== event.target.id) :\r\n [...this.multiSelectItems, { key: event.target.id, displayName: event.target.textContent.trim() }];\r\n }\r\n\r\n private isMandatoryField(event: any) {\r\n if (event.target.parentNode.id === 'availableColumns' && this.selectedelementId.length) {\r\n let column = this.columnSettingInfo.selectedColumns.find(sc => sc.key === this.selectedelementId);\r\n return column && column.isMandatory ? true : false;\r\n }\r\n return false;\r\n }\r\n}","export enum EmailNotificationFrequencyOption {\r\n None = 0,\r\n Daily = 1,\r\n Immediate = 2,\r\n}\r\n\r\n","module.exports = \"\\r\\n \\r\\n
\\r\\n {{menuItem.title}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./actions-menu-ag-renderer-base.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./document-info.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","import { ICellRendererParams } from 'ag-grid-community';\r\nimport { AgRendererComponent } from 'ag-grid-angular/main';\r\nimport { ActionsMenuColumn } from '../../shared/grid-columns';\r\nimport { isEmpty } from 'lodash';\r\nimport { ViewChild } from '@angular/core';\r\n\r\nexport interface ActionsMenuItem {\r\n title: string;\r\n onClick: () => void;\r\n}\r\n\r\ninterface ActionsMenuCellRenderer extends ICellRendererParams {\r\n data: TEntity;\r\n colDef: ActionsMenuColumn;\r\n}\r\n\r\nexport abstract class ActionsMenuAgRendererComponent implements AgRendererComponent {\r\n public menuItems: ActionsMenuItem[];\r\n public isMenuItemsEmpty: boolean;\r\n\r\n @ViewChild('cultureMenu')\r\n public cultureMenu: any;\r\n\r\n @ViewChild('cultureMenuBtn')\r\n public cultureMenuBtn: any;\r\n private row: ActionsMenuCellRenderer;\r\n\r\n public refresh(): boolean {\r\n return false;\r\n }\r\n\r\n public agInit(row: ActionsMenuCellRenderer) {\r\n this.row = row;\r\n this.menuItems = this.createMenuItems(row.data, row.colDef);\r\n this.isMenuItemsEmpty = isEmpty(this.menuItems);\r\n }\r\n\r\n public toggleMenu($event: any, cultureMenuBtn: any) {\r\n const menuDirection = this.row.api.getVerticalPixelRange().bottom - this.row.node.rowTop - this.row.node.rowHeight < this.cultureMenu.menuElement.clientHeight \r\n ? 'top-right' \r\n : 'bottom-right';\r\n this.cultureMenu.position = menuDirection;\r\n this.cultureMenu.toggle($event, cultureMenuBtn);\r\n }\r\n\r\n\r\n public abstract createMenuItems(data: TEntity, colDef: ActionsMenuColumn): ActionsMenuItem[];\r\n}","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Resolve, Router } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { UrlBuilder } from '../core';\r\nimport { findSiteUrlParam, findStudyUrlParam } from '../shared/route-helpers';\r\nimport { InvestigatorSitesStorage } from './investigator-sites-storage';\r\nimport { Site } from './site';\r\n\r\n@Injectable()\r\nexport class SelectedSiteResolver implements Resolve {\r\n\r\n constructor(private sitesStorage: InvestigatorSitesStorage, private router: Router, private urlBuilder: UrlBuilder) { }\r\n\r\n public resolve(route: ActivatedRouteSnapshot): Observable {\r\n const siteUrlParam = findSiteUrlParam(route);\r\n const studyUrlParam = findStudyUrlParam(route);\r\n\r\n const sitesObservable = this.sitesStorage.loadSites();\r\n\r\n return sitesObservable\r\n .pipe(\r\n map(sites => {\r\n\r\n if (sites.length === 0) {\r\n this.urlBuilder.esa().navigate();\r\n return false;\r\n }\r\n\r\n const selectedSite = sites.find(site => site.siteUrlParameter === siteUrlParam &&\r\n site.study.studyUrlParameter === studyUrlParam);\r\n if (!selectedSite) {\r\n this.router.navigateByUrl(\r\n '/home'); // navigate to a fake link that redirects to '/' or rendering will be cancelled (https://github.com/angular/angular/issues/16211)\r\n return false;\r\n }\r\n\r\n return selectedSite;\r\n }));\r\n }\r\n}","import {NgModule} from '@angular/core';\r\nimport {CoreModule} from '../core';\r\nimport {SubjectsStorage} from './subjects-storage';\r\nimport {SharedModule} from '../shared';\r\nimport {LabTestsGridComponent} from './lab-tests-grid.component';\r\nimport {LabTestResultModule} from '../lab-test-results/lab-test-results.module';\r\nimport {LabTestsChartComponent} from './lab-tests-chart.component';\r\nimport {CovanceAgGridModule} from '../covance-ag-grid/covance-ag-grid.module';\r\nimport {StandardTestResultsMainModule} from '../on-screen-results/standard-test-results/standard-test-results-main.module';\r\nimport {LabTestsChartDataGenerator} from './lab-tests-chart-data-generator';\r\nimport {LabTestGridVisitHeaderComponent} from './lab-tests-grid-visit-header.component';\r\nimport {LabTestGridVisitComponent} from './lab-tests-grid-visit.component';\r\nimport { CovanceFilterModule } from '../covance-filter';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { LegendModule } from '../legend/legend.module';\r\nimport { CorporateModule } from '../corporate/corporate.module';\r\nimport { StandardTestResultHelpers } from '../on-screen-results/standard-test-results/standard-test-result-helpers';\r\n\r\n@NgModule({\r\n imports: [\r\n SharedModule,\r\n CoreModule,\r\n LabTestResultModule,\r\n StandardTestResultsMainModule,\r\n CovanceAgGridModule,\r\n CovanceFilterModule,\r\n ReactiveFormsModule,\r\n LegendModule,\r\n CorporateModule,\r\n ],\r\n declarations: [\r\n LabTestGridVisitHeaderComponent,\r\n LabTestGridVisitComponent,\r\n LabTestsGridComponent,\r\n LabTestsChartComponent\r\n ],\r\n entryComponents: [\r\n LabTestGridVisitHeaderComponent,\r\n LabTestGridVisitComponent,\r\n ],\r\n providers: [\r\n SubjectsStorage,\r\n LabTestsChartDataGenerator,\r\n StandardTestResultHelpers\r\n ]\r\n})\r\nexport class SubjectsModule { }","import { dataMember, required, typedArray } from 'santee-dcts';\r\nimport { Age } from './age';\r\nimport { siteDisplayNameRenderer } from '../renderer/site-display-name-renderer';\r\n\r\nexport class Subject {\r\n\r\n @dataMember()\r\n @required()\r\n public ctSubjectId: number;\r\n\r\n @dataMember()\r\n @required()\r\n public zcSubjectId: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public subjectNumber: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true})\r\n public screeningNumber: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public initials: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public status: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public sex: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public age: Age;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public ageProjectDisplayValue: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public isAgeProject: boolean;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public siteNumber: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public investigatorName: string;\r\n\r\n @dataMember()\r\n public hasSubjectDataRevision: boolean;\r\n\r\n public get siteDisplayName() {\r\n return siteDisplayNameRenderer({siteNumber: this.siteNumber, investigatorFullName: this.investigatorName});\r\n }\r\n}\r\n\r\nexport class SubjectsReadModel {\r\n @dataMember()\r\n @required()\r\n @typedArray(Subject)\r\n public subjects: Subject[];\r\n}\r\n\r\nexport class SubjectReadModel {\r\n @dataMember()\r\n @required({ nullable: true })\r\n public subject: Subject;\r\n}","import { GridLegendItem } from '../legend';\r\n\r\ninterface OsrDataItem {\r\n isCancelled: boolean;\r\n isQuestion?: boolean;\r\n hasResultDataRevision?: boolean;\r\n hasSubjectDataRevision?: boolean;\r\n hasVisitDataRevision?: boolean;\r\n hasSpecimenResultDataRevision?: boolean;\r\n hasOrganismResultDataRevision?: boolean;\r\n hasGrowthResultDataRevision?: boolean;\r\n hasTestResultDataRevision?: boolean;\r\n}\r\n\r\nexport function createLegend(data: OsrDataItem[]): GridLegendItem[] {\r\n\r\n if (!data) {\r\n return [];\r\n }\r\n const legendData: GridLegendItem[] = [];\r\n\r\n const anyCancelations = data.some(r => r.isCancelled);\r\n if (anyCancelations) {\r\n legendData.push({ icon: 'clear', cssClass: 'cancelled-result', label: 'Canceled result' });\r\n }\r\n const anyRevisions = data.some(r => r.hasResultDataRevision\r\n || r.hasSubjectDataRevision\r\n || r.hasVisitDataRevision\r\n || r.hasSpecimenResultDataRevision\r\n || r.hasOrganismResultDataRevision\r\n || r.hasGrowthResultDataRevision\r\n || r.hasTestResultDataRevision);\r\n if (anyRevisions) {\r\n legendData.push({\r\n text: 'R', cssClass: 'revisioned-result', label: 'Data revision occurred'\r\n });\r\n }\r\n const anyAdminQuestions = data.some(r => r.isQuestion);\r\n if (anyAdminQuestions) {\r\n legendData.push({icon: 'question_answer', cssClass: 'grid-icon', label: 'Administrative Question'});\r\n }\r\n\r\n return legendData;\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { flatMap, keyBy, unionBy } from 'lodash';\r\nimport { combineLatest, Observable } from 'rxjs';\r\nimport { map, publishLast, refCount } from 'rxjs/operators';\r\nimport { dataMember, deserialize, required, typedArray } from 'santee-dcts';\r\nimport { Settings } from '../core';\r\nimport { Category, CategoryNaturalKey } from './models/category';\r\n\r\n@Injectable()\r\nexport class CategoriesStorage {\r\n private readonly generalCategoriesInternal: Observable;\r\n private readonly siteSpecificCategoriesInternal: Observable;\r\n private readonly activityReportsCategoriesInternal: Observable;\r\n private readonly categoriesById: Observable<{ [categoryId: string]: Category }>;\r\n\r\n constructor(private http: HttpClient, private settings: Settings) {\r\n this.generalCategoriesInternal = this.loadCategoriesInternal('general')\r\n .pipe(\r\n publishLast(),\r\n refCount()\r\n );\r\n\r\n this.siteSpecificCategoriesInternal = this.loadCategoriesInternal('site-specific')\r\n .pipe(\r\n publishLast(),\r\n refCount()\r\n );\r\n\r\n this.activityReportsCategoriesInternal = this.loadCategoriesInternal('activity-reports')\r\n .pipe(\r\n publishLast(),\r\n refCount()\r\n );\r\n\r\n this.categoriesById = this.all\r\n .pipe(\r\n map((x: Category[]) => {\r\n const mainCats = x.reduce(\r\n (a, v) => this.unwindCategories(a, v),\r\n []);\r\n return keyBy(mainCats, c => c.categoryId);\r\n }),\r\n publishLast(),\r\n refCount()\r\n );\r\n }\r\n\r\n public get generalAndSiteSpecific(): Observable {\r\n return combineLatest(this.generalCategoriesInternal, this.siteSpecificCategoriesInternal)\r\n .pipe(\r\n map(([a, cv]) => [...a, ...cv], [])\r\n );\r\n }\r\n\r\n public get generalCategories(): Observable {\r\n return this.generalCategoriesInternal;\r\n }\r\n\r\n public get siteSpecificCategories(): Observable {\r\n return this.siteSpecificCategoriesInternal;\r\n }\r\n\r\n private get all(): Observable {\r\n return combineLatest(this.generalAndSiteSpecific, this.activityReportCategories)\r\n .pipe(map(([_, __]) => unionBy(_, __, c => c.categoryId)));\r\n }\r\n\r\n public get activityReportCategories(): Observable {\r\n return this.activityReportsCategoriesInternal;\r\n }\r\n\r\n public get siteDocumentsCategories(): Observable {\r\n return this.findCategoriesByIds(['site-communications', 'site-actions']);\r\n }\r\n\r\n public get studyDocumentsCategories(): Observable {\r\n return this.findCategoriesByIds(['lab-manuals', 'training-materials', 'sponsor-communications-e-learning'])\r\n .pipe(map(categories => {\r\n const labReports = categories.pop();\r\n const docCategories = flatMap(categories, c => c.children);\r\n docCategories.push(labReports);\r\n return docCategories;\r\n }));\r\n }\r\n\r\n public findCategoryById(categoryId: CategoryNaturalKey): Observable {\r\n return this.categoriesById.pipe(map(categories => categories[categoryId]));\r\n }\r\n\r\n public findCategoriesByIds(categoryIds: CategoryNaturalKey[]): Observable {\r\n return this.categoriesById.pipe(map(categories => categoryIds.map(id => categories[id])));\r\n }\r\n\r\n public getChildCategoriesById(categoryId: CategoryNaturalKey): Observable {\r\n return this.findCategoryById(categoryId).pipe(map(category => {\r\n if (!category) {\r\n return null;\r\n }\r\n\r\n return category.children;\r\n }));\r\n }\r\n\r\n private unwindCategories(acc: Category[], category: Category) {\r\n acc.push(category);\r\n if (category.children) {\r\n category.children.reduce((a, v) => this.unwindCategories(a, v), acc);\r\n }\r\n return acc;\r\n }\r\n\r\n private loadCategoriesInternal(type: string) {\r\n return this.http.get(`${this.settings.apiUrl}/categories/${type}`)\r\n .pipe(\r\n map((response) => {\r\n const categories = deserialize(response, CategoriesReadModel).categories;\r\n this.fillParents(null, categories);\r\n return categories;\r\n }));\r\n }\r\n\r\n private fillParents(parent: Category, categories: Category[]) {\r\n categories.forEach(category => {\r\n category.parent = parent;\r\n this.fillParents(category, category.children);\r\n });\r\n }\r\n}\r\n\r\nclass CategoriesReadModel {\r\n\r\n @dataMember()\r\n @required()\r\n @typedArray(Category)\r\n public categories: Category[];\r\n}","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { AgRendererComponent } from 'ag-grid-angular/main';\r\nimport { MicrobiologyGridRowItem } from './microbiology-grid-row-item';\r\n\r\n@Component({\r\n selector: 'microbiology-result-cell',\r\n template: require('./microbiology-result-ag-renderer.component.html'),\r\n styles: [require('../test-result-ag-renderer.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class MicrobiologyResultAgRendererComponent implements AgRendererComponent {\r\n\r\n public result = '';\r\n public isCancelled = false;\r\n public cancellationReason: string;\r\n\r\n public agInit(row: MicrobiologyGridRowItem): void {\r\n if (row.node.group) {\r\n return;\r\n }\r\n\r\n this.result = row.value;\r\n this.isCancelled = row.data.isCancelled;\r\n this.cancellationReason = row.data.cancellationReason;\r\n }\r\n\r\n public refresh() {\r\n return false;\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { isEmpty, chain, some } from 'lodash';\r\nimport { MultilineFormatter } from '../../shared';\r\nimport { FilterGridColDef, FilterFieldType } from '../../covance-filter';\r\nimport { dateTimeRenderer, MultilineAgRendererComponent, dateTimeComparator } from '../../covance-ag-grid';\r\nimport { MicrobiologyResultAgRendererComponent } from './microbiology-result-ag-renderer.component';\r\nimport { MicrobiologyData } from './microbiology-data';\r\nimport { MicrobiologyGridRowItem } from './microbiology-grid-row-item';\r\nimport { SubjectTitleRenderer } from '../../renderer/subject-title-renderer';\r\nimport { OnScreenResultsRenderer } from '../on-screen-results-renderer';\r\n\r\n@Injectable()\r\nexport class MicrobiologyGridColumns {\r\n\r\n public get columnsDict(): { [microBiologyCategory: string]: FilterGridColDef[] } {\r\n return {\r\n 'isolate-culture-data': [...this.commonColumns, ...this.isolateCultureColumns],\r\n 'gram-stain-data': [...this.commonColumns, ...this.gramStainColumns]\r\n };\r\n }\r\n \r\n public get pivotColumns(): FilterGridColDef[] {\r\n return [...this.microbiologyPivotColumns];\r\n }\r\n\r\n\r\n private microbiologyPivotColumns: FilterGridColDef[] = [\r\n {\r\n headerName: 'Drug/Agent',\r\n field: 'agent'\r\n },\r\n {\r\n hide: true,\r\n headerName: 'Specimen',\r\n field: 'specimen'\r\n },\r\n {\r\n hide: true,\r\n headerName: 'Organism',\r\n field: 'organism',\r\n\r\n getLineCount: (entity: MicrobiologyData) => {\r\n return this.multilineFormatter.format(entity.organism).length;\r\n },\r\n\r\n cellRendererFramework: MultilineAgRendererComponent\r\n },\r\n {\r\n hide: true,\r\n headerName: 'Panel',\r\n field: 'panel'\r\n }\r\n ];\r\n\r\n private commonColumns: FilterGridColDef[] = [\r\n {\r\n headerName: 'Subject',\r\n field: 'initials',\r\n valueGetter: SubjectTitleRenderer.renderTitle,\r\n filterFieldDef: {\r\n type: FilterFieldType.MultiSelect,\r\n order: 200,\r\n isMatch: (selectedValues: string[], entity: MicrobiologyData) => {\r\n const subjectTitle = SubjectTitleRenderer.renderTitle({ data: entity });\r\n return some(selectedValues, val => val === subjectTitle);\r\n },\r\n getItems: (entities: MicrobiologyData[]) => {\r\n const items = chain(entities)\r\n .map((entity: MicrobiologyData) => SubjectTitleRenderer.renderTitle({ data: entity }))\r\n .uniq()\r\n .sortBy()\r\n .value();\r\n\r\n return items;\r\n }\r\n }\r\n },\r\n {\r\n headerName: 'Screen No.',\r\n field: 'screeningNumber',\r\n filterFieldDef: {\r\n type: FilterFieldType.MultiSelect,\r\n order: 250\r\n }\r\n },\r\n {\r\n headerName: 'Age',\r\n field: 'daysLived',\r\n filterFieldDef: {\r\n order: 270,\r\n type: FilterFieldType.AgeRange\r\n }\r\n },\r\n {\r\n headerName: 'Gender',\r\n field: 'sex',\r\n filterFieldDef: {\r\n type: FilterFieldType.MultiSelect,\r\n order: 300\r\n }\r\n },\r\n {\r\n headerName: 'Visit',\r\n field: 'visitDescription',\r\n valueGetter: (params: MicrobiologyGridRowItem) => this.getVisitDescriptionRenderer(params.data),\r\n filterFieldDef: {\r\n type: FilterFieldType.MultiSelect,\r\n order: 400,\r\n isMatch: (selectedValues: string[], entity: MicrobiologyData) => {\r\n const result = this.getVisitDescriptionRenderer(entity);\r\n return some(selectedValues, val => val === result);\r\n },\r\n getItems: (entities: MicrobiologyData[]) => {\r\n const items = chain(entities)\r\n .map((entity: MicrobiologyData) => this.getVisitDescriptionRenderer(entity))\r\n .uniq()\r\n .sortBy()\r\n .value();\r\n\r\n return items;\r\n }\r\n }\r\n },\r\n {\r\n headerName: 'Collected Date',\r\n field: 'collectionDateTime',\r\n comparator: dateTimeComparator,\r\n valueGetter: (params: MicrobiologyGridRowItem) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n return dateTimeRenderer({ value: params.data.collectionDateTime });\r\n },\r\n filterFieldDef: {\r\n type: FilterFieldType.DateRange,\r\n order: 500\r\n }\r\n },\r\n {\r\n headerName: 'Accession',\r\n field: 'accessionNumber',\r\n filterFieldDef: {\r\n type: FilterFieldType.MultiSelect,\r\n order: 600\r\n }\r\n },\r\n {\r\n headerName: 'Test Group',\r\n field: 'testGroupName',\r\n filterFieldDef: {\r\n type: FilterFieldType.MultiSelect,\r\n order: 700\r\n }\r\n },\r\n {\r\n headerName: 'Test',\r\n field: 'testDescription',\r\n filterFieldDef: {\r\n type: FilterFieldType.MultiSelect,\r\n order: 800\r\n }\r\n }\r\n ];\r\n\r\n private gramStainColumns: FilterGridColDef[] = [\r\n {\r\n headerName: 'Specimen',\r\n field: 'specimen',\r\n filterFieldDef: {\r\n order: 900,\r\n type: FilterFieldType.MultiSelect\r\n }\r\n },\r\n {\r\n headerName: 'Findings/Observed Results',\r\n field: 'result',\r\n\r\n valueGetter: (params: MicrobiologyGridRowItem) => this.onScreenResultsRenderer.getValue(params.data, entity => entity.result, true),\r\n getLineCount: (entity: MicrobiologyData) => {\r\n const result = this.onScreenResultsRenderer.getValue(entity, e => e.result);\r\n return this.multilineFormatter.format(result).length;\r\n },\r\n\r\n cellRendererFramework: MicrobiologyResultAgRendererComponent,\r\n\r\n filterFieldDef: {\r\n order: 1000,\r\n type: FilterFieldType.MultiSelect,\r\n isMatch: (selectedValues: string[], entity: MicrobiologyData) => {\r\n const result = this.onScreenResultsRenderer.getValue(entity, e => e.result);\r\n return some(selectedValues, val => val === result);\r\n },\r\n getItems: (entities: MicrobiologyData[]) => {\r\n const items = chain(entities)\r\n .map((entity: MicrobiologyData) => this.onScreenResultsRenderer.getValue(entity, e => e.result))\r\n .uniq()\r\n .sortBy()\r\n .value();\r\n\r\n return items;\r\n }\r\n }\r\n }\r\n ];\r\n\r\n private isolateCultureColumns: FilterGridColDef[] = [\r\n {\r\n headerName: 'Specimen',\r\n field: 'specimen',\r\n filterFieldDef: {\r\n order: 900,\r\n type: FilterFieldType.MultiSelect\r\n }\r\n },\r\n {\r\n headerName: 'Organism',\r\n field: 'organism',\r\n\r\n getLineCount: (entity: MicrobiologyData) => {\r\n return this.multilineFormatter.format(entity.fullOrganismTitle).length;\r\n },\r\n\r\n cellRendererFramework: MultilineAgRendererComponent,\r\n\r\n filterFieldDef: {\r\n order: 1000,\r\n type: FilterFieldType.MultiSelect\r\n }\r\n },\r\n {\r\n headerName: 'Growth',\r\n field: 'growth',\r\n filterFieldDef: {\r\n order: 1100,\r\n type: FilterFieldType.MultiSelect\r\n }\r\n },\r\n {\r\n headerName: 'Drug/Agent',\r\n field: 'agent',\r\n filterFieldDef: {\r\n order: 1200,\r\n type: FilterFieldType.MultiSelect\r\n }\r\n\r\n },\r\n {\r\n headerName: 'Units',\r\n field: 'units',\r\n filterFieldDef: {\r\n order: 1200,\r\n type: FilterFieldType.MultiSelect\r\n }\r\n\r\n },\r\n {\r\n headerName: 'MIC Panel Result ',\r\n field: 'micResult',\r\n filterFieldDef: {\r\n isOff: true\r\n }\r\n },\r\n {\r\n headerName: 'MIC Panel Interpretation',\r\n field: 'micPanelInterpretation',\r\n filterFieldDef: {\r\n order: 1400,\r\n type: FilterFieldType.MultiSelect\r\n }\r\n },\r\n {\r\n headerName: 'Disk Diffusion Panel Zone mm',\r\n field: 'kirbyBauerPanelZone',\r\n filterFieldDef: {\r\n isOff: true\r\n }\r\n },\r\n {\r\n headerName: 'Disk Diffusion Interpretation',\r\n field: 'kirbyBauerInterpretation',\r\n filterFieldDef: {\r\n order: 1600,\r\n type: FilterFieldType.MultiSelect\r\n }\r\n },\r\n {\r\n headerName: 'Observations',\r\n field: 'observations',\r\n filterFieldDef: {\r\n isOff: true\r\n }\r\n }\r\n ];\r\n\r\n constructor(\r\n private multilineFormatter: MultilineFormatter,\r\n private onScreenResultsRenderer: OnScreenResultsRenderer\r\n ) { }\r\n\r\n private getVisitDescriptionRenderer(data: MicrobiologyData) {\r\n if (!data) {\r\n return null;\r\n }\r\n\r\n return !isEmpty(data.visitDescription) ? data.visitDescription : data.kitTypeDescription;\r\n }\r\n}\r\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { AgRendererComponent } from 'ag-grid-angular/main';\r\nimport { DataRevisionIndicator } from '../../shared';\r\nimport { MicrobiologyColDef } from './microbiology.component';\r\nimport { MicrobiologyGridRowItem } from './microbiology-grid-row-item';\r\n\r\n@Component({\r\n selector: 'culture-group-cell',\r\n template: require('./culture-group-ag-renderer.component.html'),\r\n styles: [require('./culture-group-ag-renderer.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n\r\nexport class CultureGroupAgRendererComponent implements AgRendererComponent {\r\n\r\n public groupType: string;\r\n public groupValue: string;\r\n public dataRevisionText: string;\r\n public childrenCounter: number;\r\n\r\n public hasDataRevision: boolean;\r\n public isCancelled: boolean;\r\n\r\n constructor(private dataRevisionIndicator: DataRevisionIndicator) {}\r\n\r\n public refresh() {\r\n return false;\r\n }\r\n\r\n public agInit(params: MicrobiologyGridRowItem): void {\r\n\r\n const groupColumn = params.api.getColumnDef(params.node.field) as MicrobiologyColDef;\r\n if (groupColumn) {\r\n this.groupType = groupColumn.headerName;\r\n\r\n if (groupColumn.hasDataRevision && groupColumn.getDataRevisionMessage) {\r\n this.hasDataRevision = params.node.allLeafChildren.some(e => e.data && groupColumn.hasDataRevision(e.data));\r\n if (this.hasDataRevision) {\r\n this.dataRevisionText = groupColumn.getDataRevisionMessage(this.dataRevisionIndicator);\r\n }\r\n }\r\n\r\n if (groupColumn.isCancelled) {\r\n this.isCancelled = params.node.allLeafChildren.some(e => e.data && groupColumn.isCancelled(e.data));\r\n }\r\n }\r\n\r\n this.childrenCounter = params.node.childrenAfterFilter.length;\r\n this.groupValue = params.node.key;\r\n }\r\n}","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport * as moment from 'moment';\r\n\r\nimport { MicrobiologyData } from './microbiology-data';\r\nimport { DataRevisionIndicator } from '../../shared';\r\n\r\n@Component({\r\n selector: 'culture-details-cell',\r\n template: require('./culture-details-ag-renderer.component.html'),\r\n styles: [require('./culture-details-ag-renderer.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CultureDetailsAgRendererComponent {\r\n public readonly noDataText = 'No susceptibility data';\r\n public data: CultureRow;\r\n public resultDataRevisionMessage: string;\r\n\r\n constructor(private dataRevisionIndicator: DataRevisionIndicator) {\r\n this.resultDataRevisionMessage = dataRevisionIndicator.resultDataRevisionMessage;\r\n }\r\n\r\n public agInit(row: { data: CultureRow }): void {\r\n this.data = row.data;\r\n }\r\n}\r\n\r\nexport interface CultureRow {\r\n subject: string;\r\n visitDescription: string;\r\n testGroupName: string;\r\n specimen: string;\r\n growthDetails: GrowthDetails;\r\n textDetails: TextDetails;\r\n cancellationReason: string;\r\n isCancelled: boolean;\r\n hasSubjectDataRevision: boolean;\r\n hasVisitDataRevision: boolean;\r\n hasSpecimenDataRevision: boolean;\r\n}\r\n\r\nexport interface GrowthDetails {\r\n growth: string;\r\n organism: string;\r\n order: number;\r\n hasGrowthResultDataRevision: boolean;\r\n hasOrganismResultDataRevision: boolean;\r\n agents: MicrobiologyData[];\r\n}\r\n\r\nexport interface TextDetails {\r\n title: string;\r\n value: string;\r\n hasTestResultDataRevision: boolean;\r\n isQuestion: boolean;\r\n isCancelled: boolean;\r\n testCollectionDateTime: moment.Moment; \r\n testAccessionId: number;\r\n testSequence: number;\r\n sequence: number;\r\n}","import { MicrobiologyColDef } from './microbiology.component';\r\nimport { CultureRow } from './culture-details-ag-renderer.component';\r\nimport { DataRevisionIndicator } from '../../shared/data-revision/data-revision-indicator';\r\nimport { CultureDetailsAgRendererComponent } from './culture-details-ag-renderer.component';\r\nimport { FilterGridColDef } from '../../covance-filter/covance-filter.models';\r\nimport { MicrobiologyGridRowItem } from './microbiology-grid-row-item';\r\nimport { formatters } from '../../core/formatters';\r\nimport { Injectable } from '@angular/core';\r\nimport { MultilineFormatter } from '../../shared/multiline-formatter';\r\nimport { chain, isNil, isEmpty } from 'lodash';\r\nimport { StandardTestResultHelpers } from '../standard-test-results/standard-test-result-helpers';\r\nimport { MicrobiologyData } from './microbiology-data';\r\n\r\n@Injectable()\r\nexport class MicrobiologyColumns {\r\n public columns: MicrobiologyColDef[] = [\r\n {\r\n\r\n hide: true,\r\n headerName: 'Subject',\r\n field: 'subject',\r\n colId: 'subject',\r\n rowGroupIndex: 0,\r\n hasDataRevision: (row: CultureRow) => row.hasSubjectDataRevision,\r\n getDataRevisionMessage: (dataRevisionIndicator: DataRevisionIndicator) => dataRevisionIndicator\r\n .subjectDataRevisionMessage,\r\n },\r\n {\r\n hide: true,\r\n headerName: 'Visit',\r\n field: 'visitDescription',\r\n colId: 'visitDescription',\r\n rowGroupIndex: 1,\r\n hasDataRevision: (row: CultureRow) => row.hasVisitDataRevision,\r\n getDataRevisionMessage: (dataRevisionIndicator: DataRevisionIndicator) => dataRevisionIndicator\r\n .visitDataRevisionMessage\r\n },\r\n {\r\n hide: true,\r\n headerName: 'Test Group',\r\n field: 'testGroupName',\r\n colId: 'testGroupName',\r\n isCancelled: (row: CultureRow) =>\r\n row.isCancelled\r\n || (row.growthDetails && row.growthDetails.agents && row.growthDetails.agents.some(x => x.isCancelled))\r\n || (row.textDetails && row.textDetails.isCancelled),\r\n rowGroupIndex: 2\r\n },\r\n {\r\n hide: true,\r\n headerName: 'Specimen',\r\n field: 'specimen',\r\n colId: 'specimen',\r\n rowGroupIndex: 3,\r\n hasDataRevision: (row: CultureRow) => row.hasSpecimenDataRevision,\r\n getDataRevisionMessage: (dataRevisionIndicator: DataRevisionIndicator) => dataRevisionIndicator\r\n .resultDataRevisionMessage\r\n },\r\n {\r\n headerName: 'Details',\r\n field: 'details',\r\n suppressSorting: true,\r\n suppressMenu: true,\r\n getQuickFilterText: this.getTestQuickSearchString,\r\n cellRendererFramework: CultureDetailsAgRendererComponent,\r\n getRowHeight: (entity: CultureRow) => {\r\n // this calculation depends on styles in culture-details-ag-renderer.component.scss\r\n let size = 0;\r\n\r\n if (entity.growthDetails && entity.growthDetails.agents) {\r\n const top = 30;\r\n const tableRowSize = 30; // tr height + border 1px\r\n const tableHeaderRows = 2;\r\n const tableHeaderHeight = 29; //tr height\r\n size = top + (entity.growthDetails.agents.length || 1) * tableRowSize + tableHeaderRows * tableHeaderHeight;\r\n }\r\n\r\n if (entity.textDetails && entity.textDetails.value) {\r\n const tableRowSize = 23;\r\n const strings = this.multilineFormatter.format(entity.textDetails.value);\r\n size = strings.length * tableRowSize;\r\n }\r\n\r\n return size;\r\n },\r\n getLineCount: (entity: CultureRow) => {\r\n let rows = 0;\r\n\r\n if (entity.textDetails) {\r\n const valueRows = this.multilineFormatter.format(entity.textDetails.value).length;\r\n if (valueRows > rows) {\r\n rows = valueRows;\r\n }\r\n }\r\n\r\n return rows;\r\n },\r\n minWidth: 900\r\n }\r\n ];\r\n\r\n public exportColumns: FilterGridColDef[] = [\r\n \r\n {\r\n headerName: 'Subject',\r\n field: 'initials',\r\n valueGetter: (params: MicrobiologyGridRowItem) => this.getSubjectNumberAndInitials(params)\r\n },\r\n {\r\n headerName: 'Screening Number',\r\n field: 'screeningNumber',\r\n valueGetter: (params: MicrobiologyGridRowItem) => this.getScreeningNumber(params)\r\n },\r\n {\r\n headerName: 'Age',\r\n field: 'age'\r\n },\r\n {\r\n headerName: 'Age Unit',\r\n field: 'ageUnit'\r\n },\r\n {\r\n headerName: 'Gender',\r\n field: 'sex'\r\n },\r\n {\r\n headerName: 'Visit Description',\r\n field: 'visitDescription'\r\n },\r\n {\r\n headerName: 'Collected Time',\r\n field: 'time',\r\n valueGetter: (params: MicrobiologyGridRowItem) => this.getCollectedTime(params)\r\n },\r\n {\r\n headerName: 'Accession Number',\r\n field: 'accessionNumber'\r\n },\r\n {\r\n headerName: 'Test Group',\r\n field: 'testGroupName'\r\n },\r\n {\r\n headerName: 'Specimen',\r\n field: 'specimen'\r\n },\r\n {\r\n headerName: 'Organism',\r\n field: 'organism',\r\n valueGetter: (params: MicrobiologyGridRowItem) => this.getOrganismTitle(params)\r\n },\r\n {\r\n headerName: 'Growth',\r\n field: 'growth'\r\n },\r\n {\r\n headerName: 'Cancellation Reason',\r\n field: 'cancellationReason'\r\n },\r\n {\r\n headerName: 'Test Description',\r\n field: 'testDescription'\r\n },\r\n {\r\n headerName: 'Test Result',\r\n field: 'result',\r\n valueGetter: (params: MicrobiologyGridRowItem) => {\r\n if (!params || !params.data || !params.data.result) {\r\n return null;\r\n }\r\n\r\n return params.data.isSubCancelled\r\n ? `Cancellation Reason: ${params.data.subCancellationReason}`\r\n : params.data.result && params.data.result.replace(/[\\r\\n]+/g, '; ');\r\n }\r\n },\r\n {\r\n headerName: 'Drug Name/Agent',\r\n field: 'agent'\r\n },\r\n {\r\n headerName: 'MIC Result',\r\n field: 'micResult'\r\n },\r\n {\r\n headerName: 'Units',\r\n field: 'units'\r\n },\r\n {\r\n headerName: 'MIC Interpretation',\r\n field: 'micPanelInterpretation'\r\n },\r\n {\r\n headerName: 'Disk Diffusion Result',\r\n field: 'kirbyBauerPanelZone'\r\n },\r\n {\r\n headerName: 'Disk Diffusion Interpretation',\r\n field: 'kirbyBauerInterpretation'\r\n },\r\n {\r\n headerName: 'Subject Data Revision',\r\n field: 'hasSubjectDataRevision',\r\n valueGetter: (params: MicrobiologyGridRowItem) => this.helper.getDataRevision(params, (micro: MicrobiologyData) => micro.hasSubjectDataRevision)\r\n },\r\n {\r\n headerName: 'Visit Data Revision',\r\n field: 'hasVisitDataRevision',\r\n valueGetter: (params: MicrobiologyGridRowItem) => this.helper.getDataRevision(params, (micro: MicrobiologyData) => micro.hasVisitDataRevision)\r\n },\r\n {\r\n headerName: 'Result Data Revision',\r\n field: 'hasTestResultDataRevision',\r\n valueGetter: (params: MicrobiologyGridRowItem) => this.helper.getDataRevision(params, (micro: MicrobiologyData) => micro.hasTestResultDataRevision)\r\n },\r\n ];\r\n\r\n public get groupedFields() {\r\n const result = chain(this.columns).filter(c => !isNil(c.rowGroupIndex)).orderBy(c => c.rowGroupIndex)\r\n .map(c => c.field).value();\r\n return result;\r\n }\r\n\r\n constructor(private multilineFormatter: MultilineFormatter, private helper: StandardTestResultHelpers) {\r\n\r\n }\r\n\r\n private getSubjectNumberAndInitials(params: MicrobiologyGridRowItem): string {\r\n if (!params || !params.data) {\r\n return null;\r\n }\r\n const data = params.data;\r\n return `${data.subjectNumber} - ${data.initials}`;\r\n }\r\n\r\n private getScreeningNumber(params: MicrobiologyGridRowItem): string {\r\n if (!params || !params.data) {\r\n return null;\r\n }\r\n\r\n return params.data.screeningNumber;\r\n }\r\n\r\n private getCollectedTime(params: MicrobiologyGridRowItem): string {\r\n if (!params || !params.data) {\r\n return null;\r\n }\r\n return formatters.formatDateTime(params.data.collectionDateTime);\r\n }\r\n\r\n private getOrganismTitle(row: MicrobiologyGridRowItem) {\r\n if (!row || !row.data) {\r\n return null;\r\n }\r\n\r\n return row.data.fullOrganismTitle;\r\n }\r\n\r\n private getTestQuickSearchString(row: { data: CultureRow }) {\r\n if (!row || !row.data) {\r\n return null;\r\n }\r\n let resultString = '';\r\n if (row.data.textDetails) {\r\n resultString += '|' + row.data.textDetails.title + '|' + row.data.textDetails.value;\r\n }\r\n if (row.data.growthDetails) {\r\n resultString += row.data.growthDetails.organism;\r\n if (!isEmpty(row.data.growthDetails.agents)) {\r\n resultString += '|' + row.data.growthDetails.agents\r\n .map(a =>\r\n a.agent + a.units +\r\n a.micPanelInterpretation +\r\n a.kirbyBauerInterpretation +\r\n a.result + a.micResult)\r\n .join('|');\r\n }\r\n }\r\n return resultString;\r\n }\r\n}","import { Component, ChangeDetectionStrategy, Inject, Input } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map, publishReplay, refCount } from 'rxjs/operators'; \r\nimport { GridOptions } from 'ag-grid-community';\r\nimport { chain, sortBy, some, uniq, uniqWith, isEmpty, isNil } from 'lodash';\r\nimport { FilterFieldValue, FilterGridColDef } from '../../covance-filter';\r\nimport { CovanceFilter } from '../../covance-filter/covance-filter';\r\nimport { comparators } from '../../core';\r\nimport { MicrobiologyData } from './microbiology-data';\r\nimport { CultureRow, GrowthDetails, TextDetails } from './culture-details-ag-renderer.component';\r\nimport { SubjectTitleRenderer } from '../../renderer/subject-title-renderer';\r\nimport { DataRevisionIndicator } from '../../shared';\r\nimport { MicrobiologyGridColumns } from './microbiology-grid-columns';\r\nimport { formatters } from './../../core';\r\nimport { CultureGroupAgRendererComponent } from './culture-group-ag-renderer.component';\r\nimport { TermsStorage } from '../../corporate/terms-storage';\r\nimport { GridLegendItem } from '../../legend';\r\nimport { createLegend } from '../osr-legend-generator';\r\nimport { covanceExcelStyles } from '../../covance-ag-grid/excel-styles';\r\nimport {MicrobiologyColumns} from './microbiology-columns';\r\nimport { MICROBIOLOGY_DATA_STORAGE, MicrobiologyDataStorage } from './microbiology-data-storage';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { routeData } from '../../shared/route-helpers';\r\n\r\ntype MicrobiologySortArgs = (keyof MicrobiologyData)[];\r\n\r\nexport interface MicrobiologyColDef extends FilterGridColDef {\r\n hasDataRevision?: (row: CultureRow) => boolean;\r\n getDataRevisionMessage?: (dataRevisionIndicator: DataRevisionIndicator) => string;\r\n isCancelled?: (row: CultureRow) => boolean;\r\n}\r\n\r\nconst interpretationDescriptions: { [symbol: string]: string } = {\r\n S: 'Susceptible',\r\n I: 'Intermediate, Susceptible, Increased Exposure',\r\n R: 'Resistant',\r\n NA: 'Not applicable',\r\n NS: 'Non Susceptible',\r\n SDD: 'Susceptible Dose Dependent'\r\n};\r\n\r\n@Component({\r\n selector: 'microbiology',\r\n template: require('./microbiology.component.html'),\r\n styles: [require('./microbiology.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class MicrobiologyComponent {\r\n\r\n @Input()\r\n public siteId: string;\r\n\r\n public columns: MicrobiologyColDef[];\r\n\r\n public exportColumns: FilterGridColDef[];\r\n\r\n public gridOptions: GridOptions;\r\n\r\n public fieldVals: FilterFieldValue[] = [];\r\n public results: Observable;\r\n public exportResults: MicrobiologyData[];\r\n public exportGrid: GridOptions = {\r\n excelStyles: covanceExcelStyles\r\n };\r\n\r\n public get disclaimer() {\r\n return this.termsStorage.osrDisclaimerText;\r\n }\r\n\r\n public legend: Observable;\r\n\r\n constructor(\r\n route: ActivatedRoute,\r\n private filter: CovanceFilter,\r\n @Inject(MICROBIOLOGY_DATA_STORAGE) private microbiologyStorage: MicrobiologyDataStorage,\r\n private microbiologyColumns: MicrobiologyColumns,\r\n microbiologyGridColumns: MicrobiologyGridColumns,\r\n private termsStorage: TermsStorage) {\r\n\r\n this.columns = this.microbiologyColumns.columns;\r\n this.exportColumns = this.microbiologyColumns.exportColumns;\r\n this.gridOptions = {\r\n groupRowRendererParams: { suppressCount: true },\r\n groupDefaultExpanded: this.columns.filter(col => !isNil(col.rowGroupIndex)).length,\r\n groupUseEntireRow: true,\r\n groupRowInnerRendererFramework: CultureGroupAgRendererComponent,\r\n rowClass: 'ag-row-group-ellipsis'\r\n };\r\n\r\n const filterColumns = microbiologyGridColumns.columnsDict['isolate-culture-data'];\r\n\r\n const data = this.microbiologyStorage.siteMicrobiologyData;\r\n this.fieldVals = this.filter.getFieldValues(filterColumns);\r\n\r\n const filteredData = this.filter.getFilteredData(data, this.fieldVals)\r\n .pipe(\r\n publishReplay(1),\r\n refCount()\r\n );\r\n\r\n this.results = filteredData\r\n .pipe(map((rows: MicrobiologyData[]) => {\r\n if (!rows) {\r\n return null;\r\n }\r\n\r\n const baseSortDataArgs: MicrobiologySortArgs = ['subjectNumber', 'initials', 'screeningNumber', 'age', 'sex', 'visitDescription', 'visitColumnKey', 'testGroupName'];\r\n rows = sortBy(rows, baseSortDataArgs);\r\n\r\n const sortExportDataArgs: MicrobiologySortArgs = [...baseSortDataArgs, 'specimen', 'growth', 'organism', 'testSequence', 'testDescription', 'result'];\r\n\r\n this.exportResults = sortBy(rows, sortExportDataArgs);\r\n\r\n const hierarchyRows = rows.map(row => {\r\n return {\r\n subject: this.getSubjectTitle(row) || '',\r\n visit: this.getVisitTitle(row) || '',\r\n testGroup: row.testGroupName || '',\r\n specimen: row.specimen || '',\r\n entity: row\r\n } as HierarchyRow;\r\n });\r\n\r\n const uniqHierarchyRows = uniqWith(hierarchyRows, this.isEqualHierarchyRows);\r\n\r\n const results: CultureRow[] = [];\r\n\r\n uniqHierarchyRows.forEach((uniqHierarchyRow: HierarchyRow) => {\r\n const groupResults: CultureRow[] = [];\r\n const values = hierarchyRows.filter(row => this.isEqualHierarchyRows(uniqHierarchyRow, row));\r\n\r\n const groupsByGrowth = this.groupHierarchyRows(values, d => d.entity.growth);\r\n let order = 1;\r\n\r\n groupsByGrowth.forEach((groupByGrowth: GroupItem) => {\r\n const groupsByOrganism = this.groupHierarchyRows(groupByGrowth.values, d => d.entity.fullOrganismTitle);\r\n groupsByOrganism.forEach((groupByOrganism: GroupItem) => {\r\n const agents = uniqWith(groupByOrganism.values, this.isEqualAgentRows)\r\n .map((d: HierarchyRow) => d.entity)\r\n .filter((d: MicrobiologyData) => !isEmpty(d.agent));\r\n\r\n const growth = this.getGroupName(groupByGrowth.key);\r\n const organism = this.getGroupName(groupByOrganism.key);\r\n\r\n if (!isEmpty(growth) || !isEmpty(organism) || !isEmpty(agents)) {\r\n const cultureRow = this.createCultureRow(uniqHierarchyRow);\r\n cultureRow.growthDetails = {\r\n growth: growth,\r\n organism: organism,\r\n hasGrowthResultDataRevision: some(groupByGrowth.values, e => e.entity.hasGrowthResultDataRevision),\r\n hasOrganismResultDataRevision: some(groupByOrganism.values, e => e.entity.hasOrganismResultDataRevision),\r\n order: order++,\r\n agents: agents\r\n } as GrowthDetails;\r\n\r\n groupResults.push(cultureRow);\r\n }\r\n });\r\n });\r\n\r\n const cancellationReasonResults: CultureRow[] = [];\r\n let subTestResults: CultureRow[] = [];\r\n\r\n const cancellationReasons = values.map(d => d.entity.cancellationReason)\r\n .filter(d => !isEmpty(d));\r\n\r\n uniq(cancellationReasons).forEach((reason: string) => {\r\n const cultureRow = this.createCultureRow(uniqHierarchyRow);\r\n cultureRow.textDetails = {\r\n title: 'Cancellation Reason',\r\n value: reason,\r\n isCancelled: true\r\n } as TextDetails;\r\n cancellationReasonResults.push(cultureRow);\r\n });\r\n\r\n const tests = uniqWith(values, this.isEqualTestRows)\r\n .map((d: HierarchyRow) => d.entity)\r\n .filter((d: MicrobiologyData) => !isEmpty(d.testDescription) && d.testDescription.toLowerCase() !== 'growth' /*Exclude growth, it is not a subtest*/);\r\n\r\n if (tests.length > 0) {\r\n tests.forEach((d: MicrobiologyData) => {\r\n const cultureRow = this.createCultureRow(uniqHierarchyRow);\r\n cultureRow.cancellationReason = d.subCancellationReason;\r\n cultureRow.isCancelled = d.isSubCancelled;\r\n cultureRow.textDetails = {\r\n title: d.testDescription,\r\n value: d.result,\r\n hasTestResultDataRevision: d.hasTestResultDataRevision,\r\n isQuestion: d.isQuestion,\r\n testCollectionDateTime: d.testCollectionDateTime,\r\n testAccessionId: d.testAccessionId,\r\n testSequence: d.testSequence,\r\n sequence: d.sequence\r\n } as TextDetails;\r\n\r\n subTestResults.push(cultureRow);\r\n });\r\n }\r\n\r\n subTestResults = subTestResults.sort((a: CultureRow, b: CultureRow) => this.cultureRowComparer(a, b));\r\n\r\n groupResults.push(...cancellationReasonResults, ...subTestResults);\r\n if (groupResults.length > 0) {\r\n results.push(...groupResults);\r\n } else {\r\n results.push(this.createCultureRow(uniqHierarchyRow));\r\n }\r\n }); \r\n \r\n return results;\r\n }));\r\n\r\n this.legend = filteredData.pipe(map(x => this.createLegend(x)));\r\n }\r\n \r\n public onGridQuickFilterChanged(filter: string) {\r\n if (this.exportGrid) {\r\n this.exportGrid.quickFilterText = filter;\r\n }\r\n }\r\n \r\n private cultureRowComparer(a: CultureRow, b: CultureRow) {\r\n let result = comparators.numberComparator(a.textDetails.testSequence, b.textDetails.testSequence);\r\n if (result === 0) {\r\n result = comparators.stringComparator(a.textDetails.title, b.textDetails.title);\r\n\r\n if (result === 0) {\r\n result = comparators.numberComparator(a.textDetails.sequence, b.textDetails.sequence);\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n private createLegend(microData: MicrobiologyData[]) {\r\n const legend = createLegend(microData);\r\n const interpretationlegend = chain(microData)\r\n .map(r => [r.micPanelInterpretation, r.kirbyBauerInterpretation])\r\n .flatten()\r\n .uniq()\r\n .filter(d => d)\r\n .sort()\r\n .map((l: string) => ({\r\n text: l,\r\n cssClass: `interpretation-badge ${l}`,\r\n label: interpretationDescriptions[l] || ''\r\n }))\r\n .value();\r\n legend.push(...interpretationlegend);\r\n return legend;\r\n }\r\n\r\n private getSubjectTitle(row: MicrobiologyData) {\r\n let title = SubjectTitleRenderer.renderTitle({\r\n data: {\r\n subjectNumber: row.subjectNumber,\r\n initials: row.initials,\r\n screeningNumber: row.screeningNumber,\r\n zcSubjectId: row.zcSubjectId\r\n }\r\n });\r\n\r\n if (!isEmpty(row.screeningNumber)) {\r\n title += ` (${row.screeningNumber})`;\r\n }\r\n\r\n if (!isNil(row.age) && !row.isAgeProject) {\r\n title += ` ${row.age} ${row.ageUnit}`;\r\n }\r\n\r\n if (!isNil(row.ageProjectDisplayValue) && row.isAgeProject) {\r\n title += ` ${row.ageProjectDisplayValue}`;\r\n }\r\n\r\n if (!isEmpty(row.sex)) {\r\n title += ` ${row.sex}`;\r\n }\r\n\r\n return title;\r\n }\r\n\r\n private getGroupName(groupName: string) {\r\n return (!isNil(groupName) && groupName !== 'null') ? groupName : '';\r\n }\r\n\r\n private getVisitTitle(row: MicrobiologyData) {\r\n const titleParts = [\r\n row.visitDescription,\r\n formatters.formatDateTime(row.collectionDateTime),\r\n row.accessionNumber\r\n ];\r\n\r\n return titleParts\r\n .filter(d => !isEmpty(d))\r\n .join(', ');\r\n }\r\n\r\n private isEqualHierarchyRows(a: HierarchyRow, b: HierarchyRow) {\r\n return a.subject === b.subject &&\r\n a.visit === b.visit &&\r\n a.testGroup === b.testGroup &&\r\n a.specimen === b.specimen;\r\n }\r\n\r\n private isEqualAgentRows(a: HierarchyRow, b: HierarchyRow) {\r\n return a.entity.agent === b.entity.agent &&\r\n a.entity.micResult === b.entity.micResult &&\r\n a.entity.micPanelInterpretation === b.entity.micPanelInterpretation &&\r\n a.entity.kirbyBauerPanelZone === b.entity.kirbyBauerPanelZone &&\r\n a.entity.kirbyBauerInterpretation === b.entity.kirbyBauerInterpretation;\r\n }\r\n\r\n private isEqualTestRows(a: HierarchyRow, b: HierarchyRow) {\r\n return a.entity.testDescription === b.entity.testDescription &&\r\n a.entity.result === b.entity.result;\r\n }\r\n\r\n private groupHierarchyRows(rows: HierarchyRow[], groupByFn: (row: HierarchyRow) => string): GroupItem[] {\r\n return chain(rows)\r\n .groupBy(groupByFn)\r\n .map((values: HierarchyRow[], key: string) => {\r\n return {\r\n key: key,\r\n values: values\r\n } as GroupItem;\r\n })\r\n .sortBy((d: GroupItem) => d.key)\r\n .value();\r\n }\r\n\r\n private createCultureRow(row: HierarchyRow) {\r\n return {\r\n subject: row.subject,\r\n visitDescription: row.visit,\r\n testGroupName: row.testGroup,\r\n specimen: row.specimen,\r\n hasSubjectDataRevision: row.entity.hasSubjectDataRevision,\r\n hasVisitDataRevision: row.entity.hasVisitDataRevision,\r\n hasSpecimenDataRevision: row.entity.hasSpecimenResultDataRevision,\r\n } as CultureRow;\r\n }\r\n}\r\n\r\ninterface GroupItem {\r\n key: string;\r\n values: HierarchyRow[];\r\n}\r\n\r\ninterface HierarchyRow {\r\n subject: string;\r\n visit: string;\r\n testGroup: string;\r\n specimen: string;\r\n entity: MicrobiologyData;\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { MicrobiologyGridColumns } from './microbiology-grid-columns';\r\nimport { MicrobiologyStorage } from './microbiology-storage';\r\nimport { CovanceFilterModule } from '../../covance-filter/covance-filter.module';\r\nimport { MicrobiologyComponent } from './microbiology.component';\r\nimport { SharedModule } from '../../shared/shared.module';\r\nimport * as Covanceaggridmodule from '../../covance-ag-grid/covance-ag-grid.module';\r\nimport { MicrobiologyResultAgRendererComponent } from './microbiology-result-ag-renderer.component';\r\nimport { CultureDetailsAgRendererComponent } from './culture-details-ag-renderer.component';\r\nimport { LegendModule } from '../../legend/legend.module';\r\nimport { CultureGroupAgRendererComponent } from './culture-group-ag-renderer.component';\r\nimport { CorporateModule } from '../../corporate/corporate.module';\r\nimport { MicrobiologyColumns } from './microbiology-columns';\r\n\r\n@NgModule({\r\n imports: [\r\n SharedModule,\r\n Covanceaggridmodule.CovanceAgGridModule,\r\n CovanceFilterModule,\r\n LegendModule,\r\n CorporateModule\r\n ],\r\n declarations: [\r\n MicrobiologyComponent,\r\n MicrobiologyResultAgRendererComponent,\r\n CultureDetailsAgRendererComponent,\r\n CultureGroupAgRendererComponent\r\n ],\r\n exports: [\r\n MicrobiologyComponent,\r\n ],\r\n providers: [\r\n MicrobiologyStorage,\r\n MicrobiologyGridColumns,\r\n MicrobiologyColumns\r\n ],\r\n entryComponents: [\r\n MicrobiologyResultAgRendererComponent,\r\n CultureDetailsAgRendererComponent,\r\n CultureGroupAgRendererComponent\r\n ]\r\n})\r\nexport class MicrobiologyDataModule { }","import {LabTestResult} from '../../lab-test-results/lab-test-result';\r\nimport * as moment from 'moment';\r\nimport { isEmpty, sortBy } from 'lodash';\r\n\r\nexport class StandardTestResultsData {\r\n public zcSubjectId: string;\r\n public subjectNumber: string;\r\n public screeningNumber: string;\r\n public initials: string;\r\n public sex: string;\r\n public age: number;\r\n public ageUnit: string;\r\n public ageProjectDisplayValue: string;\r\n public isAgeProject: boolean;\r\n public hasSubjectDataRevision: boolean;\r\n public hasVisitDataRevision: boolean;\r\n public visitCollectionDate: moment.Moment;\r\n public visitCollectionDateValue: number;\r\n public visitName: string;\r\n public visitDescription: string;\r\n public accessionNumber: string;\r\n public test: string;\r\n public testGroup: string;\r\n public labTestResults: LabTestResult[];\r\n public isOptional: boolean;\r\n public isQuestion: boolean;\r\n public exportSortId: number;\r\n\r\n constructor(combinedResults: LabTestResult[], exportSortId?: number) {\r\n if (isEmpty(combinedResults)) {\r\n return null;\r\n }\r\n\r\n const combinedSortFields: (keyof LabTestResult)[] = ['testSequence', 'resultSequence'];\r\n\r\n if (exportSortId) {\r\n combinedResults.forEach(cr => cr.exportSortId = exportSortId); \r\n }\r\n\r\n const item = combinedResults[0];\r\n\r\n this.zcSubjectId = item.zcSubjectId;\r\n this.subjectNumber = item.subjectNumber;\r\n this.screeningNumber = item.screeningNumber;\r\n this.initials = item.initials;\r\n this.sex = item.sex;\r\n this.age = item.age;\r\n this.ageUnit = item.ageUnit;\r\n this.ageProjectDisplayValue = item.ageProjectDisplayValue;\r\n this.isAgeProject = item.isAgeProject;\r\n this.hasSubjectDataRevision = item.hasSubjectDataRevision;\r\n this.hasVisitDataRevision = item.hasVisitDataRevision;\r\n this.accessionNumber = item.accessionNumber;\r\n this.visitName = item.visitName;\r\n this.visitCollectionDate = item.visitCollectionDate;\r\n this.visitCollectionDateValue = item.visitCollectionDateValue;\r\n this.visitDescription = item.visitDescription;\r\n this.test = item.test;\r\n this.testGroup = item.testGroup;\r\n this.labTestResults = sortBy(combinedResults, combinedSortFields);\r\n this.isOptional = item.isOptional;\r\n this.isQuestion = item.isQuestion;\r\n this.exportSortId = exportSortId ? exportSortId : item.exportSortId;\r\n }\r\n\r\n public setLabTestResultExportSortId(exportSortId: number) {\r\n this.labTestResults.forEach(res => {\r\n this.exportSortId = exportSortId;\r\n res.exportSortId = exportSortId;\r\n });\r\n\r\n }\r\n}","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { AgRendererComponent } from 'ag-grid-angular/main';\r\nimport { DataRevisionIndicator } from '../../shared/data-revision/data-revision-indicator';\r\nimport { ICellRendererParams } from 'ag-grid-community';\r\nimport { isEmpty } from 'lodash';\r\nimport { SubjectColumnParams } from './osr-subject-columns-renderer.component';\r\nimport { StandardTestResultsGridColumn } from './standard-test-results.component';\r\n\r\n@Component({\r\n selector: 'standard-test-results-ag-group-renderer',\r\n template: require('./standard-test-results-ag-group-renderer.component.html'),\r\n styles: [require('./standard-test-results-ag-group-renderer.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class StandardTestResultsAgGroupRendererComponent implements AgRendererComponent {\r\n public groupType: string;\r\n public groupValue: string;\r\n public childrenCounter: number;\r\n public hasDataRevision = false;\r\n public params: SubjectColumnParams;\r\n public revisionMessage: string;\r\n\r\n constructor(private dataRevisionIndicator: DataRevisionIndicator) {\r\n }\r\n\r\n public refresh() {\r\n return false;\r\n }\r\n\r\n public get hasData() {\r\n return !!this.params;\r\n }\r\n\r\n public get routerLinkExists() {\r\n return !isEmpty(this.params.routerLink);\r\n }\r\n\r\n public agInit(params: ICellRendererParams): void {\r\n this.params = params.value;\r\n\r\n const groupColumn = params.api.getColumnDef(params.node.field) as StandardTestResultsGridColumn;\r\n if (groupColumn) {\r\n this.groupType = groupColumn.headerName;\r\n\r\n if (groupColumn.hasDataRevision && groupColumn.getDataRevisionMessage) {\r\n this.hasDataRevision = params.node.childrenAfterFilter.some(child => child.data && groupColumn.hasDataRevision(child.data));\r\n this.revisionMessage = groupColumn.getDataRevisionMessage(this.dataRevisionIndicator);\r\n }\r\n }\r\n\r\n this.childrenCounter = params.node.childrenAfterFilter.length;\r\n this.groupValue = params.node.key ? params.node.key.toString() : null;\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { comparators } from '../../core/comparators';\r\nimport { LabTestResultGridRowItem } from '../grid-row-item';\r\nimport { StandardTestResultsItem } from './standard-test-results.component';\r\nimport { split } from 'lodash';\r\n\r\nexport interface StandardTestResultSortableRow {\r\n sortableName: string;\r\n toString: () => string;\r\n}\r\n\r\n@Injectable()\r\nexport class StandardTestResultsSort {\r\n\r\n constructor() { }\r\n\r\n public getVisitName(x: LabTestResultGridRowItem | StandardTestResultsItem): string {\r\n return this.getEntityInfo(x, x.data.visitName);\r\n }\r\n\r\n public getComments(x: LabTestResultGridRowItem): string {\r\n return this.getEntityInfo(x, x.data.comments);\r\n }\r\n\r\n public sortEntities(a: string, b: string) {\r\n const separator = ':';\r\n const splitA = split(a, separator);\r\n const splitB = split(b, separator);\r\n\r\n let result = comparators.stringComparator(splitA[0] ? splitA[0].trim() : null, splitB[0] ? splitB[0].trim() : null);\r\n if (result === 0) {\r\n result = comparators.numberComparator(splitA[1] ? parseInt(splitA[1].trim(), 10) : null, splitB[1] ? parseInt(splitB[1].trim(), 10) : null);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private getEntityInfo(x: LabTestResultGridRowItem | StandardTestResultsItem, entityValue: string): string {\r\n const entityInfo: string[] = [];\r\n entityInfo.push(entityValue);\r\n entityInfo.push(` : ${x.data.exportSortId}`);\r\n\r\n return entityInfo.join(' ');\r\n }\r\n}","import { Component, ChangeDetectionStrategy, Inject } from '@angular/core';\r\nimport { Observable, combineLatest, BehaviorSubject, Subject } from 'rxjs';\r\nimport { map as rxMap } from 'rxjs/operators';\r\nimport { ICellRendererParams, GridOptions } from 'ag-grid-community';\r\nimport {\r\n CovanceGridColumn, dateTimeRenderer, dateTimeComparator, MulticellParams, MulticellTooltip,\r\n MulticellItem, MulticellAgRendererComponent, CovanceAgGridHelper\r\n} from '../../covance-ag-grid';\r\nimport { LabTestResult } from '../../lab-test-results';\r\nimport { comparators } from '../../core';\r\nimport { chain, sortBy, isNil, isEmpty, flatMap, map, partition, flatten } from 'lodash';\r\nimport { LabTestResultGridRowItem } from '../grid-row-item';\r\nimport { OnScreenResultsRenderer } from '../on-screen-results-renderer';\r\nimport { groupingOptions, GroupingOptionItem } from './../../grouping-selector/grouping-options';\r\nimport { OsrSubjectColumnRendererComponent } from './osr-subject-columns-renderer.component';\r\nimport { TestResultsParams, TestResultAgRendererComponent } from '../test-result-ag-renderer.component';\r\nimport { GridLegendItem } from '../../legend';\r\nimport { createLegend } from '../osr-legend-generator';\r\nimport { StandardTestResultsData } from './standard-test-result-data';\r\nimport { StandardTestResultHelpers } from './standard-test-result-helpers';\r\nimport { TermsStorage } from '../../corporate/terms-storage';\r\nimport { LabTestsGridColumns } from '../../subjects/lab-tests-grid-columns';\r\nimport { covanceExcelStyles } from '../../covance-ag-grid/excel-styles';\r\nimport { SortModel } from '../../covance-ag-grid/ag-export.component';\r\nimport { StandardTestResultsAgGroupRendererComponent } from './standard-test-results-ag-group-renderer.component';\r\nimport { DataRevisionIndicator } from '../../shared/data-revision/data-revision-indicator';\r\nimport { StandardTestResultsSort, StandardTestResultSortableRow } from './standard-test-results-sort';\r\nimport { TestTitleAgRendererComponent } from './test-title-ag-renderer.component';\r\nimport { TestVisitAgRendererComponent } from './test-visit-ag-renderer.component';\r\nimport { LAB_TEST_RESULTS_LINK_BUILDER, LabTestResultsLinkBuilder } from '../../subjects/lab-test-results-link-builder';\r\nimport { SITE_LAB_RESULTS_STORAGE, SiteTestDataStorage } from './site-test-data-storage';\r\n\r\nexport interface StandardTestResultsItem extends ICellRendererParams {\r\n data: StandardTestResultsData;\r\n}\r\n\r\nexport interface StandardTestResultsGridColumn extends CovanceGridColumn {\r\n hasDataRevision?: (labTestResult: LabTestResult) => boolean;\r\n getDataRevisionMessage?: (dataRevisionIndicator: DataRevisionIndicator) => string;\r\n}\r\n\r\n@Component({\r\n selector: 'lab-tests',\r\n template: require('./standard-test-results.component.html'),\r\n styles: [require('./standard-test-results.component.scss')],\r\n providers: [StandardTestResultHelpers, ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\n\r\nexport class StandardTestResultsComponent {\r\n\r\n public get disclaimer() {\r\n return this.termsStorage.osrDisclaimerText;\r\n }\r\n public columns: StandardTestResultsGridColumn[];\r\n public commonColumns: StandardTestResultsGridColumn[];\r\n public exportColumns: StandardTestResultsGridColumn[];\r\n public results: Observable;\r\n public exportResults: LabTestResult[];\r\n public groupOptions: GroupingOptionItem[] = [groupingOptions.none, groupingOptions.subject, groupingOptions.visit];\r\n public groupBy: GroupingOptionItem = this.groupOptions[0];\r\n public legend: GridLegendItem[] = [];\r\n public exportGrid: GridOptions = {\r\n excelStyles: covanceExcelStyles\r\n };\r\n public gridOptions: GridOptions = {\r\n excelStyles: covanceExcelStyles,\r\n groupRowRendererParams: { suppressCount: true },\r\n groupRowInnerRendererFramework: StandardTestResultsAgGroupRendererComponent,\r\n animateRows: false,\r\n rowClass: 'ag-row-group-ellipsis'\r\n };\r\n public readonly currentGrouping = new Subject();\r\n\r\n private hiddenColumns: string[] = [];\r\n private readonly subjectFieldName = 'initials';\r\n private gridSortModel: Object;\r\n\r\n constructor(\r\n @Inject(SITE_LAB_RESULTS_STORAGE) labTestDataSource: SiteTestDataStorage,\r\n @Inject(LAB_TEST_RESULTS_LINK_BUILDER) linkBuilder: LabTestResultsLinkBuilder,\r\n private onScreenResultsRenderer: OnScreenResultsRenderer,\r\n private helper: StandardTestResultHelpers,\r\n private labTestsGridColumns: LabTestsGridColumns,\r\n private termsStorage: TermsStorage,\r\n private gridHelper: CovanceAgGridHelper,\r\n private standardTestResultsSort: StandardTestResultsSort,\r\n ) {\r\n this.commonColumns = [\r\n {\r\n headerName: 'Collected Time',\r\n field: 'visitCollectionDate',\r\n cellRenderer: (params: LabTestResultGridRowItem) => {\r\n return dateTimeRenderer({ value: params.data && params.data.visitCollectionDate });\r\n },\r\n getQuickFilterText: (params: LabTestResultGridRowItem) => dateTimeRenderer({ value: params.data && params.data.visitCollectionDate })\r\n },\r\n {\r\n headerName: 'Accession',\r\n field: 'accessionNumber'\r\n },\r\n {\r\n headerName: 'Test Group',\r\n field: 'testGroup'\r\n },\r\n {\r\n headerName: 'Test',\r\n field: 'test',\r\n cellRendererFramework: TestTitleAgRendererComponent\r\n }\r\n ];\r\n this.columns = [\r\n {\r\n headerName: 'Subject',\r\n field: this.subjectFieldName,\r\n valueGetter: (params: StandardTestResultsItem) => this.helper.getSubjectInfo(params, linkBuilder.getSubjectLink(params)), \r\n cellRendererFramework: OsrSubjectColumnRendererComponent,\r\n comparator: this.helper.sortSubjects,\r\n hasDataRevision: (data: LabTestResult) => data && data.hasSubjectDataRevision,\r\n getDataRevisionMessage: (dataRevisionIndicator: DataRevisionIndicator) => dataRevisionIndicator.subjectDataRevisionMessage\r\n\r\n },\r\n {\r\n headerName: 'Visit',\r\n field: 'visitName',\r\n valueGetter: (params: StandardTestResultsItem) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n\r\n return {\r\n sortableName: this.standardTestResultsSort.getVisitName(params),\r\n toString: () => params.data.visitName\r\n } as StandardTestResultSortableRow;\r\n },\r\n cellRendererFramework: TestVisitAgRendererComponent,\r\n comparator: (a: StandardTestResultSortableRow, b: StandardTestResultSortableRow) => this.standardTestResultsSort.sortEntities(a ? a.sortableName : null, b ? b.sortableName : null),\r\n hasDataRevision: (data: LabTestResult) => data && data.hasVisitDataRevision,\r\n getDataRevisionMessage: (dataRevisionIndicator: DataRevisionIndicator) => dataRevisionIndicator.visitDataRevisionMessage\r\n },\r\n ...this.commonColumns,\r\n {\r\n headerName: 'Value',\r\n field: 'value',\r\n valueGetter: (params: StandardTestResultsItem) => {\r\n const renderData = this.onScreenResultsRenderer.getLabTestResultsRenderData(params.data ? params.data.labTestResults : []);\r\n\r\n return {\r\n labTestResults: renderData,\r\n toString: () => renderData.map(d => d.text).join('\\n\\n')\r\n } as TestResultsParams;\r\n },\r\n cellRendererFramework: TestResultAgRendererComponent,\r\n getLineCount: (entity: StandardTestResultsData) => {\r\n return entity.labTestResults.length;\r\n },\r\n getRowHeight: (entity: StandardTestResultsData) => {\r\n //the value of lineHeight should match the one in grid.scss\r\n const lineHeight = 23;\r\n\r\n return entity.labTestResults.length * lineHeight;\r\n },\r\n comparator: (a: TestResultsParams, b: TestResultsParams) =>\r\n comparators.stringComparator(this.helper.getDisplayValue(a), this.helper.getDisplayValue(b))\r\n },\r\n {\r\n headerName: 'Flags',\r\n field: 'flags',\r\n comparator: (flagsA: MulticellParams, flagsB: MulticellParams): number => {\r\n const a = flagsA ? flagsA.toString() : null;\r\n const b = flagsB ? flagsB.toString() : null;\r\n\r\n return comparators.stringComparator(a, b);\r\n },\r\n valueGetter: (params: StandardTestResultsItem) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n const items = params.data.labTestResults.map(result => {\r\n const tooltips = result.flags.map(flag => {\r\n return {\r\n title: flag.nameUpperCase,\r\n content: flag.category\r\n } as MulticellTooltip;\r\n });\r\n\r\n return {\r\n displayValue: this.labTestsGridColumns.sortFlags(result.flags),\r\n tooltips: sortBy(tooltips, x => x.content)\r\n } as MulticellItem;\r\n }\r\n );\r\n return {\r\n alwaysShowTooltip: true,\r\n items: items,\r\n toString: () => items.map(i => i.displayValue).join('\\n')\r\n } as MulticellParams;\r\n },\r\n cellRendererFramework: MulticellAgRendererComponent,\r\n cellClass: 'flags-exist'\r\n },\r\n {\r\n headerName: 'Comments',\r\n field: 'comments',\r\n valueGetter: (params: StandardTestResultsItem) => {\r\n const comments = params.data ? params.data.labTestResults.map(d => d.comments) : [];\r\n return {\r\n alwaysShowTooltip: false,\r\n items: comments.map(comment => {\r\n return {\r\n displayValue: comment,\r\n tooltips: [{ content: comment }]\r\n } as MulticellItem;\r\n }),\r\n toString: () => comments.join('\\n')\r\n } as MulticellParams;\r\n },\r\n comparator: (a: MulticellParams, b: MulticellParams) => {\r\n return comparators.stringComparator(a.toString(), b.toString());\r\n },\r\n cellRendererFramework: MulticellAgRendererComponent\r\n },\r\n {\r\n headerName: 'Range',\r\n field: 'results',\r\n valueGetter: this.helper.getResultRenderer(r => r.range)\r\n },\r\n {\r\n headerName: 'Units',\r\n field: 'unit',\r\n valueGetter: this.helper.getResultRenderer(r => r.unit || '')\r\n }\r\n ];\r\n this.hiddenColumns = this.columns.filter(col => col.hide).map(col => col.headerName);\r\n var resultsData = labTestDataSource.getData\r\n .pipe(\r\n rxMap((data: LabTestResult[]): StandardTestResultsData[] => {\r\n\r\n if (!data) {\r\n return null;\r\n }\r\n\r\n this.exportColumns = this.getExportColumns(data);\r\n const splitResult = partition(data, (a: LabTestResult) => a.isCombinedResult && !isNil(a.visitTestId));\r\n const combinedLabResults = splitResult[0];\r\n const usualResults = splitResult[1];\r\n\r\n const items = usualResults.map((item: LabTestResult, itemIndex: number) => {\r\n return new StandardTestResultsData([item], itemIndex);\r\n });\r\n const ind = usualResults.length;\r\n let index = ind - 1;\r\n\r\n const combinedLabResultsData = chain(combinedLabResults)\r\n .groupBy(r => helper.getCombinedLabTestResultsUniqKey(r))\r\n .map((combinedResults: LabTestResult[]) => new StandardTestResultsData(combinedResults))\r\n .value();\r\n items.push(...combinedLabResultsData);\r\n\r\n items.sort((a: StandardTestResultsData, b: StandardTestResultsData) => this\r\n .defaultStandardTestResultSort(a, b));\r\n items.forEach((item: StandardTestResultsData) => {\r\n index++;\r\n item.setLabTestResultExportSortId(index);\r\n });\r\n\r\n this.exportResults = flatten(items.map(r => r.labTestResults));\r\n this.legend = createLegend(data);\r\n\r\n return items;\r\n })\r\n );\r\n\r\n this.results = combineLatest(resultsData, this.currentGrouping)\r\n .pipe(\r\n rxMap(([resultData, currentGrouping]) => {\r\n const groupedBy = currentGrouping.columnTitle;\r\n const defaultStandardTestResultSort = this.isSortModelEmpty()\r\n ? null\r\n : this.defaultStandardTestResultSort;\r\n const groupResult = this.gridHelper.groupData(groupedBy, resultData, this.columns, this.hiddenColumns, defaultStandardTestResultSort);\r\n this.columns = groupResult.columns;\r\n var groupedData = groupResult.data;\r\n if (!isEmpty(groupedData) && currentGrouping === groupingOptions.none && this.isSortModelEmpty()) {\r\n return groupedData.sort(\r\n (a, b) => this.helper.sortLabTestResultData(a.labTestResults[0], b.labTestResults[0]));\r\n }\r\n\r\n return groupedData;\r\n })\r\n );\r\n }\r\n\r\n public onGroupingChange(option: GroupingOptionItem) {\r\n this.currentGrouping.next(option);\r\n }\r\n\r\n public handleSubjectSort = (sortModels: SortModel[]): SortModel[] => {\r\n return flatMap(sortModels, sortModel => {\r\n if (sortModel.colId === this.subjectFieldName) {\r\n return map(this.labTestsGridColumns.getSubjectExportColumns(), (subjectColumn: CovanceGridColumn): SortModel => {\r\n return { colId: subjectColumn.field, sort: sortModel.sort };\r\n });\r\n }\r\n return sortModel;\r\n });\r\n }\r\n\r\n public onDisplayedColumnsChanged() {\r\n // restore the current sort after group/ungroup\r\n this.restoreSortModel();\r\n }\r\n\r\n public onGridSortChanged() {\r\n this.saveSortModel();\r\n }\r\n\r\n public onGridQuickFilterChanged(filter: string) {\r\n if (this.exportGrid) {\r\n this.exportGrid.quickFilterText = filter;\r\n }\r\n }\r\n\r\n private readonly defaultStandardTestResultSort = (a: StandardTestResultsData, b: StandardTestResultsData) => this.helper.sortLabTestResultData(a ? a.labTestResults[0] : null, b ? b.labTestResults[0] : null);\r\n\r\n private getExportColumns(res: LabTestResult[]): CovanceGridColumn[] {\r\n return [\r\n ...this.labTestsGridColumns.getSubjectExportColumns(),\r\n {\r\n headerName: 'Visit',\r\n field: 'visitNameToDisplay',\r\n valueGetter: (params: LabTestResultGridRowItem) => {\r\n const data = params.data;\r\n if (!data) {\r\n return null;\r\n }\r\n\r\n return data.visitName || '';\r\n }\r\n },\r\n {\r\n noExport: true,\r\n headerName: 'Visit',\r\n field: 'visitName',\r\n valueGetter: (params: LabTestResultGridRowItem) => {\r\n const data = params.data;\r\n if (!data) {\r\n return null;\r\n }\r\n\r\n return this.standardTestResultsSort.getVisitName(params);\r\n },\r\n comparator: (a, b) => this.standardTestResultsSort.sortEntities(a, b)\r\n },\r\n {\r\n headerName: 'Visit Data Revision',\r\n field: 'hasVisitDataRevision',\r\n valueGetter: (params: LabTestResultGridRowItem) => this.helper.getDataRevision(params, labTest => labTest.hasVisitDataRevision)\r\n },\r\n ...this.commonColumns,\r\n {\r\n headerName: 'Administrative Question',\r\n field: 'administrativeQuestion',\r\n valueGetter: (params: LabTestResultGridRowItem) => this.helper.getAdminQuestionRenderer(params)\r\n },\r\n {\r\n headerName: 'Value',\r\n field: 'value',\r\n valueGetter: (params: LabTestResultGridRowItem) => {\r\n if (!params || !params.data) {\r\n return null;\r\n }\r\n const data = params.data;\r\n if (data.isCancelled) {\r\n return '';\r\n }\r\n const result = data.currentResult;\r\n const stringRes = !isNil(result) ? result.stringResult : '';\r\n\r\n return stringRes;\r\n }\r\n },\r\n {\r\n headerName: 'Result Data Revision',\r\n field: 'hasResultDataRevision',\r\n valueGetter: (params: LabTestResultGridRowItem) => this.helper.getDataRevision(params, labTest => labTest.hasResultDataRevision)\r\n },\r\n {\r\n headerName: 'Flags',\r\n field: 'flags',\r\n valueGetter: (params: LabTestResultGridRowItem) => this.labTestsGridColumns.getFlags(params)\r\n },\r\n {\r\n headerName: 'Cancellation Reason',\r\n field: 'cancellationReason',\r\n valueGetter: (params: LabTestResultGridRowItem) => {\r\n if (!params || !params.data) {\r\n return null;\r\n }\r\n\r\n return params.data.cancellationReason;\r\n }\r\n },\r\n {\r\n headerName: 'Comments',\r\n field: 'commentsToDisplay',\r\n valueGetter: (params: LabTestResultGridRowItem) => {\r\n const data = params.data;\r\n if (!data) {\r\n return null;\r\n }\r\n\r\n return data.comments;\r\n }\r\n },\r\n {\r\n noExport: true,\r\n headerName: 'Comments',\r\n field: 'comments',\r\n valueGetter: (params: LabTestResultGridRowItem) => {\r\n const data = params.data;\r\n if (!data) {\r\n return null;\r\n }\r\n return this.standardTestResultsSort.getComments(params);\r\n },\r\n comparator: (a, b) => this.standardTestResultsSort.sortEntities(a, b)\r\n },\r\n {\r\n headerName: 'Range',\r\n field: 'results',\r\n valueGetter: (params: LabTestResultGridRowItem) => this.helper.getRangeRendererForTestResultExport(res, params)\r\n },\r\n {\r\n headerName: 'Units',\r\n field: 'unit',\r\n valueGetter: (params: LabTestResultGridRowItem) => this.helper.getUnitsForTestResultExport(res, params)\r\n }\r\n ];\r\n }\r\n\r\n private saveSortModel() {\r\n if (this.gridOptions.api) {\r\n this.gridSortModel = this.gridOptions.api.getSortModel();\r\n }\r\n }\r\n\r\n private restoreSortModel() {\r\n if (this.gridSortModel) {\r\n this.gridOptions.api.setSortModel(this.gridSortModel);\r\n }\r\n }\r\n\r\n private isSortModelEmpty(): boolean {\r\n return !this.gridOptions.api || isEmpty(this.gridOptions.api.getSortModel());\r\n }\r\n}\r\n","import { BandRenderer } from './band-renderer';\r\nimport { NgModule } from '@angular/core';\r\nimport { TrendsSubjectColorResolver } from './trends-subject-color-resolver';\r\nimport { OsrLegendDataService } from './osr-legend-data.service';\r\nimport { TrendsChartDataBuilder } from './trends-chart-data-builder';\r\nimport { BoxplotChartDataBuilder } from './boxplot-chart-data-builder';\r\n\r\n@NgModule({\r\n providers: [\r\n TrendsSubjectColorResolver,\r\n OsrLegendDataService,\r\n TrendsChartDataBuilder,\r\n BoxplotChartDataBuilder,\r\n BandRenderer\r\n ],\r\n})\r\nexport class ChartsModule { }","import { Component, ChangeDetectionStrategy, Input } from '@angular/core';\r\nimport { Settings } from '../../core';\r\nimport { Params, ActivatedRoute, Router } from '@angular/router';\r\nimport { LOAD_ALL_RESULTS_QUERY_PARAMETER } from './standart-test-result-query-parameters';\r\n\r\n@Component({\r\n selector: 'large-data-warning',\r\n template: require('./large-data-warning.component.html'),\r\n styles: [require('./large-data-warning.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LargeDataWarningComponent {\r\n\r\n @Input()\r\n public showWarning: boolean;\r\n\r\n public maxNumOfSubjects: number;\r\n\r\n constructor(\r\n settings: Settings,\r\n private route: ActivatedRoute,\r\n private router: Router) {\r\n this.maxNumOfSubjects = settings.extremelyLargeSiteThreshhold;\r\n }\r\n \r\n public toggleLoadAll() {\r\n const queryParams: Params = {};\r\n queryParams[LOAD_ALL_RESULTS_QUERY_PARAMETER] = true;\r\n\r\n this.router.navigate([], {\r\n relativeTo: this.route,\r\n queryParams: queryParams,\r\n queryParamsHandling: 'merge'\r\n });\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { SharedModule } from '../../shared/shared.module';\r\nimport { LabTrendsChartComponent } from './lab-trends-chart.component';\r\nimport { StandardTestResultsMainComponent } from './standard-test-results-main.component';\r\nimport {StandardTestResultsComponent} from './standard-test-results.component';\r\nimport {CovanceAgGridModule} from '../../covance-ag-grid/covance-ag-grid.module';\r\nimport {LabBoxplotChartComponent} from './lab-boxplot-chart.component';\r\nimport {TestVisitAgRendererComponent} from './test-visit-ag-renderer.component';\r\nimport {TestTitleAgRendererComponent} from './test-title-ag-renderer.component';\r\nimport {TestSubjectAgRendererComponent} from './test-subject-ag-renderer.component';\r\nimport {CovanceFilterModule} from '../../covance-filter/covance-filter.module';\r\nimport { GroupingModule } from '../../grouping-selector/grouping.module';\r\nimport { LegendModule } from '../../legend/legend.module';\r\nimport { CorporateModule } from '../../corporate/corporate.module';\r\nimport { StandardTestResultsAgGroupRendererComponent } from './standard-test-results-ag-group-renderer.component';\r\nimport { StandardTestResultsSort } from './standard-test-results-sort';\r\nimport { ChartsModule } from '../../charts/charts.module';\r\nimport { OnScreenResultsFilterDefenitions } from './on-screen-results-filter-defenitions';\r\nimport { LargeDataWarningComponent } from './large-data-warning.component';\r\n\r\n@NgModule({\r\n imports: [\r\n SharedModule,\r\n CovanceAgGridModule,\r\n CovanceFilterModule,\r\n GroupingModule,\r\n LegendModule,\r\n CorporateModule,\r\n ChartsModule\r\n ],\r\n declarations: [\r\n StandardTestResultsMainComponent,\r\n LabTrendsChartComponent,\r\n StandardTestResultsComponent,\r\n LabBoxplotChartComponent,\r\n TestVisitAgRendererComponent,\r\n TestTitleAgRendererComponent,\r\n TestSubjectAgRendererComponent,\r\n StandardTestResultsAgGroupRendererComponent,\r\n LargeDataWarningComponent,\r\n ],\r\n entryComponents: [\r\n TestVisitAgRendererComponent,\r\n TestTitleAgRendererComponent,\r\n TestSubjectAgRendererComponent,\r\n StandardTestResultsAgGroupRendererComponent,\r\n ],\r\n exports: [\r\n LargeDataWarningComponent,\r\n LabTrendsChartComponent,\r\n StandardTestResultsComponent,\r\n LabBoxplotChartComponent\r\n ],\r\n providers: [ StandardTestResultsSort, OnScreenResultsFilterDefenitions ]\r\n})\r\nexport class StandardTestResultsMainModule { }","'use strict';\r\n\r\nimport { dataMember, required } from 'santee-dcts';\r\n\r\nexport class Study {\r\n\r\n @dataMember()\r\n @required()\r\n public studyId: number;\r\n\r\n @dataMember()\r\n @required()\r\n public sponsor: string;\r\n\r\n @dataMember()\r\n @required()\r\n public clientProtocol: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public covanceProjectNumber: string;\r\n\r\n public get studyUrlParameter() {\r\n return this.covanceProjectNumber || `studyId:${this.studyId}`;\r\n }\r\n}","'use strict';\r\n\r\nimport { dataMember, required } from 'santee-dcts';\r\nimport { Study } from '../studies';\r\nimport { siteDisplayNameRenderer } from '../renderer/site-display-name-renderer';\r\n\r\nexport class Site {\r\n\r\n @dataMember()\r\n @required()\r\n public siteId: number;\r\n\r\n @required({ nullable: true })\r\n @dataMember()\r\n public siteNum: string;\r\n\r\n @required({ nullable: true })\r\n @dataMember()\r\n public investigatorFullName: string;\r\n\r\n @required({ nullable: true })\r\n @dataMember()\r\n public study: Study;\r\n\r\n @required({ nullable: true })\r\n @dataMember()\r\n public isFavorite: boolean;\r\n\r\n @required()\r\n @dataMember()\r\n public isExtremelyLarge: boolean;\r\n\r\n @required()\r\n @dataMember()\r\n public numberOfSubjects: number;\r\n\r\n @dataMember()\r\n public isAgeProject: boolean;\r\n\r\n @dataMember()\r\n public ctSiteId: number;\r\n\r\n public toString() {\r\n return this.description;\r\n }\r\n\r\n public get description() {\r\n return siteDisplayNameRenderer({siteNumber: this.siteNum, investigatorFullName: this.investigatorFullName});\r\n }\r\n\r\n public get siteUrlParameter(): string {\r\n return this.siteNum || `siteId:${this.siteId}`;\r\n }\r\n}\r\n","import { dataMember, required } from 'santee-dcts';\r\n\r\nexport class CultureInfo {\r\n\r\n @dataMember()\r\n @required()\r\n public languageRowId: string;\r\n\r\n @dataMember()\r\n @required()\r\n public languageCode: string;\r\n\r\n @dataMember()\r\n @required()\r\n public defaultPreference: number;\r\n\r\n @dataMember()\r\n @required()\r\n public language: string;\r\n\r\n public toString() {\r\n return this.language;\r\n }\r\n} \r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, ConnectableObservable, Subscription } from 'rxjs';\r\nimport { map, publishLast, publishReplay } from 'rxjs/operators';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { CultureInfo } from './culture-info';\r\nimport { deserializeArray } from 'santee-dcts';\r\nimport { Settings } from './settings';\r\nimport { FileLink } from '../documents';\r\n\r\nexport type LangSorter = (ci: FileLink) => number;\r\n\r\n@Injectable()\r\nexport class LanguagesStore {\r\n private languageOrderer: ConnectableObservable = null;\r\n private languages: ConnectableObservable = null;\r\n private allLanguageSubscription: Subscription = null;\r\n private orderLanguageSubscription: Subscription = null;\r\n\r\n constructor(private http: HttpClient, private settings: Settings) { }\r\n\r\n public dispose() {\r\n this.allLanguageSubscription && this.allLanguageSubscription.unsubscribe();\r\n this.orderLanguageSubscription && this.orderLanguageSubscription.unsubscribe();\r\n }\r\n\r\n public get allLanguages() {\r\n if (this.languages === null) {\r\n this.languages = this.getLanguages();\r\n this.allLanguageSubscription = this.languages.connect();\r\n }\r\n\r\n return this.languages;\r\n }\r\n\r\n public get orderLanguage(): Observable {\r\n if (this.languageOrderer === null) {\r\n this.languageOrderer = this.allLanguages\r\n .pipe(\r\n map(langs => {\r\n const languageIndexes: { [langId: string]: number } = {};\r\n langs.forEach((l, index) => languageIndexes[l.languageRowId] = index);\r\n const sortFunc = (lang: FileLink) =>\r\n languageIndexes[lang.languageId];\r\n return sortFunc;\r\n }),\r\n publishReplay(1)\r\n ) as ConnectableObservable;\r\n this.orderLanguageSubscription = this.languageOrderer.connect();\r\n }\r\n return this.languageOrderer;\r\n }\r\n\r\n private getLanguages(): ConnectableObservable {\r\n return this.http\r\n .get(`${this.settings.apiUrl}/user/languages`)\r\n .pipe(\r\n map((rawData) => deserializeArray(rawData, CultureInfo)),\r\n publishLast()) as ConnectableObservable;\r\n }\r\n}","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { IHeaderAngularComp } from 'ag-grid-angular/main';\r\nimport { IHeaderParams } from 'ag-grid-community/main';\r\n\r\nexport interface FilterHeaderParams extends IHeaderParams {\r\n searchTerm: FormControl;\r\n}\r\n\r\n@Component({\r\n selector: 'filter-header',\r\n template: require('./filter-header.component.html'),\r\n styles: [require('./filter-header.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class FilterHeaderComponent implements IHeaderAngularComp {\r\n\r\n public displayName: string;\r\n\r\n public searchTerm = new FormControl('');\r\n\r\n public agInit(params: FilterHeaderParams): void {\r\n this.displayName = `${params.displayName}...`;\r\n this.searchTerm = params.searchTerm;\r\n }\r\n}","import { Injectable, Injector, ErrorHandler} from '@angular/core';\r\nimport { MdlSnackbarService, IMdlDialogAction } from '@angular-mdl/core';\r\nimport { Location } from '@angular/common';\r\n\r\n@Injectable()\r\nexport class GlobalErrorHandler extends ErrorHandler {\r\n\r\n constructor(private injector: Injector, private location: Location) {\r\n super();\r\n }\r\n\r\n public handleError(error: any) {\r\n try {\r\n const errorCode = this.getErrorCode(error);\r\n\r\n if (errorCode === 401 || errorCode === 403) {\r\n this.redirectToErrorPage(errorCode);\r\n } else if (errorCode === 404) {\r\n this.showWarningNotification('One of resources you requested is not found, please contact your system administrator.');\r\n } else {\r\n this.showWarningNotification('An error occurred, please refresh the page and try again or contact your system administrator.', \r\n { handler: () => window.location.reload(true), text: 'REFRESH' });\r\n }\r\n } catch (innerError) {\r\n super.handleError(innerError);\r\n }\r\n\r\n super.handleError(error);\r\n }\r\n\r\n public displayErrorMsg(message: string, customAction?: IMdlDialogAction) {\r\n return this.showDismissNotification(message, customAction);\r\n }\r\n\r\n private getErrorCode(error: any) {\r\n if (error) {\r\n if (error.status) {\r\n return error.status;\r\n }\r\n\r\n if (error.rejection && error.rejection.status) {\r\n return error.rejection.status;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private showDismissNotification(message: string, customAction?: IMdlDialogAction) {\r\n const mdlSnackbarService = this.injector.get(MdlSnackbarService) as MdlSnackbarService;\r\n return mdlSnackbarService.showSnackbar({\r\n message: message,\r\n closeAfterTimeout: false,\r\n action: customAction\r\n });\r\n }\r\n\r\n private showWarningNotification(message: string, customAction?: IMdlDialogAction): void {\r\n const mdlSnackbarService = this.injector.get(MdlSnackbarService) as MdlSnackbarService;\r\n mdlSnackbarService.showSnackbar({\r\n message: message,\r\n closeAfterTimeout: false,\r\n action: customAction\r\n });\r\n }\r\n\r\n private redirectToErrorPage(errorCode: string): void {\r\n window.location.href = this.location.prepareExternalUrl(`/error/${errorCode}`);\r\n }\r\n} ","import { Injectable, SecurityContext } from '@angular/core';\r\nimport { first, map, skipWhile } from 'rxjs/operators';\r\nimport { AuthenticationState, AuthInfo } from '../authentication/authentication-state';\r\nimport { Observable } from 'rxjs';\r\nimport { LinkByFile, LinkByDocument } from '../documents';\r\nimport { Settings } from '../core/settings';\r\nimport { ActivityLogger } from '../activities/activity-logger';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Injectable()\r\nexport class ELearningOpener {\r\n\r\n private readonly $token: Observable;\r\n\r\n constructor(\r\n private readonly authenticationState: AuthenticationState,\r\n private readonly settings: Settings,\r\n private sanitizer: DomSanitizer,\r\n private readonly activityLogger: ActivityLogger,\r\n ) {\r\n this.$token = this.authenticationState.authInfo\r\n .pipe(\r\n skipWhile((x: AuthInfo) => !x.isAuthenticated),\r\n first(),\r\n map(x => x.idToken.idToken)\r\n );\r\n }\r\n\r\n public async openFromNotification(link: LinkByDocument): Promise {\r\n this.activityLogger.logDownloadActivity(link);\r\n\r\n const documentIdInput = this.createInputElement('documentId', link.documentId);\r\n const categoryIdInput = this.createInputElement('categoryId', link.categoryNaturalKey);\r\n return await this.submit([documentIdInput, categoryIdInput], false);\r\n }\r\n\r\n public async open(link: LinkByFile): Promise {\r\n this.activityLogger.logDownloadActivity(link);\r\n\r\n const documentIdInput = this.createInputElement('documentId', link.reportId);\r\n const documentLanguageIdInput = this.createInputElement('documentLanguageId', link.fileId);\r\n const categoryIdInput = this.createInputElement('categoryId', link.categoryNaturalKey);\r\n return await this.submit([documentIdInput, documentLanguageIdInput, categoryIdInput], true);\r\n }\r\n\r\n private async submit(formElements: HTMLInputElement[], byLanguageId: boolean): Promise {\r\n return this.$token.pipe(\r\n map((token: string) => {\r\n const form = document.createElement('form');\r\n form.action = `${this.settings.apiUrl}/static-content/e-learning${byLanguageId ? '' : '/notification-link'}`;\r\n form.method = 'POST';\r\n form.target = '_blank';\r\n\r\n const authInput = this.createInputElement(this.settings.authenticationTokenPostFieldName, token);\r\n form.appendChild(authInput);\r\n \r\n for (var el of formElements) {\r\n form.appendChild(el);\r\n }\r\n const parser = new DOMParser();\r\n const html = parser.parseFromString(this.sanitizer.sanitize(SecurityContext.HTML, form.innerHTML), 'text/html'); \r\n\r\n document.body.appendChild(form);\r\n form.submit();\r\n document.body.removeChild(form);\r\n\r\n return true;\r\n })\r\n ).toPromise();\r\n }\r\n\r\n private createInputElement(name: string, value: string): HTMLInputElement {\r\n const element = document.createElement('input');\r\n element.name = name;\r\n element.type = 'hidden';\r\n element.value = value;\r\n return element;\r\n }\r\n}\r\n","import { IMdlCustomDialogConfiguration, MdlDialogReference, MdlDialogService } from '@angular-mdl/core';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ColumnSettingsComponent, COLUMN_SETTING_TOKEN } from '../component/column-settings.component';\r\nimport { ColumnSettingInfo } from '../column-settings';\r\n\r\n\r\n@Injectable()\r\nexport class ColumnSettingsService {\r\n\r\n constructor(\r\n private readonly dialogService: MdlDialogService\r\n ) {\r\n }\r\n\r\n public openColumnSettingsPopup(columnSettingInfo: ColumnSettingInfo): Observable {\r\n \r\n const configDialog: IMdlCustomDialogConfiguration = {\r\n component: ColumnSettingsComponent,\r\n providers: [{\r\n provide: COLUMN_SETTING_TOKEN, useValue: columnSettingInfo\r\n }],\r\n isModal: true,\r\n classes: 'column-view-dialog',\r\n clickOutsideToClose: false,\r\n enterTransitionDuration: 400,\r\n leaveTransitionDuration: 400\r\n };\r\n\r\n return this.dialogService.showCustomDialog(configDialog);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { FilterFieldValue } from '../covance-filter.models';\r\nimport { CovanceFilterBaseType } from './covance-filter-base-type';\r\nimport { isBoolean } from 'lodash';\r\n\r\n@Injectable()\r\nexport class CovanceFilterCheckboxType extends CovanceFilterBaseType {\r\n constructor(router: Router, route: ActivatedRoute) {\r\n super(router, route);\r\n }\r\n\r\n public serializeValue(filterValue: any): string {\r\n return filterValue;\r\n }\r\n\r\n public isMatch(fieldVal: FilterFieldValue, value: any) {\r\n if (!isBoolean(value)) {\r\n return false;\r\n }\r\n\r\n return value === fieldVal.value;\r\n }\r\n\r\n public setValue(fieldVal: FilterFieldValue) {\r\n fieldVal.value = (fieldVal.queryParamValue === 'true');\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { FilterFieldValue } from '../covance-filter.models';\r\nimport { CovanceFilterBaseType } from './covance-filter-base-type';\r\nimport { isNil, isNumber } from 'lodash';\r\n\r\n@Injectable()\r\nexport class CovanceFilterNumberType extends CovanceFilterBaseType {\r\n constructor(router: Router, route: ActivatedRoute) {\r\n super(router, route);\r\n }\r\n \r\n public serializeValue(filterValue: any): string {\r\n return filterValue;\r\n }\r\n\r\n public isMatch(fieldVal: FilterFieldValue, value: any) {\r\n if (!isNumber(fieldVal.value)) {\r\n return false;\r\n }\r\n\r\n return value === fieldVal.value;\r\n }\r\n\r\n public setValue(fieldVal: FilterFieldValue) {\r\n fieldVal.value = !isNil(fieldVal.queryParamValue) ? +fieldVal.queryParamValue : null;\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { FilterFieldValue } from '../covance-filter.models';\r\nimport { CovanceFilterBaseType } from './covance-filter-base-type';\r\nimport { isEmpty, includes } from 'lodash';\r\n\r\n@Injectable()\r\nexport class CovanceFilterTextType extends CovanceFilterBaseType {\r\n constructor(router: Router, route: ActivatedRoute) {\r\n super(router, route);\r\n }\r\n\r\n public serializeValue(filterValue: any): string {\r\n return filterValue;\r\n }\r\n\r\n public isMatch(fieldVal: FilterFieldValue, value: any) {\r\n if (isEmpty(value)) {\r\n return false;\r\n }\r\n\r\n return includes(value.toLowerCase(), fieldVal.value.toLowerCase());\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ActivatedRoute, Router, Params } from '@angular/router';\r\nimport { FilterFieldValue, FilterAgeRangeValue } from '../covance-filter.models';\r\nimport { CovanceFilterBaseTypeComponent } from './covance-filter-base-type.component';\r\nimport { CovanceFilterBaseType } from './covance-filter-base-type';\r\nimport { isNil } from 'lodash';\r\n\r\n@Injectable()\r\nexport class CovanceFilterAgeRangeType extends CovanceFilterBaseType {\r\n private readonly separator = 'To';\r\n private readonly startRegExp = new RegExp(`^(\\\\d+?)[(](.*)[)]${this.separator}`);\r\n private readonly endRegExp = new RegExp(`${this.separator}(\\\\d+?)[(](.*)[)]$`);\r\n\r\n constructor(router: Router, route: ActivatedRoute) {\r\n super(router, route);\r\n }\r\n\r\n public serializeValue(filterValue: any): string {\r\n return filterValue;\r\n }\r\n\r\n public isMatch(fieldVal: FilterFieldValue, daysLived: number) {\r\n const filterValue = fieldVal.value as FilterAgeRangeValue;\r\n return filterValue.isInRange(daysLived);\r\n }\r\n\r\n public setValue(fieldVal: FilterFieldValue) {\r\n fieldVal.value = this.parseQueryString(fieldVal.queryParamValue);\r\n }\r\n\r\n public setQueryParamValue(fieldVal: FilterFieldValue) {\r\n if (!fieldVal.value) {\r\n fieldVal.queryParamValue = null;\r\n return;\r\n }\r\n const filterValue = fieldVal.value as FilterAgeRangeValue;\r\n const fromPart = !isNil(filterValue.ageValueStart) ? `${filterValue.ageValueStart}(${filterValue.ageUnitStart})` : '';\r\n const toPart = !isNil(filterValue.ageValueEnd) ? `${filterValue.ageValueEnd}(${filterValue.ageUnitEnd})` : '';\r\n fieldVal.queryParamValue = (!isNil(filterValue.ageValueStart) || !isNil(filterValue.ageValueEnd)) ?\r\n `${fromPart}${this.separator}${toPart}` : null;\r\n }\r\n\r\n private parseQueryString(value: string): FilterAgeRangeValue {\r\n if ( !value ) {\r\n return null;\r\n }\r\n \r\n const filter = new FilterAgeRangeValue(null, null, null, null);\r\n\r\n const matchStart = this.startRegExp.exec(value);\r\n const matchEnd = this.endRegExp.exec(value);\r\n\r\n filter.ageValueStart = matchStart && +matchStart[1];\r\n filter.ageUnitStart = matchStart && matchStart[2];\r\n filter.ageValueEnd = matchEnd && +matchEnd[1];\r\n filter.ageUnitEnd = matchEnd && matchEnd[2];\r\n\r\n return filter;\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { CovanceFilterDateType } from '../covance-filter-date-type';\r\nimport { FilterDateRangeValue, FilterFieldValue } from '../../covance-filter.models';\r\n\r\n@Injectable()\r\nexport class CovanceFilterDateTimeRangeType extends CovanceFilterDateType {\r\n private readonly separator = 'To';\r\n private readonly dateBeginRegExp = new RegExp(`^(\\\\d{4}-\\\\d{2}-\\\\d{2}T(\\\\d{2}:\\\\d{2}:\\\\d{2}))${this.separator}`);\r\n private readonly dateEndRegExp = new RegExp(`${this.separator}(\\\\d{4}-\\\\d{2}-\\\\d{2}T(\\\\d{2}:\\\\d{2}:\\\\d{2}))$`);\r\n private dynamicRanges: { [key: string]: () => FilterDateRangeValue } = {\r\n 'today': () => this.getTodayRange(),\r\n 'monthToDate': () => this.getMonthToDateRange(),\r\n 'yearToDate': () => this.getYearToDateRange()\r\n };\r\n\r\n constructor(router: Router, route: ActivatedRoute) {\r\n super(router, route);\r\n }\r\n\r\n public serializeValue(filterValue: any): string {\r\n const valueRange = filterValue as FilterDateRangeValue;\r\n if (valueRange == null) {\r\n return '';\r\n }\r\n switch (valueRange.rangeType) {\r\n case 'today': return 'Today';\r\n case 'monthToDate': return 'Month To Date';\r\n case 'yearToDate': return 'Year To Date';\r\n case 'dateRange': return `From ${valueRange.dateBegin || ' - '} To ${valueRange.dateEnd || ' - '}`;\r\n default: return '';\r\n }\r\n }\r\n\r\n public isMatch(fieldVal: FilterFieldValue, value: any) {\r\n const filterValue = fieldVal.value as FilterDateRangeValue;\r\n\r\n if (!filterValue) {\r\n return false;\r\n }\r\n\r\n if (!filterValue.dateBegin && !filterValue.dateEnd) {\r\n return false;\r\n }\r\n\r\n const date = this.formatDateTime(value);\r\n return (!filterValue.dateBegin || (date >= filterValue.dateBegin)) && (!filterValue.dateEnd || (date <= filterValue.dateEnd));\r\n }\r\n\r\n public setValue(fieldVal: FilterFieldValue) {\r\n const rangeResolver = this.dynamicRanges[fieldVal.queryParamValue];\r\n if (rangeResolver) {\r\n fieldVal.value = rangeResolver();\r\n } else {\r\n fieldVal.value = {\r\n rangeType: 'dateRange',\r\n dateBegin: this.getDateBegin(fieldVal.queryParamValue),\r\n dateEnd: this.getDateEnd(fieldVal.queryParamValue)\r\n } as FilterDateRangeValue;\r\n }\r\n this.changes.next(true);\r\n }\r\n\r\n public formatDateTime(value: moment.Moment): string {\r\n return moment.isMoment(value) ? value.format('YYYY-MM-DD HH:mm:ss') : '';\r\n }\r\n\r\n public setQueryParamValue(fieldVal: FilterFieldValue) {\r\n const filterValue = fieldVal.value as FilterDateRangeValue;\r\n\r\n if (!filterValue) {\r\n return;\r\n }\r\n\r\n if (filterValue.rangeType === 'dateRange') {\r\n fieldVal.queryParamValue = (filterValue.dateBegin || filterValue.dateEnd) ?\r\n `${(filterValue.dateBegin ? filterValue.dateBegin.replace(' ', 'T') : '')}${this.separator}${(filterValue.dateEnd \r\n ? filterValue.dateEnd.replace(' ', 'T') : '')}` : null;\r\n } else {\r\n fieldVal.queryParamValue = filterValue.rangeType;\r\n }\r\n }\r\n\r\n private getDateBegin(value: string): string {\r\n if (!value) {\r\n return null;\r\n }\r\n\r\n const match = this.dateBeginRegExp.exec(value);\r\n return match ? match[1] : '';\r\n }\r\n\r\n private getDateEnd(value: string): string {\r\n if (!value) {\r\n return null;\r\n }\r\n const match = this.dateEndRegExp.exec(value);\r\n return match ? match[1] : '';\r\n }\r\n\r\n private getTodayRange(): FilterDateRangeValue {\r\n return {\r\n dateBegin: this.formatDateTime(moment()),\r\n dateEnd: this.formatDateTime(moment()),\r\n rangeType: 'today'\r\n };\r\n }\r\n\r\n private getMonthToDateRange(): FilterDateRangeValue {\r\n return {\r\n dateBegin: this.formatDateTime(moment().startOf('month')),\r\n dateEnd: this.formatDateTime(moment()),\r\n rangeType: 'monthToDate'\r\n };\r\n }\r\n\r\n private getYearToDateRange(): FilterDateRangeValue {\r\n return {\r\n dateBegin: this.formatDateTime(moment().startOf('year')),\r\n dateEnd: this.formatDateTime(moment()),\r\n rangeType: 'yearToDate'\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { TooltipRow } from '../shared';\r\nimport { chain, groupBy, keys, uniq, isNil } from 'lodash';\r\nimport { DataRevisionIndicator } from '../shared';\r\nimport { LabTestResult } from '../lab-test-results';\r\nimport { OnScreenResults } from './on-screen-results';\r\n\r\n@Injectable()\r\nexport class OnScreenResultsRenderer {\r\n\r\n constructor(private dataRevisionIndicator: DataRevisionIndicator) { }\r\n\r\n public getValue(\r\n entity: TEntity,\r\n valueGetter: (value: TEntity) => string,\r\n detailsCancellationReason: boolean = false): string {\r\n\r\n if (!entity) {\r\n return null;\r\n }\r\n\r\n let result: string;\r\n if (entity.isCancelled) {\r\n result = 'cancelled';\r\n if (detailsCancellationReason) {\r\n result += `\\n${entity.cancellationReason}`;\r\n }\r\n } else {\r\n result = valueGetter(entity);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n public getLabTestResultsRenderData(labTestResults: LabTestResult[]): LabTestResultData[] {\r\n const data = labTestResults.map((labTestResult: LabTestResult) => {\r\n const result = labTestResult.currentResult;\r\n\r\n const labTestResultData = new LabTestResultData();\r\n labTestResultData.isFlagged = labTestResult.isFlagged;\r\n labTestResultData.isCancelled = labTestResult.isCancelled;\r\n labTestResultData.hasResultDataRevision = labTestResult.hasResultDataRevision;\r\n labTestResultData.hasSubjectDataRevision = labTestResult.hasSubjectDataRevision;\r\n labTestResultData.hasVisitDataRevision = labTestResult.hasVisitDataRevision;\r\n\r\n if (labTestResultData.isCancelled) {\r\n labTestResultData.details.push({ title: 'Cancellation Reason', value: labTestResult.cancellationReason });\r\n } else {\r\n\r\n const stringRes = !isNil(result) ? result.stringResult : '';\r\n labTestResultData.displayValue = stringRes;\r\n labTestResultData.details.push({ title: 'Value', value: stringRes }); \r\n }\r\n\r\n if (labTestResultData.hasResultDataRevision) {\r\n labTestResultData.details.push({ title: 'Revision', value: this.dataRevisionIndicator.resultDataRevisionMessage });\r\n }\r\n\r\n return labTestResultData;\r\n });\r\n\r\n return data;\r\n }\r\n}\r\n\r\nexport class LabTestResultData {\r\n public displayValue: string;\r\n public isFlagged: boolean;\r\n public isCancelled: boolean;\r\n public hasResultDataRevision: boolean;\r\n public hasVisitDataRevision: boolean;\r\n public hasSubjectDataRevision: boolean;\r\n public details: TooltipRow[] = [];\r\n\r\n public get text() {\r\n return this.details\r\n .map(d => `${d.title}: ${d.value}`)\r\n .join('\\n');\r\n }\r\n}","import { InjectionToken } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { MicrobiologyData } from './microbiology-data';\r\n\r\nexport const MICROBIOLOGY_DATA_STORAGE = new InjectionToken('MicrobiologyDataStorageToken');\r\n\r\nexport interface MicrobiologyDataStorage {\r\n siteMicrobiologyData: Observable;\r\n}","import { Injectable } from '@angular/core';\r\nimport { ConnectableObservable, Subject, Subscription, concat } from 'rxjs';\r\nimport { map, publishReplay } from 'rxjs/operators';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Settings } from '../core/settings';\r\nimport { deserialize, dataMember } from 'santee-dcts';\r\n\r\n@Injectable()\r\nexport class TermsAcceptanceStorage {\r\n private readonly termsAcceptedSource = new Subject();\r\n\r\n private readonly mergedStream: ConnectableObservable;\r\n\r\n private readonly endpointUrl: string;\r\n\r\n private subs: Subscription;\r\n\r\n constructor(private http: HttpClient, private settings: Settings) {\r\n this.endpointUrl = `${settings.apiUrl}/terms-acknowledgement`;\r\n\r\n const termsAcknowledgement = this.http\r\n .get(this.endpointUrl)\r\n .pipe(\r\n map(x => deserialize(x, TermsAcknowledgement).termsAcknowledged)\r\n );\r\n\r\n this.mergedStream = concat(termsAcknowledgement, this.termsAcceptedSource).pipe(publishReplay(1)) as ConnectableObservable;\r\n this.subs = this.mergedStream.connect();\r\n }\r\n\r\n public get areTermsAccepted() {\r\n return this.mergedStream;\r\n }\r\n\r\n public async acceptTerms() {\r\n this.termsAcceptedSource.next(true);\r\n this.subs.unsubscribe();\r\n\r\n await this.http\r\n .post(this.endpointUrl, {})\r\n .toPromise();\r\n }\r\n}\r\n\r\nexport class TermsAcknowledgement {\r\n @dataMember()\r\n public termsAcknowledged: boolean;\r\n}","import { TrendsSubjectColorResolver } from './trends-subject-color-resolver';\r\nimport { Injectable } from '@angular/core';\r\nimport { chain, isEmpty } from 'lodash';\r\nimport { LabTestResult } from '../lab-test-results';\r\nimport { ChartLegendItem } from '../legend';\r\nimport { getShapeByGender, getFlaggedClassName } from './chart-helper';\r\nimport { SubjectTitleRenderer } from '../renderer/subject-title-renderer';\r\n\r\n@Injectable()\r\nexport class OsrLegendDataService {\r\n\r\n constructor(private colorResolver: TrendsSubjectColorResolver) { }\r\n\r\n public buildSexLegendData(currentTestData: LabTestResult[]): ChartLegendItem[] {\r\n const legend = chain(currentTestData)\r\n .uniqBy(r => r.sex)\r\n .map(r =>\r\n ({\r\n shape: getShapeByGender(r.sex),\r\n color: '#fff',\r\n stroke: 'black',\r\n label: r.sex || 'unknown',\r\n key: null\r\n }))\r\n .orderBy(l => l.label)\r\n .value();\r\n return legend;\r\n }\r\n\r\n public buildSubjectLegendData(currentTestData: LabTestResult[]): ChartLegendItem[] {\r\n const legend = chain(currentTestData)\r\n .uniqBy(r => r.ctSubjectId)\r\n .map(r =>\r\n ({\r\n shape: 'line',\r\n color: this.getLineColor([r]),\r\n label: SubjectTitleRenderer.renderTitle({\r\n data: r\r\n }),\r\n key: r.ctSubjectId\r\n } as ChartLegendItem))\r\n .orderBy(l => l.label)\r\n .value();\r\n\r\n return legend;\r\n }\r\n\r\n public buildFlaggedLegendData(currentTestData: LabTestResult[]): ChartLegendItem[] {\r\n const legend = chain(currentTestData)\r\n .map(r => getFlaggedClassName(r))\r\n .uniq()\r\n .sort()\r\n .map(flaggedClassName =>\r\n ({\r\n shape: 'square',\r\n class: flaggedClassName,\r\n label: flaggedClassName,\r\n key: null\r\n } as ChartLegendItem))\r\n .value();\r\n\r\n return legend;\r\n }\r\n\r\n private getLineColor(results: LabTestResult[]) {\r\n\r\n if (isEmpty(results)) {\r\n return '';\r\n }\r\n\r\n const index = results[0].subjectSerialNumber;\r\n return this.colorResolver.getColor(index);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { scaleLinear, interpolateHcl } from 'd3';\r\nimport { range } from 'lodash';\r\n\r\n@Injectable()\r\nexport class TrendsSubjectColorResolver {\r\n private readonly subjectColors = [\r\n '#4682b8', '#a5d22d', '#f5cc0a', '#fe8c01', '#6b9494', '#b97c46', '#84acd0', '#c2e173', '#f9dd5b', '#fe569d',\r\n '#feb356', '#9cb8b8', '#d0a884', '#fa8072', '#bdB76b', '#ee82ee', '#bc8f8f', '#d2691e', '#3cb371', '#7fffd4',\r\n '#7b68ee', '#dc143c', '#00bfff', '#556b2f', '#a52a2a', '#ffe4e1', '#8470ff', '#eee8aa', '#8b658b', '#654321',\r\n '#08457E', '#986960', '#CD5B45', '#B8860B', '#c7db8e', '#310062', '#BDB76B', '#556832', '#03C03C', '#E75480',\r\n '#E9967A', '#560319', '#2F4F4F', '#177245', '#918151', '#116062', '#423189', '#FF1493', '#00BFFF', '#1560BD',\r\n '#1E90FF', '#00008B'\r\n ];\r\n \r\n private readonly colorScaler = scaleLinear()\r\n .domain(range(this.subjectColors.length))\r\n .interpolate(interpolateHcl)\r\n .range(this.subjectColors);\r\n\r\n public getColor(index: number) {\r\n return this.colorScaler(index);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { TrendsSubjectColorResolver } from './trends-subject-color-resolver';\r\nimport { CvdChartData, CvdChartDataValue, CvdBandDataValue } from '@covance/ng-cvd3';\r\nimport { LabTestResult } from '../lab-test-results';\r\nimport { chain, isEmpty } from 'lodash';\r\nimport { getShapeByGender, getFlaggedClassName } from './chart-helper';\r\n\r\nexport interface LabTrendsChartDataValue extends CvdChartDataValue {\r\n colorClassName: string;\r\n}\r\n\r\n@Injectable()\r\nexport class TrendsChartDataBuilder {\r\n constructor(private colorResolver: TrendsSubjectColorResolver) { }\r\n\r\n public buildChartData(results: LabTestResult[]): CvdChartData[] {\r\n if (results === null) {\r\n return null;\r\n }\r\n \r\n const cvdData = chain(results)\r\n .groupBy(res => res.ctSubjectId)\r\n .map((bySubjectId: LabTestResult[], subjectId: number) => {\r\n const values = chain(bySubjectId)\r\n .filter(res => res.currentResult && res.currentResult.numericResult !== null)\r\n .sortBy(value => value.visitCollectionDateValue)\r\n .map(res => {\r\n return {\r\n x: res.dayOfStudy,\r\n y: res.currentResult.numericResult,\r\n rows: [res.labTestId],\r\n series: 0,\r\n shape: getShapeByGender(res.sex),\r\n colorClassName: getFlaggedClassName(res)\r\n } as LabTrendsChartDataValue;\r\n })\r\n .value();\r\n\r\n const color = this.getLineColor(bySubjectId);\r\n\r\n const data: CvdChartData = {\r\n key: `SubjectId: ${subjectId}`,\r\n rows: [],\r\n color: color,\r\n values: values\r\n };\r\n\r\n return data;\r\n }).value();\r\n\r\n return cvdData;\r\n }\r\n\r\n public buildBandData(results: LabTestResult[]): CvdChartData[] {\r\n const cvdData = chain(results)\r\n .groupBy(res => res.ctSubjectId)\r\n .map((bySubjectId: LabTestResult[], subjectId: string) => {\r\n const values = chain(bySubjectId)\r\n .filter(res => res.currentResult && res.currentResult.numericResult !== null)\r\n .filter(res => res.currentResult.hasValidNumericRange)\r\n .sortBy(value => value.visitCollectionDateValue)\r\n .map(res => {\r\n return {\r\n x: res.dayOfStudy,\r\n y1: res.currentResult.min,\r\n y2: res.currentResult.max,\r\n rows: [],\r\n series: 0\r\n } as CvdBandDataValue;\r\n })\r\n .value();\r\n const color = this.getLineColor(bySubjectId);\r\n const data: CvdChartData = {\r\n key: `SubjectId: ${subjectId}`,\r\n rows: [],\r\n color: color,\r\n values: values\r\n };\r\n return data;\r\n }).value();\r\n\r\n return cvdData;\r\n }\r\n\r\n private getLineColor(results: LabTestResult[]) {\r\n\r\n if (isEmpty(results)) {\r\n return '';\r\n }\r\n\r\n const index = results[0].subjectSerialNumber;\r\n return this.colorResolver.getColor(index);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { select, Selection, BaseType, area, curveLinear, ScaleLinear } from 'd3';\r\nimport { CvdChartData, CvdBandDataValue, CvdChartDataValue } from '@covance/ng-cvd3';\r\nimport { isEmpty } from 'lodash';\r\nimport { LabTestResult } from '../lab-test-results';\r\n\r\n@Injectable()\r\nexport class BandRenderer {\r\n \r\n public initHovers(svgId: string, xScale: ScaleLinear, yScale: ScaleLinear, resultsDictionary: { [labTestId: number]: LabTestResult }) { \r\n const bands = select(`#${svgId}`).selectAll>('.cv-stackedarea .cv-group');\r\n bands.attr('opacity', '.25');\r\n bands.attr('visibility', 'hidden');\r\n\r\n const pointsWithRange = select(`#${svgId}`)\r\n .selectAll('.cv-point')\r\n .filter((p: CvdChartData) => {\r\n if (isEmpty(p.rows)) {\r\n return false;\r\n }\r\n return !!resultsDictionary[p.rows[0]].currentResult.range;\r\n });\r\n pointsWithRange.on('mouseover', (data: CvdChartDataValue) => {\r\n const currentBand = bands.filter((el, i) => i === data.series);\r\n \r\n this.extendBands(currentBand, xScale, yScale);\r\n currentBand.attr('visibility', 'visible');\r\n });\r\n pointsWithRange.on('mouseleave', () => {\r\n bands.attr('visibility', 'hidden');\r\n });\r\n }\r\n\r\n private valueToNumber(value: number): number {\r\n return isNaN(value) ? 0 : value;\r\n }\r\n\r\n private extendBands(bands: Selection, BaseType, any>, xScale: ScaleLinear, yScale: ScaleLinear) {\r\n const xDomain = xScale.domain();\r\n\r\n bands\r\n .select('path')\r\n .attr('d', dd => {\r\n if (!isEmpty(dd.values)) {\r\n const left = {...dd.values[0], x: xDomain[0] };\r\n const right = {...dd.values[dd.values.length - 1], x: xDomain[xDomain.length - 1] };\r\n dd.values.unshift(left);\r\n dd.values.push(right);\r\n }\r\n\r\n const band = area().curve(curveLinear)\r\n .x(d => {\r\n return this.valueToNumber(xScale(d.x as number));\r\n })\r\n .y0(d => {\r\n return this.valueToNumber(yScale(d.y1 as number));\r\n })\r\n .y1(d => {\r\n return this.valueToNumber(yScale(d.y2 as number));\r\n });\r\n\r\n const dValue = band(dd.values);\r\n\r\n return dValue;\r\n });\r\n }\r\n}","import { Injectable, Inject } from '@angular/core';\r\nimport { FilterGridColDef } from '../covance-filter';\r\nimport { LabTestResult, LabTestSortArgs } from '../lab-test-results';\r\nimport { isEmpty, isNil, sortBy, chain, includes, find, max, groupBy, keys, uniq } from 'lodash';\r\nimport { LabTestResultGridRowItem } from '../on-screen-results';\r\nimport { ColDef } from 'ag-grid-community';\r\nimport { dateTimeRenderer } from '../covance-ag-grid';\r\nimport { VisitColumn, TestCellValues, TestResultIds, ResultData, VisitNumberData, VisitDisplayNameData, VisitResult } from './subject-pivot-interfaces';\r\nimport { LabTestGridVisitComponent } from './lab-tests-grid-visit.component';\r\nimport { LabTestGridVisitHeaderComponent } from './lab-tests-grid-visit-header.component';\r\nimport { LabTestsGridColumns } from './lab-tests-grid-columns';\r\nimport { LabTestResultsLinkBuilder, LAB_TEST_RESULTS_LINK_BUILDER } from './lab-test-results-link-builder';\r\n\r\ninterface BuilderResult {\r\n columns: FilterGridColDef[];\r\n exportColumns: ColDef[];\r\n}\r\n\r\n@Injectable()\r\nexport class LabTestsGridColumnsBuilder {\r\n constructor(\r\n private labTestsGridColumns: LabTestsGridColumns, \r\n @Inject(LAB_TEST_RESULTS_LINK_BUILDER) private labTestResultsLinkBuilder: LabTestResultsLinkBuilder) { }\r\n\r\n public getColumns(res: LabTestResult[]): BuilderResult {\r\n const baseColumns = this.labTestsGridColumns.getBaseColumns(res);\r\n\r\n if (isEmpty(res)) {\r\n return {\r\n columns: baseColumns,\r\n exportColumns: null\r\n };\r\n }\r\n const sortTestArgs: LabTestSortArgs = ['testId', 'testGroup', 'visitColumnKey'];\r\n const sortVisitArgs: LabTestSortArgs = ['visitColumnKey', 'testId', 'testGroup'];\r\n const exportColumns = this.labTestsGridColumns.getColumnsForExport(baseColumns);\r\n const sortedLabsByTestAndVisit = sortBy(res, sortTestArgs);\r\n const uniqueTestIds = chain(sortedLabsByTestAndVisit).uniqBy(x => x.uniqLabTestIdKey).map(t => t.uniqLabTestIdKey).value();\r\n const sortedLabsByVisitAndTest = sortBy(res, sortVisitArgs);\r\n const newCol: VisitColumn[] = [];\r\n const testCellValues: TestCellValues = {};\r\n const testResultIds: TestResultIds = {};\r\n let theVisitResults: ResultData[] = [];\r\n let theResultIds: number[] = [];\r\n let visitCellResult: { [visitId: string]: ResultData[] } = {};\r\n let visitResultIds: VisitNumberData = {};\r\n let theTestId = sortedLabsByTestAndVisit[0].testId;\r\n let theTestGroup = sortedLabsByTestAndVisit[0].testGroup;\r\n let theVisitId = sortedLabsByTestAndVisit[0].visitColumnKey;\r\n const visitDisplayNameData: VisitDisplayNameData[] = [];\r\n\r\n sortedLabsByTestAndVisit.forEach((lab: LabTestResult) => {\r\n if (theTestId !== lab.testId || theTestGroup !== lab.testGroup) {\r\n theVisitResults = [];\r\n visitCellResult = {};\r\n visitResultIds = {};\r\n }\r\n\r\n if (theVisitId !== lab.visitColumnKey) {\r\n theVisitResults = [];\r\n theResultIds = [];\r\n }\r\n\r\n visitDisplayNameData.push({ visitId: lab.visitColumnKey, testId: lab.testId, testGroup: lab.testGroup, visitDescription: lab.visitDescription, visitTitle: lab.visitTitle });\r\n\r\n const testResultId = lab.labTestId;\r\n const resultData: ResultData = {\r\n result: '',\r\n flags: lab.flags,\r\n comments: lab.comments,\r\n cancellationReason: lab.cancellationReason,\r\n isCancelled: lab.isCancelled,\r\n isFlagged: lab.isFlagged,\r\n hasDataRevision: lab.hasResultDataRevision\r\n };\r\n\r\n const tempResult = lab.currentResult;\r\n if (!isNil(tempResult)) {\r\n const theResult = tempResult.stringResult;\r\n\r\n if (theResult) {\r\n resultData.result = theResult;\r\n resultData.sequence = tempResult.sequence;\r\n }\r\n }\r\n\r\n\r\n theVisitResults[testResultId] = resultData;\r\n visitCellResult[lab.visitColumnKey] = theVisitResults;\r\n\r\n if (isEmpty(theResultIds) || !includes(theResultIds, testResultId)) {\r\n theResultIds.push(testResultId);\r\n }\r\n\r\n visitResultIds[lab.visitColumnKey] = theResultIds;\r\n theTestId = lab.testId;\r\n theTestGroup = lab.testGroup;\r\n theVisitId = lab.visitColumnKey;\r\n\r\n testCellValues[lab.uniqLabTestIdKey] = visitCellResult;\r\n testResultIds[lab.uniqLabTestIdKey] = visitResultIds;\r\n });\r\n\r\n this.gatherVisitColumnInfo(\r\n res,\r\n sortedLabsByVisitAndTest,\r\n uniqueTestIds,\r\n testCellValues,\r\n testResultIds,\r\n visitDisplayNameData,\r\n newCol);\r\n\r\n const visitColumns = this.getVisitColumns(newCol, this.getLineCountDict(res));\r\n\r\n return {\r\n columns: [...baseColumns, ...visitColumns],\r\n exportColumns\r\n };\r\n }\r\n\r\n private getLineCountDict(res: LabTestResult[]): { [uniqueTestId: string]: number } {\r\n const maxLineCounts = chain(res)\r\n .groupBy((r: LabTestResult) => r.uniqLabTestIdKey)\r\n .mapValues((valsByUniqueTestId: LabTestResult[]) => {\r\n\r\n const counts = chain(valsByUniqueTestId)\r\n .groupBy((r: LabTestResult) => r.visitColumnKey)\r\n .map((valsByAccessionId: LabTestResult[]) => valsByAccessionId.length)\r\n .value();\r\n\r\n return max(counts);\r\n })\r\n .value();\r\n\r\n return maxLineCounts;\r\n }\r\n\r\n private getVisitColumns(col: VisitColumn[], maxLineCounts: { [uniqueTestId: string]: number }): VisitResult[] {\r\n const visitColumns = chain(col)\r\n .map((vc: VisitColumn): VisitResult => {\r\n return {\r\n orderByKey: vc.orderByKey,\r\n visitColumnKey: vc.visitColumnKey,\r\n getLineCount: (entity: LabTestResult) => maxLineCounts[entity.uniqLabTestIdKey] || 1,\r\n getRowHeight: (entity: LabTestResult) => {\r\n //the value of lineHeight should match the one in grid.scss\r\n const lineHeight = 23;\r\n const maxCount = maxLineCounts[entity.uniqLabTestIdKey] || 1;\r\n return maxCount * lineHeight;\r\n },\r\n headerName: vc.headerName,\r\n cellRendererParams: {\r\n visitId: vc.visitId,\r\n testResultIds: vc.testResultIds,\r\n cellValues: vc.cellValues\r\n },\r\n cellRendererFramework: LabTestGridVisitComponent,\r\n headerComponentFramework: LabTestGridVisitHeaderComponent,\r\n headerComponentParams: vc.headerComponentParams,\r\n getQuickFilterText: (params: LabTestResultGridRowItem) => this.getPlainTextResultsAndFlags(params)\r\n };\r\n })\r\n .sortBy(x => x.orderByKey)\r\n .value();\r\n\r\n return visitColumns;\r\n }\r\n\r\n private getPlainTextResultsAndFlags(params: LabTestResultGridRowItem): string {\r\n if (!params || !params.data) {\r\n return '';\r\n }\r\n\r\n const testId = params.data.uniqLabTestIdKey;\r\n const cellParams = (params.colDef as VisitResult).cellRendererParams;\r\n const visitId = cellParams.visitId;\r\n const theCellValues = cellParams.cellValues;\r\n const testResultIds = cellParams.testResultIds;\r\n\r\n if (!theCellValues || !theCellValues[testId] || !theCellValues[testId][visitId]) {\r\n return '';\r\n }\r\n\r\n const cellValues = theCellValues[testId][visitId];\r\n\r\n if (!testResultIds[testId] || !testResultIds[testId][visitId]) {\r\n return '';\r\n }\r\n\r\n let searchText = '';\r\n\r\n testResultIds[testId][visitId].forEach(item => {\r\n\r\n const data = cellValues[item];\r\n\r\n if (data) {\r\n const commentExists = !isEmpty(data.comments);\r\n const cellFlags: string[] = [];\r\n\r\n if (data.isCancelled) {\r\n searchText += ` ${data.cancellationReason} `;\r\n } else if (data.isFlagged) {\r\n const flagGroups = groupBy(data.flags, f => f.category);\r\n\r\n keys(flagGroups).sort().forEach((category: string) => {\r\n const flagNames = flagGroups[category].map(f => f.name);\r\n const flags = uniq(flagNames).sort().join(' ');\r\n cellFlags.push(flags);\r\n });\r\n }\r\n\r\n searchText += ` ${data.result} ${cellFlags.join(', ')} `;\r\n }\r\n });\r\n\r\n return searchText;\r\n }\r\n\r\n private gatherVisitColumnInfo(\r\n res: LabTestResult[], sortedLabsByVisitAndTest: LabTestResult[], uniqueTestIds: string[],\r\n testCellValues: TestCellValues,\r\n testResultIds: TestResultIds,\r\n visitDisplayNameData: VisitDisplayNameData[], newCol: VisitColumn[]\r\n ) {\r\n sortedLabsByVisitAndTest.forEach((lab: LabTestResult) => {\r\n let theVisitDisplayName = '';\r\n const existingVisit = find(newCol, (x: VisitColumn) => lab.visitColumnKey === x.visitId);\r\n\r\n if (existingVisit) {\r\n return;\r\n }\r\n\r\n theVisitDisplayName = this.getVisitDisplayName(visitDisplayNameData.filter(t => t.visitId === lab.visitColumnKey));\r\n\r\n const accessionNumberLinkData = this.labTestResultsLinkBuilder.getAccessionNumberLink(lab);\r\n const cellValues: TestCellValues = {};\r\n const testResId: { [testId: string]: { [visitId: number]: number[] } } = {};\r\n\r\n uniqueTestIds.forEach((testId: string) => {\r\n cellValues[testId] = testCellValues[testId];\r\n testResId[testId] = testResultIds[testId];\r\n });\r\n\r\n const visitColumn: VisitColumn = {\r\n visitColumnKey: lab.visitColumnKey,\r\n orderByKey: lab.visitCollectionDateValue,\r\n headerName: theVisitDisplayName,\r\n visitId: lab.visitColumnKey,\r\n testResultIds: testResId,\r\n cellValues: cellValues,\r\n headerComponentParams: {\r\n displayName: theVisitDisplayName,\r\n visitDate: dateTimeRenderer({ value: lab.visitCollectionDate }) || '[missing date]',\r\n hasDataRevision: res.some(r => r.visitColumnKey === lab.visitColumnKey && r.hasVisitDataRevision),\r\n routerLink: accessionNumberLinkData.routerLink,\r\n queryParams: accessionNumberLinkData.queryParams,\r\n text: accessionNumberLinkData.text\r\n }\r\n };\r\n\r\n newCol.push(visitColumn);\r\n });\r\n }\r\n\r\n private getVisitDisplayName(visitDisplayNameData: VisitDisplayNameData[]): string {\r\n let visitDisplayName = '';\r\n\r\n if (isEmpty(visitDisplayNameData)) {\r\n return '';\r\n }\r\n\r\n const sortInfo: LabTestSortArgs = ['testId', 'testGroup'];\r\n const sortedVisitDisplayNameData = sortBy(visitDisplayNameData, sortInfo);\r\n\r\n sortedVisitDisplayNameData.forEach((item: VisitDisplayNameData) => {\r\n if (isEmpty(visitDisplayName)) {\r\n if (!item.testId) {\r\n return;\r\n }\r\n\r\n if (item.visitDescription !== null) {\r\n visitDisplayName = item.visitDescription;\r\n } else {\r\n if (item.visitTitle !== null) {\r\n visitDisplayName = item.visitTitle;\r\n }\r\n }\r\n }\r\n });\r\n\r\n return visitDisplayName;\r\n }\r\n}","import { chain, isNil, sortBy } from 'lodash';\r\nimport { Component, ChangeDetectorRef, ChangeDetectionStrategy, Inject } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { LabTestResult, LabResultsSortInfo } from '../lab-test-results';\r\nimport { FilterGridColDef } from '../covance-filter';\r\nimport { GridLegendItem } from '../legend';\r\nimport { LabTestSortArgs } from '../lab-test-results';\r\nimport { LabTestsGridColumnsBuilder } from './lab-tests-grid-columns-builder';\r\nimport { createLegend } from '../on-screen-results';\r\nimport { TermsStorage } from '../corporate/terms-storage';\r\nimport { SUBJECT_LAB_TESTS_DATA_SOURCE, SubjectLabTestsDataSource } from './subject-lab-tests-data-source';\r\nimport { GridOptions } from 'ag-grid-community';\r\n\r\n@Component({\r\n selector: 'lab-tests',\r\n template: require('./lab-tests-grid.component.html'),\r\n styles: [require('./lab-tests-grid.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [LabTestsGridColumnsBuilder]\r\n})\r\nexport class LabTestsGridComponent {\r\n public columns: FilterGridColDef[];\r\n public exportColumns: FilterGridColDef[];\r\n public uniqueTests: LabTestResult[] = null;\r\n public exportData: LabTestResult[] = null;\r\n public legendData: GridLegendItem[];\r\n public exportGrid: GridOptions = {};\r\n public visibleGridOptions: GridOptions = {\r\n groupRowRendererParams: { suppressCount: true },\r\n onRowDataChanged: function (params) {\r\n params.columnApi.autoSizeColumn('test');\r\n },\r\n onGridSizeChanged: function (params) {\r\n params.api.sizeColumnsToFit();\r\n params.columnApi.autoSizeColumn('test');\r\n }\r\n };\r\n public get disclaimer() {\r\n return this.termsStorage.osrDisclaimerText;\r\n }\r\n\r\n private subscription: Subscription;\r\n\r\n constructor(\r\n private changeDetectorRef: ChangeDetectorRef,\r\n labResultsSortInfo: LabResultsSortInfo,\r\n @Inject(SUBJECT_LAB_TESTS_DATA_SOURCE) selectedSubjectLabResultsStorage: SubjectLabTestsDataSource,\r\n columnsBuilder: LabTestsGridColumnsBuilder,\r\n private termsStorage: TermsStorage\r\n ) {\r\n this.subscription = selectedSubjectLabResultsStorage.labTestResults\r\n .subscribe((testData: LabTestResult[]) => {\r\n this.uniqueTests = null;\r\n\r\n if (testData) {\r\n this.uniqueTests = chain(testData)\r\n .uniqBy((item: LabTestResult) => item.uniqLabTestIdKey)\r\n .sortBy(labResultsSortInfo.subjectLevel.allLevels)\r\n .value();\r\n }\r\n\r\n\r\n const buildedResult = columnsBuilder.getColumns(testData);\r\n const sortExportDataArgs: LabTestSortArgs = ['testGroup', 'testSequence', 'visitColumnKey',\r\n (lab: LabTestResult) => {\r\n const tempResult = lab.currentResult;\r\n if (!isNil(tempResult)) {\r\n let seq = tempResult.sequence;\r\n const theResult = tempResult.stringResult;\r\n if (theResult) {\r\n seq = tempResult.sequence;\r\n }\r\n return seq;\r\n } else {\r\n return null;\r\n }\r\n }\r\n ];\r\n\r\n this.columns = buildedResult.columns;\r\n this.exportColumns = buildedResult.exportColumns;\r\n this.exportData = sortBy(testData, sortExportDataArgs);\r\n this.legendData = createLegend(testData);\r\n this.changeDetectorRef.markForCheck();\r\n });\r\n }\r\n\r\n\r\n public onGridQuickFilterChanged(filter: string) {\r\n if (this.exportGrid) {\r\n this.exportGrid.quickFilterText = filter;\r\n }\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n}","import { Selection, ScaleLinear, select } from 'd3';\r\nimport { LabTestsChartData, LabTestsChartYAxisTick, LastVisitInfo, LabTestsChartDataValue } from './lab-tests-chart-data-generator';\r\nimport { find, isNumber } from 'lodash';\r\nimport { CvdChartData, CvdBandDataValue } from '@covance/ng-cvd3';\r\nimport { FlaggedClassNames } from '../charts/chart-helper';\r\n\r\nexport class LabTestsChartSvgExtensions {\r\n private readonly testGroupNamePosition = {\r\n x: 12,\r\n y: 4\r\n };\r\n\r\n constructor(\r\n private readonly yAxisWidth: number,\r\n private readonly svgChart: Selection,\r\n private readonly yScale: ScaleLinear,\r\n private readonly availableChartHeight: number,\r\n private readonly availableChartWidth: number,\r\n private readonly xAxisTickValues: number[],\r\n private readonly tests: LabTestsChartYAxisTick[],\r\n private readonly chartBandData: CvdChartData[]\r\n ) { }\r\n\r\n public render() {\r\n this.removeYAxisLine();\r\n this.removeXAxisLine();\r\n this.moveXAxisLabelsOnTop();\r\n this.handleXAxisLabelOverflow();\r\n this.appendAdditionalYAxisText();\r\n this.calculateRanges();\r\n this.calculatePointsColors();\r\n }\r\n\r\n private removeYAxisLine() {\r\n this.svgChart.selectAll('.cv-y.cv-axis path.domain').remove();\r\n }\r\n\r\n private removeXAxisLine() {\r\n this.svgChart.selectAll('.cv-x.cv-axis path.domain').remove();\r\n }\r\n\r\n private moveXAxisLabelsOnTop() {\r\n const xAxisLayer = this.svgChart.select('.cv-x.cv-axis');\r\n const heightText = 20;\r\n const height = this.availableChartHeight;\r\n\r\n xAxisLayer.attr('transform', function(this: SVGGElement) {\r\n const translate = parseTransformTranslate(this);\r\n return `translate(${translate.x},${height - heightText})`;\r\n });\r\n\r\n xAxisLayer\r\n .selectAll('g.tick text')\r\n .attr('transform', `translate(0,-${this.availableChartHeight})`);\r\n\r\n xAxisLayer\r\n .selectAll('g.tick line')\r\n .attr('transform', () => `translate(0, ${heightText})`);\r\n }\r\n\r\n private handleXAxisLabelOverflow() : void {\r\n const width = this.availableChartWidth / this.xAxisTickValues.length;\r\n\r\n this.svgChart\r\n .selectAll('.cv-x g.tick')\r\n .attr('width', width);\r\n\r\n this.svgChart.selectAll('.cv-x g.tick text').each(function() {\r\n const selectedTextNode = select(this);\r\n\r\n let text = selectedTextNode.text();\r\n\r\n selectedTextNode.style('pointer-events', 'all').text('').append('title').text(text);\r\n selectedTextNode.append('tspan').text(text);\r\n\r\n const tspan = selectedTextNode.select('tspan');\r\n\r\n let textLength = (tspan.node() as SVGTSpanElement).getComputedTextLength();\r\n\r\n while (textLength > width && textLength > 0) {\r\n text = text.slice(0, -1);\r\n tspan.text(text + '\\u2026');\r\n textLength = (tspan.node() as SVGTSpanElement).getComputedTextLength();\r\n }\r\n });\r\n }\r\n\r\n private appendAdditionalYAxisText() {\r\n const yAxis = this.svgChart.select('.cv-y.cv-axis');\r\n const yAxisTicks = this.svgChart.selectAll('.cv-y.cv-axis g.tick');\r\n\r\n yAxisTicks.selectAll('text').attr('opacity', 1).classed('test-y-tick-text', true);\r\n\r\n this.svgChart.selectAll('text.last-visit-value').remove();\r\n\r\n const getLastVisitValue = (yTickValue: number) => this.getLastVisitValue(yTickValue);\r\n\r\n yAxisTicks\r\n .append('text')\r\n .classed('last-visit-value', true)\r\n .text((yTickValue, index) => {\r\n const lastVisitValue = this.getLastVisitValue(yTickValue);\r\n return lastVisitValue ? lastVisitValue.value : null;\r\n })\r\n .each(function(yTickValue) {\r\n const lastVisitValue = getLastVisitValue(yTickValue);\r\n\r\n if (lastVisitValue) {\r\n select(this).classed(lastVisitValue.colorClassName, true);\r\n }\r\n })\r\n .attr('transform', () => `translate(${this.availableChartWidth},4)`);\r\n\r\n this.svgChart.selectAll('text.test-group-name').remove();\r\n\r\n const getYAxisTickData = (value: number) => {\r\n const yAxisTickData = find(this.tests, test => test.value === value);\r\n return yAxisTickData;\r\n };\r\n\r\n yAxisTicks\r\n .append('text')\r\n .classed('test-group-name', true)\r\n .style('text-anchor', 'end')\r\n .text(value => {\r\n const yAxisTickData = getYAxisTickData(value);\r\n return yAxisTickData ? yAxisTickData.testGroupName : null;\r\n });\r\n\r\n yAxisTicks.select('line').remove();\r\n const testGroupNamePosition = this.testGroupNamePosition;\r\n const testGroupNamePositionX = -this.yAxisWidth + this.testGroupNamePosition.x;\r\n yAxisTicks\r\n .selectAll('text.test-group-name')\r\n .style('text-anchor', 'unset')\r\n .attr('transform', function(this: SVGTextElement) {\r\n const g = this as SVGGElement;\r\n const gBox = g.getBBox();\r\n return `translate(${testGroupNamePositionX + gBox.x}, ${testGroupNamePosition.y})`;\r\n });\r\n\r\n yAxisTicks\r\n .each(function(value) {\r\n const yAxisTickData = getYAxisTickData(value);\r\n\r\n if (!yAxisTickData || !yAxisTickData.testGroupName) {\r\n return;\r\n }\r\n\r\n const yAxisBox = yAxis.node().getBBox();\r\n const box = this.getBBox();\r\n\r\n select(this).append('line')\r\n .attr('y1', box.y)\r\n .attr('y2', box.y)\r\n .attr('x1', 0)\r\n .attr('x1', yAxisBox.x);\r\n });\r\n\r\n this.ellipsisTestGroups(yAxisTicks);\r\n }\r\n\r\n private ellipsisTestGroups(yAxisTicks: Selection) {\r\n const isTestOverlapped = this.isTestOverlapped;\r\n\r\n yAxisTicks.each(function() {\r\n const testTextD3 = select(this).select('.test-y-tick-text');\r\n const groupNameTextD3 = select(this).select('.test-group-name');\r\n const testText = testTextD3.node();\r\n const groupNameText = groupNameTextD3.node();\r\n\r\n if (!testText || !groupNameText || !testTextD3.text() || !groupNameTextD3.text()) {\r\n return;\r\n }\r\n\r\n if (isTestOverlapped(groupNameText, testText)) {\r\n const groupName = groupNameTextD3.text();\r\n let fragment = '';\r\n\r\n for (let pos = 0; pos < groupName.length; pos++) {\r\n fragment = groupName.substring(0, groupName.length - pos) + '...';\r\n groupNameTextD3.text(fragment);\r\n\r\n if (!isTestOverlapped(groupNameText, testText)) {\r\n break;\r\n }\r\n }\r\n\r\n groupNameTextD3\r\n .style('pointer-events', 'all')\r\n .append('title')\r\n .text(groupName);\r\n }\r\n });\r\n }\r\n\r\n private isTestOverlapped = (groupNameText: SVGTextElement, testText: SVGTextElement): boolean => {\r\n const groupNameRect = groupNameText.getBoundingClientRect();\r\n const testRect = testText.getBoundingClientRect();\r\n\r\n return groupNameRect.left + groupNameRect.width > testRect.left;\r\n }\r\n\r\n private getLastVisitValue(yTickValue: number): LastVisitInfo {\r\n const yTick = find(this.tests, test => test.value === yTickValue);\r\n\r\n return yTick && yTick.lastVisitInfo\r\n ? yTick.lastVisitInfo\r\n : null;\r\n }\r\n\r\n private calculateRanges() {\r\n this.svgChart.selectAll('.test-range').remove();\r\n\r\n const transform = this.svgChart.select('g.cv-linesWrap')\r\n .attr('transform');\r\n\r\n const translateCoords = this.parseTranslate(transform);\r\n const isBandDataActual = this.isBandDataActual;\r\n const yScale = this.yScale;\r\n const width = this.availableChartWidth;\r\n\r\n const areas = this.svgChart.selectAll>('path.cv-area.d3-area')\r\n .each(function (bandData) {\r\n if (!bandData || !isBandDataActual(bandData)) {\r\n return;\r\n }\r\n\r\n const bandValue = bandData.values[0];\r\n\r\n if (!bandValue) {\r\n return;\r\n }\r\n\r\n const g = this.parentNode as SVGGElement;\r\n const x = translateCoords ? translateCoords.x * -1 : 0;\r\n const y1 = yScale(bandValue.y1);\r\n const y2 = yScale(bandValue.y2);\r\n\r\n const height = y1 - y2;\r\n const y = y2;\r\n\r\n select(g)\r\n .append('rect')\r\n .classed('test-range', true)\r\n .attr('x', x)\r\n .attr('y', y)\r\n .attr('width', width)\r\n .attr('height', height);\r\n });\r\n }\r\n\r\n private isBandDataActual = (bandData: CvdChartData): boolean => {\r\n return this.chartBandData.some(b => b.key === bandData.key);\r\n }\r\n\r\n private parseTranslate(value: string): {x: number, y: number} {\r\n const result = /translate\\((.+),(.+)\\)/.exec(value);\r\n\r\n if (!result) {\r\n return null;\r\n }\r\n\r\n const [translateGroup, xGroup, yGroup] = result;\r\n const x = Number(xGroup);\r\n const y = Number(yGroup);\r\n\r\n if (!isNumber(x) || !isNumber(y)) {\r\n return null;\r\n }\r\n\r\n return { x, y };\r\n }\r\n\r\n private calculatePointsColors() {\r\n this.svgChart.selectAll('.cv-scatter g.cv-groups g.cv-group path.cv-point')\r\n .classed(FlaggedClassNames.high, false)\r\n .classed(FlaggedClassNames.low, false)\r\n .classed(FlaggedClassNames.other, false)\r\n .classed(FlaggedClassNames.nonFlagged, false)\r\n .each(function (data) {\r\n select(this).classed(data.colorClassName, true);\r\n });\r\n }\r\n}\r\n\r\nfunction parseTransformTranslate(element: SVGGraphicsElement): { x: number, y: number } {\r\n const svgTransform = element.transform.baseVal.consolidate();\r\n\r\n if (!svgTransform) {\r\n return {\r\n x: 0,\r\n y: 0\r\n };\r\n }\r\n\r\n const matrix = svgTransform.matrix;\r\n\r\n return {\r\n x: matrix.e,\r\n y: matrix.f\r\n };\r\n}","import { Component, ChangeDetectionStrategy, ChangeDetectorRef, OnDestroy, AfterViewInit, Inject } from '@angular/core';\r\nimport { Observable, Subscription, BehaviorSubject, of, concat, combineLatest } from 'rxjs';\r\nimport { map, tap } from 'rxjs/operators';\r\nimport { isEmpty, find, Dictionary, includes, chain, isNil } from 'lodash';\r\nimport { LabTestResult } from '../lab-test-results';\r\nimport { CvdChartData, CvdBandDataValue, AfterChartRenderedEventArgs } from '@covance/ng-cvd3';\r\nimport { LabTestsChartData, LabTestsChartYAxisTick, LabTestsChartXAxisTick, LabTestsChartDataResult,\r\n LabTestsChartDataGenerator, LabTestsChartDataValue } from './lab-tests-chart-data-generator';\r\nimport { select } from 'd3';\r\nimport { dateTimeRenderer } from '../covance-ag-grid';\r\nimport { CovanceChainFilter, FilterFieldValue, FilteredEntityField } from '../covance-filter';\r\nimport { FormControl } from '@angular/forms';\r\nimport { ChartLegendItem } from '../legend';\r\nimport { LabTestsChartSvgExtensions } from './lab-tests-chart-svg-extensions';\r\nimport { TooltipFormatter } from '../shared/tooltip-formatter';\r\nimport {TooltipItem} from '../shared/tooltip-item';\r\nimport { tooltipClassName } from '../core/tooltip-remover';\r\nimport { SUBJECT_LAB_TESTS_DATA_SOURCE, SubjectLabTestsDataSource } from './subject-lab-tests-data-source';\r\n\r\n@Component({\r\n selector: 'lab-test-chart',\r\n template: require('./lab-tests-chart.component.html'),\r\n styles: [require('./lab-tests-chart.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LabTestsChartComponent implements OnDestroy, AfterViewInit {\r\n public chartData: LabTestsChartData[] = null;\r\n public chartBandData: CvdChartData[];\r\n public xAxisTickValues: number[];\r\n public yAxisTickValues: number[];\r\n public yDomain : number[] = [];\r\n public readonly chartMargin = {\r\n left: 300,\r\n right: 100,\r\n top: 30,\r\n bottom: 50\r\n };\r\n\r\n public readonly chainFilterFields: Observable[]>;\r\n public readonly initChainFilterFields: Observable;\r\n\r\n public filterFieldVals: BehaviorSubject = new BehaviorSubject([]);\r\n\r\n public simpleSearch = new FormControl('');\r\n public simpleSearchFlow: Observable;\r\n public subjectLegendData: ChartLegendItem[] = [];\r\n\r\n private subscription: Subscription;\r\n private visits: LabTestsChartXAxisTick[] = [];\r\n private tests: LabTestsChartYAxisTick[] = [];\r\n\r\n constructor(\r\n @Inject(SUBJECT_LAB_TESTS_DATA_SOURCE) private selectedSubjectLabResultsStorage: SubjectLabTestsDataSource,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n private labTestsChartDataGenerator: LabTestsChartDataGenerator,\r\n private covanceChainFilter: CovanceChainFilter,\r\n private tooltipFormatter: TooltipFormatter\r\n ) {\r\n const testGroup: FilteredEntityField = { title: 'Test Group', fieldName: 'testGroup' };\r\n const test: FilteredEntityField = { title: 'Test', fieldName: 'test' };\r\n\r\n this.chainFilterFields = of[]>([testGroup, test]);\r\n\r\n this.initChainFilterFields = of([\r\n {\r\n def: {\r\n title: testGroup.title,\r\n queryParam: '0',\r\n isPinned: true\r\n },\r\n filteredFieldName: testGroup.fieldName\r\n },\r\n {\r\n def: {\r\n title: test.title,\r\n queryParam: '1',\r\n isPinned: true\r\n },\r\n filteredFieldName: test.fieldName\r\n }\r\n ]);\r\n\r\n this.simpleSearchFlow = concat(of(''), this.simpleSearch.valueChanges);\r\n }\r\n\r\n public readonly bandColor = () => '#cccc';\r\n\r\n public xAxisTickFormat = (visitId: number) => {\r\n const visit = find(this.visits, x => x.visitId === visitId);\r\n return visit ? visit.visitTitle : '';\r\n }\r\n\r\n public yAxisTickFormat = (y: number) => {\r\n const test = find(this.tests, x => x.value === y);\r\n return test ? test.yTickText : '';\r\n }\r\n\r\n public afterChartRendered(args: AfterChartRenderedEventArgs) {\r\n const svgChart = select('#' + args.svgId);\r\n const availableHeight = args.height - (this.chartMargin.top + this.chartMargin.bottom);\r\n const availableWidth = args.width - (this.chartMargin.left + this.chartMargin.right);\r\n const yAxisWidth = this.chartMargin.left;\r\n\r\n const chartExtensions = new LabTestsChartSvgExtensions (\r\n yAxisWidth,\r\n svgChart,\r\n args.yScale,\r\n availableHeight,\r\n availableWidth,\r\n this.xAxisTickValues,\r\n this.tests,\r\n this.chartBandData);\r\n\r\n chartExtensions.render();\r\n }\r\n\r\n public chartTooltip = (key: string, visitTitle: string, y: string, args: LabTestChartEvent): string => {\r\n const labTestResult = args.data.labTestResult;\r\n\r\n const entry: Dictionary = {\r\n 'Visit Description': labTestResult.visitName,\r\n 'Collection Date/Time': dateTimeRenderer({ value: labTestResult.visitCollectionDate }) || '[missing date]',\r\n 'Accession Number': labTestResult.accessionNumber,\r\n 'Test Group': labTestResult.testGroup,\r\n 'Test': labTestResult.test,\r\n 'Result Comments': labTestResult.comments,\r\n 'Range': labTestResult.currentResult.range,\r\n 'Unit': args.data.testUnit || ''\r\n };\r\n\r\n const valueEntry = new TooltipItem();\r\n valueEntry.labelText = 'Value';\r\n valueEntry.contentText = !isNil(args.data.testNumbericResult) ? args.data.testNumbericResult.toString() : '';\r\n valueEntry.contentClass = `${tooltipClassName}-${args.data.colorClassName}`;\r\n\r\n if (!isEmpty(labTestResult.flags)) {\r\n entry['Flags'] = labTestResult.flags.map(f => f.fullName).join(' ');\r\n }\r\n\r\n this.tooltipFormatter.clear();\r\n this.tooltipFormatter.addItems(entry);\r\n this.tooltipFormatter.addTooltipItems([valueEntry]);\r\n\r\n return this.tooltipFormatter.getTooltipContent();\r\n }\r\n\r\n public ngAfterViewInit() {\r\n this.subscription = this.createChartData()\r\n .subscribe((data: LabTestsChartDataResult) => {\r\n this.chartData = data.chartData;\r\n this.chartBandData = data.chartBandData;\r\n this.visits = data.xAxisTicks;\r\n this.xAxisTickValues = data.xAxisTickValues;\r\n this.tests = data.yAxisTicks;\r\n this.yAxisTickValues = data.yAxisTickValues;\r\n this.yDomain = data.yDomain;\r\n\r\n this.hideAxises();\r\n this.buildLegendData();\r\n\r\n //TODO: Find the actual reason why change detection doesn't work as expected\r\n setTimeout(() => this.changeDetectorRef.markForCheck());\r\n });\r\n }\r\n\r\n public ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n private createChartData(): Observable {\r\n const labTestResultsWithoutQuestions = this.selectedSubjectLabResultsStorage.labTestResults\r\n .pipe(\r\n map((results: LabTestResult[]) => {\r\n // show spinner\r\n if (results === null) {\r\n return null;\r\n }\r\n\r\n return results.filter((result: LabTestResult) => !result.isQuestion);\r\n })\r\n );\r\n\r\n const filteredByChain = this.covanceChainFilter.getFilteredData(\r\n labTestResultsWithoutQuestions,\r\n this.chainFilterFields,\r\n this.initChainFilterFields\r\n )\r\n .pipe(\r\n tap(data => {\r\n this.filterFieldVals.next(data.deserializedFieldValues);\r\n }),\r\n map(data => {\r\n return data.entities;\r\n })\r\n );\r\n\r\n const filteredBySimpleSearch = this.filterBySimpleSearch(filteredByChain);\r\n return filteredBySimpleSearch.pipe(map((filtered: LabTestResult[]) => this.labTestsChartDataGenerator.generateData(filtered)));\r\n }\r\n\r\n private buildLegendData() {\r\n const legend = chain(this.chartData)\r\n .map(r => r.values)\r\n .flatten()\r\n .uniqBy((f: LabTestsChartDataValue) => f.colorClassName)\r\n .orderBy((f: LabTestsChartDataValue) => f.colorClassName)\r\n .map((r: LabTestsChartDataValue) =>\r\n ({\r\n shape: r.shape,\r\n class: r.colorClassName,\r\n label: r.colorClassName,\r\n key: null\r\n }))\r\n .value();\r\n\r\n this.subjectLegendData = legend;\r\n }\r\n\r\n private filterBySimpleSearch(data: Observable): Observable {\r\n return combineLatest(\r\n this.simpleSearchFlow,\r\n data\r\n )\r\n .pipe(\r\n map(([searchTerm, labTestResults]) => {\r\n if (isEmpty(searchTerm) || !labTestResults) {\r\n return labTestResults;\r\n }\r\n\r\n const term = searchTerm.trim().toLowerCase();\r\n\r\n const filtered = labTestResults.filter((labTestResult: LabTestResult) => {\r\n if (!isEmpty(labTestResult.test) && includes(labTestResult.test.toLowerCase(), term)) {\r\n return true;\r\n }\r\n\r\n if (!isEmpty(labTestResult.testGroup) && includes(labTestResult.testGroup.toLowerCase(), term)) {\r\n return true;\r\n }\r\n\r\n return false;\r\n });\r\n\r\n return filtered;\r\n })\r\n );\r\n }\r\n\r\n //TODO: Workaround for cvd3: When data is empty, hide the axises.\r\n // Besides, afterChartRendered is not being invoked when empty data, so it can't be placed in afterChartRendered.\r\n private hideAxises() {\r\n const hasData = !isEmpty(this.chartData) && this.chartData.some((e) => !isEmpty(e.values));\r\n select('#lab-tests-chart g.cv-y.cv-axis').style('display', !hasData ? 'none' : 'block');\r\n select('#lab-tests-chart g.cv-x.cv-axis').style('display', !hasData ? 'none' : 'block');\r\n }\r\n}\r\n\r\nexport interface LabTestChartEvent {\r\n d3event: MouseEvent;\r\n elemIndex: number;\r\n pos: number[];\r\n data: LabTestsChartDataValue;\r\n}\r\n","import { MdlDialogService, MdlTextFieldComponent } from '@angular-mdl/core';\r\nimport { MdlPopoverComponent } from '@angular-mdl/popover';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, HostBinding, Input, OnChanges, OnDestroy, Output, SimpleChanges, ViewChild, ElementRef } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { filter, find, includes, isEmpty, some } from 'lodash';\r\nimport { Subscription } from 'rxjs';\r\nimport { distinctUntilChanged } from 'rxjs/operators';\r\nimport { NoneValueHelper, Settings } from '../core/';\r\n\r\n@Component({\r\n selector: 'covance-select',\r\n template: require('./covance-select.component.html'),\r\n styles: [require('./covance-select.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CovanceSelectComponent implements OnChanges, OnDestroy {\r\n\r\n @ViewChild('selectPopover')\r\n public selectPopover: MdlPopoverComponent;\r\n\r\n @ViewChild('selectPopoverSearch')\r\n public selectPopoverSearch: MdlTextFieldComponent;\r\n\r\n @ViewChild('selectEl')\r\n public selectEl: ElementRef;\r\n\r\n @Input()\r\n public containerLeftLimit: number;\r\n\r\n @Input()\r\n public valueChangeConfirmationText: string = null;\r\n\r\n @Input()\r\n public loading = false;\r\n\r\n @Input()\r\n public multiselect = false;\r\n\r\n @Input()\r\n public allowSearch = true;\r\n\r\n @Input()\r\n public allItems: any[];\r\n\r\n @Input()\r\n public sortItems = true;\r\n\r\n @Input()\r\n public selectedItems: any[];\r\n\r\n @Input()\r\n public label = '';\r\n\r\n @Input()\r\n public selectStyle: {\r\n [key: string]: string;\r\n };\r\n\r\n @Input()\r\n public textSelector: (item: any) => string = null;\r\n\r\n @Input()\r\n public searchInputStyle: {\r\n [key: string]: string;\r\n };\r\n\r\n @Input()\r\n @HostBinding('class.disabled')\r\n public disabled = false;\r\n\r\n @Output()\r\n public selectedItemsChanged = new EventEmitter();\r\n\r\n @Output()\r\n public searchTermChanged = new EventEmitter();\r\n\r\n public searchTerm = new FormControl('');\r\n\r\n public resultString = '';\r\n\r\n public options: Option[];\r\n\r\n public filteredOptions: Option[];\r\n\r\n public get isEmptyOptions() {\r\n return isEmpty(this.options);\r\n }\r\n\r\n public isAllSelected: boolean;\r\n\r\n public none = NoneValueHelper.none;\r\n\r\n private subscription = new Subscription();\r\n\r\n private readonly popoverWidth = 300; // must be equal to corresponding value in the css file\r\n\r\n constructor(\r\n changeDetectorRef: ChangeDetectorRef,\r\n private noneValueHelper: NoneValueHelper,\r\n private dialogService: MdlDialogService,\r\n private readonly settings: Settings\r\n ) {\r\n\r\n const searchTermFlow = this.searchTerm.valueChanges\r\n .pipe(\r\n distinctUntilChanged()\r\n );\r\n\r\n this.subscription.add(\r\n searchTermFlow.subscribe((term: string) => {\r\n this.onSearchTermChange(term);\r\n this.searchTermChanged.emit(term);\r\n changeDetectorRef.markForCheck();\r\n })\r\n );\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges) {\r\n if (this.allItems) {\r\n this.options = [];\r\n let emptyOptionAdded = false;\r\n\r\n for (let option of this.allItems) {\r\n const isNone = this.noneValueHelper.isNone(option);\r\n const text = option ?\r\n this.createOptionText(option)\r\n : null;\r\n const item: Option = {\r\n isChecked: some(this.selectedItems, x => x === option || (this.noneValueHelper.isNone(x) && isNone)),\r\n isNone: isNone,\r\n text: this.noneValueHelper.toDisplay(text),\r\n item: option\r\n };\r\n\r\n if (isNone) {\r\n if (!emptyOptionAdded) {\r\n emptyOptionAdded = true;\r\n this.options.push(item);\r\n }\r\n continue;\r\n }\r\n\r\n this.options.push(item);\r\n }\r\n\r\n if (!this.allowSearch) {\r\n this.updateResultString();\r\n }\r\n }\r\n \r\n this.onSearchTermChange(this.searchTerm.value);\r\n\r\n if (changes.selectedItems) {\r\n this.updateResultString();\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n public trackByFn(option: Option) {\r\n return option.text;\r\n }\r\n\r\n public async selectAllOnChange(value: boolean) {\r\n const confirmed = await this.promptForValueChangeConfirmation();\r\n if (!confirmed) {\r\n return;\r\n }\r\n\r\n this.isAllSelected = value;\r\n }\r\n\r\n public async onMultiSelectOptionChange(option: Option) {\r\n const confirmed = await this.promptForValueChangeConfirmation();\r\n if (!confirmed) {\r\n return;\r\n }\r\n\r\n option.isChecked = !option.isChecked;\r\n this.updateSelectedItems();\r\n }\r\n\r\n public async onSingleSelectOptionChange(option: Option) {\r\n const isChecked = option.isChecked;\r\n if (isChecked) {\r\n this.selectPopover.hide();\r\n return;\r\n }\r\n\r\n const confirmed = await this.promptForValueChangeConfirmation();\r\n if (!confirmed) {\r\n return;\r\n }\r\n\r\n this.options.forEach(opt => opt.isChecked = false);\r\n option.isChecked = !isChecked;\r\n this.updateSelectedItems();\r\n this.selectPopover.hide();\r\n }\r\n\r\n public async selectAllOnClick() {\r\n const confirmed = await this.promptForValueChangeConfirmation();\r\n if (!confirmed) {\r\n return;\r\n }\r\n\r\n if (this.filteredOptions) {\r\n const state = this.getSelectAllCheckboxState();\r\n const isChecked = state === CheckboxState.Unchecked;\r\n\r\n this.filteredOptions.forEach(option => option.isChecked = isChecked);\r\n this.updateSelectedItems();\r\n }\r\n }\r\n\r\n public togglePopover(event: Event) {\r\n if (!this.disabled) {\r\n this.selectPopover.position = (this.containerLeftLimit && this.containerLeftLimit - this.popoverWidth < this.selectEl.nativeElement.offsetLeft)\r\n ? 'bottom-right'\r\n : 'bottom-left';\r\n this.selectPopover.toggle(event, this.selectEl.nativeElement);\r\n if (this.allowSearch && this.selectPopover.isVisible) {\r\n setTimeout(() => this.selectPopoverSearch.inputEl.nativeElement.focus());\r\n }\r\n }\r\n }\r\n\r\n public onPopoverHide() {\r\n this.clearSearchTerm();\r\n }\r\n\r\n public clearSearchTerm() {\r\n this.searchTerm.setValue(null);\r\n }\r\n\r\n public clearSelectedItems() {\r\n this.clearSearchTerm();\r\n this.options = [];\r\n this.onSearchTermChange(null);\r\n this.updateSelectedItems();\r\n }\r\n\r\n public getSelectAllCheckboxIcon() {\r\n const state = this.getSelectAllCheckboxState();\r\n switch (state) {\r\n case CheckboxState.Checked:\r\n return 'check_box';\r\n case CheckboxState.Indeterminate:\r\n return 'indeterminate_check_box';\r\n default:\r\n return 'check_box_outline_blank';\r\n }\r\n }\r\n\r\n public getCheckboxIcon(option: Option) {\r\n return option.isChecked ? 'check_box' : 'check_box_outline_blank';\r\n }\r\n\r\n private createOptionText(option: any) {\r\n if (this.textSelector) {\r\n return this.textSelector(option);\r\n }\r\n\r\n if (option.value === '') {\r\n return '';\r\n }\r\n return option.value || option.toString();\r\n }\r\n\r\n private updateSelectedItems() {\r\n this.selectedItems = this.options.filter(op => op.isChecked).map(op => op.item);\r\n this.selectedItemsChanged.emit(this.selectedItems);\r\n this.updateResultString(); \r\n }\r\n\r\n private getSelectAllCheckboxState() {\r\n if (this.filteredOptions) {\r\n const hasChecked = !!find(this.filteredOptions, option => option.isChecked);\r\n const hasUnchecked = !!find(this.filteredOptions, option => !option.isChecked);\r\n\r\n if (hasChecked) {\r\n return hasUnchecked ? CheckboxState.Indeterminate : CheckboxState.Checked;\r\n }\r\n }\r\n\r\n return CheckboxState.Unchecked;\r\n }\r\n\r\n private onSearchTermChange(term: string) {\r\n if (isEmpty(this.options)) {\r\n this.filteredOptions = [];\r\n return;\r\n }\r\n\r\n const isSearchOnly = (this.options.length > this.settings.maxNumberOfVisibleFilterOptions);\r\n const searchTermIsTooShort = !term || (isSearchOnly && term.length < this.settings.minFilterSearchTermLengthForLargeArrays);\r\n\r\n if (searchTermIsTooShort) {\r\n this.filteredOptions = isSearchOnly ? this.options.filter(i => i.isChecked) : this.options;\r\n } else {\r\n const searchText = term.toLowerCase().trim();\r\n this.filteredOptions = this.options.filter(i => {\r\n if (isEmpty(i)) {\r\n return false;\r\n }\r\n\r\n return i.isChecked || (i.text && includes(i.text.toString().toLowerCase(), searchText));\r\n });\r\n }\r\n\r\n if (this.filteredOptions) {\r\n this.filteredOptions.sort((a, b) => {\r\n if (a.isChecked && !b.isChecked) {\r\n return -1;\r\n }\r\n\r\n if (!a.isChecked && b.isChecked) {\r\n return 1;\r\n }\r\n\r\n return this.sortItems ? this.noneValueHelper.compare(a.text, b.text) : 0;\r\n });\r\n }\r\n }\r\n\r\n private updateResultString() {\r\n this.resultString = filter(this.options, option => option.isChecked)\r\n .map(option => this.noneValueHelper.toDisplay(option.text))\r\n .join(', ');\r\n }\r\n\r\n private async promptForValueChangeConfirmation() {\r\n if (this.valueChangeConfirmationText == null) {\r\n return true;\r\n }\r\n\r\n try {\r\n await this.dialogService.confirm(this.valueChangeConfirmationText, 'Cancel', 'OK').toPromise();\r\n return true;\r\n } catch (e) {\r\n return false;\r\n }\r\n }\r\n}\r\n\r\ntype Option = {\r\n isChecked: boolean;\r\n isNone: boolean;\r\n text: string;\r\n item: any;\r\n};\r\n\r\nenum CheckboxState {\r\n Unchecked,\r\n Indeterminate,\r\n Checked\r\n}","import { ChangeDetectionStrategy, Component, Inject, HostListener, InjectionToken } from '@angular/core';\r\nimport { Kit } from './kit';\r\nimport { KitInventoryStorage } from './kit-inventory-storage';\r\nimport { MdlDialogService, MdlDialogReference } from '@angular-mdl/core';\r\nimport { routeSnapshotExtensions } from '../../shared/route-extensions';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Site } from '../../sites';\r\nimport { publishReplay, refCount } from 'rxjs/operators';\r\nimport { Observable } from 'rxjs';\r\nimport { KitDetail } from './kit-detail';\r\nimport { dateTimeComparator, dateRenderer } from '../../covance-ag-grid';\r\nimport { ColDef, ICellRendererParams } from 'ag-grid-community';\r\nimport * as moment from 'moment';\r\n\r\nexport const KIT_DETAIL_TOKEN = new InjectionToken('KitDetail');\r\n\r\nexport interface KitDetailGridRowItem extends ICellRendererParams {\r\n data: KitDetail;\r\n}\r\n\r\n@Component({\r\n selector: 'kit-inventory-detail',\r\n template: require('./kit-inventory-detail.component.html'),\r\n styles: [require('./kit-inventory-detail.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class KitInventoryDetailComponent {\r\n public kit: Kit;\r\n public siteId: number;\r\n public kitDetails$: Observable;\r\n public detailColumns: ColDef[];\r\n\r\n constructor(\r\n route: ActivatedRoute,\r\n private dialog: MdlDialogReference,\r\n private dialogService: MdlDialogService,\r\n private kitInventoryStorage: KitInventoryStorage,\r\n @Inject(KIT_DETAIL_TOKEN) kit: Kit,\r\n ) {\r\n this.detailColumns = [\r\n {\r\n headerName: 'Accession Number',\r\n field: 'accessionNumber',\r\n colId: 'accessionNumber'\r\n },\r\n {\r\n headerName: 'Expiration Date',\r\n field: 'expiresOn',\r\n colId: 'expiresOn',\r\n sort: 'asc',\r\n comparator: dateTimeComparator,\r\n valueGetter: (params: KitDetailGridRowItem) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n if (params.data.expiresOn.isBefore([1000, 1, 1])) {\r\n return 'N/A';\r\n }\r\n return dateRenderer({ value: params.data.expiresOn });\r\n }\r\n },\r\n {\r\n headerName: 'Days To Expiration',\r\n field: 'daysToExp',\r\n colId: 'daysToExp',\r\n valueGetter: (params: KitDetailGridRowItem) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n if (params.data.expiresOn.isBefore([1000, 1, 1])) {\r\n return 'N/A';\r\n }\r\n return params.data.expiresOn.diff(moment(), 'days');\r\n },\r\n cellStyle: (params: KitDetailGridRowItem) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n if (params.data.expiresOn.isBefore([1000, 1, 1])) {\r\n return null;\r\n }\r\n var numberDays = params.data.expiresOn.diff(moment(), 'days');\r\n if (numberDays > 0 && numberDays < 30) {\r\n return { color: 'orange' };\r\n }\r\n if (numberDays <= 0) {\r\n return { color: 'red' };\r\n }\r\n return null;\r\n },\r\n tooltip: (params: KitDetailGridRowItem) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n if (params.data.expiresOn.isBefore([1000, 1, 1])) {\r\n return params.data.accessionNumber + ' has no expiration date.';\r\n }\r\n var numberDays = params.data.expiresOn.diff(moment(), 'days');\r\n if (numberDays > 0 && numberDays < 30) {\r\n return params.data.accessionNumber + ' is within 30 days of expiration.';\r\n }\r\n if (numberDays <= 0) {\r\n return params.data.accessionNumber + ' is past expiration.';\r\n }\r\n return null;\r\n }\r\n }\r\n ];\r\n\r\n this.kit = kit;\r\n //get site id from route for investigator, pull from kit object for sponsor\r\n const site = routeSnapshotExtensions.findData(route.snapshot.firstChild.firstChild.firstChild, 'selectedSite') as Site | null;\r\n if (site && site.siteId) {\r\n this.siteId = site && site.siteId;\r\n } else {\r\n this.siteId = this.kit.siteId;\r\n }\r\n\r\n this.kitDetails$ = this.kitInventoryStorage.getKitDetails(this.siteId, this.kit.ctSiteId, this.kit.kitTypeId).pipe(publishReplay(1), refCount()) as Observable;\r\n }\r\n\r\n @HostListener('document:keydown.esc')\r\n public close() {\r\n this.dialog.hide(); \r\n }\r\n}","import { Component, InjectionToken, Inject, HostListener, ChangeDetectionStrategy, Output, EventEmitter, OnDestroy } from '@angular/core';\r\nimport { MdlDialogReference } from '@angular-mdl/core';\r\n\r\nexport interface VideoDialogParameters {\r\n videoUrl: string;\r\n videoLoaded: () => void;\r\n}\r\n\r\nexport const VIDEO_DIALOG_PARAMETERS = new InjectionToken('VideoDialogParameters');\r\n\r\n@Component({\r\n selector: 'app-play-video-dialog',\r\n template: require('./play-video-dialog.component.html'),\r\n styles: [require('./play-video-dialog.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class PlayVideoDialogComponent {\r\n @Output()\r\n public loadedData = new EventEmitter();\r\n\r\n constructor(\r\n private readonly dialog: MdlDialogReference,\r\n @Inject(VIDEO_DIALOG_PARAMETERS) public parameters: VideoDialogParameters\r\n ) { }\r\n\r\n @HostListener('document:keydown.esc')\r\n public close() {\r\n this.dialog.hide();\r\n }\r\n\r\n public onVideoLoaded() {\r\n if (this.parameters.videoLoaded) {\r\n this.parameters.videoLoaded();\r\n }\r\n }\r\n}\r\n","import { MdlDialogReference } from '@angular-mdl/core';\r\nimport { Component, HostListener, Inject, InjectionToken } from '@angular/core';\r\nimport { DlLink } from '../models/dlLink';\r\nimport { ReportDownloader } from '../report-downloader';\r\n\r\nexport const PREVIEW_TOKEN = new InjectionToken('PreviewItem');\r\n\r\n@Component({\r\n selector: 'preview-dialog',\r\n template: require('./preview-dialog.component.html'),\r\n styles: [require('./preview-dialog.component.scss')]\r\n})\r\nexport class PreviewDialogComponent {\r\n public documentHtml: string;\r\n public documentRootStyles: { [key: string]: string };\r\n public isDataLoading = true;\r\n\r\n constructor(\r\n private dialog: MdlDialogReference,\r\n private reportDownloader: ReportDownloader,\r\n @Inject(PREVIEW_TOKEN) dlLink: DlLink\r\n ) {\r\n this.reportDownloader.getPreview(dlLink).subscribe(html => {\r\n this.isDataLoading = false;\r\n const bodyStylesMatch = html.match(/]*>([\\s\\S]*)<\\/body>/im);\r\n this.documentRootStyles = this.getRootStyles((bodyStylesMatch && bodyStylesMatch[1]) || '');\r\n this.documentHtml = (bodyMatch && bodyMatch[1]) || html;\r\n });\r\n }\r\n\r\n @HostListener('document:keydown.esc')\r\n public close() {\r\n this.dialog.hide();\r\n }\r\n\r\n private getRootStyles(styleString: string): { [key: string]: string } {\r\n const styleObject = styleString\r\n .split(';')\r\n .map(s => s.split(':').map(v => v.trim()))\r\n .filter(([key, value]) => key && key !== 'white-space')\r\n .reduce(\r\n (a: {[key: string]: string}, [key, value]) => {\r\n a[key] = value; \r\n return a;\r\n }, \r\n {});\r\n return styleObject;\r\n }\r\n}","import { IFloatingFilterComp } from 'ag-grid-angular/main';\r\nimport { ChangeDetectionStrategy, Component, ViewChild, ElementRef } from '@angular/core';\r\nimport { ICellRendererParams, IFloatingFilterParams, SerializedSetFilter } from 'ag-grid-community';\r\n\r\nexport type BooleanCellValue = 'true' | 'false';\r\n\r\nexport interface BooleanCellRendererParams extends ICellRendererParams {\r\n value: BooleanCellValue;\r\n}\r\n\r\nexport function yesNoRenderer(value: BooleanCellValue) {\r\n return value === 'true' ? 'Yes' : 'No';\r\n}\r\n\r\nexport interface BooleanAgFloatingFilterParams extends IFloatingFilterParams {\r\n booleanValueRenderer: (value: BooleanCellValue) => string;\r\n}\r\n\r\n@Component({\r\n selector: 'boolean-ag-floating-filter',\r\n template: '',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class BooleanAgFloatingFilterComponent implements IFloatingFilterComp {\r\n @ViewChild('filterInput')\r\n private filterInput: ElementRef;\r\n\r\n private valueRenderer: (value: BooleanCellValue) => string;\r\n\r\n public agInit(params: BooleanAgFloatingFilterParams) { \r\n this.valueRenderer = params.booleanValueRenderer;\r\n }\r\n\r\n public onParentModelChanged(model: { values: BooleanCellValue[]}) {\r\n const filterText = model && model.values && model.values.length > 0\r\n ? this.valueRenderer(model.values[0])\r\n : '';\r\n\r\n this.filterInput.nativeElement.value = filterText;\r\n }\r\n}\r\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { IFilterParams, IDoesFilterPassParams, RowNode } from 'ag-grid-community/main';\r\nimport { AgFilterComponent } from 'ag-grid-angular/main';\r\n\r\ntype Option = 'Yes' | 'No';\r\n\r\ntype Model = {\r\n values: Option[];\r\n};\r\n\r\n@Component({\r\n selector: 'boolean-filter-cell',\r\n template: require('./boolean-filter.component.html'),\r\n styles: [require('./boolean-filter.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class BooleanFilterComponent implements AgFilterComponent {\r\n public options: Option[] = ['Yes', 'No'];\r\n public chosenOptions: Option[] = this.options;\r\n\r\n private params: IFilterParams;\r\n private valueGetter: (rowNode: RowNode) => boolean;\r\n\r\n public agInit(params: IFilterParams): void {\r\n this.params = params;\r\n this.valueGetter = params.valueGetter;\r\n }\r\n\r\n public isFilterActive(): boolean {\r\n return !!this.chosenOptions;\r\n }\r\n\r\n public doesFilterPass(params: IDoesFilterPassParams): boolean {\r\n switch (this.chosenOptions.length) {\r\n case 2: {\r\n return true;\r\n }\r\n case 1: {\r\n return this.valueGetter(params.node) === (this.chosenOptions[0] === 'Yes');\r\n }\r\n case 0:\r\n default: {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n public getModel(): Model {\r\n return { values: this.chosenOptions };\r\n }\r\n\r\n public setModel(model: Model): void {\r\n if (!model) {\r\n return;\r\n }\r\n this.chosenOptions = model.values;\r\n }\r\n\r\n public onChange(newFlags: Option[]) {\r\n this.chosenOptions = newFlags;\r\n this.params.filterChangedCallback();\r\n }\r\n}","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { AgFrameworkComponent } from 'ag-grid-angular/main';\r\nimport { ICellRendererParams } from 'ag-grid-community/main';\r\nimport { Params } from '@angular/router';\r\n\r\nexport interface BarParams {\r\n appendLink?: boolean;\r\n routerLink?: any[];\r\n queryParams?: Params;\r\n value: number;\r\n threshold: number;\r\n}\r\n\r\n@Component({\r\n selector: 'bar-cell',\r\n template: require('./bar-renderer.component.html'),\r\n styles: [require('./bar-renderer.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class BarRendererComponent implements AgFrameworkComponent {\r\n public value: number;\r\n public width: string;\r\n public routerLink: any[];\r\n public queryParams: Params;\r\n public appendLink: boolean;\r\n\r\n public agInit(row: { value: BarParams }): void {\r\n const barParams = row.value;\r\n\r\n if (barParams) {\r\n this.routerLink = barParams.routerLink;\r\n this.queryParams = barParams.queryParams;\r\n this.appendLink = barParams.appendLink;\r\n\r\n this.value = barParams.value;\r\n const width = Math.round(100 * barParams.value / barParams.threshold);\r\n this.width = isNaN(width) ? '0' : width.toString() + '%';\r\n }\r\n }\r\n}","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { AgRendererComponent } from 'ag-grid-angular/main';\r\nimport { Report } from '../../documents';\r\n\r\n@Component({\r\n selector: 'hidden-document-ag-renderer',\r\n template: require('./hidden-document-ag-renderer.component.html'),\r\n styles: [require('./hidden-document-ag-renderer.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class HiddenDocumentAgRendererComponent implements AgRendererComponent {\r\n public isHidden = false;\r\n\r\n constructor() {\r\n }\r\n\r\n public refresh(): boolean {\r\n return false;\r\n }\r\n\r\n public agInit({ data }: { data: Report }) {\r\n this.isHidden = data.isHidden;\r\n }\r\n}\r\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { AgRendererComponent } from 'ag-grid-angular/main';\r\nimport { isEmpty } from 'lodash';\r\n\r\nexport interface LinkParams {\r\n routerLink: any[] | string;\r\n queryParams?: { [k: string]: any };\r\n preserveQueryParams?: boolean;\r\n text: string | number;\r\n linkIcon?: string;\r\n toString: () => string;\r\n}\r\n\r\n@Component({\r\n selector: 'link-cell',\r\n template: require('./link-ag-renderer.component.html'),\r\n styles: [require('./link-ag-renderer.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LinkAgRendererComponent implements AgRendererComponent {\r\n public params: LinkParams;\r\n public isQuestion = false;\r\n\r\n public agInit(row: { value: LinkParams }): void {\r\n this.params = row.value;\r\n }\r\n\r\n public refresh() {\r\n return false;\r\n }\r\n\r\n public get isLink() {\r\n return this.params && !isEmpty(this.params.routerLink);\r\n }\r\n\r\n public get tooltipText() {\r\n return this.params ? this.params.text : null;\r\n }\r\n}","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { AgFrameworkComponent } from 'ag-grid-angular/main';\r\nimport { ICellRendererParams } from 'ag-grid-community/main';\r\n\r\n@Component({\r\n selector: 'mltiline-cell',\r\n template: '',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class MultilineAgRendererComponent implements AgFrameworkComponent {\r\n\r\n public value: string;\r\n\r\n public agInit(row: ICellRendererParams): void {\r\n this.value = row.value;\r\n }\r\n}","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { AgRendererComponent } from 'ag-grid-angular/main';\r\nimport { isEmpty } from 'lodash';\r\nimport { LinkParams } from './link-ag-renderer.component';\r\n\r\n@Component({\r\n selector: 'test-link-ag-renderer',\r\n template: require('./test-link-ag-renderer.component.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TestLinkAgRendererComponent implements AgRendererComponent {\r\n public params: LinkParams;\r\n public isQuestion = false;\r\n\r\n public agInit(row: { value: LinkParams, node: any, data: any }): void {\r\n this.params = row.value;\r\n if (!row.node.group) {\r\n this.isQuestion = !!row.data.isQuestion;\r\n }\r\n }\r\n\r\n public refresh() {\r\n return false;\r\n }\r\n\r\n public get isLink() {\r\n return this.params && !isEmpty(this.params.routerLink) && !this.isQuestion;\r\n }\r\n\r\n public get tooltipText() {\r\n return this.params ? this.params.text : null;\r\n }\r\n\r\n public onQuestionMouseOver(event: MouseEvent) {\r\n // Don't show covance-tooltip together with Admin Question tooltip.\r\n event.stopPropagation();\r\n }\r\n}","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { AgRendererComponent } from 'ag-grid-angular/main';\r\nimport { ICellRendererParams } from 'ag-grid-community/main';\r\n\r\nexport interface TextListItem {\r\n text: string;\r\n tooltip: string;\r\n}\r\n\r\nexport class TextListParams {\r\n\r\n public items: TextListItem[];\r\n\r\n constructor(items?: TextListItem []) {\r\n this.items = items ? items : [];\r\n }\r\n\r\n public toString() {\r\n return this.items ? this.items.map(i => i.text).join(' ') : '';\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'text-list-cell',\r\n template: require('./text-list-ag-renderer.component.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n\r\nexport class TextListAgRendererComponent implements AgRendererComponent {\r\n \r\n public params: TextListParams = new TextListParams();\r\n\r\n public agInit(row: ICellRendererParams): void {\r\n\r\n if (!row.data || !row.value) {\r\n return;\r\n }\r\n\r\n this.params = row.value;\r\n }\r\n\r\n public refresh() {\r\n return false;\r\n }\r\n}","import { Component, ChangeDetectorRef, ChangeDetectionStrategy, OnDestroy } from '@angular/core';\r\nimport { AgRendererComponent } from 'ag-grid-angular/main';\r\nimport { Subscription } from 'rxjs';\r\nimport { uniqBy } from 'lodash';\r\nimport { User } from '../../user/user';\r\nimport { UserStorage } from '../../user/user-storage';\r\nimport { Acknowledgement, Readable } from '../../view-history';\r\n\r\n@Component({\r\n selector: 'view-history-cell',\r\n template: require('./view-history-ag-renderer.component.html'),\r\n styles: [require('./view-history-ag-renderer.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ViewHistoryAgRendererComponent implements AgRendererComponent, OnDestroy {\r\n\r\n public get history() {\r\n return this.viewHistory;\r\n }\r\n\r\n public get readByMe() {\r\n return this.viewHistory ? !!(this.viewHistory.find(h => h.user.sitelinkUserId === this.currentUser.metadata.sitelinkUserId)) : false;\r\n }\r\n\r\n public get readByOthers() {\r\n return !this.readByMe && this.viewHistory.length > 0;\r\n }\r\n\r\n private subscription: Subscription;\r\n private currentUser: User;\r\n private viewHistory: Acknowledgement[] = [];\r\n\r\n constructor(private userStorage: UserStorage, private changeDetectorRef: ChangeDetectorRef) {\r\n }\r\n\r\n public refresh() {\r\n return false;\r\n }\r\n\r\n public agInit(row: { data: Readable }): void {\r\n if (!row.data) {\r\n return;\r\n }\r\n\r\n this.subscription = this.userStorage.currentUser.subscribe(u => {\r\n this.viewHistory = uniqBy(row.data.viewHistory, h => h.user.sitelinkUserId) || [];\r\n this.currentUser = u;\r\n this.changeDetectorRef.markForCheck();\r\n });\r\n }\r\n\r\n public ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n}","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, OnDestroy, Output } from '@angular/core';\r\nimport { ColDef, GridOptions, ICellRendererParams, Utils } from 'ag-grid-community';\r\nimport { RowNode } from 'ag-grid-community/main';\r\nimport { debounce, defaults, isNil } from 'lodash';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { comparators } from '../core/comparators';\r\nimport { SortModel } from '../covance-ag-grid/ag-export.component';\r\nimport { CovanceGridColumn } from './covance-grid-column';\r\nimport { CellTooltipAgRendererComponent } from './renderers/cell-tooltip-ag-renderer.component';\r\nimport { HeaderGroupRenderer } from './renderers/header-group-renderer.component';\r\nimport { HeaderTooltipAgRendererComponent } from './renderers/header-tooltip-ag-renderer.component';\r\n\r\n@Component({\r\n selector: 'covance-ag-grid',\r\n template: require('./covance-ag-grid.component.html'),\r\n styles: [require('./covance-ag-grid.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CovanceAgGridComponent implements OnChanges, OnDestroy {\r\n\r\n @Output()\r\n public rowClicked = new EventEmitter();\r\n\r\n @Output()\r\n public saveClicked = new EventEmitter();\r\n\r\n @Output()\r\n public printClicked = new EventEmitter();\r\n\r\n @Output()\r\n public checkBoxClicked = new EventEmitter();\r\n\r\n @Output()\r\n public displayedColumnsChanged = new EventEmitter();\r\n\r\n @Output()\r\n public sortChanged = new EventEmitter();\r\n\r\n @Output()\r\n public quickFilterChanged = new EventEmitter();\r\n\r\n @Input()\r\n public set dataSource(value: any[]) {\r\n this.data = value;\r\n this.handleOverlays();\r\n }\r\n\r\n public get dataSource() {\r\n return this.data;\r\n }\r\n\r\n @Input()\r\n public set columnDefs(value: CovanceGridColumn[]) {\r\n this.columns = value;\r\n this.handleOverlays();\r\n // the code below is for fixing AgGrid's issues with changing columns on the fly. \r\n // In particular: column order unpredictably changes and grouping doesn't work. \r\n // We hope they will fix the issues soon.\r\n const gridApi = this.options && this.options.api;\r\n if (gridApi) {\r\n gridApi.setColumnDefs(null);\r\n setTimeout(() => {\r\n gridApi.setColumnDefs(value);\r\n gridApi.redrawRows();\r\n });\r\n }\r\n }\r\n\r\n public get columnDefs() {\r\n return this.columns;\r\n }\r\n\r\n @Input()\r\n public exportGrid: GridOptions = null;\r\n\r\n @Input()\r\n public headerHeight: number;\r\n\r\n @Input()\r\n public groupUseEntireRow = false;\r\n\r\n @Input()\r\n public set gridOptions(value: GridOptions) {\r\n this.options = value;\r\n defaults(value, this.defaultGridOptions);\r\n }\r\n\r\n public get gridOptions() {\r\n return this.options;\r\n }\r\n\r\n @Input()\r\n public showToolBar = true;\r\n\r\n @Input()\r\n public showQuickFilter = true;\r\n\r\n @Input()\r\n public showExport = true;\r\n\r\n @Input()\r\n public exportDisclaimer: string = null;\r\n\r\n @Input()\r\n public exportData: { [key: string]: string }[];\r\n\r\n @Input()\r\n public showGrid = true;\r\n\r\n @Input()\r\n public showSave = false;\r\n\r\n @Input()\r\n public showPrint = false;\r\n\r\n @Input()\r\n public showTotal = false;\r\n\r\n @Input()\r\n public showCount = false;\r\n\r\n @Input()\r\n public quickFilter: string;\r\n\r\n @Input()\r\n public checkBoxLabel: string = null;\r\n\r\n public selectedRowNodes = new BehaviorSubject([]);\r\n\r\n public get enableToolBar() {\r\n return (this.showQuickFilter || this.showExport) && this.showToolBar;\r\n }\r\n\r\n private readonly defaultGridOptions: GridOptions = {\r\n defaultColDef: {\r\n comparator: function (a, b) {\r\n switch (typeof a) {\r\n case 'string':\r\n return comparators.stringComparator(a, b);\r\n default:\r\n return Utils.defaultComparator(a, b);\r\n }\r\n }\r\n },\r\n enableFilter: true,\r\n enableColResize: true,\r\n enableSorting: true,\r\n suppressDragLeaveHidesColumns: true,\r\n animateRows: true,\r\n rowHeight: 25,\r\n minColWidth: 75,\r\n headerHeight: 25,\r\n suppressCellSelection: true,\r\n groupDefaultExpanded: 1,\r\n groupUseEntireRow: true,\r\n groupRowInnerRendererFramework: HeaderGroupRenderer,\r\n overlayNoRowsTemplate: `No Data`,\r\n //magic template for mdl-spinner. ag grid requeires it to be plain html. no angular no js so we cant use mdl-spinner tag here.\r\n overlayLoadingTemplate: `
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
`,\r\n suppressMovableColumns: true,\r\n suppressContextMenu: true,\r\n suppressPropertyNamesCheck: true,\r\n suppressRowTransform: true,\r\n onGridSizeChanged: function (params) {\r\n params.api.sizeColumnsToFit();\r\n }\r\n };\r\n\r\n private options: GridOptions;\r\n\r\n private data: any[];\r\n private columns: ColDef[] = [];\r\n\r\n private handleOverlays = debounce(() => {\r\n if (this.gridOptions && this.gridOptions.api) {\r\n this.gridOptions.api.hideOverlay();\r\n if (!this.data) {\r\n this.gridOptions.api.showLoadingOverlay();\r\n } else if (this.data.length === 0) {\r\n this.gridOptions.api.showNoRowsOverlay();\r\n }\r\n }\r\n });\r\n\r\n @Input()\r\n public exportHandleSort = (sortModels: SortModel[]): SortModel[] => {\r\n return sortModels;\r\n }\r\n\r\n public ngOnChanges() {\r\n if (!this.gridOptions) {\r\n this.gridOptions = this.defaultGridOptions;\r\n }\r\n\r\n this.setTooltips();\r\n this.setRowHeight();\r\n\r\n if (this.headerHeight) {\r\n this.gridOptions.headerHeight = this.headerHeight;\r\n }\r\n\r\n if (this.groupUseEntireRow) {\r\n this.gridOptions.groupUseEntireRow = true;\r\n }\r\n }\r\n\r\n public ngOnDestroy() {\r\n if (this.gridOptions.api) {\r\n this.gridOptions.api.removeEventListener('filterChanged', this.pushSelectedNodes);\r\n this.gridOptions.api.removeEventListener('sortChanged', this.pushSelectedNodes);\r\n }\r\n }\r\n\r\n public onSortChanged(event: Event) {\r\n this.sortChanged.emit(event);\r\n }\r\n\r\n public onDisplayedColumnsChanged(event: Event) {\r\n this.displayedColumnsChanged.emit(event);\r\n }\r\n\r\n public onRowClicked(event: Event) {\r\n this.rowClicked.emit(event);\r\n }\r\n\r\n public onRowSelected() {\r\n this.pushSelectedNodes();\r\n }\r\n\r\n public onPrintClicked(event: Event) {\r\n this.printClicked.emit(event);\r\n }\r\n\r\n public onSaveClicked(event: Event) {\r\n this.saveClicked.emit(event);\r\n }\r\n\r\n public onCheckBoxClicked(event: Event) {\r\n this.checkBoxClicked.emit(event);\r\n }\r\n\r\n public onQuickFilterChange(value: string) {\r\n this.quickFilter = value;\r\n\r\n if (this.gridOptions && this.gridOptions.api) {\r\n this.gridOptions.api.setQuickFilter(value);\r\n }\r\n\r\n if (this.exportGrid && this.exportGrid.api) {\r\n this.exportGrid.api.setQuickFilter(value);\r\n }\r\n\r\n this.quickFilterChanged.emit(value);\r\n }\r\n\r\n public resetQuickFilter() {\r\n this.onQuickFilterChange('');\r\n }\r\n\r\n public pushSelectedNodes = () => {\r\n if (!this.gridOptions.api) {\r\n return;\r\n }\r\n\r\n this.gridOptions.api.sizeColumnsToFit();\r\n this.gridOptions.api.setQuickFilter(this.quickFilter);\r\n\r\n const selectedNodes: RowNode[] = [];\r\n\r\n this.gridOptions.api.forEachNodeAfterFilterAndSort(rowNode => {\r\n if (rowNode.isSelected()) {\r\n selectedNodes.push(rowNode);\r\n }\r\n });\r\n\r\n debounce(() => this.selectedRowNodes.next(selectedNodes))();\r\n }\r\n\r\n private setTooltips() {\r\n if (!this.columnDefs) {\r\n return;\r\n }\r\n\r\n this.columnDefs.forEach(colDef => {\r\n if (!colDef.cellRendererFramework && !colDef.cellRenderer && !colDef.isCellTooltipOff) {\r\n colDef.cellRendererFramework = CellTooltipAgRendererComponent;\r\n }\r\n\r\n if (!colDef.headerComponentFramework && !colDef.headerComponent && !colDef.isHeaderTooltipOff) {\r\n colDef.headerComponentFramework = HeaderTooltipAgRendererComponent;\r\n }\r\n });\r\n }\r\n\r\n private setRowHeight() {\r\n if (!this.columnDefs) {\r\n return;\r\n }\r\n\r\n const multilineColDefs = this.columnDefs.filter(colDef => !!colDef.getLineCount || !!colDef.getRowHeight);\r\n\r\n if (multilineColDefs.length === 0) {\r\n return;\r\n }\r\n\r\n const container = {\r\n borderTop: 1,\r\n borderBottom: 1,\r\n PaddingTop: 5\r\n };\r\n\r\n const offset = container.borderTop + container.borderBottom + container.PaddingTop;\r\n\r\n this.gridOptions.getRowHeight = (params: ICellRendererParams) => {\r\n let maxRowsCount = 1;\r\n\r\n if (isNil(params.node.rowGroupIndex)) {\r\n multilineColDefs.filter(colDef => !!colDef.getLineCount).forEach(colDef => {\r\n const count = colDef.getLineCount(params.data);\r\n if (count > maxRowsCount) {\r\n maxRowsCount = count;\r\n }\r\n });\r\n }\r\n\r\n let maxSize = maxRowsCount * (this.gridOptions.rowHeight - offset) + offset;\r\n\r\n if (isNil(params.node.rowGroupIndex)) {\r\n this.columnDefs.filter(colDef => !!colDef.getRowHeight).forEach(colDef => {\r\n const size = colDef.getRowHeight(params.data);\r\n if (size > maxSize) {\r\n maxSize = size;\r\n }\r\n });\r\n }\r\n\r\n return maxSize;\r\n };\r\n }\r\n}","import {componentHandler} from './materialDesignLite';\r\nimport {Directive, ElementRef, OnInit, OnDestroy} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[mdl]'\r\n})\r\nexport class Mdl implements OnDestroy, OnInit {\r\n constructor(private element: ElementRef) {\r\n }\r\n\r\n public ngOnInit() {\r\n const nativeElement = this.element.nativeElement as Element;\r\n console.debug(`mdl initialized on ${nativeElement.nodeName}`);\r\n componentHandler.upgradeElements(nativeElement);\r\n }\r\n\r\n public ngOnDestroy() {\r\n componentHandler.downgradeElements(this.element.nativeElement);\r\n }\r\n}","import {componentHandler} from './materialDesignLite';\r\nimport {Directive, OnInit, OnDestroy} from '@angular/core';\r\nimport {Router} from '@angular/router';\r\n\r\nimport {Subscription} from 'rxjs';\r\n\r\n@Directive({\r\n selector: '[mdlOnRouteChange]'\r\n})\r\nexport class MdlOnRouteChange implements OnInit, OnDestroy {\r\n private querySubscription: Subscription;\r\n\r\n constructor(private router: Router) {\r\n }\r\n\r\n public ngOnInit() {\r\n console.debug('mdl-router-watcher initialized');\r\n this.querySubscription = this.router\r\n .events\r\n .subscribe(() => {\r\n componentHandler.upgradeDom();\r\n });\r\n }\r\n\r\n public ngOnDestroy() {\r\n console.debug('mdl-router-watcher disposed');\r\n this.querySubscription.unsubscribe();\r\n }\r\n}","export class UnitOption {\r\n public readonly id: string;\r\n public readonly title: string;\r\n public readonly isSiUnit: boolean;\r\n\r\n constructor(id: string, title: string, isSiUnit: boolean) {\r\n this.id = id;\r\n this.title = title;\r\n this.isSiUnit = isSiUnit;\r\n }\r\n\r\n public toString() {\r\n return this.title;\r\n }\r\n}\r\n","import { Component, ChangeDetectionStrategy, Input, OnChanges } from '@angular/core';\r\nimport { isEmpty } from 'lodash';\r\nimport { DataRevisionIndicator } from './data-revision-indicator';\r\n\r\n@Component({\r\n selector: 'data-revision-indicator',\r\n template: require('./data-revision-indicator.component.html'),\r\n styles: [require('./data-revision-indicator.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n\r\nexport class DataRevisionIndicatorComponent implements OnChanges {\r\n\r\n @Input()\r\n public showSubjectDataRevisionIndicator: boolean;\r\n\r\n @Input()\r\n public showVisitDataRevisionIndicator: boolean;\r\n\r\n @Input()\r\n public showResultDataRevisionIndicator: boolean;\r\n\r\n @Input()\r\n public showDataRevisionIndicator: boolean;\r\n\r\n @Input()\r\n public showTooltip = false;\r\n\r\n public messages: string[] = [];\r\n\r\n constructor(private dataRevisionIndicator: DataRevisionIndicator) { }\r\n\r\n public get isVisible() {\r\n return !isEmpty(this.messages) || this.showDataRevisionIndicator;\r\n }\r\n\r\n public ngOnChanges(): void {\r\n this.messages = [];\r\n\r\n if (this.showSubjectDataRevisionIndicator) {\r\n this.messages.push(this.dataRevisionIndicator.subjectDataRevisionMessage);\r\n }\r\n\r\n if (this.showVisitDataRevisionIndicator) {\r\n this.messages.push(this.dataRevisionIndicator.visitDataRevisionMessage);\r\n }\r\n\r\n if (this.showResultDataRevisionIndicator) {\r\n this.messages.push(this.dataRevisionIndicator.resultDataRevisionMessage);\r\n }\r\n }\r\n}","import { ChangeDetectionStrategy, Component, HostListener, Output, EventEmitter } from '@angular/core';\r\nimport { UrlBuilder } from '../core/url-builder/url-builder';\r\n\r\n@Component({\r\n selector: 'global-popup',\r\n template: require('./global-popup.component.html'),\r\n styles: [require('./global-popup.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class GlobalPopupComponent {\r\n @Output()\r\n public closing = new EventEmitter();\r\n\r\n constructor(private urlBuilder: UrlBuilder) { }\r\n\r\n @HostListener('document:keydown.esc')\r\n public onBackToPortal() {\r\n this.urlBuilder\r\n .esa()\r\n .globalPopup()\r\n .empty()\r\n .navigate({ preserveQueryParams: true });\r\n this.closing.emit();\r\n }\r\n}","import { dataMember, required } from 'santee-dcts';\r\nimport { isNil } from 'lodash';\r\n\r\nexport class TestResult {\r\n @dataMember()\r\n public stringResult: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public numericResult: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public unit: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public min: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public max: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public rangeTextValue: string;\r\n\r\n @dataMember()\r\n @required()\r\n public isSIUnit: boolean;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public sequence: number;\r\n\r\n public get hasValidNumericRange() {\r\n return !isNil(this.min) && !isNil(this.max);\r\n }\r\n\r\n public get range() {\r\n return this.hasValidNumericRange ? `${this.min} - ${this.max}` : this.rangeTextValue || '';\r\n }\r\n\r\n public get rangeWithUnits() {\r\n return (this.hasValidNumericRange && this.unit) ? `${this.range} ${this.unit}` : this.range;\r\n }\r\n}","import { Component, Input, Output, ChangeDetectionStrategy, EventEmitter, OnChanges, ViewChild, ElementRef } from '@angular/core';\r\nimport * as d3 from 'd3';\r\n\r\nexport interface ChartLegendItem {\r\n shape: string;\r\n color?: string;\r\n stroke?: string;\r\n class?: string;\r\n label: string;\r\n key: any;\r\n isSelected?: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'chart-legend',\r\n template: require('./chart-legend.component.html'),\r\n styles: [require('./chart-legend.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ChartLegendComponent implements OnChanges {\r\n\r\n @Output()\r\n public mouseOverItem = new EventEmitter();\r\n\r\n @Output()\r\n public mouseOutItem = new EventEmitter();\r\n\r\n @Output()\r\n public selectionChanged = new EventEmitter();\r\n\r\n @Input()\r\n public items: ChartLegendItem[] = [];\r\n\r\n @Input()\r\n public isVertical = false;\r\n\r\n private shapesDict: { [index: string]: d3.SymbolType } = {\r\n 'circle': d3.symbolCircle,\r\n 'diamond': d3.symbolDiamond,\r\n 'cross': d3.symbolCross,\r\n 'triangle-up': d3.symbolTriangle,\r\n 'triangle-down': d3.symbolTriangle,\r\n 'square': d3.symbolSquare,\r\n 'line': {\r\n draw: (context: CanvasPath, size: number) => {\r\n context.rect(-1, -1, 8, 2);\r\n }\r\n }\r\n };\r\n\r\n private isViewInitialized = false;\r\n\r\n @ViewChild('legendDiv')\r\n private legendDiv: ElementRef;\r\n\r\n public ngOnChanges() {\r\n if (this.isViewInitialized) {\r\n this.render();\r\n }\r\n }\r\n\r\n public ngAfterViewInit() {\r\n this.render();\r\n this.isViewInitialized = true;\r\n }\r\n\r\n private render() {\r\n const el = d3.select(this.legendDiv.nativeElement);\r\n\r\n el .select('svg')\r\n .selectAll('path')\r\n .on('mouseover', null)\r\n .on('mouseout', null)\r\n .on('click', null);\r\n\r\n el.selectAll('div').remove();\r\n\r\n const enableSelection = this.selectionChanged.observers.length !== 0;\r\n\r\n const divs = el\r\n .classed('chart-legend--vertical', this.isVertical)\r\n .selectAll('div')\r\n .data(this.items || [])\r\n .enter()\r\n .append('div')\r\n .classed('chart-legend__item', true)\r\n .classed('selectable', enableSelection)\r\n .on('mouseover', (item: ChartLegendItem) => this.mouseOverItem.emit(item))\r\n .on('mouseout', (item: ChartLegendItem) => this.mouseOutItem.emit(item))\r\n .on('click', (item: ChartLegendItem) => {\r\n\r\n if (enableSelection) {\r\n item.isSelected = !item.isSelected;\r\n el.selectAll('.item-title').classed('selected-item', legendItem => legendItem.isSelected);\r\n this.selectionChanged.emit(this.items.filter(i => i.isSelected));\r\n }\r\n\r\n });\r\n\r\n const svgs = divs\r\n .append('svg')\r\n .attr('width', '18')\r\n .attr('height', '20')\r\n .append('g')\r\n .attr('transform', 'translate(8, 10)');\r\n\r\n svgs\r\n .append('path')\r\n .attr('d', d3.symbol()\r\n .type((d: ChartLegendItem) =>\r\n this.getD3Symbol(d.shape)))\r\n .attr('transform', d => d.shape === 'triangle-down' ? 'translate(1,-3) rotate(180)' : 'rotate(0)')\r\n .style('fill', (d: ChartLegendItem) => d.color)\r\n .style('stroke', (d: ChartLegendItem) => d.stroke || d.color)\r\n .attr('class', (d: ChartLegendItem) => d.class);\r\n\r\n\r\n divs\r\n .append('div')\r\n .classed('item-title', true)\r\n .text(d => d.label);\r\n }\r\n\r\n private getD3Symbol(shape: string) {\r\n return this.shapesDict[shape] || d3.symbolCircle;\r\n }\r\n}","import { Component, Input, Output, ChangeDetectionStrategy, EventEmitter, OnChanges, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\r\n\r\nexport interface GridLegendItem {\r\n icon?: string;\r\n text?: string;\r\n cssClass?: string | string [];\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'grid-legend',\r\n template: require('./grid-legend.component.html'),\r\n styles: [require('./grid-legend.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class GridLegendComponent {\r\n\r\n @Input()\r\n public items: GridLegendItem[] = [];\r\n}","import { CovanceFilter } from './../../covance-filter/covance-filter';\r\nimport { Component, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef, Inject } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { CvdChartData, CvdBandDataValue, ICvdChartEvent, AfterChartRenderedEventArgs } from '@covance/ng-cvd3';\r\nimport { isEmpty } from 'lodash';\r\nimport { SITE_LAB_RESULTS_FILTERS_STORAGE } from './filtered-lab-test-results-storage';\r\nimport { LabTestResult } from '../../lab-test-results';\r\nimport { BaseOsrChart } from './base-osr-chart';\r\nimport { formatters, UrlBuilder } from '../../core';\r\nimport { SubjectTitleRenderer } from '../../renderer/subject-title-renderer';\r\nimport { select, Selection, ScaleLinear } from 'd3';\r\nimport { ChartLegendItem } from '../../legend';\r\nimport { LabTestChartEvent } from '../../subjects/lab-tests-chart.component';\r\nimport { TooltipFormatter } from '../../shared/tooltip-formatter';\r\nimport { TooltipItem } from '../../shared/tooltip-item';\r\nimport { OsrLegendDataService } from '../../charts/osr-legend-data.service';\r\nimport { FlaggedClassNames, hideAllButSelectedSubjects, opaqueAllButSelectedSubjects, removeOpacityFromAllElements } from '../../charts/chart-helper';\r\nimport { LabTrendsChartDataValue, TrendsChartDataBuilder } from '../../charts/trends-chart-data-builder';\r\nimport { BandRenderer } from '../../charts/band-renderer';\r\nimport { tooltipClassName } from '../../core/tooltip-remover';\r\nimport { FilterStorage } from './lab-test-results-filter-storage';\r\nimport { SiteTestDataStorage, SITE_LAB_RESULTS_STORAGE } from './site-test-data-storage';\r\nimport { findSelectedSite } from '../../shared/route-helpers';\r\n\r\nexport interface VisitInfo {\r\n visitCode: string;\r\n visitTitle: string;\r\n}\r\n\r\n@Component({\r\n selector: 'lab-trends-chart',\r\n template: require('./lab-trends-chart.component.html'),\r\n styles: [require('./lab-chart.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class LabTrendsChartComponent extends BaseOsrChart {\r\n\r\n public resultsDictionary: { [labTestId: number]: LabTestResult };\r\n public bandData: CvdChartData[];\r\n public sexLegendData: ChartLegendItem[];\r\n public subjectLegendData: ChartLegendItem[];\r\n public flaggedLegendData: ChartLegendItem[];\r\n\r\n private xScale: ScaleLinear;\r\n private yScale: ScaleLinear;\r\n\r\n private selectedTestIds: number[];\r\n private svgChart: Selection[], HTMLElement, any> = null;\r\n\r\n constructor(\r\n @Inject(SITE_LAB_RESULTS_STORAGE) filteredStorage: SiteTestDataStorage,\r\n @Inject(SITE_LAB_RESULTS_FILTERS_STORAGE) private filterStorage: FilterStorage,\r\n changeDetectorRef: ChangeDetectorRef,\r\n private urlBuilder: UrlBuilder,\r\n private route: ActivatedRoute,\r\n private tooltipFormatter: TooltipFormatter,\r\n private legendDataService: OsrLegendDataService,\r\n private chartDataBuilder: TrendsChartDataBuilder,\r\n private bandRenderer: BandRenderer,\r\n private filter: CovanceFilter\r\n ) {\r\n super(filteredStorage, changeDetectorRef);\r\n }\r\n\r\n public tooltip = (key: string, x: string, y: string, value: LabTestChartEvent) => {\r\n const result = this.resultsDictionary[value.data.rows[0]];\r\n const resultData = result.currentResult;\r\n const visitTitle = result.visitName ? result.visitName : '';\r\n const unit = resultData ? resultData.unit || '' : '';\r\n const rangeString = resultData.rangeWithUnits;\r\n\r\n const subjectTitle = SubjectTitleRenderer.renderTitle({ data: result });\r\n\r\n const tooltipItems: TooltipItem[] = [];\r\n tooltipItems.push(new TooltipItem('Subject', subjectTitle));\r\n tooltipItems.push(new TooltipItem('Visit', visitTitle));\r\n const valueTooltipItem = new TooltipItem('Value', `${y} ${unit}`);\r\n valueTooltipItem.contentClass = `${tooltipClassName}-${value.data.colorClassName}`;\r\n tooltipItems.push(valueTooltipItem);\r\n tooltipItems.push(new TooltipItem('Range', rangeString));\r\n tooltipItems.push(new TooltipItem('Collection Time', formatters.formatDateTime(result.visitCollectionDate)));\r\n tooltipItems.push(new TooltipItem('Accession', result.accessionNumber));\r\n\r\n if (!isEmpty(result.flags)) {\r\n tooltipItems.push(new TooltipItem('Flags', result.flags.map(f => f.fullName).join(' ')));\r\n }\r\n\r\n this.tooltipFormatter.clear();\r\n this.tooltipFormatter.addTooltipItems(tooltipItems);\r\n return this.tooltipFormatter.getTooltipContent();\r\n }\r\n\r\n public goToSubject(event: ICvdChartEvent) {\r\n const labTestId = event.data.rows[0];\r\n const labTestResult = this.resultsDictionary[labTestId];\r\n\r\n if (!labTestResult.zcSubjectId) {\r\n return;\r\n }\r\n\r\n this.urlBuilder\r\n .esa()\r\n .site(findSelectedSite(this.route.snapshot))\r\n .subject({ zcSubjectId: labTestResult.zcSubjectId })\r\n .navigate();\r\n }\r\n\r\n public subjectsSelected(selectedItems: ChartLegendItem[]) {\r\n hideAllButSelectedSubjects(this.svgChart, selectedItems, this.data);\r\n }\r\n\r\n public subjectLegendMouseOver(selectedItem: ChartLegendItem) {\r\n opaqueAllButSelectedSubjects(this.svgChart, selectedItem, this.data);\r\n }\r\n\r\n public subjectLegendMouseOut() {\r\n removeOpacityFromAllElements(this.svgChart);\r\n }\r\n\r\n public afterChartRendered(event: AfterChartRenderedEventArgs) {\r\n\r\n if (this.svgChart === null) {\r\n this.svgChart = select[]>('#' + event.svgId);\r\n this.svgChart.on('mouseup', () => {\r\n if (isEmpty(this.selectedTestIds)) {\r\n return;\r\n }\r\n\r\n const subjectsQueryParams = this.filterStorage.subjectFilter.def.getItems(this.selectedTestIds.map(lr => this.resultsDictionary[lr]));\r\n this.filter.setValue(this.filterStorage.subjectFilter, subjectsQueryParams);\r\n });\r\n }\r\n\r\n this.xScale = event.xScale;\r\n this.yScale = event.yScale;\r\n\r\n this.bandRenderer.initHovers(event.svgId, this.xScale, this.yScale, this.resultsDictionary);\r\n\r\n this.setPointsColors(this.svgChart);\r\n\r\n const areaSvg = this.svgChart.select('.cv-x.cv-axis');\r\n const rect = areaSvg.node().getBoundingClientRect();\r\n\r\n const ticks = areaSvg.selectAll('.tick text');\r\n ticks.attr('hidden', function () {\r\n const tickRect = this.getBoundingClientRect();\r\n return (tickRect.left === rect.left || tickRect.right === rect.right) ? true : null;\r\n });\r\n }\r\n\r\n public filterSubjects(selectedItems: number[]) {\r\n this.selectedTestIds = selectedItems;\r\n }\r\n\r\n protected buildChartData(): CvdChartData[] {\r\n this.resultsDictionary = {};\r\n this.data.forEach(res => this.resultsDictionary[res.labTestId] = res);\r\n const cvdData = this.chartDataBuilder.buildChartData(this.currentTestData);\r\n return cvdData;\r\n }\r\n\r\n protected chartSpecific() {\r\n this.bandData = this.chartDataBuilder.buildBandData(this.currentTestData);\r\n this.sexLegendData = this.legendDataService.buildSexLegendData(this.currentTestData);\r\n this.subjectLegendData = this.legendDataService.buildSubjectLegendData(this.currentTestData);\r\n this.flaggedLegendData = this.legendDataService.buildFlaggedLegendData(this.currentTestData);\r\n }\r\n\r\n private setPointsColors(svgChart: Selection[], HTMLElement, any>) {\r\n svgChart.selectAll('.cv-scatter g.cv-groups g.cv-group path.cv-point')\r\n .classed(FlaggedClassNames.high, false)\r\n .classed(FlaggedClassNames.low, false)\r\n .classed(FlaggedClassNames.other, false)\r\n .classed(FlaggedClassNames.nonFlagged, false)\r\n .each(function (data) {\r\n select(this).classed(data.colorClassName, true);\r\n });\r\n }\r\n}\r\n","import { Component, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef, Inject } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { CvdChartDataValue, CvdChartData, BoxPlotTooltip, BoxPlotEvent, BoxplotData} from '@covance/ng-cvd3';\r\nimport { BaseOsrChart } from './base-osr-chart';\r\nimport { UrlBuilder } from '../../core/url-builder/url-builder';\r\nimport { find, groupBy, chain, map, orderBy } from 'lodash';\r\nimport { SubjectTitleRenderer } from '../../renderer/subject-title-renderer';\r\nimport { TooltipItem } from '../../shared/tooltip-item';\r\nimport { TooltipFormatter } from '../../shared/tooltip-formatter';\r\nimport { ChartLegendItem } from '../../legend';\r\nimport { getShapeByGender, getColorByGender, buildBoxPlotGenderLegend, clearOutliers } from '../../charts/chart-helper';\r\nimport { findSelectedSite } from '../../shared/route-helpers';\r\nimport { SITE_LAB_RESULTS_STORAGE, SiteTestDataStorage } from './site-test-data-storage';\r\n\r\nconst showOnlyPointsMaxDataLength = 3;\r\n\r\n@Component({\r\n selector: 'lab-boxplot-chart',\r\n template: require('./lab-boxplot-chart.component.html'),\r\n styles: [require('./lab-chart.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class LabBoxplotChartComponent extends BaseOsrChart {\r\n\r\n public showSplitGenders = true;\r\n public sexLegendData: ChartLegendItem[];\r\n public xAxisTickFormat: (visitCode: string) => string;\r\n\r\n constructor(\r\n @Inject(SITE_LAB_RESULTS_STORAGE) filteredStorage: SiteTestDataStorage,\r\n changeDetectorRef: ChangeDetectorRef,\r\n private urlBuilder: UrlBuilder,\r\n private route: ActivatedRoute,\r\n private tooltipFormatter: TooltipFormatter\r\n ) {\r\n super(filteredStorage, changeDetectorRef);\r\n this.xAxisTickFormat = visitCode => {\r\n const visitInfo = find(this.visitsInfo, v => v.visitCode === visitCode);\r\n return visitInfo && visitInfo.visitTitle ? visitInfo.visitTitle : '';\r\n };\r\n }\r\n\r\n public isBoxVisible = (d: CvdChartDataValue) => showOnlyPointsMaxDataLength < (d.y as BoxplotData[]).length;\r\n\r\n public calcWhiskers = (d: BoxplotData []) =>\r\n showOnlyPointsMaxDataLength < d.length ? [0, d.length - 1] : [-1, -1]\r\n\r\n public tooltip = (data: BoxPlotTooltip) => {\r\n const units = this.yAxisName.unit || '';\r\n const tooltipItems: TooltipItem[] = [];\r\n\r\n if (data.isBox) {\r\n tooltipItems.push(new TooltipItem('Gender', data.key));\r\n tooltipItems.push(new TooltipItem('Min', `${data.whiskers[0]} ${units}`));\r\n tooltipItems.push(new TooltipItem('Max', `${data.whiskers[1]} ${units}`));\r\n tooltipItems.push(new TooltipItem('Median', `${data.quartiles[1]} ${units}`));\r\n tooltipItems.push(new TooltipItem('First Quartile', `${data.quartiles[0]} ${units}`));\r\n tooltipItems.push(new TooltipItem('Third Quartile', `${data.quartiles[2]} ${units}`));\r\n\r\n this.tooltipFormatter.clear();\r\n this.tooltipFormatter.addTooltipItems(tooltipItems);\r\n return this.tooltipFormatter.getTooltipContent();\r\n }\r\n\r\n const labTestId = data.data.rows[0];\r\n const labTestResult = find(this.data, l => l.labTestId === labTestId);\r\n const subjectTitle = SubjectTitleRenderer.renderTitle({ data: labTestResult });\r\n tooltipItems.push(new TooltipItem('Value', `${labTestResult.currentResult.numericResult} ${units}`));\r\n tooltipItems.push(new TooltipItem('Subject', subjectTitle));\r\n this.tooltipFormatter.clear();\r\n this.tooltipFormatter.addTooltipItems(tooltipItems);\r\n return this.tooltipFormatter.getTooltipContent();\r\n }\r\n\r\n public onSplitToggle() {\r\n clearOutliers();\r\n this.lineChartData = this.buildChartData();\r\n buildBoxPlotGenderLegend(this.lineChartData, this.showSplitGenders);\r\n }\r\n\r\n public goToSubject(event: BoxPlotEvent) {\r\n if (event.isBox) {\r\n return;\r\n }\r\n\r\n const labTestId = event.data.rows[0];\r\n const labTestResult = find(this.data, l => l.labTestId === labTestId);\r\n\r\n if (!labTestResult.zcSubjectId) {\r\n return;\r\n }\r\n\r\n this.urlBuilder\r\n .esa()\r\n .site(findSelectedSite(this.route.snapshot))\r\n .subject({ zcSubjectId: labTestResult.zcSubjectId })\r\n .navigate();\r\n }\r\n\r\n protected buildChartData() {\r\n const validData = this.currentTestData.filter(d => !d.isCancelled);\r\n const dataSource = this.showSplitGenders ? groupBy(validData, test => test.sex) : {'All Genders': validData};\r\n\r\n const dataByGender = map(dataSource, (genderData, gender) => {\r\n const byVisits = chain(genderData)\r\n .groupBy(test => test.visitCode).value();\r\n\r\n const visitData = chain(this.visitsInfo)\r\n .filter(visitInfo => !!visitInfo.visitCode)\r\n .map(visitInfo => {\r\n const yValues = byVisits[visitInfo.visitCode] || [];\r\n\r\n return {\r\n x: visitInfo.visitCode,\r\n y: yValues.map(test => ({\r\n y: test.currentResult.numericResult,\r\n rowId: test.labTestId,\r\n shape: getShapeByGender(test.sex)\r\n })),\r\n rows: [],\r\n series: 0\r\n } as CvdChartDataValue;\r\n })\r\n .sortBy(value => value.x)\r\n .value();\r\n\r\n const data: CvdChartData = {\r\n key: gender,\r\n rows: [],\r\n color: getColorByGender(gender),\r\n values: visitData\r\n };\r\n return data;\r\n });\r\n return orderBy(dataByGender, (d: CvdChartData) => d.key);\r\n }\r\n\r\n protected chartSpecific() {\r\n // we need this because cvd3 has a bug in rendering outliers. it doesn't remove all old outliers'\r\n //TODO: remove this method when cvd3 bug is fixed;\r\n clearOutliers();\r\n buildBoxPlotGenderLegend(this.lineChartData, this.showSplitGenders);\r\n }\r\n}\r\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { AgRendererComponent } from 'ag-grid-angular/main';\r\nimport { ICellRendererParams } from 'ag-grid-community/main';\r\n\r\n@Component({\r\n selector: 'test-subject-cell',\r\n template: require('./test-subject-ag-renderer.component.html'),\r\n styles: [require('./test-subject-ag-renderer.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n\r\nexport class TestSubjectAgRendererComponent implements AgRendererComponent {\r\n\r\n public title: string;\r\n public hasDataRevision: boolean;\r\n\r\n public agInit(row: ICellRendererParams): void {\r\n\r\n if (!row.data || !row.value) {\r\n return;\r\n }\r\n\r\n this.title = row.value;\r\n this.hasDataRevision = row.data.hasSubjectDataRevision;\r\n }\r\n\r\n public refresh() {\r\n return false;\r\n }\r\n}","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { AgRendererComponent } from 'ag-grid-angular/main';\r\nimport { EQueryAdminSummary } from '../../admin/e-query/models/e-query-admin-summary';\r\n\r\n@Component({\r\n selector: 'hidden-e-query-ag-renderer',\r\n template: require('./hidden-e-query-ag-renderer.component.html'),\r\n styles: [require('./hidden-e-query-ag-renderer.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class HiddenEQUeryAgRendererComponent implements AgRendererComponent {\r\n public isHidden = false;\r\n\r\n constructor() {\r\n }\r\n\r\n public refresh(): boolean {\r\n return false;\r\n }\r\n\r\n public agInit({ data }: { data: EQueryAdminSummary }) {\r\n this.isHidden = data.isHidden;\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { MdlDialogService, IMdlCustomDialogConfiguration } from '@angular-mdl/core';\r\nimport { KitInventoryDetailComponent, KIT_DETAIL_TOKEN } from '../../investigator/kitinventory/kit-inventory-detail.component';\r\nimport { KitInfoGridRowItem } from '../../investigator/kitinventory/kit-grid-row';\r\n\r\n@Component({\r\n selector: 'detail-modal-popup-renderer',\r\n template: require('./detail-modal-popup-renderer.component.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DetailModalPopupAgRendererComponent {\r\n public row: KitInfoGridRowItem;\r\n\r\n constructor(private readonly dialogService: MdlDialogService) {\r\n }\r\n\r\n public agInit(row: KitInfoGridRowItem) {\r\n this.row = row;\r\n }\r\n\r\n private showDetail($event: any) {\r\n const configDialog: IMdlCustomDialogConfiguration = {\r\n component: KitInventoryDetailComponent,\r\n providers: [{\r\n provide: KIT_DETAIL_TOKEN, useValue: this.row.data\r\n }],\r\n isModal: true,\r\n clickOutsideToClose: true,\r\n classes: 'detail-scrollable'\r\n };\r\n\r\n this.dialogService.showCustomDialog(configDialog);\r\n }\r\n}","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { AgFrameworkComponent } from 'ag-grid-angular';\r\nimport { ICellRendererParams } from 'ag-grid-community';\r\nimport { EQueryStatus } from '../../../e-queries/models/e-query-status';\r\nimport { AgeInfo } from '../../../e-queries/age-info';\r\n\r\n@Component({\r\n selector: 'age-cell',\r\n template: require('./age-renderer.component.html'),\r\n styles: [require('./age-renderer.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AgeRendererComponent implements AgFrameworkComponent {\r\n public value: string;\r\n public isExpired = false;\r\n public agInit(params: { data: AgeInfo }): void {\r\n const ageInfo = params.data;\r\n if (ageInfo) {\r\n const distance = ageInfo.eQueryAge;\r\n this.value = distance.formattedValue;\r\n this.isExpired = distance.days > 0 && ageInfo.eQueryStatus !== EQueryStatus.Closed;\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { AgFrameworkComponent } from 'ag-grid-angular';\r\nimport { ICellRendererParams } from 'ag-grid-community';\r\nimport { EQueryStatus } from '../../../e-queries/models/e-query-status';\r\nimport { ResponseAgeInfo } from '../../../e-queries/response-age-info';\r\n\r\n@Component({\r\n selector: 'response-age-cell',\r\n template: require('./response-age-renderer.component.html'),\r\n styles: [require('./response-age-renderer.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ResponseAgeRendererComponent implements AgFrameworkComponent {\r\n public value: string;\r\n public isExpired = false;\r\n public agInit(params: { data: ResponseAgeInfo }): void {\r\n const ageInfo = params.data;\r\n if (ageInfo) {\r\n const distance = ageInfo.responseAge;\r\n this.value = distance ? distance.formattedValue : null;\r\n this.isExpired = distance && distance.days >= 1 ? true : false;\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';\r\nimport { IHeaderAngularComp } from 'ag-grid-angular/main';\r\n\r\nimport { CategoryNaturalKey } from '../../documents';\r\nimport { EmailNotificationFrequencyOption } from './email-notification-frequency-option';\r\nimport { MdlDialogService } from '@angular-mdl/core';\r\nimport { GridApi } from 'ag-grid-community/dist/lib/gridApi';\r\nimport { EmailPreferenceLevelType } from './levels/email-preference-level-type';\r\nimport { IHeaderParams } from 'ag-grid-community';\r\nimport { EmailPreferenceReadModel } from './email';\r\nimport { EMAIL_PREFERENCE_STORAGE_TOKEN, EmailPreferencesStorage } from './email-preferences-storage';\r\n\r\nexport interface EmailNotificationHeaderParams extends IHeaderParams {\r\n userId: number;\r\n categoryName: string;\r\n categoryId: CategoryNaturalKey;\r\n options: EmailNotificationFrequencyOption[];\r\n currentLevel: EmailPreferenceLevelType;\r\n}\r\n\r\ninterface Option {\r\n value: EmailNotificationFrequencyOption;\r\n text: string;\r\n}\r\n\r\n@Component({\r\n selector: 'email-notification-header',\r\n template: require('./email-notification-header-ag.component.html'),\r\n styles: [require('./email-notification-header-ag.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class EmailNotificationHeaderAgComponent implements IHeaderAngularComp {\r\n public options: Option[];\r\n\r\n private categoryName: string;\r\n private categoryId: CategoryNaturalKey;\r\n private gridApi: GridApi;\r\n private userId: number;\r\n private currentLevel: EmailPreferenceLevelType;\r\n\r\n constructor(\r\n @Inject(EMAIL_PREFERENCE_STORAGE_TOKEN)private readonly emailPreferencesStorage: EmailPreferencesStorage,\r\n private readonly dialogService: MdlDialogService,\r\n ) { }\r\n\r\n public agInit(params: EmailNotificationHeaderParams): void {\r\n this.gridApi = params.api;\r\n this.categoryName = params.categoryName;\r\n this.categoryId = params.categoryId;\r\n this.userId = params.userId;\r\n this.currentLevel = params.currentLevel;\r\n\r\n this.options = params.options.map(option => {\r\n return {\r\n value: option,\r\n text: EmailNotificationFrequencyOption[option]\r\n };\r\n });\r\n }\r\n\r\n public async update(option: Option) {\r\n const selectedItems = this.gridApi.getSelectedNodes().map(row => row.data) as EmailPreferenceReadModel[];\r\n\r\n if (selectedItems && selectedItems.length > 0 && await this.needToOverride()) {\r\n const emailPreferencesToSave = selectedItems.map(item => {\r\n const preferenceToSave = item.emailPreferences.find(pref => pref.categoryId === this.categoryId);\r\n if (!preferenceToSave) {\r\n throw Error('unable to get preference for provided category');\r\n }\r\n \r\n return preferenceToSave;\r\n });\r\n emailPreferencesToSave.forEach(pref => pref.prefValue = option.value);\r\n this.gridApi.refreshCells();\r\n\r\n await this.emailPreferencesStorage.saveEmailPreferences(emailPreferencesToSave, this.userId);\r\n }\r\n }\r\n\r\n private async needToOverride() {\r\n if (this.currentLevel === EmailPreferenceLevelType.User) {\r\n return true;\r\n }\r\n\r\n try {\r\n const overrideMessage = `Notification option on ${EmailPreferenceLevelType[this.currentLevel]} level overrides the higher level option. Override?`;\r\n await this.dialogService.confirm(overrideMessage, 'No', 'Yes').toPromise();\r\n return true;\r\n } catch {\r\n return false;\r\n }\r\n }\r\n}\r\n","import { MdlDialogService, IMdlCustomDialogConfiguration } from '@angular-mdl/core';\r\nimport { Component, Inject } from '@angular/core';\r\n\r\nimport { ActionsMenuAgRendererComponent, ActionsMenuItem } from '../../covance-ag-grid/renderers/actions-menu-ag-renderer-base';\r\nimport { EmailAddressFormDialog, EMAIL, USER_PK } from './email-address-form-dialog.component';\r\nimport { Email, EmailPreferenceReadModel } from './email';\r\nimport { ActionsMenuColumn } from '../../shared/grid-columns';\r\nimport { EMAIL_PREFERENCE_STORAGE_TOKEN, EmailPreferencesStorage } from './email-preferences-storage';\r\n\r\n@Component({\r\n selector: 'email-menu-ag-renderer',\r\n template: require('../../covance-ag-grid/renderers/actions-menu-ag-renderer-base.html'),\r\n styles: [require('../../covance-ag-grid/renderers/actions-menu-ag-renderer-base.scss')],\r\n})\r\nexport class EmailActionsMenuAgRendererComponent extends ActionsMenuAgRendererComponent {\r\n constructor(\r\n @Inject(EMAIL_PREFERENCE_STORAGE_TOKEN)private readonly emailPreferencesStorage: EmailPreferencesStorage,\r\n private readonly dialogService: MdlDialogService\r\n ) {\r\n super();\r\n }\r\n\r\n public createMenuItems(gridData: EmailPreferenceReadModel, colDef: ActionsMenuColumn): ActionsMenuItem[] {\r\n const nonDefaultMenuItems = [\r\n {\r\n title: 'Edit e-mail',\r\n onClick: () => this.editEmail(gridData.email, colDef.userId)\r\n },\r\n ];\r\n\r\n const allMenuItems = [\r\n {\r\n title: 'Reset preferences to default',\r\n onClick: () => this.emailPreferencesStorage.resetToDefault(gridData.emailPreferences, colDef.userId)\r\n }\r\n ];\r\n\r\n if (!gridData.email.isDefault) {\r\n allMenuItems.unshift(...nonDefaultMenuItems);\r\n }\r\n\r\n return allMenuItems;\r\n }\r\n\r\n private async editEmail(email: Email, userId: number) {\r\n const configDialog: IMdlCustomDialogConfiguration = {\r\n component: EmailAddressFormDialog,\r\n providers: [\r\n { provide: EMAIL, useValue: email },\r\n { provide: USER_PK, useValue: userId },\r\n { provide: EMAIL_PREFERENCE_STORAGE_TOKEN, useValue: this.emailPreferencesStorage}\r\n ],\r\n isModal: true,\r\n clickOutsideToClose: true\r\n };\r\n\r\n await this.dialogService.showCustomDialog(configDialog);\r\n }\r\n}\r\n","import { dataMember, required, typedArray } from 'santee-dcts';\r\nimport { Site } from './site';\r\n\r\nexport class SitesReadModel {\r\n @dataMember()\r\n @required()\r\n @typedArray(Site)\r\n public sites: Site[];\r\n}","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { TooltipRow } from '../shared';\r\nimport { AgRendererComponent } from 'ag-grid-angular/main';\r\nimport { LabTestResultGridRowItem } from '../on-screen-results/grid-row-item';\r\nimport { isEmpty, sortBy, uniq, groupBy, keys } from 'lodash';\r\nimport { DataRevisionIndicator } from '../shared';\r\nimport { ResultData, VisitResult } from './subject-pivot-interfaces';\r\n\r\ninterface SubjectPivotVisitCellData {\r\n result: string;\r\n resultData: ResultData;\r\n resultExists: boolean;\r\n commentExists: boolean;\r\n tooltipContent: TooltipRow[];\r\n}\r\n\r\n@Component({\r\n selector: 'lab-tests-grid-visit',\r\n template: require('./lab-tests-grid-visit.component.html'),\r\n styles: [require('./lab-tests-grid-visit.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n\r\nexport class LabTestGridVisitComponent implements AgRendererComponent {\r\n public resultClass: string;\r\n\r\n public cellData: SubjectPivotVisitCellData[];\r\n\r\n constructor(private dataRevisionIndicator: DataRevisionIndicator) {}\r\n\r\n public agInit(params: LabTestResultGridRowItem): void {\r\n\r\n this.getVisitResultValue(params);\r\n }\r\n\r\n public refresh() {\r\n return false;\r\n }\r\n\r\n private getVisitResultValue(params: LabTestResultGridRowItem): void {\r\n if (!params || !params.data) {\r\n return;\r\n }\r\n\r\n const testId = params.data.uniqLabTestIdKey;\r\n const cellParams = (params.colDef as VisitResult).cellRendererParams;\r\n const visitId = cellParams.visitId;\r\n const theCellValues = cellParams.cellValues;\r\n const testResultIds = cellParams.testResultIds;\r\n\r\n if (!theCellValues || !theCellValues[testId] || !theCellValues[testId][visitId]) {\r\n return;\r\n }\r\n\r\n this.cellData = [];\r\n\r\n const cellValues = theCellValues[testId][visitId];\r\n\r\n if (!testResultIds[testId] || !testResultIds[testId][visitId]) {\r\n return;\r\n }\r\n\r\n testResultIds[testId][visitId].forEach(item => {\r\n\r\n const data = cellValues[item];\r\n\r\n if (data) {\r\n const commentExists = !isEmpty(data.comments);\r\n const cellFlags: string[] = [];\r\n const tooltipContent: TooltipRow[] = [];\r\n\r\n if (data.isCancelled) {\r\n tooltipContent.push({\r\n title: 'Cancellation Reason',\r\n value: data.cancellationReason\r\n });\r\n } else {\r\n tooltipContent.push({\r\n title: 'Value',\r\n value: data.result\r\n });\r\n\r\n if (data.isFlagged) {\r\n const flagGroups = groupBy(data.flags, f => f.category);\r\n\r\n keys(flagGroups).sort().forEach((category: string) => {\r\n const flagNames = flagGroups[category].map(f => f.name);\r\n const flags = uniq(flagNames).sort().join(' ');\r\n tooltipContent.push({\r\n title: category,\r\n value: flags\r\n });\r\n cellFlags.push(flags);\r\n });\r\n }\r\n }\r\n\r\n this.addCommentsToTooltip(data, commentExists, tooltipContent);\r\n\r\n if (data.hasDataRevision) {\r\n tooltipContent.push({\r\n title: 'Revision',\r\n value: this.dataRevisionIndicator.resultDataRevisionMessage\r\n });\r\n }\r\n\r\n const cellValue = {\r\n result: `${data.result} ${cellFlags.join(', ')}`,\r\n resultData: data,\r\n resultExists: !data.isCancelled && !isEmpty(data.result),\r\n tooltipContent: tooltipContent,\r\n commentExists: commentExists\r\n } as SubjectPivotVisitCellData;\r\n\r\n this.cellData.push(cellValue);\r\n }\r\n });\r\n\r\n this.cellData = sortBy(this.cellData, d => d.resultData.sequence);\r\n }\r\n\r\n private addCommentsToTooltip(data: ResultData, commentExists: boolean, tooltipContent: TooltipRow[]) {\r\n if (commentExists) {\r\n tooltipContent.push({\r\n title: 'Comment',\r\n value: data.comments\r\n });\r\n }\r\n }\r\n}\r\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { ICellRendererParams } from 'ag-grid-community/main';\r\nimport { IHeaderAngularComp } from 'ag-grid-angular/main';\r\nimport { IHeaderParams } from 'ag-grid-community/main';\r\nimport { DataRevisionIndicator } from '../shared';\r\n\r\ninterface VisitHeaderParams extends IHeaderParams, ICellRendererParams {\r\n displayName: string;\r\n routerLink: any[] | string;\r\n queryParams?: { [k: string]: any };\r\n text: string | number;\r\n hasDataRevision: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'lab-tests-grid-visit-header',\r\n template: require('./lab-tests-grid-visit-header.component.html'),\r\n styles: [require('./lab-tests-grid-visit-header.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LabTestGridVisitHeaderComponent implements IHeaderAngularComp {\r\n\r\n public params: VisitHeaderParams;\r\n\r\n public revisionMessage: string;\r\n\r\n constructor(\r\n private dataRevisionIndicator: DataRevisionIndicator) {\r\n\r\n this.revisionMessage = this.dataRevisionIndicator.visitDataRevisionMessage;\r\n }\r\n\r\n public agInit(params: VisitHeaderParams): void {\r\n this.params = params;\r\n }\r\n\r\n public get hasData() {\r\n return !!this.params;\r\n }\r\n}","export const covanceExcelStyles = [\r\n {\r\n id: 'alwaysString',\r\n dataType: 'string'\r\n }\r\n];","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { AgRendererComponent } from 'ag-grid-angular/main';\r\nimport { isEmpty } from 'lodash';\r\nimport { DataRevisionIndicator } from '../../shared';\r\nimport { LinkParams } from '../../covance-ag-grid';\r\n\r\nexport interface SubjectColumnParams extends LinkParams {\r\n routerLink: any[];\r\n screeningNumber: string;\r\n subjectNumberAndInitials: string;\r\n age: number;\r\n ageProjectDisplayValue: string;\r\n gender: string;\r\n hasSubjectDataRevision?: boolean;\r\n exportSortId?: number;\r\n}\r\n\r\n@Component({\r\n selector: 'osr-subject-cell',\r\n template: require('./osr-subject-columns-renderer.component.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class OsrSubjectColumnRendererComponent implements AgRendererComponent {\r\n public params: SubjectColumnParams;\r\n public subjectInfo: string | number;\r\n public hasSubjectDataRevision: boolean;\r\n public revisionMessage: string;\r\n\r\n constructor(dataRevisionIndicator: DataRevisionIndicator) {\r\n this.revisionMessage = dataRevisionIndicator.subjectDataRevisionMessage;\r\n }\r\n\r\n public get hasData() {\r\n return !!this.params;\r\n }\r\n\r\n public refresh() {\r\n return false;\r\n }\r\n\r\n public get routerLinkExists() {\r\n return !isEmpty(this.params.routerLink);\r\n }\r\n\r\n public agInit(row: { value: SubjectColumnParams }): void {\r\n this.params = row.value;\r\n\r\n if (this.hasData) {\r\n this.subjectInfo = this.params.text;\r\n this.hasSubjectDataRevision = this.params.hasSubjectDataRevision;\r\n }\r\n }\r\n}","module.exports = \"\\r\\n
0\\\">\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./lab-chart.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./documents.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","module.exports = \"\\r\\n
No data available
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./redirection.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","import { dataMember, required } from 'santee-dcts';\r\nimport { AudienceRoleName } from './../authentication/audience-role';\r\n\r\nexport class UserMetadata {\r\n @dataMember()\r\n @required()\r\n public userId: number;\r\n\r\n @dataMember()\r\n @required()\r\n public sitelinkUserId: string;\r\n\r\n @dataMember()\r\n @required()\r\n public fullName: string;\r\n\r\n @dataMember({ customDeserializer: (value: string): AudienceRoleName => value as AudienceRoleName })\r\n @required({ nullable: true })\r\n public audienceRole: AudienceRoleName;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public originalUserFullName: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public email: string;\r\n}","import { Injectable } from '@angular/core';\r\nimport { isEmpty, isString, isNil } from 'lodash';\r\nimport { comparators } from './comparators';\r\n\r\n@Injectable()\r\nexport class NoneValueHelper {\r\n\r\n public static readonly none = 'None';\r\n\r\n public isNone(value: any) {\r\n return isNil(value) || (isString(value) && isEmpty(value));\r\n }\r\n\r\n public toDisplay(value: any): string {\r\n return this.isNone(value) ? NoneValueHelper.none : value;\r\n }\r\n\r\n public compare(valueA: any, valueB: any) {\r\n let valueAIsNone = this.isNone(valueA);\r\n let valueBIsNone = this.isNone(valueB);\r\n\r\n if (valueAIsNone && valueBIsNone) {\r\n return 0;\r\n }\r\n if (valueAIsNone) {\r\n return -1;\r\n }\r\n if (valueBIsNone) {\r\n return 1;\r\n }\r\n\r\n return comparators.stringComparator(valueA, valueB);\r\n }\r\n}","import { NgModule, Optional, SkipSelf, ErrorHandler, OnDestroy } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport 'moment/min/locales';\r\nimport { Settings } from './settings';\r\nimport { UrlBuilder } from './url-builder/url-builder';\r\nimport { LanguagesStore } from './languages-store';\r\nimport { LicenseManager } from 'ag-grid-enterprise/main';\r\nimport { ActivityLogger } from '../activities/activity-logger';\r\nimport { Router, NavigationEnd, ActivatedRoute } from '@angular/router';\r\nimport { GlobalErrorHandler } from './global-error-handler';\r\nimport { NoneValueHelper } from './none-value-helper';\r\nimport { filter, map, mergeMap } from 'rxjs/operators';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { Subscription } from 'rxjs';\r\nimport { NavigationActivityResolver } from '../activities/navigation-activity/navigation-activity-resolver';\r\nimport { NavigationActivity } from '../activities/navigation-activity/navigation-activity';\r\n\r\n@NgModule({\r\n providers: [\r\n UrlBuilder,\r\n LanguagesStore,\r\n ActivityLogger,\r\n NavigationActivity,\r\n NavigationActivityResolver,\r\n NoneValueHelper,\r\n { provide: ErrorHandler, useClass: GlobalErrorHandler }\r\n ]\r\n})\r\nexport class CoreModule implements OnDestroy {\r\n\r\n private readonly subscription = new Subscription();\r\n\r\n private readonly navigationEnd$ = this.router.events\r\n .pipe(\r\n filter(event => event instanceof NavigationEnd)\r\n );\r\n\r\n constructor(\r\n @Optional() @SkipSelf() coreModule: CoreModule,\r\n private activityLogger: ActivityLogger,\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n private title: Title,\r\n private settings: Settings) {\r\n if (coreModule) {\r\n throw new Error('CoreModule is already loaded');\r\n }\r\n\r\n this.initializeLocale();\r\n this.setupAgGrid();\r\n this.setupNavigationActivityLogger();\r\n this.setupTitleChanger();\r\n this.setupUserStartEmulationActivityLogger();\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n private initializeLocale() {\r\n const browserNavigator = window.navigator as BrowserNavigator;\r\n const lang = browserNavigator.languages ? browserNavigator.languages[0] : (browserNavigator.language || browserNavigator.userLanguage); // http://stackoverflow.com/a/25603630\r\n moment.locale(lang);\r\n }\r\n\r\n private setupAgGrid() {\r\n LicenseManager.setLicenseKey('CompanyName=EVOTEK, Inc_on_behalf_of_Covance Inc,LicensedGroup=Xcellerate,LicenseType=MultipleApplications,LicensedConcurrentDeveloperCount=25,LicensedProductionInstancesCount=6,AssetReference=AG-014122,ExpiryDate=29_April_2022_[v2]_MTY1MTE4NjgwMDAwMA==10b7827b3979c91da5ece12f2d7ebf07');\r\n }\r\n\r\n private setupNavigationActivityLogger() {\r\n this.navigationEnd$.subscribe(() => {\r\n this.activityLogger.logNavigationActivity();\r\n });\r\n }\r\n\r\n private setupTitleChanger(): void {\r\n this.subscription.add(this.navigationEnd$\r\n .pipe(\r\n map(() => this.activatedRoute),\r\n map(route => {\r\n while (route.firstChild && !route.snapshot.data['title']) {\r\n route = route.firstChild;\r\n }\r\n\r\n return route;\r\n }),\r\n filter(route => route.outlet === 'primary'),\r\n mergeMap(route => route.data),\r\n map(d => d['title'] || this.title.getTitle())\r\n )\r\n .subscribe(stateTitle => {\r\n this.title.setTitle(stateTitle);\r\n }));\r\n }\r\n\r\n private setupUserStartEmulationActivityLogger() {\r\n if (this.settings.emulatedUserId) {\r\n this.activityLogger.logUserEmulationActivity('StartEmulation', this.settings.emulatedUserId);\r\n }\r\n }\r\n}\r\n\r\ninterface BrowserNavigator extends Navigator {\r\n languages: string[];\r\n userLanguage: string;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { clone, includes, isFunction, sortBy } from 'lodash';\r\nimport { CovanceGridColumn } from './covance-grid-column';\r\nimport { comparators } from '../core/comparators';\r\n\r\nexport class GroupingResult {\r\n public columns: CovanceGridColumn[];\r\n public data: T;\r\n\r\n constructor(columns: CovanceGridColumn[], data: T) {\r\n this.columns = clone(columns);\r\n this.data = data;\r\n }\r\n}\r\n\r\n@Injectable()\r\nexport class CovanceAgGridHelper {\r\n\r\n public groupData(groupBy: string, data: T[], columns: CovanceGridColumn[], hiddenColumns: string[] = null, sortInGroup: (a: T, b: T) => number = null) {\r\n const result = new GroupingResult(columns, data);\r\n\r\n result.columns.forEach(col => {\r\n if (col.headerName === groupBy) {\r\n col.rowGroupIndex = 0;\r\n col.hide = true;\r\n\r\n if (result.data) {\r\n result.data = result.data = this.sortData(col, result.data as T[], sortInGroup);\r\n }\r\n } else {\r\n col.rowGroupIndex = null;\r\n if (!includes(hiddenColumns, col.headerName)) {\r\n col.hide = false;\r\n }\r\n }\r\n });\r\n\r\n return result;\r\n }\r\n\r\n public sortData(sortColumn: CovanceGridColumn, data: T[], postSort: (a: T, b: T) => number = null) {\r\n if (!data) {\r\n return data;\r\n }\r\n\r\n const valueGetter = isFunction(sortColumn.valueGetter) ?\r\n (value: any) => (sortColumn.valueGetter as (params: any) => any) ({ data: value }) :\r\n (value: any) => value[sortColumn.field];\r\n\r\n const comparator = sortColumn.comparator ?\r\n (valueA: any, valueB: any) => sortColumn.comparator(valueA, valueB) :\r\n (valueA: any, valueB: any) => comparators.stringComparator(valueA, valueB);\r\n\r\n const sortArgs: [(a: T, b: T) => number] = [\r\n (a: T, b: T) => {\r\n const valueA = a ? valueGetter(a) : null;\r\n const valueB = b ? valueGetter(b) : null;\r\n return comparator(valueA, valueB);\r\n }\r\n ];\r\n\r\n if (postSort) {\r\n sortArgs.push(postSort);\r\n }\r\n\r\n const result = sortBy(data, sortArgs);\r\n\r\n return result;\r\n }\r\n}","import {NgModule} from '@angular/core';\r\nimport {Mdl} from './mdl.directive';\r\nimport {MdlOnRouteChange} from './mdl-on-route-change.directive';\r\n\r\n@NgModule({\r\n declarations: [Mdl, MdlOnRouteChange],\r\n exports: [Mdl, MdlOnRouteChange]\r\n})\r\nexport class CovanceMaterialModule {}","import { NgModule } from '@angular/core';\r\nimport { GlobalPopupComponent } from './global-popup.component';\r\nimport { SharedModule } from '../shared/shared.module';\r\n\r\n@NgModule({\r\n imports: [SharedModule],\r\n declarations: [GlobalPopupComponent],\r\n exports: [GlobalPopupComponent]\r\n})\r\nexport class GlobalPopupModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRoute, Params } from '@angular/router';\r\nimport { chain, filter, find, isEmpty, keys } from 'lodash';\r\nimport { combineLatest, Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { FilterFieldValue } from './covance-filter.models';\r\nimport { CovanceFilterChainNodeType } from './filter-type/covance-filter-chain-node-type';\r\n\r\nexport type FilteredEntityField = {\r\n title: string;\r\n fieldName: keyof T;\r\n};\r\n\r\nexport interface ResultFilteredData {\r\n entities: T[];\r\n deserializedFieldValues: FilterFieldValue[];\r\n}\r\n\r\n@Injectable()\r\nexport class CovanceChainFilter {\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private filterChainNodeType: CovanceFilterChainNodeType\r\n ) { }\r\n\r\n public getFilteredData(\r\n list: Observable,\r\n listFilteredEntityFields: Observable[]>,\r\n initFilterFieldValues: Observable = of([])\r\n ): Observable> {\r\n return combineLatest(list, listFilteredEntityFields, this.route.queryParams, initFilterFieldValues)\r\n .pipe(\r\n map(([entities, entityFields, allParams, initFilterFieldVals]: [T[], FilteredEntityField[], Params,\r\n FilterFieldValue[]]) => {\r\n const deserializedFieldValues: FilterFieldValue[] = [];\r\n\r\n if (entities === null) {\r\n return { entities, deserializedFieldValues };\r\n }\r\n\r\n const queryParams = this.getInitQueryParams(allParams, initFilterFieldVals);\r\n\r\n let lastFilteredEntities = entities;\r\n\r\n chain(queryParams)\r\n .keys()\r\n .filter(x => this.filterChainNodeType.tryParseChainIndex(x))\r\n .sort()\r\n .forEach(paramKey => {\r\n const paramValue = this.filterChainNodeType.decodeQueryParam(queryParams[paramKey]);\r\n const parsedQueryValue = this.filterChainNodeType.parseQueryValue(paramValue);\r\n\r\n if (!parsedQueryValue) {\r\n return;\r\n }\r\n\r\n const [title, filteredFieldName, values] = parsedQueryValue;\r\n\r\n const entityField = find(entityFields, x => x.fieldName === filteredFieldName);\r\n\r\n if (!entityField) {\r\n return;\r\n }\r\n\r\n const fieldVal = this.getFilterFieldValue(initFilterFieldVals, paramKey, title, entityField.fieldName);\r\n fieldVal.def.getItems = (filteredEntities: T[]) => {\r\n const items = chain(filteredEntities)\r\n .map(entity => entity[entityField.fieldName])\r\n .uniq()\r\n .value();\r\n\r\n return items;\r\n };\r\n\r\n fieldVal.queryParamValue = paramValue;\r\n this.filterChainNodeType.setValue(fieldVal);\r\n\r\n const currentFiltered = filter(\r\n lastFilteredEntities,\r\n (entity: T) => {\r\n const item = entity as any;\r\n return this.filterChainNodeType.isMatch(fieldVal, item[filteredFieldName]);\r\n });\r\n this.filterChainNodeType.setItems(fieldVal, lastFilteredEntities);\r\n\r\n lastFilteredEntities = currentFiltered;\r\n\r\n deserializedFieldValues.push(fieldVal);\r\n })\r\n .value();\r\n\r\n return { entities: lastFilteredEntities, deserializedFieldValues };\r\n })\r\n );\r\n }\r\n\r\n private getInitQueryParams(allParams: Params, initFilterFieldVals: FilterFieldValue[]): Params {\r\n const queryParams: Params = {};\r\n\r\n keys(allParams).forEach(key => {\r\n queryParams[key] = allParams[key];\r\n });\r\n\r\n for (let initFilterFieldVal of initFilterFieldVals) {\r\n if (queryParams[initFilterFieldVal.def.queryParam]) {\r\n continue;\r\n }\r\n\r\n this.filterChainNodeType.setQueryParamValue(initFilterFieldVal);\r\n\r\n queryParams[initFilterFieldVal.def.queryParam] = initFilterFieldVal.queryParamValue;\r\n }\r\n\r\n return queryParams;\r\n }\r\n\r\n private getFilterFieldValue(initFilterFieldVals: FilterFieldValue[], paramKey: string, title: string, filteredFieldName: keyof T): FilterFieldValue {\r\n if (isEmpty(initFilterFieldVals)) {\r\n return this.filterChainNodeType.createFilterFieldValue(paramKey, title, filteredFieldName as string);\r\n }\r\n\r\n const filterFieldVal = find(initFilterFieldVals, f => f.def.queryParam === paramKey);\r\n\r\n if (!filterFieldVal) {\r\n return this.filterChainNodeType.createFilterFieldValue(paramKey, title, filteredFieldName as string);\r\n }\r\n\r\n return filterFieldVal;\r\n }\r\n}","import { NgModule, Optional, SkipSelf } from '@angular/core';\r\nimport { SharedModule } from '../shared';\r\nimport { InvestigatorSitesStorage } from './investigator-sites-storage';\r\nimport { SelectedSiteResolver } from './selected-site-resolver';\r\n\r\n@NgModule({\r\n imports: [\r\n SharedModule\r\n ],\r\n providers: [\r\n InvestigatorSitesStorage,\r\n SelectedSiteResolver\r\n ]\r\n})\r\nexport class SitesModule {\r\n constructor( @Optional() @SkipSelf() sitesModule: SitesModule) {\r\n if (sitesModule) {\r\n throw new Error('SitesModule is already loaded');\r\n }\r\n }\r\n}","import {NgModule} from '@angular/core';\r\nimport {LabResultsStorage} from './lab-results-storage';\r\nimport { LabResultsSortInfo } from './lab-test-sort-info';\r\n\r\n@NgModule({\r\n providers: [LabResultsStorage, LabResultsSortInfo]\r\n})\r\nexport class LabTestResultModule { }","import { ActivatedRoute } from '@angular/router';\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, combineLatest, of } from 'rxjs';\r\nimport { map, flatMap, switchAll } from 'rxjs/operators';\r\nimport { deserialize } from 'santee-dcts';\r\nimport { LabTestResultsReadModel, LabTestResult } from './lab-test-result';\r\nimport { Settings } from '../core/settings';\r\nimport { Site } from '../sites/site';\r\nimport { uniqBy } from 'lodash';\r\nimport { getOptionalParametersForSTRQuery } from '../on-screen-results/standard-test-results/standart-test-result-query-parameters';\r\n\r\n@Injectable()\r\nexport class LabResultsStorage {\r\n constructor(\r\n private readonly settings: Settings,\r\n private readonly http: HttpClient,\r\n private readonly route: ActivatedRoute\r\n ) { }\r\n\r\n public getSubjectLabResults(selectedSite: Observable, selectedCtSubjectId: Observable): Observable {\r\n return combineLatest(\r\n [selectedSite,\r\n selectedCtSubjectId]\r\n ).pipe(\r\n map(([site, ctSubjectId]: [Site, number]) => this.http.get(`${this.settings.apiUrl}/sites/${site.siteId}/subjects/${ctSubjectId}/lab-test-results`)\r\n .pipe(map((response) => deserialize(response, LabTestResultsReadModel).results))),\r\n flatMap((x) => of(of(null), x)),\r\n switchAll()\r\n );\r\n }\r\n\r\n public getSiteLabResultsRestricted(selectedSite: Observable, loadAll$: Observable): Observable {\r\n return combineLatest([selectedSite, loadAll$])\r\n .pipe(\r\n map(([site, loadAll]: [Site, boolean]) => {\r\n const optionalParams = getOptionalParametersForSTRQuery(loadAll, site, this.route.snapshot.queryParams);\r\n\r\n return this.http\r\n .get(`${this.settings.apiUrl}/sites/${site.siteId}/lab-test-results${optionalParams}`)\r\n .pipe(\r\n map((response) => {\r\n const results = deserialize(response, LabTestResultsReadModel).results;\r\n const subjects = uniqBy(results, r => r.ctSubjectId).map(r => r.ctSubjectId);\r\n results.forEach((r, i) => r.subjectSerialNumber = subjects.indexOf(r.ctSubjectId));\r\n return results;\r\n }));\r\n }\r\n ),\r\n flatMap((x) => of(of(null), x)),\r\n switchAll());\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { LabTestResult } from '../lab-test-results';\r\n\r\n@Injectable()\r\nexport class LabResultsSortInfo {\r\n public readonly subjectLevel: SubjectLevelSortInfo;\r\n\r\n constructor() {\r\n const testGroupLevel: keyof LabTestResult = 'testGroup';\r\n const testLevel: keyof LabTestResult = 'testSequence';\r\n\r\n this.subjectLevel = {\r\n allLevels: [testGroupLevel, testLevel],\r\n testGroupLevel: labTestResult => labTestResult[testGroupLevel],\r\n testLevel: labTestResult => labTestResult[testLevel]\r\n };\r\n }\r\n}\r\n\r\ninterface SubjectLevelSortInfo {\r\n allLevels: (keyof LabTestResult)[];\r\n testGroupLevel: (labTestResult: LabTestResult) => string;\r\n testLevel: (labTestResult: LabTestResult) => number;\r\n}\r\n\r\nexport type LabTestSortArgs = (keyof LabTestResult | ((lab: LabTestResult ) => number | null))[];","import { dataMember, required, anyArray } from 'santee-dcts';\r\n\r\nexport class ReportsReadModel {\r\n @dataMember()\r\n @required()\r\n @anyArray()\r\n public reports: any[];\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, PRIMARY_OUTLET, Router } from '@angular/router';\r\nimport { ActivityData } from '../activity-data';\r\nimport { find } from 'lodash';\r\nimport { NavigationActivityResolverData } from './navigation-activity-resolver';\r\n\r\n@Injectable()\r\nexport class NavigationActivity {\r\n\r\n constructor(private readonly router: Router) { }\r\n\r\n public getNavigationActivity(): ActivityData | null {\r\n const activatedRoute = this.getActivatedRoute();\r\n\r\n if (!activatedRoute) {\r\n return null;\r\n }\r\n\r\n const activityData = this.findNavigationActivityData(activatedRoute);\r\n\r\n return activityData;\r\n }\r\n\r\n private getActivatedRoute(): ActivatedRouteSnapshot {\r\n const global = find(this.router.routerState.snapshot.root.children, rs => rs.outlet === 'global-popup');\r\n\r\n if (global) {\r\n return global;\r\n }\r\n\r\n const primary = find(this.router.routerState.snapshot.root.children, rs => rs.outlet === PRIMARY_OUTLET);\r\n\r\n return primary;\r\n }\r\n\r\n private findNavigationActivityData(activatedRoute: ActivatedRouteSnapshot): ActivityData {\r\n const activityKey: keyof NavigationActivityResolverData = 'activity';\r\n let activityData: ActivityData = null;\r\n let route = activatedRoute;\r\n\r\n while (route) {\r\n if (route.data && route.data[activityKey]) {\r\n activityData = route.data[activityKey];\r\n }\r\n\r\n route = route.firstChild;\r\n }\r\n\r\n return activityData;\r\n }\r\n}","import { required, dataMember, typedArray } from 'santee-dcts';\r\nimport { deserializers } from '../../core';\r\nimport * as moment from 'moment';\r\n\r\nexport class Kit {\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public kitTypeId: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public ctSiteId: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public siteId: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public subprotocolId: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public kitType: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public description: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public status: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public pending: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public shipped: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public received: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public adjusted: number;\r\n\r\n @dataMember({ customDeserializer: value => moment(value) })\r\n @required({ nullable: true })\r\n public lastShipmentDate: moment.Moment;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public onHand: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public lastshipmentQuantity: number;\r\n}\r\n\r\nexport class KitsReadModel {\r\n @dataMember()\r\n @required()\r\n @typedArray(Kit)\r\n public kits: Kit[];\r\n}\r\n","import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';\r\nimport { ColDef, GridOptions } from 'ag-grid-community';\r\nimport { map, publishReplay, refCount, switchMap } from 'rxjs/operators';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\nimport { EmailActionsMenuAgRendererComponent } from './email-actions-menu-ag-renderer.component';\r\nimport { CovanceGridColumn } from '../../covance-ag-grid';\r\nimport { Email, EmailPreferenceCategory, EmailPreferenceReadModel } from './email';\r\nimport { GridColumns } from '../../shared/grid-columns';\r\nimport { EmailPreferenceLevelType } from './levels/email-preference-level-type';\r\nimport { EmailNotificationFrequencyOption } from './email-notification-frequency-option';\r\nimport { EMAIL_PREFERENCE_STORAGE_TOKEN, EmailPreferencesStorage } from './email-preferences-storage';\r\nimport { EmailNotificationHeaderAgComponent, EmailNotificationHeaderParams } from './email-notification-header-ag.component';\r\nimport { User } from '../user';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { IMdlCustomDialogConfiguration, MdlDialogService } from '@angular-mdl/core';\r\nimport { findUser } from '../../shared/route-helpers';\r\nimport { EmailAddressFormDialog, USER_PK } from './email-address-form-dialog.component';\r\nimport { uniqBy } from 'lodash';\r\nimport { EmailPreferencesCategoriesStorage } from './email-preferences-categories-storage';\r\n\r\n@Component({\r\n selector: 'email-preferences',\r\n template: require('./email-preferences.component.html'),\r\n styles: [require('./email-preferences.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [{provide: EMAIL_PREFERENCE_STORAGE_TOKEN, useExisting: EmailPreferencesStorage}]\r\n})\r\nexport class EmailPreferencesComponent {\r\n public readonly protocolLevel: EmailPreferenceLevelType = EmailPreferenceLevelType.Protocol;\r\n public readonly siteLevel: EmailPreferenceLevelType = EmailPreferenceLevelType.Site;\r\n public readonly userLevel: EmailPreferenceLevelType = EmailPreferenceLevelType.User;\r\n public readonly levelSubject$ = new BehaviorSubject(this.userLevel);\r\n\r\n public readonly gridOptions: GridOptions;\r\n public readonly columnDefs$: Observable;\r\n public readonly rowData$: Observable;\r\n public readonly user: User;\r\n\r\n public get levels(): EmailPreferenceLevelType[] {\r\n if (this.user.isInvestigator) {\r\n return [this.userLevel, this.siteLevel];\r\n }\r\n if (this.user.isSponsor) {\r\n return [this.userLevel, this.protocolLevel, this.siteLevel];\r\n }\r\n\r\n throw User.notSupportedRoleError();\r\n }\r\n\r\n private get userId() {\r\n return this.user.metadata.userId;\r\n }\r\n\r\n constructor(\r\n @Inject(EMAIL_PREFERENCE_STORAGE_TOKEN) private readonly emailPreferencesStorage: EmailPreferencesStorage,\r\n private readonly gridColumns: GridColumns,\r\n route: ActivatedRoute,\r\n private readonly dialogService: MdlDialogService,\r\n emailPreferencesCategoriesStorage: EmailPreferencesCategoriesStorage\r\n ) {\r\n this.gridOptions = {\r\n enableFilter: false,\r\n enableColResize: true,\r\n enableSorting: false,\r\n rowSelection: 'multiple',\r\n rowDeselection: true,\r\n groupRowRendererParams: {\r\n suppressCount: true,\r\n checkbox: true\r\n },\r\n groupSelectsChildren: true,\r\n groupDefaultExpanded: 0,\r\n };\r\n\r\n this.columnDefs$ = this.levelSubject$.pipe(\r\n switchMap((level) => emailPreferencesCategoriesStorage.loadEmailPreferenceCategories(this.user).pipe(map(x => this.getGridColumns(x, level))))\r\n );\r\n\r\n this.rowData$ = this.levelSubject$.pipe(\r\n switchMap(x => this.getRowData(x)),\r\n publishReplay(1),\r\n refCount());\r\n\r\n this.user = findUser(route.snapshot);\r\n }\r\n\r\n public onLevelChange(level: EmailPreferenceLevelType) {\r\n this.levelSubject$.next(level);\r\n }\r\n\r\n public async showEmailAddressForm() {\r\n const configDialog: IMdlCustomDialogConfiguration = {\r\n component: EmailAddressFormDialog,\r\n providers: [\r\n { provide: USER_PK, useValue: this.userId },\r\n { provide: EMAIL_PREFERENCE_STORAGE_TOKEN, useValue: this.emailPreferencesStorage},\r\n ],\r\n isModal: true,\r\n clickOutsideToClose: true\r\n };\r\n\r\n this.dialogService.showCustomDialog(configDialog);\r\n }\r\n\r\n public async deleteEmails() {\r\n let selectedEmails = this.gridOptions.api.getSelectedNodes().map(row => row.data.email) as Email[];\r\n\r\n if (!selectedEmails.length) {\r\n await this.dialogService.alert(`You should select at least one email`, 'OK');\r\n return;\r\n }\r\n\r\n if (selectedEmails.some(email => email.isDefault)) {\r\n await this.dialogService.alert(`You are not able to delete default email`, 'OK');\r\n return;\r\n }\r\n\r\n selectedEmails = uniqBy(selectedEmails, email => email.emailAddress);\r\n\r\n try {\r\n await this.dialogService\r\n .confirm(`Are you sure you want to delete ${selectedEmails.map(item => item.emailAddress).join(', ')} email${selectedEmails.length > 1 ? 's' : ''}?`, 'Cancel', 'Yes')\r\n .toPromise();\r\n\r\n await this.emailPreferencesStorage.deleteEmails(selectedEmails, this.userId);\r\n } catch (e) { }\r\n }\r\n\r\n private getRowData(level: EmailPreferenceLevelType): Observable {\r\n this.emailPreferencesStorage.reloadEmailPreferences({user: this.user, levelIndicator: level});\r\n return this.emailPreferencesStorage.emailPreferences;\r\n }\r\n\r\n private getGridColumns(emailPreferenceCategories: EmailPreferenceCategory[], level: EmailPreferenceLevelType): ColDef[] {\r\n let startColumns: ColDef[];\r\n if (this.user.isSponsor) {\r\n startColumns = this.getSponsorStartColumns(level);\r\n } else if (this.user.isInvestigator) {\r\n startColumns = this.getInvestigatorStartColumns(level);\r\n } else {\r\n throw User.notSupportedRoleError();\r\n }\r\n\r\n const dynamicColumns: ColDef[] = emailPreferenceCategories.map(category => {\r\n const options: EmailNotificationFrequencyOption[] = [EmailNotificationFrequencyOption.None, EmailNotificationFrequencyOption.Daily];\r\n if (this.user.isInvestigator || category.categoryId === 'result-alerts') {\r\n options.push(EmailNotificationFrequencyOption.Immediate);\r\n }\r\n\r\n return {\r\n headerName: category.categoryName,\r\n minWidth: 100,\r\n headerComponentFramework: EmailNotificationHeaderAgComponent,\r\n headerComponentParams: {\r\n userId: this.userId,\r\n categoryName: category.categoryName,\r\n categoryId: category.categoryId,\r\n options: options,\r\n currentLevel: level,\r\n } as EmailNotificationHeaderParams,\r\n valueGetter: (params: { data: EmailPreferenceReadModel }) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n\r\n const preference = params.data.emailPreferences.find(pref => pref.categoryId === category.categoryId);\r\n if (!preference) {\r\n throw Error('unable to get preference for provided category');\r\n }\r\n return EmailNotificationFrequencyOption[preference.prefValue];\r\n },\r\n };\r\n });\r\n\r\n const endColumns: ColDef[] = [\r\n this.gridColumns.actionsMenuColumn(\r\n {\r\n cellRendererFramework: EmailActionsMenuAgRendererComponent,\r\n userId: this.userId,\r\n })\r\n ];\r\n\r\n return [\r\n ...startColumns,\r\n ...dynamicColumns,\r\n ...endColumns\r\n ];\r\n }\r\n\r\n private getInvestigatorStartColumns(level: EmailPreferenceLevelType): ColDef[] {\r\n const rowGroupIndex = level === this.siteLevel ? 0 : null;\r\n const hide = level === this.siteLevel;\r\n\r\n const startColumns: ColDef[] = [\r\n {\r\n headerName: 'Select',\r\n checkboxSelection: true,\r\n cellClass: 'selection-checkbox',\r\n width: 50,\r\n },\r\n {\r\n headerName: 'Email',\r\n field: 'email',\r\n width: 240,\r\n rowGroupIndex: rowGroupIndex,\r\n hide: hide,\r\n },\r\n ];\r\n\r\n if (level === this.siteLevel) {\r\n startColumns.push(\r\n {\r\n headerName: 'Site',\r\n field: 'site',\r\n width: 150,\r\n });\r\n }\r\n\r\n return startColumns;\r\n }\r\n\r\n private getSponsorStartColumns(level: EmailPreferenceLevelType): ColDef[] {\r\n const rowGroupIndex = level === this.protocolLevel || level === this.siteLevel ? 0 : null;\r\n const hide = level === this.protocolLevel || level === this.siteLevel;\r\n\r\n const startColumns: ColDef[] = [\r\n {\r\n headerName: 'Select',\r\n checkboxSelection: true,\r\n cellClass: 'selection-checkbox',\r\n width: 50,\r\n },\r\n {\r\n headerName: 'Email',\r\n field: 'email',\r\n width: 240,\r\n rowGroupIndex: rowGroupIndex,\r\n hide: hide,\r\n },\r\n ];\r\n\r\n if (level === this.protocolLevel) {\r\n startColumns.push(\r\n {\r\n headerName: 'Protocol',\r\n field: 'protocol',\r\n width: 150,\r\n });\r\n }\r\n\r\n if (level === this.siteLevel) {\r\n startColumns.push(\r\n {\r\n headerName: 'Protocol',\r\n field: 'protocol',\r\n width: 150,\r\n rowGroupIndex: 1,\r\n hide: true,\r\n });\r\n\r\n startColumns.push(\r\n {\r\n headerName: 'Site',\r\n field: 'site',\r\n width: 150,\r\n });\r\n }\r\n\r\n return startColumns;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Settings } from '../../core/settings';\r\nimport { User } from '..';\r\nimport { deserializeArray } from 'santee-dcts';\r\nimport { EmailPreferenceCategory } from './email';\r\nimport { map, publishLast, refCount } from 'rxjs/operators';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class EmailPreferencesCategoriesStorage {\r\n\r\n constructor(\r\n private readonly http: HttpClient,\r\n private readonly settings: Settings,\r\n ) { }\r\n\r\n public loadEmailPreferenceCategories(user: User): Observable {\r\n return this.http\r\n .get(`${this.settings.getSpecificUserApiUrl(user)}/email-preferences/categories`)\r\n .pipe(\r\n map((response: Object[]) => deserializeArray(response, EmailPreferenceCategory)),\r\n publishLast(),\r\n refCount()\r\n );\r\n }\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { UserSettings } from './user-settings';\r\nimport { Settings } from '../core';\r\n\r\n@Injectable()\r\nexport class UserSettingsStorage {\r\n constructor(\r\n private settings: Settings,\r\n private http: HttpClient\r\n ) { }\r\n\r\n public async save(userSettings: UserSettings, userPk: number) {\r\n await this.http\r\n .post(`${this.settings.apiUrl}/user-settings?editedUserPk=${userPk}`, userSettings)\r\n .toPromise();\r\n }\r\n}\r\n","import { Component, ChangeDetectorRef, OnDestroy, ChangeDetectionStrategy } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { UserSettingsStorage } from './user-settings-storage';\r\nimport { Observable, Subscription, combineLatest } from 'rxjs';\r\nimport { User } from './user';\r\nimport { map, filter } from 'rxjs/operators';\r\nimport { CultureInfo } from '../core/culture-info';\r\nimport { UnitOption } from '../lab-test-results';\r\nimport { LanguagesStore } from '../core';\r\nimport { ActivityLogger } from '../activities/activity-logger';\r\nimport { routeData } from '../shared/route-helpers';\r\nimport { UnitStorage } from './unit-storage';\r\n\r\n@Component({\r\n selector: 'user-general-preferences',\r\n template: require('./user-general-preferences-component.html'),\r\n styles: [require('./user-general-preferences-component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class UserGeneralPreferencesComponent implements OnDestroy {\r\n public readonly languages: Observable;\r\n public readonly unitOptions: UnitOption[];\r\n public preferredLanguage: CultureInfo;\r\n public preferredUnit: UnitOption;\r\n\r\n private readonly editedUser$: Observable;\r\n private readonly subscription: Subscription;\r\n\r\n constructor(\r\n private readonly userSettingsStorage: UserSettingsStorage,\r\n private readonly activityLogger: ActivityLogger,\r\n private readonly unitStorage: UnitStorage,\r\n route: ActivatedRoute,\r\n languagesStore: LanguagesStore,\r\n changeDetectorRef: ChangeDetectorRef,\r\n ) {\r\n\r\n this.editedUser$ = route.parent.data.pipe(\r\n filter(x => !!x),\r\n map(data => data[routeData.user] as User)\r\n );\r\n this.languages = languagesStore.allLanguages;\r\n this.unitOptions = unitStorage.unitOptions;\r\n\r\n this.subscription = combineLatest(\r\n [this.languages,\r\n this.editedUser$]\r\n ).subscribe(([languages, user]) => {\r\n this.preferredLanguage = languages.find(l => l.languageRowId === user.settings.preferredLanguageId);\r\n this.preferredUnit = this.unitOptions.find(option => option.id === user.settings.preferredUnits);\r\n\r\n changeDetectorRef.markForCheck();\r\n });\r\n }\r\n\r\n public async onLanguageChange(culture: CultureInfo[]) {\r\n await this.editedUser$.pipe(map(async u => {\r\n this.activityLogger.logChangePreferredLanguageActivity(u.metadata.userId);\r\n u.settings.preferredLanguageId = culture[0].languageRowId;\r\n await this.saveSettings(u);\r\n })).toPromise();\r\n }\r\n\r\n public async onUnitChange(unit: UnitOption[]) {\r\n await this.editedUser$.pipe(map(async u => {\r\n this.activityLogger.logChangePreferredUnitsActivity(u.metadata.userId);\r\n u.settings.preferredUnits = unit[0].id;\r\n this.unitStorage.setUnit(unit[0]);\r\n await this.saveSettings(u);\r\n })).toPromise();\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n private async saveSettings(user: User) {\r\n await this.userSettingsStorage.save(user.settings, user.metadata.userId);\r\n }\r\n}\r\n","import { dataMember, required } from 'santee-dcts';\r\n\r\nexport class Age {\r\n @dataMember()\r\n @required()\r\n public value: number;\r\n\r\n @dataMember()\r\n @required()\r\n public unit: string;\r\n\r\n public toString() {\r\n return `${this.value} ${this.unit}`;\r\n }\r\n}","import { Component } from '@angular/core';\r\nimport { TermsStorage } from './terms-storage';\r\n\r\n@Component({\r\n selector: 'terms-popup',\r\n template: require('./terms-popup.component.html'),\r\n styles: [require('./terms-popup.component.scss')]\r\n})\r\nexport class TermsPopupComponent {\r\n public readonly disclaimer: Promise;\r\n\r\n constructor(termsStorage: TermsStorage) {\r\n this.disclaimer = termsStorage.disclaimerHtml;\r\n }\r\n}","import { CanActivate, RouterStateSnapshot, ActivatedRouteSnapshot } from '@angular/router';\r\nimport { TermsAcceptanceStorage } from './terms-acceptance-storage';\r\nimport { Injectable } from '@angular/core';\r\nimport { UrlBuilder } from '../core/url-builder/url-builder';\r\nimport { Settings } from '../core';\r\nimport { isNil } from 'lodash';\r\nimport { first } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class UserAcceptedTermsGuard implements CanActivate {\r\n\r\n constructor(\r\n private termsAcceptanceStorage: TermsAcceptanceStorage,\r\n private settings: Settings,\r\n private urlBuilder: UrlBuilder) {\r\n }\r\n\r\n public async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n const termsAccepted = await this.termsAcceptanceStorage.areTermsAccepted\r\n .pipe(first())\r\n .toPromise();\r\n\r\n if (!termsAccepted && isNil(this.settings.emulatedUserId)) {\r\n console.debug('Terms of usage were not accepted, redirecting...');\r\n this.urlBuilder.esa().terms().navigate({ saveReturnUrl: true });\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}","import { Component } from '@angular/core';\r\nimport { TermsAcceptanceStorage } from './terms-acceptance-storage';\r\nimport { TermsStorage } from './terms-storage';\r\nimport { UrlBuilder } from '../core/url-builder/url-builder';\r\n\r\n@Component({\r\n selector: 'accept-terms-page',\r\n template: require('./accept-terms-page.component.html'),\r\n styles: [require('./accept-terms-page.component.scss')]\r\n})\r\nexport class AcceptTermsPageComponent {\r\n\r\n public userAcceptsTerms = false;\r\n\r\n public disclaimer: Promise;\r\n\r\n constructor(\r\n private termsAcceptanceStorage: TermsAcceptanceStorage,\r\n private urlBuilder: UrlBuilder,\r\n termsStorage: TermsStorage) {\r\n this.disclaimer = termsStorage.disclaimerHtml;\r\n }\r\n\r\n public async onSubmit() {\r\n await this.termsAcceptanceStorage.acceptTerms();\r\n this.urlBuilder.esa().navigateToReturnUrl();\r\n }\r\n\r\n public onCancel() {\r\n this.urlBuilder.esa().logout().navigate({ saveReturnUrl: true });\r\n }\r\n}","import { Component } from '@angular/core';\r\nimport { TermsStorage } from './terms-storage';\r\n\r\n@Component({\r\n selector: 'portal-disclaimer-popup',\r\n template: require('./portal-disclaimer-popup.component.html'),\r\n styles: [require('./portal-disclaimer-popup.component.scss')]\r\n})\r\nexport class PortalDisclaimerPopupComponent {\r\n public readonly portaldisclaimer: Promise;\r\n\r\n constructor(termsStorage: TermsStorage) {\r\n this.portaldisclaimer = termsStorage.portalDisclaimerHtml;\r\n }\r\n}","import { ActivatedRoute } from '@angular/router';\r\nimport { Injectable } from '@angular/core';\r\nimport { Site } from '../sites';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { routeData } from '../shared/route-helpers';\r\n\r\n@Injectable()\r\n\r\nexport class SiteRouteDataStorage {\r\n\r\n public readonly snapshot: {\r\n selectedSite: Site\r\n };\r\n\r\n public readonly selectedSite: Observable;\r\n\r\n constructor (activatedRoute: ActivatedRoute) {\r\n this.snapshot = {\r\n selectedSite: activatedRoute.snapshot.data[routeData.selectedSite] as Site\r\n };\r\n\r\n this.selectedSite = activatedRoute.data.pipe(\r\n map(data => data[routeData.selectedSite] as Site)\r\n );\r\n }\r\n}","import { AfterViewInit, ChangeDetectorRef, OnDestroy } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { CvdChartData, CvdChartDataValue } from '@covance/ng-cvd3';\r\nimport { chain, find } from 'lodash';\r\nimport { VisitInfo } from './lab-trends-chart.component';\r\nimport { LabTestResult } from '../../lab-test-results';\r\nimport { removeAllTooltips } from '../../core/tooltip-remover';\r\nimport { canBeUsedInTrends } from '../../charts/chart-helper';\r\nimport { SiteTestDataStorage } from './site-test-data-storage';\r\n\r\nexport class TestAxisTitleInfo {\r\n public zcTestCode: string;\r\n public testName: string;\r\n public unit: string;\r\n public testNameWithUnit: string;\r\n\r\n constructor(labTestResult: LabTestResult) {\r\n this.zcTestCode = labTestResult.zcTestCode;\r\n this.testName = labTestResult.test;\r\n this.unit = labTestResult.unit;\r\n this.testNameWithUnit = labTestResult.testNameWithUnit;\r\n }\r\n\r\n public get axisTitle() {\r\n return this.testNameWithUnit;\r\n }\r\n\r\n public toString(): string {\r\n return this.axisTitle;\r\n }\r\n}\r\n\r\nexport abstract class BaseOsrChart implements OnDestroy, AfterViewInit {\r\n\r\n public lineChartData: CvdChartData[];\r\n public yAxisNames: TestAxisTitleInfo[];\r\n public yAxisName: TestAxisTitleInfo;\r\n\r\n public get yAxisTitle() {\r\n return this.yAxisName && this.yAxisName.axisTitle;\r\n }\r\n\r\n protected data: LabTestResult[] = [];\r\n protected currentTestData: LabTestResult[] = [];\r\n protected visitsInfo: VisitInfo[];\r\n private subscription: Subscription;\r\n private isViewInitialized: boolean;\r\n\r\n protected constructor(private storage: SiteTestDataStorage, private changeDetectorRef: ChangeDetectorRef) {\r\n }\r\n\r\n public ngOnChanges() {\r\n if (this.isViewInitialized) {\r\n this.build();\r\n }\r\n }\r\n\r\n public ngAfterViewInit() {\r\n this.subscription = this.storage.getData.subscribe((data) => {\r\n if (!data) {\r\n return;\r\n }\r\n this.data = data.filter((r) => canBeUsedInTrends(r));\r\n this.build();\r\n this.changeDetectorRef.markForCheck();\r\n });\r\n }\r\n\r\n public ngOnDestroy() {\r\n removeAllTooltips();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n public onChangeYAxisName(yAxisName: TestAxisTitleInfo[]) {\r\n if (!yAxisName) {\r\n return;\r\n }\r\n this.yAxisName = yAxisName[0];\r\n this.currentTestData = this.data.filter(r => r.zcTestCode === this.yAxisName.zcTestCode);\r\n this.lineChartData = this.buildChartData();\r\n this.chartSpecific();\r\n }\r\n\r\n protected abstract buildChartData(): CvdChartData[];\r\n\r\n protected abstract chartSpecific(): void;\r\n\r\n private buildVisitsInfo() {\r\n this.visitsInfo = chain(this.data)\r\n .uniqBy(res => res.visitCode)\r\n .map(res => ({\r\n visitCode: res.visitCode,\r\n visitTitle: res.visitName\r\n } as VisitInfo)).value();\r\n }\r\n\r\n private build() {\r\n this.buildVisitsInfo();\r\n this.buildAxisNames();\r\n this.currentTestData = this.data.filter(r => r.zcTestCode === this.yAxisName.zcTestCode);\r\n this.lineChartData = this.buildChartData();\r\n this.chartSpecific();\r\n }\r\n\r\n private buildAxisNames() {\r\n this.yAxisNames = chain(this.data)\r\n .map(r => new TestAxisTitleInfo(r))\r\n .uniqBy(ax => ax.zcTestCode)\r\n .orderBy(ax => ax.testName.toLowerCase())\r\n .value();\r\n this.yAxisName = find(this.yAxisNames, yName => this.yAxisName && this.yAxisName.zcTestCode === yName.zcTestCode) || this.yAxisNames[0];\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CvdChartData, CvdChartDataValue } from '@covance/ng-cvd3';\r\nimport { LabTestResult } from '../lab-test-results';\r\nimport { chain, groupBy, map, orderBy } from 'lodash';\r\nimport { getShapeByGender, getColorByGender, getSexLabelByShape } from './chart-helper';\r\n\r\n@Injectable()\r\nexport class BoxplotChartDataBuilder {\r\n constructor() { }\r\n\r\n public buildChartData(\r\n results: LabTestResult[], \r\n showSplitGenders: boolean, \r\n groupKeySelector: (result: LabTestResult) => string,\r\n xAxisTickRenderer: (groupKey: string, data: LabTestResult[]) => string,\r\n xAxisSorting: (results: LabTestResult[]) => number | string) {\r\n\r\n const groupKeys = chain(results)\r\n .uniqBy(groupKeySelector)\r\n .map(groupKeySelector)\r\n .value();\r\n\r\n if (results === null) {\r\n return null;\r\n }\r\n const validData = results.filter(d => !d.isCancelled);\r\n const dataSource = showSplitGenders \r\n ? groupBy(validData, test => getSexLabelByShape(getShapeByGender(test.sex))) \r\n : {'All Genders': validData};\r\n\r\n const dataByGender = map(dataSource, (genderData, gender) => {\r\n const byVisits = chain(genderData)\r\n .groupBy(groupKeySelector).value();\r\n\r\n const visitData = chain(groupKeys)\r\n .filter(groupKey => !!groupKey)\r\n .map(groupKey => {\r\n const yValues = byVisits[groupKey] || [];\r\n const x = xAxisTickRenderer(groupKey, validData);\r\n const sortKey = xAxisSorting ? xAxisSorting(yValues) : x;\r\n\r\n return {\r\n x: x,\r\n y: yValues.map(test => ({\r\n y: test.currentResult.numericResult,\r\n rowId: test.labTestId,\r\n shape: getShapeByGender(test.sex)\r\n })),\r\n rows: [sortKey],\r\n series: 0\r\n } as CvdChartDataValue;\r\n })\r\n .sortBy(value => value.rows[0])\r\n .value();\r\n\r\n const data: CvdChartData = {\r\n key: gender,\r\n rows: [],\r\n color: getColorByGender(gender),\r\n values: visitData\r\n };\r\n return data;\r\n });\r\n return orderBy(dataByGender, (d: CvdChartData) => d.key);\r\n }\r\n}","import { CvdChartData, CvdChartDataValue, CvdBandDataValue } from '@covance/ng-cvd3';\r\nimport { LabTestResult, TestResult } from '../lab-test-results';\r\nimport { chain, isNumber, max, min, maxBy, Dictionary, forEachRight, find } from 'lodash';\r\nimport { scaleLinear } from 'd3';\r\nimport { Injectable } from '@angular/core';\r\nimport { LabResultsSortInfo } from '../lab-test-results';\r\nimport { getFlaggedClassName } from '../charts/chart-helper';\r\n\r\nexport interface LabTestsChartXAxisTick {\r\n visitId: number;\r\n visitColumnKey: string;\r\n visitTitle: string;\r\n}\r\n\r\nexport interface LastVisitInfo {\r\n value: number;\r\n colorClassName: string;\r\n}\r\n\r\nexport interface LabTestsChartYAxisTick {\r\n value: number;\r\n testGroupName: string;\r\n yTickText: string;\r\n lastVisitInfo: LastVisitInfo;\r\n}\r\n\r\nexport interface LabTestsChartDataValue extends CvdChartDataValue {\r\n testNumbericResult: number;\r\n testUnit: string;\r\n testMin: number;\r\n testMax: number;\r\n shape: string;\r\n labTestResult: LabTestResult;\r\n colorClassName: string;\r\n}\r\n\r\nexport interface LabTestsChartData extends CvdChartData {\r\n values: LabTestsChartDataValue[];\r\n}\r\n\r\nexport interface LabTestsChartDataResult {\r\n chartData: LabTestsChartData[];\r\n chartBandData: CvdChartData[];\r\n xAxisTicks: LabTestsChartXAxisTick[];\r\n xAxisTickValues: number[];\r\n yAxisTicks: LabTestsChartYAxisTick[];\r\n yAxisTickValues: number[];\r\n yDomain: number[];\r\n}\r\n\r\ninterface VisitInfo {\r\n visitId: number;\r\n visitColumnKey: string;\r\n visitDescription: string;\r\n kitTypeDescription: string;\r\n}\r\n\r\n@Injectable()\r\nexport class LabTestsChartDataGenerator {\r\n constructor(private labTestsSortingInfo: LabResultsSortInfo) { }\r\n\r\n public generateData(labTestResults: LabTestResult[]): LabTestsChartDataResult {\r\n const generator = new LabTestsChartDataGeneratorInternal(this.labTestsSortingInfo);\r\n return generator.generateData(labTestResults);\r\n }\r\n}\r\n\r\nclass LabTestsChartDataGeneratorInternal {\r\n private readonly heightChartLine = 10;\r\n private readonly paddingChartLine = 0.5;\r\n\r\n private indexLine = 0;\r\n private chartData: LabTestsChartData[] = null;\r\n private readonly bandData: CvdChartData[] = [];\r\n private visitData: VisitInfo[] = [];\r\n private xTicks: LabTestsChartXAxisTick[] = [];\r\n private readonly yTicks: LabTestsChartYAxisTick[] = [];\r\n\r\n constructor(private labResultsSortInfo: LabResultsSortInfo) { }\r\n\r\n public generateData(labTestResults: LabTestResult[]): LabTestsChartDataResult {\r\n if (labTestResults) {\r\n this.chartData = [];\r\n chain(labTestResults)\r\n .groupBy(x => x.testGroup)\r\n .orderBy((x: LabTestResult[]) => this.labResultsSortInfo.subjectLevel.testGroupLevel(x[0]), 'desc')\r\n .forEach((byTestGroup: LabTestResult[]) => {\r\n const testGroup = byTestGroup[0].testGroup;\r\n\r\n chain(byTestGroup)\r\n .groupBy(x => x.zcTestCode)\r\n .orderBy((x: LabTestResult[]) => this.labResultsSortInfo.subjectLevel.testLevel(x[0]), 'desc')\r\n .forEach((byZcTestCode: LabTestResult[]) => {\r\n const firstLabTestResult = find(byZcTestCode, labTestResult => labTestResult.currentResult && isNumber(labTestResult.currentResult.numericResult));\r\n\r\n if (firstLabTestResult) {\r\n const chartDataValues: LabTestsChartDataValue[] = [];\r\n const bandValues: CvdBandDataValue[] = [];\r\n\r\n this.fillValues(byZcTestCode, chartDataValues, bandValues);\r\n this.scaleYValues(chartDataValues, bandValues, firstLabTestResult.currentResult);\r\n this.fillChartData(\r\n chartDataValues,\r\n bandValues,\r\n firstLabTestResult.uniqLabTestIdKey,\r\n firstLabTestResult.test,\r\n testGroup);\r\n\r\n ++this.indexLine;\r\n }\r\n })\r\n .value();\r\n\r\n })\r\n .value();\r\n \r\n \r\n this.xTicks = chain(this.visitData)\r\n .groupBy(x => x.visitId)\r\n .map((visitData: VisitInfo[], visitId: number) => {\r\n const visitWithDescription = visitData.find(v => !!v.visitDescription);\r\n const visitTitle = visitWithDescription ? \r\n visitWithDescription.visitDescription \r\n : visitData[0].kitTypeDescription;\r\n return {\r\n visitId: visitId,\r\n visitColumnKey: visitData[0].visitColumnKey,\r\n visitTitle: visitTitle\r\n };\r\n })\r\n .sortBy(x => x.visitColumnKey) \r\n .value();\r\n\r\n this.mapVisitIdsToNumbericIndex();\r\n this.distinctYTicksTestGroupNames();\r\n }\r\n const xAxisTickValues = this.xTicks.map(x => x.visitId);\r\n const yAxisTickValues = this.yTicks.map(x => x.value);\r\n const yDomain = [0, this.bandData.length * this.heightChartLine];\r\n\r\n return {\r\n chartData: this.chartData,\r\n chartBandData: this.bandData,\r\n xAxisTicks: this.xTicks,\r\n xAxisTickValues: xAxisTickValues,\r\n yAxisTicks: this.yTicks,\r\n yAxisTickValues: yAxisTickValues,\r\n yDomain: yDomain\r\n };\r\n }\r\n\r\n private distinctYTicksTestGroupNames() {\r\n let prev: string = null;\r\n\r\n // use right, since yTicks are rendered from the bottom to the top\r\n forEachRight(this.yTicks, yTick => {\r\n const testGroupName = yTick.testGroupName;\r\n if (prev === yTick.testGroupName) {\r\n yTick.testGroupName = '';\r\n }\r\n prev = testGroupName;\r\n });\r\n }\r\n\r\n // maps visitId to numeric index: visitId1 -> 1, visitId2 -> 2, ..., visitIdN -> N\r\n // for correct axises rendering.\r\n private mapVisitIdsToNumbericIndex() {\r\n const mappingVisitIdsToIndexes: Dictionary = {};\r\n\r\n this.xTicks.forEach((xTick, index) => {\r\n mappingVisitIdsToIndexes[xTick.visitId] = index;\r\n xTick.visitId = index;\r\n });\r\n\r\n this.chartData.forEach(dataItem => {\r\n dataItem.values.forEach(valueItem => {\r\n valueItem.x = mappingVisitIdsToIndexes[valueItem.x];\r\n });\r\n });\r\n\r\n this.bandData.forEach(bandItem => {\r\n bandItem.values.forEach(valueItem => {\r\n valueItem.x = mappingVisitIdsToIndexes[valueItem.x];\r\n });\r\n });\r\n }\r\n\r\n private fillValues(groupedLabTestResults: LabTestResult[], chartDataValues: LabTestsChartDataValue[], bandValues: CvdBandDataValue[]) {\r\n chain(groupedLabTestResults)\r\n .filter(labTestResult => !labTestResult.isCancelled && labTestResult.currentResult && isNumber(labTestResult.currentResult.numericResult))\r\n .sortBy(labTestResult => labTestResult.visitColumnKey) // sort by x\r\n .forEach(labTestResult => {\r\n const testResult = labTestResult.currentResult;\r\n\r\n if (testResult) {\r\n chartDataValues.push({\r\n x: labTestResult.accessionId,\r\n y: testResult.numericResult,\r\n testNumbericResult: testResult.numericResult,\r\n testUnit: testResult.unit,\r\n testMin: testResult.min,\r\n testMax: testResult.max,\r\n labTestResult: labTestResult,\r\n rows: [],\r\n series: 0,\r\n shape: 'square',\r\n colorClassName: getFlaggedClassName(labTestResult)\r\n });\r\n\r\n this.fillBandValues(labTestResult, testResult, bandValues);\r\n\r\n this.visitData.push({\r\n visitId: labTestResult.accessionId,\r\n visitColumnKey: labTestResult.visitColumnKey,\r\n visitDescription: labTestResult.visitDescription,\r\n kitTypeDescription: labTestResult.visitTitle\r\n });\r\n }\r\n })\r\n .value();\r\n }\r\n\r\n private fillBandValues(labTestResult: LabTestResult, testResult: TestResult, bandValues: CvdBandDataValue[]) {\r\n if (bandValues.length === 1 // Suppose min and max are permanent for all visits.\r\n || testResult.min === null\r\n || testResult.max === null) {\r\n return;\r\n }\r\n\r\n bandValues.push({\r\n x: labTestResult.accessionId,\r\n y1: testResult.min,\r\n y2: testResult.max,\r\n rows: [],\r\n series: 0,\r\n y: 0\r\n });\r\n }\r\n\r\n private scaleYValues(chartDataValues: LabTestsChartDataValue[], bandValues: CvdBandDataValue[], testResult: TestResult) {\r\n const yValues = [...chartDataValues.map(x => x.y as number), testResult.min, testResult.max];\r\n const maxY = max(yValues);\r\n const minY = min(yValues);\r\n\r\n const scaleYAxis = scaleLinear()\r\n .domain([minY, maxY])\r\n .range([this.paddingChartLine, this.heightChartLine - this.paddingChartLine]);\r\n\r\n bandValues.forEach(c => {\r\n c.y1 = scaleYAxis(c.y1) + (this.heightChartLine * this.indexLine);\r\n c.y2 = scaleYAxis(c.y2) + (this.heightChartLine * this.indexLine);\r\n });\r\n\r\n chartDataValues.forEach(v => {\r\n v.y = scaleYAxis(v.y as number) + (this.heightChartLine * this.indexLine);\r\n });\r\n }\r\n\r\n private fillChartData(\r\n chartDataValues: LabTestsChartDataValue[],\r\n bandValues: CvdBandDataValue[],\r\n uniqLabTestKey: string,\r\n testName: string,\r\n testGroupName: string\r\n ) {\r\n this.bandData.push({\r\n key: uniqLabTestKey,\r\n values: bandValues,\r\n rows: []\r\n });\r\n\r\n this.chartData.push({\r\n key: uniqLabTestKey,\r\n rows: [],\r\n values: chartDataValues\r\n });\r\n\r\n const lastVisitValue = maxBy(chartDataValues, value => value.labTestResult.visitColumnKey);\r\n\r\n const lastVisitInfo: LastVisitInfo = lastVisitValue\r\n ? {\r\n value: lastVisitValue.testNumbericResult,\r\n colorClassName: lastVisitValue.colorClassName\r\n }\r\n : null;\r\n\r\n this.yTicks.push(\r\n {\r\n value: (this.indexLine + 0.5) * this.heightChartLine,\r\n testGroupName: testGroupName,\r\n yTickText: testName,\r\n lastVisitInfo: lastVisitInfo\r\n }\r\n );\r\n }\r\n}","import { MicrobiologyStorage } from './../../on-screen-results/microbiology-data/microbiology-storage';\r\nimport { Injectable } from '@angular/core';\r\nimport { MicrobiologyDataStorage } from '../../on-screen-results/microbiology-data/microbiology-data-storage';\r\nimport { SiteRouteDataStorage } from '../site-route-data-storage';\r\nimport { Observable } from 'rxjs';\r\nimport { MicrobiologyData } from '../../on-screen-results/microbiology-data/microbiology-data';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class InvestigatorMicrobiologyStorage implements MicrobiologyDataStorage {\r\n constructor(private selectedSiteRouteData: SiteRouteDataStorage, private storage: MicrobiologyStorage) {\r\n\r\n }\r\n\r\n public get siteMicrobiologyData(): Observable {\r\n return this.storage.getMicrobiologyForSite(\r\n this.selectedSiteRouteData.selectedSite.pipe(map(s => s.siteId)));\r\n }\r\n}","import { ActivatedRoute } from '@angular/router';\r\nimport { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { MICROBIOLOGY_DATA_STORAGE } from '../../on-screen-results/microbiology-data/microbiology-data-storage';\r\nimport { InvestigatorMicrobiologyStorage } from './investigator-microbiology-storage';\r\nimport { Site } from '../../sites';\r\nimport { routeSnapshotExtensions } from '../../shared/route-extensions';\r\n\r\n@Component({\r\n selector: 'investigator-microbiology',\r\n template: require('./investigator-microbiology.component.html'),\r\n styles: [require('./investigator-microbiology.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {provide: MICROBIOLOGY_DATA_STORAGE, useClass: InvestigatorMicrobiologyStorage}\r\n ]\r\n})\r\nexport class InvestigatorMicrobiologyComponent {\r\n public siteId: number;\r\n\r\n constructor(route: ActivatedRoute) {\r\n const site = routeSnapshotExtensions.findData(route.snapshot, 'selectedSite') as Site | null;\r\n this.siteId = site && site.siteId;\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { FilterFieldValue } from '../../covance-filter';\r\nimport { OnScreenResultsFilterDefenitions } from './on-screen-results-filter-defenitions';\r\n\r\nexport interface FilterStorage {\r\n filterFieldsData: FilterFieldValue[];\r\n subjectFilter: FilterFieldValue;\r\n}\r\n\r\n@Injectable()\r\nexport class InvestigatorLabTestResultsFilterStorage implements FilterStorage {\r\n\r\n public filterFieldsData: FilterFieldValue[];\r\n\r\n public readonly subjectFilter: FilterFieldValue;\r\n\r\n constructor(\r\n private readonly onScreenResultsFilterDefenitions: OnScreenResultsFilterDefenitions,\r\n ) {\r\n this.filterFieldsData = this.onScreenResultsFilterDefenitions.siteDataFilterFieldDefs.map(def => { return { def: def } as FilterFieldValue; });\r\n this.subjectFilter = this.filterFieldsData.find(f => f.def.title === 'Subject');\r\n }\r\n}","import { Component, ChangeDetectorRef, OnDestroy, Inject } from '@angular/core';\r\nimport { ActivatedRoute, Params } from '@angular/router';\r\nimport { FilterFieldValue } from '../../covance-filter';\r\nimport { UrlBuilder } from '../../core/url-builder/url-builder';\r\nimport { Site } from '../../sites/site';\r\nimport { Subscription, Observable } from 'rxjs';\r\nimport { map, filter, withLatestFrom, takeWhile } from 'rxjs/operators';\r\nimport { findIndex } from 'lodash';\r\nimport { FilteredLabTestResultsStorage, SITE_LAB_RESULTS_FILTERS_STORAGE } from './filtered-lab-test-results-storage';\r\nimport { Settings } from '../../core/settings';\r\nimport { FilterStorage, InvestigatorLabTestResultsFilterStorage } from './lab-test-results-filter-storage';\r\nimport { SITE_LAB_RESULTS_STORAGE } from './site-test-data-storage';\r\nimport { routeData } from '../../shared/route-helpers';\r\nimport { LOAD_ALL_RESULTS_QUERY_PARAMETER } from './standart-test-result-query-parameters';\r\n\r\n@Component({\r\n selector: 'on-screen-results',\r\n template: require('./standard-test-results-main.component.html'),\r\n styles: [require('./standard-test-results-main.component.scss')],\r\n providers: [\r\n { provide: SITE_LAB_RESULTS_FILTERS_STORAGE, useClass: InvestigatorLabTestResultsFilterStorage },\r\n { provide: SITE_LAB_RESULTS_STORAGE, useClass: FilteredLabTestResultsStorage },\r\n ]\r\n})\r\nexport class StandardTestResultsMainComponent implements OnDestroy {\r\n\r\n public tabs: TabInfo[] = [\r\n { title: 'Test Results', url: 'test-results' },\r\n { title: 'Trends', url: 'trends' }\r\n ];\r\n\r\n public siteId: number;\r\n public filterGroup = 'standard-test-results';\r\n public fieldVals: FilterFieldValue[];\r\n public tabIndex: number;\r\n public selectedSite: Site;\r\n public maxNumOfSubjects: number;\r\n public showLargeSiteWarning: Observable;\r\n private siteSubscription: Subscription;\r\n private tabSubscription: Subscription;\r\n\r\n constructor(\r\n route: ActivatedRoute,\r\n private urlBuilder: UrlBuilder,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n @Inject(SITE_LAB_RESULTS_FILTERS_STORAGE) filterStorage: FilterStorage,\r\n settings: Settings\r\n ) {\r\n if (settings.isFeatureEnabled('investigatorBoxplot')) {\r\n this.tabs.push({ title: 'Box plots', url: 'boxplots' });\r\n }\r\n\r\n this.fieldVals = filterStorage.filterFieldsData;\r\n\r\n const tabIndexObs = route.params\r\n .pipe(\r\n map(p => p['tabName']),\r\n map(t => findIndex(this.tabs, (p: TabInfo) => p.url === t) || 0)\r\n );\r\n\r\n this.tabSubscription = tabIndexObs.subscribe(idx => {\r\n this.tabIndex = idx;\r\n setTimeout(() => this.changeDetectorRef.markForCheck());\r\n });\r\n\r\n const site = route.parent.parent.data\r\n .pipe(\r\n map(x => x[routeData.selectedSite] as Site),\r\n filter((x: Site) => !!x)\r\n );\r\n\r\n this.showLargeSiteWarning =\r\n route.queryParams\r\n .pipe(\r\n map((p) => !!p[LOAD_ALL_RESULTS_QUERY_PARAMETER]),\r\n withLatestFrom(site),\r\n map(([v, s]) => s.isExtremelyLarge && !v),\r\n takeWhile(r => r, true)\r\n );\r\n\r\n this.siteSubscription = site.subscribe(s => {\r\n this.selectedSite = s;\r\n this.siteId = s.siteId;\r\n });\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.siteSubscription.unsubscribe();\r\n this.tabSubscription.unsubscribe();\r\n }\r\n\r\n public tabChanged(event: { index: number }) {\r\n this.urlBuilder\r\n .esa()\r\n .site(this.selectedSite)\r\n .onScreenResults()\r\n .standardTestResults(this.tabs[event.index].url)\r\n .navigate({ preserveFragments: true, preserveQueryParams: true });\r\n }\r\n\r\n public toggleLoadAll() {\r\n const queryParams: Params = {};\r\n queryParams[LOAD_ALL_RESULTS_QUERY_PARAMETER] = true;\r\n this.urlBuilder\r\n .esa()\r\n .site(this.selectedSite)\r\n .onScreenResults()\r\n .standardTestResults(this.tabs[0].url)\r\n .navigate({ queryParams: queryParams, navigationExtras: { queryParamsHandling: 'merge' } });\r\n }\r\n}\r\n\r\ninterface TabInfo {\r\n title: string;\r\n url: string;\r\n}","module.exports = \"build/fonts/report-delete.svg\";","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 = 669;","import { GetQuickFilterTextParams } from 'ag-grid-community';\r\nimport * as moment from 'moment';\r\nimport { formatters } from '../../core';\r\nimport { isEmpty, chain } from 'lodash';\r\n\r\nexport function booleanRenderer(x: { value: boolean }) {\r\n return formatters.formatBoolean(x.value);\r\n}\r\n\r\nexport function dateRenderer(x: { value: moment.Moment }) {\r\n return formatters.formatDate(x.value);\r\n}\r\n\r\nexport function dateArrayRenderer(value: moment.Moment[]) {\r\n if (isEmpty(value)) {\r\n return '';\r\n }\r\n\r\n const collectionDates = chain(value)\r\n .map(x => dateRenderer({ value: x }))\r\n .value()\r\n .join(', ');\r\n return collectionDates;\r\n}\r\n\r\nexport function dateTimeRenderer(x: { value: moment.Moment }) {\r\n return formatters.formatDateTime(x.value);\r\n}\r\n\r\nexport function booleanQuickFilterText(params: GetQuickFilterTextParams) {\r\n return formatters.formatBoolean(params.value);\r\n}\r\n\r\nexport function momentExporter(value: moment.Moment) {\r\n return value.toDate(); // we need this because agGrid is a way too smart when it comes to exporting data in xls format\r\n}","import * as moment from 'moment';\r\nimport { comparators } from '../core/comparators';\r\nimport { isEmpty } from 'lodash';\r\n\r\nexport function dateTimeComparator(date1: string, date2: string) {\r\n return comparators.dateTimeComparator(date1, date2);\r\n}\r\n\r\nexport function dateTimeArrayComparator(date1: moment.Moment[], date2: moment.Moment[]) {\r\n const dateA = isEmpty(date1) ? null : date1[0];\r\n const dateB = isEmpty(date2) ? null : date2[0];\r\n return comparators.dateTimeComparator(dateA, dateB);\r\n}","module.exports = \"build/fonts/hold-badge.svg\";","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./filter-common-style.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","export class ReportFlag {\r\n\r\n public get reportFlags() {\r\n return this.flags;\r\n }\r\n\r\n private flags: { [indexedDd: string]: string };\r\n\r\n constructor(flags: { [indexedDb: string]: string }) {\r\n this.flags = flags;\r\n }\r\n\r\n public toString() {\r\n return this.flags ? Object.keys(this.flags).map(flag => flag.toUpperCase()).join(' ') : '';\r\n }\r\n}","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./test-result-ag-renderer.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","export * from './standard-test-results-main.module';\r\nexport * from './standard-test-results-main.routes';\r\nexport * from './lab-trends-chart.component';\r\nexport * from './test-visit-ag-renderer.component';\r\nexport * from './test-title-ag-renderer.component';\r\nexport * from '../test-result-ag-renderer.component';\r\nexport * from '.././grid-row-item';\r\nexport * from './lab-boxplot-chart.component';\r\nexport * from './test-subject-ag-renderer.component';\r\n","module.exports = \"\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./documents-component-base.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","module.exports = \"
\\r\\n \\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./general-documents.component-base.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","module.exports = \"\\r\\n
\\r\\n
\\r\\n
\\r\\n

Protocol {{selectedProtocol$.protocolCode}}

\\r\\n

Study Grouping {{selectedStudyGroup$.groupName}}

\\r\\n

{{selectedStatus.value}} 0\\\"> - {{patientNumber}}

\\r\\n {{selectedStatus.helpText}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n Export As Excel\\r\\n \\r\\n \\r\\n \\r\\n Export As CSV\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Filter options

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

Protocol/Study

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

Region

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

Project №

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

Country

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

Investigator Name/ Number

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

Selected Filters

\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
0\\\">\\r\\n

Protocols:  

\\r\\n
    \\r\\n \\r\\n
  • {{study.value}} 
  • \\r\\n
    \\r\\n
\\r\\n
\\r\\n
0\\\" class=\\\"study-group-header\\\">\\r\\n

Region:  

\\r\\n
    \\r\\n \\r\\n
  • {{filter.value}} 
  • \\r\\n
    \\r\\n
\\r\\n
\\r\\n
0\\\" class=\\\"study-group-header\\\">\\r\\n

Project №:  

\\r\\n
    \\r\\n \\r\\n
  • {{filter.value}} 
  • \\r\\n
    \\r\\n
\\r\\n
\\r\\n
0\\\" class=\\\"study-group-header\\\">\\r\\n

Country:  

\\r\\n
    \\r\\n \\r\\n
  • {{filter.value}} 
  • \\r\\n
    \\r\\n
\\r\\n
\\r\\n
0\\\" class=\\\"study-group-header\\\">\\r\\n

Investigator Name/ Number:  

\\r\\n
    \\r\\n \\r\\n
  • {{filter.value}} 
  • \\r\\n
    \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n

Quick Filters

\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
Record Count: {{gridCount}}
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n {{isDrawerCollapsed ? 'Expand filter' : 'Collapse filter'}}\\r\\n \\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./st-filter-samples.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","module.exports = \"build/fonts/edit_pencil.svg\";","module.exports = \"
\\r\\n
\\r\\n
\\r\\n {{label}}\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n check\\r\\n
\\r\\n
\\r\\n Sample Registration Saved!close\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Record Count: {{gridData?.length ? gridData.length : '0'}} \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sample-details.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","module.exports = \"build/fonts/report-resume.svg\";","module.exports = \"build/fonts/trash-can.svg\";","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./column-renderer.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","module.exports = \"\\r\\n\"","import {Routes} from '@angular/router';\r\nimport { InvestigatorMicrobiologyComponent } from '../../investigator/microbiology/investigator-microbiology.component';\r\nimport { PageTitle } from '../../core/page-title';\r\nimport { navigationActivity } from '../../activities/navigation-activity/navigation-activity-resolver';\r\nimport { investigatorDefaultActivityHandler } from '../../activities/navigation-activity/handlers/investigator/investigator-default-activity-handler';\r\n\r\nexport const microbiologyDataRoutes: Routes = [\r\n {\r\n path: 'microbiology-data',\r\n pathMatch: 'full',\r\n redirectTo: 'microbiology-data/isolate-culture-data'\r\n },\r\n {\r\n path: 'microbiology-data/isolate-culture-data',\r\n data: {\r\n title: PageTitle.getInvestigatorTitle('Microbiology'),\r\n ...investigatorDefaultActivityHandler('View Microbiology Data')\r\n },\r\n resolve: { ...navigationActivity },\r\n component: InvestigatorMicrobiologyComponent\r\n }\r\n];","import {Routes} from '@angular/router';\r\nimport { StandardTestResultsMainComponent } from './standard-test-results-main.component';\r\nimport { PageTitle } from '../../core/page-title';\r\nimport { investigatorTestResultsActivityHandler } from '../../activities/navigation-activity/handlers/investigator/investigator-test-results-activity-handler';\r\nimport { navigationActivity } from '../../activities/navigation-activity/navigation-activity-resolver';\r\nimport { routeParams } from '../../shared/route-helpers';\r\n\r\nexport const standardTestResultsRoutes: Routes = [\r\n {\r\n path: 'standard-test-results',\r\n pathMatch: 'full',\r\n redirectTo: 'standard-test-results/test-results'\r\n },\r\n {\r\n path: '',\r\n pathMatch: 'full',\r\n redirectTo: 'standard-test-results/test-results'\r\n },\r\n {\r\n path: `standard-test-results/:${routeParams.tabName}`,\r\n data: {\r\n title: PageTitle.getInvestigatorTitle('Standard Test Results'),\r\n ...investigatorTestResultsActivityHandler()\r\n },\r\n resolve: { ...navigationActivity },\r\n component: StandardTestResultsMainComponent\r\n }\r\n];","import { navigationActivityHandler } from '../navigation-activity-handler';\r\nimport { navigationActions } from '../../navigation-actions';\r\nimport { map } from 'rxjs/operators';\r\nimport { DetailedActivityData, ActivitySiteDetail } from '../../../activity-data';\r\nimport { findSelectedSite, findTabName } from '../../../../shared/route-helpers';\r\n\r\nexport const investigatorTestResultsActivityHandler = () => {\r\n return navigationActivityHandler(\r\n ({ route, activitySession }) => {\r\n const selectedSite = findSelectedSite(route);\r\n const tabName = findTabName(route);\r\n const userAction = navigationActions.testResults[tabName];\r\n\r\n return userAction\r\n ? activitySession.pipe(\r\n map(session => new DetailedActivityData(\r\n userAction,\r\n session.userSessionId,\r\n [\r\n new ActivitySiteDetail(selectedSite.siteId)\r\n ]\r\n )))\r\n : null;\r\n }\r\n );\r\n};","import { dataMember, required } from 'santee-dcts';\r\nimport { UserMetadata } from '../../user';\r\n\r\nexport class Acknowledgement {\r\n @dataMember()\r\n @required()\r\n public user: UserMetadata;\r\n}","var map = {\n\t\"./af\": 670,\n\t\"./af.js\": 670,\n\t\"./ar\": 671,\n\t\"./ar-dz\": 672,\n\t\"./ar-dz.js\": 672,\n\t\"./ar-kw\": 673,\n\t\"./ar-kw.js\": 673,\n\t\"./ar-ly\": 674,\n\t\"./ar-ly.js\": 674,\n\t\"./ar-ma\": 675,\n\t\"./ar-ma.js\": 675,\n\t\"./ar-ps\": 676,\n\t\"./ar-ps.js\": 676,\n\t\"./ar-sa\": 677,\n\t\"./ar-sa.js\": 677,\n\t\"./ar-tn\": 678,\n\t\"./ar-tn.js\": 678,\n\t\"./ar.js\": 671,\n\t\"./az\": 679,\n\t\"./az.js\": 679,\n\t\"./be\": 680,\n\t\"./be.js\": 680,\n\t\"./bg\": 681,\n\t\"./bg.js\": 681,\n\t\"./bm\": 682,\n\t\"./bm.js\": 682,\n\t\"./bn\": 683,\n\t\"./bn-bd\": 684,\n\t\"./bn-bd.js\": 684,\n\t\"./bn.js\": 683,\n\t\"./bo\": 685,\n\t\"./bo.js\": 685,\n\t\"./br\": 686,\n\t\"./br.js\": 686,\n\t\"./bs\": 687,\n\t\"./bs.js\": 687,\n\t\"./ca\": 688,\n\t\"./ca.js\": 688,\n\t\"./cs\": 689,\n\t\"./cs.js\": 689,\n\t\"./cv\": 690,\n\t\"./cv.js\": 690,\n\t\"./cy\": 691,\n\t\"./cy.js\": 691,\n\t\"./da\": 692,\n\t\"./da.js\": 692,\n\t\"./de\": 693,\n\t\"./de-at\": 694,\n\t\"./de-at.js\": 694,\n\t\"./de-ch\": 695,\n\t\"./de-ch.js\": 695,\n\t\"./de.js\": 693,\n\t\"./dv\": 696,\n\t\"./dv.js\": 696,\n\t\"./el\": 697,\n\t\"./el.js\": 697,\n\t\"./en-au\": 698,\n\t\"./en-au.js\": 698,\n\t\"./en-ca\": 699,\n\t\"./en-ca.js\": 699,\n\t\"./en-gb\": 700,\n\t\"./en-gb.js\": 700,\n\t\"./en-ie\": 701,\n\t\"./en-ie.js\": 701,\n\t\"./en-il\": 702,\n\t\"./en-il.js\": 702,\n\t\"./en-in\": 703,\n\t\"./en-in.js\": 703,\n\t\"./en-nz\": 704,\n\t\"./en-nz.js\": 704,\n\t\"./en-sg\": 705,\n\t\"./en-sg.js\": 705,\n\t\"./eo\": 706,\n\t\"./eo.js\": 706,\n\t\"./es\": 707,\n\t\"./es-do\": 708,\n\t\"./es-do.js\": 708,\n\t\"./es-mx\": 709,\n\t\"./es-mx.js\": 709,\n\t\"./es-us\": 710,\n\t\"./es-us.js\": 710,\n\t\"./es.js\": 707,\n\t\"./et\": 711,\n\t\"./et.js\": 711,\n\t\"./eu\": 712,\n\t\"./eu.js\": 712,\n\t\"./fa\": 713,\n\t\"./fa.js\": 713,\n\t\"./fi\": 714,\n\t\"./fi.js\": 714,\n\t\"./fil\": 715,\n\t\"./fil.js\": 715,\n\t\"./fo\": 716,\n\t\"./fo.js\": 716,\n\t\"./fr\": 717,\n\t\"./fr-ca\": 718,\n\t\"./fr-ca.js\": 718,\n\t\"./fr-ch\": 719,\n\t\"./fr-ch.js\": 719,\n\t\"./fr.js\": 717,\n\t\"./fy\": 720,\n\t\"./fy.js\": 720,\n\t\"./ga\": 721,\n\t\"./ga.js\": 721,\n\t\"./gd\": 722,\n\t\"./gd.js\": 722,\n\t\"./gl\": 723,\n\t\"./gl.js\": 723,\n\t\"./gom-deva\": 724,\n\t\"./gom-deva.js\": 724,\n\t\"./gom-latn\": 725,\n\t\"./gom-latn.js\": 725,\n\t\"./gu\": 726,\n\t\"./gu.js\": 726,\n\t\"./he\": 727,\n\t\"./he.js\": 727,\n\t\"./hi\": 728,\n\t\"./hi.js\": 728,\n\t\"./hr\": 729,\n\t\"./hr.js\": 729,\n\t\"./hu\": 730,\n\t\"./hu.js\": 730,\n\t\"./hy-am\": 731,\n\t\"./hy-am.js\": 731,\n\t\"./id\": 732,\n\t\"./id.js\": 732,\n\t\"./is\": 733,\n\t\"./is.js\": 733,\n\t\"./it\": 734,\n\t\"./it-ch\": 735,\n\t\"./it-ch.js\": 735,\n\t\"./it.js\": 734,\n\t\"./ja\": 736,\n\t\"./ja.js\": 736,\n\t\"./jv\": 737,\n\t\"./jv.js\": 737,\n\t\"./ka\": 738,\n\t\"./ka.js\": 738,\n\t\"./kk\": 739,\n\t\"./kk.js\": 739,\n\t\"./km\": 740,\n\t\"./km.js\": 740,\n\t\"./kn\": 741,\n\t\"./kn.js\": 741,\n\t\"./ko\": 742,\n\t\"./ko.js\": 742,\n\t\"./ku\": 743,\n\t\"./ku-kmr\": 744,\n\t\"./ku-kmr.js\": 744,\n\t\"./ku.js\": 743,\n\t\"./ky\": 745,\n\t\"./ky.js\": 745,\n\t\"./lb\": 746,\n\t\"./lb.js\": 746,\n\t\"./lo\": 747,\n\t\"./lo.js\": 747,\n\t\"./lt\": 748,\n\t\"./lt.js\": 748,\n\t\"./lv\": 749,\n\t\"./lv.js\": 749,\n\t\"./me\": 750,\n\t\"./me.js\": 750,\n\t\"./mi\": 751,\n\t\"./mi.js\": 751,\n\t\"./mk\": 752,\n\t\"./mk.js\": 752,\n\t\"./ml\": 753,\n\t\"./ml.js\": 753,\n\t\"./mn\": 754,\n\t\"./mn.js\": 754,\n\t\"./mr\": 755,\n\t\"./mr.js\": 755,\n\t\"./ms\": 756,\n\t\"./ms-my\": 757,\n\t\"./ms-my.js\": 757,\n\t\"./ms.js\": 756,\n\t\"./mt\": 758,\n\t\"./mt.js\": 758,\n\t\"./my\": 759,\n\t\"./my.js\": 759,\n\t\"./nb\": 760,\n\t\"./nb.js\": 760,\n\t\"./ne\": 761,\n\t\"./ne.js\": 761,\n\t\"./nl\": 762,\n\t\"./nl-be\": 763,\n\t\"./nl-be.js\": 763,\n\t\"./nl.js\": 762,\n\t\"./nn\": 764,\n\t\"./nn.js\": 764,\n\t\"./oc-lnc\": 765,\n\t\"./oc-lnc.js\": 765,\n\t\"./pa-in\": 766,\n\t\"./pa-in.js\": 766,\n\t\"./pl\": 767,\n\t\"./pl.js\": 767,\n\t\"./pt\": 768,\n\t\"./pt-br\": 769,\n\t\"./pt-br.js\": 769,\n\t\"./pt.js\": 768,\n\t\"./ro\": 770,\n\t\"./ro.js\": 770,\n\t\"./ru\": 771,\n\t\"./ru.js\": 771,\n\t\"./sd\": 772,\n\t\"./sd.js\": 772,\n\t\"./se\": 773,\n\t\"./se.js\": 773,\n\t\"./si\": 774,\n\t\"./si.js\": 774,\n\t\"./sk\": 775,\n\t\"./sk.js\": 775,\n\t\"./sl\": 776,\n\t\"./sl.js\": 776,\n\t\"./sq\": 777,\n\t\"./sq.js\": 777,\n\t\"./sr\": 778,\n\t\"./sr-cyrl\": 779,\n\t\"./sr-cyrl.js\": 779,\n\t\"./sr.js\": 778,\n\t\"./ss\": 780,\n\t\"./ss.js\": 780,\n\t\"./sv\": 781,\n\t\"./sv.js\": 781,\n\t\"./sw\": 782,\n\t\"./sw.js\": 782,\n\t\"./ta\": 783,\n\t\"./ta.js\": 783,\n\t\"./te\": 784,\n\t\"./te.js\": 784,\n\t\"./tet\": 785,\n\t\"./tet.js\": 785,\n\t\"./tg\": 786,\n\t\"./tg.js\": 786,\n\t\"./th\": 787,\n\t\"./th.js\": 787,\n\t\"./tk\": 788,\n\t\"./tk.js\": 788,\n\t\"./tl-ph\": 789,\n\t\"./tl-ph.js\": 789,\n\t\"./tlh\": 790,\n\t\"./tlh.js\": 790,\n\t\"./tr\": 791,\n\t\"./tr.js\": 791,\n\t\"./tzl\": 792,\n\t\"./tzl.js\": 792,\n\t\"./tzm\": 793,\n\t\"./tzm-latn\": 794,\n\t\"./tzm-latn.js\": 794,\n\t\"./tzm.js\": 793,\n\t\"./ug-cn\": 795,\n\t\"./ug-cn.js\": 795,\n\t\"./uk\": 796,\n\t\"./uk.js\": 796,\n\t\"./ur\": 797,\n\t\"./ur.js\": 797,\n\t\"./uz\": 798,\n\t\"./uz-latn\": 799,\n\t\"./uz-latn.js\": 799,\n\t\"./uz.js\": 798,\n\t\"./vi\": 800,\n\t\"./vi.js\": 800,\n\t\"./x-pseudo\": 801,\n\t\"./x-pseudo.js\": 801,\n\t\"./yo\": 802,\n\t\"./yo.js\": 802,\n\t\"./zh-cn\": 803,\n\t\"./zh-cn.js\": 803,\n\t\"./zh-hk\": 804,\n\t\"./zh-hk.js\": 804,\n\t\"./zh-mo\": 805,\n\t\"./zh-mo.js\": 805,\n\t\"./zh-tw\": 806,\n\t\"./zh-tw.js\": 806\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 1235;","module.exports = \"
\\r\\n

Attention: Your session will expire in {{millisecondsLeft | async | millisecondsConverter}}, after which you will be logged off.

\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./timeout-warning.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.attention {\\n color: #F44336;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\\r\\n\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../node_modules/css-loader/index.js!../node_modules/resolve-url-loader/index.js!../node_modules/sass-loader/lib/loader.js??ref--6-3!./app.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","var escape = require(\"../node_modules/css-loader/lib/url/escape.js\");\nexports = module.exports = require(\"../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\nexports.i(require(\"-!../node_modules/css-loader/index.js!@okta/okta-signin-widget/dist/css/okta-sign-in.min.css\"), \"\");\nexports.i(require(\"-!../node_modules/css-loader/index.js!@covance/cvd3/dist/cv.d3.css\"), \"\");\nexports.i(require(\"-!../node_modules/css-loader/index.js!@angular-mdl/popover/popover.css\"), \"\");\nexports.i(require(\"-!../node_modules/css-loader/index.js!@angular-mdl/select/select.css\"), \"\");\nexports.i(require(\"-!../node_modules/css-loader/index.js!quill/dist/quill.core.css\"), \"\");\nexports.i(require(\"-!../node_modules/css-loader/index.js!quill/dist/quill.snow.css\"), \"\");\nexports.i(require(\"-!../node_modules/css-loader/index.js!quill/dist/quill.bubble.css\"), \"\");\n\n// module\nexports.push([module.id, \"@charset \\\"UTF-8\\\";\\n\\n/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Material Design Lite */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Typography */\\n\\n/* Shadows */\\n\\n/* Animations */\\n\\n/* Dialog */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/*\\n * What follows is the result of much research on cross-browser styling.\\n * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal,\\n * Kroc Camen, and the H5BP dev community and team.\\n */\\n\\n/* ==========================================================================\\n Base styles: opinionated defaults\\n ========================================================================== */\\n\\nhtml {\\n color: rgba(0,0,0, 0.87);\\n font-size: 1em;\\n line-height: 1.4;\\n}\\n\\n/*\\n * Remove text-shadow in selection highlight:\\n * https://twitter.com/miketaylr/status/12228805301\\n *\\n * These selection rule sets have to be separate.\\n * Customize the background color to match your design.\\n */\\n\\n::selection {\\n background: #b3d4fc;\\n text-shadow: none;\\n}\\n\\n/*\\n * A better looking default horizontal rule\\n */\\n\\nhr {\\n display: block;\\n height: 1px;\\n border: 0;\\n border-top: 1px solid #ccc;\\n margin: 1em 0;\\n padding: 0;\\n}\\n\\n/*\\n * Remove the gap between audio, canvas, iframes,\\n * images, videos and the bottom of their containers:\\n * https://github.com/h5bp/html5-boilerplate/issues/440\\n */\\n\\naudio,\\ncanvas,\\niframe,\\nimg,\\nsvg,\\nvideo {\\n vertical-align: middle;\\n}\\n\\n/*\\n * Remove default fieldset styles.\\n */\\n\\nfieldset {\\n border: 0;\\n margin: 0;\\n padding: 0;\\n}\\n\\n/*\\n * Allow only vertical resizing of textareas.\\n */\\n\\ntextarea {\\n resize: vertical;\\n}\\n\\n/* ==========================================================================\\n Browser Upgrade Prompt\\n ========================================================================== */\\n\\n.browserupgrade {\\n margin: 0.2em 0;\\n background: #ccc;\\n color: #000;\\n padding: 0.2em 0;\\n}\\n\\n/* ==========================================================================\\n Author's custom styles\\n ========================================================================== */\\n\\n/* ==========================================================================\\n Helper classes\\n ========================================================================== */\\n\\n/*\\n * Hide visually and from screen readers:\\n */\\n\\n.hidden {\\n display: none !important;\\n}\\n\\n/*\\n * Hide only visually, but have it available for screen readers:\\n * http://snook.ca/archives/html_and_css/hiding-content-for-accessibility\\n */\\n\\n.visuallyhidden {\\n border: 0;\\n clip: rect(0 0 0 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px;\\n}\\n\\n/*\\n * Extends the .visuallyhidden class to allow the element\\n * to be focusable when navigated to via the keyboard:\\n * https://www.drupal.org/node/897638\\n */\\n\\n.visuallyhidden.focusable:active,\\n.visuallyhidden.focusable:focus {\\n clip: auto;\\n height: auto;\\n margin: 0;\\n overflow: visible;\\n position: static;\\n width: auto;\\n}\\n\\n/*\\n * Hide visually and from screen readers, but maintain layout\\n */\\n\\n.invisible {\\n visibility: hidden;\\n}\\n\\n/*\\n * Clearfix: contain floats\\n *\\n * For modern browsers\\n * 1. The space content is one way to avoid an Opera bug when the\\n * `contenteditable` attribute is included anywhere else in the document.\\n * Otherwise it causes space to appear at the top and bottom of elements\\n * that receive the `clearfix` class.\\n * 2. The use of `table` rather than `block` is only necessary if using\\n * `:before` to contain the top-margins of child elements.\\n */\\n\\n.clearfix:before,\\n.clearfix:after {\\n content: \\\" \\\";\\n /* 1 */\\n display: table;\\n /* 2 */\\n}\\n\\n.clearfix:after {\\n clear: both;\\n}\\n\\n/* ==========================================================================\\n EXAMPLE Media Queries for Responsive Design.\\n These examples override the primary ('mobile first') styles.\\n Modify as content requires.\\n ========================================================================== */\\n\\n@media only screen and (min-width: 35em) {\\n /* Style adjustments for viewports that meet the condition */\\n}\\n\\n@media print, (min-resolution: 1.25dppx), (min-resolution: 120dpi) {\\n /* Style adjustments for high resolution devices */\\n}\\n\\n/* ==========================================================================\\n Print styles.\\n Inlined to avoid the additional HTTP request:\\n http://www.phpied.com/delay-loading-your-print-css/\\n ========================================================================== */\\n\\n@media print {\\n *,\\n *:before,\\n *:after,\\n *:first-letter {\\n background: transparent !important;\\n color: #000 !important;\\n /* Black prints faster: http://www.sanbeiji.com/archives/953 */\\n box-shadow: none !important;\\n }\\n\\n a,\\n a:visited {\\n text-decoration: underline;\\n }\\n\\n a[href]:after {\\n content: \\\" (\\\" attr(href) \\\")\\\";\\n }\\n\\n abbr[title]:after {\\n content: \\\" (\\\" attr(title) \\\")\\\";\\n }\\n\\n /*\\n * Don't show links that are fragment identifiers,\\n * or use the `javascript:` pseudo protocol\\n */\\n\\n a[href^=\\\"#\\\"]:after,\\n a[href^=\\\"javascript:\\\"]:after {\\n content: \\\"\\\";\\n }\\n\\n pre,\\n blockquote {\\n border: 1px solid #999;\\n page-break-inside: avoid;\\n }\\n\\n /*\\n * Printing Tables:\\n * http://css-discuss.incutio.com/wiki/Printing_Tables\\n */\\n\\n thead {\\n display: table-header-group;\\n }\\n\\n tr,\\n img {\\n page-break-inside: avoid;\\n }\\n\\n img {\\n max-width: 100% !important;\\n }\\n\\n p,\\n h2,\\n h3 {\\n orphans: 3;\\n widows: 3;\\n }\\n\\n h2,\\n h3 {\\n page-break-after: avoid;\\n }\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Remove the unwanted box around FAB buttons */\\n\\n/* More info: http://goo.gl/IPwKi */\\n\\na,\\n.mdl-accordion,\\n.mdl-button,\\n.mdl-card,\\n.mdl-checkbox,\\n.mdl-dropdown-menu,\\n.mdl-icon-toggle,\\n.mdl-item,\\n.mdl-radio,\\n.mdl-slider,\\n.mdl-switch,\\n.mdl-tabs__tab {\\n -webkit-tap-highlight-color: transparent;\\n -webkit-tap-highlight-color: rgba(255, 255, 255, 0);\\n}\\n\\n/*\\n * Make html take up the entire screen\\n * Then set touch-action to avoid touch delay on mobile IE\\n */\\n\\nhtml {\\n width: 100%;\\n height: 100%;\\n -ms-touch-action: manipulation;\\n touch-action: manipulation;\\n}\\n\\n/*\\n* Make body take up the entire screen\\n* Remove body margin so layout containers don't cause extra overflow.\\n*/\\n\\nbody {\\n width: 100%;\\n min-height: 100%;\\n margin: 0;\\n}\\n\\n/*\\n * Main display reset for IE support.\\n * Source: http://weblog.west-wind.com/posts/2015/Jan/12/main-HTML5-Tag-not-working-in-Internet-Explorer-91011\\n */\\n\\nmain {\\n display: block;\\n}\\n\\n/*\\n* Apply no display to elements with the hidden attribute.\\n* IE 9 and 10 support.\\n*/\\n\\n*[hidden] {\\n display: none !important;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Typography */\\n\\n/* Shadows */\\n\\n/* Animations */\\n\\n/* Dialog */\\n\\nhtml,\\nbody {\\n font-family: \\\"Helvetica\\\", \\\"Arial\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 400;\\n line-height: 20px;\\n}\\n\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6,\\np {\\n margin: 0;\\n padding: 0;\\n}\\n\\n/**\\n* Styles for HTML elements\\n*/\\n\\nh1 small,\\nh2 small,\\nh3 small,\\nh4 small,\\nh5 small,\\nh6 small {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 56px;\\n font-weight: 400;\\n line-height: 1.35;\\n letter-spacing: -0.02em;\\n opacity: 0.54;\\n font-size: 0.6em;\\n}\\n\\nh1 {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 56px;\\n font-weight: 400;\\n line-height: 1.35;\\n letter-spacing: -0.02em;\\n margin-top: 24px;\\n margin-bottom: 24px;\\n}\\n\\nh2 {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 45px;\\n font-weight: 400;\\n line-height: 48px;\\n margin-top: 24px;\\n margin-bottom: 24px;\\n}\\n\\nh3 {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 34px;\\n font-weight: 400;\\n line-height: 40px;\\n margin-top: 24px;\\n margin-bottom: 24px;\\n}\\n\\nh4 {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 24px;\\n font-weight: 400;\\n line-height: 32px;\\n -moz-osx-font-smoothing: grayscale;\\n margin-top: 24px;\\n margin-bottom: 16px;\\n}\\n\\nh5 {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 20px;\\n font-weight: 500;\\n line-height: 1;\\n letter-spacing: 0.02em;\\n margin-top: 24px;\\n margin-bottom: 16px;\\n}\\n\\nh6 {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 16px;\\n font-weight: 400;\\n line-height: 24px;\\n letter-spacing: 0.04em;\\n margin-top: 24px;\\n margin-bottom: 16px;\\n}\\n\\np {\\n font-size: 14px;\\n font-weight: 400;\\n line-height: 24px;\\n letter-spacing: 0;\\n margin-bottom: 16px;\\n}\\n\\na {\\n color: rgb(0, 128, 175);\\n font-weight: 500;\\n}\\n\\nblockquote {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n position: relative;\\n font-size: 24px;\\n font-weight: 300;\\n font-style: italic;\\n line-height: 1.35;\\n letter-spacing: 0.08em;\\n}\\n\\nblockquote:before {\\n position: absolute;\\n left: -0.5em;\\n content: \\\"\\\\201C\\\";\\n}\\n\\nblockquote:after {\\n content: \\\"\\\\201D\\\";\\n margin-left: -0.05em;\\n}\\n\\nmark {\\n background-color: #f4ff81;\\n}\\n\\ndt {\\n font-weight: 700;\\n}\\n\\naddress {\\n font-size: 12px;\\n font-weight: 400;\\n line-height: 1;\\n letter-spacing: 0;\\n font-style: normal;\\n}\\n\\nul,\\nol {\\n font-size: 14px;\\n font-weight: 400;\\n line-height: 24px;\\n letter-spacing: 0;\\n}\\n\\n/**\\n * Class Name Styles\\n */\\n\\n.mdl-typography--display-4 {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 112px;\\n font-weight: 300;\\n line-height: 1;\\n letter-spacing: -0.04em;\\n}\\n\\n.mdl-typography--display-4-color-contrast {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 112px;\\n font-weight: 300;\\n line-height: 1;\\n letter-spacing: -0.04em;\\n opacity: 0.54;\\n}\\n\\n.mdl-typography--display-3 {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 56px;\\n font-weight: 400;\\n line-height: 1.35;\\n letter-spacing: -0.02em;\\n}\\n\\n.mdl-typography--display-3-color-contrast {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 56px;\\n font-weight: 400;\\n line-height: 1.35;\\n letter-spacing: -0.02em;\\n opacity: 0.54;\\n}\\n\\n.mdl-typography--display-2 {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 45px;\\n font-weight: 400;\\n line-height: 48px;\\n}\\n\\n.mdl-typography--display-2-color-contrast {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 45px;\\n font-weight: 400;\\n line-height: 48px;\\n opacity: 0.54;\\n}\\n\\n.mdl-typography--display-1 {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 34px;\\n font-weight: 400;\\n line-height: 40px;\\n}\\n\\n.mdl-typography--display-1-color-contrast {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 34px;\\n font-weight: 400;\\n line-height: 40px;\\n opacity: 0.54;\\n}\\n\\n.mdl-typography--headline {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 24px;\\n font-weight: 400;\\n line-height: 32px;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.mdl-typography--headline-color-contrast {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 24px;\\n font-weight: 400;\\n line-height: 32px;\\n -moz-osx-font-smoothing: grayscale;\\n opacity: 0.87;\\n}\\n\\n.mdl-typography--title {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 20px;\\n font-weight: 500;\\n line-height: 1;\\n letter-spacing: 0.02em;\\n}\\n\\n.mdl-typography--title-color-contrast {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 20px;\\n font-weight: 500;\\n line-height: 1;\\n letter-spacing: 0.02em;\\n opacity: 0.87;\\n}\\n\\n.mdl-typography--subhead {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 16px;\\n font-weight: 400;\\n line-height: 24px;\\n letter-spacing: 0.04em;\\n}\\n\\n.mdl-typography--subhead-color-contrast {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 16px;\\n font-weight: 400;\\n line-height: 24px;\\n letter-spacing: 0.04em;\\n opacity: 0.87;\\n}\\n\\n.mdl-typography--body-2 {\\n font-size: 14px;\\n font-weight: bold;\\n line-height: 24px;\\n letter-spacing: 0;\\n}\\n\\n.mdl-typography--body-2-color-contrast {\\n font-size: 14px;\\n font-weight: bold;\\n line-height: 24px;\\n letter-spacing: 0;\\n opacity: 0.87;\\n}\\n\\n.mdl-typography--body-1 {\\n font-size: 14px;\\n font-weight: 400;\\n line-height: 24px;\\n letter-spacing: 0;\\n}\\n\\n.mdl-typography--body-1-color-contrast {\\n font-size: 14px;\\n font-weight: 400;\\n line-height: 24px;\\n letter-spacing: 0;\\n opacity: 0.87;\\n}\\n\\n.mdl-typography--body-2-force-preferred-font {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n line-height: 24px;\\n letter-spacing: 0;\\n}\\n\\n.mdl-typography--body-2-force-preferred-font-color-contrast {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n line-height: 24px;\\n letter-spacing: 0;\\n opacity: 0.87;\\n}\\n\\n.mdl-typography--body-1-force-preferred-font {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 400;\\n line-height: 24px;\\n letter-spacing: 0;\\n}\\n\\n.mdl-typography--body-1-force-preferred-font-color-contrast {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 400;\\n line-height: 24px;\\n letter-spacing: 0;\\n opacity: 0.87;\\n}\\n\\n.mdl-typography--caption {\\n font-size: 12px;\\n font-weight: 400;\\n line-height: 1;\\n letter-spacing: 0;\\n}\\n\\n.mdl-typography--caption-force-preferred-font {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n font-weight: 400;\\n line-height: 1;\\n letter-spacing: 0;\\n}\\n\\n.mdl-typography--caption-color-contrast {\\n font-size: 12px;\\n font-weight: 400;\\n line-height: 1;\\n letter-spacing: 0;\\n opacity: 0.54;\\n}\\n\\n.mdl-typography--caption-force-preferred-font-color-contrast {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n font-weight: 400;\\n line-height: 1;\\n letter-spacing: 0;\\n opacity: 0.54;\\n}\\n\\n.mdl-typography--menu {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n line-height: 1;\\n letter-spacing: 0;\\n}\\n\\n.mdl-typography--menu-color-contrast {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n line-height: 1;\\n letter-spacing: 0;\\n opacity: 0.87;\\n}\\n\\n.mdl-typography--button {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n text-transform: uppercase;\\n line-height: 1;\\n letter-spacing: 0;\\n}\\n\\n.mdl-typography--button-color-contrast {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n text-transform: uppercase;\\n line-height: 1;\\n letter-spacing: 0;\\n opacity: 0.87;\\n}\\n\\n.mdl-typography--text-left {\\n text-align: left;\\n}\\n\\n.mdl-typography--text-right {\\n text-align: right;\\n}\\n\\n.mdl-typography--text-center {\\n text-align: center;\\n}\\n\\n.mdl-typography--text-justify {\\n text-align: justify;\\n}\\n\\n.mdl-typography--text-nowrap {\\n white-space: nowrap;\\n}\\n\\n.mdl-typography--text-lowercase {\\n text-transform: lowercase;\\n}\\n\\n.mdl-typography--text-uppercase {\\n text-transform: uppercase;\\n}\\n\\n.mdl-typography--text-capitalize {\\n text-transform: capitalize;\\n}\\n\\n.mdl-typography--font-thin {\\n font-weight: 200 !important;\\n}\\n\\n.mdl-typography--font-light {\\n font-weight: 300 !important;\\n}\\n\\n.mdl-typography--font-regular {\\n font-weight: 400 !important;\\n}\\n\\n.mdl-typography--font-medium {\\n font-weight: 500 !important;\\n}\\n\\n.mdl-typography--font-bold {\\n font-weight: 700 !important;\\n}\\n\\n.mdl-typography--font-black {\\n font-weight: 900 !important;\\n}\\n\\n.material-icons {\\n font-family: \\\"Material Icons\\\";\\n font-weight: normal;\\n font-style: normal;\\n font-size: 24px;\\n line-height: 1;\\n letter-spacing: normal;\\n text-transform: none;\\n display: inline-block;\\n word-wrap: normal;\\n font-feature-settings: \\\"liga\\\";\\n -webkit-font-feature-settings: \\\"liga\\\";\\n -webkit-font-smoothing: antialiased;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n.mdl-color-text--red {\\n color: rgb(244,67,54) !important;\\n}\\n\\n.mdl-color--red {\\n background-color: rgb(244,67,54) !important;\\n}\\n\\n.mdl-color-text--red-50 {\\n color: rgb(255,235,238) !important;\\n}\\n\\n.mdl-color--red-50 {\\n background-color: rgb(255,235,238) !important;\\n}\\n\\n.mdl-color-text--red-100 {\\n color: rgb(255,205,210) !important;\\n}\\n\\n.mdl-color--red-100 {\\n background-color: rgb(255,205,210) !important;\\n}\\n\\n.mdl-color-text--red-200 {\\n color: rgb(239,154,154) !important;\\n}\\n\\n.mdl-color--red-200 {\\n background-color: rgb(239,154,154) !important;\\n}\\n\\n.mdl-color-text--red-300 {\\n color: rgb(229,115,115) !important;\\n}\\n\\n.mdl-color--red-300 {\\n background-color: rgb(229,115,115) !important;\\n}\\n\\n.mdl-color-text--red-400 {\\n color: rgb(239,83,80) !important;\\n}\\n\\n.mdl-color--red-400 {\\n background-color: rgb(239,83,80) !important;\\n}\\n\\n.mdl-color-text--red-500 {\\n color: rgb(244,67,54) !important;\\n}\\n\\n.mdl-color--red-500 {\\n background-color: rgb(244,67,54) !important;\\n}\\n\\n.mdl-color-text--red-600 {\\n color: rgb(229,57,53) !important;\\n}\\n\\n.mdl-color--red-600 {\\n background-color: rgb(229,57,53) !important;\\n}\\n\\n.mdl-color-text--red-700 {\\n color: rgb(211,47,47) !important;\\n}\\n\\n.mdl-color--red-700 {\\n background-color: rgb(211,47,47) !important;\\n}\\n\\n.mdl-color-text--red-800 {\\n color: rgb(198,40,40) !important;\\n}\\n\\n.mdl-color--red-800 {\\n background-color: rgb(198,40,40) !important;\\n}\\n\\n.mdl-color-text--red-900 {\\n color: rgb(183,28,28) !important;\\n}\\n\\n.mdl-color--red-900 {\\n background-color: rgb(183,28,28) !important;\\n}\\n\\n.mdl-color-text--red-A100 {\\n color: rgb(255,138,128) !important;\\n}\\n\\n.mdl-color--red-A100 {\\n background-color: rgb(255,138,128) !important;\\n}\\n\\n.mdl-color-text--red-A200 {\\n color: rgb(255,82,82) !important;\\n}\\n\\n.mdl-color--red-A200 {\\n background-color: rgb(255,82,82) !important;\\n}\\n\\n.mdl-color-text--red-A400 {\\n color: rgb(255,23,68) !important;\\n}\\n\\n.mdl-color--red-A400 {\\n background-color: rgb(255,23,68) !important;\\n}\\n\\n.mdl-color-text--red-A700 {\\n color: rgb(213,0,0) !important;\\n}\\n\\n.mdl-color--red-A700 {\\n background-color: rgb(213,0,0) !important;\\n}\\n\\n.mdl-color-text--pink {\\n color: rgb(233,30,99) !important;\\n}\\n\\n.mdl-color--pink {\\n background-color: rgb(233,30,99) !important;\\n}\\n\\n.mdl-color-text--pink-50 {\\n color: rgb(252,228,236) !important;\\n}\\n\\n.mdl-color--pink-50 {\\n background-color: rgb(252,228,236) !important;\\n}\\n\\n.mdl-color-text--pink-100 {\\n color: rgb(248,187,208) !important;\\n}\\n\\n.mdl-color--pink-100 {\\n background-color: rgb(248,187,208) !important;\\n}\\n\\n.mdl-color-text--pink-200 {\\n color: rgb(244,143,177) !important;\\n}\\n\\n.mdl-color--pink-200 {\\n background-color: rgb(244,143,177) !important;\\n}\\n\\n.mdl-color-text--pink-300 {\\n color: rgb(240,98,146) !important;\\n}\\n\\n.mdl-color--pink-300 {\\n background-color: rgb(240,98,146) !important;\\n}\\n\\n.mdl-color-text--pink-400 {\\n color: rgb(236,64,122) !important;\\n}\\n\\n.mdl-color--pink-400 {\\n background-color: rgb(236,64,122) !important;\\n}\\n\\n.mdl-color-text--pink-500 {\\n color: rgb(233,30,99) !important;\\n}\\n\\n.mdl-color--pink-500 {\\n background-color: rgb(233,30,99) !important;\\n}\\n\\n.mdl-color-text--pink-600 {\\n color: rgb(216,27,96) !important;\\n}\\n\\n.mdl-color--pink-600 {\\n background-color: rgb(216,27,96) !important;\\n}\\n\\n.mdl-color-text--pink-700 {\\n color: rgb(194,24,91) !important;\\n}\\n\\n.mdl-color--pink-700 {\\n background-color: rgb(194,24,91) !important;\\n}\\n\\n.mdl-color-text--pink-800 {\\n color: rgb(173,20,87) !important;\\n}\\n\\n.mdl-color--pink-800 {\\n background-color: rgb(173,20,87) !important;\\n}\\n\\n.mdl-color-text--pink-900 {\\n color: rgb(136,14,79) !important;\\n}\\n\\n.mdl-color--pink-900 {\\n background-color: rgb(136,14,79) !important;\\n}\\n\\n.mdl-color-text--pink-A100 {\\n color: rgb(255,128,171) !important;\\n}\\n\\n.mdl-color--pink-A100 {\\n background-color: rgb(255,128,171) !important;\\n}\\n\\n.mdl-color-text--pink-A200 {\\n color: rgb(255,64,129) !important;\\n}\\n\\n.mdl-color--pink-A200 {\\n background-color: rgb(255,64,129) !important;\\n}\\n\\n.mdl-color-text--pink-A400 {\\n color: rgb(245,0,87) !important;\\n}\\n\\n.mdl-color--pink-A400 {\\n background-color: rgb(245,0,87) !important;\\n}\\n\\n.mdl-color-text--pink-A700 {\\n color: rgb(197,17,98) !important;\\n}\\n\\n.mdl-color--pink-A700 {\\n background-color: rgb(197,17,98) !important;\\n}\\n\\n.mdl-color-text--purple {\\n color: rgb(156,39,176) !important;\\n}\\n\\n.mdl-color--purple {\\n background-color: rgb(156,39,176) !important;\\n}\\n\\n.mdl-color-text--purple-50 {\\n color: rgb(243,229,245) !important;\\n}\\n\\n.mdl-color--purple-50 {\\n background-color: rgb(243,229,245) !important;\\n}\\n\\n.mdl-color-text--purple-100 {\\n color: rgb(225,190,231) !important;\\n}\\n\\n.mdl-color--purple-100 {\\n background-color: rgb(225,190,231) !important;\\n}\\n\\n.mdl-color-text--purple-200 {\\n color: rgb(206,147,216) !important;\\n}\\n\\n.mdl-color--purple-200 {\\n background-color: rgb(206,147,216) !important;\\n}\\n\\n.mdl-color-text--purple-300 {\\n color: rgb(186,104,200) !important;\\n}\\n\\n.mdl-color--purple-300 {\\n background-color: rgb(186,104,200) !important;\\n}\\n\\n.mdl-color-text--purple-400 {\\n color: rgb(171,71,188) !important;\\n}\\n\\n.mdl-color--purple-400 {\\n background-color: rgb(171,71,188) !important;\\n}\\n\\n.mdl-color-text--purple-500 {\\n color: rgb(156,39,176) !important;\\n}\\n\\n.mdl-color--purple-500 {\\n background-color: rgb(156,39,176) !important;\\n}\\n\\n.mdl-color-text--purple-600 {\\n color: rgb(142,36,170) !important;\\n}\\n\\n.mdl-color--purple-600 {\\n background-color: rgb(142,36,170) !important;\\n}\\n\\n.mdl-color-text--purple-700 {\\n color: rgb(123,31,162) !important;\\n}\\n\\n.mdl-color--purple-700 {\\n background-color: rgb(123,31,162) !important;\\n}\\n\\n.mdl-color-text--purple-800 {\\n color: rgb(106,27,154) !important;\\n}\\n\\n.mdl-color--purple-800 {\\n background-color: rgb(106,27,154) !important;\\n}\\n\\n.mdl-color-text--purple-900 {\\n color: rgb(74,20,140) !important;\\n}\\n\\n.mdl-color--purple-900 {\\n background-color: rgb(74,20,140) !important;\\n}\\n\\n.mdl-color-text--purple-A100 {\\n color: rgb(234,128,252) !important;\\n}\\n\\n.mdl-color--purple-A100 {\\n background-color: rgb(234,128,252) !important;\\n}\\n\\n.mdl-color-text--purple-A200 {\\n color: rgb(224,64,251) !important;\\n}\\n\\n.mdl-color--purple-A200 {\\n background-color: rgb(224,64,251) !important;\\n}\\n\\n.mdl-color-text--purple-A400 {\\n color: rgb(213,0,249) !important;\\n}\\n\\n.mdl-color--purple-A400 {\\n background-color: rgb(213,0,249) !important;\\n}\\n\\n.mdl-color-text--purple-A700 {\\n color: rgb(170,0,255) !important;\\n}\\n\\n.mdl-color--purple-A700 {\\n background-color: rgb(170,0,255) !important;\\n}\\n\\n.mdl-color-text--deep-purple {\\n color: rgb(103,58,183) !important;\\n}\\n\\n.mdl-color--deep-purple {\\n background-color: rgb(103,58,183) !important;\\n}\\n\\n.mdl-color-text--deep-purple-50 {\\n color: rgb(237,231,246) !important;\\n}\\n\\n.mdl-color--deep-purple-50 {\\n background-color: rgb(237,231,246) !important;\\n}\\n\\n.mdl-color-text--deep-purple-100 {\\n color: rgb(209,196,233) !important;\\n}\\n\\n.mdl-color--deep-purple-100 {\\n background-color: rgb(209,196,233) !important;\\n}\\n\\n.mdl-color-text--deep-purple-200 {\\n color: rgb(179,157,219) !important;\\n}\\n\\n.mdl-color--deep-purple-200 {\\n background-color: rgb(179,157,219) !important;\\n}\\n\\n.mdl-color-text--deep-purple-300 {\\n color: rgb(149,117,205) !important;\\n}\\n\\n.mdl-color--deep-purple-300 {\\n background-color: rgb(149,117,205) !important;\\n}\\n\\n.mdl-color-text--deep-purple-400 {\\n color: rgb(126,87,194) !important;\\n}\\n\\n.mdl-color--deep-purple-400 {\\n background-color: rgb(126,87,194) !important;\\n}\\n\\n.mdl-color-text--deep-purple-500 {\\n color: rgb(103,58,183) !important;\\n}\\n\\n.mdl-color--deep-purple-500 {\\n background-color: rgb(103,58,183) !important;\\n}\\n\\n.mdl-color-text--deep-purple-600 {\\n color: rgb(94,53,177) !important;\\n}\\n\\n.mdl-color--deep-purple-600 {\\n background-color: rgb(94,53,177) !important;\\n}\\n\\n.mdl-color-text--deep-purple-700 {\\n color: rgb(81,45,168) !important;\\n}\\n\\n.mdl-color--deep-purple-700 {\\n background-color: rgb(81,45,168) !important;\\n}\\n\\n.mdl-color-text--deep-purple-800 {\\n color: rgb(69,39,160) !important;\\n}\\n\\n.mdl-color--deep-purple-800 {\\n background-color: rgb(69,39,160) !important;\\n}\\n\\n.mdl-color-text--deep-purple-900 {\\n color: rgb(49,27,146) !important;\\n}\\n\\n.mdl-color--deep-purple-900 {\\n background-color: rgb(49,27,146) !important;\\n}\\n\\n.mdl-color-text--deep-purple-A100 {\\n color: rgb(179,136,255) !important;\\n}\\n\\n.mdl-color--deep-purple-A100 {\\n background-color: rgb(179,136,255) !important;\\n}\\n\\n.mdl-color-text--deep-purple-A200 {\\n color: rgb(124,77,255) !important;\\n}\\n\\n.mdl-color--deep-purple-A200 {\\n background-color: rgb(124,77,255) !important;\\n}\\n\\n.mdl-color-text--deep-purple-A400 {\\n color: rgb(101,31,255) !important;\\n}\\n\\n.mdl-color--deep-purple-A400 {\\n background-color: rgb(101,31,255) !important;\\n}\\n\\n.mdl-color-text--deep-purple-A700 {\\n color: rgb(98,0,234) !important;\\n}\\n\\n.mdl-color--deep-purple-A700 {\\n background-color: rgb(98,0,234) !important;\\n}\\n\\n.mdl-color-text--indigo {\\n color: rgb(63,81,181) !important;\\n}\\n\\n.mdl-color--indigo {\\n background-color: rgb(63,81,181) !important;\\n}\\n\\n.mdl-color-text--indigo-50 {\\n color: rgb(232,234,246) !important;\\n}\\n\\n.mdl-color--indigo-50 {\\n background-color: rgb(232,234,246) !important;\\n}\\n\\n.mdl-color-text--indigo-100 {\\n color: rgb(197,202,233) !important;\\n}\\n\\n.mdl-color--indigo-100 {\\n background-color: rgb(197,202,233) !important;\\n}\\n\\n.mdl-color-text--indigo-200 {\\n color: rgb(159,168,218) !important;\\n}\\n\\n.mdl-color--indigo-200 {\\n background-color: rgb(159,168,218) !important;\\n}\\n\\n.mdl-color-text--indigo-300 {\\n color: rgb(121,134,203) !important;\\n}\\n\\n.mdl-color--indigo-300 {\\n background-color: rgb(121,134,203) !important;\\n}\\n\\n.mdl-color-text--indigo-400 {\\n color: rgb(92,107,192) !important;\\n}\\n\\n.mdl-color--indigo-400 {\\n background-color: rgb(92,107,192) !important;\\n}\\n\\n.mdl-color-text--indigo-500 {\\n color: rgb(63,81,181) !important;\\n}\\n\\n.mdl-color--indigo-500 {\\n background-color: rgb(63,81,181) !important;\\n}\\n\\n.mdl-color-text--indigo-600 {\\n color: rgb(57,73,171) !important;\\n}\\n\\n.mdl-color--indigo-600 {\\n background-color: rgb(57,73,171) !important;\\n}\\n\\n.mdl-color-text--indigo-700 {\\n color: rgb(48,63,159) !important;\\n}\\n\\n.mdl-color--indigo-700 {\\n background-color: rgb(48,63,159) !important;\\n}\\n\\n.mdl-color-text--indigo-800 {\\n color: rgb(40,53,147) !important;\\n}\\n\\n.mdl-color--indigo-800 {\\n background-color: rgb(40,53,147) !important;\\n}\\n\\n.mdl-color-text--indigo-900 {\\n color: rgb(26,35,126) !important;\\n}\\n\\n.mdl-color--indigo-900 {\\n background-color: rgb(26,35,126) !important;\\n}\\n\\n.mdl-color-text--indigo-A100 {\\n color: rgb(140,158,255) !important;\\n}\\n\\n.mdl-color--indigo-A100 {\\n background-color: rgb(140,158,255) !important;\\n}\\n\\n.mdl-color-text--indigo-A200 {\\n color: rgb(83,109,254) !important;\\n}\\n\\n.mdl-color--indigo-A200 {\\n background-color: rgb(83,109,254) !important;\\n}\\n\\n.mdl-color-text--indigo-A400 {\\n color: rgb(61,90,254) !important;\\n}\\n\\n.mdl-color--indigo-A400 {\\n background-color: rgb(61,90,254) !important;\\n}\\n\\n.mdl-color-text--indigo-A700 {\\n color: rgb(48,79,254) !important;\\n}\\n\\n.mdl-color--indigo-A700 {\\n background-color: rgb(48,79,254) !important;\\n}\\n\\n.mdl-color-text--blue {\\n color: rgb(33,150,243) !important;\\n}\\n\\n.mdl-color--blue {\\n background-color: rgb(33,150,243) !important;\\n}\\n\\n.mdl-color-text--blue-50 {\\n color: rgb(227,242,253) !important;\\n}\\n\\n.mdl-color--blue-50 {\\n background-color: rgb(227,242,253) !important;\\n}\\n\\n.mdl-color-text--blue-100 {\\n color: rgb(187,222,251) !important;\\n}\\n\\n.mdl-color--blue-100 {\\n background-color: rgb(187,222,251) !important;\\n}\\n\\n.mdl-color-text--blue-200 {\\n color: rgb(144,202,249) !important;\\n}\\n\\n.mdl-color--blue-200 {\\n background-color: rgb(144,202,249) !important;\\n}\\n\\n.mdl-color-text--blue-300 {\\n color: rgb(100,181,246) !important;\\n}\\n\\n.mdl-color--blue-300 {\\n background-color: rgb(100,181,246) !important;\\n}\\n\\n.mdl-color-text--blue-400 {\\n color: rgb(66,165,245) !important;\\n}\\n\\n.mdl-color--blue-400 {\\n background-color: rgb(66,165,245) !important;\\n}\\n\\n.mdl-color-text--blue-500 {\\n color: rgb(33,150,243) !important;\\n}\\n\\n.mdl-color--blue-500 {\\n background-color: rgb(33,150,243) !important;\\n}\\n\\n.mdl-color-text--blue-600 {\\n color: rgb(30,136,229) !important;\\n}\\n\\n.mdl-color--blue-600 {\\n background-color: rgb(30,136,229) !important;\\n}\\n\\n.mdl-color-text--blue-700 {\\n color: rgb(25,118,210) !important;\\n}\\n\\n.mdl-color--blue-700 {\\n background-color: rgb(25,118,210) !important;\\n}\\n\\n.mdl-color-text--blue-800 {\\n color: rgb(21,101,192) !important;\\n}\\n\\n.mdl-color--blue-800 {\\n background-color: rgb(21,101,192) !important;\\n}\\n\\n.mdl-color-text--blue-900 {\\n color: rgb(13,71,161) !important;\\n}\\n\\n.mdl-color--blue-900 {\\n background-color: rgb(13,71,161) !important;\\n}\\n\\n.mdl-color-text--blue-A100 {\\n color: rgb(130,177,255) !important;\\n}\\n\\n.mdl-color--blue-A100 {\\n background-color: rgb(130,177,255) !important;\\n}\\n\\n.mdl-color-text--blue-A200 {\\n color: rgb(68,138,255) !important;\\n}\\n\\n.mdl-color--blue-A200 {\\n background-color: rgb(68,138,255) !important;\\n}\\n\\n.mdl-color-text--blue-A400 {\\n color: rgb(41,121,255) !important;\\n}\\n\\n.mdl-color--blue-A400 {\\n background-color: rgb(41,121,255) !important;\\n}\\n\\n.mdl-color-text--blue-A700 {\\n color: rgb(41,98,255) !important;\\n}\\n\\n.mdl-color--blue-A700 {\\n background-color: rgb(41,98,255) !important;\\n}\\n\\n.mdl-color-text--light-blue {\\n color: rgb(3,169,244) !important;\\n}\\n\\n.mdl-color--light-blue {\\n background-color: rgb(3,169,244) !important;\\n}\\n\\n.mdl-color-text--light-blue-50 {\\n color: rgb(225,245,254) !important;\\n}\\n\\n.mdl-color--light-blue-50 {\\n background-color: rgb(225,245,254) !important;\\n}\\n\\n.mdl-color-text--light-blue-100 {\\n color: rgb(179,229,252) !important;\\n}\\n\\n.mdl-color--light-blue-100 {\\n background-color: rgb(179,229,252) !important;\\n}\\n\\n.mdl-color-text--light-blue-200 {\\n color: rgb(129,212,250) !important;\\n}\\n\\n.mdl-color--light-blue-200 {\\n background-color: rgb(129,212,250) !important;\\n}\\n\\n.mdl-color-text--light-blue-300 {\\n color: rgb(79,195,247) !important;\\n}\\n\\n.mdl-color--light-blue-300 {\\n background-color: rgb(79,195,247) !important;\\n}\\n\\n.mdl-color-text--light-blue-400 {\\n color: rgb(41,182,246) !important;\\n}\\n\\n.mdl-color--light-blue-400 {\\n background-color: rgb(41,182,246) !important;\\n}\\n\\n.mdl-color-text--light-blue-500 {\\n color: rgb(3,169,244) !important;\\n}\\n\\n.mdl-color--light-blue-500 {\\n background-color: rgb(3,169,244) !important;\\n}\\n\\n.mdl-color-text--light-blue-600 {\\n color: rgb(3,155,229) !important;\\n}\\n\\n.mdl-color--light-blue-600 {\\n background-color: rgb(3,155,229) !important;\\n}\\n\\n.mdl-color-text--light-blue-700 {\\n color: rgb(2,136,209) !important;\\n}\\n\\n.mdl-color--light-blue-700 {\\n background-color: rgb(2,136,209) !important;\\n}\\n\\n.mdl-color-text--light-blue-800 {\\n color: rgb(2,119,189) !important;\\n}\\n\\n.mdl-color--light-blue-800 {\\n background-color: rgb(2,119,189) !important;\\n}\\n\\n.mdl-color-text--light-blue-900 {\\n color: rgb(1,87,155) !important;\\n}\\n\\n.mdl-color--light-blue-900 {\\n background-color: rgb(1,87,155) !important;\\n}\\n\\n.mdl-color-text--light-blue-A100 {\\n color: rgb(128,216,255) !important;\\n}\\n\\n.mdl-color--light-blue-A100 {\\n background-color: rgb(128,216,255) !important;\\n}\\n\\n.mdl-color-text--light-blue-A200 {\\n color: rgb(64,196,255) !important;\\n}\\n\\n.mdl-color--light-blue-A200 {\\n background-color: rgb(64,196,255) !important;\\n}\\n\\n.mdl-color-text--light-blue-A400 {\\n color: rgb(0,176,255) !important;\\n}\\n\\n.mdl-color--light-blue-A400 {\\n background-color: rgb(0,176,255) !important;\\n}\\n\\n.mdl-color-text--light-blue-A700 {\\n color: rgb(0,145,234) !important;\\n}\\n\\n.mdl-color--light-blue-A700 {\\n background-color: rgb(0,145,234) !important;\\n}\\n\\n.mdl-color-text--cyan {\\n color: rgb(0,188,212) !important;\\n}\\n\\n.mdl-color--cyan {\\n background-color: rgb(0,188,212) !important;\\n}\\n\\n.mdl-color-text--cyan-50 {\\n color: rgb(224,247,250) !important;\\n}\\n\\n.mdl-color--cyan-50 {\\n background-color: rgb(224,247,250) !important;\\n}\\n\\n.mdl-color-text--cyan-100 {\\n color: rgb(178,235,242) !important;\\n}\\n\\n.mdl-color--cyan-100 {\\n background-color: rgb(178,235,242) !important;\\n}\\n\\n.mdl-color-text--cyan-200 {\\n color: rgb(128,222,234) !important;\\n}\\n\\n.mdl-color--cyan-200 {\\n background-color: rgb(128,222,234) !important;\\n}\\n\\n.mdl-color-text--cyan-300 {\\n color: rgb(77,208,225) !important;\\n}\\n\\n.mdl-color--cyan-300 {\\n background-color: rgb(77,208,225) !important;\\n}\\n\\n.mdl-color-text--cyan-400 {\\n color: rgb(38,198,218) !important;\\n}\\n\\n.mdl-color--cyan-400 {\\n background-color: rgb(38,198,218) !important;\\n}\\n\\n.mdl-color-text--cyan-500 {\\n color: rgb(0,188,212) !important;\\n}\\n\\n.mdl-color--cyan-500 {\\n background-color: rgb(0,188,212) !important;\\n}\\n\\n.mdl-color-text--cyan-600 {\\n color: rgb(0,172,193) !important;\\n}\\n\\n.mdl-color--cyan-600 {\\n background-color: rgb(0,172,193) !important;\\n}\\n\\n.mdl-color-text--cyan-700 {\\n color: rgb(0,151,167) !important;\\n}\\n\\n.mdl-color--cyan-700 {\\n background-color: rgb(0,151,167) !important;\\n}\\n\\n.mdl-color-text--cyan-800 {\\n color: rgb(0,131,143) !important;\\n}\\n\\n.mdl-color--cyan-800 {\\n background-color: rgb(0,131,143) !important;\\n}\\n\\n.mdl-color-text--cyan-900 {\\n color: rgb(0,96,100) !important;\\n}\\n\\n.mdl-color--cyan-900 {\\n background-color: rgb(0,96,100) !important;\\n}\\n\\n.mdl-color-text--cyan-A100 {\\n color: rgb(132,255,255) !important;\\n}\\n\\n.mdl-color--cyan-A100 {\\n background-color: rgb(132,255,255) !important;\\n}\\n\\n.mdl-color-text--cyan-A200 {\\n color: rgb(24,255,255) !important;\\n}\\n\\n.mdl-color--cyan-A200 {\\n background-color: rgb(24,255,255) !important;\\n}\\n\\n.mdl-color-text--cyan-A400 {\\n color: rgb(0,229,255) !important;\\n}\\n\\n.mdl-color--cyan-A400 {\\n background-color: rgb(0,229,255) !important;\\n}\\n\\n.mdl-color-text--cyan-A700 {\\n color: rgb(0,184,212) !important;\\n}\\n\\n.mdl-color--cyan-A700 {\\n background-color: rgb(0,184,212) !important;\\n}\\n\\n.mdl-color-text--teal {\\n color: rgb(0,150,136) !important;\\n}\\n\\n.mdl-color--teal {\\n background-color: rgb(0,150,136) !important;\\n}\\n\\n.mdl-color-text--teal-50 {\\n color: rgb(224,242,241) !important;\\n}\\n\\n.mdl-color--teal-50 {\\n background-color: rgb(224,242,241) !important;\\n}\\n\\n.mdl-color-text--teal-100 {\\n color: rgb(178,223,219) !important;\\n}\\n\\n.mdl-color--teal-100 {\\n background-color: rgb(178,223,219) !important;\\n}\\n\\n.mdl-color-text--teal-200 {\\n color: rgb(128,203,196) !important;\\n}\\n\\n.mdl-color--teal-200 {\\n background-color: rgb(128,203,196) !important;\\n}\\n\\n.mdl-color-text--teal-300 {\\n color: rgb(77,182,172) !important;\\n}\\n\\n.mdl-color--teal-300 {\\n background-color: rgb(77,182,172) !important;\\n}\\n\\n.mdl-color-text--teal-400 {\\n color: rgb(38,166,154) !important;\\n}\\n\\n.mdl-color--teal-400 {\\n background-color: rgb(38,166,154) !important;\\n}\\n\\n.mdl-color-text--teal-500 {\\n color: rgb(0,150,136) !important;\\n}\\n\\n.mdl-color--teal-500 {\\n background-color: rgb(0,150,136) !important;\\n}\\n\\n.mdl-color-text--teal-600 {\\n color: rgb(0,137,123) !important;\\n}\\n\\n.mdl-color--teal-600 {\\n background-color: rgb(0,137,123) !important;\\n}\\n\\n.mdl-color-text--teal-700 {\\n color: rgb(0,121,107) !important;\\n}\\n\\n.mdl-color--teal-700 {\\n background-color: rgb(0,121,107) !important;\\n}\\n\\n.mdl-color-text--teal-800 {\\n color: rgb(0,105,92) !important;\\n}\\n\\n.mdl-color--teal-800 {\\n background-color: rgb(0,105,92) !important;\\n}\\n\\n.mdl-color-text--teal-900 {\\n color: rgb(0,77,64) !important;\\n}\\n\\n.mdl-color--teal-900 {\\n background-color: rgb(0,77,64) !important;\\n}\\n\\n.mdl-color-text--teal-A100 {\\n color: rgb(167,255,235) !important;\\n}\\n\\n.mdl-color--teal-A100 {\\n background-color: rgb(167,255,235) !important;\\n}\\n\\n.mdl-color-text--teal-A200 {\\n color: rgb(100,255,218) !important;\\n}\\n\\n.mdl-color--teal-A200 {\\n background-color: rgb(100,255,218) !important;\\n}\\n\\n.mdl-color-text--teal-A400 {\\n color: rgb(29,233,182) !important;\\n}\\n\\n.mdl-color--teal-A400 {\\n background-color: rgb(29,233,182) !important;\\n}\\n\\n.mdl-color-text--teal-A700 {\\n color: rgb(0,191,165) !important;\\n}\\n\\n.mdl-color--teal-A700 {\\n background-color: rgb(0,191,165) !important;\\n}\\n\\n.mdl-color-text--green {\\n color: rgb(76,175,80) !important;\\n}\\n\\n.mdl-color--green {\\n background-color: rgb(76,175,80) !important;\\n}\\n\\n.mdl-color-text--green-50 {\\n color: rgb(232,245,233) !important;\\n}\\n\\n.mdl-color--green-50 {\\n background-color: rgb(232,245,233) !important;\\n}\\n\\n.mdl-color-text--green-100 {\\n color: rgb(200,230,201) !important;\\n}\\n\\n.mdl-color--green-100 {\\n background-color: rgb(200,230,201) !important;\\n}\\n\\n.mdl-color-text--green-200 {\\n color: rgb(165,214,167) !important;\\n}\\n\\n.mdl-color--green-200 {\\n background-color: rgb(165,214,167) !important;\\n}\\n\\n.mdl-color-text--green-300 {\\n color: rgb(129,199,132) !important;\\n}\\n\\n.mdl-color--green-300 {\\n background-color: rgb(129,199,132) !important;\\n}\\n\\n.mdl-color-text--green-400 {\\n color: rgb(102,187,106) !important;\\n}\\n\\n.mdl-color--green-400 {\\n background-color: rgb(102,187,106) !important;\\n}\\n\\n.mdl-color-text--green-500 {\\n color: rgb(76,175,80) !important;\\n}\\n\\n.mdl-color--green-500 {\\n background-color: rgb(76,175,80) !important;\\n}\\n\\n.mdl-color-text--green-600 {\\n color: rgb(67,160,71) !important;\\n}\\n\\n.mdl-color--green-600 {\\n background-color: rgb(67,160,71) !important;\\n}\\n\\n.mdl-color-text--green-700 {\\n color: rgb(56,142,60) !important;\\n}\\n\\n.mdl-color--green-700 {\\n background-color: rgb(56,142,60) !important;\\n}\\n\\n.mdl-color-text--green-800 {\\n color: rgb(46,125,50) !important;\\n}\\n\\n.mdl-color--green-800 {\\n background-color: rgb(46,125,50) !important;\\n}\\n\\n.mdl-color-text--green-900 {\\n color: rgb(27,94,32) !important;\\n}\\n\\n.mdl-color--green-900 {\\n background-color: rgb(27,94,32) !important;\\n}\\n\\n.mdl-color-text--green-A100 {\\n color: rgb(185,246,202) !important;\\n}\\n\\n.mdl-color--green-A100 {\\n background-color: rgb(185,246,202) !important;\\n}\\n\\n.mdl-color-text--green-A200 {\\n color: rgb(105,240,174) !important;\\n}\\n\\n.mdl-color--green-A200 {\\n background-color: rgb(105,240,174) !important;\\n}\\n\\n.mdl-color-text--green-A400 {\\n color: rgb(0,230,118) !important;\\n}\\n\\n.mdl-color--green-A400 {\\n background-color: rgb(0,230,118) !important;\\n}\\n\\n.mdl-color-text--green-A700 {\\n color: rgb(0,200,83) !important;\\n}\\n\\n.mdl-color--green-A700 {\\n background-color: rgb(0,200,83) !important;\\n}\\n\\n.mdl-color-text--light-green {\\n color: rgb(139,195,74) !important;\\n}\\n\\n.mdl-color--light-green {\\n background-color: rgb(139,195,74) !important;\\n}\\n\\n.mdl-color-text--light-green-50 {\\n color: rgb(241,248,233) !important;\\n}\\n\\n.mdl-color--light-green-50 {\\n background-color: rgb(241,248,233) !important;\\n}\\n\\n.mdl-color-text--light-green-100 {\\n color: rgb(220,237,200) !important;\\n}\\n\\n.mdl-color--light-green-100 {\\n background-color: rgb(220,237,200) !important;\\n}\\n\\n.mdl-color-text--light-green-200 {\\n color: rgb(197,225,165) !important;\\n}\\n\\n.mdl-color--light-green-200 {\\n background-color: rgb(197,225,165) !important;\\n}\\n\\n.mdl-color-text--light-green-300 {\\n color: rgb(174,213,129) !important;\\n}\\n\\n.mdl-color--light-green-300 {\\n background-color: rgb(174,213,129) !important;\\n}\\n\\n.mdl-color-text--light-green-400 {\\n color: rgb(156,204,101) !important;\\n}\\n\\n.mdl-color--light-green-400 {\\n background-color: rgb(156,204,101) !important;\\n}\\n\\n.mdl-color-text--light-green-500 {\\n color: rgb(139,195,74) !important;\\n}\\n\\n.mdl-color--light-green-500 {\\n background-color: rgb(139,195,74) !important;\\n}\\n\\n.mdl-color-text--light-green-600 {\\n color: rgb(124,179,66) !important;\\n}\\n\\n.mdl-color--light-green-600 {\\n background-color: rgb(124,179,66) !important;\\n}\\n\\n.mdl-color-text--light-green-700 {\\n color: rgb(104,159,56) !important;\\n}\\n\\n.mdl-color--light-green-700 {\\n background-color: rgb(104,159,56) !important;\\n}\\n\\n.mdl-color-text--light-green-800 {\\n color: rgb(85,139,47) !important;\\n}\\n\\n.mdl-color--light-green-800 {\\n background-color: rgb(85,139,47) !important;\\n}\\n\\n.mdl-color-text--light-green-900 {\\n color: rgb(51,105,30) !important;\\n}\\n\\n.mdl-color--light-green-900 {\\n background-color: rgb(51,105,30) !important;\\n}\\n\\n.mdl-color-text--light-green-A100 {\\n color: rgb(204,255,144) !important;\\n}\\n\\n.mdl-color--light-green-A100 {\\n background-color: rgb(204,255,144) !important;\\n}\\n\\n.mdl-color-text--light-green-A200 {\\n color: rgb(178,255,89) !important;\\n}\\n\\n.mdl-color--light-green-A200 {\\n background-color: rgb(178,255,89) !important;\\n}\\n\\n.mdl-color-text--light-green-A400 {\\n color: rgb(118,255,3) !important;\\n}\\n\\n.mdl-color--light-green-A400 {\\n background-color: rgb(118,255,3) !important;\\n}\\n\\n.mdl-color-text--light-green-A700 {\\n color: rgb(100,221,23) !important;\\n}\\n\\n.mdl-color--light-green-A700 {\\n background-color: rgb(100,221,23) !important;\\n}\\n\\n.mdl-color-text--lime {\\n color: rgb(205,220,57) !important;\\n}\\n\\n.mdl-color--lime {\\n background-color: rgb(205,220,57) !important;\\n}\\n\\n.mdl-color-text--lime-50 {\\n color: rgb(249,251,231) !important;\\n}\\n\\n.mdl-color--lime-50 {\\n background-color: rgb(249,251,231) !important;\\n}\\n\\n.mdl-color-text--lime-100 {\\n color: rgb(240,244,195) !important;\\n}\\n\\n.mdl-color--lime-100 {\\n background-color: rgb(240,244,195) !important;\\n}\\n\\n.mdl-color-text--lime-200 {\\n color: rgb(230,238,156) !important;\\n}\\n\\n.mdl-color--lime-200 {\\n background-color: rgb(230,238,156) !important;\\n}\\n\\n.mdl-color-text--lime-300 {\\n color: rgb(220,231,117) !important;\\n}\\n\\n.mdl-color--lime-300 {\\n background-color: rgb(220,231,117) !important;\\n}\\n\\n.mdl-color-text--lime-400 {\\n color: rgb(212,225,87) !important;\\n}\\n\\n.mdl-color--lime-400 {\\n background-color: rgb(212,225,87) !important;\\n}\\n\\n.mdl-color-text--lime-500 {\\n color: rgb(205,220,57) !important;\\n}\\n\\n.mdl-color--lime-500 {\\n background-color: rgb(205,220,57) !important;\\n}\\n\\n.mdl-color-text--lime-600 {\\n color: rgb(192,202,51) !important;\\n}\\n\\n.mdl-color--lime-600 {\\n background-color: rgb(192,202,51) !important;\\n}\\n\\n.mdl-color-text--lime-700 {\\n color: rgb(175,180,43) !important;\\n}\\n\\n.mdl-color--lime-700 {\\n background-color: rgb(175,180,43) !important;\\n}\\n\\n.mdl-color-text--lime-800 {\\n color: rgb(158,157,36) !important;\\n}\\n\\n.mdl-color--lime-800 {\\n background-color: rgb(158,157,36) !important;\\n}\\n\\n.mdl-color-text--lime-900 {\\n color: rgb(130,119,23) !important;\\n}\\n\\n.mdl-color--lime-900 {\\n background-color: rgb(130,119,23) !important;\\n}\\n\\n.mdl-color-text--lime-A100 {\\n color: rgb(244,255,129) !important;\\n}\\n\\n.mdl-color--lime-A100 {\\n background-color: rgb(244,255,129) !important;\\n}\\n\\n.mdl-color-text--lime-A200 {\\n color: rgb(238,255,65) !important;\\n}\\n\\n.mdl-color--lime-A200 {\\n background-color: rgb(238,255,65) !important;\\n}\\n\\n.mdl-color-text--lime-A400 {\\n color: rgb(198,255,0) !important;\\n}\\n\\n.mdl-color--lime-A400 {\\n background-color: rgb(198,255,0) !important;\\n}\\n\\n.mdl-color-text--lime-A700 {\\n color: rgb(174,234,0) !important;\\n}\\n\\n.mdl-color--lime-A700 {\\n background-color: rgb(174,234,0) !important;\\n}\\n\\n.mdl-color-text--yellow {\\n color: rgb(255,235,59) !important;\\n}\\n\\n.mdl-color--yellow {\\n background-color: rgb(255,235,59) !important;\\n}\\n\\n.mdl-color-text--yellow-50 {\\n color: rgb(255,253,231) !important;\\n}\\n\\n.mdl-color--yellow-50 {\\n background-color: rgb(255,253,231) !important;\\n}\\n\\n.mdl-color-text--yellow-100 {\\n color: rgb(255,249,196) !important;\\n}\\n\\n.mdl-color--yellow-100 {\\n background-color: rgb(255,249,196) !important;\\n}\\n\\n.mdl-color-text--yellow-200 {\\n color: rgb(255,245,157) !important;\\n}\\n\\n.mdl-color--yellow-200 {\\n background-color: rgb(255,245,157) !important;\\n}\\n\\n.mdl-color-text--yellow-300 {\\n color: rgb(255,241,118) !important;\\n}\\n\\n.mdl-color--yellow-300 {\\n background-color: rgb(255,241,118) !important;\\n}\\n\\n.mdl-color-text--yellow-400 {\\n color: rgb(255,238,88) !important;\\n}\\n\\n.mdl-color--yellow-400 {\\n background-color: rgb(255,238,88) !important;\\n}\\n\\n.mdl-color-text--yellow-500 {\\n color: rgb(255,235,59) !important;\\n}\\n\\n.mdl-color--yellow-500 {\\n background-color: rgb(255,235,59) !important;\\n}\\n\\n.mdl-color-text--yellow-600 {\\n color: rgb(253,216,53) !important;\\n}\\n\\n.mdl-color--yellow-600 {\\n background-color: rgb(253,216,53) !important;\\n}\\n\\n.mdl-color-text--yellow-700 {\\n color: rgb(251,192,45) !important;\\n}\\n\\n.mdl-color--yellow-700 {\\n background-color: rgb(251,192,45) !important;\\n}\\n\\n.mdl-color-text--yellow-800 {\\n color: rgb(249,168,37) !important;\\n}\\n\\n.mdl-color--yellow-800 {\\n background-color: rgb(249,168,37) !important;\\n}\\n\\n.mdl-color-text--yellow-900 {\\n color: rgb(245,127,23) !important;\\n}\\n\\n.mdl-color--yellow-900 {\\n background-color: rgb(245,127,23) !important;\\n}\\n\\n.mdl-color-text--yellow-A100 {\\n color: rgb(255,255,141) !important;\\n}\\n\\n.mdl-color--yellow-A100 {\\n background-color: rgb(255,255,141) !important;\\n}\\n\\n.mdl-color-text--yellow-A200 {\\n color: rgb(255,255,0) !important;\\n}\\n\\n.mdl-color--yellow-A200 {\\n background-color: rgb(255,255,0) !important;\\n}\\n\\n.mdl-color-text--yellow-A400 {\\n color: rgb(255,234,0) !important;\\n}\\n\\n.mdl-color--yellow-A400 {\\n background-color: rgb(255,234,0) !important;\\n}\\n\\n.mdl-color-text--yellow-A700 {\\n color: rgb(255,214,0) !important;\\n}\\n\\n.mdl-color--yellow-A700 {\\n background-color: rgb(255,214,0) !important;\\n}\\n\\n.mdl-color-text--amber {\\n color: rgb(255,193,7) !important;\\n}\\n\\n.mdl-color--amber {\\n background-color: rgb(255,193,7) !important;\\n}\\n\\n.mdl-color-text--amber-50 {\\n color: rgb(255,248,225) !important;\\n}\\n\\n.mdl-color--amber-50 {\\n background-color: rgb(255,248,225) !important;\\n}\\n\\n.mdl-color-text--amber-100 {\\n color: rgb(255,236,179) !important;\\n}\\n\\n.mdl-color--amber-100 {\\n background-color: rgb(255,236,179) !important;\\n}\\n\\n.mdl-color-text--amber-200 {\\n color: rgb(255,224,130) !important;\\n}\\n\\n.mdl-color--amber-200 {\\n background-color: rgb(255,224,130) !important;\\n}\\n\\n.mdl-color-text--amber-300 {\\n color: rgb(255,213,79) !important;\\n}\\n\\n.mdl-color--amber-300 {\\n background-color: rgb(255,213,79) !important;\\n}\\n\\n.mdl-color-text--amber-400 {\\n color: rgb(255,202,40) !important;\\n}\\n\\n.mdl-color--amber-400 {\\n background-color: rgb(255,202,40) !important;\\n}\\n\\n.mdl-color-text--amber-500 {\\n color: rgb(255,193,7) !important;\\n}\\n\\n.mdl-color--amber-500 {\\n background-color: rgb(255,193,7) !important;\\n}\\n\\n.mdl-color-text--amber-600 {\\n color: rgb(255,179,0) !important;\\n}\\n\\n.mdl-color--amber-600 {\\n background-color: rgb(255,179,0) !important;\\n}\\n\\n.mdl-color-text--amber-700 {\\n color: rgb(255,160,0) !important;\\n}\\n\\n.mdl-color--amber-700 {\\n background-color: rgb(255,160,0) !important;\\n}\\n\\n.mdl-color-text--amber-800 {\\n color: rgb(255,143,0) !important;\\n}\\n\\n.mdl-color--amber-800 {\\n background-color: rgb(255,143,0) !important;\\n}\\n\\n.mdl-color-text--amber-900 {\\n color: rgb(255,111,0) !important;\\n}\\n\\n.mdl-color--amber-900 {\\n background-color: rgb(255,111,0) !important;\\n}\\n\\n.mdl-color-text--amber-A100 {\\n color: rgb(255,229,127) !important;\\n}\\n\\n.mdl-color--amber-A100 {\\n background-color: rgb(255,229,127) !important;\\n}\\n\\n.mdl-color-text--amber-A200 {\\n color: rgb(255,215,64) !important;\\n}\\n\\n.mdl-color--amber-A200 {\\n background-color: rgb(255,215,64) !important;\\n}\\n\\n.mdl-color-text--amber-A400 {\\n color: rgb(255,196,0) !important;\\n}\\n\\n.mdl-color--amber-A400 {\\n background-color: rgb(255,196,0) !important;\\n}\\n\\n.mdl-color-text--amber-A700 {\\n color: rgb(255,171,0) !important;\\n}\\n\\n.mdl-color--amber-A700 {\\n background-color: rgb(255,171,0) !important;\\n}\\n\\n.mdl-color-text--orange {\\n color: rgb(255,152,0) !important;\\n}\\n\\n.mdl-color--orange {\\n background-color: rgb(255,152,0) !important;\\n}\\n\\n.mdl-color-text--orange-50 {\\n color: rgb(255,243,224) !important;\\n}\\n\\n.mdl-color--orange-50 {\\n background-color: rgb(255,243,224) !important;\\n}\\n\\n.mdl-color-text--orange-100 {\\n color: rgb(255,224,178) !important;\\n}\\n\\n.mdl-color--orange-100 {\\n background-color: rgb(255,224,178) !important;\\n}\\n\\n.mdl-color-text--orange-200 {\\n color: rgb(255,204,128) !important;\\n}\\n\\n.mdl-color--orange-200 {\\n background-color: rgb(255,204,128) !important;\\n}\\n\\n.mdl-color-text--orange-300 {\\n color: rgb(255,183,77) !important;\\n}\\n\\n.mdl-color--orange-300 {\\n background-color: rgb(255,183,77) !important;\\n}\\n\\n.mdl-color-text--orange-400 {\\n color: rgb(255,167,38) !important;\\n}\\n\\n.mdl-color--orange-400 {\\n background-color: rgb(255,167,38) !important;\\n}\\n\\n.mdl-color-text--orange-500 {\\n color: rgb(255,152,0) !important;\\n}\\n\\n.mdl-color--orange-500 {\\n background-color: rgb(255,152,0) !important;\\n}\\n\\n.mdl-color-text--orange-600 {\\n color: rgb(251,140,0) !important;\\n}\\n\\n.mdl-color--orange-600 {\\n background-color: rgb(251,140,0) !important;\\n}\\n\\n.mdl-color-text--orange-700 {\\n color: rgb(245,124,0) !important;\\n}\\n\\n.mdl-color--orange-700 {\\n background-color: rgb(245,124,0) !important;\\n}\\n\\n.mdl-color-text--orange-800 {\\n color: rgb(239,108,0) !important;\\n}\\n\\n.mdl-color--orange-800 {\\n background-color: rgb(239,108,0) !important;\\n}\\n\\n.mdl-color-text--orange-900 {\\n color: rgb(230,81,0) !important;\\n}\\n\\n.mdl-color--orange-900 {\\n background-color: rgb(230,81,0) !important;\\n}\\n\\n.mdl-color-text--orange-A100 {\\n color: rgb(255,209,128) !important;\\n}\\n\\n.mdl-color--orange-A100 {\\n background-color: rgb(255,209,128) !important;\\n}\\n\\n.mdl-color-text--orange-A200 {\\n color: rgb(255,171,64) !important;\\n}\\n\\n.mdl-color--orange-A200 {\\n background-color: rgb(255,171,64) !important;\\n}\\n\\n.mdl-color-text--orange-A400 {\\n color: rgb(255,145,0) !important;\\n}\\n\\n.mdl-color--orange-A400 {\\n background-color: rgb(255,145,0) !important;\\n}\\n\\n.mdl-color-text--orange-A700 {\\n color: rgb(255,109,0) !important;\\n}\\n\\n.mdl-color--orange-A700 {\\n background-color: rgb(255,109,0) !important;\\n}\\n\\n.mdl-color-text--deep-orange {\\n color: rgb(255,87,34) !important;\\n}\\n\\n.mdl-color--deep-orange {\\n background-color: rgb(255,87,34) !important;\\n}\\n\\n.mdl-color-text--deep-orange-50 {\\n color: rgb(251,233,231) !important;\\n}\\n\\n.mdl-color--deep-orange-50 {\\n background-color: rgb(251,233,231) !important;\\n}\\n\\n.mdl-color-text--deep-orange-100 {\\n color: rgb(255,204,188) !important;\\n}\\n\\n.mdl-color--deep-orange-100 {\\n background-color: rgb(255,204,188) !important;\\n}\\n\\n.mdl-color-text--deep-orange-200 {\\n color: rgb(255,171,145) !important;\\n}\\n\\n.mdl-color--deep-orange-200 {\\n background-color: rgb(255,171,145) !important;\\n}\\n\\n.mdl-color-text--deep-orange-300 {\\n color: rgb(255,138,101) !important;\\n}\\n\\n.mdl-color--deep-orange-300 {\\n background-color: rgb(255,138,101) !important;\\n}\\n\\n.mdl-color-text--deep-orange-400 {\\n color: rgb(255,112,67) !important;\\n}\\n\\n.mdl-color--deep-orange-400 {\\n background-color: rgb(255,112,67) !important;\\n}\\n\\n.mdl-color-text--deep-orange-500 {\\n color: rgb(255,87,34) !important;\\n}\\n\\n.mdl-color--deep-orange-500 {\\n background-color: rgb(255,87,34) !important;\\n}\\n\\n.mdl-color-text--deep-orange-600 {\\n color: rgb(244,81,30) !important;\\n}\\n\\n.mdl-color--deep-orange-600 {\\n background-color: rgb(244,81,30) !important;\\n}\\n\\n.mdl-color-text--deep-orange-700 {\\n color: rgb(230,74,25) !important;\\n}\\n\\n.mdl-color--deep-orange-700 {\\n background-color: rgb(230,74,25) !important;\\n}\\n\\n.mdl-color-text--deep-orange-800 {\\n color: rgb(216,67,21) !important;\\n}\\n\\n.mdl-color--deep-orange-800 {\\n background-color: rgb(216,67,21) !important;\\n}\\n\\n.mdl-color-text--deep-orange-900 {\\n color: rgb(191,54,12) !important;\\n}\\n\\n.mdl-color--deep-orange-900 {\\n background-color: rgb(191,54,12) !important;\\n}\\n\\n.mdl-color-text--deep-orange-A100 {\\n color: rgb(255,158,128) !important;\\n}\\n\\n.mdl-color--deep-orange-A100 {\\n background-color: rgb(255,158,128) !important;\\n}\\n\\n.mdl-color-text--deep-orange-A200 {\\n color: rgb(255,110,64) !important;\\n}\\n\\n.mdl-color--deep-orange-A200 {\\n background-color: rgb(255,110,64) !important;\\n}\\n\\n.mdl-color-text--deep-orange-A400 {\\n color: rgb(255,61,0) !important;\\n}\\n\\n.mdl-color--deep-orange-A400 {\\n background-color: rgb(255,61,0) !important;\\n}\\n\\n.mdl-color-text--deep-orange-A700 {\\n color: rgb(221,44,0) !important;\\n}\\n\\n.mdl-color--deep-orange-A700 {\\n background-color: rgb(221,44,0) !important;\\n}\\n\\n.mdl-color-text--brown {\\n color: rgb(121,85,72) !important;\\n}\\n\\n.mdl-color--brown {\\n background-color: rgb(121,85,72) !important;\\n}\\n\\n.mdl-color-text--brown-50 {\\n color: rgb(239,235,233) !important;\\n}\\n\\n.mdl-color--brown-50 {\\n background-color: rgb(239,235,233) !important;\\n}\\n\\n.mdl-color-text--brown-100 {\\n color: rgb(215,204,200) !important;\\n}\\n\\n.mdl-color--brown-100 {\\n background-color: rgb(215,204,200) !important;\\n}\\n\\n.mdl-color-text--brown-200 {\\n color: rgb(188,170,164) !important;\\n}\\n\\n.mdl-color--brown-200 {\\n background-color: rgb(188,170,164) !important;\\n}\\n\\n.mdl-color-text--brown-300 {\\n color: rgb(161,136,127) !important;\\n}\\n\\n.mdl-color--brown-300 {\\n background-color: rgb(161,136,127) !important;\\n}\\n\\n.mdl-color-text--brown-400 {\\n color: rgb(141,110,99) !important;\\n}\\n\\n.mdl-color--brown-400 {\\n background-color: rgb(141,110,99) !important;\\n}\\n\\n.mdl-color-text--brown-500 {\\n color: rgb(121,85,72) !important;\\n}\\n\\n.mdl-color--brown-500 {\\n background-color: rgb(121,85,72) !important;\\n}\\n\\n.mdl-color-text--brown-600 {\\n color: rgb(109,76,65) !important;\\n}\\n\\n.mdl-color--brown-600 {\\n background-color: rgb(109,76,65) !important;\\n}\\n\\n.mdl-color-text--brown-700 {\\n color: rgb(93,64,55) !important;\\n}\\n\\n.mdl-color--brown-700 {\\n background-color: rgb(93,64,55) !important;\\n}\\n\\n.mdl-color-text--brown-800 {\\n color: rgb(78,52,46) !important;\\n}\\n\\n.mdl-color--brown-800 {\\n background-color: rgb(78,52,46) !important;\\n}\\n\\n.mdl-color-text--brown-900 {\\n color: rgb(62,39,35) !important;\\n}\\n\\n.mdl-color--brown-900 {\\n background-color: rgb(62,39,35) !important;\\n}\\n\\n.mdl-color-text--grey {\\n color: rgb(158,158,158) !important;\\n}\\n\\n.mdl-color--grey {\\n background-color: rgb(158,158,158) !important;\\n}\\n\\n.mdl-color-text--grey-50 {\\n color: rgb(250,250,250) !important;\\n}\\n\\n.mdl-color--grey-50 {\\n background-color: rgb(250,250,250) !important;\\n}\\n\\n.mdl-color-text--grey-100 {\\n color: rgb(245,245,245) !important;\\n}\\n\\n.mdl-color--grey-100 {\\n background-color: rgb(245,245,245) !important;\\n}\\n\\n.mdl-color-text--grey-200 {\\n color: rgb(238,238,238) !important;\\n}\\n\\n.mdl-color--grey-200 {\\n background-color: rgb(238,238,238) !important;\\n}\\n\\n.mdl-color-text--grey-300 {\\n color: rgb(224,224,224) !important;\\n}\\n\\n.mdl-color--grey-300 {\\n background-color: rgb(224,224,224) !important;\\n}\\n\\n.mdl-color-text--grey-400 {\\n color: rgb(189,189,189) !important;\\n}\\n\\n.mdl-color--grey-400 {\\n background-color: rgb(189,189,189) !important;\\n}\\n\\n.mdl-color-text--grey-500 {\\n color: rgb(158,158,158) !important;\\n}\\n\\n.mdl-color--grey-500 {\\n background-color: rgb(158,158,158) !important;\\n}\\n\\n.mdl-color-text--grey-600 {\\n color: rgb(117,117,117) !important;\\n}\\n\\n.mdl-color--grey-600 {\\n background-color: rgb(117,117,117) !important;\\n}\\n\\n.mdl-color-text--grey-700 {\\n color: rgb(97,97,97) !important;\\n}\\n\\n.mdl-color--grey-700 {\\n background-color: rgb(97,97,97) !important;\\n}\\n\\n.mdl-color-text--grey-800 {\\n color: rgb(66,66,66) !important;\\n}\\n\\n.mdl-color--grey-800 {\\n background-color: rgb(66,66,66) !important;\\n}\\n\\n.mdl-color-text--grey-900 {\\n color: rgb(33,33,33) !important;\\n}\\n\\n.mdl-color--grey-900 {\\n background-color: rgb(33,33,33) !important;\\n}\\n\\n.mdl-color-text--blue-grey {\\n color: rgb(96,125,139) !important;\\n}\\n\\n.mdl-color--blue-grey {\\n background-color: rgb(96,125,139) !important;\\n}\\n\\n.mdl-color-text--blue-grey-50 {\\n color: rgb(236,239,241) !important;\\n}\\n\\n.mdl-color--blue-grey-50 {\\n background-color: rgb(236,239,241) !important;\\n}\\n\\n.mdl-color-text--blue-grey-100 {\\n color: rgb(207,216,220) !important;\\n}\\n\\n.mdl-color--blue-grey-100 {\\n background-color: rgb(207,216,220) !important;\\n}\\n\\n.mdl-color-text--blue-grey-200 {\\n color: rgb(176,190,197) !important;\\n}\\n\\n.mdl-color--blue-grey-200 {\\n background-color: rgb(176,190,197) !important;\\n}\\n\\n.mdl-color-text--blue-grey-300 {\\n color: rgb(144,164,174) !important;\\n}\\n\\n.mdl-color--blue-grey-300 {\\n background-color: rgb(144,164,174) !important;\\n}\\n\\n.mdl-color-text--blue-grey-400 {\\n color: rgb(120,144,156) !important;\\n}\\n\\n.mdl-color--blue-grey-400 {\\n background-color: rgb(120,144,156) !important;\\n}\\n\\n.mdl-color-text--blue-grey-500 {\\n color: rgb(96,125,139) !important;\\n}\\n\\n.mdl-color--blue-grey-500 {\\n background-color: rgb(96,125,139) !important;\\n}\\n\\n.mdl-color-text--blue-grey-600 {\\n color: rgb(84,110,122) !important;\\n}\\n\\n.mdl-color--blue-grey-600 {\\n background-color: rgb(84,110,122) !important;\\n}\\n\\n.mdl-color-text--blue-grey-700 {\\n color: rgb(69,90,100) !important;\\n}\\n\\n.mdl-color--blue-grey-700 {\\n background-color: rgb(69,90,100) !important;\\n}\\n\\n.mdl-color-text--blue-grey-800 {\\n color: rgb(55,71,79) !important;\\n}\\n\\n.mdl-color--blue-grey-800 {\\n background-color: rgb(55,71,79) !important;\\n}\\n\\n.mdl-color-text--blue-grey-900 {\\n color: rgb(38,50,56) !important;\\n}\\n\\n.mdl-color--blue-grey-900 {\\n background-color: rgb(38,50,56) !important;\\n}\\n\\n.mdl-color--black {\\n background-color: rgb(0,0,0) !important;\\n}\\n\\n.mdl-color-text--black {\\n color: rgb(0,0,0) !important;\\n}\\n\\n.mdl-color--white {\\n background-color: rgb(255,255,255) !important;\\n}\\n\\n.mdl-color-text--white {\\n color: rgb(255,255,255) !important;\\n}\\n\\n.mdl-color--primary {\\n background-color: rgb(98, 105, 113) !important;\\n}\\n\\n.mdl-color--primary-contrast {\\n background-color: rgb(255, 255, 255) !important;\\n}\\n\\n.mdl-color--primary-dark {\\n background-color: rgb(38, 50, 56) !important;\\n}\\n\\n.mdl-color--accent {\\n background-color: rgb(0, 128, 175) !important;\\n}\\n\\n.mdl-color--accent-contrast {\\n background-color: rgb(255, 255, 255) !important;\\n}\\n\\n.mdl-color-text--primary {\\n color: rgb(98, 105, 113) !important;\\n}\\n\\n.mdl-color-text--primary-contrast {\\n color: rgb(255, 255, 255) !important;\\n}\\n\\n.mdl-color-text--primary-dark {\\n color: rgb(38, 50, 56) !important;\\n}\\n\\n.mdl-color-text--accent {\\n color: rgb(0, 128, 175) !important;\\n}\\n\\n.mdl-color-text--accent-contrast {\\n color: rgb(255, 255, 255) !important;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n.mdl-ripple {\\n background: rgb(0,0,0);\\n border-radius: 50%;\\n height: 50px;\\n left: 0;\\n opacity: 0;\\n pointer-events: none;\\n position: absolute;\\n top: 0;\\n transform: translate(-50%, -50%);\\n width: 50px;\\n overflow: hidden;\\n}\\n\\n.mdl-ripple.is-animating {\\n transition: transform 0.3s cubic-bezier(0, 0, 0.2, 1), width 0.3s cubic-bezier(0, 0, 0.2, 1), height 0.3s cubic-bezier(0, 0, 0.2, 1), opacity 0.6s cubic-bezier(0, 0, 0.2, 1);\\n}\\n\\n.mdl-ripple.is-visible {\\n opacity: 0.3;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n.mdl-animation--default {\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n}\\n\\n.mdl-animation--fast-out-slow-in {\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n}\\n\\n.mdl-animation--linear-out-slow-in {\\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\\n}\\n\\n.mdl-animation--fast-out-linear-in {\\n transition-timing-function: cubic-bezier(0.4, 0, 1, 1);\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n.mdl-badge {\\n position: relative;\\n white-space: nowrap;\\n margin-right: 24px;\\n}\\n\\n.mdl-badge:not([data-badge]) {\\n margin-right: auto;\\n}\\n\\n.mdl-badge[data-badge]:after {\\n content: attr(data-badge);\\n display: flex;\\n flex-direction: row;\\n flex-wrap: wrap;\\n justify-content: center;\\n align-content: center;\\n align-items: center;\\n position: absolute;\\n top: -11px;\\n right: -24px;\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-weight: 600;\\n font-size: 12px;\\n width: 22px;\\n height: 22px;\\n border-radius: 50%;\\n background: rgb(0, 128, 175);\\n color: rgb(255, 255, 255);\\n}\\n\\n.mdl-button .mdl-badge[data-badge]:after {\\n top: -10px;\\n right: -5px;\\n}\\n\\n.mdl-badge.mdl-badge--no-background[data-badge]:after {\\n color: rgb(0, 128, 175);\\n background: rgba(255, 255, 255,0.2);\\n box-shadow: 0 0 1px gray;\\n}\\n\\n.mdl-badge.mdl-badge--overlap {\\n margin-right: 10px;\\n}\\n\\n.mdl-badge.mdl-badge--overlap:after {\\n right: -10px;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Typography */\\n\\n/* Shadows */\\n\\n/* Animations */\\n\\n/* Dialog */\\n\\n.mdl-button {\\n background: transparent;\\n border: none;\\n border-radius: 2px;\\n color: rgb(0,0,0);\\n position: relative;\\n height: 36px;\\n margin: 0;\\n min-width: 64px;\\n padding: 0 16px;\\n display: inline-block;\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n text-transform: uppercase;\\n line-height: 1;\\n letter-spacing: 0;\\n overflow: hidden;\\n will-change: box-shadow;\\n transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1);\\n outline: none;\\n cursor: pointer;\\n text-decoration: none;\\n text-align: center;\\n line-height: 36px;\\n vertical-align: middle;\\n}\\n\\n.mdl-button::-moz-focus-inner {\\n border: 0;\\n}\\n\\n.mdl-button:hover {\\n background-color: rgba(158,158,158, 0.20);\\n}\\n\\n.mdl-button:focus:not(:active) {\\n background-color: rgba(0,0,0, 0.12);\\n}\\n\\n.mdl-button:active {\\n background-color: rgba(158,158,158, 0.40);\\n}\\n\\n.mdl-button.mdl-button--colored {\\n color: rgb(98, 105, 113);\\n}\\n\\n.mdl-button.mdl-button--colored:focus:not(:active) {\\n background-color: rgba(0,0,0, 0.12);\\n}\\n\\ninput.mdl-button[type=submit] {\\n -webkit-appearance: none;\\n}\\n\\n.mdl-button--raised {\\n background: rgba(158,158,158, 0.20);\\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n}\\n\\n.mdl-button--raised:active {\\n box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2);\\n background-color: rgba(158,158,158, 0.40);\\n}\\n\\n.mdl-button--raised:focus:not(:active) {\\n box-shadow: 0 0 8px rgba(0, 0, 0, 0.18), 0 8px 16px rgba(0, 0, 0, 0.36);\\n background-color: rgba(158,158,158, 0.40);\\n}\\n\\n.mdl-button--raised.mdl-button--colored {\\n background: rgb(98, 105, 113);\\n color: rgb(255, 255, 255);\\n}\\n\\n.mdl-button--raised.mdl-button--colored:hover {\\n background-color: rgb(98, 105, 113);\\n}\\n\\n.mdl-button--raised.mdl-button--colored:active {\\n background-color: rgb(98, 105, 113);\\n}\\n\\n.mdl-button--raised.mdl-button--colored:focus:not(:active) {\\n background-color: rgb(98, 105, 113);\\n}\\n\\n.mdl-button--raised.mdl-button--colored .mdl-ripple {\\n background: rgb(255, 255, 255);\\n}\\n\\n.mdl-button--fab {\\n border-radius: 50%;\\n font-size: 24px;\\n height: 56px;\\n margin: auto;\\n min-width: 56px;\\n width: 56px;\\n padding: 0;\\n overflow: hidden;\\n background: rgba(158,158,158, 0.20);\\n box-shadow: 0 1px 1.5px 0 rgba(0, 0, 0, 0.12), 0 1px 1px 0 rgba(0, 0, 0, 0.24);\\n position: relative;\\n line-height: normal;\\n}\\n\\n.mdl-button--fab .material-icons {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n transform: translate(-12px, -12px);\\n line-height: 24px;\\n width: 24px;\\n}\\n\\n.mdl-button--fab.mdl-button--mini-fab {\\n height: 40px;\\n min-width: 40px;\\n width: 40px;\\n}\\n\\n.mdl-button--fab .mdl-button__ripple-container {\\n border-radius: 50%;\\n -webkit-mask-image: -webkit-radial-gradient(circle, white, black);\\n}\\n\\n.mdl-button--fab:active {\\n box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2);\\n background-color: rgba(158,158,158, 0.40);\\n}\\n\\n.mdl-button--fab:focus:not(:active) {\\n box-shadow: 0 0 8px rgba(0, 0, 0, 0.18), 0 8px 16px rgba(0, 0, 0, 0.36);\\n background-color: rgba(158,158,158, 0.40);\\n}\\n\\n.mdl-button--fab.mdl-button--colored {\\n background: rgb(0, 128, 175);\\n color: rgb(255, 255, 255);\\n}\\n\\n.mdl-button--fab.mdl-button--colored:hover {\\n background-color: rgb(0, 128, 175);\\n}\\n\\n.mdl-button--fab.mdl-button--colored:focus:not(:active) {\\n background-color: rgb(0, 128, 175);\\n}\\n\\n.mdl-button--fab.mdl-button--colored:active {\\n background-color: rgb(0, 128, 175);\\n}\\n\\n.mdl-button--fab.mdl-button--colored .mdl-ripple {\\n background: rgb(255, 255, 255);\\n}\\n\\n.mdl-button--icon {\\n border-radius: 50%;\\n font-size: 24px;\\n height: 32px;\\n margin-left: 0;\\n margin-right: 0;\\n min-width: 32px;\\n width: 32px;\\n padding: 0;\\n overflow: hidden;\\n color: inherit;\\n line-height: normal;\\n}\\n\\n.mdl-button--icon .material-icons {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n transform: translate(-12px, -12px);\\n line-height: 24px;\\n width: 24px;\\n}\\n\\n.mdl-button--icon.mdl-button--mini-icon {\\n height: 24px;\\n min-width: 24px;\\n width: 24px;\\n}\\n\\n.mdl-button--icon.mdl-button--mini-icon .material-icons {\\n top: 0px;\\n left: 0px;\\n}\\n\\n.mdl-button--icon .mdl-button__ripple-container {\\n border-radius: 50%;\\n -webkit-mask-image: -webkit-radial-gradient(circle, white, black);\\n}\\n\\n.mdl-button__ripple-container {\\n display: block;\\n height: 100%;\\n left: 0px;\\n position: absolute;\\n top: 0px;\\n width: 100%;\\n z-index: 0;\\n overflow: hidden;\\n}\\n\\n.mdl-button[disabled] .mdl-button__ripple-container .mdl-ripple,\\n.mdl-button.mdl-button--disabled .mdl-button__ripple-container .mdl-ripple {\\n background-color: transparent;\\n}\\n\\n.mdl-button--primary.mdl-button--primary {\\n color: rgb(98, 105, 113);\\n}\\n\\n.mdl-button--primary.mdl-button--primary .mdl-ripple {\\n background: rgb(255, 255, 255);\\n}\\n\\n.mdl-button--primary.mdl-button--primary.mdl-button--raised,\\n.mdl-button--primary.mdl-button--primary.mdl-button--fab {\\n color: rgb(255, 255, 255);\\n background-color: rgb(98, 105, 113);\\n}\\n\\n.mdl-button--accent.mdl-button--accent {\\n color: rgb(0, 128, 175);\\n}\\n\\n.mdl-button--accent.mdl-button--accent .mdl-ripple {\\n background: rgb(255, 255, 255);\\n}\\n\\n.mdl-button--accent.mdl-button--accent.mdl-button--raised,\\n.mdl-button--accent.mdl-button--accent.mdl-button--fab {\\n color: rgb(255, 255, 255);\\n background-color: rgb(0, 128, 175);\\n}\\n\\n.mdl-button[disabled][disabled],\\n.mdl-button.mdl-button--disabled.mdl-button--disabled {\\n color: rgba(0,0,0, 0.26);\\n cursor: default;\\n background-color: transparent;\\n}\\n\\n.mdl-button--fab[disabled][disabled],\\n.mdl-button--fab.mdl-button--disabled.mdl-button--disabled {\\n background-color: rgba(0,0,0, 0.12);\\n color: rgba(0,0,0, 0.26);\\n}\\n\\n.mdl-button--raised[disabled][disabled],\\n.mdl-button--raised.mdl-button--disabled.mdl-button--disabled {\\n background-color: rgba(0,0,0, 0.12);\\n color: rgba(0,0,0, 0.26);\\n box-shadow: none;\\n}\\n\\n.mdl-button--colored[disabled][disabled],\\n.mdl-button--colored.mdl-button--disabled.mdl-button--disabled {\\n color: rgba(0,0,0, 0.26);\\n}\\n\\n.mdl-button .material-icons {\\n vertical-align: middle;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n.mdl-card {\\n display: flex;\\n flex-direction: column;\\n font-size: 16px;\\n font-weight: 400;\\n min-height: 200px;\\n overflow: hidden;\\n width: 330px;\\n z-index: 1;\\n position: relative;\\n background: rgb(255,255,255);\\n border-radius: 2px;\\n box-sizing: border-box;\\n}\\n\\n.mdl-card__media {\\n background-color: rgb(0, 128, 175);\\n background-repeat: repeat;\\n background-position: 50% 50%;\\n background-size: cover;\\n background-origin: padding-box;\\n background-attachment: scroll;\\n box-sizing: border-box;\\n}\\n\\n.mdl-card__title {\\n align-items: center;\\n color: rgb(0,0,0);\\n display: block;\\n display: flex;\\n justify-content: stretch;\\n line-height: normal;\\n padding: 16px 16px;\\n perspective-origin: 165px 56px;\\n transform-origin: 165px 56px;\\n box-sizing: border-box;\\n}\\n\\n.mdl-card__title.mdl-card--border {\\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\\n}\\n\\n.mdl-card__title-text {\\n align-self: flex-end;\\n color: inherit;\\n display: block;\\n display: flex;\\n font-size: 18px;\\n font-weight: 300;\\n line-height: normal;\\n overflow: hidden;\\n transform-origin: 149px 48px;\\n margin: 0;\\n}\\n\\n.mdl-card__subtitle-text {\\n font-size: 14px;\\n color: rgba(0,0,0, 0.54);\\n margin: 0;\\n}\\n\\n.mdl-card__supporting-text {\\n color: rgba(0,0,0, 0.54);\\n font-size: 1rem;\\n line-height: 18px;\\n overflow: hidden;\\n padding: 16px 16px;\\n width: 90%;\\n}\\n\\n.mdl-card__supporting-text.mdl-card--border {\\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\\n}\\n\\n.mdl-card__actions {\\n font-size: 16px;\\n line-height: normal;\\n width: 100%;\\n background-color: rgba(0, 0, 0, 0);\\n padding: 8px;\\n box-sizing: border-box;\\n}\\n\\n.mdl-card__actions.mdl-card--border {\\n border-top: 1px solid rgba(0, 0, 0, 0.1);\\n}\\n\\n.mdl-card--expand {\\n flex-grow: 1;\\n}\\n\\n.mdl-card__menu {\\n position: absolute;\\n right: 16px;\\n top: 16px;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Typography */\\n\\n/* Shadows */\\n\\n/* Animations */\\n\\n/* Dialog */\\n\\n.mdl-checkbox {\\n position: relative;\\n z-index: 1;\\n vertical-align: middle;\\n display: inline-block;\\n box-sizing: border-box;\\n width: 100%;\\n height: 24px;\\n margin: 0;\\n padding: 0;\\n}\\n\\n.mdl-checkbox.is-upgraded {\\n padding-left: 24px;\\n}\\n\\n.mdl-checkbox__input {\\n line-height: 24px;\\n}\\n\\n.mdl-checkbox.is-upgraded .mdl-checkbox__input {\\n position: absolute;\\n width: 0;\\n height: 0;\\n margin: 0;\\n padding: 0;\\n opacity: 0;\\n -ms-appearance: none;\\n -moz-appearance: none;\\n -webkit-appearance: none;\\n appearance: none;\\n border: none;\\n}\\n\\n.mdl-checkbox__box-outline {\\n position: absolute;\\n top: 3px;\\n left: 0;\\n display: inline-block;\\n box-sizing: border-box;\\n width: 16px;\\n height: 16px;\\n margin: 0;\\n cursor: pointer;\\n overflow: hidden;\\n border: 2px solid rgba(0,0,0, 0.54);\\n border-radius: 2px;\\n z-index: 2;\\n}\\n\\n.mdl-checkbox.is-checked .mdl-checkbox__box-outline {\\n border: 2px solid rgb(98, 105, 113);\\n}\\n\\nfieldset[disabled] .mdl-checkbox .mdl-checkbox__box-outline,\\n.mdl-checkbox.is-disabled .mdl-checkbox__box-outline {\\n border: 2px solid rgba(0,0,0, 0.26);\\n cursor: auto;\\n}\\n\\n.mdl-checkbox__focus-helper {\\n position: absolute;\\n top: 3px;\\n left: 0;\\n display: inline-block;\\n box-sizing: border-box;\\n width: 16px;\\n height: 16px;\\n border-radius: 50%;\\n background-color: transparent;\\n}\\n\\n.mdl-checkbox.is-focused .mdl-checkbox__focus-helper {\\n box-shadow: 0 0 0px 8px rgba(0, 0, 0, 0.1);\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n\\n.mdl-checkbox.is-focused.is-checked .mdl-checkbox__focus-helper {\\n box-shadow: 0 0 0px 8px rgba(98, 105, 113, 0.26);\\n background-color: rgba(98, 105, 113, 0.26);\\n}\\n\\n.mdl-checkbox__tick-outline {\\n position: absolute;\\n top: 0;\\n left: 0;\\n height: 100%;\\n width: 100%;\\n mask: url(\" + escape(require(\"material-design-lite/dist/images/tick-mask.svg?embed\")) + \");\\n background: transparent;\\n transition-duration: 0.28s;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-property: background;\\n}\\n\\n.mdl-checkbox.is-checked .mdl-checkbox__tick-outline {\\n background: rgb(98, 105, 113) url(\" + escape(require(\"material-design-lite/dist/images/tick.svg?embed\")) + \");\\n}\\n\\nfieldset[disabled] .mdl-checkbox.is-checked .mdl-checkbox__tick-outline,\\n.mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline {\\n background: rgba(0,0,0, 0.26) url(\" + escape(require(\"material-design-lite/dist/images/tick.svg?embed\")) + \");\\n}\\n\\n.mdl-checkbox__label {\\n position: relative;\\n cursor: pointer;\\n font-size: 13px;\\n line-height: 24px;\\n margin: 0;\\n}\\n\\nfieldset[disabled] .mdl-checkbox .mdl-checkbox__label,\\n.mdl-checkbox.is-disabled .mdl-checkbox__label {\\n color: rgba(0,0,0, 0.26);\\n cursor: auto;\\n}\\n\\n.mdl-checkbox__ripple-container {\\n position: absolute;\\n z-index: 2;\\n top: -6px;\\n left: -10px;\\n box-sizing: border-box;\\n width: 36px;\\n height: 36px;\\n border-radius: 50%;\\n cursor: pointer;\\n overflow: hidden;\\n -webkit-mask-image: -webkit-radial-gradient(circle, white, black);\\n}\\n\\n.mdl-checkbox__ripple-container .mdl-ripple {\\n background: rgb(98, 105, 113);\\n}\\n\\nfieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container,\\n.mdl-checkbox.is-disabled .mdl-checkbox__ripple-container {\\n cursor: auto;\\n}\\n\\nfieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container .mdl-ripple,\\n.mdl-checkbox.is-disabled .mdl-checkbox__ripple-container .mdl-ripple {\\n background: transparent;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Typography */\\n\\n/* Shadows */\\n\\n/* Animations */\\n\\n/* Dialog */\\n\\n.mdl-chip {\\n height: 32px;\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n line-height: 32px;\\n padding: 0 12px;\\n border: 0;\\n border-radius: 16px;\\n background-color: rgb(222, 222, 222);\\n display: inline-block;\\n color: rgba(0,0,0, 0.87);\\n margin: 2px 0;\\n font-size: 0;\\n white-space: nowrap;\\n}\\n\\n.mdl-chip__text {\\n font-size: 13px;\\n vertical-align: middle;\\n display: inline-block;\\n}\\n\\n.mdl-chip__action {\\n height: 24px;\\n width: 24px;\\n background: transparent;\\n opacity: 0.54;\\n display: inline-block;\\n cursor: pointer;\\n text-align: center;\\n vertical-align: middle;\\n padding: 0;\\n margin: 0 0 0 4px;\\n font-size: 13px;\\n text-decoration: none;\\n color: rgba(0,0,0, 0.87);\\n border: none;\\n outline: none;\\n overflow: hidden;\\n}\\n\\n.mdl-chip__contact {\\n height: 32px;\\n width: 32px;\\n border-radius: 16px;\\n display: inline-block;\\n vertical-align: middle;\\n margin-right: 8px;\\n overflow: hidden;\\n text-align: center;\\n font-size: 18px;\\n line-height: 32px;\\n}\\n\\n.mdl-chip:focus {\\n outline: 0;\\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n}\\n\\n.mdl-chip:active {\\n background-color: rgb(214, 214, 214);\\n}\\n\\n.mdl-chip--deletable {\\n padding-right: 4px;\\n}\\n\\n.mdl-chip--contact {\\n padding-left: 0;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Typography */\\n\\n/* Shadows */\\n\\n/* Animations */\\n\\n/* Dialog */\\n\\n.mdl-data-table {\\n position: relative;\\n border: 1px solid rgba(0, 0, 0, 0.12);\\n border-collapse: collapse;\\n white-space: nowrap;\\n font-size: 13px;\\n background-color: rgb(255,255,255);\\n}\\n\\n.mdl-data-table thead {\\n padding-bottom: 3px;\\n}\\n\\n.mdl-data-table thead .mdl-data-table__select {\\n margin-top: 0;\\n}\\n\\n.mdl-data-table tbody tr {\\n position: relative;\\n height: 48px;\\n transition-duration: 0.28s;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-property: background-color;\\n}\\n\\n.mdl-data-table tbody tr.is-selected {\\n background-color: #e0e0e0;\\n}\\n\\n.mdl-data-table tbody tr:hover {\\n background-color: #eeeeee;\\n}\\n\\n.mdl-data-table td,\\n.mdl-data-table th {\\n padding: 0 18px 12px 18px;\\n text-align: right;\\n}\\n\\n.mdl-data-table td:first-of-type,\\n.mdl-data-table th:first-of-type {\\n padding-left: 24px;\\n}\\n\\n.mdl-data-table td:last-of-type,\\n.mdl-data-table th:last-of-type {\\n padding-right: 24px;\\n}\\n\\n.mdl-data-table td {\\n position: relative;\\n vertical-align: middle;\\n height: 48px;\\n border-top: 1px solid rgba(0, 0, 0, 0.12);\\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\\n padding-top: 12px;\\n box-sizing: border-box;\\n}\\n\\n.mdl-data-table td .mdl-data-table__select {\\n vertical-align: middle;\\n}\\n\\n.mdl-data-table th {\\n position: relative;\\n vertical-align: bottom;\\n text-overflow: ellipsis;\\n font-size: 14px;\\n font-weight: bold;\\n line-height: 24px;\\n letter-spacing: 0;\\n height: 48px;\\n font-size: 12px;\\n color: rgba(0, 0, 0, 0.54);\\n padding-bottom: 8px;\\n box-sizing: border-box;\\n}\\n\\n.mdl-data-table th.mdl-data-table__header--sorted-ascending,\\n.mdl-data-table th.mdl-data-table__header--sorted-descending {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mdl-data-table th.mdl-data-table__header--sorted-ascending:before,\\n.mdl-data-table th.mdl-data-table__header--sorted-descending:before {\\n font-family: \\\"Material Icons\\\";\\n font-weight: normal;\\n font-style: normal;\\n font-size: 24px;\\n line-height: 1;\\n letter-spacing: normal;\\n text-transform: none;\\n display: inline-block;\\n word-wrap: normal;\\n font-feature-settings: \\\"liga\\\";\\n -webkit-font-feature-settings: \\\"liga\\\";\\n -webkit-font-smoothing: antialiased;\\n font-size: 16px;\\n content: \\\"\\\\E5D8\\\";\\n margin-right: 5px;\\n vertical-align: sub;\\n}\\n\\n.mdl-data-table th.mdl-data-table__header--sorted-ascending:hover,\\n.mdl-data-table th.mdl-data-table__header--sorted-descending:hover {\\n cursor: pointer;\\n}\\n\\n.mdl-data-table th.mdl-data-table__header--sorted-ascending:hover:before,\\n.mdl-data-table th.mdl-data-table__header--sorted-descending:hover:before {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n\\n.mdl-data-table th.mdl-data-table__header--sorted-descending:before {\\n content: \\\"\\\\E5DB\\\";\\n}\\n\\n.mdl-data-table__select {\\n width: 16px;\\n}\\n\\n.mdl-data-table__cell--non-numeric.mdl-data-table__cell--non-numeric {\\n text-align: left;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Typography */\\n\\n/* Shadows */\\n\\n/* Animations */\\n\\n/* Dialog */\\n\\n.mdl-dialog {\\n border: none;\\n box-shadow: 0 9px 46px 8px rgba(0, 0, 0, 0.14), 0 11px 15px -7px rgba(0, 0, 0, 0.12), 0 24px 38px 3px rgba(0, 0, 0, 0.2);\\n width: 280px;\\n}\\n\\n.mdl-dialog__title {\\n padding: 24px 24px 0;\\n margin: 0;\\n font-size: 2.5rem;\\n}\\n\\n.mdl-dialog__actions {\\n padding: 8px 8px 8px 24px;\\n display: flex;\\n flex-direction: row-reverse;\\n flex-wrap: wrap;\\n}\\n\\n.mdl-dialog__actions > * {\\n margin-right: 8px;\\n height: 36px;\\n}\\n\\n.mdl-dialog__actions > *:first-child {\\n margin-right: 0;\\n}\\n\\n.mdl-dialog__actions--full-width {\\n padding: 0 0 8px 0;\\n}\\n\\n.mdl-dialog__actions--full-width > * {\\n height: 48px;\\n flex: 0 0 100%;\\n padding-right: 16px;\\n margin-right: 0;\\n text-align: right;\\n}\\n\\n.mdl-dialog__content {\\n padding: 20px 24px 24px 24px;\\n color: rgba(0,0,0, 0.54);\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Typography */\\n\\n/* Shadows */\\n\\n/* Animations */\\n\\n/* Dialog */\\n\\n.mdl-mega-footer {\\n padding: 16px 40px;\\n color: rgb(158,158,158);\\n background-color: rgb(66,66,66);\\n}\\n\\n.mdl-mega-footer--top-section:after,\\n.mdl-mega-footer--middle-section:after,\\n.mdl-mega-footer--bottom-section:after,\\n.mdl-mega-footer__top-section:after,\\n.mdl-mega-footer__middle-section:after,\\n.mdl-mega-footer__bottom-section:after {\\n content: \\\"\\\";\\n display: block;\\n clear: both;\\n}\\n\\n.mdl-mega-footer--left-section,\\n.mdl-mega-footer__left-section {\\n margin-bottom: 16px;\\n}\\n\\n.mdl-mega-footer--right-section,\\n.mdl-mega-footer__right-section {\\n margin-bottom: 16px;\\n}\\n\\n.mdl-mega-footer--right-section a,\\n.mdl-mega-footer__right-section a {\\n display: block;\\n margin-bottom: 16px;\\n color: inherit;\\n text-decoration: none;\\n}\\n\\n@media screen and (min-width: 760px) {\\n .mdl-mega-footer--left-section,\\n .mdl-mega-footer__left-section {\\n float: left;\\n }\\n\\n .mdl-mega-footer--right-section,\\n .mdl-mega-footer__right-section {\\n float: right;\\n }\\n\\n .mdl-mega-footer--right-section a,\\n .mdl-mega-footer__right-section a {\\n display: inline-block;\\n margin-left: 16px;\\n line-height: 36px;\\n vertical-align: middle;\\n }\\n}\\n\\n.mdl-mega-footer--social-btn,\\n.mdl-mega-footer__social-btn {\\n width: 36px;\\n height: 36px;\\n padding: 0;\\n margin: 0;\\n background-color: rgb(158,158,158);\\n border: none;\\n}\\n\\n.mdl-mega-footer--drop-down-section,\\n.mdl-mega-footer__drop-down-section {\\n display: block;\\n position: relative;\\n}\\n\\n@media screen and (min-width: 760px) {\\n .mdl-mega-footer--drop-down-section,\\n .mdl-mega-footer__drop-down-section {\\n width: 33%;\\n }\\n\\n .mdl-mega-footer--drop-down-section:nth-child(1),\\n .mdl-mega-footer--drop-down-section:nth-child(2),\\n .mdl-mega-footer__drop-down-section:nth-child(1),\\n .mdl-mega-footer__drop-down-section:nth-child(2) {\\n float: left;\\n }\\n\\n .mdl-mega-footer--drop-down-section:nth-child(3),\\n .mdl-mega-footer__drop-down-section:nth-child(3) {\\n float: right;\\n }\\n\\n .mdl-mega-footer--drop-down-section:nth-child(3):after,\\n .mdl-mega-footer__drop-down-section:nth-child(3):after {\\n clear: right;\\n }\\n\\n .mdl-mega-footer--drop-down-section:nth-child(4),\\n .mdl-mega-footer__drop-down-section:nth-child(4) {\\n clear: right;\\n float: right;\\n }\\n\\n .mdl-mega-footer--middle-section:after,\\n .mdl-mega-footer__middle-section:after {\\n content: \\\"\\\";\\n display: block;\\n clear: both;\\n }\\n\\n .mdl-mega-footer--bottom-section,\\n .mdl-mega-footer__bottom-section {\\n padding-top: 0;\\n }\\n}\\n\\n@media screen and (min-width: 1024px) {\\n .mdl-mega-footer--drop-down-section,\\n .mdl-mega-footer--drop-down-section:nth-child(3),\\n .mdl-mega-footer--drop-down-section:nth-child(4),\\n .mdl-mega-footer__drop-down-section,\\n .mdl-mega-footer__drop-down-section:nth-child(3),\\n .mdl-mega-footer__drop-down-section:nth-child(4) {\\n width: 24%;\\n float: left;\\n }\\n}\\n\\n.mdl-mega-footer--heading-checkbox,\\n.mdl-mega-footer__heading-checkbox {\\n position: absolute;\\n width: 100%;\\n height: 55.8px;\\n padding: 32px;\\n margin: 0;\\n margin-top: -16px;\\n cursor: pointer;\\n z-index: 1;\\n opacity: 0;\\n}\\n\\n.mdl-mega-footer--heading-checkbox + .mdl-mega-footer--heading:after,\\n.mdl-mega-footer--heading-checkbox + .mdl-mega-footer__heading:after,\\n.mdl-mega-footer__heading-checkbox + .mdl-mega-footer--heading:after,\\n.mdl-mega-footer__heading-checkbox + .mdl-mega-footer__heading:after {\\n font-family: \\\"Material Icons\\\";\\n content: \\\"\\\\E5CE\\\";\\n}\\n\\n.mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer--link-list,\\n.mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer__link-list,\\n.mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer--heading + .mdl-mega-footer--link-list,\\n.mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer__heading + .mdl-mega-footer__link-list,\\n.mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer--link-list,\\n.mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer__link-list,\\n.mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer--heading + .mdl-mega-footer--link-list,\\n.mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer__heading + .mdl-mega-footer__link-list {\\n display: none;\\n}\\n\\n.mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer--heading:after,\\n.mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer__heading:after,\\n.mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer--heading:after,\\n.mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer__heading:after {\\n font-family: \\\"Material Icons\\\";\\n content: \\\"\\\\E5CF\\\";\\n}\\n\\n.mdl-mega-footer--heading,\\n.mdl-mega-footer__heading {\\n position: relative;\\n width: 100%;\\n padding-right: 39.8px;\\n margin-bottom: 16px;\\n box-sizing: border-box;\\n font-size: 14px;\\n line-height: 23.8px;\\n font-weight: 500;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n overflow: hidden;\\n color: rgb(224,224,224);\\n}\\n\\n.mdl-mega-footer--heading:after,\\n.mdl-mega-footer__heading:after {\\n content: \\\"\\\";\\n position: absolute;\\n top: 0;\\n right: 0;\\n display: block;\\n width: 23.8px;\\n height: 23.8px;\\n background-size: cover;\\n}\\n\\n.mdl-mega-footer--link-list,\\n.mdl-mega-footer__link-list {\\n list-style: none;\\n margin: 0;\\n padding: 0;\\n margin-bottom: 32px;\\n}\\n\\n.mdl-mega-footer--link-list:after,\\n.mdl-mega-footer__link-list:after {\\n clear: both;\\n display: block;\\n content: \\\"\\\";\\n}\\n\\n.mdl-mega-footer--link-list li,\\n.mdl-mega-footer__link-list li {\\n font-size: 14px;\\n font-weight: 400;\\n line-height: 24px;\\n letter-spacing: 0;\\n line-height: 20px;\\n}\\n\\n.mdl-mega-footer--link-list a,\\n.mdl-mega-footer__link-list a {\\n color: inherit;\\n text-decoration: none;\\n white-space: nowrap;\\n}\\n\\n@media screen and (min-width: 760px) {\\n .mdl-mega-footer--heading-checkbox,\\n .mdl-mega-footer__heading-checkbox {\\n display: none;\\n }\\n\\n .mdl-mega-footer--heading-checkbox + .mdl-mega-footer--heading:after,\\n .mdl-mega-footer--heading-checkbox + .mdl-mega-footer__heading:after,\\n .mdl-mega-footer__heading-checkbox + .mdl-mega-footer--heading:after,\\n .mdl-mega-footer__heading-checkbox + .mdl-mega-footer__heading:after {\\n content: \\\"\\\";\\n }\\n\\n .mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer--link-list,\\n .mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer__link-list,\\n .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer__heading + .mdl-mega-footer__link-list,\\n .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer--heading + .mdl-mega-footer--link-list,\\n .mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer--link-list,\\n .mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer__link-list,\\n .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer__heading + .mdl-mega-footer__link-list,\\n .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer--heading + .mdl-mega-footer--link-list {\\n display: block;\\n }\\n\\n .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer--heading:after,\\n .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer__heading:after,\\n .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer--heading:after,\\n .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer__heading:after {\\n content: \\\"\\\";\\n }\\n}\\n\\n.mdl-mega-footer--bottom-section,\\n.mdl-mega-footer__bottom-section {\\n padding-top: 16px;\\n margin-bottom: 16px;\\n}\\n\\n.mdl-logo {\\n margin-bottom: 16px;\\n color: white;\\n}\\n\\n.mdl-mega-footer--bottom-section .mdl-mega-footer--link-list li,\\n.mdl-mega-footer__bottom-section .mdl-mega-footer__link-list li {\\n float: left;\\n margin-bottom: 0;\\n margin-right: 16px;\\n}\\n\\n@media screen and (min-width: 760px) {\\n .mdl-logo {\\n float: left;\\n margin-bottom: 0;\\n margin-right: 16px;\\n }\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n.mdl-mini-footer {\\n display: flex;\\n flex-flow: row wrap;\\n justify-content: space-between;\\n padding: 32px 16px;\\n color: rgb(158,158,158);\\n background-color: rgb(66,66,66);\\n}\\n\\n.mdl-mini-footer:after {\\n content: \\\"\\\";\\n display: block;\\n}\\n\\n.mdl-mini-footer .mdl-logo {\\n line-height: 36px;\\n}\\n\\n.mdl-mini-footer--link-list,\\n.mdl-mini-footer__link-list {\\n display: flex;\\n flex-flow: row nowrap;\\n list-style: none;\\n margin: 0;\\n padding: 0;\\n}\\n\\n.mdl-mini-footer--link-list li,\\n.mdl-mini-footer__link-list li {\\n margin-bottom: 0;\\n margin-right: 16px;\\n}\\n\\n@media screen and (min-width: 760px) {\\n .mdl-mini-footer--link-list li,\\n .mdl-mini-footer__link-list li {\\n line-height: 36px;\\n }\\n}\\n\\n.mdl-mini-footer--link-list a,\\n.mdl-mini-footer__link-list a {\\n color: inherit;\\n text-decoration: none;\\n white-space: nowrap;\\n}\\n\\n.mdl-mini-footer--left-section,\\n.mdl-mini-footer__left-section {\\n display: inline-block;\\n order: 0;\\n}\\n\\n.mdl-mini-footer--right-section,\\n.mdl-mini-footer__right-section {\\n display: inline-block;\\n order: 1;\\n}\\n\\n.mdl-mini-footer--social-btn,\\n.mdl-mini-footer__social-btn {\\n width: 36px;\\n height: 36px;\\n padding: 0;\\n margin: 0;\\n background-color: rgb(158,158,158);\\n border: none;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n.mdl-icon-toggle {\\n position: relative;\\n z-index: 1;\\n vertical-align: middle;\\n display: inline-block;\\n height: 32px;\\n margin: 0;\\n padding: 0;\\n}\\n\\n.mdl-icon-toggle__input {\\n line-height: 32px;\\n}\\n\\n.mdl-icon-toggle.is-upgraded .mdl-icon-toggle__input {\\n position: absolute;\\n width: 0;\\n height: 0;\\n margin: 0;\\n padding: 0;\\n opacity: 0;\\n -ms-appearance: none;\\n -moz-appearance: none;\\n -webkit-appearance: none;\\n appearance: none;\\n border: none;\\n}\\n\\n.mdl-icon-toggle__label {\\n display: inline-block;\\n position: relative;\\n cursor: pointer;\\n height: 32px;\\n width: 32px;\\n min-width: 32px;\\n color: rgb(97,97,97);\\n border-radius: 50%;\\n padding: 0;\\n margin-left: 0;\\n margin-right: 0;\\n text-align: center;\\n background-color: transparent;\\n will-change: background-color;\\n transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1);\\n}\\n\\n.mdl-icon-toggle__label.material-icons {\\n line-height: 32px;\\n font-size: 24px;\\n}\\n\\n.mdl-icon-toggle.is-checked .mdl-icon-toggle__label {\\n color: rgb(98, 105, 113);\\n}\\n\\n.mdl-icon-toggle.is-disabled .mdl-icon-toggle__label {\\n color: rgba(0,0,0, 0.26);\\n cursor: auto;\\n transition: none;\\n}\\n\\n.mdl-icon-toggle.is-focused .mdl-icon-toggle__label {\\n background-color: rgba(0,0,0, 0.12);\\n}\\n\\n.mdl-icon-toggle.is-focused.is-checked .mdl-icon-toggle__label {\\n background-color: rgba(98, 105, 113, 0.26);\\n}\\n\\n.mdl-icon-toggle__ripple-container {\\n position: absolute;\\n z-index: 2;\\n top: -2px;\\n left: -2px;\\n box-sizing: border-box;\\n width: 36px;\\n height: 36px;\\n border-radius: 50%;\\n cursor: pointer;\\n overflow: hidden;\\n -webkit-mask-image: -webkit-radial-gradient(circle, white, black);\\n}\\n\\n.mdl-icon-toggle__ripple-container .mdl-ripple {\\n background: rgb(97,97,97);\\n}\\n\\n.mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container {\\n cursor: auto;\\n}\\n\\n.mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container .mdl-ripple {\\n background: transparent;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Typography */\\n\\n/* Shadows */\\n\\n/* Animations */\\n\\n/* Dialog */\\n\\n.mdl-list {\\n display: block;\\n padding: 8px 0;\\n list-style: none;\\n}\\n\\n.mdl-list__item {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 16px;\\n font-weight: 400;\\n line-height: 24px;\\n letter-spacing: 0.04em;\\n line-height: 1;\\n display: flex;\\n min-height: 48px;\\n box-sizing: border-box;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n align-items: center;\\n padding: 16px;\\n cursor: default;\\n color: rgba(0,0,0, 0.87);\\n overflow: hidden;\\n}\\n\\n.mdl-list__item .mdl-list__item-primary-content {\\n order: 0;\\n flex-grow: 2;\\n text-decoration: none;\\n box-sizing: border-box;\\n display: flex;\\n align-items: center;\\n}\\n\\n.mdl-list__item .mdl-list__item-primary-content .mdl-list__item-icon {\\n margin-right: 32px;\\n}\\n\\n.mdl-list__item .mdl-list__item-primary-content .mdl-list__item-avatar {\\n margin-right: 16px;\\n}\\n\\n.mdl-list__item .mdl-list__item-secondary-content {\\n display: flex;\\n flex-flow: column;\\n align-items: flex-end;\\n margin-left: 16px;\\n}\\n\\n.mdl-list__item .mdl-list__item-secondary-content .mdl-list__item-secondary-action label {\\n display: inline;\\n}\\n\\n.mdl-list__item .mdl-list__item-secondary-content .mdl-list__item-secondary-info {\\n font-size: 12px;\\n font-weight: 400;\\n line-height: 1;\\n letter-spacing: 0;\\n color: rgba(0,0,0, 0.54);\\n}\\n\\n.mdl-list__item .mdl-list__item-secondary-content .mdl-list__item-sub-header {\\n padding: 0 0 0 16px;\\n}\\n\\n.mdl-list__item-icon,\\n.mdl-list__item-icon.material-icons {\\n height: 24px;\\n width: 24px;\\n font-size: 24px;\\n box-sizing: border-box;\\n color: rgb(117,117,117);\\n}\\n\\n.mdl-list__item-avatar,\\n.mdl-list__item-avatar.material-icons {\\n height: 40px;\\n width: 40px;\\n box-sizing: border-box;\\n border-radius: 50%;\\n background-color: rgb(117,117,117);\\n font-size: 40px;\\n color: white;\\n}\\n\\n.mdl-list__item--two-line {\\n height: 72px;\\n}\\n\\n.mdl-list__item--two-line .mdl-list__item-primary-content {\\n height: 36px;\\n line-height: 20px;\\n display: block;\\n}\\n\\n.mdl-list__item--two-line .mdl-list__item-primary-content .mdl-list__item-avatar {\\n float: left;\\n}\\n\\n.mdl-list__item--two-line .mdl-list__item-primary-content .mdl-list__item-icon {\\n float: left;\\n margin-top: 6px;\\n}\\n\\n.mdl-list__item--two-line .mdl-list__item-primary-content .mdl-list__item-secondary-content {\\n height: 36px;\\n}\\n\\n.mdl-list__item--two-line .mdl-list__item-primary-content .mdl-list__item-sub-title {\\n font-size: 14px;\\n font-weight: 400;\\n line-height: 24px;\\n letter-spacing: 0;\\n line-height: 18px;\\n color: rgba(0,0,0, 0.54);\\n display: block;\\n padding: 0;\\n}\\n\\n.mdl-list__item--three-line {\\n height: 88px;\\n}\\n\\n.mdl-list__item--three-line .mdl-list__item-primary-content {\\n height: 52px;\\n line-height: 20px;\\n display: block;\\n}\\n\\n.mdl-list__item--three-line .mdl-list__item-primary-content .mdl-list__item-avatar,\\n.mdl-list__item--three-line .mdl-list__item-primary-content .mdl-list__item-icon {\\n float: left;\\n}\\n\\n.mdl-list__item--three-line .mdl-list__item-secondary-content {\\n height: 52px;\\n}\\n\\n.mdl-list__item--three-line .mdl-list__item-text-body {\\n font-size: 14px;\\n font-weight: 400;\\n line-height: 24px;\\n letter-spacing: 0;\\n line-height: 18px;\\n height: 52px;\\n color: rgba(0,0,0, 0.54);\\n display: block;\\n padding: 0;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Typography */\\n\\n/* Shadows */\\n\\n/* Animations */\\n\\n/* Dialog */\\n\\n.mdl-menu__container {\\n display: block;\\n margin: 0;\\n padding: 0;\\n border: none;\\n position: absolute;\\n overflow: visible;\\n height: 0;\\n width: 0;\\n visibility: hidden;\\n z-index: -1;\\n}\\n\\n.mdl-menu__container.is-visible,\\n.mdl-menu__container.is-animating {\\n z-index: 999;\\n visibility: visible;\\n}\\n\\n.mdl-menu__outline {\\n display: block;\\n background: rgb(255,255,255);\\n margin: 0;\\n padding: 0;\\n border: none;\\n border-radius: 2px;\\n position: absolute;\\n top: 0;\\n left: 0;\\n overflow: hidden;\\n opacity: 0;\\n transform: scale(0);\\n transform-origin: 0 0;\\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n will-change: transform;\\n transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);\\n z-index: -1;\\n}\\n\\n.mdl-menu__container.is-visible .mdl-menu__outline {\\n opacity: 1;\\n transform: scale(1);\\n z-index: 999;\\n}\\n\\n.mdl-menu__outline.mdl-menu--bottom-right {\\n transform-origin: 100% 0;\\n}\\n\\n.mdl-menu__outline.mdl-menu--top-left {\\n transform-origin: 0 100%;\\n}\\n\\n.mdl-menu__outline.mdl-menu--top-right {\\n transform-origin: 100% 100%;\\n}\\n\\n.mdl-menu {\\n position: absolute;\\n list-style: none;\\n top: 0;\\n left: 0;\\n height: auto;\\n width: auto;\\n min-width: 124px;\\n padding: 8px 0;\\n margin: 0;\\n opacity: 0;\\n clip: rect(0 0 0 0);\\n z-index: -1;\\n}\\n\\n.mdl-menu__container.is-visible .mdl-menu {\\n opacity: 1;\\n z-index: 999;\\n}\\n\\n.mdl-menu.is-animating {\\n transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1), clip 0.3s cubic-bezier(0.4, 0, 0.2, 1);\\n}\\n\\n.mdl-menu.mdl-menu--bottom-right {\\n left: auto;\\n right: 0;\\n}\\n\\n.mdl-menu.mdl-menu--top-left {\\n top: auto;\\n bottom: 0;\\n}\\n\\n.mdl-menu.mdl-menu--top-right {\\n top: auto;\\n left: auto;\\n bottom: 0;\\n right: 0;\\n}\\n\\n.mdl-menu.mdl-menu--unaligned {\\n top: auto;\\n left: auto;\\n}\\n\\n.mdl-menu__item {\\n display: block;\\n border: none;\\n color: rgba(0,0,0, 0.87);\\n background-color: transparent;\\n text-align: left;\\n margin: 0;\\n padding: 0 16px;\\n outline-color: rgb(189,189,189);\\n position: relative;\\n overflow: hidden;\\n font-size: 14px;\\n font-weight: 400;\\n line-height: 24px;\\n letter-spacing: 0;\\n text-decoration: none;\\n cursor: pointer;\\n height: 48px;\\n line-height: 48px;\\n white-space: nowrap;\\n opacity: 0;\\n transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);\\n user-select: none;\\n}\\n\\n.mdl-menu__container.is-visible .mdl-menu__item {\\n opacity: 1;\\n}\\n\\n.mdl-menu__item::-moz-focus-inner {\\n border: 0;\\n}\\n\\n.mdl-menu__item--full-bleed-divider {\\n border-bottom: 1px solid rgba(0,0,0, 0.12);\\n}\\n\\n.mdl-menu__item[disabled],\\n.mdl-menu__item[data-mdl-disabled] {\\n color: rgb(189,189,189);\\n background-color: transparent;\\n cursor: auto;\\n}\\n\\n.mdl-menu__item[disabled]:hover,\\n.mdl-menu__item[data-mdl-disabled]:hover {\\n background-color: transparent;\\n}\\n\\n.mdl-menu__item[disabled]:focus,\\n.mdl-menu__item[data-mdl-disabled]:focus {\\n background-color: transparent;\\n}\\n\\n.mdl-menu__item[disabled] .mdl-ripple,\\n.mdl-menu__item[data-mdl-disabled] .mdl-ripple {\\n background: transparent;\\n}\\n\\n.mdl-menu__item:hover {\\n background-color: rgb(238,238,238);\\n}\\n\\n.mdl-menu__item:focus {\\n outline: none;\\n background-color: rgb(238,238,238);\\n}\\n\\n.mdl-menu__item:active {\\n background-color: rgb(224,224,224);\\n}\\n\\n.mdl-menu__item--ripple-container {\\n display: block;\\n height: 100%;\\n left: 0px;\\n position: absolute;\\n top: 0px;\\n width: 100%;\\n z-index: 0;\\n overflow: hidden;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n.mdl-progress {\\n display: block;\\n position: relative;\\n height: 4px;\\n width: 500px;\\n max-width: 100%;\\n}\\n\\n.mdl-progress > .bar {\\n display: block;\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n width: 0%;\\n transition: width 0.2s cubic-bezier(0.4, 0, 0.2, 1);\\n}\\n\\n.mdl-progress > .progressbar {\\n background-color: rgb(98, 105, 113);\\n z-index: 1;\\n left: 0;\\n}\\n\\n.mdl-progress > .bufferbar {\\n background-image: linear-gradient(to right, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7)), linear-gradient(to right, rgb(98, 105, 113), rgb(98, 105, 113));\\n z-index: 0;\\n left: 0;\\n}\\n\\n.mdl-progress > .auxbar {\\n right: 0;\\n}\\n\\n@supports (-webkit-appearance: none) {\\n .mdl-progress:not(.mdl-progress--indeterminate):not(.mdl-progress--indeterminate) > .auxbar,\\n .mdl-progress:not(.mdl-progress__indeterminate):not(.mdl-progress__indeterminate) > .auxbar {\\n background-image: linear-gradient(to right, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7)), linear-gradient(to right, rgb(98, 105, 113), rgb(98, 105, 113));\\n mask: url(\" + escape(require(\"material-design-lite/dist/images/buffer.svg?embed\")) + \");\\n }\\n}\\n\\n.mdl-progress:not(.mdl-progress--indeterminate) > .auxbar,\\n.mdl-progress:not(.mdl-progress__indeterminate) > .auxbar {\\n background-image: linear-gradient(to right, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.9)), linear-gradient(to right, rgb(98, 105, 113), rgb(98, 105, 113));\\n}\\n\\n.mdl-progress.mdl-progress--indeterminate > .bar1,\\n.mdl-progress.mdl-progress__indeterminate > .bar1 {\\n background-color: rgb(98, 105, 113);\\n animation-name: indeterminate1;\\n animation-duration: 2s;\\n animation-iteration-count: infinite;\\n animation-timing-function: linear;\\n}\\n\\n.mdl-progress.mdl-progress--indeterminate > .bar3,\\n.mdl-progress.mdl-progress__indeterminate > .bar3 {\\n background-image: none;\\n background-color: rgb(98, 105, 113);\\n animation-name: indeterminate2;\\n animation-duration: 2s;\\n animation-iteration-count: infinite;\\n animation-timing-function: linear;\\n}\\n\\n@keyframes indeterminate1 {\\n 0% {\\n left: 0%;\\n width: 0%;\\n }\\n\\n 50% {\\n left: 25%;\\n width: 75%;\\n }\\n\\n 75% {\\n left: 100%;\\n width: 0%;\\n }\\n}\\n\\n@keyframes indeterminate2 {\\n 0% {\\n left: 0%;\\n width: 0%;\\n }\\n\\n 50% {\\n left: 0%;\\n width: 0%;\\n }\\n\\n 75% {\\n left: 0%;\\n width: 25%;\\n }\\n\\n 100% {\\n left: 100%;\\n width: 0%;\\n }\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Typography */\\n\\n/* Shadows */\\n\\n/* Animations */\\n\\n/* Dialog */\\n\\n.mdl-navigation {\\n display: flex;\\n flex-wrap: nowrap;\\n box-sizing: border-box;\\n}\\n\\n.mdl-navigation__link {\\n color: rgb(66,66,66);\\n text-decoration: none;\\n margin: 0;\\n font-size: 14px;\\n font-weight: 400;\\n line-height: 24px;\\n letter-spacing: 0;\\n opacity: 0.87;\\n}\\n\\n.mdl-navigation__link .material-icons {\\n vertical-align: middle;\\n}\\n\\n.mdl-layout {\\n width: 100%;\\n height: 100%;\\n display: flex;\\n flex-direction: column;\\n overflow-y: auto;\\n overflow-x: hidden;\\n position: relative;\\n -webkit-overflow-scrolling: touch;\\n}\\n\\n.mdl-layout.is-small-screen .mdl-layout--large-screen-only {\\n display: none;\\n}\\n\\n.mdl-layout:not(.is-small-screen) .mdl-layout--small-screen-only {\\n display: none;\\n}\\n\\n.mdl-layout__container {\\n position: absolute;\\n width: 100%;\\n height: 100%;\\n}\\n\\n.mdl-layout__title,\\n.mdl-layout-title {\\n display: block;\\n position: relative;\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 20px;\\n font-weight: 500;\\n line-height: 1;\\n letter-spacing: 0.02em;\\n font-weight: 400;\\n box-sizing: border-box;\\n}\\n\\n.mdl-layout-spacer {\\n flex-grow: 1;\\n}\\n\\n.mdl-layout__drawer {\\n display: flex;\\n flex-direction: column;\\n flex-wrap: nowrap;\\n width: 250px;\\n height: 100%;\\n max-height: 100%;\\n position: absolute;\\n top: 0;\\n left: 0;\\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n box-sizing: border-box;\\n border-right: 1px solid rgb(224,224,224);\\n background: rgb(250,250,250);\\n transform: translateX(-260px);\\n transform-style: preserve-3d;\\n will-change: transform;\\n transition-duration: 0.2s;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-property: transform;\\n color: rgb(66,66,66);\\n overflow: visible;\\n overflow-y: auto;\\n z-index: 5;\\n}\\n\\n.mdl-layout__drawer.is-visible {\\n transform: translateX(0);\\n}\\n\\n.mdl-layout__drawer.is-visible ~ .mdl-layout__content.mdl-layout__content {\\n overflow: hidden;\\n}\\n\\n.mdl-layout__drawer > * {\\n flex-shrink: 0;\\n}\\n\\n.mdl-layout__drawer > .mdl-layout__title,\\n.mdl-layout__drawer > .mdl-layout-title {\\n line-height: 50px;\\n padding-left: 20px;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__drawer > .mdl-layout__title,\\n .mdl-layout__drawer > .mdl-layout-title {\\n line-height: 50px;\\n padding-left: 16px;\\n }\\n}\\n\\n.mdl-layout__drawer .mdl-navigation {\\n flex-direction: column;\\n align-items: stretch;\\n padding-top: 16px;\\n}\\n\\n.mdl-layout__drawer .mdl-navigation .mdl-navigation__link {\\n display: block;\\n flex-shrink: 0;\\n padding: 16px 20px;\\n margin: 0;\\n color: #757575;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__drawer .mdl-navigation .mdl-navigation__link {\\n padding: 16px 16px;\\n }\\n}\\n\\n.mdl-layout__drawer .mdl-navigation .mdl-navigation__link:hover {\\n background-color: rgb(224,224,224);\\n}\\n\\n.mdl-layout__drawer .mdl-navigation .mdl-navigation__link--current,\\n.mdl-layout__drawer .mdl-navigation .router-link-active {\\n background-color: rgb(224,224,224);\\n color: rgb(0,0,0);\\n}\\n\\n@media screen and (min-width: 1201px) {\\n .mdl-layout--fixed-drawer > .mdl-layout__drawer {\\n transform: translateX(0);\\n }\\n}\\n\\n.mdl-layout__drawer-button {\\n display: block;\\n position: absolute;\\n height: 48px;\\n width: 48px;\\n border: 0;\\n flex-shrink: 0;\\n overflow: hidden;\\n text-align: center;\\n cursor: pointer;\\n font-size: 26px;\\n line-height: 50px;\\n font-family: Helvetica, Arial, sans-serif;\\n margin: 2px 12px;\\n top: 0;\\n left: 0;\\n color: rgb(255, 255, 255);\\n z-index: 4;\\n}\\n\\n.mdl-layout__header .mdl-layout__drawer-button {\\n position: absolute;\\n color: rgb(255, 255, 255);\\n background-color: inherit;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__header .mdl-layout__drawer-button {\\n margin: 4px;\\n }\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__drawer-button {\\n margin: 4px;\\n color: rgba(0, 0, 0, 0.5);\\n }\\n}\\n\\n@media screen and (min-width: 1201px) {\\n .mdl-layout__drawer-button {\\n line-height: 54px;\\n }\\n\\n .mdl-layout--no-desktop-drawer-button .mdl-layout__drawer-button,\\n .mdl-layout--fixed-drawer > .mdl-layout__drawer-button,\\n .mdl-layout--no-drawer-button .mdl-layout__drawer-button {\\n display: none;\\n }\\n}\\n\\n.mdl-layout__header {\\n display: flex;\\n flex-direction: column;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n box-sizing: border-box;\\n flex-shrink: 0;\\n width: 100%;\\n margin: 0;\\n padding: 0;\\n border: none;\\n min-height: 50px;\\n max-height: 1000px;\\n z-index: 3;\\n background-color: rgb(98, 105, 113);\\n color: rgb(255, 255, 255);\\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n transition-duration: 0.2s;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-property: max-height, box-shadow;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__header {\\n min-height: 50px;\\n }\\n}\\n\\n.mdl-layout--fixed-drawer.is-upgraded:not(.is-small-screen) > .mdl-layout__header {\\n margin-left: 250px;\\n width: calc(100% - 250px);\\n}\\n\\n@media screen and (min-width: 1201px) {\\n .mdl-layout--fixed-drawer > .mdl-layout__header .mdl-layout__header-row {\\n padding-left: 40px;\\n }\\n}\\n\\n.mdl-layout__header > .mdl-layout-icon {\\n position: absolute;\\n left: 20px;\\n top: 9px;\\n height: 32px;\\n width: 32px;\\n overflow: hidden;\\n z-index: 3;\\n display: block;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__header > .mdl-layout-icon {\\n left: 16px;\\n top: 9px;\\n }\\n}\\n\\n.mdl-layout.has-drawer .mdl-layout__header > .mdl-layout-icon {\\n display: none;\\n}\\n\\n.mdl-layout__header.is-compact {\\n max-height: 50px;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__header.is-compact {\\n max-height: 50px;\\n }\\n}\\n\\n.mdl-layout__header.is-compact.has-tabs {\\n height: 98px;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__header.is-compact.has-tabs {\\n min-height: 98px;\\n }\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__header {\\n display: none;\\n }\\n\\n .mdl-layout--fixed-header > .mdl-layout__header {\\n display: flex;\\n }\\n}\\n\\n.mdl-layout__header--transparent.mdl-layout__header--transparent {\\n background-color: transparent;\\n box-shadow: none;\\n}\\n\\n.mdl-layout__header--seamed {\\n box-shadow: none;\\n}\\n\\n.mdl-layout__header--scroll {\\n box-shadow: none;\\n}\\n\\n.mdl-layout__header--waterfall {\\n box-shadow: none;\\n overflow: hidden;\\n}\\n\\n.mdl-layout__header--waterfall.is-casting-shadow {\\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n}\\n\\n.mdl-layout__header--waterfall.mdl-layout__header--waterfall-hide-top {\\n justify-content: flex-end;\\n}\\n\\n.mdl-layout__header-row {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n flex-shrink: 0;\\n box-sizing: border-box;\\n align-self: stretch;\\n align-items: center;\\n height: 50px;\\n margin: 0;\\n padding: 0 20px 0 80px;\\n}\\n\\n.mdl-layout--no-drawer-button .mdl-layout__header-row {\\n padding-left: 20px;\\n}\\n\\n@media screen and (min-width: 1201px) {\\n .mdl-layout--no-desktop-drawer-button .mdl-layout__header-row {\\n padding-left: 20px;\\n }\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__header-row {\\n height: 50px;\\n padding: 0 16px 0 72px;\\n }\\n\\n .mdl-layout--no-drawer-button .mdl-layout__header-row {\\n padding-left: 16px;\\n }\\n}\\n\\n.mdl-layout__header-row > * {\\n flex-shrink: 0;\\n}\\n\\n.mdl-layout__header--scroll .mdl-layout__header-row {\\n width: 100%;\\n}\\n\\n.mdl-layout__header-row .mdl-navigation {\\n margin: 0;\\n padding: 0;\\n height: 50px;\\n flex-direction: row;\\n align-items: center;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__header-row .mdl-navigation {\\n height: 50px;\\n }\\n}\\n\\n.mdl-layout__header-row .mdl-navigation__link {\\n display: block;\\n color: rgb(255, 255, 255);\\n line-height: 50px;\\n padding: 0 24px;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__header-row .mdl-navigation__link {\\n line-height: 50px;\\n padding: 0 16px;\\n }\\n}\\n\\n.mdl-layout__obfuscator {\\n background-color: transparent;\\n position: absolute;\\n top: 0;\\n left: 0;\\n height: 100%;\\n width: 100%;\\n z-index: 4;\\n visibility: hidden;\\n transition-property: background-color;\\n transition-duration: 0.2s;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n}\\n\\n.mdl-layout__obfuscator.is-visible {\\n background-color: rgba(0, 0, 0, 0.5);\\n visibility: visible;\\n}\\n\\n@supports (pointer-events: auto) {\\n .mdl-layout__obfuscator {\\n background-color: rgba(0, 0, 0, 0.5);\\n opacity: 0;\\n transition-property: opacity;\\n visibility: visible;\\n pointer-events: none;\\n }\\n\\n .mdl-layout__obfuscator.is-visible {\\n pointer-events: auto;\\n opacity: 1;\\n }\\n}\\n\\n.mdl-layout__content {\\n -ms-flex: 0 1 auto;\\n position: relative;\\n display: inline-block;\\n overflow-y: auto;\\n overflow-x: hidden;\\n flex-grow: 1;\\n z-index: 1;\\n -webkit-overflow-scrolling: touch;\\n}\\n\\n.mdl-layout--fixed-drawer > .mdl-layout__content {\\n margin-left: 250px;\\n}\\n\\n.mdl-layout__container.has-scrolling-header .mdl-layout__content {\\n overflow: visible;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout--fixed-drawer > .mdl-layout__content {\\n margin-left: 0;\\n }\\n\\n .mdl-layout__container.has-scrolling-header .mdl-layout__content {\\n overflow-y: auto;\\n overflow-x: hidden;\\n }\\n}\\n\\n.mdl-layout__tab-bar {\\n height: 96px;\\n margin: 0;\\n width: calc(100% - 112px);\\n padding: 0 0 0 56px;\\n display: flex;\\n background-color: rgb(98, 105, 113);\\n overflow-y: hidden;\\n overflow-x: scroll;\\n}\\n\\n.mdl-layout__tab-bar::-webkit-scrollbar {\\n display: none;\\n}\\n\\n.mdl-layout--no-drawer-button .mdl-layout__tab-bar {\\n padding-left: -4px;\\n width: calc(100% - -8px);\\n}\\n\\n@media screen and (min-width: 1201px) {\\n .mdl-layout--no-desktop-drawer-button .mdl-layout__tab-bar {\\n padding-left: -4px;\\n width: calc(100% - -8px);\\n }\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__tab-bar {\\n width: calc(100% - 60px);\\n padding: 0 0 0 60px;\\n }\\n\\n .mdl-layout--no-drawer-button .mdl-layout__tab-bar {\\n width: calc(100% - 8px);\\n padding-left: 4px;\\n }\\n}\\n\\n.mdl-layout--fixed-tabs .mdl-layout__tab-bar {\\n padding: 0;\\n overflow: hidden;\\n width: 100%;\\n}\\n\\n.mdl-layout__tab-bar-container {\\n position: relative;\\n height: 48px;\\n width: 100%;\\n border: none;\\n margin: 0;\\n z-index: 2;\\n flex-grow: 0;\\n flex-shrink: 0;\\n overflow: hidden;\\n}\\n\\n.mdl-layout__container > .mdl-layout__tab-bar-container {\\n position: absolute;\\n top: 0;\\n left: 0;\\n}\\n\\n.mdl-layout__tab-bar-button {\\n display: inline-block;\\n position: absolute;\\n top: 0;\\n height: 48px;\\n width: 56px;\\n z-index: 4;\\n text-align: center;\\n background-color: rgb(98, 105, 113);\\n color: transparent;\\n cursor: pointer;\\n user-select: none;\\n}\\n\\n.mdl-layout--no-desktop-drawer-button .mdl-layout__tab-bar-button,\\n.mdl-layout--no-drawer-button .mdl-layout__tab-bar-button {\\n width: -4px;\\n}\\n\\n.mdl-layout--no-desktop-drawer-button .mdl-layout__tab-bar-button .material-icons,\\n.mdl-layout--no-drawer-button .mdl-layout__tab-bar-button .material-icons {\\n position: relative;\\n left: -14px;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__tab-bar-button {\\n width: 60px;\\n }\\n}\\n\\n.mdl-layout--fixed-tabs .mdl-layout__tab-bar-button {\\n display: none;\\n}\\n\\n.mdl-layout__tab-bar-button .material-icons {\\n line-height: 48px;\\n}\\n\\n.mdl-layout__tab-bar-button.is-active {\\n color: rgb(255, 255, 255);\\n}\\n\\n.mdl-layout__tab-bar-left-button {\\n left: 0;\\n}\\n\\n.mdl-layout__tab-bar-right-button {\\n right: 0;\\n}\\n\\n.mdl-layout__tab {\\n margin: 0;\\n border: none;\\n padding: 0 24px 0 24px;\\n float: left;\\n position: relative;\\n display: block;\\n flex-grow: 0;\\n flex-shrink: 0;\\n text-decoration: none;\\n height: 48px;\\n line-height: 48px;\\n text-align: center;\\n font-weight: 500;\\n font-size: 14px;\\n text-transform: uppercase;\\n color: rgba(255, 255, 255, 0.6);\\n overflow: hidden;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__tab {\\n padding: 0 12px 0 12px;\\n }\\n}\\n\\n.mdl-layout--fixed-tabs .mdl-layout__tab {\\n float: none;\\n flex-grow: 1;\\n padding: 0;\\n}\\n\\n.mdl-layout.is-upgraded .mdl-layout__tab.is-active {\\n color: rgb(255, 255, 255);\\n}\\n\\n.mdl-layout.is-upgraded .mdl-layout__tab.is-active::after {\\n height: 2px;\\n width: 100%;\\n display: block;\\n content: \\\" \\\";\\n bottom: 0;\\n left: 0;\\n position: absolute;\\n background: rgb(0, 128, 175);\\n animation: border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards;\\n transition: all 1s cubic-bezier(0.4, 0, 1, 1);\\n}\\n\\n.mdl-layout__tab .mdl-layout__tab-ripple-container {\\n display: block;\\n position: absolute;\\n height: 100%;\\n width: 100%;\\n left: 0;\\n top: 0;\\n z-index: 1;\\n overflow: hidden;\\n}\\n\\n.mdl-layout__tab .mdl-layout__tab-ripple-container .mdl-ripple {\\n background-color: rgb(255, 255, 255);\\n}\\n\\n.mdl-layout__tab-panel {\\n display: block;\\n}\\n\\n.mdl-layout.is-upgraded .mdl-layout__tab-panel {\\n display: none;\\n}\\n\\n.mdl-layout.is-upgraded .mdl-layout__tab-panel.is-active {\\n display: block;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Typography */\\n\\n/* Shadows */\\n\\n/* Animations */\\n\\n/* Dialog */\\n\\n.mdl-radio {\\n position: relative;\\n font-size: 13px;\\n line-height: 24px;\\n display: inline-block;\\n vertical-align: middle;\\n box-sizing: border-box;\\n height: 24px;\\n margin: 0;\\n padding-left: 0;\\n}\\n\\n.mdl-radio.is-upgraded {\\n padding-left: 24px;\\n}\\n\\n.mdl-radio__button {\\n line-height: 24px;\\n}\\n\\n.mdl-radio.is-upgraded .mdl-radio__button {\\n position: absolute;\\n width: 0;\\n height: 0;\\n margin: 0;\\n padding: 0;\\n opacity: 0;\\n -ms-appearance: none;\\n -moz-appearance: none;\\n -webkit-appearance: none;\\n appearance: none;\\n border: none;\\n}\\n\\n.mdl-radio__outer-circle {\\n position: absolute;\\n top: 4px;\\n left: 0;\\n display: inline-block;\\n box-sizing: border-box;\\n width: 16px;\\n height: 16px;\\n margin: 0;\\n cursor: pointer;\\n border: 2px solid rgba(0,0,0, 0.54);\\n border-radius: 50%;\\n z-index: 2;\\n}\\n\\n.mdl-radio.is-checked .mdl-radio__outer-circle {\\n border: 2px solid rgb(98, 105, 113);\\n}\\n\\n.mdl-radio__outer-circle fieldset[disabled] .mdl-radio,\\n.mdl-radio.is-disabled .mdl-radio__outer-circle {\\n border: 2px solid rgba(0,0,0, 0.26);\\n cursor: auto;\\n}\\n\\n.mdl-radio__inner-circle {\\n position: absolute;\\n z-index: 1;\\n margin: 0;\\n top: 8px;\\n left: 4px;\\n box-sizing: border-box;\\n width: 8px;\\n height: 8px;\\n cursor: pointer;\\n transition-duration: 0.28s;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-property: transform;\\n transform: scale(0, 0);\\n border-radius: 50%;\\n background: rgb(98, 105, 113);\\n}\\n\\n.mdl-radio.is-checked .mdl-radio__inner-circle {\\n transform: scale(1, 1);\\n}\\n\\nfieldset[disabled] .mdl-radio .mdl-radio__inner-circle,\\n.mdl-radio.is-disabled .mdl-radio__inner-circle {\\n background: rgba(0,0,0, 0.26);\\n cursor: auto;\\n}\\n\\n.mdl-radio.is-focused .mdl-radio__inner-circle {\\n box-shadow: 0 0 0px 10px rgba(0, 0, 0, 0.1);\\n}\\n\\n.mdl-radio__label {\\n cursor: pointer;\\n}\\n\\nfieldset[disabled] .mdl-radio .mdl-radio__label,\\n.mdl-radio.is-disabled .mdl-radio__label {\\n color: rgba(0,0,0, 0.26);\\n cursor: auto;\\n}\\n\\n.mdl-radio__ripple-container {\\n position: absolute;\\n z-index: 2;\\n top: -9px;\\n left: -13px;\\n box-sizing: border-box;\\n width: 42px;\\n height: 42px;\\n border-radius: 50%;\\n cursor: pointer;\\n overflow: hidden;\\n -webkit-mask-image: -webkit-radial-gradient(circle, white, black);\\n}\\n\\n.mdl-radio__ripple-container .mdl-ripple {\\n background: rgb(98, 105, 113);\\n}\\n\\nfieldset[disabled] .mdl-radio .mdl-radio__ripple-container,\\n.mdl-radio.is-disabled .mdl-radio__ripple-container {\\n cursor: auto;\\n}\\n\\nfieldset[disabled] .mdl-radio .mdl-radio__ripple-container .mdl-ripple,\\n.mdl-radio.is-disabled .mdl-radio__ripple-container .mdl-ripple {\\n background: transparent;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n_:-ms-input-placeholder,\\n:root .mdl-slider.mdl-slider.is-upgraded {\\n -ms-appearance: none;\\n height: 32px;\\n margin: 0;\\n}\\n\\n.mdl-slider {\\n width: calc(100% - 40px);\\n margin: 0 20px;\\n}\\n\\n.mdl-slider.is-upgraded {\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n height: 2px;\\n background: transparent;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n user-select: none;\\n outline: 0;\\n padding: 0;\\n color: rgb(98, 105, 113);\\n align-self: center;\\n z-index: 1;\\n cursor: pointer;\\n /**************************** Tracks ****************************/\\n /**************************** Thumbs ****************************/\\n /**************************** 0-value ****************************/\\n /**************************** Disabled ****************************/\\n}\\n\\n.mdl-slider.is-upgraded::-moz-focus-outer {\\n border: 0;\\n}\\n\\n.mdl-slider.is-upgraded::-ms-tooltip {\\n display: none;\\n}\\n\\n.mdl-slider.is-upgraded::-webkit-slider-runnable-track {\\n background: transparent;\\n}\\n\\n.mdl-slider.is-upgraded::-moz-range-track {\\n background: transparent;\\n border: none;\\n}\\n\\n.mdl-slider.is-upgraded::-ms-track {\\n background: none;\\n color: transparent;\\n height: 2px;\\n width: 100%;\\n border: none;\\n}\\n\\n.mdl-slider.is-upgraded::-ms-fill-lower {\\n padding: 0;\\n background: linear-gradient(to right, transparent, transparent 16px, rgb(98, 105, 113) 16px, rgb(98, 105, 113) 0);\\n}\\n\\n.mdl-slider.is-upgraded::-ms-fill-upper {\\n padding: 0;\\n background: linear-gradient(to left, transparent, transparent 16px, rgba(0,0,0, 0.26) 16px, rgba(0,0,0, 0.26) 0);\\n}\\n\\n.mdl-slider.is-upgraded::-webkit-slider-thumb {\\n -webkit-appearance: none;\\n width: 12px;\\n height: 12px;\\n box-sizing: border-box;\\n border-radius: 50%;\\n background: rgb(98, 105, 113);\\n border: none;\\n transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), border 0.18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1);\\n}\\n\\n.mdl-slider.is-upgraded::-moz-range-thumb {\\n -moz-appearance: none;\\n width: 12px;\\n height: 12px;\\n box-sizing: border-box;\\n border-radius: 50%;\\n background-image: none;\\n background: rgb(98, 105, 113);\\n border: none;\\n}\\n\\n.mdl-slider.is-upgraded:focus:not(:active)::-webkit-slider-thumb {\\n box-shadow: 0 0 0 10px rgba(98, 105, 113, 0.26);\\n}\\n\\n.mdl-slider.is-upgraded:focus:not(:active)::-moz-range-thumb {\\n box-shadow: 0 0 0 10px rgba(98, 105, 113, 0.26);\\n}\\n\\n.mdl-slider.is-upgraded:active::-webkit-slider-thumb {\\n background-image: none;\\n background: rgb(98, 105, 113);\\n transform: scale(1.5);\\n}\\n\\n.mdl-slider.is-upgraded:active::-moz-range-thumb {\\n background-image: none;\\n background: rgb(98, 105, 113);\\n transform: scale(1.5);\\n}\\n\\n.mdl-slider.is-upgraded::-ms-thumb {\\n width: 32px;\\n height: 32px;\\n border: none;\\n border-radius: 50%;\\n background: rgb(98, 105, 113);\\n transform: scale(0.375);\\n transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1);\\n}\\n\\n.mdl-slider.is-upgraded:focus:not(:active)::-ms-thumb {\\n background: radial-gradient(circle closest-side, rgb(98, 105, 113) 0%, rgb(98, 105, 113) 37.5%, rgba(98, 105, 113, 0.26) 37.5%, rgba(98, 105, 113, 0.26) 100%);\\n transform: scale(1);\\n}\\n\\n.mdl-slider.is-upgraded:active::-ms-thumb {\\n background: rgb(98, 105, 113);\\n transform: scale(0.5625);\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value::-webkit-slider-thumb {\\n border: 2px solid rgba(0,0,0, 0.26);\\n background: transparent;\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value::-moz-range-thumb {\\n border: 2px solid rgba(0,0,0, 0.26);\\n background: transparent;\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value + .mdl-slider__background-flex > .mdl-slider__background-upper {\\n left: 6px;\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-webkit-slider-thumb {\\n box-shadow: 0 0 0 10px rgba(0,0,0, 0.12);\\n background: rgba(0,0,0, 0.12);\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-moz-range-thumb {\\n box-shadow: 0 0 0 10px rgba(0,0,0, 0.12);\\n background: rgba(0,0,0, 0.12);\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value:active::-webkit-slider-thumb {\\n border: 1.6px solid rgba(0,0,0, 0.26);\\n transform: scale(1.5);\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value:active + .mdl-slider__background-flex > .mdl-slider__background-upper {\\n left: 9px;\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value:active::-moz-range-thumb {\\n border: 1.5px solid rgba(0,0,0, 0.26);\\n transform: scale(1.5);\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value::-ms-thumb {\\n background: radial-gradient(circle closest-side, transparent 0%, transparent 66.67%, rgba(0,0,0, 0.26) 66.67%, rgba(0,0,0, 0.26) 100%);\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-ms-thumb {\\n background: radial-gradient(circle closest-side, rgba(0,0,0, 0.12) 0%, rgba(0,0,0, 0.12) 25%, rgba(0,0,0, 0.26) 25%, rgba(0,0,0, 0.26) 37.5%, rgba(0,0,0, 0.12) 37.5%, rgba(0,0,0, 0.12) 100%);\\n transform: scale(1);\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value:active::-ms-thumb {\\n transform: scale(0.5625);\\n background: radial-gradient(circle closest-side, transparent 0%, transparent 77.78%, rgba(0,0,0, 0.26) 77.78%, rgba(0,0,0, 0.26) 100%);\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value::-ms-fill-lower {\\n background: transparent;\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value::-ms-fill-upper {\\n margin-left: 6px;\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value:active::-ms-fill-upper {\\n margin-left: 9px;\\n}\\n\\n.mdl-slider.is-upgraded:disabled:focus::-webkit-slider-thumb,\\n.mdl-slider.is-upgraded:disabled:active::-webkit-slider-thumb,\\n.mdl-slider.is-upgraded:disabled::-webkit-slider-thumb {\\n transform: scale(0.667);\\n background: rgba(0,0,0, 0.26);\\n}\\n\\n.mdl-slider.is-upgraded:disabled:focus::-moz-range-thumb,\\n.mdl-slider.is-upgraded:disabled:active::-moz-range-thumb,\\n.mdl-slider.is-upgraded:disabled::-moz-range-thumb {\\n transform: scale(0.667);\\n background: rgba(0,0,0, 0.26);\\n}\\n\\n.mdl-slider.is-upgraded:disabled + .mdl-slider__background-flex > .mdl-slider__background-lower {\\n background-color: rgba(0,0,0, 0.26);\\n left: -6px;\\n}\\n\\n.mdl-slider.is-upgraded:disabled + .mdl-slider__background-flex > .mdl-slider__background-upper {\\n left: 6px;\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-webkit-slider-thumb,\\n.mdl-slider.is-upgraded.is-lowest-value:disabled:active::-webkit-slider-thumb,\\n.mdl-slider.is-upgraded.is-lowest-value:disabled::-webkit-slider-thumb {\\n border: 3px solid rgba(0,0,0, 0.26);\\n background: transparent;\\n transform: scale(0.667);\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-moz-range-thumb,\\n.mdl-slider.is-upgraded.is-lowest-value:disabled:active::-moz-range-thumb,\\n.mdl-slider.is-upgraded.is-lowest-value:disabled::-moz-range-thumb {\\n border: 3px solid rgba(0,0,0, 0.26);\\n background: transparent;\\n transform: scale(0.667);\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value:disabled:active + .mdl-slider__background-flex > .mdl-slider__background-upper {\\n left: 6px;\\n}\\n\\n.mdl-slider.is-upgraded:disabled:focus::-ms-thumb,\\n.mdl-slider.is-upgraded:disabled:active::-ms-thumb,\\n.mdl-slider.is-upgraded:disabled::-ms-thumb {\\n transform: scale(0.25);\\n background: rgba(0,0,0, 0.26);\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-ms-thumb,\\n.mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-thumb,\\n.mdl-slider.is-upgraded.is-lowest-value:disabled::-ms-thumb {\\n transform: scale(0.25);\\n background: radial-gradient(circle closest-side, transparent 0%, transparent 50%, rgba(0,0,0, 0.26) 50%, rgba(0,0,0, 0.26) 100%);\\n}\\n\\n.mdl-slider.is-upgraded:disabled::-ms-fill-lower {\\n margin-right: 6px;\\n background: linear-gradient(to right, transparent, transparent 25px, rgba(0,0,0, 0.26) 25px, rgba(0,0,0, 0.26) 0);\\n}\\n\\n.mdl-slider.is-upgraded:disabled::-ms-fill-upper {\\n margin-left: 6px;\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-fill-upper {\\n margin-left: 6px;\\n}\\n\\n.mdl-slider__ie-container {\\n height: 18px;\\n overflow: visible;\\n border: none;\\n margin: none;\\n padding: none;\\n}\\n\\n.mdl-slider__container {\\n height: 18px;\\n position: relative;\\n background: none;\\n display: flex;\\n flex-direction: row;\\n}\\n\\n.mdl-slider__background-flex {\\n background: transparent;\\n position: absolute;\\n height: 2px;\\n width: calc(100% - 52px);\\n top: 50%;\\n left: 0;\\n margin: 0 26px;\\n display: flex;\\n overflow: hidden;\\n border: 0;\\n padding: 0;\\n transform: translate(0, -1px);\\n}\\n\\n.mdl-slider__background-lower {\\n background: rgb(98, 105, 113);\\n flex: 0;\\n position: relative;\\n border: 0;\\n padding: 0;\\n}\\n\\n.mdl-slider__background-upper {\\n background: rgba(0,0,0, 0.26);\\n flex: 0;\\n position: relative;\\n border: 0;\\n padding: 0;\\n transition: left 0.18s cubic-bezier(0.4, 0, 0.2, 1);\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Typography */\\n\\n/* Shadows */\\n\\n/* Animations */\\n\\n/* Dialog */\\n\\n.mdl-snackbar {\\n position: fixed;\\n bottom: 0;\\n left: 50%;\\n cursor: default;\\n background-color: #323232;\\n z-index: 3;\\n display: block;\\n display: flex;\\n justify-content: space-between;\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n will-change: transform;\\n transform: translate(0, 80px);\\n transition: transform 0.25s cubic-bezier(0.4, 0, 1, 1);\\n pointer-events: none;\\n}\\n\\n@media (max-width: 479px) {\\n .mdl-snackbar {\\n width: 100%;\\n left: 0;\\n min-height: 48px;\\n max-height: 80px;\\n }\\n}\\n\\n@media (min-width: 480px) {\\n .mdl-snackbar {\\n min-width: 288px;\\n max-width: 568px;\\n border-radius: 2px;\\n transform: translate(-50%, 80px);\\n }\\n}\\n\\n.mdl-snackbar--active {\\n transform: translate(0, 0);\\n pointer-events: auto;\\n transition: transform 0.25s cubic-bezier(0, 0, 0.2, 1);\\n}\\n\\n@media (min-width: 480px) {\\n .mdl-snackbar--active {\\n transform: translate(-50%, 0);\\n }\\n}\\n\\n.mdl-snackbar__text {\\n padding: 14px 12px 14px 24px;\\n vertical-align: middle;\\n color: white;\\n float: left;\\n}\\n\\n.mdl-snackbar__action {\\n background: transparent;\\n border: none;\\n color: rgb(0, 128, 175);\\n float: right;\\n text-transform: uppercase;\\n padding: 14px 24px 14px 12px;\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n text-transform: uppercase;\\n line-height: 1;\\n letter-spacing: 0;\\n overflow: hidden;\\n outline: none;\\n opacity: 0;\\n pointer-events: none;\\n cursor: pointer;\\n text-decoration: none;\\n text-align: center;\\n align-self: center;\\n}\\n\\n.mdl-snackbar__action::-moz-focus-inner {\\n border: 0;\\n}\\n\\n.mdl-snackbar__action:not([aria-hidden]) {\\n opacity: 1;\\n pointer-events: auto;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n.mdl-spinner {\\n display: inline-block;\\n position: relative;\\n width: 28px;\\n height: 28px;\\n}\\n\\n.mdl-spinner:not(.is-upgraded).is-active:after {\\n content: \\\"Loading...\\\";\\n}\\n\\n.mdl-spinner.is-upgraded.is-active {\\n animation: mdl-spinner__container-rotate 1568.2352941176ms linear infinite;\\n}\\n\\n@keyframes mdl-spinner__container-rotate {\\n to {\\n transform: rotate(360deg);\\n }\\n}\\n\\n.mdl-spinner__layer {\\n position: absolute;\\n width: 100%;\\n height: 100%;\\n opacity: 0;\\n}\\n\\n.mdl-spinner__layer-1 {\\n border-color: rgb(66,165,245);\\n}\\n\\n.mdl-spinner--single-color .mdl-spinner__layer-1 {\\n border-color: rgb(98, 105, 113);\\n}\\n\\n.mdl-spinner.is-active .mdl-spinner__layer-1 {\\n animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\\n}\\n\\n.mdl-spinner__layer-2 {\\n border-color: rgb(244,67,54);\\n}\\n\\n.mdl-spinner--single-color .mdl-spinner__layer-2 {\\n border-color: rgb(98, 105, 113);\\n}\\n\\n.mdl-spinner.is-active .mdl-spinner__layer-2 {\\n animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\\n}\\n\\n.mdl-spinner__layer-3 {\\n border-color: rgb(253,216,53);\\n}\\n\\n.mdl-spinner--single-color .mdl-spinner__layer-3 {\\n border-color: rgb(98, 105, 113);\\n}\\n\\n.mdl-spinner.is-active .mdl-spinner__layer-3 {\\n animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\\n}\\n\\n.mdl-spinner__layer-4 {\\n border-color: rgb(76,175,80);\\n}\\n\\n.mdl-spinner--single-color .mdl-spinner__layer-4 {\\n border-color: rgb(98, 105, 113);\\n}\\n\\n.mdl-spinner.is-active .mdl-spinner__layer-4 {\\n animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\\n}\\n\\n@keyframes mdl-spinner__fill-unfill-rotate {\\n 12.5% {\\n transform: rotate(135deg);\\n }\\n\\n 25% {\\n transform: rotate(270deg);\\n }\\n\\n 37.5% {\\n transform: rotate(405deg);\\n }\\n\\n 50% {\\n transform: rotate(540deg);\\n }\\n\\n 62.5% {\\n transform: rotate(675deg);\\n }\\n\\n 75% {\\n transform: rotate(810deg);\\n }\\n\\n 87.5% {\\n transform: rotate(945deg);\\n }\\n\\n to {\\n transform: rotate(1080deg);\\n }\\n}\\n\\n/**\\n* HACK: Even though the intention is to have the current .mdl-spinner__layer-N\\n* at `opacity: 1`, we set it to `opacity: 0.99` instead since this forces Chrome\\n* to do proper subpixel rendering for the elements being animated. This is\\n* especially visible in Chrome 39 on Ubuntu 14.04. See:\\n*\\n* - https://github.com/Polymer/paper-spinner/issues/9\\n* - https://code.google.com/p/chromium/issues/detail?id=436255\\n*/\\n\\n@keyframes mdl-spinner__layer-1-fade-in-out {\\n from {\\n opacity: 0.99;\\n }\\n\\n 25% {\\n opacity: 0.99;\\n }\\n\\n 26% {\\n opacity: 0;\\n }\\n\\n 89% {\\n opacity: 0;\\n }\\n\\n 90% {\\n opacity: 0.99;\\n }\\n\\n 100% {\\n opacity: 0.99;\\n }\\n}\\n\\n@keyframes mdl-spinner__layer-2-fade-in-out {\\n from {\\n opacity: 0;\\n }\\n\\n 15% {\\n opacity: 0;\\n }\\n\\n 25% {\\n opacity: 0.99;\\n }\\n\\n 50% {\\n opacity: 0.99;\\n }\\n\\n 51% {\\n opacity: 0;\\n }\\n}\\n\\n@keyframes mdl-spinner__layer-3-fade-in-out {\\n from {\\n opacity: 0;\\n }\\n\\n 40% {\\n opacity: 0;\\n }\\n\\n 50% {\\n opacity: 0.99;\\n }\\n\\n 75% {\\n opacity: 0.99;\\n }\\n\\n 76% {\\n opacity: 0;\\n }\\n}\\n\\n@keyframes mdl-spinner__layer-4-fade-in-out {\\n from {\\n opacity: 0;\\n }\\n\\n 65% {\\n opacity: 0;\\n }\\n\\n 75% {\\n opacity: 0.99;\\n }\\n\\n 90% {\\n opacity: 0.99;\\n }\\n\\n 100% {\\n opacity: 0;\\n }\\n}\\n\\n/**\\n* Patch the gap that appear between the two adjacent\\n* div.mdl-spinner__circle-clipper while the spinner is rotating\\n* (appears on Chrome 38, Safari 7.1, and IE 11).\\n*\\n* Update: the gap no longer appears on Chrome when .mdl-spinner__layer-N's\\n* opacity is 0.99, but still does on Safari and IE.\\n*/\\n\\n.mdl-spinner__gap-patch {\\n position: absolute;\\n box-sizing: border-box;\\n top: 0;\\n left: 45%;\\n width: 10%;\\n height: 100%;\\n overflow: hidden;\\n border-color: inherit;\\n}\\n\\n.mdl-spinner__gap-patch .mdl-spinner__circle {\\n width: 1000%;\\n left: -450%;\\n}\\n\\n.mdl-spinner__circle-clipper {\\n display: inline-block;\\n position: relative;\\n width: 50%;\\n height: 100%;\\n overflow: hidden;\\n border-color: inherit;\\n}\\n\\n.mdl-spinner__circle-clipper.mdl-spinner__left {\\n float: left;\\n}\\n\\n.mdl-spinner__circle-clipper.mdl-spinner__right {\\n float: right;\\n}\\n\\n.mdl-spinner__circle-clipper .mdl-spinner__circle {\\n width: 200%;\\n}\\n\\n.mdl-spinner__circle {\\n box-sizing: border-box;\\n height: 100%;\\n border-width: 3px;\\n border-style: solid;\\n border-color: inherit;\\n border-bottom-color: transparent !important;\\n border-radius: 50%;\\n animation: none;\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n}\\n\\n.mdl-spinner__left .mdl-spinner__circle {\\n border-right-color: transparent !important;\\n transform: rotate(129deg);\\n}\\n\\n.mdl-spinner.is-active .mdl-spinner__left .mdl-spinner__circle {\\n animation: mdl-spinner__left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\\n}\\n\\n.mdl-spinner__right .mdl-spinner__circle {\\n left: -100%;\\n border-left-color: transparent !important;\\n transform: rotate(-129deg);\\n}\\n\\n.mdl-spinner.is-active .mdl-spinner__right .mdl-spinner__circle {\\n animation: mdl-spinner__right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\\n}\\n\\n@keyframes mdl-spinner__left-spin {\\n from {\\n transform: rotate(130deg);\\n }\\n\\n 50% {\\n transform: rotate(-5deg);\\n }\\n\\n to {\\n transform: rotate(130deg);\\n }\\n}\\n\\n@keyframes mdl-spinner__right-spin {\\n from {\\n transform: rotate(-130deg);\\n }\\n\\n 50% {\\n transform: rotate(5deg);\\n }\\n\\n to {\\n transform: rotate(-130deg);\\n }\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Typography */\\n\\n/* Shadows */\\n\\n/* Animations */\\n\\n/* Dialog */\\n\\n.mdl-switch {\\n position: relative;\\n z-index: 1;\\n vertical-align: middle;\\n display: inline-block;\\n box-sizing: border-box;\\n width: 100%;\\n height: 24px;\\n margin: 0;\\n padding: 0;\\n overflow: visible;\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n\\n.mdl-switch.is-upgraded {\\n padding-left: 28px;\\n}\\n\\n.mdl-switch__input {\\n line-height: 24px;\\n}\\n\\n.mdl-switch.is-upgraded .mdl-switch__input {\\n position: absolute;\\n width: 0;\\n height: 0;\\n margin: 0;\\n padding: 0;\\n opacity: 0;\\n -ms-appearance: none;\\n -moz-appearance: none;\\n -webkit-appearance: none;\\n appearance: none;\\n border: none;\\n}\\n\\n.mdl-switch__track {\\n background: rgba(0,0,0, 0.26);\\n position: absolute;\\n left: 0;\\n top: 5px;\\n height: 14px;\\n width: 36px;\\n border-radius: 14px;\\n cursor: pointer;\\n}\\n\\n.mdl-switch.is-checked .mdl-switch__track {\\n background: rgba(98, 105, 113, 0.5);\\n}\\n\\n.mdl-switch__track fieldset[disabled] .mdl-switch,\\n.mdl-switch.is-disabled .mdl-switch__track {\\n background: rgba(0,0,0, 0.12);\\n cursor: auto;\\n}\\n\\n.mdl-switch__thumb {\\n background: rgb(250,250,250);\\n position: absolute;\\n left: 0;\\n top: 2px;\\n height: 20px;\\n width: 20px;\\n border-radius: 50%;\\n cursor: pointer;\\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n transition-duration: 0.28s;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-property: left;\\n}\\n\\n.mdl-switch.is-checked .mdl-switch__thumb {\\n background: rgb(98, 105, 113);\\n left: 16px;\\n box-shadow: 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 1px 8px 0 rgba(0, 0, 0, 0.12);\\n}\\n\\n.mdl-switch__thumb fieldset[disabled] .mdl-switch,\\n.mdl-switch.is-disabled .mdl-switch__thumb {\\n background: rgb(189,189,189);\\n cursor: auto;\\n}\\n\\n.mdl-switch__focus-helper {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n transform: translate(-4px, -4px);\\n display: inline-block;\\n box-sizing: border-box;\\n width: 8px;\\n height: 8px;\\n border-radius: 50%;\\n background-color: transparent;\\n}\\n\\n.mdl-switch.is-focused .mdl-switch__focus-helper {\\n box-shadow: 0 0 0px 20px rgba(0, 0, 0, 0.1);\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n\\n.mdl-switch.is-focused.is-checked .mdl-switch__focus-helper {\\n box-shadow: 0 0 0px 20px rgba(98, 105, 113, 0.26);\\n background-color: rgba(98, 105, 113, 0.26);\\n}\\n\\n.mdl-switch__label {\\n position: relative;\\n cursor: pointer;\\n font-size: 13px;\\n line-height: 24px;\\n margin: 0;\\n left: 24px;\\n}\\n\\n.mdl-switch__label fieldset[disabled] .mdl-switch,\\n.mdl-switch.is-disabled .mdl-switch__label {\\n color: rgb(189,189,189);\\n cursor: auto;\\n}\\n\\n.mdl-switch__ripple-container {\\n position: absolute;\\n z-index: 2;\\n top: -12px;\\n left: -14px;\\n box-sizing: border-box;\\n width: 48px;\\n height: 48px;\\n border-radius: 50%;\\n cursor: pointer;\\n overflow: hidden;\\n -webkit-mask-image: -webkit-radial-gradient(circle, white, black);\\n transition-duration: 0.4s;\\n transition-timing-function: step-end;\\n transition-property: left;\\n}\\n\\n.mdl-switch__ripple-container .mdl-ripple {\\n background: rgb(98, 105, 113);\\n}\\n\\n.mdl-switch__ripple-container fieldset[disabled] .mdl-switch,\\n.mdl-switch.is-disabled .mdl-switch__ripple-container {\\n cursor: auto;\\n}\\n\\nfieldset[disabled] .mdl-switch .mdl-switch__ripple-container .mdl-ripple,\\n.mdl-switch.is-disabled .mdl-switch__ripple-container .mdl-ripple {\\n background: transparent;\\n}\\n\\n.mdl-switch.is-checked .mdl-switch__ripple-container {\\n left: 2px;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n.mdl-tabs {\\n display: block;\\n width: 100%;\\n}\\n\\n.mdl-tabs__tab-bar {\\n display: flex;\\n flex-direction: row;\\n justify-content: center;\\n align-content: space-between;\\n align-items: flex-start;\\n height: 48px;\\n padding: 0 0 0 0;\\n margin: 0;\\n border-bottom: 1px solid rgb(224,224,224);\\n}\\n\\n.mdl-tabs__tab {\\n margin: 0;\\n border: none;\\n padding: 0 24px 0 24px;\\n float: left;\\n position: relative;\\n display: block;\\n text-decoration: none;\\n height: 48px;\\n line-height: 48px;\\n text-align: center;\\n font-weight: 500;\\n font-size: 14px;\\n text-transform: uppercase;\\n color: rgba(0,0,0, 0.54);\\n overflow: hidden;\\n}\\n\\n.mdl-tabs.is-upgraded .mdl-tabs__tab.is-active {\\n color: rgba(0,0,0, 0.87);\\n}\\n\\n.mdl-tabs.is-upgraded .mdl-tabs__tab.is-active:after {\\n height: 2px;\\n width: 100%;\\n display: block;\\n content: \\\" \\\";\\n bottom: 0px;\\n left: 0px;\\n position: absolute;\\n background: rgb(98, 105, 113);\\n animation: border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards;\\n transition: all 1s cubic-bezier(0.4, 0, 1, 1);\\n}\\n\\n.mdl-tabs__tab .mdl-tabs__ripple-container {\\n display: block;\\n position: absolute;\\n height: 100%;\\n width: 100%;\\n left: 0px;\\n top: 0px;\\n z-index: 1;\\n overflow: hidden;\\n}\\n\\n.mdl-tabs__tab .mdl-tabs__ripple-container .mdl-ripple {\\n background: rgb(98, 105, 113);\\n}\\n\\n.mdl-tabs__panel {\\n display: block;\\n}\\n\\n.mdl-tabs.is-upgraded .mdl-tabs__panel {\\n display: none;\\n}\\n\\n.mdl-tabs.is-upgraded .mdl-tabs__panel.is-active {\\n display: block;\\n}\\n\\n@keyframes border-expand {\\n 0% {\\n opacity: 0;\\n width: 0;\\n }\\n\\n 100% {\\n opacity: 1;\\n width: 100%;\\n }\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Typography */\\n\\n/* Shadows */\\n\\n/* Animations */\\n\\n/* Dialog */\\n\\n.mdl-textfield {\\n position: relative;\\n font-size: 13px;\\n display: inline-block;\\n box-sizing: border-box;\\n width: 300px;\\n max-width: 100%;\\n margin: 0;\\n padding: 20px 0;\\n}\\n\\n.mdl-textfield .mdl-button {\\n position: absolute;\\n bottom: 20px;\\n}\\n\\n.mdl-textfield--align-right {\\n text-align: right;\\n}\\n\\n.mdl-textfield--full-width {\\n width: 100%;\\n}\\n\\n.mdl-textfield--expandable {\\n min-width: 32px;\\n width: auto;\\n min-height: 32px;\\n}\\n\\n.mdl-textfield--expandable .mdl-button--icon {\\n top: 16px;\\n}\\n\\n.mdl-textfield__input {\\n border: none;\\n border-bottom: 1px solid rgba(0,0,0, 0.12);\\n display: block;\\n font-size: 13px;\\n font-family: \\\"Helvetica\\\", \\\"Arial\\\", sans-serif;\\n margin: 0;\\n padding: 4px 0;\\n width: 100%;\\n background: none;\\n text-align: left;\\n color: inherit;\\n}\\n\\n.mdl-textfield__input[type=number] {\\n -moz-appearance: textfield;\\n}\\n\\n.mdl-textfield__input[type=number]::-webkit-inner-spin-button,\\n.mdl-textfield__input[type=number]::-webkit-outer-spin-button {\\n -webkit-appearance: none;\\n margin: 0;\\n}\\n\\n.mdl-textfield.is-focused .mdl-textfield__input {\\n outline: none;\\n}\\n\\n.mdl-textfield.is-invalid .mdl-textfield__input {\\n border-color: rgb(213,0,0);\\n box-shadow: none;\\n}\\n\\nfieldset[disabled] .mdl-textfield .mdl-textfield__input,\\n.mdl-textfield.is-disabled .mdl-textfield__input {\\n background-color: transparent;\\n border-bottom: 1px dotted rgba(0,0,0, 0.12);\\n color: rgba(0,0,0, 0.26);\\n}\\n\\n.mdl-textfield textarea.mdl-textfield__input {\\n display: block;\\n}\\n\\n.mdl-textfield__label {\\n bottom: 0;\\n color: rgba(0,0,0, 0.26);\\n font-size: 13px;\\n left: 0;\\n right: 0;\\n pointer-events: none;\\n position: absolute;\\n display: block;\\n top: 24px;\\n width: 100%;\\n overflow: hidden;\\n white-space: nowrap;\\n text-align: left;\\n}\\n\\n.mdl-textfield.is-dirty .mdl-textfield__label,\\n.mdl-textfield.has-placeholder .mdl-textfield__label {\\n visibility: hidden;\\n}\\n\\n.mdl-textfield--floating-label .mdl-textfield__label {\\n transition-duration: 0.2s;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n}\\n\\n.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label {\\n transition: none;\\n}\\n\\nfieldset[disabled] .mdl-textfield .mdl-textfield__label,\\n.mdl-textfield.is-disabled.is-disabled .mdl-textfield__label {\\n color: rgba(0,0,0, 0.26);\\n}\\n\\n.mdl-textfield--floating-label.is-focused .mdl-textfield__label,\\n.mdl-textfield--floating-label.is-dirty .mdl-textfield__label,\\n.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label {\\n color: rgb(98, 105, 113);\\n font-size: 12px;\\n top: 4px;\\n visibility: visible;\\n}\\n\\n.mdl-textfield--floating-label.is-focused .mdl-textfield__expandable-holder .mdl-textfield__label,\\n.mdl-textfield--floating-label.is-dirty .mdl-textfield__expandable-holder .mdl-textfield__label,\\n.mdl-textfield--floating-label.has-placeholder .mdl-textfield__expandable-holder .mdl-textfield__label {\\n top: -16px;\\n}\\n\\n.mdl-textfield--floating-label.is-invalid .mdl-textfield__label {\\n color: rgb(213,0,0);\\n font-size: 12px;\\n}\\n\\n.mdl-textfield__label:after {\\n background-color: rgb(98, 105, 113);\\n bottom: 20px;\\n content: \\\"\\\";\\n height: 2px;\\n left: 45%;\\n position: absolute;\\n transition-duration: 0.2s;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n visibility: hidden;\\n width: 10px;\\n}\\n\\n.mdl-textfield.is-focused .mdl-textfield__label:after {\\n left: 0;\\n visibility: visible;\\n width: 100%;\\n}\\n\\n.mdl-textfield.is-invalid .mdl-textfield__label:after {\\n background-color: rgb(213,0,0);\\n}\\n\\n.mdl-textfield__error {\\n color: rgb(213,0,0);\\n position: absolute;\\n font-size: 12px;\\n margin-top: 3px;\\n visibility: hidden;\\n display: block;\\n}\\n\\n.mdl-textfield.is-invalid .mdl-textfield__error {\\n visibility: visible;\\n}\\n\\n.mdl-textfield__expandable-holder {\\n display: inline-block;\\n position: relative;\\n margin-left: 32px;\\n transition-duration: 0.2s;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n display: inline-block;\\n max-width: 0.1px;\\n}\\n\\n.mdl-textfield.is-focused .mdl-textfield__expandable-holder,\\n.mdl-textfield.is-dirty .mdl-textfield__expandable-holder {\\n max-width: 600px;\\n}\\n\\n.mdl-textfield__expandable-holder .mdl-textfield__label:after {\\n bottom: 0;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n.mdl-tooltip {\\n transform: scale(0);\\n transform-origin: top center;\\n z-index: 999;\\n background: rgba(97,97,97, 0.9);\\n border-radius: 2px;\\n color: rgb(255,255,255);\\n display: inline-block;\\n font-size: 10px;\\n font-weight: 500;\\n line-height: 14px;\\n max-width: 170px;\\n position: fixed;\\n top: -500px;\\n left: -500px;\\n padding: 8px;\\n text-align: center;\\n}\\n\\n.mdl-tooltip.is-active {\\n animation: pulse 200ms cubic-bezier(0, 0, 0.2, 1) forwards;\\n}\\n\\n.mdl-tooltip--large {\\n line-height: 14px;\\n font-size: 14px;\\n padding: 16px;\\n}\\n\\n@keyframes pulse {\\n 0% {\\n transform: scale(0);\\n opacity: 0;\\n }\\n\\n 50% {\\n transform: scale(0.99);\\n }\\n\\n 100% {\\n transform: scale(1);\\n opacity: 1;\\n visibility: visible;\\n }\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Typography */\\n\\n/* Shadows */\\n\\n/* Animations */\\n\\n/* Dialog */\\n\\n.mdl-shadow--2dp {\\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n}\\n\\n.mdl-shadow--3dp {\\n box-shadow: 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 1px 8px 0 rgba(0, 0, 0, 0.12);\\n}\\n\\n.mdl-shadow--4dp {\\n box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2);\\n}\\n\\n.mdl-shadow--6dp {\\n box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12), 0 3px 5px -1px rgba(0, 0, 0, 0.2);\\n}\\n\\n.mdl-shadow--8dp {\\n box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.2);\\n}\\n\\n.mdl-shadow--16dp {\\n box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2);\\n}\\n\\n.mdl-shadow--24dp {\\n box-shadow: 0 9px 46px 8px rgba(0, 0, 0, 0.14), 0 11px 15px -7px rgba(0, 0, 0, 0.12), 0 24px 38px 3px rgba(0, 0, 0, 0.2);\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*\\n* NOTE: Some rules here are applied using duplicate selectors.\\n* This is on purpose to increase their specificity when applied.\\n* For example: `.mdl-cell--1-col-phone.mdl-cell--1-col-phone`\\n*/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n.mdl-grid {\\n display: flex;\\n flex-flow: row wrap;\\n margin: 0 auto 0 auto;\\n align-items: stretch;\\n}\\n\\n.mdl-grid.mdl-grid--no-spacing {\\n padding: 0;\\n}\\n\\n.mdl-cell {\\n box-sizing: border-box;\\n}\\n\\n.mdl-cell--top {\\n align-self: flex-start;\\n}\\n\\n.mdl-cell--middle {\\n align-self: center;\\n}\\n\\n.mdl-cell--bottom {\\n align-self: flex-end;\\n}\\n\\n.mdl-cell--stretch {\\n align-self: stretch;\\n}\\n\\n.mdl-grid.mdl-grid--no-spacing > .mdl-cell {\\n margin: 0;\\n}\\n\\n.mdl-cell--order-1 {\\n order: 1;\\n}\\n\\n.mdl-cell--order-2 {\\n order: 2;\\n}\\n\\n.mdl-cell--order-3 {\\n order: 3;\\n}\\n\\n.mdl-cell--order-4 {\\n order: 4;\\n}\\n\\n.mdl-cell--order-5 {\\n order: 5;\\n}\\n\\n.mdl-cell--order-6 {\\n order: 6;\\n}\\n\\n.mdl-cell--order-7 {\\n order: 7;\\n}\\n\\n.mdl-cell--order-8 {\\n order: 8;\\n}\\n\\n.mdl-cell--order-9 {\\n order: 9;\\n}\\n\\n.mdl-cell--order-10 {\\n order: 10;\\n}\\n\\n.mdl-cell--order-11 {\\n order: 11;\\n}\\n\\n.mdl-cell--order-12 {\\n order: 12;\\n}\\n\\n@media (max-width: 479px) {\\n .mdl-grid {\\n padding: 8px;\\n }\\n\\n .mdl-cell {\\n margin: 8px;\\n width: calc(100% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell {\\n width: 100%;\\n }\\n\\n .mdl-cell--hide-phone {\\n display: none !important;\\n }\\n\\n .mdl-cell--order-1-phone.mdl-cell--order-1-phone {\\n order: 1;\\n }\\n\\n .mdl-cell--order-2-phone.mdl-cell--order-2-phone {\\n order: 2;\\n }\\n\\n .mdl-cell--order-3-phone.mdl-cell--order-3-phone {\\n order: 3;\\n }\\n\\n .mdl-cell--order-4-phone.mdl-cell--order-4-phone {\\n order: 4;\\n }\\n\\n .mdl-cell--order-5-phone.mdl-cell--order-5-phone {\\n order: 5;\\n }\\n\\n .mdl-cell--order-6-phone.mdl-cell--order-6-phone {\\n order: 6;\\n }\\n\\n .mdl-cell--order-7-phone.mdl-cell--order-7-phone {\\n order: 7;\\n }\\n\\n .mdl-cell--order-8-phone.mdl-cell--order-8-phone {\\n order: 8;\\n }\\n\\n .mdl-cell--order-9-phone.mdl-cell--order-9-phone {\\n order: 9;\\n }\\n\\n .mdl-cell--order-10-phone.mdl-cell--order-10-phone {\\n order: 10;\\n }\\n\\n .mdl-cell--order-11-phone.mdl-cell--order-11-phone {\\n order: 11;\\n }\\n\\n .mdl-cell--order-12-phone.mdl-cell--order-12-phone {\\n order: 12;\\n }\\n\\n .mdl-cell--1-col,\\n .mdl-cell--1-col-phone.mdl-cell--1-col-phone {\\n width: calc(25% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--1-col,\\n .mdl-grid--no-spacing > .mdl-cell--1-col-phone.mdl-cell--1-col-phone {\\n width: 25%;\\n }\\n\\n .mdl-cell--2-col,\\n .mdl-cell--2-col-phone.mdl-cell--2-col-phone {\\n width: calc(50% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--2-col,\\n .mdl-grid--no-spacing > .mdl-cell--2-col-phone.mdl-cell--2-col-phone {\\n width: 50%;\\n }\\n\\n .mdl-cell--3-col,\\n .mdl-cell--3-col-phone.mdl-cell--3-col-phone {\\n width: calc(75% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--3-col,\\n .mdl-grid--no-spacing > .mdl-cell--3-col-phone.mdl-cell--3-col-phone {\\n width: 75%;\\n }\\n\\n .mdl-cell--4-col,\\n .mdl-cell--4-col-phone.mdl-cell--4-col-phone {\\n width: calc(100% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--4-col,\\n .mdl-grid--no-spacing > .mdl-cell--4-col-phone.mdl-cell--4-col-phone {\\n width: 100%;\\n }\\n\\n .mdl-cell--5-col,\\n .mdl-cell--5-col-phone.mdl-cell--5-col-phone {\\n width: calc(100% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--5-col,\\n .mdl-grid--no-spacing > .mdl-cell--5-col-phone.mdl-cell--5-col-phone {\\n width: 100%;\\n }\\n\\n .mdl-cell--6-col,\\n .mdl-cell--6-col-phone.mdl-cell--6-col-phone {\\n width: calc(100% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--6-col,\\n .mdl-grid--no-spacing > .mdl-cell--6-col-phone.mdl-cell--6-col-phone {\\n width: 100%;\\n }\\n\\n .mdl-cell--7-col,\\n .mdl-cell--7-col-phone.mdl-cell--7-col-phone {\\n width: calc(100% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--7-col,\\n .mdl-grid--no-spacing > .mdl-cell--7-col-phone.mdl-cell--7-col-phone {\\n width: 100%;\\n }\\n\\n .mdl-cell--8-col,\\n .mdl-cell--8-col-phone.mdl-cell--8-col-phone {\\n width: calc(100% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--8-col,\\n .mdl-grid--no-spacing > .mdl-cell--8-col-phone.mdl-cell--8-col-phone {\\n width: 100%;\\n }\\n\\n .mdl-cell--9-col,\\n .mdl-cell--9-col-phone.mdl-cell--9-col-phone {\\n width: calc(100% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--9-col,\\n .mdl-grid--no-spacing > .mdl-cell--9-col-phone.mdl-cell--9-col-phone {\\n width: 100%;\\n }\\n\\n .mdl-cell--10-col,\\n .mdl-cell--10-col-phone.mdl-cell--10-col-phone {\\n width: calc(100% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--10-col,\\n .mdl-grid--no-spacing > .mdl-cell--10-col-phone.mdl-cell--10-col-phone {\\n width: 100%;\\n }\\n\\n .mdl-cell--11-col,\\n .mdl-cell--11-col-phone.mdl-cell--11-col-phone {\\n width: calc(100% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--11-col,\\n .mdl-grid--no-spacing > .mdl-cell--11-col-phone.mdl-cell--11-col-phone {\\n width: 100%;\\n }\\n\\n .mdl-cell--12-col,\\n .mdl-cell--12-col-phone.mdl-cell--12-col-phone {\\n width: calc(100% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--12-col,\\n .mdl-grid--no-spacing > .mdl-cell--12-col-phone.mdl-cell--12-col-phone {\\n width: 100%;\\n }\\n\\n .mdl-cell--1-offset,\\n .mdl-cell--1-offset-phone.mdl-cell--1-offset-phone {\\n margin-left: calc(25% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--1-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--1-offset-phone.mdl-cell--1-offset-phone {\\n margin-left: 25%;\\n }\\n\\n .mdl-cell--2-offset,\\n .mdl-cell--2-offset-phone.mdl-cell--2-offset-phone {\\n margin-left: calc(50% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--2-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--2-offset-phone.mdl-cell--2-offset-phone {\\n margin-left: 50%;\\n }\\n\\n .mdl-cell--3-offset,\\n .mdl-cell--3-offset-phone.mdl-cell--3-offset-phone {\\n margin-left: calc(75% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--3-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--3-offset-phone.mdl-cell--3-offset-phone {\\n margin-left: 75%;\\n }\\n}\\n\\n@media (min-width: 480px) and (max-width: 839px) {\\n .mdl-grid {\\n padding: 8px;\\n }\\n\\n .mdl-cell {\\n margin: 8px;\\n width: calc(50% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell {\\n width: 50%;\\n }\\n\\n .mdl-cell--hide-tablet {\\n display: none !important;\\n }\\n\\n .mdl-cell--order-1-tablet.mdl-cell--order-1-tablet {\\n order: 1;\\n }\\n\\n .mdl-cell--order-2-tablet.mdl-cell--order-2-tablet {\\n order: 2;\\n }\\n\\n .mdl-cell--order-3-tablet.mdl-cell--order-3-tablet {\\n order: 3;\\n }\\n\\n .mdl-cell--order-4-tablet.mdl-cell--order-4-tablet {\\n order: 4;\\n }\\n\\n .mdl-cell--order-5-tablet.mdl-cell--order-5-tablet {\\n order: 5;\\n }\\n\\n .mdl-cell--order-6-tablet.mdl-cell--order-6-tablet {\\n order: 6;\\n }\\n\\n .mdl-cell--order-7-tablet.mdl-cell--order-7-tablet {\\n order: 7;\\n }\\n\\n .mdl-cell--order-8-tablet.mdl-cell--order-8-tablet {\\n order: 8;\\n }\\n\\n .mdl-cell--order-9-tablet.mdl-cell--order-9-tablet {\\n order: 9;\\n }\\n\\n .mdl-cell--order-10-tablet.mdl-cell--order-10-tablet {\\n order: 10;\\n }\\n\\n .mdl-cell--order-11-tablet.mdl-cell--order-11-tablet {\\n order: 11;\\n }\\n\\n .mdl-cell--order-12-tablet.mdl-cell--order-12-tablet {\\n order: 12;\\n }\\n\\n .mdl-cell--1-col,\\n .mdl-cell--1-col-tablet.mdl-cell--1-col-tablet {\\n width: calc(12.5% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--1-col,\\n .mdl-grid--no-spacing > .mdl-cell--1-col-tablet.mdl-cell--1-col-tablet {\\n width: 12.5%;\\n }\\n\\n .mdl-cell--2-col,\\n .mdl-cell--2-col-tablet.mdl-cell--2-col-tablet {\\n width: calc(25% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--2-col,\\n .mdl-grid--no-spacing > .mdl-cell--2-col-tablet.mdl-cell--2-col-tablet {\\n width: 25%;\\n }\\n\\n .mdl-cell--3-col,\\n .mdl-cell--3-col-tablet.mdl-cell--3-col-tablet {\\n width: calc(37.5% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--3-col,\\n .mdl-grid--no-spacing > .mdl-cell--3-col-tablet.mdl-cell--3-col-tablet {\\n width: 37.5%;\\n }\\n\\n .mdl-cell--4-col,\\n .mdl-cell--4-col-tablet.mdl-cell--4-col-tablet {\\n width: calc(50% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--4-col,\\n .mdl-grid--no-spacing > .mdl-cell--4-col-tablet.mdl-cell--4-col-tablet {\\n width: 50%;\\n }\\n\\n .mdl-cell--5-col,\\n .mdl-cell--5-col-tablet.mdl-cell--5-col-tablet {\\n width: calc(62.5% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--5-col,\\n .mdl-grid--no-spacing > .mdl-cell--5-col-tablet.mdl-cell--5-col-tablet {\\n width: 62.5%;\\n }\\n\\n .mdl-cell--6-col,\\n .mdl-cell--6-col-tablet.mdl-cell--6-col-tablet {\\n width: calc(75% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--6-col,\\n .mdl-grid--no-spacing > .mdl-cell--6-col-tablet.mdl-cell--6-col-tablet {\\n width: 75%;\\n }\\n\\n .mdl-cell--7-col,\\n .mdl-cell--7-col-tablet.mdl-cell--7-col-tablet {\\n width: calc(87.5% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--7-col,\\n .mdl-grid--no-spacing > .mdl-cell--7-col-tablet.mdl-cell--7-col-tablet {\\n width: 87.5%;\\n }\\n\\n .mdl-cell--8-col,\\n .mdl-cell--8-col-tablet.mdl-cell--8-col-tablet {\\n width: calc(100% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--8-col,\\n .mdl-grid--no-spacing > .mdl-cell--8-col-tablet.mdl-cell--8-col-tablet {\\n width: 100%;\\n }\\n\\n .mdl-cell--9-col,\\n .mdl-cell--9-col-tablet.mdl-cell--9-col-tablet {\\n width: calc(100% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--9-col,\\n .mdl-grid--no-spacing > .mdl-cell--9-col-tablet.mdl-cell--9-col-tablet {\\n width: 100%;\\n }\\n\\n .mdl-cell--10-col,\\n .mdl-cell--10-col-tablet.mdl-cell--10-col-tablet {\\n width: calc(100% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--10-col,\\n .mdl-grid--no-spacing > .mdl-cell--10-col-tablet.mdl-cell--10-col-tablet {\\n width: 100%;\\n }\\n\\n .mdl-cell--11-col,\\n .mdl-cell--11-col-tablet.mdl-cell--11-col-tablet {\\n width: calc(100% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--11-col,\\n .mdl-grid--no-spacing > .mdl-cell--11-col-tablet.mdl-cell--11-col-tablet {\\n width: 100%;\\n }\\n\\n .mdl-cell--12-col,\\n .mdl-cell--12-col-tablet.mdl-cell--12-col-tablet {\\n width: calc(100% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--12-col,\\n .mdl-grid--no-spacing > .mdl-cell--12-col-tablet.mdl-cell--12-col-tablet {\\n width: 100%;\\n }\\n\\n .mdl-cell--1-offset,\\n .mdl-cell--1-offset-tablet.mdl-cell--1-offset-tablet {\\n margin-left: calc(12.5% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--1-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--1-offset-tablet.mdl-cell--1-offset-tablet {\\n margin-left: 12.5%;\\n }\\n\\n .mdl-cell--2-offset,\\n .mdl-cell--2-offset-tablet.mdl-cell--2-offset-tablet {\\n margin-left: calc(25% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--2-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--2-offset-tablet.mdl-cell--2-offset-tablet {\\n margin-left: 25%;\\n }\\n\\n .mdl-cell--3-offset,\\n .mdl-cell--3-offset-tablet.mdl-cell--3-offset-tablet {\\n margin-left: calc(37.5% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--3-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--3-offset-tablet.mdl-cell--3-offset-tablet {\\n margin-left: 37.5%;\\n }\\n\\n .mdl-cell--4-offset,\\n .mdl-cell--4-offset-tablet.mdl-cell--4-offset-tablet {\\n margin-left: calc(50% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--4-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--4-offset-tablet.mdl-cell--4-offset-tablet {\\n margin-left: 50%;\\n }\\n\\n .mdl-cell--5-offset,\\n .mdl-cell--5-offset-tablet.mdl-cell--5-offset-tablet {\\n margin-left: calc(62.5% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--5-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--5-offset-tablet.mdl-cell--5-offset-tablet {\\n margin-left: 62.5%;\\n }\\n\\n .mdl-cell--6-offset,\\n .mdl-cell--6-offset-tablet.mdl-cell--6-offset-tablet {\\n margin-left: calc(75% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--6-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--6-offset-tablet.mdl-cell--6-offset-tablet {\\n margin-left: 75%;\\n }\\n\\n .mdl-cell--7-offset,\\n .mdl-cell--7-offset-tablet.mdl-cell--7-offset-tablet {\\n margin-left: calc(87.5% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--7-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--7-offset-tablet.mdl-cell--7-offset-tablet {\\n margin-left: 87.5%;\\n }\\n}\\n\\n@media (min-width: 840px) {\\n .mdl-grid {\\n padding: 8px;\\n }\\n\\n .mdl-cell {\\n margin: 8px;\\n width: calc(33.3333333333% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell {\\n width: 33.3333333333%;\\n }\\n\\n .mdl-cell--hide-desktop {\\n display: none !important;\\n }\\n\\n .mdl-cell--order-1-desktop.mdl-cell--order-1-desktop {\\n order: 1;\\n }\\n\\n .mdl-cell--order-2-desktop.mdl-cell--order-2-desktop {\\n order: 2;\\n }\\n\\n .mdl-cell--order-3-desktop.mdl-cell--order-3-desktop {\\n order: 3;\\n }\\n\\n .mdl-cell--order-4-desktop.mdl-cell--order-4-desktop {\\n order: 4;\\n }\\n\\n .mdl-cell--order-5-desktop.mdl-cell--order-5-desktop {\\n order: 5;\\n }\\n\\n .mdl-cell--order-6-desktop.mdl-cell--order-6-desktop {\\n order: 6;\\n }\\n\\n .mdl-cell--order-7-desktop.mdl-cell--order-7-desktop {\\n order: 7;\\n }\\n\\n .mdl-cell--order-8-desktop.mdl-cell--order-8-desktop {\\n order: 8;\\n }\\n\\n .mdl-cell--order-9-desktop.mdl-cell--order-9-desktop {\\n order: 9;\\n }\\n\\n .mdl-cell--order-10-desktop.mdl-cell--order-10-desktop {\\n order: 10;\\n }\\n\\n .mdl-cell--order-11-desktop.mdl-cell--order-11-desktop {\\n order: 11;\\n }\\n\\n .mdl-cell--order-12-desktop.mdl-cell--order-12-desktop {\\n order: 12;\\n }\\n\\n .mdl-cell--1-col,\\n .mdl-cell--1-col-desktop.mdl-cell--1-col-desktop {\\n width: calc(8.3333333333% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--1-col,\\n .mdl-grid--no-spacing > .mdl-cell--1-col-desktop.mdl-cell--1-col-desktop {\\n width: 8.3333333333%;\\n }\\n\\n .mdl-cell--2-col,\\n .mdl-cell--2-col-desktop.mdl-cell--2-col-desktop {\\n width: calc(16.6666666667% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--2-col,\\n .mdl-grid--no-spacing > .mdl-cell--2-col-desktop.mdl-cell--2-col-desktop {\\n width: 16.6666666667%;\\n }\\n\\n .mdl-cell--3-col,\\n .mdl-cell--3-col-desktop.mdl-cell--3-col-desktop {\\n width: calc(25% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--3-col,\\n .mdl-grid--no-spacing > .mdl-cell--3-col-desktop.mdl-cell--3-col-desktop {\\n width: 25%;\\n }\\n\\n .mdl-cell--4-col,\\n .mdl-cell--4-col-desktop.mdl-cell--4-col-desktop {\\n width: calc(33.3333333333% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--4-col,\\n .mdl-grid--no-spacing > .mdl-cell--4-col-desktop.mdl-cell--4-col-desktop {\\n width: 33.3333333333%;\\n }\\n\\n .mdl-cell--5-col,\\n .mdl-cell--5-col-desktop.mdl-cell--5-col-desktop {\\n width: calc(41.6666666667% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--5-col,\\n .mdl-grid--no-spacing > .mdl-cell--5-col-desktop.mdl-cell--5-col-desktop {\\n width: 41.6666666667%;\\n }\\n\\n .mdl-cell--6-col,\\n .mdl-cell--6-col-desktop.mdl-cell--6-col-desktop {\\n width: calc(50% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--6-col,\\n .mdl-grid--no-spacing > .mdl-cell--6-col-desktop.mdl-cell--6-col-desktop {\\n width: 50%;\\n }\\n\\n .mdl-cell--7-col,\\n .mdl-cell--7-col-desktop.mdl-cell--7-col-desktop {\\n width: calc(58.3333333333% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--7-col,\\n .mdl-grid--no-spacing > .mdl-cell--7-col-desktop.mdl-cell--7-col-desktop {\\n width: 58.3333333333%;\\n }\\n\\n .mdl-cell--8-col,\\n .mdl-cell--8-col-desktop.mdl-cell--8-col-desktop {\\n width: calc(66.6666666667% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--8-col,\\n .mdl-grid--no-spacing > .mdl-cell--8-col-desktop.mdl-cell--8-col-desktop {\\n width: 66.6666666667%;\\n }\\n\\n .mdl-cell--9-col,\\n .mdl-cell--9-col-desktop.mdl-cell--9-col-desktop {\\n width: calc(75% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--9-col,\\n .mdl-grid--no-spacing > .mdl-cell--9-col-desktop.mdl-cell--9-col-desktop {\\n width: 75%;\\n }\\n\\n .mdl-cell--10-col,\\n .mdl-cell--10-col-desktop.mdl-cell--10-col-desktop {\\n width: calc(83.3333333333% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--10-col,\\n .mdl-grid--no-spacing > .mdl-cell--10-col-desktop.mdl-cell--10-col-desktop {\\n width: 83.3333333333%;\\n }\\n\\n .mdl-cell--11-col,\\n .mdl-cell--11-col-desktop.mdl-cell--11-col-desktop {\\n width: calc(91.6666666667% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--11-col,\\n .mdl-grid--no-spacing > .mdl-cell--11-col-desktop.mdl-cell--11-col-desktop {\\n width: 91.6666666667%;\\n }\\n\\n .mdl-cell--12-col,\\n .mdl-cell--12-col-desktop.mdl-cell--12-col-desktop {\\n width: calc(100% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--12-col,\\n .mdl-grid--no-spacing > .mdl-cell--12-col-desktop.mdl-cell--12-col-desktop {\\n width: 100%;\\n }\\n\\n .mdl-cell--1-offset,\\n .mdl-cell--1-offset-desktop.mdl-cell--1-offset-desktop {\\n margin-left: calc(8.3333333333% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--1-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--1-offset-desktop.mdl-cell--1-offset-desktop {\\n margin-left: 8.3333333333%;\\n }\\n\\n .mdl-cell--2-offset,\\n .mdl-cell--2-offset-desktop.mdl-cell--2-offset-desktop {\\n margin-left: calc(16.6666666667% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--2-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--2-offset-desktop.mdl-cell--2-offset-desktop {\\n margin-left: 16.6666666667%;\\n }\\n\\n .mdl-cell--3-offset,\\n .mdl-cell--3-offset-desktop.mdl-cell--3-offset-desktop {\\n margin-left: calc(25% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--3-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--3-offset-desktop.mdl-cell--3-offset-desktop {\\n margin-left: 25%;\\n }\\n\\n .mdl-cell--4-offset,\\n .mdl-cell--4-offset-desktop.mdl-cell--4-offset-desktop {\\n margin-left: calc(33.3333333333% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--4-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--4-offset-desktop.mdl-cell--4-offset-desktop {\\n margin-left: 33.3333333333%;\\n }\\n\\n .mdl-cell--5-offset,\\n .mdl-cell--5-offset-desktop.mdl-cell--5-offset-desktop {\\n margin-left: calc(41.6666666667% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--5-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--5-offset-desktop.mdl-cell--5-offset-desktop {\\n margin-left: 41.6666666667%;\\n }\\n\\n .mdl-cell--6-offset,\\n .mdl-cell--6-offset-desktop.mdl-cell--6-offset-desktop {\\n margin-left: calc(50% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--6-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--6-offset-desktop.mdl-cell--6-offset-desktop {\\n margin-left: 50%;\\n }\\n\\n .mdl-cell--7-offset,\\n .mdl-cell--7-offset-desktop.mdl-cell--7-offset-desktop {\\n margin-left: calc(58.3333333333% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--7-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--7-offset-desktop.mdl-cell--7-offset-desktop {\\n margin-left: 58.3333333333%;\\n }\\n\\n .mdl-cell--8-offset,\\n .mdl-cell--8-offset-desktop.mdl-cell--8-offset-desktop {\\n margin-left: calc(66.6666666667% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--8-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--8-offset-desktop.mdl-cell--8-offset-desktop {\\n margin-left: 66.6666666667%;\\n }\\n\\n .mdl-cell--9-offset,\\n .mdl-cell--9-offset-desktop.mdl-cell--9-offset-desktop {\\n margin-left: calc(75% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--9-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--9-offset-desktop.mdl-cell--9-offset-desktop {\\n margin-left: 75%;\\n }\\n\\n .mdl-cell--10-offset,\\n .mdl-cell--10-offset-desktop.mdl-cell--10-offset-desktop {\\n margin-left: calc(83.3333333333% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--10-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--10-offset-desktop.mdl-cell--10-offset-desktop {\\n margin-left: 83.3333333333%;\\n }\\n\\n .mdl-cell--11-offset,\\n .mdl-cell--11-offset-desktop.mdl-cell--11-offset-desktop {\\n margin-left: calc(91.6666666667% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--11-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--11-offset-desktop.mdl-cell--11-offset-desktop {\\n margin-left: 91.6666666667%;\\n }\\n}\\n\\n@font-face {\\n font-family: \\\"Material Icons\\\";\\n font-style: normal;\\n font-weight: 400;\\n src: url(\" + escape(require(\"./../node_modules/material-design-icons-iconfont/dist/fonts/MaterialIcons-Regular.eot\")) + \");\\n /* For IE6-8 */\\n src: local(\\\"Material Icons\\\"), local(\\\"MaterialIcons-Regular\\\"), url(\" + escape(require(\"./../node_modules/material-design-icons-iconfont/dist/fonts/MaterialIcons-Regular.woff2\")) + \") format(\\\"woff2\\\"), url(\" + escape(require(\"./../node_modules/material-design-icons-iconfont/dist/fonts/MaterialIcons-Regular.woff\")) + \") format(\\\"woff\\\"), url(\" + escape(require(\"./../node_modules/material-design-icons-iconfont/dist/fonts/MaterialIcons-Regular.ttf\")) + \") format(\\\"truetype\\\");\\n}\\n\\n.material-icons {\\n font-family: \\\"Material Icons\\\";\\n font-weight: normal;\\n font-style: normal;\\n font-size: 24px;\\n /* Preferred icon size */\\n display: inline-block;\\n line-height: 1;\\n text-transform: none;\\n letter-spacing: normal;\\n word-wrap: normal;\\n white-space: nowrap;\\n direction: ltr;\\n /* Support for all WebKit browsers. */\\n -webkit-font-smoothing: antialiased;\\n /* Support for Safari and Chrome. */\\n text-rendering: optimizeLegibility;\\n /* Support for Firefox. */\\n -moz-osx-font-smoothing: grayscale;\\n /* Support for IE. */\\n font-feature-settings: \\\"liga\\\";\\n}\\n\\n/* BEGIN Regular */\\n\\n@font-face {\\n font-family: \\\"Open Sans\\\";\\n src: url(\" + escape(require(\"./../node_modules/open-sans-fontface/fonts/Regular/OpenSans-Regular.eot\")) + \");\\n src: url(\" + escape(require(\"./../node_modules/open-sans-fontface/fonts/Regular/OpenSans-Regular.eot\")) + \") format(\\\"embedded-opentype\\\"), url(\" + escape(require(\"./../node_modules/open-sans-fontface/fonts/Regular/OpenSans-Regular.woff\")) + \") format(\\\"woff\\\"), url(\" + escape(require(\"./../node_modules/open-sans-fontface/fonts/Regular/OpenSans-Regular.ttf\")) + \") format(\\\"truetype\\\"), url(\" + escape(require(\"./../node_modules/open-sans-fontface/fonts/Regular/OpenSans-Regular.svg\")) + \") format(\\\"svg\\\");\\n font-weight: normal;\\n font-style: normal;\\n}\\n\\n/* END Regular */\\n\\n/* source-sans-pro-cyrillic-ext-400-normal*/\\n\\n@font-face {\\n font-family: \\\"Source Sans Pro\\\";\\n font-style: normal;\\n font-display: swap;\\n font-weight: 400;\\n src: url(\" + escape(require(\"./../node_modules/@fontsource/source-sans-pro/files/source-sans-pro-cyrillic-ext-400-normal.woff2\")) + \") format(\\\"woff2\\\"), url(\" + escape(require(\"./../node_modules/@fontsource/source-sans-pro/files/source-sans-pro-all-400-normal.woff\")) + \") format(\\\"woff\\\");\\n unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\\n}\\n\\n/* source-sans-pro-cyrillic-400-normal*/\\n\\n@font-face {\\n font-family: \\\"Source Sans Pro\\\";\\n font-style: normal;\\n font-display: swap;\\n font-weight: 400;\\n src: url(\" + escape(require(\"./../node_modules/@fontsource/source-sans-pro/files/source-sans-pro-cyrillic-400-normal.woff2\")) + \") format(\\\"woff2\\\"), url(\" + escape(require(\"./../node_modules/@fontsource/source-sans-pro/files/source-sans-pro-all-400-normal.woff\")) + \") format(\\\"woff\\\");\\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\\n}\\n\\n/* source-sans-pro-greek-ext-400-normal*/\\n\\n@font-face {\\n font-family: \\\"Source Sans Pro\\\";\\n font-style: normal;\\n font-display: swap;\\n font-weight: 400;\\n src: url(\" + escape(require(\"./../node_modules/@fontsource/source-sans-pro/files/source-sans-pro-greek-ext-400-normal.woff2\")) + \") format(\\\"woff2\\\"), url(\" + escape(require(\"./../node_modules/@fontsource/source-sans-pro/files/source-sans-pro-all-400-normal.woff\")) + \") format(\\\"woff\\\");\\n unicode-range: U+1F00-1FFF;\\n}\\n\\n/* source-sans-pro-greek-400-normal*/\\n\\n@font-face {\\n font-family: \\\"Source Sans Pro\\\";\\n font-style: normal;\\n font-display: swap;\\n font-weight: 400;\\n src: url(\" + escape(require(\"./../node_modules/@fontsource/source-sans-pro/files/source-sans-pro-greek-400-normal.woff2\")) + \") format(\\\"woff2\\\"), url(\" + escape(require(\"./../node_modules/@fontsource/source-sans-pro/files/source-sans-pro-all-400-normal.woff\")) + \") format(\\\"woff\\\");\\n unicode-range: U+0370-03FF;\\n}\\n\\n/* source-sans-pro-vietnamese-400-normal*/\\n\\n@font-face {\\n font-family: \\\"Source Sans Pro\\\";\\n font-style: normal;\\n font-display: swap;\\n font-weight: 400;\\n src: url(\" + escape(require(\"./../node_modules/@fontsource/source-sans-pro/files/source-sans-pro-vietnamese-400-normal.woff2\")) + \") format(\\\"woff2\\\"), url(\" + escape(require(\"./../node_modules/@fontsource/source-sans-pro/files/source-sans-pro-all-400-normal.woff\")) + \") format(\\\"woff\\\");\\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;\\n}\\n\\n/* source-sans-pro-latin-ext-400-normal*/\\n\\n@font-face {\\n font-family: \\\"Source Sans Pro\\\";\\n font-style: normal;\\n font-display: swap;\\n font-weight: 400;\\n src: url(\" + escape(require(\"./../node_modules/@fontsource/source-sans-pro/files/source-sans-pro-latin-ext-400-normal.woff2\")) + \") format(\\\"woff2\\\"), url(\" + escape(require(\"./../node_modules/@fontsource/source-sans-pro/files/source-sans-pro-all-400-normal.woff\")) + \") format(\\\"woff\\\");\\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\\n}\\n\\n/* source-sans-pro-latin-400-normal*/\\n\\n@font-face {\\n font-family: \\\"Source Sans Pro\\\";\\n font-style: normal;\\n font-display: swap;\\n font-weight: 400;\\n src: url(\" + escape(require(\"./../node_modules/@fontsource/source-sans-pro/files/source-sans-pro-latin-400-normal.woff2\")) + \") format(\\\"woff2\\\"), url(\" + escape(require(\"./../node_modules/@fontsource/source-sans-pro/files/source-sans-pro-all-400-normal.woff\")) + \") format(\\\"woff\\\");\\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\\n}\\n\\nag-grid,\\nag-grid-angular,\\nag-grid-ng2,\\nag-grid-polymer,\\nag-grid-aurelia {\\n display: block;\\n}\\n\\n.ag-rtl {\\n direction: rtl;\\n}\\n\\n.ag-ltr {\\n direction: ltr;\\n}\\n\\n.ag-select-agg-func-popup {\\n position: absolute;\\n}\\n\\n.ag-body-no-select {\\n user-select: none;\\n}\\n\\n.ag-root-wrapper {\\n position: relative;\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.ag-root-wrapper.ag-layout-normal {\\n height: 100%;\\n}\\n\\n.ag-root-wrapper-body {\\n display: flex;\\n flex-direction: row;\\n}\\n\\n.ag-root-wrapper-body.ag-layout-normal {\\n flex-grow: 1;\\n height: 0px;\\n min-height: 0px;\\n}\\n\\n.ag-root {\\n box-sizing: border-box;\\n position: relative;\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.ag-root.ag-layout-normal,\\n.ag-root.ag-layout-auto-height {\\n overflow: hidden;\\n width: 0px;\\n min-width: 0px;\\n flex: 1;\\n}\\n\\n.ag-root.ag-layout-normal {\\n height: 100%;\\n}\\n\\n.ag-font-style {\\n cursor: default;\\n user-select: none;\\n}\\n\\n.ag-popup-backdrop {\\n height: 100%;\\n left: 0;\\n position: fixed;\\n top: 0;\\n width: 100%;\\n}\\n\\n.ag-header {\\n box-sizing: border-box;\\n white-space: nowrap;\\n width: 100%;\\n display: flex;\\n}\\n\\n.ag-pinned-left-header {\\n box-sizing: border-box;\\n display: inline-block;\\n height: 100%;\\n overflow: hidden;\\n}\\n\\n.ag-pinned-right-header {\\n box-sizing: border-box;\\n display: inline-block;\\n height: 100%;\\n overflow: hidden;\\n}\\n\\n.ag-header-viewport {\\n box-sizing: border-box;\\n height: 100%;\\n overflow: hidden;\\n width: 0px;\\n min-width: 0px;\\n flex: 1;\\n}\\n\\n.ag-header-row {\\n position: absolute;\\n}\\n\\n.ag-header-container {\\n box-sizing: border-box;\\n height: 100%;\\n position: relative;\\n white-space: nowrap;\\n}\\n\\n.ag-header-overlay {\\n display: block;\\n position: absolute;\\n}\\n\\n.ag-header-cell {\\n box-sizing: border-box;\\n display: inline-block;\\n height: 100%;\\n position: absolute;\\n vertical-align: bottom;\\n}\\n\\n.ag-floating-filter {\\n box-sizing: border-box;\\n display: inline-block;\\n position: absolute;\\n}\\n\\n.ag-floating-filter-body {\\n height: 20px;\\n margin-right: 25px;\\n}\\n\\n.ag-floating-filter-full-body {\\n height: 20px;\\n width: 100%;\\n}\\n\\n.ag-floating-filter-input {\\n width: 100%;\\n}\\n\\n.ag-floating-filter-input:read-only {\\n background-color: #eee;\\n}\\n\\n.ag-floating-filter-menu {\\n position: absolute;\\n user-select: none;\\n}\\n\\n.ag-dnd-ghost {\\n background: #e5e5e5;\\n border: 1px solid black;\\n box-sizing: border-box;\\n cursor: move;\\n font-family: \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\n font-size: 14px;\\n line-height: 1.4;\\n overflow: hidden;\\n padding: 3px;\\n position: absolute;\\n text-overflow: ellipsis;\\n user-select: none;\\n}\\n\\n.ag-dnd-ghost-icon {\\n display: inline-block;\\n float: left;\\n padding: 2px;\\n}\\n\\n.ag-dnd-ghost-label {\\n display: inline-block;\\n}\\n\\n.ag-header-group-cell {\\n box-sizing: border-box;\\n display: inline-block;\\n height: 100%;\\n overflow: hidden;\\n position: absolute;\\n text-overflow: ellipsis;\\n}\\n\\n.ag-header-group-cell-label {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: flex;\\n}\\n\\n.ag-header-cell-label {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n}\\n\\n.ag-header-cell-resize {\\n position: absolute;\\n z-index: 4;\\n cursor: col-resize;\\n height: 100%;\\n width: 4px;\\n}\\n\\n.ag-ltr .ag-header-cell-resize {\\n right: -4px;\\n}\\n\\n.ag-ltr .ag-pinned-right-header .ag-header-cell-resize {\\n left: -4px;\\n}\\n\\n.ag-rtl .ag-header-cell-resize {\\n left: -4px;\\n}\\n\\n.ag-rtl .ag-pinned-left-header .ag-header-cell-resize {\\n right: -4px;\\n}\\n\\n.ag-ltr .ag-header-select-all {\\n float: left;\\n}\\n\\n.ag-rtl .ag-header-select-all {\\n float: right;\\n}\\n\\n.ag-header-expand-icon {\\n padding-left: 4px;\\n}\\n\\n.ag-header-cell-menu-button {\\n float: right;\\n}\\n\\n.ag-overlay {\\n height: 100%;\\n left: 0;\\n pointer-events: none;\\n position: absolute;\\n top: 0;\\n width: 100%;\\n}\\n\\n.ag-overlay-panel {\\n display: table;\\n height: 100%;\\n pointer-events: none;\\n width: 100%;\\n}\\n\\n.ag-overlay-wrapper {\\n display: table-cell;\\n text-align: center;\\n vertical-align: middle;\\n}\\n\\n.ag-primary-cols-header-panel .ag-column-name-filter {\\n flex-grow: 1;\\n flex-shrink: 1;\\n}\\n\\n.ag-primary-cols-header-panel .ag-primary-cols-filter-wrapper {\\n width: 100%;\\n}\\n\\n.ag-tool-panel-wrapper {\\n display: flex;\\n overflow-y: auto;\\n}\\n\\n.ag-column-panel {\\n display: flex;\\n min-height: 400px;\\n flex-direction: column;\\n flex-grow: 1;\\n overflow-x: hidden;\\n max-height: 100vh;\\n}\\n\\n.ag-body-container.ag-layout-auto-height {\\n min-height: 50px;\\n}\\n\\n.ag-overlay-no-rows-wrapper.ag-layout-auto-height {\\n padding-top: 30px;\\n}\\n\\n.ag-body {\\n box-sizing: border-box;\\n position: relative;\\n display: flex;\\n}\\n\\n.ag-body.ag-layout-normal {\\n flex: 1;\\n height: 0px;\\n min-height: 0px;\\n}\\n\\n.ag-rtl .ag-body {\\n flex-direction: row-reverse;\\n}\\n\\n.ag-ltr .ag-body {\\n flex-direction: row;\\n}\\n\\n.ag-rtl .ag-floating-top {\\n flex-direction: row-reverse;\\n}\\n\\n.ag-ltr .ag-floating-top {\\n flex-direction: row;\\n}\\n\\n.ag-rtl .ag-floating-bottom {\\n flex-direction: row-reverse;\\n}\\n\\n.ag-ltr .ag-floating-bottom {\\n flex-direction: row;\\n}\\n\\n.ag-ltr .ag-header {\\n flex-direction: row;\\n}\\n\\n.ag-rtl .ag-header {\\n flex-direction: row-reverse;\\n}\\n\\n.ag-floating-top {\\n box-sizing: border-box;\\n overflow: hidden;\\n white-space: nowrap;\\n width: 100%;\\n position: relative;\\n display: flex;\\n}\\n\\n.ag-pinned-left-floating-top {\\n box-sizing: border-box;\\n display: inline-block;\\n overflow: hidden;\\n position: relative;\\n min-width: 0px;\\n width: 0px;\\n flex-grow: 1000;\\n}\\n\\n.ag-pinned-right-floating-top {\\n box-sizing: border-box;\\n display: inline-block;\\n overflow: hidden;\\n position: relative;\\n min-width: 0px;\\n width: 0px;\\n flex-grow: 1000;\\n}\\n\\n.ag-floating-top-viewport {\\n box-sizing: border-box;\\n overflow: hidden;\\n width: 0px;\\n min-width: 0px;\\n flex: 1;\\n}\\n\\n.ag-floating-top-viewport.ag-layout-normal {\\n height: 100%;\\n}\\n\\n.ag-floating-top-container {\\n box-sizing: border-box;\\n position: relative;\\n white-space: nowrap;\\n}\\n\\n.ag-floating-bottom {\\n box-sizing: border-box;\\n overflow: hidden;\\n white-space: nowrap;\\n width: 100%;\\n position: relative;\\n display: flex;\\n}\\n\\n.ag-pinned-left-floating-bottom {\\n box-sizing: border-box;\\n display: inline-block;\\n overflow: hidden;\\n position: relative;\\n min-width: 0px;\\n width: 0px;\\n flex-grow: 1000;\\n}\\n\\n.ag-pinned-right-floating-bottom {\\n box-sizing: border-box;\\n display: inline-block;\\n overflow: hidden;\\n position: relative;\\n min-width: 0px;\\n width: 0px;\\n flex-grow: 1000;\\n}\\n\\n.ag-floating-bottom-viewport {\\n box-sizing: border-box;\\n overflow: hidden;\\n flex: 1;\\n width: 0px;\\n min-width: 0px;\\n}\\n\\n.ag-floating-bottom-container {\\n box-sizing: border-box;\\n position: relative;\\n white-space: nowrap;\\n}\\n\\n.ag-pinned-right-cols-viewport-wrapper {\\n height: 100%;\\n overflow: hidden;\\n flex-grow: 1000;\\n min-width: 0px;\\n width: 0px;\\n}\\n\\n.ag-pinned-right-cols-viewport {\\n height: 100%;\\n overflow-x: hidden;\\n overflow-y: auto;\\n}\\n\\n.ag-pinned-right-cols-container {\\n display: block;\\n position: relative;\\n}\\n\\n.ag-pinned-left-cols-viewport-wrapper {\\n height: 100%;\\n overflow: hidden;\\n flex-grow: 1000;\\n min-width: 0px;\\n width: 0px;\\n}\\n\\n.ag-pinned-left-cols-viewport {\\n height: 100%;\\n overflow-x: hidden;\\n overflow-y: auto;\\n}\\n\\n.ag-pinned-left-cols-container {\\n display: block;\\n position: relative;\\n}\\n\\n.ag-body-viewport-wrapper {\\n overflow: hidden;\\n}\\n\\n.ag-body-viewport-wrapper.ag-layout-auto-height,\\n.ag-body-viewport-wrapper.ag-layout-normal {\\n height: 100%;\\n width: 20px;\\n min-width: 20px;\\n flex: 1;\\n}\\n\\n.ag-body-viewport.ag-layout-auto-height {\\n overflow-x: auto;\\n overflow-y: hidden;\\n}\\n\\n.ag-body-viewport.ag-layout-normal {\\n overflow-x: auto;\\n overflow-y: auto;\\n height: 100%;\\n}\\n\\n.ag-full-width-viewport-wrapper {\\n height: 100%;\\n width: 100%;\\n display: inline-block;\\n pointer-events: none;\\n overflow: hidden;\\n position: absolute;\\n top: 0px;\\n left: 0px;\\n box-sizing: border-box;\\n}\\n\\n.ag-full-width-viewport {\\n box-sizing: border-box;\\n height: 100%;\\n pointer-events: none;\\n overflow-x: hidden;\\n overflow-y: auto;\\n}\\n\\n.ag-full-width-container {\\n overflow: hidden;\\n position: relative;\\n width: 100%;\\n}\\n\\n.ag-floating-bottom-full-width-container {\\n display: inline;\\n left: 0;\\n overflow: hidden;\\n pointer-events: none;\\n position: absolute;\\n top: 0;\\n}\\n\\n.ag-floating-top-full-width-container {\\n display: inline;\\n left: 0;\\n overflow: hidden;\\n pointer-events: none;\\n position: absolute;\\n top: 0;\\n}\\n\\n.ag-full-width-row {\\n overflow: hidden;\\n pointer-events: all;\\n}\\n\\n.ag-body-container {\\n position: relative;\\n}\\n\\n.ag-body-container:not(.ag-layout-print) {\\n display: block;\\n}\\n\\n.ag-row-animation .ag-row {\\n transition: transform 0.4s, top 0.4s, height 0.4s, background-color 0.1s, opacity 0.2s;\\n}\\n\\n.ag-row-no-animation .ag-row {\\n transition: background-color 0.1s;\\n}\\n\\n.ag-row {\\n box-sizing: border-box;\\n white-space: nowrap;\\n width: 100%;\\n}\\n\\n.ag-row-position-absolute {\\n position: absolute;\\n}\\n\\n.ag-row-position-relative {\\n position: relative;\\n}\\n\\n.ag-column-moving .ag-cell {\\n transition: left 0.2s;\\n}\\n\\n.ag-column-moving .ag-header-cell {\\n transition: left 0.2s;\\n}\\n\\n.ag-column-moving .ag-header-group-cell {\\n transition: left 0.2s, width 0.2s;\\n}\\n\\n.ag-column-drop {\\n box-sizing: border-box;\\n width: 100%;\\n}\\n\\n.ag-column-drop-vertical {\\n display: flex;\\n flex-direction: column;\\n flex-grow: 1;\\n height: 50px;\\n overflow: hidden;\\n}\\n\\n.ag-column-drop-vertical .ag-column-drop-list {\\n flex-grow: 1;\\n height: 20px;\\n overflow-x: auto;\\n}\\n\\n.ag-column-drop-vertical .ag-column-drop-cell {\\n display: flex;\\n}\\n\\n.ag-column-drop-vertical .ag-column-drop-cell .ag-column-drop-cell-text {\\n overflow: hidden;\\n flex: 1;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n\\n.ag-column-drop-vertical .ag-column-drop-empty-message {\\n display: block;\\n}\\n\\n.ag-column-drop-vertical .ag-column-drop-cell-button {\\n line-height: 16px;\\n}\\n\\n.ag-ltr .ag-column-drop-vertical .ag-column-drop-cell-button {\\n float: right;\\n}\\n\\n.ag-rtl .ag-column-drop-vertical .ag-column-drop-cell-button {\\n float: left;\\n}\\n\\n.ag-column-drop-horizontal {\\n white-space: nowrap;\\n overflow: hidden;\\n}\\n\\n.ag-column-drop-horizontal .ag-column-drop-cell {\\n display: inline-block;\\n}\\n\\n.ag-column-drop-horizontal .ag-column-drop-empty-message {\\n display: inline-block;\\n}\\n\\n.ag-column-drop-horizontal .ag-column-drop-list {\\n height: 100%;\\n}\\n\\n.ag-cell {\\n box-sizing: border-box;\\n display: inline-block;\\n overflow: hidden;\\n position: absolute;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n\\n.ag-cell-with-height {\\n height: 100%;\\n}\\n\\n.ag-value-slide-out {\\n margin-right: 5px;\\n opacity: 1;\\n transition: opacity 3s, margin-right 3s;\\n transition-timing-function: linear;\\n}\\n\\n.ag-value-slide-out-end {\\n margin-right: 10px;\\n opacity: 0;\\n}\\n\\n.ag-opacity-zero {\\n opacity: 0;\\n}\\n\\n.ag-cell-edit-input {\\n height: 100%;\\n width: 100%;\\n}\\n\\n.ag-group-cell-entire-row {\\n box-sizing: border-box;\\n display: inline-block;\\n height: 100%;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n width: 100%;\\n}\\n\\n.ag-footer-cell-entire-row {\\n box-sizing: border-box;\\n display: inline-block;\\n height: 100%;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n width: 100%;\\n}\\n\\n.ag-popup-editor {\\n position: absolute;\\n user-select: none;\\n}\\n\\n.ag-menu {\\n max-height: 100%;\\n overflow-y: auto;\\n position: absolute;\\n user-select: none;\\n}\\n\\n.ag-menu-column-select-wrapper {\\n height: 265px;\\n overflow: auto;\\n width: 200px;\\n}\\n\\n.ag-menu-list {\\n border-collapse: collapse;\\n display: table;\\n}\\n\\n.ag-menu-option {\\n display: table-row;\\n}\\n\\n.ag-menu-option-text {\\n display: table-cell;\\n white-space: nowrap;\\n}\\n\\n.ag-menu-option-shortcut {\\n display: table-cell;\\n}\\n\\n.ag-menu-option-icon {\\n display: table-cell;\\n}\\n\\n.ag-menu-option-popup-pointer {\\n display: table-cell;\\n}\\n\\n.ag-menu-separator {\\n display: table-row;\\n}\\n\\n.ag-menu-separator-cell {\\n display: table-cell;\\n}\\n\\n.ag-virtual-list-viewport {\\n height: 100%;\\n overflow-x: auto;\\n width: 100%;\\n}\\n\\n.ag-virtual-list-container {\\n overflow: hidden;\\n position: relative;\\n}\\n\\n.ag-rich-select {\\n cursor: default;\\n outline: none;\\n}\\n\\n.ag-rich-select-row {\\n white-space: nowrap;\\n}\\n\\n.ag-rich-select-list {\\n height: 200px;\\n width: 200px;\\n}\\n\\n.ag-set-filter-list {\\n height: 200px;\\n width: 200px;\\n}\\n\\n.ag-set-filter-item {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n\\n.ag-virtual-list-item {\\n position: absolute;\\n width: 100%;\\n}\\n\\n.ag-virtual-list-item span:empty:not(.ag-icon) {\\n border-left: 1px solid transparent;\\n}\\n\\n.ag-filter-filter {\\n box-sizing: border-box;\\n width: 100%;\\n}\\n\\n.ag-filter .ag-filter-checkbox {\\n pointer-events: none;\\n}\\n\\n.ag-floating-filter-body input {\\n height: 19px;\\n margin: 0;\\n width: 100%;\\n}\\n\\n.ag-floating-filter-full-body input {\\n height: 19px;\\n margin: 0;\\n width: 100%;\\n}\\n\\n.ag-filter-select {\\n margin: 4px 4px 0 4px;\\n width: 110px;\\n}\\n\\n.ag-list-selection {\\n cursor: default;\\n user-select: none;\\n}\\n\\n.ag-tool-panel-wrapper {\\n box-sizing: border-box;\\n cursor: default;\\n user-select: none;\\n width: 200px;\\n}\\n\\n.ag-primary-cols-list-panel {\\n flex-grow: 1;\\n height: 50px;\\n overflow: auto;\\n}\\n\\n.ag-column-select-indent {\\n display: inline-block;\\n}\\n\\n.ag-ltr .ag-column-tool-panel-column {\\n margin-left: 16px;\\n}\\n\\n.ag-rtl .ag-column-tool-panel-column {\\n margin-right: 16px;\\n}\\n\\n.ag-column-tool-panel-column,\\n.ag-column-tool-panel-column-group {\\n align-items: stretch;\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n\\n.ag-column-tool-panel-column .ag-column-tool-panel-column,\\n.ag-column-tool-panel-column .ag-column-tool-panel-column-group,\\n.ag-column-tool-panel-column-group .ag-column-tool-panel-column,\\n.ag-column-tool-panel-column-group .ag-column-tool-panel-column-group {\\n flex-grow: 1;\\n flex-shrink: 1;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n}\\n\\n.ag-column-tool-panel-column .ag-column-drag,\\n.ag-column-tool-panel-column-group .ag-column-drag {\\n min-width: 16px;\\n flex-grow: 0;\\n flex-shrink: 0;\\n}\\n\\n.ag-column-select-panel {\\n display: flex;\\n flex-direction: column;\\n overflow: hidden;\\n}\\n\\n.ag-side-bar .ag-column-select-panel {\\n flex-grow: 4;\\n}\\n\\n.ag-tool-panel-horizontal-resize {\\n cursor: col-resize;\\n height: 100%;\\n position: absolute;\\n top: 0;\\n width: 5px;\\n z-index: 1;\\n}\\n\\n.ag-rtl .ag-tool-panel-horizontal-resize {\\n float: right;\\n transform: translateX(3px);\\n}\\n\\n.ag-ltr .ag-tool-panel-horizontal-resize {\\n float: left;\\n transform: translateX(-3px);\\n}\\n\\n.ag-menu-column-select-wrapper .ag-column-select-panel {\\n height: 100%;\\n}\\n\\n.ag-hidden {\\n display: none !important;\\n}\\n\\n.ag-visibility-hidden {\\n visibility: hidden !important;\\n}\\n\\n.ag-faded {\\n opacity: 0.3;\\n}\\n\\n.ag-width-half {\\n display: inline-block;\\n width: 50%;\\n}\\n\\n.ag-shake-left-to-right {\\n animation-direction: alternate;\\n animation-duration: 0.2s;\\n animation-iteration-count: infinite;\\n animation-name: ag-shake-left-to-right;\\n}\\n\\n@keyframes ag-shake-left-to-right {\\n from {\\n padding-left: 6px;\\n padding-right: 2px;\\n }\\n\\n to {\\n padding-left: 2px;\\n padding-right: 6px;\\n }\\n}\\n\\n/* icons are used outside of the grid root (in the ghost) */\\n\\n.ag-icon-aggregation {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/aggregation.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-arrows {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/arrows.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-asc {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/asc.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-checkbox-checked-readonly {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/checkbox-checked-readonly.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-checkbox-checked {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/checkbox-checked.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-checkbox-indeterminate-readonly {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/checkbox-indeterminate-readonly.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-checkbox-indeterminate {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/checkbox-indeterminate.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-checkbox-unchecked-readonly {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/checkbox-unchecked-readonly.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-checkbox-unchecked {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/checkbox-unchecked.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-column {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/column.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-columns {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/columns.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-contracted {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/contracted.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-copy {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/copy.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-cut {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/cut.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-desc {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/desc.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-expanded {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/expanded.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-eye-slash {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/eye-slash.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-eye {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/eye.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-filter {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/filter.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-group {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/group.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-indeterminate {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/indeterminate.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-left {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/left.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-loading {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/loading.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-menu {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/menu.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-minus {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/minus.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-none {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/none.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-not-allowed {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/not-allowed.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-paste {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/paste.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-pin {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/pin.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-pivot {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/pivot.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-plus {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/plus.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-right {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/right.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-small-left {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/small-left.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-small-right {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/small-right.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-small-up {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/small-up.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-small-down {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/small-down.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-tick {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/tick.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-cross {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/cross.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-tree-open {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/tree-open.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-tree-closed {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/tree-closed.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-tree-indeterminate {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/tree-indeterminate.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.loading-filter {\\n background-color: #e6e6e6;\\n height: 100%;\\n padding: 5px;\\n position: absolute;\\n top: 34px;\\n width: 100%;\\n z-index: 1;\\n}\\n\\n.ag-details-row {\\n height: 100%;\\n width: 100%;\\n}\\n\\n.ag-details-grid {\\n height: 100%;\\n width: 100%;\\n}\\n\\n.ag-primary-cols-header-panel {\\n display: flex;\\n flex-direction: row;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-1 {\\n padding-left: 10px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-1 {\\n padding-right: 10px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-1 {\\n padding-left: 10px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-1 {\\n padding-right: 10px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-2 {\\n padding-left: 20px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-2 {\\n padding-right: 20px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-2 {\\n padding-left: 20px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-2 {\\n padding-right: 20px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-3 {\\n padding-left: 30px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-3 {\\n padding-right: 30px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-3 {\\n padding-left: 30px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-3 {\\n padding-right: 30px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-4 {\\n padding-left: 40px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-4 {\\n padding-right: 40px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-4 {\\n padding-left: 40px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-4 {\\n padding-right: 40px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-5 {\\n padding-left: 50px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-5 {\\n padding-right: 50px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-5 {\\n padding-left: 50px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-5 {\\n padding-right: 50px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-6 {\\n padding-left: 60px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-6 {\\n padding-right: 60px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-6 {\\n padding-left: 60px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-6 {\\n padding-right: 60px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-7 {\\n padding-left: 70px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-7 {\\n padding-right: 70px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-7 {\\n padding-left: 70px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-7 {\\n padding-right: 70px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-8 {\\n padding-left: 80px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-8 {\\n padding-right: 80px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-8 {\\n padding-left: 80px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-8 {\\n padding-right: 80px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-9 {\\n padding-left: 90px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-9 {\\n padding-right: 90px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-9 {\\n padding-left: 90px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-9 {\\n padding-right: 90px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-10 {\\n padding-left: 100px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-10 {\\n padding-right: 100px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-10 {\\n padding-left: 100px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-10 {\\n padding-right: 100px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-11 {\\n padding-left: 110px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-11 {\\n padding-right: 110px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-11 {\\n padding-left: 110px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-11 {\\n padding-right: 110px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-12 {\\n padding-left: 120px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-12 {\\n padding-right: 120px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-12 {\\n padding-left: 120px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-12 {\\n padding-right: 120px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-13 {\\n padding-left: 130px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-13 {\\n padding-right: 130px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-13 {\\n padding-left: 130px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-13 {\\n padding-right: 130px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-14 {\\n padding-left: 140px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-14 {\\n padding-right: 140px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-14 {\\n padding-left: 140px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-14 {\\n padding-right: 140px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-15 {\\n padding-left: 150px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-15 {\\n padding-right: 150px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-15 {\\n padding-left: 150px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-15 {\\n padding-right: 150px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-16 {\\n padding-left: 160px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-16 {\\n padding-right: 160px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-16 {\\n padding-left: 160px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-16 {\\n padding-right: 160px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-17 {\\n padding-left: 170px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-17 {\\n padding-right: 170px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-17 {\\n padding-left: 170px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-17 {\\n padding-right: 170px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-18 {\\n padding-left: 180px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-18 {\\n padding-right: 180px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-18 {\\n padding-left: 180px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-18 {\\n padding-right: 180px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-19 {\\n padding-left: 190px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-19 {\\n padding-right: 190px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-19 {\\n padding-left: 190px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-19 {\\n padding-right: 190px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-20 {\\n padding-left: 200px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-20 {\\n padding-right: 200px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-20 {\\n padding-left: 200px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-20 {\\n padding-right: 200px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-21 {\\n padding-left: 210px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-21 {\\n padding-right: 210px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-21 {\\n padding-left: 210px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-21 {\\n padding-right: 210px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-22 {\\n padding-left: 220px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-22 {\\n padding-right: 220px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-22 {\\n padding-left: 220px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-22 {\\n padding-right: 220px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-23 {\\n padding-left: 230px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-23 {\\n padding-right: 230px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-23 {\\n padding-left: 230px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-23 {\\n padding-right: 230px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-24 {\\n padding-left: 240px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-24 {\\n padding-right: 240px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-24 {\\n padding-left: 240px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-24 {\\n padding-right: 240px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-25 {\\n padding-left: 250px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-25 {\\n padding-right: 250px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-25 {\\n padding-left: 250px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-25 {\\n padding-right: 250px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-26 {\\n padding-left: 260px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-26 {\\n padding-right: 260px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-26 {\\n padding-left: 260px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-26 {\\n padding-right: 260px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-27 {\\n padding-left: 270px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-27 {\\n padding-right: 270px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-27 {\\n padding-left: 270px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-27 {\\n padding-right: 270px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-28 {\\n padding-left: 280px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-28 {\\n padding-right: 280px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-28 {\\n padding-left: 280px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-28 {\\n padding-right: 280px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-29 {\\n padding-left: 290px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-29 {\\n padding-right: 290px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-29 {\\n padding-left: 290px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-29 {\\n padding-right: 290px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-30 {\\n padding-left: 300px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-30 {\\n padding-right: 300px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-30 {\\n padding-left: 300px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-30 {\\n padding-right: 300px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-31 {\\n padding-left: 310px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-31 {\\n padding-right: 310px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-31 {\\n padding-left: 310px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-31 {\\n padding-right: 310px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-32 {\\n padding-left: 320px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-32 {\\n padding-right: 320px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-32 {\\n padding-left: 320px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-32 {\\n padding-right: 320px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-33 {\\n padding-left: 330px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-33 {\\n padding-right: 330px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-33 {\\n padding-left: 330px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-33 {\\n padding-right: 330px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-34 {\\n padding-left: 340px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-34 {\\n padding-right: 340px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-34 {\\n padding-left: 340px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-34 {\\n padding-right: 340px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-35 {\\n padding-left: 350px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-35 {\\n padding-right: 350px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-35 {\\n padding-left: 350px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-35 {\\n padding-right: 350px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-36 {\\n padding-left: 360px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-36 {\\n padding-right: 360px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-36 {\\n padding-left: 360px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-36 {\\n padding-right: 360px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-37 {\\n padding-left: 370px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-37 {\\n padding-right: 370px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-37 {\\n padding-left: 370px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-37 {\\n padding-right: 370px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-38 {\\n padding-left: 380px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-38 {\\n padding-right: 380px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-38 {\\n padding-left: 380px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-38 {\\n padding-right: 380px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-39 {\\n padding-left: 390px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-39 {\\n padding-right: 390px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-39 {\\n padding-left: 390px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-39 {\\n padding-right: 390px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-40 {\\n padding-left: 400px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-40 {\\n padding-right: 400px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-40 {\\n padding-left: 400px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-40 {\\n padding-right: 400px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-41 {\\n padding-left: 410px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-41 {\\n padding-right: 410px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-41 {\\n padding-left: 410px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-41 {\\n padding-right: 410px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-42 {\\n padding-left: 420px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-42 {\\n padding-right: 420px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-42 {\\n padding-left: 420px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-42 {\\n padding-right: 420px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-43 {\\n padding-left: 430px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-43 {\\n padding-right: 430px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-43 {\\n padding-left: 430px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-43 {\\n padding-right: 430px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-44 {\\n padding-left: 440px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-44 {\\n padding-right: 440px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-44 {\\n padding-left: 440px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-44 {\\n padding-right: 440px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-45 {\\n padding-left: 450px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-45 {\\n padding-right: 450px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-45 {\\n padding-left: 450px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-45 {\\n padding-right: 450px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-46 {\\n padding-left: 460px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-46 {\\n padding-right: 460px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-46 {\\n padding-left: 460px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-46 {\\n padding-right: 460px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-47 {\\n padding-left: 470px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-47 {\\n padding-right: 470px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-47 {\\n padding-left: 470px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-47 {\\n padding-right: 470px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-48 {\\n padding-left: 480px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-48 {\\n padding-right: 480px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-48 {\\n padding-left: 480px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-48 {\\n padding-right: 480px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-49 {\\n padding-left: 490px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-49 {\\n padding-right: 490px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-49 {\\n padding-left: 490px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-49 {\\n padding-right: 490px;\\n}\\n\\n.ag-side-bar {\\n display: flex;\\n flex-direction: row-reverse;\\n box-sizing: border-box;\\n}\\n\\n.ag-side-bar .ag-side-buttons {\\n width: 20px;\\n}\\n\\n.ag-side-bar .ag-side-buttons div button {\\n display: block;\\n white-space: nowrap;\\n outline: none;\\n}\\n\\n.ag-side-bar .ag-side-buttons div button span {\\n writing-mode: tb;\\n writing-mode: vertical-lr;\\n}\\n\\n.ag-side-bar .panel-container {\\n width: 180px;\\n}\\n\\n.ag-side-bar.full-width .panel-container {\\n width: 200px;\\n}\\n\\n.ag-rtl .ag-side-bar .ag-side-buttons button span {\\n writing-mode: tb-rl;\\n writing-mode: vertical-rl;\\n}\\n\\n.ag-row-inline-editing {\\n z-index: 1;\\n}\\n\\n.ag-status-bar {\\n display: flex;\\n justify-content: space-between;\\n}\\n\\n.ag-status-bar .ag-status-panel {\\n display: inline-flex;\\n}\\n\\n.ag-status-bar-left {\\n display: inline-flex;\\n}\\n\\n.ag-status-bar-center {\\n display: inline-flex;\\n}\\n\\n.ag-status-bar-right {\\n display: inline-flex;\\n}\\n\\n@media print {\\n .ag-body-viewport {\\n display: block;\\n }\\n\\n .ag-row {\\n page-break-inside: avoid;\\n }\\n}\\n\\n.ag-body .ag-pinned-left-cols-viewport,\\n.ag-body .ag-body-viewport,\\n.ag-body .ag-pinned-right-cols-viewport {\\n -webkit-overflow-scrolling: touch;\\n}\\n\\n.ag-theme-material {\\n background-color: #fff;\\n color: rgba(0, 0, 0, 0.87);\\n font: 400 13px \\\"Roboto\\\", sans-serif;\\n}\\n\\n.ag-theme-material .ag-tab-header .ag-tab.ag-tab-selected {\\n border-bottom: 2px solid #3f51b5;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-1 {\\n padding-left: 10px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-1 {\\n padding-right: 10px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-1 {\\n padding-left: 10px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-1 {\\n padding-right: 10px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-2 {\\n padding-left: 20px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-2 {\\n padding-right: 20px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-2 {\\n padding-left: 20px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-2 {\\n padding-right: 20px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-3 {\\n padding-left: 30px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-3 {\\n padding-right: 30px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-3 {\\n padding-left: 30px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-3 {\\n padding-right: 30px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-4 {\\n padding-left: 40px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-4 {\\n padding-right: 40px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-4 {\\n padding-left: 40px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-4 {\\n padding-right: 40px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-5 {\\n padding-left: 50px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-5 {\\n padding-right: 50px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-5 {\\n padding-left: 50px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-5 {\\n padding-right: 50px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-6 {\\n padding-left: 60px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-6 {\\n padding-right: 60px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-6 {\\n padding-left: 60px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-6 {\\n padding-right: 60px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-7 {\\n padding-left: 70px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-7 {\\n padding-right: 70px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-7 {\\n padding-left: 70px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-7 {\\n padding-right: 70px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-8 {\\n padding-left: 80px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-8 {\\n padding-right: 80px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-8 {\\n padding-left: 80px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-8 {\\n padding-right: 80px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-9 {\\n padding-left: 90px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-9 {\\n padding-right: 90px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-9 {\\n padding-left: 90px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-9 {\\n padding-right: 90px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-10 {\\n padding-left: 100px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-10 {\\n padding-right: 100px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-10 {\\n padding-left: 100px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-10 {\\n padding-right: 100px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-11 {\\n padding-left: 110px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-11 {\\n padding-right: 110px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-11 {\\n padding-left: 110px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-11 {\\n padding-right: 110px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-12 {\\n padding-left: 120px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-12 {\\n padding-right: 120px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-12 {\\n padding-left: 120px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-12 {\\n padding-right: 120px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-13 {\\n padding-left: 130px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-13 {\\n padding-right: 130px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-13 {\\n padding-left: 130px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-13 {\\n padding-right: 130px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-14 {\\n padding-left: 140px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-14 {\\n padding-right: 140px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-14 {\\n padding-left: 140px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-14 {\\n padding-right: 140px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-15 {\\n padding-left: 150px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-15 {\\n padding-right: 150px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-15 {\\n padding-left: 150px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-15 {\\n padding-right: 150px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-16 {\\n padding-left: 160px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-16 {\\n padding-right: 160px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-16 {\\n padding-left: 160px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-16 {\\n padding-right: 160px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-17 {\\n padding-left: 170px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-17 {\\n padding-right: 170px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-17 {\\n padding-left: 170px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-17 {\\n padding-right: 170px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-18 {\\n padding-left: 180px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-18 {\\n padding-right: 180px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-18 {\\n padding-left: 180px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-18 {\\n padding-right: 180px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-19 {\\n padding-left: 190px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-19 {\\n padding-right: 190px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-19 {\\n padding-left: 190px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-19 {\\n padding-right: 190px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-20 {\\n padding-left: 200px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-20 {\\n padding-right: 200px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-20 {\\n padding-left: 200px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-20 {\\n padding-right: 200px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-21 {\\n padding-left: 210px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-21 {\\n padding-right: 210px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-21 {\\n padding-left: 210px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-21 {\\n padding-right: 210px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-22 {\\n padding-left: 220px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-22 {\\n padding-right: 220px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-22 {\\n padding-left: 220px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-22 {\\n padding-right: 220px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-23 {\\n padding-left: 230px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-23 {\\n padding-right: 230px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-23 {\\n padding-left: 230px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-23 {\\n padding-right: 230px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-24 {\\n padding-left: 240px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-24 {\\n padding-right: 240px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-24 {\\n padding-left: 240px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-24 {\\n padding-right: 240px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-25 {\\n padding-left: 250px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-25 {\\n padding-right: 250px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-25 {\\n padding-left: 250px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-25 {\\n padding-right: 250px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-26 {\\n padding-left: 260px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-26 {\\n padding-right: 260px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-26 {\\n padding-left: 260px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-26 {\\n padding-right: 260px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-27 {\\n padding-left: 270px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-27 {\\n padding-right: 270px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-27 {\\n padding-left: 270px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-27 {\\n padding-right: 270px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-28 {\\n padding-left: 280px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-28 {\\n padding-right: 280px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-28 {\\n padding-left: 280px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-28 {\\n padding-right: 280px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-29 {\\n padding-left: 290px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-29 {\\n padding-right: 290px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-29 {\\n padding-left: 290px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-29 {\\n padding-right: 290px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-30 {\\n padding-left: 300px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-30 {\\n padding-right: 300px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-30 {\\n padding-left: 300px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-30 {\\n padding-right: 300px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-31 {\\n padding-left: 310px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-31 {\\n padding-right: 310px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-31 {\\n padding-left: 310px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-31 {\\n padding-right: 310px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-32 {\\n padding-left: 320px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-32 {\\n padding-right: 320px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-32 {\\n padding-left: 320px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-32 {\\n padding-right: 320px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-33 {\\n padding-left: 330px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-33 {\\n padding-right: 330px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-33 {\\n padding-left: 330px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-33 {\\n padding-right: 330px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-34 {\\n padding-left: 340px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-34 {\\n padding-right: 340px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-34 {\\n padding-left: 340px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-34 {\\n padding-right: 340px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-35 {\\n padding-left: 350px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-35 {\\n padding-right: 350px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-35 {\\n padding-left: 350px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-35 {\\n padding-right: 350px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-36 {\\n padding-left: 360px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-36 {\\n padding-right: 360px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-36 {\\n padding-left: 360px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-36 {\\n padding-right: 360px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-37 {\\n padding-left: 370px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-37 {\\n padding-right: 370px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-37 {\\n padding-left: 370px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-37 {\\n padding-right: 370px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-38 {\\n padding-left: 380px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-38 {\\n padding-right: 380px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-38 {\\n padding-left: 380px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-38 {\\n padding-right: 380px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-39 {\\n padding-left: 390px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-39 {\\n padding-right: 390px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-39 {\\n padding-left: 390px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-39 {\\n padding-right: 390px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-40 {\\n padding-left: 400px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-40 {\\n padding-right: 400px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-40 {\\n padding-left: 400px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-40 {\\n padding-right: 400px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-41 {\\n padding-left: 410px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-41 {\\n padding-right: 410px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-41 {\\n padding-left: 410px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-41 {\\n padding-right: 410px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-42 {\\n padding-left: 420px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-42 {\\n padding-right: 420px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-42 {\\n padding-left: 420px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-42 {\\n padding-right: 420px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-43 {\\n padding-left: 430px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-43 {\\n padding-right: 430px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-43 {\\n padding-left: 430px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-43 {\\n padding-right: 430px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-44 {\\n padding-left: 440px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-44 {\\n padding-right: 440px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-44 {\\n padding-left: 440px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-44 {\\n padding-right: 440px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-45 {\\n padding-left: 450px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-45 {\\n padding-right: 450px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-45 {\\n padding-left: 450px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-45 {\\n padding-right: 450px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-46 {\\n padding-left: 460px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-46 {\\n padding-right: 460px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-46 {\\n padding-left: 460px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-46 {\\n padding-right: 460px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-47 {\\n padding-left: 470px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-47 {\\n padding-right: 470px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-47 {\\n padding-left: 470px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-47 {\\n padding-right: 470px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-48 {\\n padding-left: 480px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-48 {\\n padding-right: 480px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-48 {\\n padding-left: 480px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-48 {\\n padding-right: 480px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-49 {\\n padding-left: 490px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-49 {\\n padding-right: 490px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-49 {\\n padding-left: 490px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-49 {\\n padding-right: 490px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-leaf-indent {\\n margin-left: 42px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-leaf-indent {\\n margin-right: 42px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-cell-first-right-pinned {\\n border-left: 1px solid #e0e0e0;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-cell-first-right-pinned {\\n border-left: 1px solid #e0e0e0;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-cell-last-left-pinned {\\n border-right: 1px solid #e0e0e0;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-cell-last-left-pinned {\\n border-right: 1px solid #e0e0e0;\\n}\\n\\n.ag-theme-material .ag-value-change-delta {\\n padding-right: 2px;\\n}\\n\\n.ag-theme-material .ag-value-change-delta-up {\\n color: #43a047;\\n}\\n\\n.ag-theme-material .ag-value-change-delta-down {\\n color: #e53935;\\n}\\n\\n.ag-theme-material .ag-value-change-value {\\n background-color: transparent;\\n border-radius: 1px;\\n padding-left: 1px;\\n padding-right: 1px;\\n transition: background-color 1s;\\n}\\n\\n.ag-theme-material .ag-value-change-value-highlight {\\n background-color: #00acc1;\\n transition: background-color 0.1s;\\n}\\n\\n.ag-theme-material .ag-header {\\n color: rgba(0, 0, 0, 0.54);\\n font: 700 12px \\\"Roboto\\\", sans-serif;\\n}\\n\\n.ag-theme-material .ag-header-row {\\n border-style: solid;\\n border-color: #e0e0e0;\\n box-sizing: border-box;\\n border-width: 0 0 1px;\\n}\\n\\n.ag-theme-material .ag-row {\\n border-style: solid;\\n border-color: #e0e0e0;\\n box-sizing: border-box;\\n border-width: 0;\\n}\\n\\n.ag-theme-material .ag-row:not(.ag-row-first) {\\n border-width: 1px 0 0;\\n}\\n\\n.ag-theme-material .ag-row.ag-row-last {\\n border-bottom-width: 1px;\\n}\\n\\n.ag-theme-material .ag-row-hover {\\n background-color: #fafafa;\\n}\\n\\n.ag-theme-material .ag-numeric-cell {\\n text-align: right;\\n}\\n\\n.ag-theme-material .ag-header-cell-label {\\n display: flex;\\n float: left;\\n height: 100%;\\n width: calc(100% - 18px);\\n}\\n\\n.ag-theme-material .ag-header-cell-label span {\\n height: 100%;\\n}\\n\\n.ag-theme-material .ag-header-cell-label > span {\\n float: left;\\n}\\n\\n.ag-theme-material .ag-header-cell-label .ag-header-icon {\\n background-position-y: 20px;\\n background-size: 14px 14px;\\n height: 100%;\\n margin: 0;\\n margin-left: 8px;\\n opacity: 0.87;\\n}\\n\\n.ag-theme-material .ag-header-cell-label .ag-header-cell-text {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n\\n.ag-theme-material .ag-numeric-header .ag-header-cell-label {\\n flex-direction: row-reverse;\\n float: right;\\n}\\n\\n.ag-theme-material .ag-numeric-header .ag-header-cell-label > span {\\n float: right;\\n}\\n\\n.ag-theme-material .ag-numeric-header .ag-header-cell-menu-button {\\n float: left;\\n}\\n\\n.ag-theme-material .ag-header-group-text {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n\\n.ag-theme-material .ag-header-cell,\\n.ag-theme-material .ag-header-group-cell {\\n line-height: 56px;\\n padding-left: 24px;\\n padding-right: 24px;\\n}\\n\\n.ag-theme-material .ag-cell {\\n line-height: 46px;\\n padding-left: 24px;\\n padding-right: 24px;\\n border: 1px solid transparent;\\n padding-left: 23px;\\n padding-right: 23px;\\n}\\n\\n.ag-theme-material .ag-row-drag {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/grip.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n background-position-x: left;\\n background-position-y: 6px;\\n float: left;\\n height: 100%;\\n width: 42px;\\n}\\n\\n.ag-theme-material .ag-column-drag {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/grip.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n background-position-x: left;\\n background-position-y: 8px !important;\\n height: 100%;\\n min-width: 26px;\\n}\\n\\n.ag-theme-material .ag-row-dragging {\\n opacity: 0.5;\\n z-index: 10000;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-cell-focus {\\n border: 1px solid #3f51b5;\\n outline: initial;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-cell-focus {\\n border: 1px solid #3f51b5;\\n outline: initial;\\n}\\n\\n.ag-theme-material .ag-header-cell-resize {\\n width: 16px;\\n}\\n\\n.ag-theme-material .ag-icon-aggregation {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/aggregation.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-arrows {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/arrows.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-asc {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/asc.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-checkbox-checked-readonly {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/checkbox-checked-readonly.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-checkbox-checked {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/checkbox-checked.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-checkbox-indeterminate-readonly {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/checkbox-indeterminate-readonly.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-checkbox-indeterminate {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/checkbox-indeterminate.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-checkbox-unchecked-readonly {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/checkbox-unchecked-readonly.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-checkbox-unchecked {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/checkbox-unchecked.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-column {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/column.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-columns {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/columns.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-contracted {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/contracted.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-copy {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/copy.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-cut {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/cut.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-desc {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/desc.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-expanded {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/expanded.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-eye-slash {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/eye-slash.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-eye {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/eye.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-filter {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/filter.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-group {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/group.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-indeterminate {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/indeterminate.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-left {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/left.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-loading {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/loading.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-menu {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/menu.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-minus {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/minus.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-none {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/none.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-not-allowed {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/not-allowed.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-paste {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/paste.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-pin {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/pin.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-pivot {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/pivot.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-plus {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/plus.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-right {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/right.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-small-left {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/small-left.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-small-right {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/small-right.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-small-up {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/small-up.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-small-down {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/small-down.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-tick {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/tick.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-cross {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/cross.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-tree-open {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/tree-open.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-tree-closed {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/tree-closed.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-tree-indeterminate {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/tree-indeterminate.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-header-cell-menu-button .ag-icon-menu {\\n display: block;\\n height: 56px;\\n}\\n\\n.ag-theme-material .ag-icon-checkbox-checked:empty {\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/checkbox-checked.svg\")) + \");\\n}\\n\\n.ag-theme-material .ag-menu {\\n background: #fff;\\n border-radius: 2px;\\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n padding: 8px;\\n padding: 0;\\n z-index: 5;\\n}\\n\\n.ag-theme-material .ag-menu .ag-menu-list {\\n cursor: default;\\n margin-bottom: 8px;\\n margin-top: 8px;\\n width: 100%;\\n}\\n\\n.ag-theme-material .ag-menu .ag-menu-option {\\n line-height: 32px;\\n padding-left: 16px;\\n padding-right: 16px;\\n}\\n\\n.ag-theme-material .ag-menu .ag-menu-option > span {\\n display: table-cell;\\n vertical-align: middle;\\n}\\n\\n.ag-theme-material .ag-menu .ag-menu-option-active {\\n background: #fafafa;\\n}\\n\\n.ag-theme-material .ag-menu .ag-menu-option-disabled {\\n opacity: 0.5;\\n}\\n\\n.ag-theme-material .ag-menu .ag-menu-option-icon {\\n padding-left: 8px;\\n padding-right: 8px;\\n}\\n\\n.ag-theme-material .ag-menu .ag-menu-option-icon span {\\n height: 18px;\\n line-height: 0;\\n margin-top: 8px;\\n}\\n\\n.ag-theme-material .ag-menu .ag-menu-option-shortcut {\\n padding-left: 16px;\\n}\\n\\n.ag-theme-material .ag-menu .ag-menu-separator {\\n margin-left: -8px;\\n}\\n\\n.ag-theme-material .ag-menu .ag-menu-separator > span {\\n background-image: url(\\\"data:image/svg+xml;utf8, \\\");\\n height: 16px;\\n}\\n\\n.ag-theme-material .ag-menu .ag-menu-option-popup-pointer {\\n width: 34px;\\n}\\n\\n.ag-theme-material.ag-dnd-ghost {\\n background: #fff;\\n border-radius: 2px;\\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n padding: 8px;\\n border: 1px solid #e0e0e0;\\n color: rgba(0, 0, 0, 0.54);\\n font: 700 12px \\\"Roboto\\\", sans-serif;\\n height: 56px !important;\\n line-height: 56px;\\n margin: 0;\\n padding: 0 16px;\\n transform: translateY(16px);\\n z-index: 5;\\n}\\n\\n.ag-theme-material.ag-dnd-ghost span,\\n.ag-theme-material.ag-dnd-ghost div {\\n float: left;\\n height: 100%;\\n margin: 0;\\n padding: 0;\\n}\\n\\n.ag-theme-material.ag-dnd-ghost .ag-dnd-ghost-icon {\\n margin-right: 8px;\\n opacity: 0.87;\\n}\\n\\n.ag-theme-material .ag-tab-header {\\n background: #eee;\\n min-width: 220px;\\n width: 100%;\\n display: table;\\n}\\n\\n.ag-theme-material .ag-tab-header .ag-tab {\\n border-bottom: 2px solid transparent;\\n height: 32px;\\n text-align: center;\\n vertical-align: middle;\\n display: table-cell;\\n}\\n\\n.ag-theme-material .ag-tab-header .ag-tab.ag-tab-selected .ag-icon-filter {\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/filter.svg\")) + \");\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-tab-header .ag-tab.ag-tab-selected .ag-icon-columns {\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/columns.svg\")) + \");\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-tab-header .ag-tab.ag-tab-selected .ag-icon-menu {\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/menu.svg\")) + \");\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-tab-body {\\n padding: 8px 0;\\n}\\n\\n.ag-theme-material .ag-tab-body .ag-filter-select {\\n margin: 8px;\\n width: calc(100% - 16px);\\n}\\n\\n.ag-theme-material .ag-tab-body .ag-menu-list {\\n margin-bottom: 0;\\n margin-top: 0;\\n}\\n\\n.ag-theme-material .ag-tab-body .ag-menu-list > div:first-child > span {\\n padding-top: 0;\\n}\\n\\n.ag-theme-material .ag-tab-body .ag-menu-list > div:last-child > span {\\n padding-bottom: 0;\\n}\\n\\n.ag-theme-material .ag-tab-body .ag-menu-list > div:last-child > .ag-menu-option-popup-pointer {\\n background-position-y: 0;\\n}\\n\\n.ag-theme-material .ag-filter-select {\\n margin: 8px;\\n width: calc(100% - 16px);\\n}\\n\\n.ag-theme-material .ag-filter input[type=radio] {\\n margin: 0 3px 0 6px;\\n width: 12px;\\n height: 17px;\\n vertical-align: top;\\n}\\n\\n.ag-theme-material .ag-filter input[type=text],\\n.ag-theme-material .ag-filter input[type=date] {\\n background: transparent;\\n box-sizing: border-box;\\n color: rgba(0, 0, 0, 0.87);\\n font-family: inherit;\\n font-size: inherit;\\n height: 24px;\\n padding-bottom: 8px;\\n border-width: 0;\\n border-bottom: 1px solid #e0e0e0;\\n padding-left: 8px;\\n}\\n\\n.ag-theme-material .ag-filter input[type=text]:focus,\\n.ag-theme-material .ag-filter input[type=date]:focus {\\n border-bottom: 2px solid #3f51b5;\\n outline: none;\\n padding-bottom: 7px;\\n}\\n\\n.ag-theme-material .ag-filter input[type=text]::placeholder,\\n.ag-theme-material .ag-filter input[type=date]::placeholder {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.ag-theme-material .ag-filter label {\\n display: block;\\n padding-left: 8px;\\n}\\n\\n.ag-theme-material .ag-filter .ag-set-filter-list {\\n height: 260px;\\n padding-top: 8px;\\n}\\n\\n.ag-theme-material .ag-filter .ag-filter-header-container {\\n box-sizing: border-box;\\n height: 40px;\\n}\\n\\n.ag-theme-material .ag-filter .ag-filter-header-container:nth-child(2) {\\n border-bottom: 1px solid #e0e0e0;\\n}\\n\\n.ag-theme-material .ag-filter .ag-filter-checkbox {\\n float: left;\\n height: 40px;\\n margin-right: 8px;\\n padding-top: 4px;\\n}\\n\\n.ag-theme-material .ag-filter .ag-filter-value {\\n height: 40px;\\n line-height: 28px;\\n}\\n\\n.ag-theme-material .ag-filter .ag-filter-apply-panel {\\n display: flex;\\n justify-content: flex-end;\\n padding: 8px;\\n padding-top: 16px;\\n}\\n\\n.ag-theme-material .ag-filter .ag-filter-apply-panel button {\\n appearance: none;\\n background-color: transparent;\\n border: 0;\\n color: #3f51b5;\\n font-family: inherit;\\n font-size: inherit;\\n margin: 0;\\n padding: 0;\\n text-transform: uppercase;\\n}\\n\\n.ag-theme-material .ag-filter .ag-filter-apply-panel button + button {\\n margin-left: 16px;\\n}\\n\\n.ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column-group,\\n.ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column {\\n height: 32px;\\n line-height: 32px;\\n margin-left: 0;\\n}\\n\\n.ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column-group span,\\n.ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column span {\\n float: left;\\n height: 100%;\\n}\\n\\n.ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column-group .ag-column-select-indent,\\n.ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column .ag-column-select-indent {\\n width: 16px;\\n}\\n\\n.ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column-group .ag-column-select-checkbox,\\n.ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column-group .ag-column-group-icons,\\n.ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column .ag-column-select-checkbox,\\n.ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column .ag-column-group-icons {\\n margin-left: 8px;\\n margin-right: 8px;\\n}\\n\\n.ag-theme-material .ag-column-select-panel .ag-primary-cols-list-panel {\\n padding-top: 8px;\\n}\\n\\n.ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column.ag-toolpanel-add-group-indent {\\n margin-left: 34px;\\n}\\n\\n.ag-theme-material .ag-filter-filter {\\n margin-bottom: 8px;\\n}\\n\\n.ag-theme-material .ag-primary-cols-header-panel {\\n border-bottom: 1px solid #e0e0e0;\\n box-sizing: border-box;\\n height: 56px;\\n padding-top: 8px;\\n}\\n\\n.ag-theme-material .ag-primary-cols-header-panel a {\\n margin: 0 8px;\\n padding-top: 4px;\\n}\\n\\n.ag-theme-material .ag-primary-cols-header-panel .ag-filter-body {\\n margin-left: 8px;\\n margin-right: 8px;\\n}\\n\\n.ag-theme-material .ag-group-child-count::before {\\n content: \\\" \\\";\\n}\\n\\n.ag-theme-material .ag-tool-panel-wrapper {\\n border-right: 0;\\n}\\n\\n.ag-theme-material .ag-tool-panel-wrapper .ag-filter-panel {\\n width: 100%;\\n}\\n\\n.ag-theme-material .ag-tool-panel-wrapper .ag-filter-panel .ag-filter-toolpanel-instance {\\n color: rgba(0, 0, 0, 0.54);\\n font-weight: 600;\\n flex: auto;\\n flex-direction: column;\\n flex-wrap: nowrap;\\n display: flex;\\n flex-flow: column nowrap;\\n}\\n\\n.ag-theme-material .ag-tool-panel-wrapper .ag-filter-panel .ag-filter-toolpanel-instance .ag-filter-toolpanel-header {\\n padding: 5px 0 5px 5px;\\n}\\n\\n.ag-theme-material .ag-tool-panel-wrapper .ag-filter-panel .ag-filter-body-wrapper {\\n padding-top: 5px;\\n}\\n\\n.ag-theme-material .ag-tool-panel-wrapper .ag-filter-panel .ag-filter-air {\\n border: 1px solid #e0e0e0;\\n border-left: 0;\\n border-right: 0;\\n padding: 8px 0;\\n}\\n\\n.ag-theme-material .ag-tool-panel-wrapper .ag-pivot-mode-panel {\\n border-bottom: 1px solid #e0e0e0;\\n box-sizing: border-box;\\n height: 56px;\\n line-height: 56px;\\n}\\n\\n.ag-theme-material .ag-tool-panel-wrapper .ag-pivot-mode-panel span {\\n float: left;\\n height: 100%;\\n}\\n\\n.ag-theme-material .ag-tool-panel-wrapper .ag-pivot-mode-panel .ag-pivot-mode-select {\\n margin-left: 8px;\\n}\\n\\n.ag-theme-material .ag-tool-panel-wrapper .ag-pivot-mode-panel .ag-pivot-mode-select .ag-checkbox-label {\\n margin-left: 8px;\\n}\\n\\n.ag-theme-material .ag-tool-panel-wrapper .ag-column-select-panel {\\n border-bottom: 1px solid #e0e0e0;\\n padding-bottom: 7px;\\n padding-top: 0;\\n}\\n\\n.ag-theme-material .ag-tool-panel-wrapper .ag-column-drop {\\n border-bottom: 1px solid #e0e0e0;\\n clear: both;\\n overflow: auto;\\n padding: 8px 0;\\n padding-bottom: 16px;\\n}\\n\\n.ag-theme-material .ag-tool-panel-wrapper .ag-column-drop .ag-icon {\\n float: left;\\n height: 40px;\\n margin: 0 8px;\\n}\\n\\n.ag-theme-material .ag-tool-panel-wrapper .ag-column-drop .ag-column-drop-title {\\n clear: right;\\n float: left;\\n height: 40px;\\n line-height: 40px;\\n width: calc(100% - 34px);\\n}\\n\\n.ag-theme-material .ag-tool-panel-wrapper .ag-column-drop .ag-column-drop-empty-message {\\n clear: both;\\n color: rgba(0, 0, 0, 0.38);\\n font: 700 12px \\\"Roboto\\\", sans-serif;\\n line-height: 16px;\\n padding-left: 32px;\\n padding-right: 8px;\\n}\\n\\n.ag-theme-material .ag-tool-panel-wrapper .ag-column-drop:last-child {\\n border-bottom: 0;\\n}\\n\\n.ag-theme-material .ag-filter-icon:empty {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/filter.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n}\\n\\n.ag-theme-material .ag-sort-ascending-icon:empty {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/asc.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n}\\n\\n.ag-theme-material .ag-sort-descending-icon:empty {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/desc.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n}\\n\\n.ag-theme-material .ag-sort-none-icon:empty {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/none.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n}\\n\\n.ag-theme-material .ag-numeric-header .ag-header-cell-label .ag-header-icon {\\n margin-left: 0;\\n margin-right: 8px;\\n}\\n\\n.ag-theme-material .ag-paging-panel {\\n align-items: center;\\n border-top: 1px solid #e0e0e0;\\n color: rgba(0, 0, 0, 0.54);\\n display: flex;\\n height: 56px;\\n justify-content: flex-end;\\n padding: 0 24px;\\n}\\n\\n.ag-theme-material .ag-paging-panel > span {\\n margin-left: 32px;\\n}\\n\\n.ag-theme-material button[ref=btFirst] {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/first.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n overflow: hidden;\\n text-indent: 100%;\\n appearance: none;\\n border: 0;\\n opacity: 0.54;\\n padding: 0;\\n}\\n\\n.ag-theme-material button[ref=btFirst][disabled] {\\n opacity: 0.38;\\n}\\n\\n.ag-theme-material button[ref=btPrevious] {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/previous.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n overflow: hidden;\\n text-indent: 100%;\\n appearance: none;\\n border: 0;\\n opacity: 0.54;\\n padding: 0;\\n}\\n\\n.ag-theme-material button[ref=btPrevious][disabled] {\\n opacity: 0.38;\\n}\\n\\n.ag-theme-material button[ref=btLast] {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/last.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n overflow: hidden;\\n text-indent: 100%;\\n appearance: none;\\n border: 0;\\n opacity: 0.54;\\n padding: 0;\\n}\\n\\n.ag-theme-material button[ref=btLast][disabled] {\\n opacity: 0.38;\\n}\\n\\n.ag-theme-material button[ref=btNext] {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/next.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n overflow: hidden;\\n text-indent: 100%;\\n appearance: none;\\n border: 0;\\n opacity: 0.54;\\n padding: 0;\\n}\\n\\n.ag-theme-material button[ref=btNext][disabled] {\\n opacity: 0.38;\\n}\\n\\n.ag-theme-material .ag-rtl button[ref=btFirst] {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/last.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n}\\n\\n.ag-theme-material .ag-rtl button[ref=btPrevious] {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/next.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n}\\n\\n.ag-theme-material .ag-rtl button[ref=btLast] {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/first.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n}\\n\\n.ag-theme-material .ag-rtl button[ref=btNext] {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/previous.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n}\\n\\n.ag-theme-material .ag-row-selected {\\n background-color: #eee;\\n}\\n\\n.ag-theme-material .ag-cell-range-selected:not(.ag-cell-focus) {\\n background-color: #e8eaf6;\\n}\\n\\n.ag-theme-material .ag-cell-inline-editing {\\n background: #fff;\\n border-radius: 2px;\\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n padding: 8px;\\n background: #fafafa;\\n height: 72px;\\n line-height: normal;\\n padding: 24px;\\n z-index: 2;\\n}\\n\\n.ag-theme-material .ag-cell-inline-editing input[type=text],\\n.ag-theme-material .ag-cell-inline-editing input[type=tel],\\n.ag-theme-material .ag-cell-inline-editing input[type=date],\\n.ag-theme-material .ag-cell-inline-editing input[type=datetime-local] {\\n background: transparent;\\n box-sizing: border-box;\\n color: rgba(0, 0, 0, 0.87);\\n font-family: inherit;\\n font-size: inherit;\\n height: 24px;\\n padding-bottom: 8px;\\n border-width: 0;\\n border-bottom: 1px solid #e0e0e0;\\n}\\n\\n.ag-theme-material .ag-cell-inline-editing input[type=text]:focus,\\n.ag-theme-material .ag-cell-inline-editing input[type=tel]:focus,\\n.ag-theme-material .ag-cell-inline-editing input[type=date]:focus,\\n.ag-theme-material .ag-cell-inline-editing input[type=datetime-local]:focus {\\n border-bottom: 2px solid #3f51b5;\\n outline: none;\\n padding-bottom: 7px;\\n}\\n\\n.ag-theme-material .ag-cell-inline-editing input[type=text]::placeholder,\\n.ag-theme-material .ag-cell-inline-editing input[type=tel]::placeholder,\\n.ag-theme-material .ag-cell-inline-editing input[type=date]::placeholder,\\n.ag-theme-material .ag-cell-inline-editing input[type=datetime-local]::placeholder {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.ag-theme-material .ag-cell-inline-editing select {\\n height: auto;\\n}\\n\\n.ag-theme-material .ag-popup-editor {\\n background: #fff;\\n border-radius: 2px;\\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n padding: 8px;\\n background: #fafafa;\\n padding: 0;\\n z-index: 1;\\n}\\n\\n.ag-theme-material .ag-popup-editor .ag-large-textarea textarea {\\n background: transparent;\\n box-sizing: border-box;\\n color: rgba(0, 0, 0, 0.87);\\n font-family: inherit;\\n font-size: inherit;\\n height: 24px;\\n padding-bottom: 8px;\\n border-width: 0;\\n border-bottom: 1px solid #e0e0e0;\\n height: auto;\\n padding: 24px;\\n}\\n\\n.ag-theme-material .ag-popup-editor .ag-large-textarea textarea:focus {\\n border-bottom: 2px solid #3f51b5;\\n outline: none;\\n padding-bottom: 7px;\\n}\\n\\n.ag-theme-material .ag-popup-editor .ag-large-textarea textarea::placeholder {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.ag-theme-material .ag-rich-select {\\n background-color: #fafafa;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/tree-open.svg\")) + \");\\n background-position-x: calc(100% - 8px);\\n background-position-y: 16px;\\n background-repeat: no-repeat;\\n}\\n\\n.ag-theme-material .ag-rich-select .ag-rich-select-list {\\n height: 312px;\\n}\\n\\n.ag-theme-material .ag-rich-select .ag-rich-select-value {\\n height: 48px;\\n line-height: 48px;\\n padding-left: 24px;\\n}\\n\\n.ag-theme-material .ag-rich-select .ag-virtual-list-item {\\n cursor: default;\\n height: 48px;\\n line-height: 48px;\\n}\\n\\n.ag-theme-material .ag-rich-select .ag-virtual-list-item:hover {\\n background-color: #fafafa;\\n}\\n\\n.ag-theme-material .ag-rich-select .ag-rich-select-row {\\n padding-left: 24px;\\n}\\n\\n.ag-theme-material .ag-rich-select .ag-rich-select-row-selected {\\n background-color: #eee;\\n}\\n\\n.ag-theme-material .ag-floating-filter-body {\\n float: left;\\n height: 100%;\\n margin-right: 0;\\n width: calc(100% - 34px);\\n}\\n\\n.ag-theme-material .ag-floating-filter-body input {\\n box-sizing: border-box;\\n background: transparent;\\n box-sizing: border-box;\\n color: rgba(0, 0, 0, 0.87);\\n font-family: inherit;\\n font-size: inherit;\\n height: 24px;\\n padding-bottom: 8px;\\n border-width: 0;\\n border-bottom: 1px solid #e0e0e0;\\n}\\n\\n.ag-theme-material .ag-floating-filter-body input:focus {\\n border-bottom: 2px solid #3f51b5;\\n outline: none;\\n padding-bottom: 7px;\\n}\\n\\n.ag-theme-material .ag-floating-filter-body input::placeholder {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.ag-theme-material .ag-floating-filter-full-body input {\\n box-sizing: border-box;\\n background: transparent;\\n box-sizing: border-box;\\n color: rgba(0, 0, 0, 0.87);\\n font-family: inherit;\\n font-size: inherit;\\n height: 24px;\\n padding-bottom: 8px;\\n border-width: 0;\\n border-bottom: 1px solid #e0e0e0;\\n}\\n\\n.ag-theme-material .ag-floating-filter-full-body input:focus {\\n border-bottom: 2px solid #3f51b5;\\n outline: none;\\n padding-bottom: 7px;\\n}\\n\\n.ag-theme-material .ag-floating-filter-full-body input::placeholder {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.ag-theme-material .ag-floating-filter-input {\\n line-height: normal;\\n}\\n\\n.ag-theme-material .ag-floating-filter-button {\\n float: right;\\n line-height: 18px;\\n margin-top: 20px;\\n}\\n\\n.ag-theme-material .ag-floating-filter-button button {\\n appearance: none;\\n background: transparent;\\n border: 0;\\n height: 18px;\\n padding: 0;\\n width: 18px;\\n}\\n\\n.ag-theme-material .ag-cell-label-container {\\n height: 100%;\\n}\\n\\n.ag-theme-material .ag-header-group-cell-label {\\n height: 100%;\\n}\\n\\n.ag-theme-material .ag-header-group-cell-label span {\\n float: left;\\n height: 100%;\\n}\\n\\n.ag-theme-material .ag-header-select-all {\\n height: 100%;\\n margin-right: 24px;\\n}\\n\\n.ag-theme-material .ag-header-select-all span {\\n height: 100%;\\n}\\n\\n.ag-theme-material .ag-header-select-all:not(.ag-hidden) + .ag-cell-label-container {\\n float: left;\\n width: calc(100% - 18px - 24px);\\n}\\n\\n.ag-theme-material .ag-selection-checkbox span,\\n.ag-theme-material .ag-group-expanded span,\\n.ag-theme-material .ag-group-contracted span {\\n margin-right: 24px;\\n}\\n\\n.ag-theme-material .ag-selection-checkbox span {\\n position: relative;\\n top: 4px;\\n}\\n\\n.ag-theme-material .ag-group-expanded .ag-icon-contracted:empty {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/tree-open.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n}\\n\\n.ag-theme-material .ag-column-drop-horizontal {\\n background-color: #eee;\\n height: 48px;\\n line-height: 32px;\\n padding-left: 24px;\\n}\\n\\n.ag-theme-material .ag-column-drop-horizontal.ag-width-half {\\n margin-bottom: -3px;\\n}\\n\\n.ag-theme-material .ag-column-drop-horizontal span {\\n float: left;\\n height: 100%;\\n}\\n\\n.ag-theme-material .ag-column-drop-horizontal > div:first-child {\\n float: left;\\n height: 100%;\\n}\\n\\n.ag-theme-material .ag-column-drop-horizontal .ag-icon-group,\\n.ag-theme-material .ag-column-drop-horizontal .ag-icon-pivot {\\n margin-right: 24px;\\n}\\n\\n.ag-theme-material .ag-column-drop-horizontal .ag-right-arrow {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/right.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n}\\n\\n.ag-theme-material .ag-column-drop-horizontal .ag-left-arrow {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/left.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n}\\n\\n.ag-theme-material .ag-column-drop-horizontal .ag-left-arrow,\\n.ag-theme-material .ag-column-drop-horizontal .ag-right-arrow {\\n overflow: hidden;\\n text-indent: 100%;\\n height: 100%;\\n margin: 0 8px;\\n opacity: 0.54;\\n}\\n\\n.ag-theme-material .ag-column-drop-horizontal .ag-column-drop-empty-message {\\n height: 100%;\\n line-height: 48px;\\n opacity: 0.38;\\n}\\n\\n.ag-theme-material .ag-column-drop-cell {\\n background: #e0e0e0;\\n border-radius: 32px;\\n box-sizing: border-box;\\n height: 32px !important;\\n margin-top: 8px;\\n padding: 0 4px;\\n}\\n\\n.ag-theme-material .ag-column-drop-cell .ag-column-drop-cell-text {\\n height: 100%;\\n line-height: 32px;\\n margin: 0 8px;\\n}\\n\\n.ag-theme-material .ag-column-drop-cell .ag-column-drop-cell-button {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/cancel.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n overflow: hidden;\\n text-indent: 100%;\\n min-width: 32px;\\n height: 100%;\\n margin: 0 4px;\\n opacity: 0.54;\\n}\\n\\n.ag-theme-material .ag-column-drop-cell .ag-column-drop-cell-button:hover {\\n opacity: 0.87;\\n}\\n\\n.ag-theme-material .ag-column-drop-cell .ag-column-drag {\\n margin-left: 16px;\\n margin-top: 4px;\\n width: 18px;\\n}\\n\\n.ag-theme-material .ag-select-agg-func-popup {\\n background: #fff;\\n border-radius: 2px;\\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n padding: 8px;\\n background: #fff;\\n height: 140px;\\n padding: 0;\\n}\\n\\n.ag-theme-material .ag-select-agg-func-popup .ag-virtual-list-item {\\n cursor: default;\\n line-height: 40px;\\n padding-left: 16px;\\n}\\n\\n.ag-theme-material .ag-set-filter-list,\\n.ag-theme-material .ag-menu-column-select-wrapper {\\n width: auto;\\n}\\n\\n.ag-theme-material .ag-column-drop-vertical > .ag-column-drop-cell {\\n float: left;\\n margin-bottom: 8px;\\n margin-left: 8px;\\n margin-top: 0;\\n}\\n\\n.ag-theme-material .ag-cell-data-changed {\\n background-color: #00acc1 !important;\\n}\\n\\n.ag-theme-material .ag-cell-data-changed-animation {\\n background-color: transparent;\\n transition: background-color 1s;\\n}\\n\\n.ag-theme-material .ag-stub-cell {\\n padding-left: 24px;\\n padding-top: 8px;\\n}\\n\\n.ag-theme-material .ag-stub-cell .ag-loading-icon {\\n float: left;\\n height: 100%;\\n}\\n\\n.ag-theme-material .ag-stub-cell .ag-loading-text {\\n float: left;\\n height: 100%;\\n margin-left: 8px;\\n margin-top: 8px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-numeric-cell {\\n text-align: left;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-header-cell-menu-button {\\n float: left;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-header-cell-label {\\n float: right;\\n width: calc(100% - 18px);\\n}\\n\\n.ag-theme-material .ag-rtl .ag-header-cell-label > span {\\n float: right;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-header-cell-label .ag-header-icon {\\n margin-top: 2px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-numeric-header .ag-header-cell-menu-button {\\n float: right;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-numeric-header .ag-header-cell-label {\\n float: left;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-numeric-header .ag-header-cell-label > span {\\n float: left;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-tool-panel-wrapper .ag-pivot-mode-panel span {\\n float: right;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-tool-panel-wrapper .ag-pivot-mode-panel .ag-pivot-mode-select {\\n margin-right: 8px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-tool-panel-wrapper .ag-pivot-mode-panel .ag-pivot-mode-select .ag-checkbox-label {\\n margin-right: 8px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-tool-panel-wrapper .ag-column-drop .ag-icon {\\n float: right;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-tool-panel-wrapper .ag-column-drop .ag-column-drop-title {\\n clear: left;\\n float: right;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-tool-panel-wrapper .ag-column-drop .ag-column-drop-empty-message {\\n padding-left: 8px;\\n padding-right: 32px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-filter-checkbox {\\n float: right;\\n margin-left: 8px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-column-select-panel .ag-column-tool-panel-column-group span,\\n.ag-theme-material .ag-rtl .ag-column-select-panel .ag-column-tool-panel-column span {\\n float: right;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-column-select-panel .ag-column-tool-panel-column-group .ag-column-select-checkbox,\\n.ag-theme-material .ag-rtl .ag-column-select-panel .ag-column-tool-panel-column-group .ag-column-group-icons,\\n.ag-theme-material .ag-rtl .ag-column-select-panel .ag-column-tool-panel-column .ag-column-select-checkbox,\\n.ag-theme-material .ag-rtl .ag-column-select-panel .ag-column-tool-panel-column .ag-column-group-icons {\\n margin-left: 8px;\\n margin-right: 8px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-column-select-panel .ag-column-tool-panel-column.ag-toolpanel-add-group-indent {\\n margin-left: 0;\\n margin-right: 34px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-icon-tree-closed {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/contracted.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-header-group-cell-label {\\n height: 100%;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-header-group-cell-label span {\\n float: right;\\n height: 100%;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-header-select-all:not(.ag-hidden) + .ag-cell-label-container {\\n float: right;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-header-select-all {\\n margin-left: 24px;\\n margin-right: 0;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-selection-checkbox span,\\n.ag-theme-material .ag-rtl .ag-group-expanded span,\\n.ag-theme-material .ag-rtl .ag-group-contracted span {\\n margin-left: 24px;\\n margin-right: 0;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-column-drop-horizontal {\\n padding-right: 24px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-column-drop-horizontal span {\\n float: right;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-column-drop-horizontal > div:first-child {\\n float: right;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-column-drop-horizontal .ag-icon-group,\\n.ag-theme-material .ag-rtl .ag-column-drop-horizontal .ag-icon-pivot {\\n margin-left: 24px;\\n margin-right: 0;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-column-drop-horizontal .ag-right-arrow {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/right.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n height: 100%;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-column-drop-horizontal .ag-left-arrow {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../node_modules/ag-grid-community/src/styles/material-icons/left.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n height: 100%;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-floating-filter-body {\\n float: right;\\n margin-left: 0;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-floating-filter-button {\\n float: left;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-header .ag-header-cell-resize::after {\\n border-left: 1px solid #e0e0e0;\\n border-right: 0;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-column-drag {\\n background-position-x: right;\\n}\\n\\n.ag-theme-material .ag-status-bar {\\n background: #fff;\\n border: 1px solid #e0e0e0;\\n border-top: 0;\\n color: rgba(0, 0, 0, 0.38);\\n font: 700 12px \\\"Roboto\\\", sans-serif;\\n padding-right: 32px;\\n padding-left: 32px;\\n}\\n\\n.ag-theme-material .ag-name-value-value {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.ag-theme-material .ag-status-bar-center {\\n text-align: center;\\n}\\n\\n.ag-theme-material .ag-name-value {\\n margin-left: 8px;\\n margin-right: 8px;\\n padding-top: 16px;\\n padding-bottom: 16px;\\n}\\n\\n.ag-theme-material .ag-details-row {\\n box-sizing: border-box;\\n padding: 40px;\\n}\\n\\n.ag-theme-material .ag-overlay-loading-wrapper {\\n background-color: rgba(255, 255, 255, 0.5);\\n}\\n\\n.ag-theme-material .ag-overlay-loading-center {\\n background: #fff;\\n border-radius: 2px;\\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n padding: 8px;\\n}\\n\\n.ag-theme-material .ag-side-bar {\\n background-color: #fafafa;\\n border-right: 1px solid #e0e0e0;\\n border-top: 1px solid #e0e0e0;\\n position: relative;\\n}\\n\\n.ag-theme-material .ag-side-bar .ag-side-buttons {\\n padding-top: 32px;\\n background: #fff;\\n border-bottom: 1px solid #e0e0e0;\\n position: relative;\\n}\\n\\n.ag-theme-material .ag-side-bar .ag-side-buttons .ag-side-button button {\\n background: transparent;\\n border: 0;\\n color: rgba(0, 0, 0, 0.87);\\n padding: 16px 0 16px 0;\\n width: 100%;\\n margin: 0;\\n min-height: 144px;\\n border-width: 1px 0 1px 0;\\n border-style: solid;\\n border-color: transparent;\\n background-position-y: 8px;\\n background-position-x: center;\\n background-repeat: no-repeat;\\n}\\n\\n.ag-theme-material .ag-side-bar .ag-side-buttons .ag-selected button {\\n background-color: #fafafa;\\n margin-left: -1px;\\n padding-left: 1px;\\n width: calc(100% + 1px);\\n border-color: #e0e0e0;\\n}\\n\\n.ag-theme-material .ag-side-bar .ag-panel-container {\\n border-right: 1px solid #e0e0e0;\\n box-sizing: border-box;\\n}\\n\\n.ag-theme-material .ag-side-bar.full-width .ag-panel-container {\\n border-right: 0;\\n}\\n\\n.ag-theme-material .ag-side-bar .ag-column-drop {\\n min-height: 50px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-side-bar .ag-panel-container {\\n border-left: 1px solid #e0e0e0;\\n border-right: 0;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-side-bar.full-width .ag-panel-container {\\n border-left: 0;\\n}\\n\\n.ag-theme-material .ag-primary-cols-filter {\\n background: transparent;\\n box-sizing: border-box;\\n color: rgba(0, 0, 0, 0.87);\\n font-family: inherit;\\n font-size: inherit;\\n height: 24px;\\n padding-bottom: 8px;\\n border-width: 0;\\n border-bottom: 1px solid #e0e0e0;\\n box-sizing: border-box;\\n width: 100%;\\n}\\n\\n.ag-theme-material .ag-primary-cols-filter:focus {\\n border-bottom: 2px solid #3f51b5;\\n outline: none;\\n padding-bottom: 7px;\\n}\\n\\n.ag-theme-material .ag-primary-cols-filter::placeholder {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.ag-theme-material .ag-primary-cols-filter-wrapper {\\n margin-left: 8px;\\n margin-right: 8px;\\n}\\n\\n.ag-theme-material .sass-variables::after {\\n content: '{ \\\"autoSizePadding\\\": \\\"24px\\\", \\\"headerHeight\\\": \\\"56px\\\", \\\"groupPaddingSize\\\": \\\"42px\\\", \\\"footerPaddingAddition\\\": \\\"32px\\\", \\\"virtualItemHeight\\\": \\\"40px\\\", \\\"aggFuncPopupHeight\\\": \\\"140px\\\", \\\"checkboxIndentWidth\\\": \\\"26px\\\", \\\"leafNodePadding\\\": \\\"24px\\\", \\\"rowHeight\\\": \\\"48px\\\", \\\"gridSize\\\": \\\"8px\\\", \\\"iconSize\\\": \\\"18px\\\" }';\\n display: none;\\n}\\n\\n.ag-theme-material .ag-cell-highlight {\\n background-color: #fce4ec !important;\\n}\\n\\n.ag-theme-material .ag-cell-highlight-animation {\\n transition: background-color 1s;\\n}\\n\\n.ag-theme-material .ag-row-drag {\\n background-position-y: center;\\n}\\n\\n.ag-theme-material .ag-column-drag {\\n background-position-y: center;\\n}\\n\\n.ag-theme-material .ag-cell-range-selected-1:not(.ag-cell-focus) {\\n background-color: #e8eaf6;\\n}\\n\\n.ag-theme-material .ag-cell-range-selected-2:not(.ag-cell-focus) {\\n background-color: rgb(217.3375, 220.6125, 240.2625);\\n}\\n\\n.ag-theme-material .ag-cell-range-selected-3:not(.ag-cell-focus) {\\n background-color: rgb(202.675, 207.225, 234.525);\\n}\\n\\n.ag-theme-material .ag-cell-range-selected-4:not(.ag-cell-focus) {\\n background-color: rgb(188.0125, 193.8375, 228.7875);\\n}\\n\\n.ag-theme-material .ag-side-bar {\\n border-bottom: 0;\\n border-right: 0;\\n border-top: 0;\\n}\\n\\n.ag-theme-material .ag-side-bar .ag-side-buttons button {\\n border: 0;\\n color: rgba(0, 0, 0, 0.54);\\n font-family: \\\"Roboto\\\", sans-serif;\\n font-size: 12px;\\n font-weight: 700;\\n background: transparent;\\n}\\n\\n.ag-theme-material .ag-side-bar .ag-side-buttons .ag-side-button button {\\n background-color: transparent;\\n border-width: 0;\\n}\\n\\n.ag-theme-material .ag-side-bar .ag-side-buttons .ag-selected button {\\n border-left: 2px solid #3f51b5;\\n background-color: #fafafa;\\n margin-left: -2px;\\n padding-left: 1px;\\n}\\n\\n.ag-theme-material .ag-side-bar .ag-filter-toolpanel-body {\\n background-color: #fff;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-side-bar .ag-side-buttons .ag-selected button {\\n border-left: 0;\\n margin-left: 0;\\n padding-left: 0;\\n border-right: 2px solid #3f51b5;\\n margin-right: -2px;\\n padding-right: 1px;\\n}\\n\\nhtml,\\nbody {\\n font-size: 13px;\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\nbody {\\n height: 100%;\\n min-width: 1200px;\\n}\\n\\nbody application {\\n display: flex;\\n flex-direction: column;\\n height: 100%;\\n}\\n\\nbody quill-editor .ql-snow .ql-tooltip {\\n z-index: 9999;\\n position: static;\\n}\\n\\na {\\n text-decoration: none;\\n font-weight: inherit;\\n}\\n\\ninput::placeholder {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n\\nmdl-select .mdl-textfield .mdl-select__toggle {\\n overflow: hidden;\\n width: 24px;\\n color: #616161;\\n}\\n\\nmdl-select .mdl-textfield .mdl-select__toggle:before {\\n content: \\\"arrow_drop_down\\\";\\n}\\n\\nmdl-select.menu-select > .mdl-textfield,\\n.menu-select > .mdl-select > .mdl-textfield {\\n width: auto;\\n padding: 0;\\n}\\n\\nmdl-select.menu-select > .mdl-textfield .mdl-textfield__input,\\n.menu-select > .mdl-select > .mdl-textfield .mdl-textfield__input {\\n border-bottom-color: transparent;\\n background-color: #f5f5f5;\\n border: 1px solid #ccc;\\n border-radius: 3px;\\n padding-left: 6px;\\n padding-right: 24px;\\n background: linear-gradient(to bottom, #f5f5f5 0%, #eee 50%, #eaeaea 100%);\\n}\\n\\nmdl-select.menu-select.large-menu > .mdl-textfield,\\n.menu-select.large-menu > .mdl-select > .mdl-textfield {\\n width: 300px;\\n}\\n\\n.mdl-textfield.no-textfield-controls {\\n padding: 0;\\n}\\n\\n.mdl-textfield.no-textfield-controls .mdl-textfield__error {\\n display: none;\\n}\\n\\n.mdl-textfield.no-textfield-controls .mdl-textfield__label {\\n top: 4px;\\n}\\n\\n.mdl-textfield.no-textfield-controls .mdl-textfield__label:after {\\n bottom: 0;\\n}\\n\\n.mdl-checkbox.is-checked .mdl-checkbox__tick-outline,\\n.mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline {\\n background-image: url(\\\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K\\\");\\n}\\n\\n.mdl-switch .mdl-switch__track {\\n background: #fff;\\n border: 1px solid #ddd;\\n left: 0;\\n top: 0;\\n height: 20px;\\n}\\n\\n.mdl-switch .mdl-switch__thumb {\\n background: #fff;\\n height: 18px;\\n width: 18px;\\n}\\n\\n.mdl-switch.is-checked .mdl-switch__track {\\n background: #00C853;\\n border: 1px solid #00C853;\\n}\\n\\n.mdl-switch.is-checked .mdl-switch__thumb {\\n background: #fff;\\n left: 18px;\\n}\\n\\ncovance-chain-filter.menu-select .mdl-select .mdl-textfield__input {\\n border-bottom-color: transparent;\\n background-color: #f5f5f5;\\n border: 1px solid #ccc;\\n border-radius: 3px;\\n padding-left: 6px;\\n padding-right: 24px;\\n background: linear-gradient(to bottom, #f5f5f5 0%, #eee 50%, #eaeaea 100%);\\n}\\n\\ncovance-chain-filter.menu-select .mdl-select .mdl-textfield {\\n width: 250px;\\n}\\n\\nmdl-menu .mdl-menu__container.is-upgraded {\\n position: fixed;\\n}\\n\\nmdl-menu .mdl-menu__container.is-upgraded.is-visible {\\n position: absolute;\\n}\\n\\n.mdl-tabs.is-upgraded .mdl-tabs__tab-bar {\\n padding-top: 16px;\\n padding-left: 10px;\\n height: 27px;\\n}\\n\\n.mdl-tabs.is-upgraded .mdl-tabs__tab-bar .mdl-tabs__tab {\\n padding: 3px 10px 3px;\\n background: #eee;\\n border: 1px solid #ddd;\\n cursor: pointer;\\n color: inherit;\\n height: 20px;\\n line-height: 20px;\\n text-transform: none;\\n}\\n\\n.mdl-tabs.is-upgraded .mdl-tabs__tab-bar .mdl-tabs__tab.is-active {\\n background: #fff;\\n border-bottom-color: #fff;\\n cursor: default;\\n}\\n\\n.mdl-tabs.is-upgraded .mdl-tabs__tab-bar .mdl-tabs__tab.is-active:after {\\n display: none;\\n}\\n\\n.mdl-layout__drawer {\\n box-shadow: none;\\n transform: none;\\n z-index: 7;\\n overflow-y: visible;\\n}\\n\\n.mdl-layout__drawer .mdl-navigation {\\n padding-top: 8px;\\n}\\n\\n.mdl-layout__drawer .mdl-navigation .mdl-navigation__link {\\n color: #616161;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__drawer .mdl-navigation .mdl-navigation__link {\\n padding-left: 20px;\\n padding-right: 20px;\\n }\\n}\\n\\n.mdl-layout__drawer .mdl-navigation .mdl-navigation__link--current,\\n.mdl-layout__drawer .mdl-navigation .router-link-active {\\n color: #0080af;\\n background-color: rgb(250,250,250);\\n font-weight: 600;\\n}\\n\\n.mdl-layout.mdl-layout--fixed-drawer {\\n /* Collapsed Drawer */\\n}\\n\\n.mdl-layout.mdl-layout--fixed-drawer > .mdl-layout__header .mdl-layout__header-row {\\n padding-left: 0;\\n}\\n\\n.mdl-layout.mdl-layout--fixed-drawer > .mdl-layout__content {\\n z-index: 7;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout.mdl-layout--fixed-drawer > .mdl-layout__content {\\n margin-left: 250px;\\n }\\n}\\n\\n.mdl-layout.mdl-layout--fixed-drawer.is-drawer-collapsed .mdl-layout__drawer {\\n width: 65px;\\n}\\n\\n.mdl-layout.mdl-layout--fixed-drawer.is-drawer-collapsed .mdl-layout__content {\\n margin-left: 65px;\\n}\\n\\n.mdl-layout.mdl-layout--fixed-drawer.is-drawer-collapsed .dashboard-link {\\n justify-content: center;\\n}\\n\\n.mdl-layout.mdl-layout--fixed-drawer.is-drawer-collapsed .dashboard-link .dashboard-link__text {\\n display: none;\\n}\\n\\n.mdl-layout.mdl-layout--fixed-drawer.is-drawer-collapsed covance-side-nav .mdl-navigation__link.top-level-link {\\n position: relative;\\n}\\n\\n.mdl-layout.mdl-layout--fixed-drawer.is-drawer-collapsed covance-side-nav .nav-second-level-menu {\\n padding: 0;\\n}\\n\\n.mdl-layout.mdl-layout--fixed-drawer.is-drawer-collapsed covance-side-nav .navigation-link-text {\\n display: none;\\n}\\n\\n.mdl-layout.mdl-layout--fixed-drawer.is-drawer-collapsed covance-side-nav .counter {\\n position: absolute;\\n bottom: 0;\\n left: 30px;\\n}\\n\\n.mdl-layout.mdl-layout--fixed-drawer.is-drawer-collapsed sample-tracking-side-nav .mdl-navigation__link.top-level-link {\\n position: relative;\\n}\\n\\n.mdl-layout.mdl-layout--fixed-drawer.is-drawer-collapsed sample-tracking-side-nav .nav-second-level-menu {\\n padding: 0;\\n}\\n\\n.mdl-layout.mdl-layout--fixed-drawer.is-drawer-collapsed sample-tracking-side-nav .navigation-link-text {\\n display: none;\\n}\\n\\n.mdl-layout.mdl-layout--fixed-drawer.is-drawer-collapsed sample-tracking-side-nav .counter {\\n position: absolute;\\n bottom: 38px;\\n left: 30px;\\n}\\n\\n.mdl-layout.mdl-layout--fixed-drawer.is-drawer-collapsed .rootlink-tooltip,\\n.mdl-layout.mdl-layout--fixed-drawer.is-drawer-collapsed .childlink-tooltip,\\n.mdl-layout.mdl-layout--fixed-drawer.is-drawer-collapsed .link-tooltip {\\n display: inline-block;\\n}\\n\\n.mdl-layout__header .material-icons {\\n color: #424242;\\n}\\n\\n.mdl-layout__header .mdl-layout__drawer-button {\\n display: none;\\n justify-content: center;\\n align-items: center;\\n color: #616161;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__header .mdl-layout__drawer-button {\\n display: none;\\n }\\n}\\n\\n.page-content {\\n display: flex;\\n flex-grow: 1;\\n flex-direction: column;\\n}\\n\\n.nav-header {\\n color: inherit;\\n background-color: white;\\n}\\n\\n.nav-second-level-menu {\\n padding-left: 20px;\\n}\\n\\n.align-center {\\n align-items: center;\\n}\\n\\n.align-end {\\n align-items: flex-end;\\n}\\n\\n.flex-container {\\n display: flex;\\n}\\n\\n.flex-row {\\n display: flex;\\n flex-direction: row;\\n}\\n\\n.flex-column {\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.flex-grow-1 {\\n flex-grow: 1;\\n}\\n\\n.justify-content-between {\\n justify-content: space-between;\\n}\\n\\n.justify-content-start {\\n justify-content: start;\\n}\\n\\n.full-width {\\n width: 100%;\\n}\\n\\n.flex-inner-container {\\n display: flex;\\n flex-grow: 1;\\n flex-direction: column;\\n}\\n\\n.header-link {\\n text-decoration: none;\\n color: inherit;\\n margin-right: 20px;\\n}\\n\\nrouter-outlet.flex-router-outlet + * {\\n flex-direction: column;\\n display: flex;\\n flex-grow: 1;\\n}\\n\\ntemplate.flex-outlet + * {\\n flex-direction: column;\\n display: flex;\\n flex-grow: 1;\\n}\\n\\n.mdl-dialog {\\n width: 50%;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-dialog {\\n min-width: 1200px !important;\\n position: absolute;\\n }\\n}\\n\\n.mdl-dialog .mdl-dialog__title {\\n font-size: 24px;\\n padding: 24px;\\n}\\n\\n.mdl-dialog .mdl-dialog__content .mdl-textfield {\\n width: 100%;\\n}\\n\\n.e-query-form {\\n padding: 20px 24px 24px 24px;\\n font-size: 14px;\\n}\\n\\n.e-query-form .mdl-textfield {\\n width: 100%;\\n}\\n\\n.e-query-form mdl-textfield.escalation-input.mdl-textfield div > label.mdl-textfield__label {\\n bottom: -20px;\\n}\\n\\n.tab-navigation__link--current {\\n color: black;\\n}\\n\\n.tab-navigation__link--current:after {\\n height: 2px;\\n width: 100%;\\n display: block;\\n content: \\\" \\\";\\n bottom: 0px;\\n left: 0px;\\n position: absolute;\\n background: rgb(66, 66, 66);\\n animation: border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards;\\n transition: all 1s cubic-bezier(0.4, 0, 1, 1);\\n}\\n\\n.left-aligned-tabs .mdl-tabs__tab-bar {\\n justify-content: flex-start;\\n}\\n\\nheader.mdl-layout__header {\\n color: #666;\\n background-color: #fff;\\n z-index: 8;\\n margin-left: 0 !important;\\n width: inherit !important;\\n border-bottom: 1px solid rgba(0, 0, 0, 0.15);\\n box-shadow: none;\\n}\\n\\nheader.mdl-layout__header .header-link {\\n height: 50px;\\n}\\n\\nfooter.mdl-mini-footer {\\n padding: 0px 10px;\\n color: #666;\\n background-color: #fff;\\n border-top: 1px solid rgba(0, 0, 0, 0.15);\\n flex-shrink: 0;\\n}\\n\\nfooter.mdl-mini-footer ul.mdl-mini-footer--link-list {\\n font-size: 12px;\\n}\\n\\naside .nav-header {\\n height: 50px;\\n width: 100%;\\n}\\n\\na.mdl-layout-title.nav-header.header-link {\\n line-height: 0;\\n}\\n\\n.mdl-tabs__tab .mdl-tabs__ripple-container {\\n z-index: auto;\\n}\\n\\n.tooltip-content td {\\n color: #666;\\n font-size: 13px;\\n font-weight: normal;\\n}\\n\\n.tooltip-content .tooltip-header {\\n font-size: 12px;\\n font-weight: bold;\\n text-align: right;\\n}\\n\\n.mdl-tooltip {\\n font-size: 13px;\\n font-weight: normal;\\n padding: 10px;\\n max-width: 300px;\\n white-space: normal;\\n}\\n\\n/* default list item style */\\n\\n.mdl-list__item {\\n font-size: 13px;\\n min-height: 30px;\\n padding: 8px;\\n}\\n\\n.mdl-button {\\n white-space: nowrap;\\n text-transform: none;\\n}\\n\\n.mdl-button.mdl-outline-primary {\\n background-color: #fff;\\n color: #0080af;\\n border: 1px solid #0080af;\\n line-height: 22px;\\n}\\n\\n.mdl-button.mdl-flat {\\n box-shadow: none;\\n color: #fff;\\n background-color: #0080af;\\n}\\n\\n.mdl-button.mdl-align-left {\\n padding: 0;\\n text-align: left;\\n}\\n\\n.mdl-button.mdl-small {\\n height: 30px;\\n line-height: 30px;\\n min-height: 30px;\\n padding: 0 8px;\\n background: #f5f5f5;\\n color: inherit;\\n border: 1px solid #ccc;\\n border-radius: 3px;\\n}\\n\\n.mdl-button.mdl-small.mdl-button--accent {\\n border-color: #0080af;\\n}\\n\\n.mdl-button.mdl-small.mdl-button--accent[disabled] {\\n border-color: #0080af;\\n}\\n\\n.cancelled-result {\\n color: #CCCCCC;\\n}\\n\\n.cancelled-result .icon.material-icons {\\n font-size: 16px;\\n}\\n\\n.grid-icon .icon.material-icons {\\n font-size: 14px;\\n color: #757575;\\n}\\n\\n.revisioned-result {\\n vertical-align: super;\\n font-style: italic;\\n font-size: 10px;\\n line-height: 10px;\\n font-weight: bold;\\n color: #000;\\n opacity: 0.8;\\n}\\n\\n.cvtooltip .cvtooltip-flagged-high {\\n color: #F44336;\\n}\\n\\n.cvtooltip .cvtooltip-flagged-low {\\n color: #2196F3;\\n}\\n\\n.cvtooltip .cvtooltip-flagged-other {\\n color: #FFA000;\\n}\\n\\n.cvtooltip .cvtooltip-other {\\n color: #757575;\\n}\\n\\n.tooltip-row {\\n margin-bottom: 6px;\\n text-align: left;\\n}\\n\\n.tooltip-row .tooltip-title {\\n font-weight: bold;\\n}\\n\\nmdl-chip.escalation-error {\\n background-color: #FFEBEE;\\n color: #F44336;\\n height: auto;\\n}\\n\\nmdl-chip.escalation-error .mdl-chip__action {\\n color: #F44336;\\n}\\n\\nmdl-chip.escalation-error .mdl-chip__text {\\n max-width: 500px;\\n max-height: 310px;\\n white-space: break-spaces;\\n overflow-y: auto;\\n}\\n\\n.mdl-snackbar {\\n background-color: #FFEBEE;\\n border: 1px solid #F44336;\\n max-width: 700px;\\n z-index: 10;\\n}\\n\\n.mdl-snackbar .mdl-snackbar__text {\\n color: #F44336;\\n font-size: 16px;\\n}\\n\\n.mdl-snackbar .mdl-snackbar__action {\\n background: #FFEBEE;\\n color: #F44336;\\n border: 1px solid #F44336;\\n font-size: 15px;\\n font-weight: bold;\\n margin-right: 5px;\\n}\\n\\n.mdl-spinner__layer-1,\\n.mdl-spinner__layer-2,\\n.mdl-spinner__layer-3,\\n.mdl-spinner__layer-4 {\\n border-color: rgb(66, 165, 245);\\n}\\n\\n.ag-theme-material .flags-exist {\\n color: #F44336;\\n font-weight: 600;\\n}\\n\\n.invalid my-date-picker div.mydp div.selectiongroup {\\n border-bottom-color: #F44336;\\n}\\n\\n.mdl-tooltip {\\n background-color: #333;\\n font-size: 12px;\\n}\\n\\n.category-wrapper .lab-reports .counter,\\nworkspace-level-layout .mdl-layout__drawer covance-side-nav .lab-reports .counter {\\n background-color: #C2185B;\\n}\\n\\n.category-wrapper .lab-manuals .counter,\\nworkspace-level-layout .mdl-layout__drawer covance-side-nav .lab-manuals .counter {\\n background-color: #0288D1;\\n}\\n\\n.category-wrapper .site-actions .counter,\\nworkspace-level-layout .mdl-layout__drawer covance-side-nav .site-actions .counter {\\n background-color: #EF6C00;\\n}\\n\\n.category-wrapper .site-communications .counter,\\nworkspace-level-layout .mdl-layout__drawer covance-side-nav .site-communications .counter {\\n background-color: #689F38;\\n}\\n\\n.category-wrapper .sponsor-communications .counter,\\nworkspace-level-layout .mdl-layout__drawer covance-side-nav .sponsor-communications .counter {\\n background-color: #689F38;\\n}\\n\\n.category-wrapper .training-materials .counter,\\nworkspace-level-layout .mdl-layout__drawer covance-side-nav .training-materials .counter {\\n background-color: #7B1FA2;\\n}\\n\\n.category-wrapper .result-alerts .counter,\\nworkspace-level-layout .mdl-layout__drawer covance-side-nav .result-alerts .counter {\\n background-color: #E65D9B;\\n}\\n\\n.category-wrapper .e-queries .counter,\\nworkspace-level-layout .mdl-layout__drawer covance-side-nav .e-queries .counter {\\n background-color: #b9b13f;\\n}\\n\\nnotification-icon .general-manuals .mdl-badge:after {\\n background-color: #0288D1 !important;\\n}\\n\\nnotification-icon .general-communications .mdl-badge:after {\\n background-color: #689F38 !important;\\n}\\n\\nnotification-icon .general-training-materials .mdl-badge:after {\\n background-color: #7B1FA2 !important;\\n}\\n\\nnotification-icon .application-training .mdl-badge:after {\\n background-color: #0097A7 !important;\\n}\\n\\n.interpretation-badge {\\n height: 20px;\\n line-height: 20px;\\n width: 24px;\\n padding: 1px;\\n display: flex;\\n justify-content: center;\\n font-weight: bold;\\n}\\n\\n.interpretation-badge.R {\\n background: #F8BBD0;\\n}\\n\\n.interpretation-badge.S {\\n background: #C8E6C9;\\n}\\n\\n.interpretation-badge.I {\\n background: #FFECB3;\\n}\\n\\n.interpretation-badge.NA {\\n font-weight: normal;\\n}\\n\\n.interpretation-badge.NS {\\n background: #ffe0b2;\\n}\\n\\n.interpretation-badge.SDD {\\n background: #b2ebf2;\\n}\\n\\n.ag-row.ag-row-group.ag-row-group-ellipsis > span {\\n display: flex;\\n align-items: center;\\n}\\n\\n.ag-row.ag-row-group.ag-row-group-ellipsis > span > span.ag-group-value {\\n overflow: hidden;\\n}\\n\\nmdl-dialog-host-component.scrollable {\\n height: 90%;\\n /* IE compatibility: max-height doesn't work correctly, use height */\\n display: flex;\\n}\\n\\nmdl-dialog-host-component.detail-scrollable {\\n height: 70%;\\n /* IE compatibility: max-height doesn't work correctly, use height */\\n width: 40%;\\n display: flex;\\n}\\n\\nmdl-dialog-host-component.e-query-preview-dialog {\\n max-height: 70%;\\n /* IE compatibility: max-height doesn't work correctly, use height */\\n width: 40%;\\n display: flex;\\n}\\n\\n.mdl-textfield__error {\\n font-size: 10px;\\n}\\n\\n.mdl-select.is-invalid .mdl-textfield__input {\\n border-color: #F44336;\\n box-shadow: none;\\n}\\n\\n.file-description textarea.mdl-textfield__input {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.is-invalid .mdl-textfield--floating-label .mdl-textfield__label {\\n color: #F44336;\\n font-size: 12px;\\n}\\n\\n.search-container {\\n display: flex;\\n align-items: center;\\n}\\n\\n.search-container .material-icons {\\n color: #9E9E9E;\\n margin: 0;\\n}\\n\\n.search-container .material-icons.clear-quick-filter-icon {\\n cursor: pointer;\\n font-size: 16px;\\n font-weight: bold;\\n margin-left: -14px;\\n z-index: 1;\\n}\\n\\n.search-container .mdl-textfield.no-textfield-controls .mdl-textfield__label {\\n top: 0;\\n line-height: 24px;\\n color: #BDBDBD;\\n}\\n\\n.search-container .mdl-textfield.no-textfield-controls .mdl-textfield__label:after {\\n bottom: 0;\\n display: none;\\n}\\n\\n.mdl-popover-on-top .mdl-textfield mdl-popover {\\n bottom: calc(100% - 16px);\\n}\\n\\n.mdl-progress {\\n width: 100%;\\n}\\n\\n.mdl-snackbar {\\n z-index: 100002;\\n}\\n\\n.line-chart cvd-line-chart .cv-scatter g.cv-groups g.cv-group path.flagged-high {\\n fill: #F44336;\\n stroke: #F44336;\\n}\\n\\n.line-chart cvd-line-chart .cv-scatter g.cv-groups g.cv-group path.flagged-low {\\n fill: #2196F3;\\n stroke: #2196F3;\\n}\\n\\n.line-chart cvd-line-chart .cv-scatter g.cv-groups g.cv-group path.flagged-other {\\n fill: #FFA000;\\n stroke: #FFA000;\\n}\\n\\n.line-chart cvd-line-chart .cv-scatter g.cv-groups g.cv-group path.non-flagged {\\n fill: #757575;\\n stroke: #757575;\\n}\\n\\n.flagged-legend .flagged-high {\\n fill: #F44336;\\n stroke: #F44336;\\n}\\n\\n.flagged-legend .flagged-low {\\n fill: #2196F3;\\n stroke: #2196F3;\\n}\\n\\n.flagged-legend .flagged-other {\\n fill: #FFA000;\\n stroke: #FFA000;\\n}\\n\\n.flagged-legend .non-flagged {\\n fill: #757575;\\n stroke: #757575;\\n}\\n\\n.cv-wrap g.cv-groups g.cv-group path.cv-line.opaque {\\n opacity: 0.2;\\n}\\n\\n.cv-scatter g.cv-groups g.cv-group path.cv-point.opaque {\\n opacity: 0.2;\\n}\\n\\n.cv-wrap g.cv-groups g.cv-group path.cv-line.cvdhidden {\\n visibility: hidden;\\n}\\n\\n.cv-scatter g.cv-groups g.cv-group path.cv-point.cvdhidden {\\n visibility: hidden;\\n}\\n\\n.ag-overlay .ag-overlay-panel .ag-overlay-wrapper {\\n display: flex;\\n height: 100%;\\n align-items: center;\\n justify-content: center;\\n}\\n\\n.large-study-warning-message {\\n color: #F44336;\\n}\\n\\n.center-column-paddings {\\n padding-right: 40px;\\n padding-left: 40px;\\n}\\n\\n.field-margin-bottom {\\n margin-bottom: 24px;\\n}\\n\\n.field-border {\\n border-bottom: 1px solid lightgray;\\n}\\n\\n.field-label {\\n color: #9E9E9E;\\n}\\n\\n.field-text {\\n color: #757575;\\n}\\n\\n.one-question-block {\\n margin-bottom: 12px;\\n}\\n\\n.one-response-block {\\n margin-bottom: 6px;\\n}\\n\\n.sample-tracking-dialog {\\n width: 80% !important;\\n min-width: 80% !important;\\n max-height: 80%;\\n overflow-y: scroll;\\n padding: 0;\\n overflow-x: hidden;\\n}\\n\\n.container-delete-delete-dialog {\\n padding: 0;\\n width: 50%;\\n min-width: 30% !important;\\n height: auto;\\n}\\n\\n.st-report-confirmation-dialog {\\n padding: 0;\\n width: 50% !important;\\n min-width: 30% !important;\\n height: auto;\\n}\\n\\n.st-report-delete-dialog {\\n padding: 0;\\n width: 30%;\\n min-width: 20% !important;\\n height: auto;\\n}\\n\\n.column-view-dialog {\\n min-width: 900px !important;\\n max-width: 1200px !important;\\n max-height: 90%;\\n padding: 0;\\n overflow-y: auto;\\n}\\n\\n.modal-delete-dialog {\\n padding: 0;\\n width: 30% !important;\\n min-width: 20% !important;\\n height: auto;\\n}\\n\\n.sm-confirm-dialog {\\n padding: 0;\\n width: 35%;\\n min-width: 30% !important;\\n height: auto;\\n}\\n\\n.sm-alternate-container-dialog {\\n padding: 0;\\n width: 25%;\\n min-width: 20% !important;\\n height: auto;\\n}\\n\\n\", \"\"]);\n\n// exports\n","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../node_modules/css-loader/index.js!../node_modules/resolve-url-loader/index.js!../node_modules/sass-loader/lib/loader.js??ref--6-3!./grid.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"@charset \\\"UTF-8\\\";\\n\\n/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.covance-expired-age {\\n color: red;\\n}\\n\\n.covance-full-size-grid {\\n display: flex;\\n flex-grow: 1;\\n}\\n\\n.covance-export-grid {\\n display: none;\\n}\\n\\n.ag-theme-material {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n color: inherit;\\n /* indent for column for readability */\\n}\\n\\n.ag-theme-material [role=gridcell].ag-cell-no-focus:focus {\\n outline: none;\\n}\\n\\n.ag-theme-material .ag-row-group .ag-group-value,\\n.ag-theme-material .ag-row-group .ag-group-child-count,\\n.ag-theme-material .ag-row-group.ag-row-odd .ag-group-value,\\n.ag-theme-material .ag-row-group.ag-row-odd .ag-group-child-count,\\n.ag-theme-material .ag-row-group.ag-row-even .ag-group-value,\\n.ag-theme-material .ag-row-group.ag-row-even .ag-group-child-count {\\n font-style: italic;\\n font-weight: 500;\\n}\\n\\n.ag-theme-material .ag-row-group .ag-cell-not-inline-editing,\\n.ag-theme-material .ag-row-group.ag-row-odd .ag-cell-not-inline-editing,\\n.ag-theme-material .ag-row-group.ag-row-even .ag-cell-not-inline-editing {\\n padding: 0;\\n border-width: 0;\\n}\\n\\n.ag-theme-material .ag-header-row:first-child .ag-header-cell:hover {\\n border-right-style: double;\\n border-right-color: #BDBDBD;\\n}\\n\\n.ag-theme-material .ag-header {\\n color: #666;\\n font-weight: 600;\\n}\\n\\n.ag-theme-material .ag-header .ag-header-viewport {\\n overflow: visible;\\n}\\n\\n.ag-theme-material .ag-header .ag-header-cell {\\n line-height: inherit;\\n padding: 2px;\\n padding-top: 4px;\\n font-size: 12px;\\n}\\n\\n.ag-theme-material .ag-header .ag-header-cell .ag-header-icon {\\n color: #666;\\n margin-right: 4px;\\n margin-left: 8px;\\n}\\n\\n.ag-theme-material .ag-header .ag-header-cell .ag-header-icon svg {\\n stroke: #666;\\n fill: #666;\\n}\\n\\n.ag-theme-material .ag-header .ag-header-cell.ag-header-cell-sortable {\\n cursor: pointer;\\n}\\n\\n.ag-theme-material .ag-cell-not-inline-editing {\\n display: flex;\\n align-items: center;\\n padding: 0px 4px 0 4px;\\n line-height: 23px;\\n}\\n\\n.ag-theme-material .ag-cell,\\n.ag-theme-material .ag-header-cell-label,\\n.ag-theme-material .ag-header-group-cell-label,\\n.ag-theme-material .ag-header-group-cell,\\n.ag-theme-material .ag-footer-cell-entire-row,\\n.ag-theme-material .ag-group-cell-entire-row,\\n.ag-theme-material .ag-dnd-ghost,\\n.ag-theme-material .ag-set-filter-item,\\n.ag-theme-material .ag-cell-not-inline-editing {\\n display: block;\\n text-overflow: ellipsis;\\n}\\n\\n.ag-theme-material .ag-row.strong-row {\\n font-weight: bold;\\n color: #000;\\n}\\n\\n.ag-theme-material .ag-row-selected {\\n background-color: #E0F7FA;\\n}\\n\\n.ag-theme-material .ag-row.hidden-document {\\n color: rgba(0, 0, 0, 0.5);\\n}\\n\\n.ag-theme-material .ag-row.hidden-query {\\n color: rgba(0, 0, 0, 0.5);\\n}\\n\\n.ag-theme-material .ag-icon-checkbox-unchecked,\\n.ag-theme-material .ag-icon-checkbox-checked {\\n width: 14px;\\n height: 14px;\\n background-size: 14px 14px;\\n margin-top: 4px;\\n opacity: 0.8;\\n}\\n\\n.ag-theme-material .ag-selection-checkbox span {\\n top: 0;\\n}\\n\\n.ag-theme-material .ag-status-bar {\\n border: none;\\n}\\n\\n.ag-theme-material .ag-header-cell-label > span {\\n float: none;\\n}\\n\\n.ag-theme-material .ag-body .ag-row .optional-icon mdl-icon {\\n font-size: 14px;\\n color: #757575;\\n margin-right: 4px;\\n vertical-align: text-top;\\n}\\n\\n.ag-theme-material .ag-body .ag-row .ag-group-value .group-type {\\n font-weight: 300;\\n}\\n\\n.ag-theme-material .ag-body .ag-row .ag-group-value .group-value {\\n font-weight: 600;\\n font-style: normal;\\n}\\n\\n.ag-theme-material .ag-body .ag-row .ag-group-value .group-value:before {\\n content: \\\"\\\\A0\\\";\\n}\\n\\n.ag-theme-material .ag-body .ag-row .ag-group-expanded span,\\n.ag-theme-material .ag-body .ag-row .ag-group-contracted span {\\n margin-right: 4px;\\n}\\n\\n.ag-theme-material .ag-body .ag-row.ag-row-hover {\\n background-color: #eceff1;\\n}\\n\\n.ag-theme-material .ag-floating-filter-button {\\n float: none;\\n line-height: 0;\\n margin: 0;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n opacity: 0.5;\\n}\\n\\n.ag-theme-material .ag-header-cell > .ag-floating-filter-body input {\\n border: none;\\n color: #ff1744;\\n padding: 0 4px;\\n}\\n\\n.ag-theme-material .ag-header-cell > .ag-floating-filter-full-body input {\\n border: 1px solid #ddd;\\n border-radius: 6px;\\n color: #ff1744;\\n padding: 0 4px;\\n}\\n\\n.ag-theme-material .ag-header-cell > .ag-floating-filter-full-body input:focus {\\n border: 2px solid #3f51b5;\\n padding: 0 4px;\\n}\\n\\n.ag-theme-material .ag-row.ag-row-level-1 .ag-cell:first-child {\\n padding-left: 21px;\\n}\\n\\nag-grid-angular {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n}\\n\\nag-grid-angular .ag-root-wrapper {\\n flex-grow: 1;\\n}\\n\\nag-grid-angular .ag-root-wrapper-body {\\n height: auto;\\n}\\n\\nag-grid-angular .ag-root {\\n height: auto;\\n}\\n\\nag-grid-angular .ag-root.ag-layout-normal {\\n height: auto;\\n}\\n\\nag-grid-angular .ag-root.ag-layout-normal .ag-pinned-left-header {\\n background-color: #fff;\\n z-index: 1;\\n}\\n\\n\", \"\"]);\n\n// exports\n","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../node_modules/css-loader/index.js!../node_modules/resolve-url-loader/index.js!../node_modules/sass-loader/lib/loader.js??ref--6-3!./cvd3.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".cvd3.cv-scatter .cv-groups .cv-point.hover,\\n.cvd3 .cv-groups .cv-point.hover {\\n stroke-opacity: 0.85 !important;\\n fill-opacity: 0 !important;\\n stroke-width: 5px;\\n}\\n\\n.cvd3 .cv-axis.cv-x path.domain {\\n stroke-opacity: 0.85;\\n}\\n\\n.cvd3 .cv-axis.cv-y path.domain {\\n stroke-opacity: 0.85;\\n}\\n\\n.cv-selectable.cv-point {\\n cursor: pointer;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n {{o}}\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./boolean-filter.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"mdl-select ::ng-deep .mdl-popover {\\n padding: 5px;\\n margin: 2px 0 0 -6px;\\n}\\n\\nmdl-select ::ng-deep .mdl-textfield {\\n width: 90%;\\n margin-left: 4px;\\n padding: 20px 10px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./filter-header.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".header-container {\\n margin: 20px 10px 0 10px;\\n text-align: left;\\n display: flex;\\n align-items: center;\\n}\\n\\n.header-container clearable-textfield {\\n width: 100%;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{value}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{value}}\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./bar-renderer.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".bar-container {\\n border-left: dashed gray 1px;\\n position: absolute;\\n top: 0;\\n left: 4px;\\n right: 4px;\\n bottom: 0;\\n}\\n\\n.bar-container .bar {\\n background-color: #FAD5CE;\\n position: absolute;\\n top: 10%;\\n bottom: 10%;\\n}\\n\\n.bar-container .label {\\n position: absolute;\\n bottom: 0;\\n left: 1em;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n
{{value}}
\\r\\n
{{value}}
\\r\\n
\"","module.exports = \"{{groupTypeName}}: \\r\\n\\r\\n {{title}}{{title}}\\r\\n\"","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{displayName}}\\r\\n \\r\\n
{{displayName}}
\\r\\n
\\r\\n
\\r\\n \\r\\n\"","module.exports = \"
\\r\\n visibility_off\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./hidden-document-ag-renderer.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".wrapper .icon-hidden {\\n margin-left: 20px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n {{params.text}}\\r\\n \\r\\n \\r\\n {{params.linkIcon}}\\r\\n \\r\\n {{params.text}}\\r\\n \\r\\n
\\r\\n {{tooltipText}}\\r\\n
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./link-ag-renderer.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"[result-content] {\\n display: flex;\\n align-items: center;\\n justify-content: flex-start;\\n}\\n\\n[result-content] mdl-icon {\\n font-size: 20px;\\n padding-right: 10px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n  \\r\\n \\r\\n
\\r\\n {{item.displayValue}}\\r\\n
\\r\\n
\\r\\n
\\r\\n {{tooltip.title}}: {{tooltip.content}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"\\r\\n
\\r\\n \\r\\n question_answer\\r\\n \\r\\n Administrative Question\\r\\n \\r\\n \\r\\n {{params.text}}\\r\\n {{params.text}}\\r\\n
\\r\\n
\\r\\n {{tooltipText}}\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\r\\n
\\r\\n {{item.text }} \\r\\n
\\r\\n
\\r\\n
\\r\\n {{item.text}}: {{item.tooltip}}\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"
\\r\\n done\\r\\n
\\r\\n\\r\\n Document was read by:
\\r\\n \\r\\n {{h.user.fullName}}
\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./view-history-ag-renderer.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n search\\r\\n \\r\\n clear\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./covance-ag-grid.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.covance-ag-grid-container {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n}\\n\\n.covance-ag-grid-container .grid {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n}\\n\\n.toolbar {\\n display: flex;\\n align-items: center;\\n flex-wrap: wrap;\\n padding: 8px;\\n}\\n\\n.mdl-cell {\\n margin-top: 0;\\n margin-right: 0;\\n width: calc(100% - 8px);\\n}\\n\\n.hidden {\\n display: none;\\n}\\n\\n.inner-toolbar-wrapper {\\n flex-grow: 1;\\n display: flex;\\n}\\n\\nag-export {\\n flex-grow: 1;\\n}\\n\\n.clear-quick-filter-icon {\\n cursor: pointer;\\n}\\n\\n\", \"\"]);\n\n// exports\n","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./download-dialog.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.mdl-dialog__content {\\n min-height: 100px;\\n display: flex;\\n flex-direction: column;\\n justify-content: center;\\n align-items: center;\\n}\\n\\n.mdl-dialog__title {\\n font-size: 18px;\\n font-weight: 300;\\n color: #949494;\\n padding-top: 0;\\n}\\n\\n.error {\\n color: #F44336;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n

\\r\\n Downloading\\r\\n

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

Starting request...

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

Download in progress

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

File not found

\\r\\n

Some of the requested documents are missing. Please contact technical support.

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

Error occurred while downloading

\\r\\n

Some of the requested documents are missing. Please contact technical support.

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","module.exports = \"\\r\\n
\\r\\n {{userFullName$ | async}} Settings\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./user-settings.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".content-container {\\n min-height: 300px;\\n}\\n\\nuser-settings-tabbed {\\n height: 100%;\\n display: flex;\\n flex-direction: column;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n {{unitOption.title}} Units\\r\\n \\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./unit-selector.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".unit-selector {\\n display: flex;\\n align-items: center;\\n padding: 8px;\\n}\\n\\n.unit-selector mdl-select {\\n width: 150px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./footer.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.mdl-mini-footer--link-list li,\\n.mdl-mini-footer__link-list li {\\n line-height: 28px;\\n}\\n\\n.prominent a {\\n font-weight: bold;\\n text-decoration: underline;\\n}\\n\\n.prominent a:hover {\\n color: #0080af;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n {{emptyValue}}\\r\\n {{getText(item)}}\\r\\n\"","module.exports = \"\\r\\n R\\r\\n \\r\\n R\\r\\n \\r\\n {{message}}\\r\\n \\r\\n \\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./data-revision-indicator.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".indicator {\\n cursor: default;\\n margin-left: 4px;\\n}\\n\\n.tooltip-container {\\n display: inline;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n arrow_drop_down\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n clear\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{getSelectAllCheckboxIcon()}}\\r\\n (Select All)\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
No items found
\\r\\n
\\r\\n {{getCheckboxIcon(item)}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
No items found
\\r\\n \\r\\n \\r\\n {{item.text}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./covance-select.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\ndiv.mdl-select {\\n display: inline;\\n}\\n\\n.select-popover-container {\\n padding: 10px;\\n color: #666;\\n font-size: 12px;\\n}\\n\\n.search {\\n display: flex;\\n}\\n\\n.search mdl-textfield {\\n padding: 0;\\n}\\n\\n.search,\\n.select-all {\\n border-bottom: 1px solid #e0e0e0;\\n padding: 5px;\\n}\\n\\n.search ::ng-deep .mdl-textfield__input {\\n border-color: transparent;\\n}\\n\\n.select-all {\\n font-weight: bold;\\n}\\n\\n.select-items {\\n padding: 5px;\\n margin-top: 8px;\\n height: fit-content;\\n max-height: 200px;\\n overflow-y: auto;\\n}\\n\\n.select-items .mdl-checkbox {\\n padding-left: 24px;\\n height: auto;\\n min-height: 24px;\\n}\\n\\n.select-items .mdl-checkbox mdl-icon {\\n position: absolute;\\n left: 0;\\n}\\n\\n.select-items mdl-list {\\n padding: 0;\\n}\\n\\n.select-items .not-found {\\n padding: 6px;\\n}\\n\\n.select-all,\\n.select-items {\\n cursor: pointer;\\n}\\n\\n.select-all mdl-icon,\\n.select-items mdl-icon {\\n font-size: 22px;\\n margin-left: -3px;\\n color: #626971;\\n vertical-align: middle;\\n}\\n\\n.mdl-progress {\\n width: 100%;\\n height: 2px;\\n margin-top: -2px;\\n}\\n\\nmdl-list mdl-list-item {\\n cursor: pointer;\\n}\\n\\nmdl-list mdl-list-item:hover {\\n background-color: #eee;\\n}\\n\\nmdl-list mdl-list-item.is-active,\\nmdl-list mdl-list-item.is-active:hover {\\n background-color: #e0e0e0;\\n}\\n\\nmdl-popover {\\n width: 300px;\\n margin-top: -12px;\\n}\\n\\n:host-context(.full-width) mdl-popover {\\n width: 100%;\\n}\\n\\n:host-context(.disabled) input {\\n cursor: default;\\n}\\n\\n.clear-quick-filter-icon {\\n cursor: pointer;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n
{{value}}
\\r\\n
{{value}}
\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./multiline.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"span {\\n clear: left;\\n display: inline;\\n text-align: left;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./covance-tooltip.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"div ::ng-deep div[result-content],\\ndiv ::ng-deep a[result-content],\\ndiv ::ng-deep span[result-content] {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n clear\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./clearable-textfield.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".search-text-wrapper {\\n display: flex;\\n align-items: center;\\n justify-content: flex-start;\\n flex: 1;\\n padding-right: 16px;\\n}\\n\\n.search-text-wrapper .clear-quick-filter-icon {\\n cursor: pointer;\\n}\\n\\n.search-text-wrapper .clear-quick-filter-icon.hidden {\\n visibility: hidden;\\n}\\n\\n\", \"\"]);\n\n// exports\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\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./covance-expansion-panel.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.expansion-panel {\\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n border: 1px solid #ddd;\\n border-radius: 3px;\\n flex-wrap: wrap;\\n margin-bottom: 10px;\\n transition: all 0.3s;\\n font-size: inherit;\\n line-height: 1.5;\\n}\\n\\n.expansion-panel__header {\\n padding: 5px 0 5px 8px;\\n cursor: pointer;\\n outline: 0;\\n background-color: #eee;\\n}\\n\\n.expansion-panel__title {\\n color: black;\\n font-weight: bold;\\n display: flex;\\n align-items: center;\\n}\\n\\n.expansion-panel__title > label,\\nbutton {\\n cursor: inherit;\\n}\\n\\n.expansion-panel__content {\\n border: 1px solid #ddd;\\n border-radius: 3px;\\n padding: 15px;\\n}\\n\\n.circle {\\n border: 1px solid #0080af;\\n background-color: #eee;\\n width: 16px;\\n height: 16px;\\n border-radius: 100%;\\n position: relative;\\n display: inline-block;\\n vertical-align: middle;\\n margin-right: 7px;\\n}\\n\\n.circle:before,\\n.circle:after {\\n content: \\\"\\\";\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n}\\n\\n.circle.plus:before,\\n.circle.plus:after {\\n background: #0080af;\\n}\\n\\n.circle.plus:before {\\n width: 2px;\\n margin: 3px auto;\\n}\\n\\n.circle.plus:after {\\n margin: auto 3px;\\n height: 2px;\\n box-shadow: none;\\n}\\n\\n.circle.minus:before {\\n background: #0080af;\\n margin: auto 3px;\\n height: 2px;\\n box-shadow: 0px 1px 1px #0080af;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{header.displayText}}\\r\\n \\r\\n \\r\\n {{header.sort === 'asc' ? '▴' : header.sort === 'desc' ? '▾' : '' }}\\r\\n \\r\\n \\r\\n chevron_left\\r\\n chevron_right\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n {{header.displayText}}\\r\\n \\r\\n \\r\\n {{header.sort === 'asc' ? '▴' : header.sort === 'desc' ? '▾' : '' }}\\r\\n \\r\\n \\r\\n chevron_left\\r\\n chevron_right\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n {{action?.title}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n close\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{header?.selectedFilterCount}}\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{data[header.indicatorField]}}\\r\\n {{header.skipConversion ? data[header.key] || header.defaultValue || '-' : \\r\\n header.isDate && handleDateTimeFormat? ((data[header.key] | date:'dd-MMM-y' ) || '-') :\\r\\n header.isDateTime && handleDateTimeFormat? ((data[header.key] | date:'dd-MMM-y, hh:mm a' ) || '-') :\\r\\n header.isHoldIndicator ? '' : header?.isDropdownField ? header.defaultValue :\\r\\n data[header.key] || header.defaultValue || '-'\\r\\n }}\\r\\n \\r\\n \\r\\n \\r\\n {{data[subValue.key]}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{action.displayText}}\\r\\n \\r\\n \\r\\n {{action.description}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{data.smToolTip}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
Parent
\\r\\n
\\r\\n \\r\\n {{header.skipConversion ? data[header.key] || header.defaultValue || '-' :\\r\\n header.isDate && handleDateTimeFormat ? ((parent[header.key] | date:'dd-MMM-y') || '-') :\\r\\n header.isDateTime && handleDateTimeFormat? ((parent[header.key] | date:'dd-MMM-y, hh:mm a') ||\\r\\n '-') : header.isHoldIndicator ? '' : parent[header.key] || '-'\\r\\n }}\\r\\n \\r\\n {{data.smToolTip}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
Child
\\r\\n
\\r\\n \\r\\n {{header.skipConversion ? data[header.key] || header.defaultValue || '-' :\\r\\n header.isDate ? ((children[header.key] | date:'dd-MMM-y') || '-') :\\r\\n header.isDateTime ? ((children[header.key] | date:'dd-MMM-y, hh:mm a') ||\\r\\n '-') : header.isHoldIndicator ? '' : children[header.key] || '-'\\r\\n }}\\r\\n \\r\\n {{data.smToolTip}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Reason*\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{header.childHeader?.icon}}\\r\\n {{children[header.indicatorField]}}\\r\\n {{header.skipConversion ? data[header.key] || header.defaultValue || '-' :\\r\\n header.isDate ? ((children[header.key] | date:'dd-MMM-y') || '-') :\\r\\n header.isDateTime ? ((children[header.key] | date:'dd-MMM-y, hh:mm a') || '-') :\\r\\n header.isHoldIndicator ? '' :\\r\\n children[header.key] || header.childHeader?.defaultValue || header.defaultValue || '-'\\r\\n }}\\r\\n \\r\\n \\r\\n \\r\\n {{children[subValue.key]}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{action.displayText}}\\r\\n \\r\\n \\r\\n {{action.description}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{data.smToolTip}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n {{emptyDataPlaceHolder}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./tracking-grid.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","var escape = require(\"../../../../../node_modules/css-loader/lib/url/escape.js\");\nexports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"@charset \\\"UTF-8\\\";\\n\\n/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.heading {\\n font: normal normal bold 16px/28px \\\"Source Sans Pro\\\";\\n}\\n\\n.heading img {\\n height: 25px;\\n padding: 0 10px 2px 0;\\n}\\n\\n.view-results {\\n background: #FFFFFF;\\n color: #3A5CE9;\\n cursor: pointer;\\n}\\n\\n.table-container {\\n padding-right: 5px;\\n min-height: 35vh;\\n}\\n\\n.active-search-filter {\\n width: 1155px;\\n overflow-x: scroll;\\n}\\n\\n.table {\\n padding-bottom: 1rem;\\n font: normal normal normal 12px/12px \\\"Source Sans Pro\\\";\\n font-weight: 400;\\n}\\n\\n.table div:last-child {\\n border-radius: 0 0 6px 6px;\\n}\\n\\n.table-header {\\n display: flex;\\n background: #3A5CE9;\\n border-radius: 6px 6px 0px 0px;\\n color: white;\\n height: 4rem;\\n cursor: pointer;\\n flex-direction: row;\\n font: normal normal bold 13px/13px \\\"Source Sans Pro\\\";\\n}\\n\\n.table-header div {\\n display: flex;\\n align-items: center;\\n flex-wrap: nowrap;\\n width: -webkit-fill-available;\\n width: -moz-available;\\n margin-left: 5px;\\n}\\n\\n.table-data {\\n max-height: 78vh;\\n overflow-x: hidden;\\n}\\n\\n.table-row {\\n display: flex;\\n flex-direction: column;\\n border-bottom: 1px solid #d9d9d9;\\n background: #F8F8F8;\\n color: #231F20;\\n min-height: 1rem;\\n box-shadow: 0px 3px 6px -2px #b5b5b5;\\n}\\n\\n.table-row span {\\n display: inherit;\\n width: -webkit-fill-available;\\n width: -moz-available;\\n margin: 1.2vh;\\n line-break: auto;\\n align-items: center;\\n pointer-events: none;\\n}\\n\\n.table-row .link {\\n cursor: pointer;\\n color: #3A5CE9;\\n pointer-events: auto;\\n}\\n\\n.table-row .expired {\\n color: red;\\n}\\n\\n.no-data {\\n min-height: 3rem !important;\\n}\\n\\n.no-data span {\\n justify-content: space-around;\\n position: fixed;\\n}\\n\\n.table-row:hover {\\n background: #dee3fa !important;\\n}\\n\\n/* .children-row {\\n background: #F3F5FE !important;\\n cursor: pointer;\\n\\n img {\\n height: 20px;\\n padding-right: 5px;\\n margin-top: -0.5vh;\\n margin-left: 0;\\n }\\n\\n span:nth-child(1) {\\n background-image: url('../../../../../images/sample_tracking/arrow-right-bottom.svg');\\n background-repeat: no-repeat;\\n padding-left: 25px;\\n background-size: 25px, 40px;\\n background-position: left, center;\\n margin-left: 0;\\n }\\n }*/\\n\\n.children-row:hover {\\n background: #C6D0F9 !important;\\n}\\n\\n.disable-row {\\n background: #E9E9E9 !important;\\n}\\n\\n.sm-row {\\n position: relative;\\n box-shadow: unset !important;\\n background: #FFCCCB !important;\\n}\\n\\n.sm-row .tooltiptext {\\n visibility: hidden;\\n width: auto;\\n background-color: white;\\n color: #000;\\n text-align: center;\\n padding: 5px;\\n border: 1px solid;\\n border-radius: 6px;\\n position: absolute;\\n z-index: 1;\\n margin-top: -15px;\\n margin-left: 40px;\\n font: normal normal normal 14px/17px \\\"Source Sans Pro\\\";\\n}\\n\\n.sm-row .tooltiptext::after {\\n content: \\\" \\\";\\n position: absolute;\\n top: 100%;\\n left: 50%;\\n margin-left: -25px;\\n border-width: 5px;\\n border-style: dashed;\\n border-color: black transparent transparent transparent;\\n}\\n\\n.sm-row > .row-container > span:nth-child(1),\\n.sm-row > span:nth-child(1) {\\n background-image: url(\" + escape(require(\"./../../../../../images/sample_tracking/hold-badge.svg\")) + \");\\n background-repeat: no-repeat;\\n background-size: 40px;\\n background-position: center center;\\n}\\n\\n.sm-row > span:nth-child(1):hover ~ .tooltiptext {\\n visibility: visible;\\n}\\n\\n.sm-row:hover {\\n background: #FFCCCB !important;\\n}\\n\\n.special-cell {\\n color: white;\\n border-radius: 15px;\\n align-items: center;\\n justify-content: center;\\n width: 6.5vw !important;\\n margin: 1vh 2.3vw 1vh 2vw !important;\\n height: 25px;\\n}\\n\\n.active {\\n background-color: #069D06;\\n}\\n\\n.in-active {\\n background-color: #DC1439;\\n}\\n\\n.special-cell-text-active {\\n color: #069D06;\\n}\\n\\n.special-cell-text-inactive {\\n color: #DC1439;\\n}\\n\\n::-webkit-scrollbar {\\n width: 5px;\\n height: 14px;\\n}\\n\\n::-webkit-scrollbar-track {\\n background: #ffffff;\\n}\\n\\n::-webkit-scrollbar-thumb {\\n background: #C6D0F9;\\n}\\n\\n/* Handle on hover */\\n\\n::-webkit-scrollbar-thumb:hover {\\n background: #3A5CE9;\\n}\\n\\n.search-filter {\\n height: 4rem;\\n display: flex;\\n flex-direction: row;\\n align-items: center;\\n justify-content: center;\\n background-color: #F3F5FE;\\n}\\n\\n.search-filter .search {\\n width: 175px;\\n display: flex;\\n margin-left: 5px;\\n justify-content: center;\\n position: relative;\\n}\\n\\n.search-filter .search .search-box {\\n width: 140px;\\n border: 1px solid #C6D0F9;\\n border-radius: 2px;\\n outline: none;\\n}\\n\\n.search-filter .search .search-box.has-value {\\n border: 2px solid #3a5ce9;\\n}\\n\\n.search-filter .search .search-box:focus-visible {\\n border-color: #3a5ce9 !important;\\n}\\n\\n.search-filter .search img {\\n cursor: pointer;\\n height: 20px;\\n}\\n\\n.search-filter .search .header-search-close {\\n font-size: 12px;\\n color: #B3B2B3;\\n right: 25px;\\n top: 5px;\\n position: absolute;\\n cursor: pointer;\\n}\\n\\n.search-filter .search .header-search-close:hover {\\n color: #ff0000 !important;\\n}\\n\\n.filter-menu {\\n display: none;\\n}\\n\\n.filter-menu .filter-search-box {\\n border: none;\\n outline: none;\\n border-radius: 3px;\\n border-bottom: 2px solid #6e82d8;\\n}\\n\\n.last-item {\\n right: 10px;\\n left: auto !important;\\n}\\n\\n.is-active {\\n background: #e3e6f2 !important;\\n border-radius: 5px !important;\\n display: flex;\\n position: absolute;\\n padding: 10px;\\n margin-top: 25px;\\n justify-content: flex-start;\\n flex-direction: column;\\n max-height: 250px;\\n overflow-y: auto;\\n border: 1px solid #aebdff;\\n width: max-content;\\n left: 0;\\n z-index: 1;\\n}\\n\\n.unique-items {\\n padding-top: 5px;\\n padding-left: 5px;\\n display: flex;\\n align-items: center;\\n font-size: 15px;\\n}\\n\\n.unique-items input {\\n width: 14px;\\n height: 14px;\\n}\\n\\n.unique-items label {\\n cursor: pointer;\\n}\\n\\n.select-all {\\n border-bottom: 3px solid #3a5ce9;\\n margin: 10px 0;\\n padding-bottom: 10px;\\n border-radius: 0 !important;\\n}\\n\\n.filter-hint {\\n position: absolute;\\n top: 22px;\\n left: 5px;\\n color: red;\\n}\\n\\n.prevent-events {\\n pointer-events: none;\\n cursor: none;\\n}\\n\\n.expand .row-container span:nth-child(1)::before {\\n content: \\\"\\\\25B4\\\";\\n font-size: 20px;\\n cursor: pointer;\\n pointer-events: all;\\n}\\n\\n.collapse {\\n color: white;\\n margin-bottom: 10px;\\n transition: transform 1.3s cubic-bezier(0, 0, 0.91, 1.01);\\n}\\n\\n.collapse .row-container {\\n background-color: #3A5CE9 !important;\\n}\\n\\n.collapse .row-container span:nth-child(1)::before {\\n content: \\\"\\\\25BE\\\";\\n font-size: 20px;\\n cursor: pointer;\\n pointer-events: all;\\n}\\n\\n.collapse .row-container .link {\\n color: white !important;\\n}\\n\\n.collapse .row-container:hover {\\n background-color: #3A5CE9 !important;\\n}\\n\\n.grouping-row {\\n display: none;\\n background-color: #dee3fa;\\n}\\n\\n.grouping-row .parent,\\n.grouping-row .child {\\n margin: 10px;\\n}\\n\\n.grouping-row .parent .table-row,\\n.grouping-row .child .table-row {\\n flex-direction: row;\\n}\\n\\n.grouping-row .title {\\n background-color: #b5b5b5;\\n border-radius: 6px 6px 0 0;\\n padding: 10px;\\n color: rgba(0, 0, 0, 0.87);\\n font: normal normal bold 13px/13px \\\"Source Sans Pro\\\";\\n}\\n\\n.show {\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.row-container {\\n display: flex;\\n}\\n\\n.columns-outline.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder) {\\n transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);\\n}\\n\\n.cdk-drag {\\n transition: transform 150ms ease;\\n}\\n\\n.cdk-drag-animating {\\n transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);\\n}\\n\\n.cdk-drag-placeholder {\\n background: #E9E9E9;\\n border: 1px dashed #2998E3 !important;\\n border-radius: 3px;\\n font-size: 0;\\n transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);\\n}\\n\\n.cdk-drag-preview {\\n background: #2998E3;\\n border-radius: 3px;\\n color: white;\\n height: 4rem;\\n cursor: grabbing !important;\\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);\\n font: normal normal bold 13px/13px \\\"Source Sans Pro\\\";\\n display: flex;\\n}\\n\\n.cdk-drag-preview span {\\n text-align: center;\\n display: flex;\\n align-items: center;\\n margin-left: 5px;\\n}\\n\\n.rotate-icon {\\n transform: rotate(90deg) !important;\\n width: 20%;\\n text-align: center;\\n margin-bottom: 7px;\\n padding-top: 10px;\\n}\\n\\n.material-icons {\\n font-size: 13px;\\n width: 8px;\\n}\\n\\n.row-checkbox {\\n margin-left: 20px;\\n margin-right: 18px;\\n cursor: pointer;\\n transform: scale(1.5);\\n}\\n\\n.column-checkbox {\\n margin-left: 20px;\\n margin-right: 15px;\\n cursor: pointer;\\n transform: scale(1.5);\\n}\\n\\n.action-span {\\n display: grid !important;\\n margin: unset !important;\\n margin-bottom: 0.5vh !important;\\n}\\n\\n.action-disabled {\\n pointer-events: none !important;\\n opacity: 0 !important;\\n}\\n\\n.default {\\n color: #a0a0a0;\\n}\\n\\nselect {\\n border-radius: 10px;\\n border: 1px solid #a0a0a0;\\n padding: 7px;\\n margin: 10px;\\n margin-left: 5px;\\n outline: none;\\n height: 3rem;\\n width: 55rem;\\n cursor: pointer;\\n font-family: \\\"Source Sans Pro\\\";\\n font-size: 14px;\\n}\\n\\nselect option {\\n cursor: pointer;\\n font-family: \\\"Source Sans Pro\\\";\\n color: black;\\n font-size: 16px;\\n border-radius: 10px;\\n}\\n\\nselect option .hide {\\n display: none;\\n}\\n\\nselect option:hover {\\n background-color: #a0a0a0 !important;\\n color: black;\\n}\\n\\nselect option:checked {\\n color: white;\\n background-color: #2998E3 !important;\\n}\\n\\nselect:focus {\\n outline: 1px solid #3A5CE9;\\n}\\n\\n.reason-row {\\n display: inline-flex;\\n align-items: center;\\n margin-left: 2rem;\\n font-weight: bold;\\n margin-top: 1rem;\\n margin-bottom: 1rem;\\n}\\n\\n.reason-row span {\\n width: fit-content !important;\\n}\\n\\ntextarea {\\n margin: 0 1rem 1rem 9.2rem;\\n width: 35rem;\\n border-radius: 10px;\\n height: 6rem;\\n font-family: \\\"Source Sans Pro\\\";\\n padding: 5px;\\n font-size: 16px;\\n}\\n\\ntextarea:hover,\\ntextarea:focus {\\n border: 1px solid #3A5CE9;\\n box-shadow: 0 0 5px 1px #08F;\\n outline: none !important;\\n}\\n\\n.subValue {\\n display: block !important;\\n max-width: 14rem !important;\\n word-wrap: break-word;\\n font-weight: normal;\\n padding-left: 15px;\\n padding-top: 4px;\\n font-size: 12px !important;\\n margin: unset !important;\\n position: relative;\\n}\\n\\n.align-child-row {\\n padding-left: 3rem;\\n margin-top: 1rem;\\n margin-bottom: 1rem;\\n border-top: 1px solid #e9e9e9;\\n}\\n\\n.child-row {\\n border-bottom: unset !important;\\n}\\n\\n.disable {\\n pointer-events: none !important;\\n color: grey !important;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n Go to page\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n Per page\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n ...\\r\\n {{page}}\\r\\n ...\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./pagination.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".pagination-wrapper {\\n display: flex;\\n flex-direction: row;\\n padding-bottom: 20px;\\n justify-content: space-between;\\n}\\n\\n.options {\\n display: flex;\\n justify-content: flex-start;\\n align-items: center;\\n}\\n\\n.options div {\\n padding-right: 2rem;\\n}\\n\\n.options div span {\\n padding-right: 0.5rem;\\n}\\n\\n.options div select {\\n padding: 0.2rem 1rem;\\n border-radius: 1rem;\\n}\\n\\n.navigation {\\n display: flex;\\n justify-content: space-evenly;\\n}\\n\\n.navigation div {\\n display: inherit;\\n align-items: center;\\n}\\n\\n.navigation div span,\\n.navigation div img {\\n padding: 1rem;\\n color: #3A5CE9;\\n cursor: pointer;\\n}\\n\\n.navigation .active {\\n background-color: #3A5CE9;\\n color: white !important;\\n border-radius: 35px;\\n height: 0px;\\n width: 0px;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n}\\n\\n.navigation span:hover {\\n font-weight: 700;\\n}\\n\\n.disabled {\\n filter: invert(83%) sepia(4%) saturate(26%) hue-rotate(340deg) brightness(99%) contrast(84%);\\n pointer-events: none;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n {{text}}\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./spinner.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".spinner-wrapper {\\n color: #2998E3;\\n text-align: center;\\n padding: 50px;\\n}\\n\\n.loading-text {\\n position: relative;\\n bottom: 6px;\\n left: 15px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n
0\\\">\\r\\n

{{label}}:

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n From\\r\\n \\r\\n
\\r\\n
\\r\\n To\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n {{isInvalidDateRange()}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./timeframe-filter.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n:host {\\n position: relative;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.timeFrameButton-active {\\n background-color: #2998E3;\\n background: var(--cerulean) 0% 0% no-repeat padding-box;\\n background: #2998E3 0% 0% no-repeat padding-box;\\n border-radius: 2px;\\n opacity: 1;\\n color: white;\\n margin: 2px;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.timeFrameButton-standard {\\n background-color: #E9E9E9;\\n background: var(---e9e9e9) 0% 0% no-repeat padding-box;\\n background: #E9E9E9 0% 0% no-repeat padding-box;\\n border-radius: 2px;\\n opacity: 1;\\n color: black;\\n margin: 2px;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.drop-show {\\n padding: 4px;\\n right: 70px;\\n top: 65px;\\n width: fit-content;\\n background-color: #FFF;\\n border: 1px solid #BABABA;\\n position: absolute;\\n z-index: 100;\\n box-shadow: 0 6px 10px rgba(0, 0, 0, 0.15);\\n margin-left: 1px;\\n}\\n\\n.filter-name {\\n text-align: left;\\n width: 170px;\\n color: #231F20;\\n font-weight: 800;\\n font-size: 14px;\\n margin-bottom: unset;\\n}\\n\\n.timeframe-wrapper {\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 1px solid #3A5CE9;\\n border-radius: 2px;\\n width: auto;\\n display: inline-flex;\\n height: auto;\\n}\\n\\n.apply-button {\\n height: 25px;\\n position: absolute;\\n right: 12px;\\n bottom: 5px;\\n cursor: pointer;\\n border: 1px solid #3A5CE9;\\n border-radius: 10px;\\n font-family: \\\"Source Sans Pro\\\";\\n background-color: #FFFFFF;\\n color: #3A5CE9;\\n}\\n\\n.apply-button:hover {\\n background-color: #3A5CE9;\\n color: #FFFFFF;\\n}\\n\\n.date-range-container {\\n display: inline-flex;\\n height: 90px;\\n}\\n\\n.date-range-container .preposition-label {\\n padding: 0 3px;\\n}\\n\\n.from-date {\\n width: 150px;\\n padding-right: 10px;\\n}\\n\\n.to-date {\\n width: 150px;\\n}\\n\\n.mdl-popover.is-visible {\\n position: relative;\\n background: #FAFBFE 0% 0% no-repeat padding-box;\\n top: 10px;\\n}\\n\\n.error {\\n position: absolute;\\n top: 60px;\\n color: red;\\n white-space: pre-wrap;\\n}\\n\\nmy-date-picker ::after ng-deep .mydpicon icon-mydpcalendar {\\n color: #3A5CE9;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
{{data?.title}}
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n {{displayItem?.name}}\\r\\n close\\r\\n
\\r\\n\\r\\n
1\\\" [mdl-tooltip]=\\\"moreTooltip\\\"\\r\\n mdl-tooltip-position=\\\"top\\\">\\r\\n + {{selectedItems.length - 1 }} more...\\r\\n
\\r\\n\\r\\n
\\r\\n close\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n {{errorMsg}}\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n No item found...\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../../node_modules/css-loader/index.js!../../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./select.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".select-wrapper {\\n margin-right: 10px;\\n position: relative;\\n}\\n\\n.title {\\n padding: 5px 2px;\\n}\\n\\n.select-box {\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 1px solid #C6D0F9;\\n border-radius: 10px;\\n height: 33px;\\n display: flex;\\n min-width: 200px;\\n position: relative;\\n justify-content: space-between;\\n align-items: center;\\n}\\n\\n.select-box.error {\\n border-color: red;\\n}\\n\\n.error-msg {\\n color: red;\\n}\\n\\n.selected-item {\\n background: #2998E3 0% 0% no-repeat padding-box;\\n border-radius: 10px;\\n height: 27px;\\n margin: 5px;\\n padding: 0 10px;\\n}\\n\\n.selected-item .selected-item-text {\\n font: normal normal 400 12px/9px Source Sans Pro;\\n color: #FFFFFF;\\n display: inline-flex;\\n height: 26px;\\n align-items: center;\\n}\\n\\n.selected-item .selected-item-close {\\n font-size: 10px;\\n font-weight: bold;\\n color: white;\\n right: -5px;\\n position: relative;\\n cursor: pointer;\\n}\\n\\n.more-selected-item {\\n cursor: help;\\n pointer-events: auto;\\n margin: 0 10px;\\n}\\n\\n.action-buttons {\\n display: flex;\\n margin: 0 5px;\\n}\\n\\n.action-buttons .clear-selected {\\n font-size: 10px;\\n font-weight: bold;\\n color: red;\\n cursor: pointer;\\n}\\n\\n.action-buttons .dropdown-icon {\\n margin-left: 8px;\\n cursor: pointer;\\n}\\n\\n.action-buttons .disabled {\\n color: #a5a5a5 !important;\\n}\\n\\n.all {\\n background-color: #C6D0F9 !important;\\n pointer-events: none;\\n}\\n\\n.all .selected-item-text {\\n color: #231F20;\\n font-weight: 600;\\n}\\n\\n.select-menu {\\n display: none;\\n}\\n\\n.select-menu .search-box {\\n height: 20px;\\n border: none;\\n outline: none;\\n border-radius: 3px 3px 0 0;\\n border-bottom: 3px solid #6e82d8;\\n}\\n\\n.is-active {\\n background: #f1f3fe;\\n border-radius: 3px;\\n display: flex;\\n position: absolute;\\n padding: 10px;\\n margin-top: 3px;\\n justify-content: flex-start;\\n flex-direction: column;\\n max-height: 250px;\\n overflow-y: auto;\\n border: 1px solid #aebdff;\\n width: max-content;\\n left: 0;\\n z-index: 1;\\n}\\n\\n.select-items {\\n padding: 3px;\\n display: flex;\\n align-items: center;\\n font-size: 15px;\\n}\\n\\n.select-items input {\\n width: 18px;\\n height: 18px;\\n}\\n\\n.select-items label {\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n height: 18px;\\n}\\n\\n.select-items:hover {\\n background-color: #6e82d8;\\n border-radius: 3px;\\n}\\n\\n.select-items:hover label {\\n color: white;\\n}\\n\\n.disabled {\\n pointer-events: none;\\n color: rgb(165, 165, 165);\\n}\\n\\n.has-items {\\n border: 1px solid #3A5CE9;\\n}\\n\\n.more-tooltip {\\n margin: 1rem;\\n background: #dee3fb !important;\\n color: #000000 !important;\\n border: 1px solid #F1F3FE;\\n border-radius: 5px;\\n display: flex;\\n align-items: center;\\n justify-content: space-around;\\n}\\n\\n::-webkit-scrollbar {\\n width: 5px;\\n height: 14px;\\n}\\n\\n::-webkit-scrollbar-track {\\n background: #ffffff;\\n}\\n\\n::-webkit-scrollbar-thumb {\\n background: #C6D0F9;\\n}\\n\\n/* Handle on hover */\\n\\n::-webkit-scrollbar-thumb:hover {\\n background: #3A5CE9;\\n}\\n\\nmdl-progress ::ng-deep {\\n height: 1px;\\n width: 92%;\\n left: 7px;\\n top: -1px;\\n}\\n\\nmdl-progress ::ng-deep div {\\n background-color: #3A5CE9 !important;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n \\r\\n clear\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./search-bar.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.search-container {\\n width: 267px;\\n height: 35px;\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 1px solid #3A5CE9;\\n border-radius: 50px;\\n opacity: 1;\\n padding: 1px;\\n}\\n\\n.search-container .search-icon {\\n filter: invert(3%) sepia(10%) saturate(1000000%) hue-rotate(235deg) brightness(100%) contrast(100%);\\n color: #3A5CE9;\\n margin: 5px;\\n}\\n\\n.search-container:hover {\\n border: 2px solid #3A5CE9;\\n padding: 0px;\\n}\\n\\nmdl-textfield ::ng-deep {\\n width: 220px !important;\\n}\\n\\nmdl-textfield ::ng-deep .mdl-textfield__input {\\n border-bottom: none !important;\\n width: 200px !important;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n

{{data?.title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./delete-modal.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.study-info {\\n display: inline-flex;\\n width: 100%;\\n}\\n\\n:host {\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.wrapper {\\n background-color: #FAFBFE;\\n font-family: \\\"Source Sans Pro\\\";\\n border-radius: 50px;\\n}\\n\\n.dialog-title {\\n width: auto;\\n height: 41px;\\n background-color: #2998E3;\\n background: #2998E3 0% 0% no-repeat padding-box;\\n border-radius: 3px 3px 0px 0px;\\n opacity: 1;\\n text-align: center;\\n color: white;\\n display: flex;\\n}\\n\\n.dialog-title .mdl-dialog__title {\\n font-size: 18px;\\n padding: 10px;\\n text-align: center;\\n width: 100%;\\n font-weight: bold;\\n}\\n\\n.dialog-title .mdl-button {\\n top: 5px;\\n}\\n\\n.confirm {\\n font-size: 18px !important;\\n text-align: center;\\n color: black;\\n position: relative;\\n text-align: center;\\n top: 20px;\\n}\\n\\n.mdl-dialog__actions {\\n justify-content: center;\\n padding-top: 40px;\\n padding-bottom: 20px;\\n}\\n\\n.mdl-dialog__actions .delete-action {\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 2px solid #DC1439;\\n border-radius: 20px;\\n opacity: 1;\\n font-family: inherit;\\n font-size: 15px;\\n width: 150px;\\n justify-content: center;\\n color: #DC1439;\\n cursor: pointer;\\n background-color: white;\\n}\\n\\n.mdl-dialog__actions .delete-action:hover {\\n border-radius: 20px;\\n opacity: 1;\\n cursor: pointer;\\n background-color: #DC1439;\\n color: white;\\n}\\n\\n.mdl-dialog__actions .close-action {\\n background: #3A5CE9 0% 0% no-repeat padding-box;\\n border-radius: 20px;\\n opacity: 1;\\n width: 150px;\\n justify-content: center;\\n font-family: inherit;\\n font-size: 15px;\\n color: white;\\n cursor: pointer;\\n background-color: #3A5CE9;\\n}\\n\\n.mdl-dialog__actions .close-action:hover {\\n background-color: #1A2188;\\n}\\n\\n.mdl-dialog__actions button {\\n display: flex;\\n align-items: center;\\n}\\n\\n.reverse-buttons {\\n flex-direction: row;\\n}\\n\\n.reverse-buttons .delete-action {\\n color: white !important;\\n border: unset !important;\\n font-weight: bold;\\n background: #3A5CE9 !important;\\n width: 100px;\\n}\\n\\n.reverse-buttons .delete-action:hover {\\n background: #1A2188 !important;\\n}\\n\\n.reverse-buttons .close-action {\\n color: #3A5CE9 !important;\\n background: #FAFBFE !important;\\n width: 100px;\\n right: 15px;\\n}\\n\\n.reverse-buttons .close-action:hover {\\n color: #1A2188 !important;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
{{header}}
\\r\\n
\\r\\n
\\r\\n
All Available Columns ({{availableColumns?.length}})
\\r\\n
Select the columns you'd like to see and click Add or drag to the right.
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n {{availableColumn.displayName}}\\r\\n
\\r\\n \\r\\n Drop here / Select and Click Remove\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Add\\r\\n to {{subheaderText}}\\r\\n \\r\\n Remove\\r\\n from {{subheaderText}}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
Columns in {{subheaderText}} ({{selectedColumns?.length}})\\r\\n
\\r\\n \\r\\n Reset\\r\\n
\\r\\n
\\r\\n
Drag and drop to arrange columns. Select and drag or click to remove.
\\r\\n
\\r\\n
\\r\\n \\r\\n {{selectedColumn.displayName}}\\r\\n \\r\\n
\\r\\n \\r\\n Drop here / Select and Click Add\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./column-settings.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","var escape = require(\"../../../../../../node_modules/css-loader/lib/url/escape.js\");\nexports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.settings-header {\\n color: white;\\n background-color: #2998E3;\\n display: flex;\\n justify-content: center;\\n}\\n\\n:host {\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.heading {\\n font: normal normal bold 16px/28px \\\"Source Sans Pro\\\";\\n}\\n\\n.inner-heading {\\n padding-top: 2vh;\\n display: inline-flex;\\n justify-content: space-between;\\n}\\n\\n.sub-heading {\\n font: normal normal normal 12px/12px \\\"Source Sans Pro\\\";\\n padding: 10px 0;\\n padding-bottom: 3vh;\\n}\\n\\n.add-remove {\\n padding: unset !important;\\n}\\n\\n.settings-container {\\n display: flex;\\n justify-content: space-around;\\n}\\n\\n.settings-container .columns {\\n display: inherit;\\n flex-direction: column;\\n padding: 0 3vh;\\n}\\n\\n.settings-container .columns .columns-outline {\\n border: 1px solid lightgrey;\\n display: inherit;\\n flex-direction: column;\\n height: 50vh;\\n padding: 2px;\\n border-radius: 5px;\\n max-height: 80vh;\\n overflow-y: scroll;\\n}\\n\\n.settings-container .columns .column {\\n margin: 2px;\\n border-radius: 3px;\\n cursor: grab;\\n display: inherit;\\n align-items: center;\\n padding: 2px;\\n padding-left: 1vh;\\n cursor: grab;\\n font-size: 14px;\\n}\\n\\n.settings-container .columns .column .dot-img {\\n padding-right: 1.5vh;\\n bottom: 2.5px;\\n position: relative;\\n}\\n\\n.settings-container .columns .column .lock-img {\\n padding-left: 0.7vh;\\n bottom: 1px;\\n position: relative;\\n}\\n\\n.settings-container .columns .column:hover {\\n background-color: #E9E9E9;\\n}\\n\\n.settings-container .columns .column:active {\\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);\\n cursor: grabbing;\\n}\\n\\n.settings-container .columns .placeholder-column {\\n margin: 1px;\\n background-color: rgba(229, 229, 229, 0.7215686275);\\n display: inherit;\\n align-items: center;\\n justify-content: center;\\n height: 59.8vh;\\n}\\n\\n.settings-container .column-actions {\\n display: inherit;\\n flex-direction: column;\\n justify-content: space-evenly;\\n align-items: center;\\n margin-top: 5vh;\\n}\\n\\n.settings-container .column-actions .add,\\n.settings-container .column-actions .remove {\\n display: inherit;\\n flex-direction: column;\\n align-items: center;\\n margin-top: 5vh;\\n}\\n\\n.settings-container .column-actions .add .heading,\\n.settings-container .column-actions .remove .heading {\\n font-size: 20px !important;\\n}\\n\\n.settings-container .column-actions .add .sub-heading,\\n.settings-container .column-actions .remove .sub-heading {\\n font-size: 13px !important;\\n padding-top: 5px !important;\\n}\\n\\n.settings-container .column-actions .add button,\\n.settings-container .column-actions .remove button {\\n margin-top: 15px;\\n padding: 5px;\\n border: 1px solid #3A5CE9;\\n border-radius: 20px;\\n cursor: pointer;\\n background: transparent;\\n margin-bottom: 6vh;\\n}\\n\\n.settings-container .column-actions .add button:hover,\\n.settings-container .column-actions .remove button:hover {\\n background-color: #3A5CE9;\\n}\\n\\n.settings-container .column-actions .add button:hover img,\\n.settings-container .column-actions .remove button:hover img {\\n filter: brightness(0) invert(1);\\n}\\n\\n.settings-container .settings-action {\\n display: inherit;\\n padding: 10px;\\n justify-content: center;\\n}\\n\\n.settings-action {\\n display: flex;\\n padding: 20px;\\n justify-content: center;\\n}\\n\\n.settings-action button {\\n border: none;\\n background-color: transparent;\\n width: 70px;\\n height: 35px;\\n border-radius: 22px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n cursor: pointer;\\n}\\n\\n.settings-action .cancel {\\n color: #3A5CE9;\\n margin-right: 15px;\\n}\\n\\n.settings-action .apply {\\n color: white;\\n background-color: #3A5CE9;\\n font-weight: bold;\\n margin-left: 15px;\\n}\\n\\n.settings-action .apply:hover {\\n background-color: #1A2188;\\n}\\n\\n.disable-drag-action {\\n pointer-events: none;\\n}\\n\\n.selected {\\n background-color: rgba(41, 152, 227, 0.7607843137) !important;\\n color: white !important;\\n}\\n\\n::-webkit-scrollbar {\\n width: 5px;\\n height: 14px;\\n}\\n\\n::-webkit-scrollbar-track {\\n background: #ffffff;\\n}\\n\\n::-webkit-scrollbar-thumb {\\n background: #C6D0F9;\\n}\\n\\n::-webkit-scrollbar-thumb:hover {\\n background: #3A5CE9;\\n}\\n\\n.on-drag-start {\\n opacity: 1 !important;\\n background-color: #E9E9E9;\\n border: 1px solid #d9d9d9;\\n border-radius: 3px;\\n cursor: grabbing !important;\\n padding: 4px;\\n font-weight: bold;\\n padding-right: 60px;\\n}\\n\\n.on-drag-start:before {\\n content: url(\" + escape(require(\"./../../../../../../images/sample_tracking/6_dot.svg\")) + \");\\n padding-right: 0.5vh;\\n}\\n\\n.on-drag-over {\\n cursor: grab;\\n border-radius: 3px;\\n border: 2px dotted #d9d9d9;\\n}\\n\\n.columns-outline.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder) {\\n transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);\\n}\\n\\n.cdk-drag {\\n transition: transform 150ms ease;\\n}\\n\\n.cdk-drag-animating {\\n transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);\\n}\\n\\n.cdk-drag-placeholder {\\n background: #E8E8E8 !important;\\n border: 1px dashed #707070 !important;\\n border-radius: 3px;\\n font-size: 0 !important;\\n transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);\\n}\\n\\n.cdk-drag-placeholder img {\\n display: none !important;\\n}\\n\\n.cdk-drag-preview {\\n background-color: #E9E9E9 !important;\\n border: 1px solid #d9d9d9 !important;\\n box-sizing: border-box;\\n border-radius: 4px;\\n margin: 2px;\\n padding: 3px;\\n padding-top: 2px;\\n padding-left: 6px;\\n padding-bottom: 9px;\\n cursor: grabbing;\\n align-items: center;\\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);\\n z-index: 999999 !important;\\n color: black !important;\\n font-family: \\\"Source Sans Pro\\\";\\n font-size: 14px;\\n}\\n\\n.cdk-drag-preview .dot-img {\\n padding-right: 1vh;\\n bottom: 3.7px;\\n position: relative;\\n}\\n\\n.cdk-drag-preview .lock-img {\\n padding-left: 0.4vh;\\n bottom: 1.7px;\\n position: relative;\\n}\\n\\n.selected {\\n background-color: #E9E9E9;\\n border: 1px solid #d9d9d9;\\n}\\n\\n.reset-button {\\n color: #3A5CE9;\\n font-size: 14px;\\n cursor: pointer;\\n}\\n\\n.reset-button img {\\n padding-right: 0.5vh;\\n bottom: 2px;\\n position: relative;\\n font-size: 16px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"build/fonts/6_dot.svg\";","module.exports = \"
\\r\\n
\\r\\n \\r\\n {{label}}\\r\\n \\r\\n *\\r\\n {{fieldInstruction}}\\r\\n \\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
\\r\\n {{checkedList[0].value}}\\r\\n
\\r\\n close\\r\\n
\\r\\n
\\r\\n 1\\\">\\r\\n
\\r\\n ...{{checkedList.length - 1}} more\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n All\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n close\\r\\n
\\r\\n\\r\\n
\\r\\n keyboard_arrow_down\\r\\n
\\r\\n
\\r\\n
\\r\\n 5\\\" type=\\\"text\\\" class=\\\"search-box\\\" placeholder=\\\"search...\\\" (keyup)=\\\"onSearchBoxChange($event.target.value)\\\">\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n No item found...\\r\\n \\r\\n
\\r\\n
\\r\\n {{errorMsgIcon}}{{errorMsg}}\\r\\n
\\r\\n
\\r\\n {{errorMsgIcon}}{{customErrorMsg}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n {{toolTip}}\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./notification-form-field.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.form-section {\\n display: grid;\\n width: 100%;\\n padding-top: 2rem;\\n align-items: center;\\n padding-bottom: 1.2rem;\\n}\\n\\n.form-section .hide {\\n opacity: 0;\\n}\\n\\n.form-section .field-name {\\n display: flex;\\n align-items: center;\\n font-weight: bold;\\n font-size: 14px;\\n color: #000000;\\n padding-bottom: 10px;\\n}\\n\\n.form-section .form-field-container {\\n border: 1px solid #3A5CE9;\\n border-radius: 10px;\\n height: 39px;\\n font-family: \\\"Source Sans Pro\\\";\\n display: flex;\\n justify-content: center;\\n position: relative;\\n width: 320px;\\n}\\n\\n.form-section .form-field-container .group-name-textfield {\\n position: relative;\\n left: 15px;\\n width: 90%;\\n}\\n\\n.form-section .focus {\\n border: 1px solid #3A5CE9;\\n box-shadow: 0 0 5px 1px #08F;\\n}\\n\\n.form-section .form-field-container:hover {\\n box-shadow: 0 0 5px 1px #08F;\\n border: 1px solid #3A5CE9;\\n}\\n\\n.form-section .mdl-textfield__input {\\n border: unset !important;\\n outline: unset !important;\\n font-family: \\\"Source Sans Pro\\\";\\n display: flex;\\n padding-left: 6px;\\n font-size: 15px;\\n position: relative;\\n}\\n\\n.form-section .mdl-textfield__label {\\n color: #B3B2B3 !important;\\n outline: unset !important;\\n font-family: \\\"Source Sans Pro\\\";\\n background: unset !important;\\n bottom: 9px;\\n display: flex;\\n justify-content: center;\\n text-align: center;\\n top: unset;\\n}\\n\\n.disable-field {\\n pointer-events: none !important;\\n}\\n\\n.disabled {\\n pointer-events: none !important;\\n background-color: #eaeaea !important;\\n}\\n\\n.disabled .form-close-button,\\n.disabled .drop-down-button {\\n display: none;\\n}\\n\\n.view-only {\\n pointer-events: none;\\n}\\n\\n.view-only .form-close-button,\\n.view-only .drop-down-button {\\n display: none;\\n}\\n\\n.view-only .input-container {\\n color: #696969 !important;\\n pointer-events: none;\\n}\\n\\n.view-only .mdl-textfield__input {\\n font-style: italic;\\n}\\n\\n.view-only .multiselect .drop-down-button {\\n display: flex !important;\\n pointer-events: auto !important;\\n}\\n\\n.view-only .multiselect .input-container {\\n background-color: white !important;\\n}\\n\\n.view-only .multiselect .mdl-textfield__input {\\n font-style: normal !important;\\n}\\n\\n.view-only .multiselect .selected-item-list .selected-item {\\n background: #eaeaea !important;\\n}\\n\\n.view-only .multiselect .selected-item-list .selected-item-text {\\n color: black !important;\\n}\\n\\n.view-only .multiselect .selected-item-list .close-button {\\n display: none !important;\\n}\\n\\n.view-only .multiselect .more-button {\\n color: black !important;\\n pointer-events: auto !important;\\n}\\n\\n.view-only .multiselect .search-box,\\n.view-only .multiselect .select-all {\\n pointer-events: none;\\n}\\n\\n.view-only .multiselect .hide-element {\\n color: black !important;\\n}\\n\\n.view-only .multiselect .active-list {\\n pointer-events: auto !important;\\n}\\n\\n.value-entered .form-field-container {\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 1px solid #3A5CE9;\\n}\\n\\n.input-container {\\n display: flex;\\n width: 100%;\\n position: relative;\\n border-radius: 10px;\\n}\\n\\n.error .form-field-container {\\n border: 1px solid #F7758C;\\n outline: 1px solid #F7758C;\\n box-shadow: 0 0 5px 1px #F7758C;\\n display: block;\\n}\\n\\n.error .form-field-container:hover {\\n box-shadow: 0px 3px 6px #F7758C;\\n border: 1px solid #F7758C;\\n}\\n\\n.error .input-container {\\n top: 5px;\\n}\\n\\n.error .mdl-textfield__label {\\n bottom: unset !important;\\n top: 5px;\\n}\\n\\n.error .is-date .mdl-textfield__label {\\n bottom: 10px !important;\\n top: unset !important;\\n}\\n\\n.error-msg {\\n top: 16px;\\n position: relative;\\n display: flex;\\n width: 400px;\\n height: auto;\\n color: #F7758C;\\n font-size: 14px;\\n}\\n\\n.drop-down-button {\\n float: right;\\n align-items: center;\\n display: flex;\\n cursor: pointer;\\n margin-right: 5px;\\n}\\n\\n.drop-down-button .material-icons {\\n font-size: 18px;\\n color: #3A5CE9;\\n}\\n\\n.drop-show {\\n display: none;\\n}\\n\\n.active-list {\\n background: #f1f3fe;\\n border-radius: 3px;\\n display: flex !important;\\n position: absolute;\\n padding: 5px;\\n justify-content: flex-start;\\n flex-direction: column;\\n max-height: 250px;\\n overflow-y: auto;\\n border: 1px solid #3A5CE9;\\n width: 95%;\\n left: 0;\\n z-index: 1;\\n top: 40px;\\n}\\n\\n.select-items {\\n padding: 5px;\\n display: flex;\\n align-items: center;\\n padding-left: 5px;\\n font-size: 15px;\\n}\\n\\n.select-items input {\\n width: 18px;\\n height: 18px;\\n}\\n\\n.select-items label {\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n height: auto;\\n width: 100%;\\n}\\n\\n.hide-element {\\n pointer-events: none;\\n color: darkgray !important;\\n font-weight: normal !important;\\n}\\n\\n.is-checked,\\n.is-checked.hover {\\n font-weight: bold;\\n}\\n\\n.select-items:hover {\\n background-color: #6e82d8;\\n border-radius: 3px;\\n}\\n\\n.select-items:hover label {\\n color: white;\\n}\\n\\n::-webkit-scrollbar {\\n width: 5px;\\n height: 14px;\\n border-radius: 100px;\\n}\\n\\n::-webkit-scrollbar-track {\\n background: #ffffff;\\n border-radius: 20px;\\n}\\n\\n::-webkit-scrollbar-thumb {\\n background: #C6D0F9;\\n border-radius: 20px;\\n}\\n\\n/* Handle on hover */\\n\\n::-webkit-scrollbar-thumb:hover {\\n background: #3A5CE9;\\n}\\n\\napp-spinner ::ng-deep .mdl-spinner {\\n width: 15px;\\n height: 15px;\\n}\\n\\napp-spinner ::ng-deep .spinner-wrapper {\\n padding: 0px !important;\\n right: 8px;\\n position: relative;\\n top: 12px;\\n display: flex;\\n}\\n\\nmy-date-picker ::after ng-deep .mydpicon icon-mydpcalendar {\\n color: #3A5CE9;\\n}\\n\\nmy-date-picker ::ng-deep {\\n /*\\n .mydp .mydpicon {\\n color: #3A5CE9;\\n font-size: 18px;\\n }*/\\n}\\n\\nmy-date-picker ::ng-deep .selbtngroup {\\n height: 38px !important;\\n right: 3px;\\n}\\n\\nmy-date-picker ::ng-deep .selectiongroup input {\\n display: flex;\\n justify-content: center;\\n text-align: center;\\n align-content: center;\\n height: 25px !important;\\n padding: 5px;\\n background: #F3F5FE;\\n border-radius: 10px;\\n font: \\\"Source Sans Pro\\\";\\n left: 2px;\\n top: 2px;\\n width: 85%;\\n}\\n\\nmy-date-picker ::ng-deep .mydp {\\n border: none !important;\\n top: 1px;\\n}\\n\\nmy-date-picker ::ng-deep .mydp .invaliddate {\\n background-color: #F1DEDE !important;\\n}\\n\\nmy-date-picker ::ng-deep .mydp .selectiongroup {\\n border: none !important;\\n background-color: #f3f5fe;\\n border-radius: 24px;\\n}\\n\\nmy-date-picker ::ng-deep .mydp .selectorarrow {\\n width: 200px !important;\\n height: 200px !important;\\n}\\n\\n.date-error .input-container {\\n top: -4px;\\n}\\n\\n.date-error .input-container my-date-picker {\\n top: 4px;\\n position: inherit;\\n}\\n\\n.required {\\n color: #F7758C;\\n font-size: 18px !important;\\n padding-left: 6px;\\n font-weight: bold;\\n}\\n\\n.field-instruction {\\n font-weight: 100;\\n}\\n\\n.search-box {\\n height: 20px;\\n outline: none;\\n display: flex;\\n margin: 5px;\\n margin-bottom: unset;\\n text-align: center;\\n justify-content: center;\\n border-radius: 3px;\\n border: 2px solid #6e82d8;\\n}\\n\\n.is-date {\\n width: 200px !important;\\n}\\n\\n.is-date .error-msg {\\n top: 0px !important;\\n}\\n\\n.is-number {\\n width: 200px !important;\\n}\\n\\n.selected-item-list {\\n width: 100%;\\n display: inline-flex;\\n}\\n\\n.selected-item-list .selected-item {\\n display: inline-flex;\\n background: #2998E3;\\n height: max-content;\\n margin: 5px;\\n padding-right: 3px;\\n border-radius: 10px;\\n align-items: center;\\n}\\n\\n.selected-item-list .selected-item-text {\\n width: max-content;\\n font-size: 15px;\\n font-family: \\\"Source Sans Pro\\\";\\n display: inline-flex;\\n color: white;\\n padding: 5px;\\n}\\n\\n.selected-item-list .close-button {\\n color: white;\\n bottom: 8px;\\n left: 7px;\\n bottom: 2px;\\n cursor: pointer;\\n font-size: 30px;\\n padding-bottom: 10px;\\n}\\n\\n.selected-item-list .close-button .material-icons {\\n font-size: 10px;\\n font-weight: bold;\\n}\\n\\n.all {\\n background: #C6D0F9 !important;\\n}\\n\\n.all .selected-item-text {\\n font-size: 15px;\\n color: black !important;\\n width: 30px;\\n justify-content: center;\\n}\\n\\n.form-close-button {\\n align-items: center;\\n cursor: pointer;\\n display: flex;\\n width: 20px;\\n}\\n\\n.form-close-button .material-icons {\\n font-size: 13px;\\n font-weight: bold;\\n color: #3A5CE9;\\n}\\n\\n.more-button {\\n color: #3A5CE9;\\n font-size: 13px;\\n margin-right: 7px;\\n cursor: pointer;\\n font-weight: 700;\\n height: fit-content;\\n position: relative;\\n bottom: -15px;\\n}\\n\\n.protocol-tooltip {\\n margin: 1rem -14rem !important;\\n width: 14rem;\\n background: #F1F3FE !important;\\n color: #000000 !important;\\n}\\n\\n.select-all {\\n border-bottom: 3px solid #3a5ce9;\\n margin: 10px 0;\\n padding-bottom: 10px;\\n border-radius: 0 !important;\\n padding-left: 5px;\\n font-size: 15px;\\n}\\n\\n.select-all input {\\n width: 18px;\\n height: 18px;\\n}\\n\\n.select-all label {\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n height: 18px;\\n width: 100%;\\n}\\n\\n.radio-type {\\n display: flex;\\n align-items: center;\\n}\\n\\n.radio-type label input {\\n display: none;\\n}\\n\\n.radio-type label span {\\n display: flex;\\n cursor: pointer;\\n align-items: center;\\n padding-right: 5rem;\\n font: normal normal 600 14px/14px \\\"Source Sans Pro\\\";\\n}\\n\\n.radio-type label input:checked + span:before {\\n box-shadow: inset 0 0 0 0.25em #3A5CE9;\\n}\\n\\n.radio-type label span:before {\\n display: flex;\\n flex-shrink: 0;\\n content: \\\"\\\";\\n background-color: #fff;\\n width: 1em;\\n height: 1em;\\n border-radius: 50%;\\n margin-right: 0.5em;\\n transition: 0.25s ease;\\n box-shadow: inset 0 0 0 0.125em #c9c9c9;\\n}\\n\\n.text-area {\\n display: flex;\\n}\\n\\n.text-area textarea {\\n width: 90%;\\n height: 100px;\\n margin-top: 20px;\\n border-radius: 10px;\\n padding: 7px;\\n border: 1px solid #3A5CE9;\\n}\\n\\n.text-area textarea:hover {\\n border: 1px solid #3A5CE9;\\n box-shadow: 0 0 5px 1px #08F;\\n outline: none !important;\\n}\\n\\n.text-area textarea:focus {\\n border: 1px solid #3A5CE9;\\n box-shadow: 0 0 5px 1px #08F;\\n outline: none !important;\\n}\\n\\n.text-area .error {\\n border: 1px solid #F7758C;\\n outline: 1px solid #F7758C;\\n box-shadow: 0 0 5px 1px #F7758C;\\n}\\n\\n.text-area .error::placeholder {\\n color: #F7758C;\\n opacity: 1;\\n}\\n\\n.text-area .error::-ms-input-placeholder {\\n color: #F7758C;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
0\\\">\\r\\n \\r\\n \\r\\n
\\r\\n {{rootLink.icon}}\\r\\n {{rootLink.text}}\\r\\n {{rootLink.badgeText | async}}\\r\\n
\\r\\n
\\r\\n \\r\\n {{rootLink.text}}\\r\\n {{rootLink.badgeText | async}}\\r\\n
\\r\\n \\r\\n {{rootLink.badgeToolTip}}\\r\\n \\r\\n \\r\\n {{rootLink.text}}\\r\\n \\r\\n
\\r\\n
0\\\" (click)=\\\"expandChildNav = !expandChildNav\\\" class=\\\"expand-child\\\" [class.]>\\r\\n {{ !expandChildNav ? 'keyboard_arrow_down' : 'keyboard_arrow_up'}}\\r\\n
\\r\\n
0\\\" class=\\\"nav-second-level-menu\\\" [class.hide-menu]=\\\"!expandChildNav\\\">\\r\\n \\r\\n \\r\\n {{childLink.text}}\\r\\n \\r\\n {{childLink.badgeText | async}}\\r\\n \\r\\n {{childLink.text}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./navigation-service.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.mdl-navigation__link.top-level-link {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n flex-wrap: nowrap;\\n white-space: nowrap;\\n}\\n\\n.mdl-navigation__link.top-level-link .icon-img {\\n filter: grayscale(1);\\n}\\n\\n.mdl-navigation__link--current .icon-img {\\n filter: grayscale(0) !important;\\n}\\n\\n.mdl-navigation__link.second-level-link {\\n padding-top: 1px;\\n padding-bottom: 1px;\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n flex-wrap: nowrap;\\n white-space: nowrap;\\n}\\n\\n.mdl-navigation__link.second-level-link .icon-img {\\n filter: grayscale(100%);\\n}\\n\\n.nav-second-level-menu {\\n padding-left: 20px;\\n opacity: 1;\\n}\\n\\n.hide-menu {\\n opacity: 0 !important;\\n cursor: default;\\n pointer-events: none;\\n}\\n\\n.counter {\\n color: #fff;\\n background-color: #F7758C;\\n font-size: 14px;\\n padding: 0px 5px;\\n /* padding-bottom: 2px;\\n */\\n bottom: 10px;\\n position: relative;\\n font-weight: bold;\\n border-radius: 12px;\\n line-height: 16px;\\n}\\n\\n.mdl-navigation__link mdl-icon.material-icons {\\n margin-right: 10px;\\n}\\n\\n.mdl-tooltip {\\n white-space: nowrap;\\n}\\n\\n.link-tooltip {\\n background: #F1F3FE 0% 0% no-repeat padding-box !important;\\n box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.1607843137) !important;\\n border-radius: 4px !important;\\n color: #3A5CE9 !important;\\n font-size: 12px;\\n font-weight: bold;\\n}\\n\\n.tooltip-disabled {\\n display: none;\\n}\\n\\n.icon-img {\\n padding-right: 15px;\\n}\\n\\n.child-menu {\\n padding-right: 3px !important;\\n}\\n\\n.expand-child {\\n height: 0px;\\n cursor: pointer;\\n}\\n\\n.expand-child .expand-icon {\\n position: relative;\\n top: -35px;\\n left: 120px;\\n padding-left: 90px;\\n}\\n\\n.disabled {\\n pointer-events: none;\\n cursor: default;\\n opacity: 0.5;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n Select Unread\\r\\n Select All\\r\\n Deselect All\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n {{checkBoxLabel}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Unread:{{unreadCount}} of {{totalRecords}}\\r\\n
\\r\\n
\\r\\n Count: {{totalRecords}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{type.title}}\\r\\n \\r\\n
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./ag-export.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.wrapper {\\n display: flex;\\n align-items: center;\\n flex-wrap: wrap;\\n}\\n\\n.wrapper > div {\\n padding: 0 4px 0 4px;\\n}\\n\\n.export {\\n color: #616161;\\n text-transform: capitalize;\\n}\\n\\n#select-icon {\\n font-size: 18px;\\n}\\n\\n.unread-buttons button {\\n margin-left: 4px;\\n}\\n\\n.unread-switch-box {\\n white-space: nowrap;\\n}\\n\\n.total-info {\\n color: rgba(0, 0, 0, 0.54);\\n font-size: 12px;\\n white-space: nowrap;\\n}\\n\\n.total-info .total-label {\\n margin-right: 6px;\\n margin-left: 12px;\\n}\\n\\n.inline-content {\\n flex-grow: 1;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n visibility_off\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./hidden-e-query-ag-renderer.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".wrapper .icon-hidden {\\n margin-left: 20px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n

\\r\\n On Hand Kit Inventory Detail - {{kit.description}}\\r\\n \\r\\n

\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./kit-inventory-detail.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.close-button {\\n position: absolute;\\n right: 25px;\\n padding: 20px;\\n}\\n\\n:host {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n width: 100%;\\n}\\n\\n:host .kit-detail-container {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n overflow-y: auto;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","module.exports = \"{{value}}\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./age-renderer.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".covance-expired-age {\\n color: red;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"{{value}}\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./response-age-renderer.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".covance-expired-age {\\n display: none;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n

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

\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./global-popup.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.global-popup {\\n box-shadow: 0 9px 46px 8px rgba(0, 0, 0, 0.14), 0 11px 15px -7px rgba(0, 0, 0, 0.12), 0 24px 38px 3px rgba(0, 0, 0, 0.2);\\n position: absolute;\\n z-index: 10000;\\n background-color: white;\\n left: 10%;\\n right: 10%;\\n top: 10%;\\n bottom: 10%;\\n}\\n\\n@media (max-width: 550px) and (orientation: portrait), (max-width: 900px) and (orientation: landscape), (max-height: 550px) and (orientation: landscape) {\\n .global-popup {\\n left: 3%;\\n right: 3%;\\n top: 3%;\\n bottom: 3%;\\n }\\n}\\n\\n.global-popup__title {\\n padding: 15px;\\n margin: 0;\\n display: flex;\\n justify-content: space-between;\\n}\\n\\n.global-popup__content {\\n overflow-y: auto;\\n height: calc(100% - 68px);\\n display: flex;\\n flex-direction: column;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .global-popup {\\n min-width: 1200px;\\n }\\n}\\n\\n.global-popup-backdrop {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: rgba(0, 0, 0, 0.1);\\n z-index: 1000;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
{{categoryName}}
\\r\\n \\r\\n {{categoryName}}\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{option.text}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./email-notification-header-ag.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.wrapper {\\n display: flex;\\n width: 100%;\\n justify-content: flex-start;\\n}\\n\\n.category-name {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n}\\n\\n.edit-container {\\n position: relative;\\n}\\n\\nbutton {\\n height: auto;\\n line-height: inherit;\\n padding: 0 5px;\\n margin: 0 10px;\\n min-width: 0;\\n color: #626971;\\n text-transform: none;\\n font-size: 12px;\\n}\\n\\nmdl-icon {\\n color: #626971;\\n font-size: 18px;\\n}\\n\\nmdl-menu-item {\\n display: flex;\\n align-items: center;\\n height: 32px;\\n}\\n\\nmdl-menu-item .menu-item-text {\\n margin-left: 22px;\\n font-size: 13px;\\n color: #626971;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n Email is required\\r\\n Email format is invalid\\r\\n Email with the same name already exists\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./email-address-form-dialog.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\nbutton {\\n height: auto;\\n line-height: inherit;\\n padding: 0 5px;\\n margin: 0 10px;\\n min-width: 0;\\n}\\n\\nbutton mdl-icon {\\n font-size: 16px;\\n}\\n\\n.error {\\n color: #F44336;\\n}\\n\\n\", \"\"]);\n\n// exports\n","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.editor-menu-button {\\n height: auto;\\n margin-top: -3px;\\n line-height: inherit;\\n}\\n\\n.editor-menu-button mdl-icon {\\n color: #757575;\\n}\\n\\n\", \"\"]);\n\n// exports\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\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./email-preferences.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\ncovance-ag-grid ::ng-deep {\\n min-height: 150px;\\n}\\n\\ncovance-ag-grid ::ng-deep .ag-header-cell-center .ag-header-cell-label {\\n text-align: center;\\n}\\n\\ncovance-ag-grid ::ng-deep .ag-theme-material span.ag-selection-checkbox span.ag-icon.ag-icon-checkbox-indeterminate {\\n background-size: 14px 14px;\\n height: 14px;\\n width: 14px;\\n}\\n\\ncovance-ag-grid ::ng-deep .ag-theme-material span.ag-group-expanded,\\ncovance-ag-grid ::ng-deep .ag-theme-material span.ag-group-contracted {\\n vertical-align: middle;\\n}\\n\\ncovance-ag-grid ::ng-deep .ag-theme-material div.ag-row-group.ag-row-even,\\ncovance-ag-grid ::ng-deep .ag-theme-material div.ag-row-group.ag-row-odd {\\n padding-top: 1px;\\n}\\n\\ncovance-ag-grid ::ng-deep .ag-theme-material .ag-row.ag-row-level-0 .ag-cell.selection-checkbox {\\n padding-left: 18px;\\n}\\n\\ncovance-ag-grid ::ng-deep .ag-theme-material .ag-row.ag-row-level-1 .ag-cell.selection-checkbox {\\n padding-left: 21px;\\n}\\n\\ncovance-ag-grid ::ng-deep .ag-theme-material .ag-row.ag-row-level-2 .ag-cell.selection-checkbox {\\n padding-left: 31px;\\n}\\n\\n.mdl-button {\\n font-size: 13px;\\n}\\n\\n.level-select {\\n padding: 0 15px;\\n}\\n\\n.email-preferences {\\n flex-direction: column;\\n display: flex;\\n flex-grow: 1;\\n}\\n\\n.add-email-button,\\n.delete-emails-button {\\n margin: 30px 30px 30px 0;\\n}\\n\\n.email-actions {\\n display: flex;\\n justify-content: space-between;\\n}\\n\\n.buttons {\\n display: flex;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./user-general-preferences-component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".base-settings-container {\\n display: flex;\\n flex-direction: column;\\n padding: 15px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{hour}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{minute}}\\r\\n \\r\\n
\\r\\n schedule\\r\\n
\\r\\n
\\r\\n \\r\\n {{getErrorText()}}\\r\\n \\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./covance-date-picker.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".date-picker-container {\\n display: inline-block;\\n}\\n\\n.width-auto {\\n width: 60px;\\n}\\n\\n.date-picker-paddings {\\n padding: 20px 10px 24px 0;\\n}\\n\\n.time-select {\\n width: 40px;\\n}\\n\\n.time-select mdl-select::ng-deep .is-disabled input {\\n cursor: inherit;\\n}\\n\\n.time-select mdl-select::ng-deep .is-disabled span {\\n cursor: not-allowed;\\n}\\n\\n:host(.ng-invalid) my-date-picker ::ng-deep .selectiongroup {\\n border-bottom-color: #d50000;\\n}\\n\\n:host(.ng-invalid) .mdl-textfield__error {\\n visibility: visible;\\n}\\n\\nmy-date-picker ::ng-deep .mydp {\\n border: none;\\n margin-bottom: -9px;\\n}\\n\\nmy-date-picker ::ng-deep .mydp .btnleftborder {\\n border: none;\\n}\\n\\nmy-date-picker ::ng-deep .mydp .btnclear,\\nmy-date-picker ::ng-deep .mydp .btnclear:focus,\\nmy-date-picker ::ng-deep .mydp .btnpicker:focus,\\nmy-date-picker ::ng-deep .mydp .headertodaybtn:focus,\\nmy-date-picker ::ng-deep .mydp .btnpickerenabled:hover,\\nmy-date-picker ::ng-deep .mydp .btnclearenabled:hover,\\nmy-date-picker ::ng-deep .mydp .headertodaybtnenabled:hover,\\nmy-date-picker ::ng-deep .mydp .tablesingleday:hover {\\n background-color: transparent;\\n}\\n\\nmy-date-picker ::ng-deep .mydp .selectiongroup {\\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\\n background-color: transparent;\\n border-radius: 0;\\n}\\n\\nmy-date-picker ::ng-deep .mydp .selection,\\nmy-date-picker ::ng-deep .mydp .btnpicker {\\n background-color: transparent;\\n}\\n\\nmy-date-picker ::ng-deep .mydp .icon-mydpcalendar,\\nmy-date-picker ::ng-deep .mydp .icon-mydpremove {\\n color: rgb(102, 102, 102);\\n font-size: 14px;\\n}\\n\\nmy-date-picker ::ng-deep .mydp .btnclear,\\nmy-date-picker ::ng-deep .mydp .btnpicker {\\n width: 20px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./filter-name-dialog.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.mdl-dialog__content {\\n min-height: 100px;\\n}\\n\\n.mdl-dialog__title {\\n font-size: 18px;\\n font-weight: 300;\\n color: #949494;\\n padding-top: 0;\\n}\\n\\n.mdl-textfield__error {\\n visibility: visible;\\n margin-top: -15px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n

{{formTitle}}

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{validationError}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","module.exports = \"
\\r\\n\\r\\n
\\r\\n My Filters:\\r\\n\\r\\n \\r\\n None\\r\\n {{getFilterName(filter)}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n New\\r\\n Edit\\r\\n Delete\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n Save changes to the selected filter\\r\\n\\r\\n\\r\\n Discard all recent changes to the selected filter\\r\\n\\r\\n\\r\\n Create, edit or delete filters\\r\\n\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./covance-filter.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.filter-container {\\n display: flex;\\n flex-wrap: wrap;\\n align-items: center;\\n background-color: #fff;\\n padding: 0 4px;\\n}\\n\\n.filter-container .selected-filter {\\n margin: 4px 8px;\\n display: flex;\\n align-items: center;\\n}\\n\\n.filter-container .selected-filter .selected-filter-title {\\n padding-right: 8px;\\n}\\n\\n.filter-container .selected-filter > * {\\n margin-right: 5px;\\n}\\n\\n.filter-container .selected-filter mdl-select {\\n display: flex;\\n align-items: center;\\n}\\n\\n.filter-container .collapse-button {\\n text-transform: none;\\n font-size: 12px;\\n color: #777;\\n}\\n\\n.filter-container .filter-item {\\n display: inline-block;\\n margin: 4px 8px;\\n}\\n\\n.filter-container .filter-item .mdl-option .mdl-list__item {\\n min-height: 32px;\\n padding: 4px 8px;\\n}\\n\\n.filter-container .filter-item .mdl-textfield {\\n padding: 0;\\n}\\n\\n.filter-container .filter-item .mdl-textfield .mdl-textfield__input {\\n margin-bottom: 1px;\\n padding-bottom: 5px;\\n}\\n\\n.filter-container .filter-item .mdl-textfield .mdl-textfield__label:after {\\n bottom: 0;\\n}\\n\\n.filter-container .filter-item .covance-select__popover {\\n margin-top: 0;\\n}\\n\\n.filter-container .filter-item .mdl-select.age-units .mdl-textfield {\\n width: 80px;\\n}\\n\\n.filter-container .filter-item .mdl-select .mdl-textfield {\\n width: 150px;\\n}\\n\\n.filter-container .filter-item .mdl-select .mdl-popover {\\n width: auto !important;\\n min-width: 100%;\\n}\\n\\n.filter-container .filter-item .mdl-select .material-icons {\\n color: #616161;\\n}\\n\\n.filter-container .filter-item .mdl-list {\\n padding: 8px 0px;\\n}\\n\\n.filter-container .filter-title {\\n font-size: 12px;\\n color: #666;\\n font-weight: 500;\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n color: #9E9E9E;\\n padding-right: 3px;\\n}\\n\\n.filter-container .filter-title:after {\\n content: \\\": \\\";\\n}\\n\\n.mdl-select .mdl-textfield__input::placeholder {\\n color: #9E9E9E;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n

Add filter

\\r\\n
\\r\\n
\\r\\n Field\\r\\n \\r\\n {{field.title}}\\r\\n \\r\\n
\\r\\n
\\r\\n Title\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./chain-node-dialog.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".mdl-dialog__title {\\n font-size: 18px;\\n font-weight: 300;\\n color: #949494;\\n padding-top: 0;\\n}\\n\\n.add-filter-label {\\n margin-right: 10px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n play_arrow\\r\\n\\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./covance-chain-filter.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.filter-container {\\n display: flex;\\n flex-wrap: wrap;\\n align-items: center;\\n background-color: #fff;\\n padding: 0 4px;\\n}\\n\\n.filter-container .selected-filter {\\n margin: 4px 8px;\\n display: flex;\\n align-items: center;\\n}\\n\\n.filter-container .selected-filter .selected-filter-title {\\n padding-right: 8px;\\n}\\n\\n.filter-container .selected-filter > * {\\n margin-right: 5px;\\n}\\n\\n.filter-container .selected-filter mdl-select {\\n display: flex;\\n align-items: center;\\n}\\n\\n.filter-container .collapse-button {\\n text-transform: none;\\n font-size: 12px;\\n color: #777;\\n}\\n\\n.filter-container .filter-item {\\n display: inline-block;\\n margin: 4px 8px;\\n}\\n\\n.filter-container .filter-item .mdl-option .mdl-list__item {\\n min-height: 32px;\\n padding: 4px 8px;\\n}\\n\\n.filter-container .filter-item .mdl-textfield {\\n padding: 0;\\n}\\n\\n.filter-container .filter-item .mdl-textfield .mdl-textfield__input {\\n margin-bottom: 1px;\\n padding-bottom: 5px;\\n}\\n\\n.filter-container .filter-item .mdl-textfield .mdl-textfield__label:after {\\n bottom: 0;\\n}\\n\\n.filter-container .filter-item .covance-select__popover {\\n margin-top: 0;\\n}\\n\\n.filter-container .filter-item .mdl-select.age-units .mdl-textfield {\\n width: 80px;\\n}\\n\\n.filter-container .filter-item .mdl-select .mdl-textfield {\\n width: 150px;\\n}\\n\\n.filter-container .filter-item .mdl-select .mdl-popover {\\n width: auto !important;\\n min-width: 100%;\\n}\\n\\n.filter-container .filter-item .mdl-select .material-icons {\\n color: #616161;\\n}\\n\\n.filter-container .filter-item .mdl-list {\\n padding: 8px 0px;\\n}\\n\\n.filter-container .filter-title {\\n font-size: 12px;\\n color: #666;\\n font-weight: 500;\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n color: #9E9E9E;\\n padding-right: 3px;\\n}\\n\\n.filter-container .filter-title:after {\\n content: \\\": \\\";\\n}\\n\\n.mdl-select .mdl-textfield__input::placeholder {\\n color: #9E9E9E;\\n}\\n\\n.covance-chain-filter {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n margin-left: 8px;\\n}\\n\\n.covance-chain-filter__title {\\n text-transform: uppercase;\\n margin-right: 8px;\\n font-size: 12px;\\n color: #666;\\n font-weight: 500;\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n color: #9E9E9E;\\n padding-right: 3px;\\n}\\n\\n.covance-chain-filter__title:after {\\n content: \\\": \\\";\\n}\\n\\n.covance-chain-filter__chain {\\n display: flex;\\n align-items: center;\\n flex-wrap: wrap;\\n min-height: 24px;\\n}\\n\\n.covance-chain-filter__chain .chain-node {\\n display: flex;\\n align-items: center;\\n margin-right: 8px;\\n}\\n\\n.covance-chain-filter .mdl-textfield {\\n padding: 0;\\n}\\n\\n.covance-chain-filter button.chain-button {\\n height: 16px;\\n width: 16px;\\n min-width: unset;\\n min-height: unset;\\n}\\n\\n.covance-chain-filter i.material-icons {\\n font-size: 13px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"{{fieldVal.def.title}}\\r\\n\\r\\n\"","module.exports = \"{{fieldVal.def.title}}\\r\\n\\r\\n\\r\\n\"","module.exports = \"{{fieldVal.def.title}}\\r\\n\\r\\n\\r\\n-\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./covance-filter-number-range-type.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"mdl-textfield.number {\\n width: 80px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"{{fieldVal.def.title}}\\r\\n\\r\\n\"","module.exports = \"{{fieldVal.def.title}}\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n From\\r\\n \\r\\n \\r\\n To\\r\\n \\r\\n \\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./covance-filter-date-range-type.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.date-range-container {\\n display: inline-block;\\n}\\n\\n.date-range-container .preposition-label {\\n color: #9E9E9E;\\n padding: 0 3px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n \\r\\n {{item ? item.value || item : ''}}\\r\\n\"","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".disabled {\\n opacity: 0.2;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\"","module.exports = \"
\\r\\n
{{fieldVal.def.title}}
\\r\\n {{getCheckboxIcon()}}\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./covance-filter-checkbox-type.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".mdl-checkbox {\\n cursor: pointer;\\n}\\n\\n.mdl-checkbox .filter-title {\\n float: left;\\n padding-top: 2px;\\n}\\n\\n.mdl-checkbox mdl-icon {\\n color: #666;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n
\\r\\n
{{fieldVal.def.title}}
\\r\\n \\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./covance-filter-chain-node-type.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.filter-container {\\n display: flex;\\n flex-wrap: wrap;\\n align-items: center;\\n background-color: #fff;\\n padding: 0 4px;\\n}\\n\\n.filter-container .selected-filter {\\n margin: 4px 8px;\\n display: flex;\\n align-items: center;\\n}\\n\\n.filter-container .selected-filter .selected-filter-title {\\n padding-right: 8px;\\n}\\n\\n.filter-container .selected-filter > * {\\n margin-right: 5px;\\n}\\n\\n.filter-container .selected-filter mdl-select {\\n display: flex;\\n align-items: center;\\n}\\n\\n.filter-container .collapse-button {\\n text-transform: none;\\n font-size: 12px;\\n color: #777;\\n}\\n\\n.filter-container .filter-item {\\n display: inline-block;\\n margin: 4px 8px;\\n}\\n\\n.filter-container .filter-item .mdl-option .mdl-list__item {\\n min-height: 32px;\\n padding: 4px 8px;\\n}\\n\\n.filter-container .filter-item .mdl-textfield {\\n padding: 0;\\n}\\n\\n.filter-container .filter-item .mdl-textfield .mdl-textfield__input {\\n margin-bottom: 1px;\\n padding-bottom: 5px;\\n}\\n\\n.filter-container .filter-item .mdl-textfield .mdl-textfield__label:after {\\n bottom: 0;\\n}\\n\\n.filter-container .filter-item .covance-select__popover {\\n margin-top: 0;\\n}\\n\\n.filter-container .filter-item .mdl-select.age-units .mdl-textfield {\\n width: 80px;\\n}\\n\\n.filter-container .filter-item .mdl-select .mdl-textfield {\\n width: 150px;\\n}\\n\\n.filter-container .filter-item .mdl-select .mdl-popover {\\n width: auto !important;\\n min-width: 100%;\\n}\\n\\n.filter-container .filter-item .mdl-select .material-icons {\\n color: #616161;\\n}\\n\\n.filter-container .filter-item .mdl-list {\\n padding: 8px 0px;\\n}\\n\\n.filter-container .filter-title {\\n font-size: 12px;\\n color: #666;\\n font-weight: 500;\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n color: #9E9E9E;\\n padding-right: 3px;\\n}\\n\\n.filter-container .filter-title:after {\\n content: \\\": \\\";\\n}\\n\\n.mdl-select .mdl-textfield__input::placeholder {\\n color: #9E9E9E;\\n}\\n\\n.chain-node-title {\\n font-size: 12px;\\n color: #666;\\n font-weight: 500;\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n color: #9E9E9E;\\n padding-right: 3px;\\n}\\n\\n.chain-node-title:after {\\n content: \\\": \\\";\\n}\\n\\ncovance-select ::ng-deep .mdl-textfield {\\n padding: 0;\\n}\\n\\ncovance-select ::ng-deep [covance-select-header] {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n}\\n\\ncovance-select ::ng-deep div.mdl-select {\\n height: 16px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"{{fieldVal.def.title}}\\r\\n\\r\\n
\\r\\n \\r\\n   \\r\\n \\r\\n {{item}}\\r\\n \\r\\n to  \\r\\n \\r\\n   \\r\\n \\r\\n {{item}}\\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./covance-filter-age-range-type.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".date-range-container {\\n display: inline-block;\\n}\\n\\nmdl-textfield.number {\\n width: 80px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"{{fieldVal.def.title}}\\r\\n\\r\\n
\\r\\n \\r\\n {{operator.title}}\\r\\n \\r\\n days\\r\\n\\r\\n \\r\\n {{day}}\\r\\n \\r\\n
\\r\\n\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./covance-filter-age.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".date-range-container {\\n display: inline-block;\\n}\\n\\n.date-range-container ::ng-deep .mdl-select .mdl-textfield {\\n width: 50px !important;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"{{fieldVal.def.title}}\\r\\n\\r\\n
\\r\\n From\\r\\n \\r\\n \\r\\n To\\r\\n \\r\\n \\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./covance-filter-date-time-range-type.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.date-range-container {\\n display: inline-block;\\n}\\n\\n.date-range-container .preposition-label {\\n color: #9E9E9E;\\n padding: 0 3px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./email-preference-level-select.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.mdl-textfield {\\n width: 200px;\\n}\\n\\n.mdl-textfield__label {\\n color: #626971;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n
\\r\\n \\r\\n clear\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{item.result}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{item.tooltipContent[0].value}}\\r\\n
1\\\">\\r\\n
\\r\\n {{tooltip.title}}: {{tooltip.value}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./lab-tests-grid-visit.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".flag-label {\\n padding-left: 3px;\\n text-transform: uppercase;\\n}\\n\\n.visit-cell-tooltip {\\n white-space: normal;\\n text-align: left;\\n}\\n\\n.result-with-comment {\\n text-decoration: underline;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n
\\r\\n
\\r\\n {{params.displayName}}\\r\\n
\\r\\n
{{params.visitDate}}
\\r\\n
\\r\\n {{params.text}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Visit: {{params.displayName}}\\r\\n
\\r\\n
\\r\\n Collection Date: {{params.visitDate}}\\r\\n
\\r\\n
\\r\\n Accession: {{params.text}}\\r\\n
\\r\\n
\\r\\n Revision: {{revisionMessage}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./lab-tests-grid-visit-header.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".wrapper {\\n display: flex;\\n}\\n\\n.question-icon mdl-icon {\\n font-size: 14px;\\n}\\n\\n.visit-header {\\n white-space: nowrap;\\n text-align: left;\\n padding: 0 4px 0 4px;\\n}\\n\\n.visit-header > div {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n clear\\r\\n \\r\\n {{cancellationReason}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.cancelled-result {\\n text-align: left;\\n}\\n\\n.result-tooltip {\\n white-space: normal;\\n text-align: left;\\n}\\n\\ndata-revision-indicator {\\n position: relative;\\n top: 2px;\\n}\\n\\ndiv[result-content] {\\n cursor: pointer;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n
\\r\\n \\r\\n clear\\r\\n \\r\\n {{groupType}}: {{groupValue}} ({{childrenCounter}})\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n {{groupType}}: {{groupValue}}\\r\\n
\\r\\n
\\r\\n Revision: {{dataRevisionText}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./culture-group-ag-renderer.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"covance-tooltip ::ng-deep div[tooltip-content] {\\n font-style: normal;\\n}\\n\\ndiv[result-content] {\\n padding-right: 2px;\\n}\\n\\nspan.cancelled-result {\\n vertical-align: middle;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Organism {{data.growthDetails.order}}: {{data.growthDetails.organism}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Organism {{data.growthDetails.order}}:{{data.growthDetails.organism}}\\r\\n
\\r\\n
\\r\\n Revision: {{resultDataRevisionMessage}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Growth: {{data.growthDetails.growth}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Growth:{{data.growthDetails.growth}}\\r\\n
\\r\\n
\\r\\n Revision: {{resultDataRevisionMessage}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
MIC PanelDisk Diffusion Panel
Drug/AgentValueUnitsInterp.mmInterp.
\\r\\n {{row.agent}}\\r\\n \\r\\n {{row.micResult}}\\r\\n \\r\\n \\r\\n {{row.units}}\\r\\n \\r\\n \\r\\n
\\r\\n
{{row.micPanelInterpretation}}
\\r\\n \\r\\n
\\r\\n
\\r\\n {{row.kirbyBauerPanelZone}}\\r\\n \\r\\n \\r\\n
\\r\\n
{{row.kirbyBauerInterpretation}}
\\r\\n \\r\\n
\\r\\n
Error\\r\\n
{{row.invalidMicPanelMessage}}
\\r\\n
\\r\\n
{{row.invalidKbPanelMessage}}
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n clear\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{data.cancellationReason}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n question_answer\\r\\n \\r\\n Administrative Question\\r\\n \\r\\n \\r\\n {{data.textDetails.title}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n {{data.textDetails.title}}\\r\\n
\\r\\n
\\r\\n Revision: {{resultDataRevisionMessage}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n clear\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{data.cancellationReason}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n {{noDataText}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./culture-details-ag-renderer.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.container {\\n padding: 0 60px;\\n}\\n\\n.container .growth-organism-container {\\n white-space: nowrap;\\n font-weight: 300;\\n font-style: italic;\\n}\\n\\n.container .growth-organism-container .full-title {\\n font-weight: 600;\\n}\\n\\n.container table {\\n margin-top: 10px;\\n border-collapse: collapse;\\n}\\n\\n.container table tr {\\n height: 29px;\\n}\\n\\n.container table thead {\\n font-weight: bold;\\n}\\n\\n.container table tbody tr {\\n border-top: 1px solid #BDBDBD;\\n}\\n\\n.container table tbody tr.no-data {\\n text-align: center;\\n}\\n\\n.container table td {\\n padding: 3px 5px;\\n}\\n\\n.container .value-container {\\n flex-direction: row;\\n display: flex;\\n justify-content: space-between;\\n}\\n\\n.container .value-container .title {\\n width: 50%;\\n}\\n\\n.container .value-container .value {\\n width: 50%;\\n}\\n\\n.container covance-tooltip div[tooltip-content] {\\n text-align: left;\\n}\\n\\n.invalid-json {\\n max-width: 220px;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n color: #F44336;\\n font-style: italic;\\n}\\n\\n.data-revision-group {\\n display: flex;\\n}\\n\\n\", \"\"]);\n\n// exports\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\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./microbiology.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"covance-ag-grid ::ng-deep .ag-header {\\n height: 1px !important;\\n border-width: 0;\\n}\\n\\ncovance-ag-grid ::ng-deep .ag-body {\\n top: 1px !important;\\n}\\n\\ncovance-filter {\\n flex-shrink: 0;\\n padding-bottom: 10px;\\n}\\n\\n.micro-legend {\\n flex-grow: 1;\\n display: flex;\\n justify-content: flex-end;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./chart-legend.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \":host ::ng-deep .chart-legend {\\n display: flex;\\n flex-wrap: wrap;\\n}\\n\\n:host ::ng-deep .chart-legend--vertical {\\n flex-direction: column;\\n}\\n\\n:host ::ng-deep .chart-legend .chart-legend__item {\\n display: flex;\\n flex-wrap: nowrap;\\n margin-right: 10px;\\n}\\n\\n:host ::ng-deep .chart-legend .chart-legend__item.selectable {\\n cursor: pointer;\\n}\\n\\n:host ::ng-deep .chart-legend .chart-legend__item div.item-title {\\n white-space: nowrap;\\n text-transform: capitalize;\\n}\\n\\n:host ::ng-deep .chart-legend .chart-legend__item div.item-title.selected-item {\\n font-weight: bold;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n {{item.icon}}\\r\\n {{item.text}}\\r\\n
\\r\\n {{item.label}}\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./grid-legend.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".wrapper {\\n display: flex;\\n justify-content: flex-end;\\n flex-wrap: wrap;\\n}\\n\\n.legend-item {\\n display: flex;\\n justify-content: flex-start;\\n align-items: center;\\n flex-shrink: 0;\\n margin-right: 24px;\\n}\\n\\n.legend-label {\\n font-size: 13px;\\n margin-left: 8px;\\n}\\n\\n.the-item-container {\\n display: flex;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n
\\r\\n Terms and Conditions\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./terms-popup.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".disclaimer-content {\\n padding: 10px 20px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\\"LabCorp\\\"\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n I have read and accept Terms and Conditions\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./accept-terms-page.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".terms-and-conditions {\\n padding: 10px 40px;\\n background-color: white;\\n}\\n\\n.logo {\\n margin-bottom: 20px;\\n}\\n\\n.container {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex-direction: column;\\n}\\n\\n.control-buttons {\\n padding: 16px 0;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n Disclaimer: {{osrDisclaimerText | async}}\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./osr-disclaimer.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".disclaimer {\\n color: #546E7A;\\n line-height: 16px;\\n padding: 5px 10px;\\n border-bottom: 1px solid #e0e0e0;\\n min-height: 32px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n Disclaimer: {{kitDisclaimerText}} {{kitOrderLink.text}}\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./kit-disclaimer.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".disclaimer {\\n color: #546E7A;\\n line-height: 16px;\\n padding: 5px 10px;\\n border-bottom: 1px solid #e0e0e0;\\n min-height: 17px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n
\\r\\n Disclaimer\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./portal-disclaimer-popup.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".global-portal-disclaimer-content {\\n padding: 10px 20px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./investigator-microbiology.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".full-height-flex {\\n display: flex;\\n flex-direction: column;\\n flex-grow: 1;\\n}\\n\\n\", \"\"]);\n\n// exports\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 Study Days\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.lab-trends-line-chart {\\n display: flex;\\n flex-grow: 1;\\n}\\n\\n.lab-trends-line-chart .line-chart {\\n flex: 1 0;\\n display: flex;\\n position: relative;\\n}\\n\\n.lab-trends-line-chart .line-chart-y-axis {\\n flex: 0 0;\\n display: flex;\\n flex-basis: 50px;\\n}\\n\\n.lab-trends-line-chart .line-chart-y-axis .line-chart-y-axis__content {\\n align-self: center;\\n transform: rotate(-90deg);\\n flex-basis: 50px;\\n margin-left: 10px;\\n white-space: nowrap;\\n height: 20px;\\n width: 1px;\\n}\\n\\n.lab-trends-line-chart .line-chart-y-axis .line-chart-y-axis__content mdl-popover {\\n transform: rotate(90deg);\\n}\\n\\n.line-chart-x-axis {\\n display: flex;\\n justify-content: center;\\n flex-basis: 24px;\\n}\\n\\n.line-chart-x-axis .line-chart-x-axis__content {\\n width: 150px;\\n}\\n\\n.toolbox {\\n display: flex;\\n justify-content: space-between;\\n padding: 16px 32px 0 32px;\\n}\\n\\n.toolbox .line-chart-y-axis__content {\\n flex-grow: 1;\\n}\\n\\n.toolbox > * {\\n margin-right: 5%;\\n}\\n\\n.toolbox .mdl-checkbox {\\n width: auto;\\n margin-left: 16px;\\n margin-left: 16px;\\n}\\n\\n.toolbox mdl-select.menu-select ::ng-deep .mdl-textfield {\\n width: 300px;\\n}\\n\\n.subjects-legend {\\n display: flex;\\n}\\n\\n.spinner {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n flex-grow: 1;\\n}\\n\\n.sex-legend .chart-legend__item path {\\n stroke: #000;\\n stroke-width: 1.2;\\n}\\n\\n.too-much-dlg {\\n position: absolute;\\n top: 25%;\\n width: 100%;\\n height: 50%;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n}\\n\\n.too-much-dlg .too-much-msg {\\n color: #F44336;\\n font-size: 20px;\\n width: 50%;\\n height: 50%;\\n display: flex;\\n align-items: center;\\n background-color: white;\\n}\\n\\n\", \"\"]);\n\n// exports\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\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./standard-test-results-main.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".mdl-tabs mdl-tab-panel.grid-tab.mdl-tabs__panel.is-active {\\n display: flex;\\n flex-grow: 1;\\n}\\n\\nunit-selector {\\n position: absolute;\\n right: 0;\\n}\\n\\ncovance-filter {\\n flex-shrink: 0;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n
\\r\\n \\r\\n {{subjectInfo}}\\r\\n {{subjectInfo}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
{{subjectInfo}}
\\r\\n
\\r\\n
\\r\\n Subject: {{subjectInfo}}\\r\\n
\\r\\n
\\r\\n Revision: {{revisionMessage}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","module.exports = \"
\\r\\n \\r\\n
\\r\\n \\r\\n clear\\r\\n \\r\\n \\r\\n {{labTestResult.displayValue}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n {{details.title}}: {{details.value}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"\\r\\n
\\r\\n {{groupType}}:\\r\\n \\r\\n \\r\\n {{groupValue}}\\r\\n {{groupValue}}\\r\\n \\r\\n \\r\\n ({{childrenCounter}})\\r\\n \\r\\n
\\r\\n
\\r\\n
{{groupValue}}
\\r\\n
\\r\\n
\\r\\n Subject: {{groupValue}}\\r\\n
\\r\\n
\\r\\n Revision: {{revisionMessage}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./standard-test-results-ag-group-renderer.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"covance-tooltip ::ng-deep div[tooltip-content] {\\n font-style: normal;\\n}\\n\\ndiv[result-content] {\\n padding-right: 2px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n
\\r\\n \\r\\n question_answer\\r\\n \\r\\n Administrative Question\\r\\n \\r\\n \\r\\n {{title}}\\r\\n \\r\\n attach_file\\r\\n \\r\\n Optional Test\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{title}}\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./test-title-ag-renderer.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".optional-icon mdl-icon {\\n font-size: 14px;\\n margin-right: 4px;\\n}\\n\\n.revision-grid-wrapper {\\n height: 100px;\\n display: flex;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n
\\r\\n {{visitTitle}}\\r\\n \\r\\n
\\r\\n
\\r\\n
{{visitTitle}}
\\r\\n
\\r\\n
\\r\\n Visit: {{visitTitle}}\\r\\n
\\r\\n
\\r\\n Revision: {{revisionMessage}}\\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\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./standard-test-results.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"grouping-selector ::ng-deep .grouping-box {\\n margin-left: 32px;\\n}\\n\\n.osr-legend {\\n flex-grow: 1;\\n justify-content: flex-end;\\n display: flex;\\n}\\n\\n.grid-toolbar-content {\\n display: flex;\\n flex-grow: 1;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Split Genders\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Visit\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n \\r\\n {{title}}\\r\\n \\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./test-subject-ag-renderer.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".wrapper {\\n display: flex;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
0\\\">\\r\\n \\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./grouping-selector.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".grouping-box {\\n display: flex;\\n flex-direction: row;\\n margin: 0 8px;\\n}\\n\\n.grouping-box .group-by-label {\\n display: flex;\\n margin-right: 10px;\\n}\\n\\nmdl-radio {\\n display: flex;\\n margin-right: 10px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n There is a large amount of data in this study. Data for the first {{maxNumOfSubjects}} subjects has been loaded. Do you want to load it all? It may take a few minutes.\\r\\n \\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./large-data-warning.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.large-study-warning {\\n padding: 5px 10px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./lab-tests-grid.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.grid-toolbar-content {\\n display: flex;\\n flex-grow: 1;\\n justify-content: flex-end;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n search\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./lab-tests-chart.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.cvd-lab-tests-chart-container {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n overflow-y: auto;\\n}\\n\\n.cvd-lab-tests-chart-container cvd-line-chart ::ng-deep {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n}\\n\\n.cvd-lab-tests-chart-container cvd-line-chart ::ng-deep svg {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n}\\n\\n.cvd-lab-tests-chart-container cvd-line-chart ::ng-deep svg .cvd3.cv-stackedarea path.cv-area {\\n stroke-opacity: 0;\\n}\\n\\n.cvd-lab-tests-chart-container cvd-line-chart ::ng-deep svg .cvd3.cv-stackedarea rect.test-range {\\n fill-opacity: 0.2;\\n stroke: inherit;\\n stroke-opacity: 1;\\n stroke-dasharray: 5 5;\\n}\\n\\n.cvd-lab-tests-chart-container cvd-line-chart ::ng-deep svg g.tick text.test-y-tick-text,\\n.cvd-lab-tests-chart-container cvd-line-chart ::ng-deep svg g.tick text.test-group-name {\\n font-size: 10px;\\n}\\n\\n.cvd-lab-tests-chart-container cvd-line-chart ::ng-deep svg .cv-x g.tick text {\\n font-size: 9px;\\n}\\n\\n.cvd-lab-tests-chart-container cvd-line-chart ::ng-deep svg .cv-scatter g.cv-groups g.cv-group path {\\n stroke-width: 4px;\\n stroke-opacity: 1 !important;\\n}\\n\\n.cvd-lab-tests-chart-container cvd-line-chart ::ng-deep svg .cv-scatter g.cv-groups g.cv-group path.flagged-high {\\n fill: #F44336;\\n stroke: #F44336;\\n}\\n\\n.cvd-lab-tests-chart-container cvd-line-chart ::ng-deep svg .cv-scatter g.cv-groups g.cv-group path.flagged-low {\\n fill: #2196F3;\\n stroke: #2196F3;\\n}\\n\\n.cvd-lab-tests-chart-container cvd-line-chart ::ng-deep svg .cv-scatter g.cv-groups g.cv-group path.flagged-other {\\n fill: #FFA000;\\n stroke: #FFA000;\\n}\\n\\n.cvd-lab-tests-chart-container cvd-line-chart ::ng-deep svg .cv-scatter g.cv-groups g.cv-group path.non-flagged {\\n fill: #757575;\\n stroke: #757575;\\n}\\n\\n.cvd-lab-tests-chart-container cvd-line-chart ::ng-deep svg .cv-linesWrap .cv-groups .cv-group .cv-line {\\n stroke: #757575;\\n stroke-width: 1px;\\n}\\n\\n.cvd-lab-tests-chart-container cvd-line-chart ::ng-deep svg text.last-visit-value {\\n fill: #666;\\n font-size: 12px;\\n font-weight: 500;\\n}\\n\\n.cvd-lab-tests-chart-container cvd-line-chart ::ng-deep svg text.last-visit-value.flagged-high {\\n fill: #F44336;\\n}\\n\\n.cvd-lab-tests-chart-container cvd-line-chart ::ng-deep svg text.last-visit-value.flagged-low {\\n fill: #2196F3;\\n}\\n\\n.cvd-lab-tests-chart-container cvd-line-chart ::ng-deep svg text.last-visit-value.flagged-other {\\n fill: #FFA000;\\n}\\n\\n.cvd-lab-tests-chart-container cvd-line-chart ::ng-deep svg text.last-visit-value.non-flagged {\\n fill: #757575;\\n}\\n\\n.cvd-lab-tests-chart-container cvd-line-chart ::ng-deep svg text.test-group-name {\\n fill: #666;\\n}\\n\\nchart-legend ::ng-deep .flagged-low {\\n fill: #2196F3;\\n stroke: #2196F3;\\n}\\n\\nchart-legend ::ng-deep .flagged-other {\\n fill: #FFA000;\\n stroke: #FFA000;\\n}\\n\\nchart-legend ::ng-deep .non-flagged {\\n fill: #757575;\\n stroke: #757575;\\n}\\n\\nchart-legend ::ng-deep .flagged-high {\\n fill: #F44336;\\n stroke: #F44336;\\n}\\n\\n.search-and-legend-wrapper {\\n display: flex;\\n justify-content: space-around;\\n align-items: center;\\n padding: 14px;\\n}\\n\\n.search-and-legend-wrapper covance-chain-filter {\\n flex-grow: 1;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .search-and-legend-wrapper covance-chain-filter ::ng-deep .covance-chain-filter__chain {\\n flex-direction: column;\\n align-items: flex-end;\\n }\\n\\n .search-and-legend-wrapper covance-chain-filter ::ng-deep .covance-chain-filter__chain covance-filter-chain-node-type {\\n display: flex;\\n flex-wrap: nowrap;\\n }\\n\\n .search-and-legend-wrapper covance-chain-filter ::ng-deep .covance-chain-filter__chain covance-filter-chain-node-type span.chain-node-title {\\n white-space: nowrap;\\n }\\n}\\n\\n.search-and-legend-wrapper .subjects-legend {\\n flex-grow: 1;\\n}\\n\\n.spinner {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n flex-grow: 1;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./play-video-dialog.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \":host {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n}\\n\\nvideo {\\n max-width: 100%;\\n max-height: 100%;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n Document Preview\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./preview-dialog.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.wrapper {\\n height: 80vh;\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.header {\\n color: rgba(0, 0, 0, 0.87);\\n font-size: 20px;\\n padding-bottom: 16px;\\n}\\n\\n.header .header__button {\\n float: right;\\n}\\n\\n.content-wrapper {\\n height: 100%;\\n overflow: auto;\\n border: solid 1px #BDBDBD;\\n padding: 16px;\\n}\\n\\n.spinner {\\n margin: auto;\\n}\\n\\n.page {\\n width: 21cm;\\n color: #000;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n\\r\\n
1\\\">\\r\\n \\r\\n \\r\\n
\\r\\n {{item.language}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Preview {{preferredLanguage.language}}\\r\\n
\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./language-link-ag-renderer.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.wrapper {\\n display: flex;\\n width: fit-content;\\n justify-content: space-between;\\n}\\n\\nbutton {\\n height: auto;\\n margin-top: -3px;\\n line-height: inherit;\\n}\\n\\nbutton mdl-icon {\\n color: #757575;\\n}\\n\\n.dl-part-wrapper {\\n display: flex;\\n justify-content: space-between;\\n}\\n\\n.dl-part-wrapper .dl-link {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n cursor: pointer;\\n}\\n\\n.preview div[result-content] {\\n overflow: visible;\\n}\\n\\n.menu-container {\\n max-height: 300px;\\n overflow: auto;\\n}\\n\\n.button-wrapper {\\n position: relative;\\n}\\n\\nmdl-menu-item {\\n line-height: 24px;\\n height: 24px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./admin-protocol-access-reports.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"protocol-search-select {\\n margin: 0 16px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n \\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./admin-activity-report-documents.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".full-height {\\n flex-grow: 1;\\n display: flex;\\n flex-direction: column;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n This field is required\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n This field is required\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./admin-access-investigation-reports.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".toolbar {\\n display: flex;\\n align-items: flex-start;\\n}\\n\\n.report-filter {\\n display: flex;\\n flex-flow: wrap;\\n align-items: baseline;\\n}\\n\\n.report-filter__label {\\n margin-top: 16px;\\n margin-left: 16px;\\n flex-shrink: 0;\\n}\\n\\n.report-filter__input {\\n margin-left: 16px;\\n}\\n\\ncovance-filter-date-range-type ::ng-deep .filter-title {\\n display: none;\\n}\\n\\n.mdl-textfield__error {\\n visibility: visible;\\n margin-top: -20px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n {{announcement.titleAnnouncement}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./announcement-dialog.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n:host {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n width: 100%;\\n overflow: auto;\\n}\\n\\n:host .announcement-dialog-container {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n}\\n\\n:host .announcement-dialog-container .announcement-dialog {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n}\\n\\n:host .announcement-dialog-container .announcement-dialog .announcement-dialog__title {\\n color: rgba(0, 0, 0, 0.87);\\n font-size: 20px;\\n margin-bottom: 15px;\\n}\\n\\n:host .announcement-dialog-container .announcement-dialog .title__button {\\n float: right;\\n}\\n\\n:host .announcement-dialog-container .announcement-dialog .announcement-dialog__text {\\n color: rgba(0, 0, 0, 0.87);\\n overflow-y: auto;\\n}\\n\\n:host .announcement-dialog-container .mdl-dialog__actions {\\n display: block;\\n}\\n\\n:host .announcement-dialog-container .announcement-dialog-actions {\\n display: flex;\\n flex-direction: row-reverse;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n

Announcement

\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Leave \\\"to\\\" date blank if announcement never expires\\r\\n
\\r\\n
\\r\\n
Start effective date can't be later than end date
\\r\\n
Start effective date can't be in the past
\\r\\n
End effective date can't be in the past
\\r\\n
\\r\\n
\\r\\n \\r\\n Text is required\\r\\n Text is too long\\r\\n
\\r\\n
\\r\\n
\\r\\n Is Pinned?\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./announcement-edit-dialog.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.mdl-textfield__error {\\n font-size: 10px;\\n}\\n\\n.mdl-textfield__error.invalid-url {\\n right: 0;\\n}\\n\\n.common-link-editor-form.ng-invalid.ng-untouched .mdl-textfield .mdl-textfield__input {\\n border-color: inherit;\\n}\\n\\n.common-link-editor-form.ng-invalid.ng-untouched .mdl-textfield .mdl-textfield__label {\\n color: inherit;\\n}\\n\\n.full-width {\\n width: 100%;\\n}\\n\\n.effective-section {\\n display: flex;\\n}\\n\\n.effective-section > div {\\n margin-right: 32px;\\n}\\n\\n.editor-section {\\n padding-top: 24px;\\n padding-bottom: 8px;\\n}\\n\\n.info {\\n padding-left: 16px;\\n font-style: italic;\\n color: #666;\\n font-size: 13px;\\n}\\n\\n.error-message {\\n color: #F44336;\\n font-size: 10px;\\n margin-top: 3px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n

Delete announcement

\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","module.exports = \"
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./announcements-admin.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.wrapper {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n}\\n\\n.wrapper .toolbar {\\n display: flex;\\n justify-content: flex-end;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n

\\r\\n {{editorTitle}}\\r\\n

\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./common-link-editor.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".common-link-editor-form.ng-invalid.ng-untouched .mdl-textfield .mdl-textfield__input {\\n border-color: inherit;\\n}\\n\\n.common-link-editor-form.ng-invalid.ng-untouched .mdl-textfield .mdl-textfield__label {\\n color: inherit;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./common-links-grid.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.wrapper {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n}\\n\\n.wrapper .toolbar {\\n display: flex;\\n justify-content: flex-end;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Accession is required\\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./accession-search.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".mdl-textfield__error {\\n margin-top: -20px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./user-emails-search.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.error {\\n color: #F44336;\\n flex-basis: 100%;\\n height: 20px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./protocol-change-accessibility.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./protocol-activation.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.wrapper {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n}\\n\\n.wrapper .toolbar {\\n display: flex;\\n justify-content: flex-end;\\n}\\n\\ncovance-ag-grid ::ng-deep .ag-header {\\n height: 54px !important;\\n min-height: 54px !important;\\n}\\n\\ncovance-ag-grid ::ng-deep .ag-theme-material .ag-floating-filter-button {\\n margin-top: 0px;\\n}\\n\\ncovance-ag-grid ::ng-deep .ag-theme-material .ag-filter .ag-set-filter-list {\\n height: fit-content;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n

Application Training

\\r\\n
\\r\\n \\r\\n\\r\\n \\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 = \"
\\r\\n

General Communications Upload

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./general-communications-upload.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n

General Manual Upload

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./general-lab-manuals-upload.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n

General Training Materials Upload

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./general-training-materials-upload.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n

Lab Manual Upload

\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./lab-manuals-upload.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"form > * {\\n display: block;\\n}\\n\\nform .date-container {\\n padding: 20px 0;\\n}\\n\\nform .mdl-textfield__error {\\n visibility: visible;\\n position: static;\\n margin-top: -20px;\\n}\\n\\nform covance-file-upload {\\n margin-top: 20px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"

Site Actions Upload

\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{requireSiteOrAccessionErrorText}}\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{requireSiteOrAccessionErrorText}}\\r\\n \\r\\n\\r\\n
\\r\\n Response 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
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./site-actions-upload.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".checkbox-container {\\n padding: 16px 0;\\n}\\n\\n.checkbox-container mdl-checkbox {\\n width: auto;\\n}\\n\\n.date-container {\\n padding: 16px 0 48px 0;\\n}\\n\\n.mdl-textfield__error {\\n visibility: visible;\\n position: static;\\n margin-top: -20px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"

Site Communications Upload

\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\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 = \"

Sponsor Communications Upload

\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\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 = \"

Study Training Materials Upload

\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./training-materials-upload.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n

Edit File

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

Files to be replaced:

\\r\\n
\\r\\n
\\r\\n {{lang.fileNameString}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./file-edit.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".lang-item {\\n display: flex;\\n justify-content: space-between;\\n width: 100%;\\n align-items: center;\\n}\\n\\n.field-container {\\n display: flex;\\n flex-direction: column;\\n border-bottom: 1px solid lightgray;\\n margin-bottom: 24px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n

Translations Upload

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

Already uploaded translations:

\\r\\n
\\r\\n
\\r\\n {{lang.fileNameString}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./document-translation-upload.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".lang-list {\\n display: flex;\\n margin-bottom: 24px;\\n flex-direction: column;\\n}\\n\\n.lang-list .lang-item {\\n display: flex;\\n align-items: center;\\n justify-content: stretch;\\n justify-content: space-between;\\n}\\n\\n.field-container {\\n display: flex;\\n flex-direction: column;\\n border-bottom: 1px solid lightgray;\\n margin-bottom: 24px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n

{{actionTitle}} document

\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./hide-document.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n This field is required\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n This field is required\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./admin-documents.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".toolbar {\\n display: flex;\\n justify-content: space-between;\\n margin: 0 8px;\\n}\\n\\n.category-selector {\\n display: flex;\\n justify-content: space-between;\\n padding: 16px 0;\\n}\\n\\n.full-height {\\n flex-grow: 1;\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.upload-grid-toolbar {\\n display: flex;\\n justify-content: flex-end;\\n}\\n\\n.mdl-textfield__error {\\n margin-top: -20px;\\n}\\n\\n\", \"\"]);\n\n// exports\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 Page {{currentPage}} of {{totalPages}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./user-profiles.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.wrapper {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n}\\n\\n.wrapper .toolbar {\\n display: flex;\\n justify-content: flex-end;\\n}\\n\\ncovance-ag-grid ::ng-deep a.emulate {\\n margin-left: 30px;\\n font-style: normal;\\n cursor: pointer;\\n text-transform: uppercase;\\n}\\n\\n.filter-title {\\n font-size: 12px;\\n font-weight: 600;\\n color: #666;\\n}\\n\\n.ag-paging-panel {\\n border-top: 1px solid #808080;\\n padding: 20px;\\n text-align: center;\\n}\\n\\n.ag-paging-panel .mdl-button {\\n margin: 0 4px;\\n}\\n\\n.user-search-container {\\n display: flex;\\n padding: 0 16px;\\n justify-content: flex-start;\\n}\\n\\n.user-search-container > div {\\n padding-right: 16px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./general-header-title.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".wrapper {\\n display: flex;\\n align-items: center;\\n}\\n\\n.xip-logo-sizing {\\n width: 167px;\\n padding-top: 3px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n {{sponsorName}} {{protocolName}}\\r\\n
\\r\\n
\\r\\n {{sponsorName}} {{protocolName}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sponsor-header-title.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".wrapper {\\n display: flex;\\n min-width: 40px;\\n}\\n\\n.study-title {\\n align-self: center;\\n min-width: 40px;\\n letter-spacing: 0px;\\n}\\n\\n@media screen and (max-width: 699px) {\\n .header-link {\\n display: none;\\n }\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n {{sponsor}} {{clientProtocol}}\\r\\n\\r\\n
\\r\\n Investigator: {{investigator}} · Labcorp No.: {{covanceProjectNumber}}\\r\\n
\\r\\n
\\r\\n
\\r\\n {{sponsor}} {{clientProtocol}}
\\r\\n Investigator: {{investigator}} · Labcorp No.: {{covanceProjectNumber}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./investigator-header-title.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".wrapper {\\n display: flex;\\n min-width: 40px;\\n}\\n\\n.study-title {\\n align-self: center;\\n min-width: 40px;\\n letter-spacing: 0px;\\n}\\n\\n.header-subtitle {\\n font-size: 12px;\\n line-height: 14px;\\n opacity: 0.8;\\n margin-top: 4px;\\n text-overflow: ellipsis;\\n overflow: hidden;\\n}\\n\\n@media screen and (max-width: 699px) {\\n .header-link {\\n display: none;\\n }\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./documents-grid.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"reports-grid {\\n display: flex;\\n flex-grow: 1;\\n flex-direction: column;\\n}\\n\\n.grouping-box {\\n margin-right: 30px;\\n}\\n\\n.unread-switch-box {\\n margin-right: 50px;\\n}\\n\\n.toolbox {\\n display: flex;\\n align-items: center;\\n justify-content: flex-start;\\n flex-wrap: wrap;\\n padding-left: 8px;\\n padding-top: 8px;\\n}\\n\\n.toolbox .toolbox-items {\\n display: flex;\\n flex-wrap: nowrap;\\n}\\n\\n.toolbox grid-legend {\\n flex-grow: 1;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./reports-grid.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"ag-grid-angular {\\n width: 100%;\\n height: 100%;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n {{c.name}}\\r\\n \\r\\n
\\r\\n
\\r\\n Your request produced too many records. Only the first {{warningThreshhold}} are shown. Try to narrow your filters.\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./filtered-grid.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".toolbar {\\n display: flex;\\n justify-content: flex-start;\\n align-items: center;\\n margin: 0 8px;\\n}\\n\\n.category-selector {\\n display: flex;\\n justify-content: space-between;\\n padding: 16px 0;\\n}\\n\\n.full-height {\\n flex-grow: 1;\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.upload-grid-toolbar {\\n display: flex;\\n justify-content: flex-end;\\n}\\n\\n.category-selector ::ng-deep .mdl-list {\\n max-height: 400px;\\n}\\n\\n.mandatory-filter mdl-select {\\n width: 200px;\\n}\\n\\n.large-data-warning {\\n padding-left: 12px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./navigation.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.mdl-navigation__link.top-level-link {\\n padding-top: 3px;\\n padding-bottom: 3px;\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n flex-wrap: nowrap;\\n white-space: nowrap;\\n}\\n\\n.mdl-navigation__link.top-level-link .icon-img {\\n filter: grayscale(1);\\n}\\n\\n.mdl-navigation__link--current .icon-img {\\n filter: grayscale(0) !important;\\n}\\n\\n.mdl-navigation__link.second-level-link {\\n padding-top: 1px;\\n padding-bottom: 1px;\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n flex-wrap: nowrap;\\n white-space: nowrap;\\n}\\n\\n.mdl-navigation__link.second-level-link .icon-img {\\n filter: grayscale(100%);\\n}\\n\\n.nav-second-level-menu {\\n padding-left: 20px;\\n}\\n\\n.counter {\\n color: #fff;\\n background-color: #D32F2F;\\n border-radius: 8px;\\n font-size: 11px;\\n padding: 0px 5px;\\n line-height: 16px;\\n}\\n\\n.mdl-navigation__link mdl-icon.material-icons {\\n margin-right: 10px;\\n}\\n\\n.mdl-tooltip {\\n white-space: nowrap;\\n}\\n\\n.rootlink-tooltip {\\n display: none;\\n}\\n\\n.icon-img {\\n padding-right: 15px;\\n}\\n\\n.disabled {\\n pointer-events: none;\\n cursor: default;\\n opacity: 0.5;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
0\\\">\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"documents-grid {\\n display: flex;\\n flex-grow: 1;\\n flex-direction: column;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./lab-reports.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"documents-grid {\\n display: flex;\\n flex-grow: 1;\\n flex-direction: column;\\n}\\n\\n.report-type-box {\\n display: flex;\\n align-items: center;\\n margin: 0 8px;\\n}\\n\\n.report-type-box .report-type-box__label {\\n margin-right: 5px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./kit-inventory.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\ncovance-ag-grid ::ng-deep .ag-row .ag-cell {\\n display: flex;\\n justify-content: flex-start;\\n /* align text left */\\n align-items: center;\\n /* align horizontal */\\n}\\n\\n.grid-toolbar-content {\\n display: flex;\\n flex-grow: 1;\\n justify-content: flex-end;\\n}\\n\\n.wrapper {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n}\\n\\n.wrapper .toolbar {\\n display: flex;\\n justify-content: flex-end;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./investigator-navigation.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n No subjects data available\\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
{{selectedSubject?.sex}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
{{selectedSubject?.initials}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
{{selectedSubject?.age}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
{{selectedSubject?.ageProjectDisplayValue}}
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./subjects-navigation.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\nsubjects-navigation * .mdl-tabs__tab-bar {\\n justify-content: flex-start;\\n}\\n\\nsubjects-navigation * .mdl-tabs__tab-bar .mdl-tabs__tab.is-active mdl-tab-panel-title {\\n color: #626971;\\n}\\n\\nsubjects-navigation .select-subject-container {\\n display: flex;\\n font-size: 14px;\\n padding: 8px;\\n}\\n\\nsubjects-navigation .select-subject-container label {\\n color: #9E9E9E;\\n font-weight: normal;\\n padding-right: 5px;\\n}\\n\\nsubjects-navigation .full-height-container {\\n display: flex;\\n flex-direction: column;\\n flex-grow: 1;\\n}\\n\\nsubjects-navigation .select-subject {\\n display: flex;\\n margin: 0 30px 0 8px;\\n}\\n\\nsubjects-navigation .select-subject .mdl-textfield {\\n width: 150px;\\n padding: 0;\\n}\\n\\nsubjects-navigation .select-subject .mdl-textfield .mdl-textfield__input {\\n font-weight: 600;\\n color: #666;\\n}\\n\\nsubjects-navigation .subject-data-wrapper {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n flex-grow: 1;\\n}\\n\\nsubjects-navigation .subject-data-wrapper .subject-details {\\n margin: auto 0 auto 0;\\n display: flex;\\n flex-direction: row;\\n font-weight: 600;\\n color: #666;\\n}\\n\\nsubjects-navigation .subject-data-wrapper .subject-details .subject-attribute {\\n display: flex;\\n margin: 0 24px;\\n}\\n\\nsubjects-navigation .subject-data-wrapper .subject-details data-revision-indicator {\\n display: flex;\\n align-items: center;\\n}\\n\\nsubjects-navigation .subject-tabs {\\n position: relative;\\n}\\n\\nsubjects-navigation .mdl-tabs__tab {\\n cursor: pointer;\\n}\\n\\nsubjects-navigation .right-side-panel {\\n position: absolute;\\n right: 0;\\n top: 0;\\n display: flex;\\n align-items: center;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./external-user-e-queries-grid.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.wrapper {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n}\\n\\n.wrapper .toolbar {\\n display: flex;\\n justify-content: flex-end;\\n}\\n\\n.full-height {\\n flex-grow: 1;\\n display: flex;\\n flex-direction: column;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n \\r\\n {{textValue}}\\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./simple-text-field.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n *Response does not meet expected input, but may still be submitted.\\r\\n\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./e-queries-free-text-question.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\nhr {\\n border: none;\\n border-top: 2px solid #0080af;\\n color: #0080af;\\n overflow: visible;\\n text-align: left;\\n height: 5px;\\n}\\n\\nhr:before {\\n background-color: #fff;\\n padding: 0 4px 0 0;\\n position: relative;\\n top: -13px;\\n font-size: 14px;\\n}\\n\\n.e-query-details-text-container {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 12px;\\n margin-right: 24px;\\n}\\n\\n.e-query-details-label {\\n font-weight: 800;\\n}\\n\\n.e-query-details-text {\\n font-weight: 400;\\n padding-left: 5px;\\n}\\n\\n.e-query-label-text {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 5px;\\n}\\n\\n.e-query-label-text label {\\n color: black;\\n text-decoration-line: underline;\\n text-decoration-style: solid;\\n text-decoration-color: #0080af;\\n text-decoration-thickness: 2px;\\n text-underline-position: under;\\n display: inline-block;\\n text-align: right;\\n width: 170px;\\n font-weight: bold;\\n margin-bottom: 1px;\\n margin-right: 5px;\\n}\\n\\n.separator {\\n border-bottom: 3px #0080af dashed;\\n width: 158px;\\n margin: 15px;\\n}\\n\\n:host .mdl-textfield__error {\\n visibility: visible;\\n position: relative;\\n margin-left: 170px;\\n margin-bottom: 15px;\\n}\\n\\n:host ::ng-deep.mdl-textfield__input {\\n border: 1px solid #0080af;\\n padding-left: 4px;\\n}\\n\\n:host ::ng-deep.mdl-textfield--floating-label.is-focused .mdl-textfield__label,\\n:host .mdl-textfield--floating-label.is-dirty .mdl-textfield__label,\\n:host .mdl-textfield--floating-label.has-placeholder .mdl-textfield__label {\\n color: #0080af;\\n padding-left: 4px;\\n}\\n\\n:host ::ng-deep.mdl-textfield__label {\\n padding-left: 4px;\\n}\\n\\n.response-label {\\n margin-left: 20px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n \\r\\n \\r\\n
\\r\\n Accession - {{accessionInfo.accessionNumber}}\\r\\n
\\r\\n \\r\\n Accession - {{ accessionInfo.accessionNumber }}\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./e-query-accession-info.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\nhr {\\n border: none;\\n border-top: 2px solid #0080af;\\n color: #0080af;\\n overflow: visible;\\n text-align: left;\\n height: 5px;\\n}\\n\\nhr:before {\\n background-color: #fff;\\n padding: 0 4px 0 0;\\n position: relative;\\n top: -13px;\\n font-size: 14px;\\n}\\n\\n.e-query-details-text-container {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 12px;\\n margin-right: 24px;\\n}\\n\\n.e-query-details-label {\\n font-weight: 800;\\n}\\n\\n.e-query-details-text {\\n font-weight: 400;\\n padding-left: 5px;\\n}\\n\\n.e-query-label-text {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 5px;\\n}\\n\\n.e-query-label-text label {\\n color: black;\\n text-decoration-line: underline;\\n text-decoration-style: solid;\\n text-decoration-color: #0080af;\\n text-decoration-thickness: 2px;\\n text-underline-position: under;\\n display: inline-block;\\n text-align: right;\\n width: 170px;\\n font-weight: bold;\\n margin-bottom: 1px;\\n margin-right: 5px;\\n}\\n\\n.separator {\\n border-bottom: 3px #0080af dashed;\\n width: 158px;\\n margin: 15px;\\n}\\n\\n:host a {\\n cursor: pointer;\\n font-weight: 400;\\n}\\n\\n.accession-info-column {\\n margin-right: 4px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"0\\\">\\r\\n \\r\\n \\r\\n Attachments\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./e-query-attachments.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\nhr {\\n border: none;\\n border-top: 2px solid #0080af;\\n color: #0080af;\\n overflow: visible;\\n text-align: left;\\n height: 5px;\\n}\\n\\nhr:before {\\n background-color: #fff;\\n padding: 0 4px 0 0;\\n position: relative;\\n top: -13px;\\n font-size: 14px;\\n}\\n\\n.e-query-details-text-container {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 12px;\\n margin-right: 24px;\\n}\\n\\n.e-query-details-label {\\n font-weight: 800;\\n}\\n\\n.e-query-details-text {\\n font-weight: 400;\\n padding-left: 5px;\\n}\\n\\n.e-query-label-text {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 5px;\\n}\\n\\n.e-query-label-text label {\\n color: black;\\n text-decoration-line: underline;\\n text-decoration-style: solid;\\n text-decoration-color: #0080af;\\n text-decoration-thickness: 2px;\\n text-underline-position: under;\\n display: inline-block;\\n text-align: right;\\n width: 170px;\\n font-weight: bold;\\n margin-bottom: 1px;\\n margin-right: 5px;\\n}\\n\\n.separator {\\n border-bottom: 3px #0080af dashed;\\n width: 158px;\\n margin: 15px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n {{textValue}}\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./e-query-details-text-field.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\nhr {\\n border: none;\\n border-top: 2px solid #0080af;\\n color: #0080af;\\n overflow: visible;\\n text-align: left;\\n height: 5px;\\n}\\n\\nhr:before {\\n background-color: #fff;\\n padding: 0 4px 0 0;\\n position: relative;\\n top: -13px;\\n font-size: 14px;\\n}\\n\\n.e-query-details-text-container {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 12px;\\n margin-right: 24px;\\n}\\n\\n.e-query-details-label {\\n font-weight: 800;\\n}\\n\\n.e-query-details-text {\\n font-weight: 400;\\n padding-left: 5px;\\n}\\n\\n.e-query-label-text {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 5px;\\n}\\n\\n.e-query-label-text label {\\n color: black;\\n text-decoration-line: underline;\\n text-decoration-style: solid;\\n text-decoration-color: #0080af;\\n text-decoration-thickness: 2px;\\n text-underline-position: under;\\n display: inline-block;\\n text-align: right;\\n width: 170px;\\n font-weight: bold;\\n margin-bottom: 1px;\\n margin-right: 5px;\\n}\\n\\n.separator {\\n border-bottom: 3px #0080af dashed;\\n width: 158px;\\n margin: 15px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n
\\r\\n \\r\\n Drop the {{singleFileOnly ? 'file' : 'files'}} here, or\\r\\n \\r\\n \\r\\n \\r\\n Allowed file extensions: {{ allowedFileExtensionsText }}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{file.name}}\\r\\n
\\r\\n {{ getInvalidFileExtension(fileIndex) }}\\r\\n {{ getInvalidFileSize(fileIndex) }}\\r\\n Duplicate file\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{l.language}}\\r\\n \\r\\n
\\r\\n
\\r\\n Choose a language\\r\\n
\\r\\n
\\r\\n Duplicate languages\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n Invalid files count \\r\\n
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./covance-file-upload.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".file-uploader-container {\\n height: 100%;\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.file-uploader-container .error-message {\\n color: rgb(213, 0, 0);\\n font-size: 10px;\\n}\\n\\n.file-uploader-container .file-drop-area {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n border: 2px dashed #ddd;\\n height: 100px;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n flex-shrink: 0;\\n flex-direction: column;\\n}\\n\\n.file-uploader-container .file-drop-area .browse {\\n cursor: pointer;\\n text-decoration: underline;\\n font-weight: bolder;\\n}\\n\\n.file-uploader-container .file-list {\\n flex-grow: 1;\\n flex-shrink: 1;\\n padding: 0px 6px 0px 6px;\\n}\\n\\n.file-uploader-container .file-list .file-list-item {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n margin-top: 10px;\\n}\\n\\n.file-uploader-container .file-list .file-list-item .file-info {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n flex-grow: 1;\\n}\\n\\n.file-uploader-container .file-list .file-list-item .file-info .file-errors .mdl-textfield__error {\\n position: static;\\n visibility: visible;\\n}\\n\\n.file-uploader-container .file-list .file-list-item .file-language {\\n width: 150px;\\n}\\n\\n.file-uploader-container .file-language .language-errors {\\n margin-top: -20px;\\n}\\n\\n.file-uploader-container .file-language .language-errors .mdl-textfield__error {\\n position: static;\\n visibility: visible;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n
\\r\\n {{ errorMessage }}\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./uploaded-file-errors.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".mdl-textfield__error {\\n position: static;\\n visibility: visible;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./e-query-c-c-question.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\nhr {\\n border: none;\\n border-top: 2px solid #0080af;\\n color: #0080af;\\n overflow: visible;\\n text-align: left;\\n height: 5px;\\n}\\n\\nhr:before {\\n background-color: #fff;\\n padding: 0 4px 0 0;\\n position: relative;\\n top: -13px;\\n font-size: 14px;\\n}\\n\\n.e-query-details-text-container {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 12px;\\n margin-right: 24px;\\n}\\n\\n.e-query-details-label {\\n font-weight: 800;\\n}\\n\\n.e-query-details-text {\\n font-weight: 400;\\n padding-left: 5px;\\n}\\n\\n.e-query-label-text {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 5px;\\n}\\n\\n.e-query-label-text label {\\n color: black;\\n text-decoration-line: underline;\\n text-decoration-style: solid;\\n text-decoration-color: #0080af;\\n text-decoration-thickness: 2px;\\n text-underline-position: under;\\n display: inline-block;\\n text-align: right;\\n width: 170px;\\n font-weight: bold;\\n margin-bottom: 1px;\\n margin-right: 5px;\\n}\\n\\n.separator {\\n border-bottom: 3px #0080af dashed;\\n width: 158px;\\n margin: 15px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n \\r\\n Open questions\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n This field is required\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Response text required with attachment(s). Please remove attachment or add response text to submit\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n

No user response received for this question.

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Duplicate file(s): {{duplicateFileNames}}\\r\\n \\r\\n \\r\\n Required fields must be filled correctly\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./open-questions.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\nhr {\\n border: none;\\n border-top: 2px solid #0080af;\\n color: #0080af;\\n overflow: visible;\\n text-align: left;\\n height: 5px;\\n}\\n\\nhr:before {\\n background-color: #fff;\\n padding: 0 4px 0 0;\\n position: relative;\\n top: -13px;\\n font-size: 14px;\\n}\\n\\n.e-query-details-text-container {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 12px;\\n margin-right: 24px;\\n}\\n\\n.e-query-details-label {\\n font-weight: 800;\\n}\\n\\n.e-query-details-text {\\n font-weight: 400;\\n padding-left: 5px;\\n}\\n\\n.e-query-label-text {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 5px;\\n}\\n\\n.e-query-label-text label {\\n color: black;\\n text-decoration-line: underline;\\n text-decoration-style: solid;\\n text-decoration-color: #0080af;\\n text-decoration-thickness: 2px;\\n text-underline-position: under;\\n display: inline-block;\\n text-align: right;\\n width: 170px;\\n font-weight: bold;\\n margin-bottom: 1px;\\n margin-right: 5px;\\n}\\n\\n.separator {\\n border-bottom: 3px #0080af dashed;\\n width: 158px;\\n margin: 15px;\\n}\\n\\n:host .mdl-textfield__error {\\n visibility: visible;\\n position: relative;\\n}\\n\\n:host .e-query-upload,\\n:host .other-question {\\n padding-bottom: 25px;\\n padding-left: 170px;\\n}\\n\\n.separator {\\n margin-left: 33px;\\n}\\n\\n.no-response-label {\\n color: #0080af;\\n text-align: center;\\n}\\n\\n\", \"\"]);\n\n// exports\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 {{item.uploadFileName}}\\r\\n file_download\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./e-query-c-c-question-response.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\nhr {\\n border: none;\\n border-top: 2px solid #0080af;\\n color: #0080af;\\n overflow: visible;\\n text-align: left;\\n height: 5px;\\n}\\n\\nhr:before {\\n background-color: #fff;\\n padding: 0 4px 0 0;\\n position: relative;\\n top: -13px;\\n font-size: 14px;\\n}\\n\\n.e-query-details-text-container {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 12px;\\n margin-right: 24px;\\n}\\n\\n.e-query-details-label {\\n font-weight: 800;\\n}\\n\\n.e-query-details-text {\\n font-weight: 400;\\n padding-left: 5px;\\n}\\n\\n.e-query-label-text {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 5px;\\n}\\n\\n.e-query-label-text label {\\n color: black;\\n text-decoration-line: underline;\\n text-decoration-style: solid;\\n text-decoration-color: #0080af;\\n text-decoration-thickness: 2px;\\n text-underline-position: under;\\n display: inline-block;\\n text-align: right;\\n width: 170px;\\n font-weight: bold;\\n margin-bottom: 1px;\\n margin-right: 5px;\\n}\\n\\n.separator {\\n border-bottom: 3px #0080af dashed;\\n width: 158px;\\n margin: 15px;\\n}\\n\\n:host .response-container::ng-deep label {\\n color: #0080af;\\n}\\n\\n:host mdl-icon {\\n vertical-align: middle;\\n padding-left: 12px;\\n cursor: pointer;\\n}\\n\\n:host .attachment-label {\\n font-weight: 800;\\n cursor: pointer;\\n text-align: right;\\n display: inline-block;\\n width: 170px;\\n}\\n\\n:host .attachments-container {\\n margin-bottom: 10px;\\n}\\n\\n:host e-query-details-text-field {\\n flex: 1;\\n}\\n\\n.e-query-label-text::ng-deep label {\\n width: auto;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n \\r\\n \\r\\n Comments\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Text is too long\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./e-query-comments.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\nhr {\\n border: none;\\n border-top: 2px solid #0080af;\\n color: #0080af;\\n overflow: visible;\\n text-align: left;\\n height: 5px;\\n}\\n\\nhr:before {\\n background-color: #fff;\\n padding: 0 4px 0 0;\\n position: relative;\\n top: -13px;\\n font-size: 14px;\\n}\\n\\n.e-query-details-text-container {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 12px;\\n margin-right: 24px;\\n}\\n\\n.e-query-details-label {\\n font-weight: 800;\\n}\\n\\n.e-query-details-text {\\n font-weight: 400;\\n padding-left: 5px;\\n}\\n\\n.e-query-label-text {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 5px;\\n}\\n\\n.e-query-label-text label {\\n color: black;\\n text-decoration-line: underline;\\n text-decoration-style: solid;\\n text-decoration-color: #0080af;\\n text-decoration-thickness: 2px;\\n text-underline-position: under;\\n display: inline-block;\\n text-align: right;\\n width: 170px;\\n font-weight: bold;\\n margin-bottom: 1px;\\n margin-right: 5px;\\n}\\n\\n.separator {\\n border-bottom: 3px #0080af dashed;\\n width: 158px;\\n margin: 15px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n \\r\\n {{item.uploadFileName}}\\r\\n file_download\\r\\n \\r\\n \\r\\n {{item.description}}\\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./e-query-attachments-list.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n:host mdl-icon {\\n vertical-align: middle;\\n padding-left: 12px;\\n cursor: pointer;\\n}\\n\\n:host .attachment-label {\\n font-weight: 800;\\n cursor: pointer;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./external-user-e-query-content-block.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".mdl-dialog__content {\\n padding: 0px 24px 24px 24px;\\n}\\n\\n.global-popup__title {\\n padding: 10px;\\n}\\n\\n\", \"\"]);\n\n// exports\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\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./investigator-e-query-details-dialog.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\nhr {\\n border: none;\\n border-top: 2px solid #0080af;\\n color: #0080af;\\n overflow: visible;\\n text-align: left;\\n height: 5px;\\n}\\n\\nhr:before {\\n background-color: #fff;\\n padding: 0 4px 0 0;\\n position: relative;\\n top: -13px;\\n font-size: 14px;\\n}\\n\\n.e-query-details-text-container {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 12px;\\n margin-right: 24px;\\n}\\n\\n.e-query-details-label {\\n font-weight: 800;\\n}\\n\\n.e-query-details-text {\\n font-weight: 400;\\n padding-left: 5px;\\n}\\n\\n.e-query-label-text {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 5px;\\n}\\n\\n.e-query-label-text label {\\n color: black;\\n text-decoration-line: underline;\\n text-decoration-style: solid;\\n text-decoration-color: #0080af;\\n text-decoration-thickness: 2px;\\n text-underline-position: under;\\n display: inline-block;\\n text-align: right;\\n width: 170px;\\n font-weight: bold;\\n margin-bottom: 1px;\\n margin-right: 5px;\\n}\\n\\n.separator {\\n border-bottom: 3px #0080af dashed;\\n width: 158px;\\n margin: 15px;\\n}\\n\\n:host {\\n width: 100%;\\n overflow-y: auto;\\n}\\n\\n:host .details-container {\\n display: flex;\\n flex-direction: column;\\n justify-content: space-between;\\n height: 100%;\\n}\\n\\n:host .e-query-title-container e-query-details-text-field::ng-deep .e-query-label-text label {\\n max-width: 120px;\\n}\\n\\n:host .e-query-title-container {\\n margin-left: -40px;\\n}\\n\\n:host global-popup::ng-deep div.global-popup {\\n bottom: auto;\\n max-height: 70%;\\n}\\n\\n:host global-popup::ng-deep div.global-popup__content {\\n max-height: calc(70vh - 68px);\\n}\\n\\n@media (max-width: 550px) and (orientation: portrait), (max-width: 900px) and (orientation: landscape), (max-height: 550px) and (orientation: landscape) {\\n :host global-popup::ng-deep div.global-popup {\\n max-height: 70%;\\n bottom: auto;\\n }\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./investigator-awaiting-e-queries.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.grid {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./investigator-submitted-e-queries.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.grid {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./investigator-e-query-tabs.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.full-height {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./investigator-e-query-grid.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\\r\\n\\r\\n {{tooltipText}}\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./notification-icon.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.mdl-button {\\n height: 50px;\\n max-width: 78px;\\n min-width: 0;\\n display: flex;\\n flex-direction: column;\\n padding: 4px 8px 0 8px;\\n white-space: normal;\\n}\\n\\n.mdl-button .label {\\n font-size: 10px;\\n line-height: 10px;\\n font-weight: 400;\\n text-transform: none;\\n}\\n\\n.mdl-button .mdl-badge:after {\\n top: 4px;\\n right: 4px;\\n background-color: #D32F2F;\\n}\\n\\n.disabled-link {\\n cursor: default;\\n opacity: 0.5;\\n}\\n\\n.popover-container {\\n padding: 1rem;\\n max-height: 450px;\\n overflow: auto;\\n}\\n\\nmdl-list mdl-list-item:hover {\\n background-color: rgba(158, 158, 158, 0.2);\\n cursor: pointer;\\n}\\n\\nmdl-popover {\\n width: 300px;\\n left: -120px;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-button {\\n justify-content: center;\\n padding: 0;\\n }\\n\\n .mdl-button .label {\\n display: none;\\n }\\n\\n .mdl-badge {\\n text-align: left;\\n margin: 0 2px;\\n min-width: 40px;\\n }\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\"","module.exports = \"\\r\\n\\r\\n\\r\\n {{userName}}\\r\\n {{emulatedUserFullName}} ({{userName}})\\r\\n\\r\\n\\r\\n
\\r\\n {{item.itemText}}\\r\\n {{item.itemText}}\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./toolbar-menu.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.logged-in-user {\\n text-transform: none;\\n color: #616161;\\n height: 50px;\\n line-height: 50px;\\n padding: 0;\\n font-weight: 400;\\n}\\n\\n.logout-button {\\n color: #616161;\\n font-weight: 400;\\n height: 50px;\\n}\\n\\n.original-user {\\n color: #F44336;\\n}\\n\\n.user-tooltip {\\n display: none;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .label {\\n display: none;\\n }\\n\\n .emulated-icon {\\n color: #F44336;\\n }\\n\\n .user-tooltip {\\n display: block;\\n }\\n}\\n\\n@media screen and (max-width: 800px) {\\n .logout-button {\\n display: none;\\n }\\n}\\n\\n\", \"\"]);\n\n// exports\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
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./header.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"notification-bar {\\n margin-right: 8px;\\n}\\n\\n.mdl-button.mdl-flat {\\n color: #666;\\n background-color: #fff;\\n}\\n\\n.sample-tracking-button {\\n height: 50px;\\n max-width: 78px;\\n min-width: 0;\\n display: flex;\\n flex-direction: column;\\n padding: 4px 8px 0 8px;\\n white-space: normal;\\n align-items: center;\\n}\\n\\n.sample-tracking-label {\\n font-size: 10px;\\n line-height: 10px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n \\r\\n

Announcements

\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
    \\r\\n
  • \\r\\n \\r\\n \\r\\n \\r\\n {{announcement.titleAnnouncement}}\\r\\n New\\r\\n \\r\\n \\r\\n
  • \\r\\n
\\r\\n\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./announcements.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\nmdl-card.announcements {\\n padding: 20px 0 0 0;\\n width: auto;\\n background: rgb(250,250,250);\\n}\\n\\nmdl-card.announcements mdl-card-title {\\n padding: 0 20px 16px 20px;\\n}\\n\\nmdl-card.announcements mdl-card-supporting-text {\\n padding: 0;\\n width: inherit;\\n}\\n\\nmdl-card.announcements ul.announcements-list {\\n padding: 0;\\n margin: 0;\\n}\\n\\nmdl-card.announcements ul.announcements-list .announcements-list__item {\\n font-size: 14px;\\n font-weight: 400;\\n line-height: 24px;\\n letter-spacing: 0;\\n opacity: 0.87;\\n font-size: 13px;\\n height: inherit;\\n min-height: 32px;\\n padding: 5px 20px 5px 20px;\\n border-radius: 2px;\\n cursor: pointer;\\n transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1);\\n}\\n\\nmdl-card.announcements ul.announcements-list .announcements-list__item > .mdl-list__item-primary-content {\\n height: inherit;\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n}\\n\\nmdl-card.announcements ul.announcements-list .announcements-list__item > .mdl-list__item-primary-content > .mdl-list__item-text-body {\\n height: inherit;\\n}\\n\\nmdl-card.announcements ul.announcements-list .announcements-list__item:hover {\\n background-color: rgb(224,224,224);\\n}\\n\\nmdl-card.announcements ul.announcements-list .announcements-list__item span.pin {\\n display: inline-block;\\n height: 8px;\\n width: 8px;\\n border-radius: 50%;\\n background-color: #FFB300;\\n margin-right: 5px;\\n}\\n\\nmdl-card.announcements ul.announcements-list .announcements-list__item .new-item {\\n background: #9CCC65;\\n font-size: 10px;\\n padding: 0 4px;\\n border-radius: 3px;\\n font-weight: 600;\\n margin-left: 8px;\\n}\\n\\n.mdl-progress {\\n height: 1px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n \\r\\n

Common Links

\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./common-links.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\nmdl-card.common-links {\\n padding: 24px 0 0 0;\\n width: auto;\\n background: rgb(250,250,250);\\n min-height: 0;\\n overflow: visible;\\n}\\n\\nmdl-card.common-links mdl-card-title {\\n padding: 0 20px 16px 20px;\\n display: flex;\\n justify-content: space-between;\\n}\\n\\nmdl-card.common-links mdl-card-supporting-text {\\n padding: 0;\\n width: inherit;\\n}\\n\\nmdl-card.common-links ul.common-links-list {\\n padding: 0;\\n margin: 0;\\n}\\n\\nmdl-card.common-links ul.common-links-list .common-links-list__item {\\n font-size: 14px;\\n font-weight: 400;\\n line-height: 24px;\\n letter-spacing: 0;\\n opacity: 0.87;\\n font-size: 13px;\\n line-height: 20px;\\n min-height: inherit;\\n padding: 5px 20px 5px 20px;\\n border-radius: 2px;\\n transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1);\\n display: flex;\\n flex-direction: column;\\n align-items: stretch;\\n align-content: stretch;\\n overflow: visible;\\n}\\n\\nmdl-card.common-links ul.common-links-list .common-links-list__item > a {\\n color: inherit;\\n}\\n\\nmdl-card.common-links ul.common-links-list .common-links-list__item:hover {\\n background-color: rgb(224,224,224);\\n}\\n\\n.mdl-progress {\\n height: 1px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Investigator Portal\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n {{isDrawerCollapsed ? 'Expand sidebar' : 'Collapse sidebar'}}\\r\\n \\r\\n \\r\\n Home\\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./workspace-level-layout.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".wrapper {\\n display: flex;\\n flex-direction: column;\\n flex-grow: 1;\\n}\\n\\n.dashboard-link {\\n font-size: 12px;\\n color: #616161;\\n min-width: auto;\\n display: flex;\\n align-items: center;\\n}\\n\\n.dashboard-link .material-icons {\\n font-size: 18px;\\n}\\n\\n.header-title {\\n flex-shrink: 1;\\n min-width: 40px;\\n}\\n\\n.header-title .inner-header-title {\\n display: flex;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n}\\n\\n.home-button-tooltip {\\n display: none;\\n}\\n\\n.is-drawer-collapsed .home-button-tooltip {\\n display: block;\\n}\\n\\n.collapse-button {\\n height: 29px;\\n justify-content: flex-end;\\n}\\n\\n.collapse-button .material-icons {\\n width: 8px;\\n}\\n\\n.mdl-navigation {\\n flex-grow: 1;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{title$ | async}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./dashboard-level-layout.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\nmain {\\n display: flex;\\n}\\n\\nmain div.dashboard-layout-container {\\n flex-grow: 1;\\n margin: 0;\\n}\\n\\nmain div.dashboard-layout-content {\\n padding: 0 20px;\\n overflow-y: auto;\\n display: flex;\\n flex-direction: column;\\n}\\n\\nmain div.dashboard-layout-right-panel ::ng-deep {\\n background: rgb(250,250,250);\\n border-left: 1px solid rgba(0, 0, 0, 0.08);\\n overflow-y: auto;\\n}\\n\\nmain div.dashboard-layout-right-panel ::ng-deep mdl-card {\\n flex: 1;\\n}\\n\\n.shrink {\\n flex-shrink: 1;\\n}\\n\\n.app-title {\\n align-self: center;\\n letter-spacing: 0px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./admin-navigation.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n {{item.value}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Start date can't be later than end date\\r\\n \\r\\n \\r\\n Empty date\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./audit-trail-export.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.wrapper {\\n margin: 20px;\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.menu-select {\\n margin-bottom: 24px;\\n}\\n\\n.horizontal-container {\\n display: flex;\\n justify-content: flex-start;\\n}\\n\\ncovance-date-picker {\\n margin-right: 10px;\\n}\\n\\nlabel {\\n color: #9E9E9E;\\n}\\n\\nlabel .preposition-label {\\n padding: 0 3px;\\n}\\n\\n.mdl-dialog__actions {\\n margin-top: 24px;\\n padding: 0 8px 0 0;\\n}\\n\\n.error-message {\\n color: #F44336;\\n font-size: 10px;\\n margin-top: 3px;\\n display: block;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n
\\r\\n
0\\\">\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./admin-kit-inventory.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".full-height {\\n display: flex;\\n flex-direction: column;\\n flex-grow: 1;\\n}\\n\\n\", \"\"]);\n\n// exports\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
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./admin-kit-inventory-onhand.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\ncovance-ag-grid ::ng-deep .ag-row .ag-cell {\\n display: flex;\\n justify-content: flex-start;\\n /* align text left */\\n align-items: center;\\n /* align horizontal */\\n}\\n\\n.grid-toolbar-content {\\n display: flex;\\n flex-grow: 1;\\n justify-content: flex-end;\\n}\\n\\nprotocol-search-select {\\n margin-left: 20px;\\n}\\n\\n.mdl-textfield__error {\\n visibility: visible;\\n position: static;\\n margin-top: -10px;\\n display: flex;\\n /*flex-grow: 1;*/\\n justify-content: center;\\n}\\n\\n.mandatory-warning {\\n padding-left: 6px;\\n padding-right: 8px;\\n}\\n\\n.wrapper {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n}\\n\\n.wrapper .toolbar {\\n display: flex;\\n justify-content: flex-end;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n Your request produced too many records. Only the first {{warningThreshhold}} are shown. Try to narrow your filters.\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./admin-kit-inventory-expiration.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\ncovance-ag-grid ::ng-deep .ag-row .ag-cell {\\n display: flex;\\n justify-content: flex-start;\\n /* align text left */\\n align-items: center;\\n /* align horizontal */\\n}\\n\\n.grid-toolbar-content {\\n display: flex;\\n flex-grow: 1;\\n justify-content: flex-end;\\n}\\n\\nprotocol-search-select {\\n margin-left: 20px;\\n}\\n\\n.mdl-textfield__error {\\n visibility: visible;\\n position: static;\\n margin-top: -10px;\\n display: flex;\\n /*flex-grow: 1;*/\\n justify-content: center;\\n}\\n\\n.wrapper {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n}\\n\\n.wrapper .toolbar {\\n display: flex;\\n justify-content: flex-end;\\n}\\n\\n.large-data-warning {\\n display: flex;\\n justify-content: flex-start;\\n padding-left: 12px;\\n padding-top: 12px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n {{reason}}\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n Custom reason\\r\\n\\r\\n\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./audit-trail-reason.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".custom-reason-checked {\\n width: auto;\\n}\\n\\n\", \"\"]);\n\n// exports\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 Audit Reason\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./coordinator-e-query-details-dialog.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\nhr {\\n border: none;\\n border-top: 2px solid #0080af;\\n color: #0080af;\\n overflow: visible;\\n text-align: left;\\n height: 5px;\\n}\\n\\nhr:before {\\n background-color: #fff;\\n padding: 0 4px 0 0;\\n position: relative;\\n top: -13px;\\n font-size: 14px;\\n}\\n\\n.e-query-details-text-container {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 12px;\\n margin-right: 24px;\\n}\\n\\n.e-query-details-label {\\n font-weight: 800;\\n}\\n\\n.e-query-details-text {\\n font-weight: 400;\\n padding-left: 5px;\\n}\\n\\n.e-query-label-text {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 5px;\\n}\\n\\n.e-query-label-text label {\\n color: black;\\n text-decoration-line: underline;\\n text-decoration-style: solid;\\n text-decoration-color: #0080af;\\n text-decoration-thickness: 2px;\\n text-underline-position: under;\\n display: inline-block;\\n text-align: right;\\n width: 170px;\\n font-weight: bold;\\n margin-bottom: 1px;\\n margin-right: 5px;\\n}\\n\\n.separator {\\n border-bottom: 3px #0080af dashed;\\n width: 158px;\\n margin: 15px;\\n}\\n\\n:host {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n width: 100%;\\n overflow-y: auto;\\n}\\n\\n:host .comments {\\n padding-top: 0;\\n}\\n\\n:host .mdl-textfield {\\n padding-bottom: 5px;\\n width: 100%;\\n}\\n\\n:host .mdl-dialog__content {\\n padding: 0px 24px 24px 24px;\\n}\\n\\n:host .global-popup__title {\\n padding: 10px;\\n}\\n\\n:host global-popup::ng-deep div.global-popup {\\n bottom: auto;\\n max-height: 70%;\\n}\\n\\n:host global-popup::ng-deep div.global-popup__content {\\n max-height: calc(70vh - 68px);\\n}\\n\\n@media (max-width: 550px) and (orientation: portrait), (max-width: 900px) and (orientation: landscape), (max-height: 550px) and (orientation: landscape) {\\n :host global-popup::ng-deep div.global-popup {\\n max-height: 70%;\\n bottom: auto;\\n }\\n}\\n\\n.long-select {\\n width: 400px;\\n padding-left: 15px;\\n}\\n\\n.attachments-upload {\\n padding-bottom: 25px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./admin-e-query-summary.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.wrapper {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n}\\n\\n.wrapper protocol-search-select {\\n margin-left: 20px;\\n}\\n\\n.wrapper .toolbar {\\n display: flex;\\n justify-content: flex-end;\\n}\\n\\n::ng-deep covance-filter-number-type .mdl-textfield {\\n width: 100px !important;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n

{{actionTitle}} eQuery

\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./e-query-hide-dialog.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./admin-e-query-hide.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.wrapper {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n}\\n\\n.wrapper protocol-search-select {\\n margin-left: 20px;\\n}\\n\\n.wrapper .toolbar {\\n display: flex;\\n justify-content: flex-end;\\n}\\n\\n::ng-deep covance-filter-number-type .mdl-textfield {\\n width: 100px !important;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"

Add New Escalation

\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n Email Address is 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
{{ error }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./new-escalation-dialog.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.mdl-textfield__error {\\n margin-top: -20px;\\n}\\n\\n.errors .errors-container {\\n max-height: 100px;\\n overflow-y: auto;\\n}\\n\\n.errors .errors-container .error {\\n color: #F44336;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n

Remove escalation

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
{{ error }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./delete-escalation-dialog.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.error {\\n color: #F44336;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./escalation-removal-button-ag-renderer.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \":host {\\n display: flex;\\n justify-content: center;\\n}\\n\\n.remove {\\n display: flex;\\n justify-content: center;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./admin-escalation-emails.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".grid-toolbar {\\n display: flex;\\n justify-content: flex-end;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./admin-e-query-tabs.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".full-height {\\n display: flex;\\n flex-direction: column;\\n flex-grow: 1;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./coordinator-e-query-tabs.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".full-height {\\n display: flex;\\n flex-direction: column;\\n flex-grow: 1;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./prefilled-e-query-create-form.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".error {\\n font-size: large;\\n color: #f44336;\\n height: 20px;\\n border: solid;\\n margin: 7px;\\n text-align: center;\\n padding: 3px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n \\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./admin-usage-e-query-report.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n This field is required\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./admin-email-notification-alerts-reports.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".toolbar {\\n display: flex;\\n align-items: flex-start;\\n}\\n\\n.report-filter {\\n display: flex;\\n flex-flow: wrap;\\n align-items: baseline;\\n}\\n\\n.report-filter__label {\\n margin-top: 16px;\\n margin-left: 16px;\\n flex-shrink: 0;\\n}\\n\\n.report-filter__input {\\n margin-left: 16px;\\n}\\n\\ncovance-filter-date-range-type ::ng-deep .filter-title {\\n display: none;\\n}\\n\\n.mdl-textfield__error {\\n visibility: visible;\\n margin-top: -20px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n {{columnViewInfo ? 'Edit Column' : 'Add New Column'}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./admin-column-form.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n:host {\\n position: relative;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.settings-header {\\n color: white;\\n background-color: #2998E3;\\n display: flex;\\n justify-content: center;\\n}\\n\\n.heading {\\n font: normal normal bold 16px/28px \\\"Source Sans Pro\\\";\\n}\\n\\n.close {\\n left: 350px !important;\\n}\\n\\n.email-checkbox {\\n position: relative;\\n top: 5px;\\n padding: 10px;\\n margin-left: unset;\\n display: flex;\\n height: 18px;\\n margin-bottom: 5px;\\n margin-left: unset;\\n padding-left: unset;\\n font-size: 14px;\\n font-weight: bold;\\n cursor: pointer;\\n}\\n\\n.email-checkbox input {\\n width: 16px;\\n height: 16px;\\n cursor: pointer;\\n margin-right: 7px;\\n}\\n\\n.reduce-top {\\n top: unset !important;\\n}\\n\\n.reduce-bottom {\\n margin-bottom: 10px;\\n}\\n\\n.form-group {\\n display: flex;\\n margin: 1rem;\\n}\\n\\n.form-group-text {\\n display: grid;\\n margin-left: 1rem;\\n}\\n\\n.form-group-text sm-form-field::ng-deep .form-section {\\n padding-top: unset !important;\\n width: unset;\\n margin-left: 3rem;\\n}\\n\\n.column {\\n margin-left: 3rem;\\n margin-right: 3rem;\\n min-width: 350px;\\n}\\n\\n.align-form-element sm-form-field::ng-deep .form-section {\\n padding-top: 0.5rem;\\n}\\n\\nsm-form-field::ng-deep .form-section .mdl-textfield__label {\\n justify-content: left !important;\\n text-align: left !important;\\n padding-left: 6px;\\n width: fit-content;\\n}\\n\\n.settings-action {\\n display: flex;\\n padding: 20px;\\n justify-content: center;\\n}\\n\\n.settings-action button {\\n border: none;\\n background-color: transparent;\\n width: 70px;\\n height: 35px;\\n border-radius: 22px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n cursor: pointer;\\n}\\n\\n.settings-action .cancel {\\n color: #3A5CE9;\\n margin-right: 15px;\\n}\\n\\n.settings-action .cancel:hover {\\n color: #1A2188;\\n}\\n\\n.settings-action .delete {\\n color: #DC1439;\\n margin-right: 15px;\\n width: fit-content;\\n margin-left: 25px;\\n}\\n\\n.settings-action .delete:hover {\\n color: #ad0323;\\n}\\n\\n.settings-action .apply {\\n color: white;\\n background-color: #3A5CE9;\\n font-weight: bold;\\n margin-left: 15px;\\n}\\n\\n.settings-action .apply:disabled {\\n background-color: #99ABF3;\\n cursor: not-allowed;\\n pointer-events: none;\\n}\\n\\n.settings-action .apply:hover {\\n background-color: #1A2188;\\n}\\n\\n\", \"\"]);\n\n// exports\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 Column Settings\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n All Available Columns ({{availableColumns?.length}})\\r\\n
\\r\\n
Select the columns you'd like to see and click Add or drag to the right.
\\r\\n
Double click on the columns to edit/delete.
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n {{availableColumn.columnDisplayName}}\\r\\n
\\r\\n \\r\\n Drop here / Select and Click Remove\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
Default Columns ({{defaultColumns?.length}})
\\r\\n
Drag and drop to arrange columns. Select and drag or click to remove.
\\r\\n
Double click on the columns to edit/delete.
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n {{selectedColumn.columnDisplayName}}\\r\\n
\\r\\n \\r\\n Drop here / Select and Click Add\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./edit-columns.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n:host {\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.container {\\n margin: 20px;\\n}\\n\\n.toolbar {\\n display: flex;\\n flex-direction: column;\\n margin-bottom: 3vh;\\n}\\n\\n.toolbar .first-row,\\n.toolbar .second-row {\\n display: flex;\\n flex-direction: row;\\n align-items: center;\\n}\\n\\napp-select::ng-deep .all {\\n background-color: #fff !important;\\n}\\n\\napp-select::ng-deep .title {\\n font-weight: 800;\\n font-size: 14px;\\n font-family: \\\"Source Sans Pro\\\";\\n padding-left: 0;\\n}\\n\\napp-select::ng-deep .clear-selected,\\napp-select::ng-deep .selected-item-close {\\n display: none;\\n}\\n\\napp-select::ng-deep .selected-item {\\n background-color: white !important;\\n}\\n\\napp-select::ng-deep .selected-item .selected-item-text {\\n color: black !important;\\n}\\n\\napp-select::ng-deep .all .selected-item-text {\\n color: #808080 !important;\\n}\\n\\n.settings-header {\\n display: flex;\\n justify-content: center;\\n}\\n\\n.heading {\\n font: normal normal bold 16px/28px \\\"Source Sans Pro\\\";\\n}\\n\\n.inner-heading {\\n padding-top: 2vh;\\n display: inline-flex;\\n}\\n\\n.sub-heading {\\n font: normal normal normal 12px/12px \\\"Source Sans Pro\\\";\\n padding: 10px 0;\\n padding-bottom: 3vh;\\n}\\n\\n.settings-container {\\n display: flex;\\n}\\n\\n.settings-container .columns {\\n display: inherit;\\n flex-direction: column;\\n padding: 0 3vh;\\n width: 40%;\\n max-width: 600px;\\n}\\n\\n.settings-container .columns .columns-outline {\\n border: 1px solid lightgrey;\\n display: inherit;\\n flex-direction: column;\\n min-height: 80vh;\\n padding: 2px;\\n border-radius: 5px;\\n overflow-y: scroll;\\n}\\n\\n.settings-container .columns .column {\\n margin: 2px;\\n border-radius: 3px;\\n cursor: grab;\\n display: inherit;\\n align-items: center;\\n padding: 2px;\\n padding-left: 1vh;\\n cursor: grab;\\n font-size: 14px;\\n}\\n\\n.settings-container .columns .column .dot-img {\\n padding-right: 1.5vh;\\n bottom: 2.5px;\\n position: relative;\\n}\\n\\n.settings-container .columns .column .hidden-img {\\n bottom: unset;\\n padding-right: 1.4vh;\\n}\\n\\n.settings-container .columns .column:hover {\\n background-color: #E9E9E9;\\n}\\n\\n.settings-container .columns .column:active {\\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);\\n cursor: grabbing;\\n}\\n\\n.settings-container .columns .placeholder-column {\\n margin: 1px;\\n background-color: rgba(229, 229, 229, 0.7215686275);\\n display: inherit;\\n align-items: center;\\n justify-content: center;\\n height: 59.8vh;\\n}\\n\\n.settings-container .settings-action {\\n display: inherit;\\n padding: 10px;\\n justify-content: center;\\n}\\n\\n.settings-action {\\n display: flex;\\n justify-content: center;\\n}\\n\\n.settings-action button {\\n border: none;\\n background-color: transparent;\\n width: 70px;\\n height: 35px;\\n border-radius: 22px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n cursor: pointer;\\n}\\n\\n.settings-action .cancel {\\n color: #3A5CE9;\\n margin-right: 15px;\\n}\\n\\n.settings-action .apply {\\n color: white;\\n background-color: #3A5CE9;\\n font-weight: bold;\\n margin-left: 15px;\\n}\\n\\n.settings-action .apply:hover {\\n background-color: #1A2188;\\n}\\n\\n.settings-action .apply:disabled {\\n background: #99ABF3 0% 0% no-repeat padding-box;\\n background-color: #99ABF3;\\n cursor: not-allowed;\\n pointer-events: none;\\n}\\n\\n.add-column {\\n color: #3A5CE9;\\n border: none;\\n background-color: transparent;\\n margin-left: 15px;\\n font-family: \\\"Source Sans Pro\\\";\\n top: -5px;\\n position: relative;\\n font-size: 15px;\\n cursor: pointer;\\n}\\n\\n.add-column .material-icon {\\n color: #3A5CE9;\\n font-size: 20px;\\n top: 4px;\\n right: 5px;\\n position: relative;\\n}\\n\\n.add-column:hover {\\n color: #1A2188;\\n}\\n\\n.add-column:hover .material-icon {\\n color: #1A2188;\\n}\\n\\n::-webkit-scrollbar {\\n width: 5px;\\n height: 14px;\\n}\\n\\n::-webkit-scrollbar-track {\\n background: #ffffff;\\n}\\n\\n::-webkit-scrollbar-thumb {\\n background: #C6D0F9;\\n}\\n\\n::-webkit-scrollbar-thumb:hover {\\n background: #3A5CE9;\\n}\\n\\n.columns-outline.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder) {\\n transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);\\n}\\n\\n.cdk-drag {\\n transition: transform 150ms ease;\\n}\\n\\n.cdk-drag-animating {\\n transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);\\n}\\n\\n.cdk-drag-placeholder {\\n background: #E8E8E8 !important;\\n border: 1px dashed #707070 !important;\\n border-radius: 3px;\\n font-size: 0 !important;\\n transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);\\n}\\n\\n.cdk-drag-placeholder img {\\n display: none !important;\\n}\\n\\n.cdk-drag-preview {\\n background-color: #E9E9E9 !important;\\n border: 1px solid #d9d9d9 !important;\\n box-sizing: border-box;\\n border-radius: 4px;\\n margin: 2px;\\n padding: 3px;\\n padding-top: 2px;\\n padding-left: 6px;\\n padding-bottom: 9px;\\n cursor: grabbing;\\n align-items: center;\\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);\\n z-index: 999999 !important;\\n color: black !important;\\n font-family: \\\"Source Sans Pro\\\";\\n font-size: 14px;\\n}\\n\\n.cdk-drag-preview .dot-img {\\n padding-right: 1vh;\\n bottom: 3.7px;\\n position: relative;\\n}\\n\\n.cdk-drag-preview .hidden-img {\\n bottom: 1.7px;\\n}\\n\\n.cdk-drag-preview .lock-img {\\n padding-left: 0.4vh;\\n bottom: 1.7px;\\n position: relative;\\n}\\n\\n.section-tool-tip {\\n background: #F1F3FE !important;\\n color: #000000 !important;\\n font-weight: bold;\\n font-size: 14px;\\n}\\n\\n.hide-tool-tip {\\n display: none;\\n}\\n\\n.tool-tip {\\n background-color: #1A2188;\\n border-color: #1A2188;\\n color: white;\\n display: flex;\\n width: 25px;\\n justify-content: center;\\n position: relative;\\n text-align: center;\\n border-radius: 8px;\\n height: 25px;\\n left: 15px;\\n cursor: pointer;\\n top: 3px;\\n}\\n\\n.tool-tip .tool-tip-icon {\\n display: flex;\\n font-weight: bold;\\n width: 15px;\\n justify-content: center;\\n align-items: center;\\n background-color: white;\\n border-radius: 20px;\\n height: 15px;\\n color: #1A2188;\\n margin-top: 5px;\\n font-size: 12px;\\n}\\n\\n.section-header {\\n display: inline-flex;\\n min-width: 900px;\\n max-width: 1400px;\\n justify-content: space-between;\\n}\\n\\n.loading-active {\\n display: flex !important;\\n}\\n\\n.loading {\\n display: none;\\n width: 15px;\\n}\\n\\n.loading app-spinner ::ng-deep .spinner-wrapper {\\n padding: 0px !important;\\n left: 4px;\\n position: relative;\\n}\\n\\n.loading app-spinner ::ng-deep .mdl-spinner {\\n height: 15px;\\n width: 15px;\\n}\\n\\n.loading app-spinner ::ng-deep .mdl-spinner__layer-1,\\n.loading app-spinner ::ng-deep .mdl-spinner__layer-2,\\n.loading app-spinner ::ng-deep .mdl-spinner__layer-3,\\n.loading app-spinner ::ng-deep .mdl-spinner__layer-4 {\\n border-color: white;\\n}\\n\\n\", \"\"]);\n\n// exports\n","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./site-documents.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".toolbar {\\n margin: 8px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n {{site.siteDisplayName}}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
0\\\">\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","module.exports = \"\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sponsor-navigation.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"covance-side-nav ::ng-deep .icon-img {\\n padding-right: 10px !important;\\n}\\n\\n\", \"\"]);\n\n// exports\n","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \":host {\\n position: relative;\\n}\\n\\ndocuments-grid {\\n display: flex;\\n flex-direction: column;\\n flex-grow: 1;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\"","module.exports = \"\\r\\n\"","module.exports = \"\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sponsor-activity-report-documents.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".full-height {\\n flex-grow: 1;\\n display: flex;\\n flex-direction: column;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\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 \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sponsor-trend-analysis.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".full-height {\\n display: flex;\\n flex-direction: column;\\n flex-grow: 1;\\n}\\n\\n.toolbar {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n margin-left: 6px;\\n}\\n\\n\", \"\"]);\n\n// exports\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 Study Days\\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\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./study-sites.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \":host {\\n position: relative;\\n}\\n\\n.page-controls {\\n display: flex;\\n flex-wrap: wrap;\\n align-items: center;\\n background-color: #fff;\\n padding: 0;\\n}\\n\\n.page-controls .select-filter {\\n display: flex;\\n align-items: center;\\n margin-left: 16px;\\n}\\n\\n.page-controls .select-filter .selected-filter-title {\\n padding-right: 8px;\\n}\\n\\n.page-controls .select-filter .mdl-select {\\n display: flex;\\n align-items: center;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
This study is very large. Please select a site.
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./study-subjects.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \":host {\\n position: relative;\\n}\\n\\n.page-controls {\\n display: flex;\\n flex-wrap: wrap;\\n align-items: center;\\n background-color: #fff;\\n padding: 8px;\\n}\\n\\n.page-controls .select-filter {\\n display: flex;\\n align-items: center;\\n margin-left: 16px;\\n}\\n\\n.page-controls .select-filter .selected-filter-title {\\n padding-right: 8px;\\n}\\n\\n.page-controls .select-filter .mdl-select {\\n display: flex;\\n align-items: center;\\n}\\n\\n.page-controls .large-study-warning-message {\\n margin-left: 12px;\\n}\\n\\n\", \"\"]);\n\n// exports\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
{{selectedSubject.sex}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
{{selectedSubject.initials}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
{{selectedSubject?.age}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
{{selectedSubject?.ageProjectDisplayValue}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{selectedSubject?.siteDisplayName}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sponsor-subject.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.select-subject-container {\\n display: flex;\\n font-size: 14px;\\n padding: 8px;\\n}\\n\\n.select-subject-container label {\\n color: #9E9E9E;\\n font-weight: normal;\\n padding-right: 5px;\\n}\\n\\n.full-height-container {\\n display: flex;\\n flex-direction: column;\\n flex-grow: 1;\\n}\\n\\n.select-subject {\\n display: flex;\\n margin: 0 30px 0 8px;\\n}\\n\\n.select-subject .select-subject-label {\\n display: flex;\\n align-items: center;\\n}\\n\\n.subject-data-wrapper {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n flex-grow: 1;\\n}\\n\\n.subject-data-wrapper .subject-details {\\n margin: auto 0 auto 0;\\n display: flex;\\n flex-direction: row;\\n font-weight: 600;\\n color: #666;\\n}\\n\\n.subject-data-wrapper .subject-details .subject-attribute {\\n display: flex;\\n margin: 0 24px;\\n}\\n\\n.subject-data-wrapper .subject-details data-revision-indicator {\\n display: flex;\\n align-items: center;\\n}\\n\\n.subject-tabs {\\n position: relative;\\n}\\n\\n.subject-tabs .mdl-tabs__tab-bar {\\n justify-content: flex-start;\\n}\\n\\n.subject-tabs .mdl-tabs__tab-bar .mdl-tabs__tab.is-active mdl-tab-panel-title {\\n color: #626971;\\n}\\n\\n.mdl-tabs__tab {\\n cursor: pointer;\\n}\\n\\n.right-side-panel {\\n position: absolute;\\n right: 0;\\n top: 0;\\n display: flex;\\n align-items: center;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{s.siteDisplayName}}\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
0\\\">\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sponsor-test-results.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".full-height {\\n display: flex;\\n flex-direction: column;\\n flex-grow: 1;\\n}\\n\\n.toolbar {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n margin-left: 6px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sponsor-standard-test-results.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".full-height {\\n display: flex;\\n flex-direction: column;\\n flex-grow: 1;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sponsor-microbiology.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".full-height-flex {\\n display: flex;\\n flex-direction: column;\\n flex-grow: 1;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".spinner {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n}\\n\\n.no-data-available {\\n position: absolute;\\n top: 50%;\\n left: 45%;\\n font-size: 16px;\\n font-weight: bold;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n Split Genders\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n {{xAxisTitle | async}}\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n Your request produced too many records. Only the first {{warningThreshhold}} are shown. Try to narrow your filters.\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sponsor-lab-reports.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".toolbar {\\n display: flex;\\n justify-content: flex-start;\\n align-items: center;\\n margin: 0 8px;\\n padding-bottom: 8px;\\n}\\n\\n.category-selector {\\n display: flex;\\n justify-content: space-between;\\n padding: 16px 0;\\n}\\n\\n.full-height {\\n flex-grow: 1;\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.upload-grid-toolbar {\\n display: flex;\\n justify-content: flex-end;\\n}\\n\\n.category-selector ::ng-deep .mdl-list {\\n max-height: 400px;\\n}\\n\\n.mandatory-filter mdl-select {\\n width: 200px;\\n}\\n\\n:host ::ng-deep .search-container {\\n display: none;\\n}\\n\\n.large-data-warning {\\n padding-left: 12px;\\n padding-top: 12px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n
\\r\\n
0\\\">\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sponsor-kit-inventory.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".full-height {\\n display: flex;\\n flex-direction: column;\\n flex-grow: 1;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sponsor-kit-inventory-onhand.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\ncovance-ag-grid ::ng-deep .ag-row .ag-cell {\\n display: flex;\\n justify-content: flex-start;\\n /* align text left */\\n align-items: center;\\n /* align horizontal */\\n}\\n\\n.grid-toolbar-content {\\n display: flex;\\n flex-grow: 1;\\n justify-content: flex-end;\\n}\\n\\n.mandatory-warning {\\n padding-left: 6px;\\n padding-right: 8px;\\n}\\n\\n.wrapper {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n}\\n\\n.wrapper .toolbar {\\n display: flex;\\n justify-content: flex-end;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n Your request produced too many records. Only the first {{warningThreshhold}} are shown. Try to narrow your filters.\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sponsor-kit-inventory-expiration.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\ncovance-ag-grid ::ng-deep .ag-row .ag-cell {\\n display: flex;\\n justify-content: flex-start;\\n /* align text left */\\n align-items: center;\\n /* align horizontal */\\n}\\n\\n.grid-toolbar-content {\\n display: flex;\\n flex-grow: 1;\\n justify-content: flex-end;\\n}\\n\\n.mandatory-warning {\\n padding-left: 6px;\\n padding-right: 8px;\\n}\\n\\n.wrapper {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n}\\n\\n.wrapper .toolbar {\\n display: flex;\\n justify-content: flex-end;\\n}\\n\\n.large-data-warning {\\n display: flex;\\n justify-content: flex-start;\\n padding-left: 12px;\\n padding-top: 12px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n {{s.siteDisplayName}}\\r\\n \\r\\n
\\r\\n
\\r\\n
0\\\">\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sponsor-e-query-tabs.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.full-height {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n}\\n\\n.toolbar {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n margin-left: 6px;\\n margin-top: 6px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sponsor-awaiting-e-queries.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.grid {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sponsor-submitted-e-queries.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.grid {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n

General Definitions:

\\r\\n

TAT = Turn Around Time

\\r\\n

Labcorp CLS: Labcorp Central Laboratory Services

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

Enrollment Period Timelines Dashboard Definitions

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

First Subject In (FSI): The date Labcorp CLS registers as the First Subject/Patient Visit in the Labcorp CLS database for a given protocol/Region

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

In Planning: Date not available yet. This could be because Labcorp has not received the First Subject Visit in the Labcorp CLS database for a given protocol/Region

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

Region: Region where the study is running (North America, Latin America, Asia Pacific, China, EMEA and/or Japan)

\\r\\n\\r\\n
    \\r\\n
  • Americas: North and/or Latin America
  • \\r\\n
  • NA: North America
  • \\r\\n
  • LATAM: Latin America
  • \\r\\n
  • APAC: Asia Pacific
  • \\r\\n
  • CHN: China
  • \\r\\n
  • EMEA: Europe, Middle East, Africa
  • \\r\\n
  • JPN: Japan
  • \\r\\n
  • SIN: Singapore
  • \\r\\n
\\r\\n\\r\\n

First Kit Shipped: Date when the first kit was sent to a Site for a given protocol/Region\\r\\n

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

Kits Not Yet Shipped: First kit has not been shipped to a Site for a given protocol/Region

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

First Visit Not Received: First subject/patient visit has either not occurred or not been received by Labcorp CLS for a given protocol/Region

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

Enrolled Days: Number of days between First Subject In and Today's date

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

Enrolled Subjects: Number of patients that have been enrolled within the Labcorp CLS database for a given protocol/Region

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

% Enrolled Subjects: Percentage of total enrolled patients in each Region

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

Sites Loaded: A Site is considered as loaded when all mandatory Site Investigator contact details have been received from Sponsor/CRO and entered in Labcorp CLS database. A Site must be loaded prior to any shipment of Labcorp CLS kits and supplies. This will be shown for a given protocol/Region.

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

Sites With Kits: Sites that have been loaded and have received at least one Labcorp CLS kit in a given protocol/Region

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

Active Sites (Recruiting): A Site is considered active when a first subject visit is registered in the Labcorp CLS database and it is currently involved in the study for a given protocol/Region

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

First Site Loaded: Date when the first Site has been loaded into the Labcorp CLS database for a given protocol/Region

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

Average Times at Site Startup: Average times are calculated for two time periods
\\r\\n 1) average number of days between the Site loaded in Labcorp CLS database and the first shipment to this Site*
\\r\\n 2) average number of days between the first shipment to a Site and the First Patient Visit received from this Site

\\r\\n

*Some countries require import licenses and kits cannot be shipped until these are granted (e.g. Russia, Ukraine, Latin America, and countries in APAC). Some countries require customs approval and release before the shipment can be delivered to the sites, and this might take several weeks (e.g. Russia, Ukraine, Latin America, countries in APAC, etc.)

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

Data Review Dashboard

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

Under develeopment

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

Acronym

\\r\\n
    \\r\\n
  • TAT:\\r\\n turnaround time
  • \\r\\n
  • NA:\\r\\n North America
  • \\r\\n
  • EMEA\\r\\n Europe, Mitdle East, Africa
  • \\r\\n
  • JPN:\\r\\n Japan
  • \\r\\n
  • CHN:\\r\\n China
  • \\r\\n
  • SIN:\\r\\n Singapore
  • \\r\\n
  • APAC\\r\\n Asia-Pacific
  • \\r\\n
  • CLS:\\r\\n Labcorp Central Lab Service
  • \\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n

Study Performance Dashboard Definitions

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

#Enrolled subjects: Number of patients that have been enrolled within the Labcorp CLS database for a given protocol/Region

\\r\\n
SPECIMEN MANAGEMENT OVERVIEW
\\r\\n

Upon receipt at Labcorp CLS, Specimen Management (SM) samples will be inspected and registered into the database. Unless specified otherwise in the Statement of Work, the below standard procedure will apply:\\r\\n

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

In Storage: This status indicates the specimen is currently located at the Labcorp CLS storage location and is available for shipping with all patient information confirmed.

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

Shipped: The sample has been received at Labcorp CLS and has been shipped to another destination (defined in the Statement of Work or at the Sponsor's request). The sample is no longer available in our facilities.

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

Incorrect Receipt Condition (IC): The sample was received in the wrong condition (ambient or refrigerated instead of frozen or frozen instead of ambient or refrigerated). E.g. it was expected to be received at -20°C frozen but was received in ambient condition. The sample will be stored under incorrect receipt condition pending sponsor decision.\\r\\n

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

Extra Samples: The specimen was not expected based on the visit definition. This could be due to a visit re-assignment or received in addition to the required samples. The sample will be stored in our facilities but is not available for shipping until we receive instructions from the Sponsor.

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

On Hold: The specimen is currently located at the Labcorp CLS storage location but is not available for shipping and requires additional information to be gathered from the investigator Site or Sponsor.

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

Pending Discard: The specimen has been identified as requiring disposal. The sample is added to the discard queue waiting for the pending physical discard. Storage fees are closed at the time the samples go to their “pending discard” status. It can take up to 6 months to be physically discarded. Samples pending discard are not available for shipping.

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

Discarded: The specimen has been scanned out of our specimen management database and has been disposed of, as outlined in the protocol's Statement of Work (SOW).

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

Removed: The specimen is no longer registered under this container number. The sample could have been moved to another container or transferred to another accession or has been aliquoted or processed to additional containers (PBMC, DNA Extraction, APH slides).

\\r\\n \\r\\n
CANCELLATIONS
\\r\\n

A test can be cancelled for various reasons. The most common reasons, with a cancellation rate greater than 1%, are explained below. In these cases, the tests are cancelled, and a cancellation message will appear on the laboratory report. You can review accession cancellations within LabLink and/or the Labcorp Sponsor & Investigator Portals.

\\r\\n

Please contact your Labcorp Global Project Manager if you need additional information on these or other cancellation reasons.

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

Hemolysis-Test Not Performed: For Chemistry, serum samples: Analytes from the routine chemistry panel may be subject to hemolysis interference. The instrument measures the degree of hemolysis of the sample and evaluates each analyte. If the degree of hemolysis is higher than the hemolysis index of the test, the cancellation occurs. The hemolysis index is not the same for all tests, so some tests can be resulted whereas others are cancelled.

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

Quantity Not Sufficient: The quantity of the received sample has been determined as insufficient based on visual review before testing begins. This usually means that there was insufficient sample for even the first testing.

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

Clotted Blood Received: The received sample was clotted in the container. This is usually due to improper mixing after collection, but there are other causes. Labcorp Project Managers can provide document from Medical Affairs called \\\"Clotted Hematology and Coagulation Specimens: What they are? Why they happen? What can be done?\\\" on request.

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

Invalid/Fibrin Clots: Fibrin is present in the sample, which indicates that the coagulation process has already started. Coagulation tests will not be performed since results would be false/distorted. The reasons fibrin clots are present are the same as those for Clotted Blood Received, see above.

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

Specimen Received in Unacceptable Container, Testing Not Performed: Urine has been received in a non-Labcorp CLS container with no indication that a stabilizer tablet has been added.\\r\\n

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

Improperly Collected Specimen: Instructions for specimen collection have not been followed. The collection tube has not been filled to the mark. When this happens, the ratio of whole blood vs anticoagulant is false/distorted, which would cause the result be false/distorted. For Immunology/Quantiferon, only 1 of 3 or 2 of 3 tubes have been collected, or tubes are under-filled or over-filled.

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

Incorrect Specimen Type: The received specimen type does not match the expected sample type (serum instead of plasma, plasma instead of serum).

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

Specimen Received Beyond Stability: Sample received too late, or specimen received ambient instead of frozen or frozen instead of ambient (sample stability).

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

Specimen Consumed in Testing: Sample quantity received was sufficient to perform testing once, but there is not enough sample for repeat testing.

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

Group Ordered to Complete Visit Requirements: Testing has been ordered to complete the visit in the Labcorp CLS database, but testing could not be completed (e.g. sample already discarded, or Out Of Stability (OOO), etc.). This cancellation reason is used so results from the tests could be completed can be released.

\\r\\n\\r\\n
HOLDS
\\r\\n

Main hold reasons on the study in percentages.

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
CategoryIssue TypePotential Issue DescriptionParaphrased Inquiry or\\r\\n Additional Comment\\r\\n
Administrative QuestionsADTxxx / AMTxxxAdministrative question on the requisition not completedIncludes missing date, time, height, weight, fasting status, etc. Admin questions are study\\r\\n specific.
Subject AgeAGEAge did not increment expectedPlease verify the patient's age, the age provided did not progress as expected.
Subject AgeAGEAge does not meet study restrictionsDue to the collection date query, please reconfirm the patient's age.
Subject AgeAGEAge needs verification due to study restrictionsPlease verify the patient's age, the age provided did not match the study's expectation of\\r\\n [protocol\\r\\n defined age range].
Subject AgeAGEAge was not providedPlease provide the patient's age. It is missing or unclear on the requisition form.
CommentsCOM / PCFCOMAccession number previously receivedThis accession was already received for another visit. Please be informed that this visit will\\r\\n be\\r\\n reported with accession # [reassigned accession].
CommentsCOM / PCFCOMDiscrepancy in patient IDWe received samples labeled with a subject ID that does not match the subject ID on the\\r\\n requisition\\r\\n and/or other samples. Please confirm to which patient these samples belong.
CommentsCOM / PCFCOMInquiries not falling in other categoriesFree text inquiry
CommentsCOM / PCFCOMNo requisition received with a kit or containersWe received samples for specified accession with listed subject ID but did not receive a\\r\\n requisition. Please send a copy of the requisition as soon as possible.
CommentsCOM / PCFCOMRelabeling of tubes or requisitionAccession number on requisition and tubes do not match but the subject ID is consistent across\\r\\n both.\\r\\n Accession number on containers and requisition must match to proceed. We relabeled the\\r\\n requisition\\r\\n or containers to match. Please confirm this is correct.
CommentsCOM / PCFCOMRequisition without barcodeA requisition without a barcode was received. Please be informed that upon receipt, an accession\\r\\n number was assigned to this visit (accession included)
CommentsCOM / PCFCOMUnexpected containerWe received an unexpected container (any labeling included). This appears to be an extra\\r\\n container.\\r\\n Please verify if additional testing is needed or advise to discard.
Date of BirthDOBPatient date of birth missingPlease provide the patient's date of birth in the format requested by the study. This\\r\\n information is\\r\\n missing or unclear on the requisition. (Legacy or pediatric studies)
Date of BirthDOBPatient date of birth missingPlease provide the patient's year of birth in the format requested by the study. This\\r\\n information is\\r\\n missing or unclear on the requisition
Date of BirthDOBPatient year of birth needs verification due to study restrictionsPlease provide the patient's year of birth in the format requested by the study. This\\r\\n information is\\r\\n missing or unclear on the requisition.
MedKit No.MKNMedKit No. missing or needs verificationPlease provide the patient's randomization number. This information is\\r\\n missing or unclear on the requisition.\\r\\n
Patient OriginPEOOrigin missing or needs verificationPlease provide the patient's Origin. The information is missing or unclear on the requisition.\\r\\n
Patient IDPIDFormat needs verificationPlease confirm the patient's ID. The information provided on the requisition is not valid for\\r\\n this\\r\\n study.
Patient IDPIDPatient ID missing or needs verificationPlease provide the patient's ID. The information is missing or unclear on the requisition
Patient IDPIDPatient ID needs verification - outside of assigned blockPlease confirm the patient's ID. The information provided on the requisition is not valid for\\r\\n this\\r\\n study.
Patient IDPIDPatient ID needs verification due to being already in usePlease verify the patient's ID. The information provided on the requisition already belongs to\\r\\n another patient.
Patient IDPIDPatient not foundPlease confirm the patient Demographics. We were unable to locate the patient in our system\\r\\n using\\r\\n the information provided on the requisition. If this is not the first visit for the patient,\\r\\n please\\r\\n provide a previous accession number submitted to Labcorp.
Patient InitialsPNInitials missing or need verificationPlease verify the patient's initials. The information is missing or unclear on the requisition.\\r\\n (Legacy studies)
Patient SexPSXPatient sex missing or needs verificationPlease confirm if patient (patient ID) was seen at the site for the above visit? If yes, please\\r\\n confirm the patient sex.
Specimen Collection Date\\r\\n SCDSpecimen collection date missingPlease provide the Specimen Collection Date. The information is missing or unclear on the\\r\\n requisition.
Specimen Collection Date\\r\\n SCDSpecimen collection date needs verificationThe collection date must be after the patient's date of birth, before samples are received at\\r\\n Labcorp and not a future date.
Specimen Collection Time\\r\\n SCTSpecimen collection time missing or needs\\r\\n verification\\r\\n Please provide the Specimen Collection Time. The information is missing or unclear on the\\r\\n requisition.
Screening Patient ID\\r\\n SPIDScreening patient ID missing or needs verification\\r\\n Please provide the patient's Screening ID. The information is missing or unclear on the\\r\\n requisition,\\r\\n or the information belongs to another subject.
VisitVSTDuplicate visitsDuplicates visits are not allowed per this protocol. Should one of these visits be changed to\\r\\n another visit or unscheduled /retest? If duplicate visit is still requested a Sponsor approval\\r\\n will\\r\\n be needed.
VisitVSTVisit missing/unclear/ requires verificationPlease confirm the patient's visit. We were expecting [listed visit], however the information\\r\\n provided on the requisition form is missing or unclear.
VisitVSTVisit needs verification - received out of sequence\\r\\n Previous visit was received: we received a [listed] visit but were expecting a [scheduled]\\r\\n visit.\\r\\n Please confirm for which visit the patient was seen.
VisitVSTVisit needs verification; protocol completePlease confirm the patient's visit. We were not expecting any more patient visits.
VisitVSTVisit unscheduledPlease provide the visit. Visit was not marked on the requisition form.
\\r\\n\\r\\n\\r\\n
KIT EXPIRATION
\\r\\n\\r\\n

Start-Up Shipment: a shipment sent to the investigator/affiliates (in some countries) upon Sponsor request. These shipments can be sent prior to the first visit, if needed for Site Initiation Visit (SIV). The start-up package includes visit-specific lab kits, bulk supplies, the Investigator Manual, airway-bills and commercial invoices, and shipping boxes when applicable based on the Site location. A Specimen Collection Guide is sometimes included. These supplies are meant to cover a Site’s anticipated needs for the first 3 to 4 weeks of the study. Site information is loaded into Labcorp CLS’ system based on the Global Access List (GAL) Template.

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

Triggers: Automatic resupply triggered by Labcorp CLS database. Triggers are defined in the Statement of Work.

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

Call In: The investigator or CRA or CRO may place a kit order directly with Labcorp CLS, even if the automatic resupply is in place. Manual orders are the only method for ordering bulk items (e.g., Urine Pregnancy Kits, airway bills, shipping boxes). Orders can be placed via our website, phone, or via the Labcorp Investigator Portal.

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

Shipped Kits: Number of kits shipped to Investigator Site from Labcorp CLS. One kit has one unique identifier (accession) and it's prepared for a patient visit.

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

On-Hand/Not Expired Kits: Number of kits available for use at a Site. These kits have not been returned to Labcorp CLS and have not been received at Labcorp CLS. Inventory of on-hand kits is derived by Labcorp CLS systems. Also known as available Kits.

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

Used Kits: Number of kits used at investigator Sites, sent back to Labcorp CLS and registered in our database.

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

Expired Kits: Number of kits with expired components. Expiration dates are printed on the kit box and/or the tube label. Expired kits should not be used.

\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./tableau-dialog.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n:host {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n width: 100%;\\n overflow: auto;\\n}\\n\\n:host .tableau-dialog-container {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n}\\n\\n:host .tableau-dialog-container .tableau-dialog {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n}\\n\\n:host .tableau-dialog-container .tableau-dialog .tableau-dialog__title {\\n color: #3A5CE9;\\n font-size: 26px;\\n padding: 0px;\\n margin-bottom: 10px;\\n}\\n\\n:host .tableau-dialog-container .tableau-dialog .title__button {\\n float: right;\\n}\\n\\n:host .tableau-dialog-container .tableau-dialog .tableau-dialog__text {\\n color: rgba(0, 0, 0, 0.54);\\n overflow-y: auto;\\n}\\n\\n:host .tableau-dialog-container .tableau-dialog .tableau-dialog__text p {\\n margin-bottom: 5px;\\n}\\n\\n:host .tableau-dialog-container .mdl-dialog__actions {\\n display: block;\\n}\\n\\n:host .tableau-dialog-container .tableau-dialog-actions {\\n display: flex;\\n flex-direction: row-reverse;\\n}\\n\\n:host ul.customList {\\n list-style-type: none;\\n padding: 15px;\\n margin-top: 0;\\n}\\n\\n:host .customTable {\\n width: 100%;\\n text-align: center;\\n color: #808080;\\n}\\n\\n:host .customTable tr:nth-child(odd) {\\n background-color: #B4C6E7;\\n}\\n\\n:host .customTable tr:nth-child(odd) td {\\n padding: 5px;\\n}\\n\\n:host .customTable tr:nth-child(even) {\\n background-color: #D9E1F2;\\n}\\n\\n:host .customTable tr:nth-child(even) td {\\n padding: 5px;\\n}\\n\\n:host .customTable tr:nth-child(1) {\\n background-color: #4472C4;\\n}\\n\\n:host .customTable tr:nth-child(1) th {\\n padding: 5px;\\n font-size: 110%;\\n color: #fff;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n
Study Oversight | A concise overview of your study status, including essential\\r\\n study health parameters
and proactively supporting the success of your objectives through aligned\\r\\n efforts.\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{dashboard.name}}\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Download As Image\\r\\n \\r\\n Download Data arrow_drop_down \\r\\n Download Data arrow_drop_up \\r\\n {{rept.name}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./tableau.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","var escape = require(\"../../../../node_modules/css-loader/lib/url/escape.js\");\nexports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n@font-face {\\n font-family: \\\"Source Serif Pro Light\\\";\\n src: url(\" + escape(require(\"./fonts/SourceSerifPro-Light.woff2\")) + \") format(\\\"woff2\\\");\\n}\\n\\n.full-height {\\n display: flex;\\n flex-direction: column;\\n flex-grow: 1;\\n background: #fff;\\n overflow: auto;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.full-height #vizContainer {\\n margin-top: -10px;\\n}\\n\\n.full-height .menuContainer {\\n display: flex;\\n flex-direction: row;\\n justify-content: space-between;\\n margin: 10px;\\n height: 75px;\\n color: #fff !important;\\n background-image: url(\" + escape(require(\"./../../../../images/tableaubanner.png\")) + \");\\n}\\n\\n.full-height .menuContainer .subMenu {\\n display: flex;\\n align-items: center;\\n}\\n\\n.full-height .menuContainer .customBtn,\\n.full-height .menuContainer .mdl-button--raised {\\n height: auto !important;\\n color: #fff !important;\\n}\\n\\n.full-height .menuContainer .customBtn {\\n height: 75px !important;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.full-height .menuContainer .visiblity {\\n visibility: hidden;\\n}\\n\\n.full-height .menuContainer .heading {\\n font-size: 30px;\\n margin: 5px;\\n display: flex;\\n align-items: center;\\n font-family: \\\"Source Serif Pro Light\\\";\\n}\\n\\n@media (min-width: 1500px) {\\n .full-height .menuContainer .heading {\\n font-size: 36px;\\n }\\n}\\n\\n.full-height .menuContainer .heading span {\\n font-family: \\\"Source Sans Pro\\\";\\n font-weight: normal;\\n font-size: 12px;\\n line-height: 1;\\n margin: 5px;\\n}\\n\\n@media (min-width: 1500px) {\\n .full-height .menuContainer .heading span {\\n font-size: 14px;\\n }\\n}\\n\\n.iframe {\\n height: auto;\\n}\\n\\n@media all and (max-width: 1400px) {\\n .iframe {\\n width: 100% !important;\\n height: auto !important;\\n }\\n}\\n\\n@media all and (max-width: 1200px) {\\n .iframe {\\n height: auto !important;\\n }\\n}\\n\\n.hideReport {\\n display: none;\\n}\\n\\n.verticle_align {\\n vertical-align: middle !important;\\n}\\n\\n#vizContainer2 {\\n display: none;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"build/fonts/SourceSerifPro-Light.woff2\";","module.exports = \"build/fonts/tableaubanner.png\";","module.exports = \"

{{data.title}}

\\r\\n
\\r\\n
{{error}}
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./upload-error-dialog.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".close {\\n float: right;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n
Site Communications Mass Upload
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./site-communications-mass-upload.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"form {\\n flex-grow: 1;\\n}\\n\\n.file-selector {\\n display: block;\\n padding-top: 24px;\\n}\\n\\n.mdl-dialog__actions {\\n display: block;\\n}\\n\\n.mdl-dialog__actions upload-dialog-action-buttons {\\n float: right;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n
\\r\\n {{ categoryName | async }}\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\"","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"documents-grid {\\n display: flex;\\n flex-grow: 1;\\n flex-direction: column;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./mail-links.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".wrapper {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n User:{{userTitle}}\\r\\n\\r\\n\\r\\n\\r\\n Last Login Date:{{user.lastLoginDate | formatDate}}\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./user-emulation-group-renderer.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n:host .group-item {\\n margin-right: 15px;\\n}\\n\\nform {\\n display: inline;\\n position: absolute;\\n right: 0;\\n bottom: 0;\\n top: 0;\\n padding: 0 5px;\\n border-radius: 4px;\\n margin: 2px 0;\\n display: flex;\\n flex-direction: column;\\n justify-content: center;\\n background-color: #0080af;\\n}\\n\\nform input[type=submit] {\\n background: none;\\n color: #fff;\\n border: none;\\n padding: 0;\\n font-weight: normal;\\n cursor: pointer;\\n text-transform: uppercase;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n
\\r\\n Emulate 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 \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Page {{currentPage}} of {{totalPages}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./user-emulation.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\ncovance-ag-grid ::ng-deep a.emulate {\\n margin-left: 30px;\\n font-style: normal;\\n cursor: pointer;\\n text-transform: uppercase;\\n}\\n\\n.user-search-wrapper {\\n display: flex;\\n flex-grow: 1;\\n flex-direction: column;\\n}\\n\\n@media (max-width: 550px) and (orientation: portrait), (max-width: 900px) and (orientation: landscape), (max-height: 550px) and (orientation: landscape) {\\n .user-search-wrapper {\\n display: block;\\n height: 100%;\\n }\\n}\\n\\n.user-search-container {\\n display: flex;\\n flex-wrap: wrap;\\n padding: 0 16px;\\n justify-content: flex-start;\\n}\\n\\n.user-search-container .search-text {\\n max-width: 280px;\\n}\\n\\ncovance-ag-grid {\\n height: 100%;\\n}\\n\\n.ag-paging-panel {\\n border-top: 1px solid #808080;\\n padding: 10px;\\n text-align: center;\\n}\\n\\n.ag-paging-panel .mdl-button {\\n margin: 0 4px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n
\\r\\n {{ categoryName | async }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./general-documents-tabs.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".general-documents-with-categories {\\n display: flex;\\n flex-direction: column;\\n flex-grow: 1;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\\r\\n\"","module.exports = \"
\\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\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sponsor-e-query-details-dialog.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\nhr {\\n border: none;\\n border-top: 2px solid #0080af;\\n color: #0080af;\\n overflow: visible;\\n text-align: left;\\n height: 5px;\\n}\\n\\nhr:before {\\n background-color: #fff;\\n padding: 0 4px 0 0;\\n position: relative;\\n top: -13px;\\n font-size: 14px;\\n}\\n\\n.e-query-details-text-container {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 12px;\\n margin-right: 24px;\\n}\\n\\n.e-query-details-label {\\n font-weight: 800;\\n}\\n\\n.e-query-details-text {\\n font-weight: 400;\\n padding-left: 5px;\\n}\\n\\n.e-query-label-text {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 5px;\\n}\\n\\n.e-query-label-text label {\\n color: black;\\n text-decoration-line: underline;\\n text-decoration-style: solid;\\n text-decoration-color: #0080af;\\n text-decoration-thickness: 2px;\\n text-underline-position: under;\\n display: inline-block;\\n text-align: right;\\n width: 170px;\\n font-weight: bold;\\n margin-bottom: 1px;\\n margin-right: 5px;\\n}\\n\\n.separator {\\n border-bottom: 3px #0080af dashed;\\n width: 158px;\\n margin: 15px;\\n}\\n\\n:host {\\n width: 100%;\\n overflow-y: auto;\\n}\\n\\n:host .details-container {\\n display: flex;\\n flex-direction: column;\\n justify-content: space-between;\\n height: 100%;\\n}\\n\\n:host .e-query-title-container e-query-details-text-field::ng-deep .e-query-label-text label {\\n max-width: 120px;\\n}\\n\\n:host global-popup::ng-deep div.global-popup {\\n bottom: auto;\\n max-height: 70%;\\n}\\n\\n:host global-popup::ng-deep div.global-popup__content {\\n max-height: calc(70vh - 68px);\\n}\\n\\n@media (max-width: 550px) and (orientation: portrait), (max-width: 900px) and (orientation: landscape), (max-height: 550px) and (orientation: landscape) {\\n :host global-popup::ng-deep div.global-popup {\\n max-height: 70%;\\n bottom: auto;\\n }\\n}\\n\\n.e-query-title-container {\\n margin-left: -40px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n \\r\\n
\\r\\n
\\r\\n

{{studyCard.study.protocolName}}

\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{item.counter}}\\r\\n \\r\\n {{item.name}}\\r\\n \\r\\n \\r\\n \\r\\n {{ item.tooltip }}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n {{studyCard.study.protocolName}}\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./study-card.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.counter-wrapper {\\n display: inline-block;\\n}\\n\\n.category-wrapper .counter,\\n.study-info-wrapper .counter {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n width: 24px;\\n height: 24px;\\n border-radius: 12px;\\n font-size: 13px;\\n line-height: 13px;\\n}\\n\\n.category-wrapper .counter {\\n color: #fff;\\n}\\n\\n.category-wrapper .counter.no-unread {\\n background-color: #dedede;\\n}\\n\\n.study-card {\\n width: 270px;\\n margin: 0px 16px 16px 0px;\\n outline: 1px solid rgba(0, 0, 0, 0.12);\\n}\\n\\n.study-card .mdl-button {\\n font-weight: 400;\\n}\\n\\n.study-card .study-card__link {\\n display: flex;\\n align-items: center;\\n}\\n\\n.header-wrapper {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n flex-grow: 1;\\n}\\n\\nbutton.favorite {\\n color: #e0e0e0;\\n}\\n\\n.study-link {\\n cursor: pointer;\\n}\\n\\nmdl-card {\\n height: 250px;\\n}\\n\\nmdl-card-title {\\n background: #626971;\\n color: #ffffff;\\n}\\n\\nmdl-card-title {\\n padding: 8px 16px 8px 16px;\\n}\\n\\nmdl-card-title .mdl-card__title-text {\\n font-size: 16px;\\n font-weight: 400;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n width: 200px;\\n display: block;\\n}\\n\\nmdl-card-actions .mdl-button {\\n font-size: 15px;\\n height: 28px;\\n}\\n\\nmdl-card-actions.sponsor-items {\\n flex-basis: 30%;\\n}\\n\\nmdl-card-actions.study-items {\\n flex-basis: 40%;\\n}\\n\\n.action-title {\\n padding-left: 10px;\\n}\\n\\n.disabled {\\n pointer-events: none;\\n cursor: default;\\n opacity: 0.5;\\n}\\n\\n.category-wrapper .disabled .counter {\\n background-color: #BDBDBD;\\n}\\n\\n.category-wrapper .disabled .action-title {\\n color: #AAA;\\n}\\n\\n.study-info-wrapper .disabled .counter,\\n.study-info-wrapper .disabled .action-title {\\n color: #AAA;\\n}\\n\\n.study-info-wrapper .hide-tooltip {\\n display: none;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n search \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Order by {{item.title}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Loading studies...
\\r\\n
\\r\\n
\\r\\n

Favorites

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

{{favStudies.length ? 'Additional Studies' : 'All Studies'}}

\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n No studies matching your search criteria were found.\\r\\n \\r\\n You have not been granted access to any study. Please contact your administrator for access.\\r\\n \\r\\n \\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sponsor-study-list.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.toolbar {\\n display: flex;\\n flex-wrap: wrap;\\n justify-content: space-between;\\n}\\n\\n.toolbar-box {\\n display: flex;\\n align-items: center;\\n margin-right: 24px;\\n}\\n\\n.study-group-title {\\n font-size: 16px;\\n font-weight: 300;\\n background: #f3f3f3;\\n border-radius: 20px;\\n padding: 0 20px;\\n margin-top: 0px;\\n margin-bottom: 16px;\\n}\\n\\n.spinner-wrapper {\\n color: #616161;\\n display: flex;\\n align-items: center;\\n}\\n\\n.spinner-wrapper mdl-spinner {\\n margin-right: 10px;\\n}\\n\\n.toolbar-box ::ng-deep .mdl-select.menu-select.site-order-menu {\\n width: 220px;\\n}\\n\\n.toolbar-box ::ng-deep .mdl-select.menu-select.site-order-menu .mdl-textfield {\\n width: 220px;\\n}\\n\\n.hide-tooltip {\\n display: none;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./admin-dashboard.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.wrapper {\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.link-block {\\n display: flex;\\n flex-direction: column;\\n margin-top: 48px;\\n}\\n\\n.link-block a {\\n font-size: 18px;\\n line-height: 36px;\\n color: inherit;\\n width: 300px;\\n padding: 0 10px;\\n}\\n\\n.link-block a:hover {\\n background: #EEE;\\n}\\n\\n.link-block a .material-icons {\\n margin-right: 8px;\\n vertical-align: text-bottom;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n search \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Order by {{c.title}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Loading studies...
\\r\\n
\\r\\n
\\r\\n

Favorites

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

{{favSitesInfo.length ? 'Additional Studies' : 'All Studies'}}

\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n No sites matching your search criteria were found.\\r\\n \\r\\n You have not been granted access to any site. Please contact your administrator for access.\\r\\n \\r\\n \\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sites-list.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.toolbar {\\n display: flex;\\n flex-wrap: wrap;\\n justify-content: space-between;\\n}\\n\\n.toolbar-box {\\n display: flex;\\n align-items: center;\\n margin-right: 24px;\\n}\\n\\n.study-group-title {\\n font-size: 16px;\\n font-weight: 300;\\n background: #f3f3f3;\\n border-radius: 20px;\\n padding: 0 20px;\\n margin-top: 0px;\\n margin-bottom: 16px;\\n}\\n\\n.spinner-wrapper {\\n color: #616161;\\n display: flex;\\n align-items: center;\\n}\\n\\n.spinner-wrapper mdl-spinner {\\n margin-right: 10px;\\n}\\n\\n.toolbar-box ::ng-deep .mdl-select.menu-select.site-order-menu {\\n width: 220px;\\n}\\n\\n.toolbar-box ::ng-deep .mdl-select.menu-select.site-order-menu .mdl-textfield {\\n width: 220px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n \\r\\n
\\r\\n
\\r\\n

{{sponsor}}

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

{{clientProtocol}}

\\r\\n

{{siteDisplayName}}

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n{{sponsor}}\\r\\n{{clientProtocol}}\\r\\n{{siteDisplayName}}\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./site-card.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.counter-wrapper {\\n display: inline-block;\\n}\\n\\n.counter {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n width: 24px;\\n height: 24px;\\n color: #fff;\\n background-color: #0080af;\\n border-radius: 12px;\\n font-size: 13px;\\n line-height: 13px;\\n}\\n\\n.counter.no-unread {\\n background-color: #DEDEDE;\\n}\\n\\n.site-card {\\n width: 270px;\\n margin: 0px 16px 16px 0px;\\n outline: 1px solid rgba(0, 0, 0, 0.12);\\n}\\n\\n.site-card .mdl-button {\\n font-weight: 400;\\n}\\n\\n.site-card .site-card__link {\\n display: flex;\\n align-items: center;\\n}\\n\\n.header-wrapper {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n flex-grow: 1;\\n}\\n\\nbutton.favorite {\\n color: #E0E0E0;\\n}\\n\\n.study-link {\\n cursor: pointer;\\n}\\n\\n.action-title {\\n padding-left: 10px;\\n}\\n\\nmdl-card {\\n min-height: 0;\\n}\\n\\nmdl-card-title,\\nmdl-card-supporting-text {\\n background: #626971;\\n color: #ffffff;\\n}\\n\\nmdl-card-title {\\n padding: 4px 8px 0 16px;\\n}\\n\\nmdl-card-title .mdl-card__title-text {\\n font-size: 16px;\\n font-weight: 400;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n width: 200px;\\n display: block;\\n}\\n\\nmdl-card-supporting-text {\\n padding: 0 16px 4px 16px;\\n}\\n\\nmdl-card-supporting-text p {\\n margin-bottom: 0;\\n font-size: 13px;\\n line-height: 22px;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n overflow: hidden;\\n}\\n\\nmdl-card-actions .mdl-button {\\n font-size: 15px;\\n height: 28px;\\n}\\n\\n.mdl-progress ::ng-deep {\\n position: absolute;\\n bottom: -8px;\\n left: -8px;\\n width: 270px;\\n max-width: 270px;\\n height: 3px;\\n}\\n\\n.mdl-progress ::ng-deep > .progressbar.bar.bar1 {\\n background-color: #888;\\n}\\n\\n.category-wrapper {\\n position: relative;\\n}\\n\\n.disabled {\\n pointer-events: none;\\n cursor: default;\\n opacity: 0.5;\\n}\\n\\n.disabled .counter {\\n background-color: #BDBDBD;\\n}\\n\\n.disabled .action-title {\\n color: #AAA;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./login-page.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".login-page {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex-direction: column;\\n}\\n\\nokta-widget {\\n flex-grow: 0.6;\\n}\\n\\nfooter.mdl-mini-footer {\\n position: absolute;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n padding: 0;\\n padding-left: 10px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./logout-page.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".spinner-container {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sample-tracking-navigation.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\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 {{isDrawerCollapsed ? 'Expand sidebar' : 'Collapse sidebar'}}\\r\\n \\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./st-workspace-level-layout.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.wrapper {\\n display: flex;\\n flex-direction: column;\\n flex-grow: 1;\\n}\\n\\n.dashboard-link {\\n font-size: 12px;\\n color: #616161;\\n min-width: auto;\\n display: flex;\\n align-items: center;\\n}\\n\\n.dashboard-link .material-icons {\\n font-size: 18px;\\n}\\n\\n.header-title {\\n flex-shrink: 1;\\n min-width: 40px;\\n}\\n\\n.header-title .inner-header-title {\\n display: flex;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n}\\n\\n.home-button-tooltip {\\n display: none;\\n}\\n\\n.is-drawer-collapsed .home-button-tooltip {\\n display: block;\\n}\\n\\n.collapse-button {\\n height: 29px;\\n justify-content: flex-end;\\n}\\n\\n.collapse-button .material-icons {\\n width: 8px;\\n color: #3A5CE9;\\n font-weight: bold;\\n}\\n\\n.collapse-button:hover .material-icons {\\n color: #1A2188;\\n font-weight: bold;\\n}\\n\\n.mdl-navigation {\\n flex-grow: 1;\\n}\\n\\n.shrink {\\n flex-shrink: 1;\\n}\\n\\n.app-title {\\n align-self: center;\\n letter-spacing: 0px;\\n}\\n\\n.mdl-layout__header {\\n color: #666;\\n background-color: #fff;\\n z-index: 8;\\n margin-left: 0 !important;\\n width: inherit !important;\\n border-bottom: 1px solid rgba(0, 0, 0, 0.15);\\n box-shadow: none;\\n}\\n\\n.mdl-layout__content {\\n background-color: #F4F4F4;\\n}\\n\\n.mdl-navigation ::ng-deep .mdl-navigation__link--current {\\n color: #3A5CE9;\\n background-color: #F2F7FF;\\n font-weight: bold;\\n font-family: \\\"Source Sans Pro\\\";\\n opacity: 1 !important;\\n}\\n\\n.mdl-navigation ::ng-deep .mdl-navigation__link--current .navigation-link-text {\\n top: 2px;\\n position: relative;\\n color: #3A5CE9 !important;\\n}\\n\\n.mdl-navigation ::ng-deep .mdl-navigation__link.top-level-link {\\n padding-bottom: 16px;\\n padding-top: 16px;\\n font-family: \\\"Source Sans Pro\\\";\\n justify-content: unset !important;\\n}\\n\\n.mdl-navigation ::ng-deep .mdl-navigation__link.top-level-link .navigation-link-text {\\n top: 2px;\\n position: relative;\\n color: black;\\n}\\n\\n.mdl-navigation ::ng-deep .mdl-navigation__link.second-level-link {\\n padding-bottom: 16px;\\n padding-top: 16px;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.mdl-navigation ::ng-deep .mdl-navigation__link.second-level-link .navigation-link-text {\\n top: 2px;\\n position: relative;\\n color: black;\\n}\\n\\n.mdl-navigation ::ng-deep .mdl-navigation__link {\\n opacity: 1;\\n}\\n\\n.mdl-navigation ::ng-deep .disabled {\\n opacity: 0.5;\\n}\\n\\n.mdl-layout__drawer {\\n background-color: white;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n

My Portfolio

\\r\\n

Please select a Study Grouping or Protocol from your Portfolio to view Sample\\r\\n Tracking details.

\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sample-tracking-dashboard.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.dashboard-container {\\n box-shadow: 0px 0px 15px 3px #bebcbc;\\n border-radius: 4px;\\n opacity: 1;\\n height: 100%;\\n margin: 20px;\\n margin-top: unset;\\n background-color: white;\\n padding-left: 20px;\\n padding-top: 5px;\\n font-family: \\\"Source Sans Pro\\\";\\n width: 1165px;\\n}\\n\\n.dashboard-title {\\n height: 20px;\\n font-weight: bold;\\n font-size: 20px;\\n margin: 0;\\n}\\n\\n.dashboard-sub-title {\\n font-size: 12px;\\n margin: 0;\\n}\\n\\n.search-wrapper {\\n padding: 4px 7px 5px 0px;\\n position: relative;\\n background: white;\\n top: -28px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n

Sample Tracking Preferences

\\r\\n \\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sample-tracking-preferences.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.group-title {\\n padding-top: 5px;\\n width: 500px;\\n height: 20px;\\n font-weight: bold;\\n font-size: 20px;\\n}\\n\\n.inline {\\n display: inline-block;\\n}\\n\\n.sample-tracking-container {\\n box-shadow: 0px 0px 15px 3px #bebcbc;\\n border-radius: 4px;\\n opacity: 1;\\n background-color: white;\\n height: 100%;\\n margin: 20px;\\n margin-top: unset;\\n padding-left: 20px;\\n padding-top: 5px;\\n font-family: \\\"Source Sans Pro\\\";\\n width: 1165px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n

Visit Tracking Details

\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n Accession №:\\r\\n {{sampleSearchData?.accessionNumber}}\\r\\n
\\r\\n
\\r\\n Samples in this Visit:\\r\\n {{sampleSearchData?.sampleCount}}\\r\\n
\\r\\n
\\r\\n eQuery Type:\\r\\n {{eQueryDetails?.eQueryType}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Sample & Aliquots Details:\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./visit-overview.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.overview-container {\\n box-shadow: 0px 0px 15px 3px #bebcbc;\\n border-radius: 4px;\\n opacity: 1;\\n height: 100%;\\n margin: 5px;\\n background-color: white;\\n padding-left: 20px;\\n padding-top: 5px;\\n font-family: \\\"Source Sans Pro\\\";\\n margin-left: 20px;\\n}\\n\\n.tracking {\\n width: fit-content;\\n}\\n\\n.tracking .heading {\\n font: normal normal bold 20px/25px \\\"Source Sans Pro\\\";\\n width: 228px;\\n padding-top: 2px;\\n}\\n\\n.tracking-details {\\n display: flex;\\n margin: -0.5rem 0 1rem 0;\\n font: normal normal bold 14px/12px \\\"Source Sans Pro\\\";\\n}\\n\\n.tracking-details div {\\n padding-right: 5rem;\\n}\\n\\n.active {\\n color: #3A5CE9;\\n margin-left: 0.5rem;\\n}\\n\\n.space-between {\\n padding-bottom: 10px;\\n}\\n\\n.action-buttons {\\n margin-top: -40px;\\n float: right;\\n}\\n\\n.action-buttons button {\\n border: 2px solid #3A5CE9;\\n border-radius: 19px;\\n height: 35px;\\n}\\n\\n.action-buttons img {\\n height: 20px;\\n margin-top: -4px;\\n margin-left: 2px;\\n}\\n\\n.action-buttons .create-report {\\n background: #3A5CE9;\\n color: #FFFFFF;\\n margin-right: 1rem;\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n}\\n\\n.action-buttons :hover {\\n background: #1A2188;\\n border-color: #1A2188;\\n}\\n\\n.action-buttons .visit-equery {\\n background: #DC1439;\\n color: #FFFFFF;\\n margin-right: 12rem;\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n border-color: #DC1439;\\n}\\n\\n.grid-heading {\\n font: normal normal bold 16px/28px \\\"Source Sans Pro\\\";\\n}\\n\\n.grid-heading img {\\n height: 25px;\\n padding: 0 0 2px 0;\\n}\\n\\n.error {\\n color: #DC1439;\\n margin-left: 0.5rem;\\n}\\n\\napp-tracking-grid::ng-deep .table-header div:nth-child(1) .header-text {\\n margin-left: 2vw;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n Hold\\r\\n

Sample Tracking Details

\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n Accession №:\\r\\n {{sampleSearchData?.accessionNumber}}\\r\\n
\\r\\n Barcode №:\\r\\n\\r\\n {{sampleDetails?.data?.barcode}}\\r\\n Child\\r\\n Parent\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Parent Container:\\r\\n {{sampleSearchData?.parentContainer}}\\r\\n {{sampleSearchData?.parentContainer}}\\r\\n
\\r\\n\\r\\n
\\r\\n Current Sample Status:\\r\\n {{sampleSearchData?.currentSampleStatus}}\\r\\n
\\r\\n eQuery Type:\\r\\n {{eQueryDetails?.eQueryType}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n Aliquot Details:\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sample-overview.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.overview-container {\\n box-shadow: 0px 0px 15px 3px #bebcbc;\\n border-radius: 4px;\\n opacity: 1;\\n height: 100%;\\n margin: 5px;\\n background-color: white;\\n padding-left: 20px;\\n padding-top: 5px;\\n font-family: \\\"Source Sans Pro\\\";\\n margin-left: 20px;\\n}\\n\\n.tracking {\\n width: fit-content;\\n}\\n\\n.tracking .heading {\\n font: normal normal bold 20px/25px \\\"Source Sans Pro\\\";\\n width: 250px;\\n padding-top: 2px;\\n}\\n\\n.tracking .onhold-indicator {\\n color: #fff;\\n background-color: #DC1439;\\n padding: 2px 8px 2px 8px;\\n bottom: 10px;\\n top: 1px;\\n position: relative;\\n border-radius: 12px;\\n line-height: 16px;\\n float: right;\\n font-weight: bold;\\n letter-spacing: 0.5px;\\n margin-left: 4px;\\n}\\n\\n.tracking-details {\\n display: flex;\\n margin: -0.5rem 0 1rem 0;\\n font: normal normal bold 14px/12px \\\"Source Sans Pro\\\";\\n}\\n\\n.tracking-details span:nth-child(1) {\\n margin-right: 0.5rem;\\n}\\n\\n.tracking-details div {\\n padding-right: 5rem;\\n}\\n\\n.tracking-details .badge {\\n top: -15px;\\n position: relative;\\n border-radius: 10px;\\n padding: 0 10px 2px;\\n color: white;\\n margin: 0 2px;\\n}\\n\\n.tracking-details .parent {\\n background: #6C2FAC 0% 0% no-repeat padding-box;\\n}\\n\\n.tracking-details .child {\\n background: #F7758C 0% 0% no-repeat padding-box;\\n}\\n\\n.success {\\n color: #069D06;\\n}\\n\\n.error {\\n color: #DC1439;\\n}\\n\\n.cancel {\\n color: black;\\n}\\n\\n.link {\\n color: #3A5CE9;\\n}\\n\\n.hold-header {\\n font-weight: 500;\\n}\\n\\n.hold-text {\\n color: #DC1439;\\n font-weight: 500;\\n}\\n\\n.header-details {\\n padding-top: 10px;\\n}\\n\\n.event {\\n cursor: pointer;\\n}\\n\\n.space-between {\\n padding-bottom: 10px;\\n}\\n\\n.action-buttons {\\n float: right;\\n margin-top: -40px;\\n}\\n\\n.action-buttons button {\\n border: 2px solid #3A5CE9;\\n border-radius: 19px;\\n height: 35px;\\n}\\n\\n.action-buttons img {\\n height: 20px;\\n margin-top: -4px;\\n margin-left: 2px;\\n}\\n\\n.action-buttons .create-report {\\n background: #3A5CE9;\\n color: #FFFFFF;\\n margin-right: 1rem;\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n}\\n\\n.action-buttons :hover {\\n background: #1A2188;\\n border-color: #1A2188;\\n}\\n\\n.action-buttons .visit-equery {\\n background: #DC1439;\\n color: #FFFFFF;\\n margin-right: 12rem;\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n border-color: #DC1439;\\n}\\n\\n.grid-heading {\\n font: normal normal bold 16px/28px \\\"Source Sans Pro\\\";\\n}\\n\\n.grid-heading img {\\n height: 35px;\\n padding: 0 5px 5px 0;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n

{{confirmDialogRequest.title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n *\\r\\n \\r\\n
\\r\\n
{{confirmDialogRequest.subHeaderText}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n *\\r\\n
\\r\\n 0\\\" [fieldControl]=\\\"confirmForm.get('confirmOptions')\\\"\\r\\n [placeholder]=\\\"confirmDialogRequest?.dropDownData?.placeholder\\\"\\r\\n [dropDownList]=\\\"confirmDialogRequest?.dropDownData?.listItem\\\"\\r\\n (onDropDownValueSelected)=\\\"onDropDownSelect($event)\\\" [errorMsg]=\\\"dropdownErrorMsg\\\"\\r\\n [showInput]=\\\"!confirmDialogRequest?.dropDownData?.listItem\\\">\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n *\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./confirm-dialog.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n:host {\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.dialog-title {\\n width: auto;\\n height: 41px;\\n border-radius: 10px 10px 0 0;\\n background: #2998E3 0% 0% no-repeat padding-box;\\n opacity: 1;\\n font-family: \\\"Source Sans Pro\\\";\\n text-align: center;\\n color: white;\\n display: flex;\\n}\\n\\n.dialog-title .mdl-dialog__title {\\n font-size: 18px;\\n padding: 10px;\\n text-align: center;\\n font-weight: bold;\\n width: 100%;\\n}\\n\\n.dialog-title .mdl-button {\\n top: 5px;\\n}\\n\\n.wrapper {\\n background-color: #FAFBFE;\\n font-family: \\\"Source Sans Pro\\\";\\n border-radius: 10px;\\n}\\n\\n.mdl-dialog__content {\\n padding: 25px 24px 10px 24px;\\n}\\n\\n.content-header {\\n font-size: 14px;\\n text-align: center;\\n color: black;\\n position: relative;\\n text-align: center;\\n line-height: 0px;\\n}\\n\\n.sub-header {\\n font-size: 20px;\\n font-weight: bold;\\n color: black;\\n}\\n\\n.help-text {\\n width: 100%;\\n text-align: end;\\n color: black;\\n}\\n\\n.help-text .required-text {\\n font-size: 13px;\\n}\\n\\n.confirm {\\n font-size: 18px !important;\\n text-align: center;\\n line-height: 2;\\n color: #1A2188;\\n position: relative;\\n font-weight: bold;\\n text-align: center;\\n top: 20px;\\n}\\n\\n.mdl-dialog__actions {\\n justify-content: center;\\n padding-top: 70px;\\n padding-bottom: 30px;\\n flex-wrap: nowrap;\\n}\\n\\n.mdl-dialog__actions .close-action {\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 2px solid #3A5CE9;\\n border-radius: 20px;\\n opacity: 1;\\n font-family: inherit;\\n font-size: 15px;\\n font-weight: bold;\\n width: 200px;\\n justify-content: center;\\n color: #3A5CE9;\\n cursor: pointer;\\n background-color: white;\\n}\\n\\n.mdl-dialog__actions .close-action:hover {\\n border-radius: 20px;\\n opacity: 1;\\n border: unset;\\n cursor: pointer;\\n background-color: #3A5CE9;\\n color: white;\\n}\\n\\n.mdl-dialog__actions .save-action {\\n background: #3A5CE9 0% 0% no-repeat padding-box;\\n border-radius: 20px;\\n opacity: 1;\\n width: 200px;\\n justify-content: center;\\n font-family: inherit;\\n font-weight: bold;\\n font-size: 15px;\\n color: white;\\n cursor: pointer;\\n background-color: #3A5CE9;\\n}\\n\\n.mdl-dialog__actions .save-action:hover {\\n background-color: #1A2188;\\n}\\n\\n.mdl-dialog__actions button {\\n display: flex;\\n align-items: center;\\n}\\n\\n.reverse-buttons {\\n flex-direction: unset;\\n}\\n\\n.reverse-buttons .close-action {\\n right: 20px;\\n}\\n\\nform {\\n width: 100%;\\n display: flex;\\n justify-content: center;\\n flex-direction: column;\\n}\\n\\nform .reason {\\n display: flex;\\n justify-content: center;\\n}\\n\\nform .reason textarea {\\n width: 80%;\\n height: 100px;\\n margin-top: 20px;\\n}\\n\\nform .reason .error {\\n border: 1px solid #F7758C;\\n outline: 1px solid #F7758C;\\n box-shadow: 0 0 5px 1px #F7758C;\\n}\\n\\nform .reason .error::placeholder {\\n color: #F7758C;\\n opacity: 1;\\n}\\n\\nform .reason .error::-ms-input-placeholder {\\n color: #F7758C;\\n}\\n\\nform .dropdown {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n}\\n\\nform shipment-form-field ::ng-deep {\\n width: 100%;\\n}\\n\\nform shipment-form-field ::ng-deep .form-section {\\n justify-content: center;\\n}\\n\\nform shipment-form-field ::ng-deep .error {\\n padding-bottom: 0px;\\n}\\n\\nform shipment-form-field ::ng-deep .error .input-container {\\n top: 0.8rem !important;\\n}\\n\\nform shipment-form-field ::ng-deep .error .form-field-container {\\n display: flex;\\n flex-direction: column;\\n}\\n\\nform shipment-form-field ::ng-deep .error .form-field-container input {\\n /* top: 18px;\\n */\\n}\\n\\nform shipment-form-field ::ng-deep .error .form-field-container .drop-down-button {\\n justify-content: flex-end;\\n z-index: 999;\\n}\\n\\nform shipment-form-field ::ng-deep .error-msg {\\n top: 13px !important;\\n}\\n\\nform shipment-form-field ::ng-deep .error .mdl-list__item:last-of-type {\\n border-bottom: none !important;\\n}\\n\\n.sample-tracking-dialog-box .save-action {\\n width: 30%;\\n height: 50px;\\n margin-right: 90px;\\n}\\n\\n.sample-tracking-dialog-box .close-action {\\n width: 30%;\\n height: 50px;\\n line-height: 16px;\\n white-space: normal;\\n word-break: keep-all;\\n}\\n\\n.sample-registration-alert .confirm,\\n.alternate-container .confirm {\\n color: black;\\n font-weight: normal !important;\\n line-height: 1.7;\\n text-align: left !important;\\n}\\n\\n.sample-registration-alert .mdl-dialog__actions,\\n.alternate-container .mdl-dialog__actions {\\n padding-top: 40px;\\n}\\n\\n.alternate-container {\\n color: black !important;\\n background: white;\\n}\\n\\n.alternate-container shipment-form-field::ng-deep .input-container {\\n background: white;\\n border-radius: 10px;\\n margin: 7px;\\n}\\n\\n.alternate-container shipment-form-field::ng-deep .form-section .form-field-container {\\n height: 35px !important;\\n width: 92% !important;\\n background-color: white;\\n}\\n\\n.alternate-container shipment-form-field::ng-deep .form-section .mdl-textfield__label {\\n bottom: 2px !important;\\n}\\n\\n.alternate-container .save-action,\\n.alternate-container .close-action {\\n width: 150px !important;\\n}\\n\\n.alternate-container form .reason {\\n display: grid;\\n align-items: center;\\n justify-content: unset;\\n margin-left: 2rem;\\n margin-top: 1rem;\\n font-size: 14px;\\n margin-top: 1.5rem;\\n}\\n\\n.alternate-container form .reason textarea {\\n width: 90%;\\n border-radius: 10px;\\n padding: 7px;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.alternate-container form .dropdown {\\n display: grid;\\n margin-left: 2rem;\\n justify-content: unset;\\n align-items: center;\\n font-size: 14px;\\n}\\n\\n.alternate-container form shipment-form-field ::ng-deep .form-section {\\n justify-content: unset !important;\\n}\\n\\n.alternate-container form shipment-form-field ::ng-deep .drop-show {\\n background-color: white !important;\\n}\\n\\n.alternate-container form shipment-form-field ::ng-deep .drop-show .mdl-list .mdl-list__item {\\n border-bottom: unset !important;\\n}\\n\\n.highlight {\\n color: blue !important;\\n font-weight: bold;\\n}\\n\\n.required {\\n color: #F7758C;\\n font-size: 16px !important;\\n font-weight: bold;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Protocol {{selectedProtocol$.protocolCode}} Sample Tracking Dashboard

\\r\\n

Protocol:{{selectedProtocol$.protocolCode}}

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

Study Grouping {{selectedStudyGroup$.groupName}} Sample Tracking Dashboard

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

Protocols:{{getProtocolList()}}

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

Filter Dashboard

\\r\\n
\\r\\n
\\r\\n Save Filters\\r\\n save\\r\\n
\\r\\n
\\r\\n Clear Filters\\r\\n close\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n

Protocol/Study

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

Region

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

Project №

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

Country

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

Investigator Name/ Number

\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./overview-dashboard.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","var escape = require(\"../../../../../node_modules/css-loader/lib/url/escape.js\");\nexports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\nexports.i(require(\"-!../../../../../node_modules/css-loader/index.js!@okta/okta-signin-widget/dist/css/okta-sign-in.min.css\"), \"\");\nexports.i(require(\"-!../../../../../node_modules/css-loader/index.js!@covance/cvd3/dist/cv.d3.css\"), \"\");\nexports.i(require(\"-!../../../../../node_modules/css-loader/index.js!@angular-mdl/popover/popover.css\"), \"\");\nexports.i(require(\"-!../../../../../node_modules/css-loader/index.js!@angular-mdl/select/select.css\"), \"\");\nexports.i(require(\"-!../../../../../node_modules/css-loader/index.js!quill/dist/quill.core.css\"), \"\");\nexports.i(require(\"-!../../../../../node_modules/css-loader/index.js!quill/dist/quill.snow.css\"), \"\");\nexports.i(require(\"-!../../../../../node_modules/css-loader/index.js!quill/dist/quill.bubble.css\"), \"\");\n\n// module\nexports.push([module.id, \"@charset \\\"UTF-8\\\";\\n\\n/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Material Design Lite */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Typography */\\n\\n/* Shadows */\\n\\n/* Animations */\\n\\n/* Dialog */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/*\\n * What follows is the result of much research on cross-browser styling.\\n * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal,\\n * Kroc Camen, and the H5BP dev community and team.\\n */\\n\\n/* ==========================================================================\\n Base styles: opinionated defaults\\n ========================================================================== */\\n\\nhtml {\\n color: rgba(0,0,0, 0.87);\\n font-size: 1em;\\n line-height: 1.4;\\n}\\n\\n/*\\n * Remove text-shadow in selection highlight:\\n * https://twitter.com/miketaylr/status/12228805301\\n *\\n * These selection rule sets have to be separate.\\n * Customize the background color to match your design.\\n */\\n\\n::selection {\\n background: #b3d4fc;\\n text-shadow: none;\\n}\\n\\n/*\\n * A better looking default horizontal rule\\n */\\n\\nhr {\\n display: block;\\n height: 1px;\\n border: 0;\\n border-top: 1px solid #ccc;\\n margin: 1em 0;\\n padding: 0;\\n}\\n\\n/*\\n * Remove the gap between audio, canvas, iframes,\\n * images, videos and the bottom of their containers:\\n * https://github.com/h5bp/html5-boilerplate/issues/440\\n */\\n\\naudio,\\ncanvas,\\niframe,\\nimg,\\nsvg,\\nvideo {\\n vertical-align: middle;\\n}\\n\\n/*\\n * Remove default fieldset styles.\\n */\\n\\nfieldset {\\n border: 0;\\n margin: 0;\\n padding: 0;\\n}\\n\\n/*\\n * Allow only vertical resizing of textareas.\\n */\\n\\ntextarea {\\n resize: vertical;\\n}\\n\\n/* ==========================================================================\\n Browser Upgrade Prompt\\n ========================================================================== */\\n\\n.browserupgrade {\\n margin: 0.2em 0;\\n background: #ccc;\\n color: #000;\\n padding: 0.2em 0;\\n}\\n\\n/* ==========================================================================\\n Author's custom styles\\n ========================================================================== */\\n\\n/* ==========================================================================\\n Helper classes\\n ========================================================================== */\\n\\n/*\\n * Hide visually and from screen readers:\\n */\\n\\n.hidden {\\n display: none !important;\\n}\\n\\n/*\\n * Hide only visually, but have it available for screen readers:\\n * http://snook.ca/archives/html_and_css/hiding-content-for-accessibility\\n */\\n\\n.visuallyhidden {\\n border: 0;\\n clip: rect(0 0 0 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px;\\n}\\n\\n/*\\n * Extends the .visuallyhidden class to allow the element\\n * to be focusable when navigated to via the keyboard:\\n * https://www.drupal.org/node/897638\\n */\\n\\n.visuallyhidden.focusable:active,\\n.visuallyhidden.focusable:focus {\\n clip: auto;\\n height: auto;\\n margin: 0;\\n overflow: visible;\\n position: static;\\n width: auto;\\n}\\n\\n/*\\n * Hide visually and from screen readers, but maintain layout\\n */\\n\\n.invisible {\\n visibility: hidden;\\n}\\n\\n/*\\n * Clearfix: contain floats\\n *\\n * For modern browsers\\n * 1. The space content is one way to avoid an Opera bug when the\\n * `contenteditable` attribute is included anywhere else in the document.\\n * Otherwise it causes space to appear at the top and bottom of elements\\n * that receive the `clearfix` class.\\n * 2. The use of `table` rather than `block` is only necessary if using\\n * `:before` to contain the top-margins of child elements.\\n */\\n\\n.clearfix:before,\\n.clearfix:after {\\n content: \\\" \\\";\\n /* 1 */\\n display: table;\\n /* 2 */\\n}\\n\\n.clearfix:after {\\n clear: both;\\n}\\n\\n/* ==========================================================================\\n EXAMPLE Media Queries for Responsive Design.\\n These examples override the primary ('mobile first') styles.\\n Modify as content requires.\\n ========================================================================== */\\n\\n@media only screen and (min-width: 35em) {\\n /* Style adjustments for viewports that meet the condition */\\n}\\n\\n@media print, (min-resolution: 1.25dppx), (min-resolution: 120dpi) {\\n /* Style adjustments for high resolution devices */\\n}\\n\\n/* ==========================================================================\\n Print styles.\\n Inlined to avoid the additional HTTP request:\\n http://www.phpied.com/delay-loading-your-print-css/\\n ========================================================================== */\\n\\n@media print {\\n *,\\n *:before,\\n *:after,\\n *:first-letter {\\n background: transparent !important;\\n color: #000 !important;\\n /* Black prints faster: http://www.sanbeiji.com/archives/953 */\\n box-shadow: none !important;\\n }\\n\\n a,\\n a:visited {\\n text-decoration: underline;\\n }\\n\\n a[href]:after {\\n content: \\\" (\\\" attr(href) \\\")\\\";\\n }\\n\\n abbr[title]:after {\\n content: \\\" (\\\" attr(title) \\\")\\\";\\n }\\n\\n /*\\n * Don't show links that are fragment identifiers,\\n * or use the `javascript:` pseudo protocol\\n */\\n\\n a[href^=\\\"#\\\"]:after,\\n a[href^=\\\"javascript:\\\"]:after {\\n content: \\\"\\\";\\n }\\n\\n pre,\\n blockquote {\\n border: 1px solid #999;\\n page-break-inside: avoid;\\n }\\n\\n /*\\n * Printing Tables:\\n * http://css-discuss.incutio.com/wiki/Printing_Tables\\n */\\n\\n thead {\\n display: table-header-group;\\n }\\n\\n tr,\\n img {\\n page-break-inside: avoid;\\n }\\n\\n img {\\n max-width: 100% !important;\\n }\\n\\n p,\\n h2,\\n h3 {\\n orphans: 3;\\n widows: 3;\\n }\\n\\n h2,\\n h3 {\\n page-break-after: avoid;\\n }\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Remove the unwanted box around FAB buttons */\\n\\n/* More info: http://goo.gl/IPwKi */\\n\\na,\\n.mdl-accordion,\\n.mdl-button,\\n.mdl-card,\\n.mdl-checkbox,\\n.mdl-dropdown-menu,\\n.mdl-icon-toggle,\\n.mdl-item,\\n.mdl-radio,\\n.mdl-slider,\\n.mdl-switch,\\n.mdl-tabs__tab {\\n -webkit-tap-highlight-color: transparent;\\n -webkit-tap-highlight-color: rgba(255, 255, 255, 0);\\n}\\n\\n/*\\n * Make html take up the entire screen\\n * Then set touch-action to avoid touch delay on mobile IE\\n */\\n\\nhtml {\\n width: 100%;\\n height: 100%;\\n -ms-touch-action: manipulation;\\n touch-action: manipulation;\\n}\\n\\n/*\\n* Make body take up the entire screen\\n* Remove body margin so layout containers don't cause extra overflow.\\n*/\\n\\nbody {\\n width: 100%;\\n min-height: 100%;\\n margin: 0;\\n}\\n\\n/*\\n * Main display reset for IE support.\\n * Source: http://weblog.west-wind.com/posts/2015/Jan/12/main-HTML5-Tag-not-working-in-Internet-Explorer-91011\\n */\\n\\nmain {\\n display: block;\\n}\\n\\n/*\\n* Apply no display to elements with the hidden attribute.\\n* IE 9 and 10 support.\\n*/\\n\\n*[hidden] {\\n display: none !important;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Typography */\\n\\n/* Shadows */\\n\\n/* Animations */\\n\\n/* Dialog */\\n\\nhtml,\\nbody {\\n font-family: \\\"Helvetica\\\", \\\"Arial\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 400;\\n line-height: 20px;\\n}\\n\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6,\\np {\\n margin: 0;\\n padding: 0;\\n}\\n\\n/**\\n* Styles for HTML elements\\n*/\\n\\nh1 small,\\nh2 small,\\nh3 small,\\nh4 small,\\nh5 small,\\nh6 small {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 56px;\\n font-weight: 400;\\n line-height: 1.35;\\n letter-spacing: -0.02em;\\n opacity: 0.54;\\n font-size: 0.6em;\\n}\\n\\nh1 {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 56px;\\n font-weight: 400;\\n line-height: 1.35;\\n letter-spacing: -0.02em;\\n margin-top: 24px;\\n margin-bottom: 24px;\\n}\\n\\nh2 {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 45px;\\n font-weight: 400;\\n line-height: 48px;\\n margin-top: 24px;\\n margin-bottom: 24px;\\n}\\n\\nh3 {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 34px;\\n font-weight: 400;\\n line-height: 40px;\\n margin-top: 24px;\\n margin-bottom: 24px;\\n}\\n\\nh4 {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 24px;\\n font-weight: 400;\\n line-height: 32px;\\n -moz-osx-font-smoothing: grayscale;\\n margin-top: 24px;\\n margin-bottom: 16px;\\n}\\n\\nh5 {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 20px;\\n font-weight: 500;\\n line-height: 1;\\n letter-spacing: 0.02em;\\n margin-top: 24px;\\n margin-bottom: 16px;\\n}\\n\\nh6 {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 16px;\\n font-weight: 400;\\n line-height: 24px;\\n letter-spacing: 0.04em;\\n margin-top: 24px;\\n margin-bottom: 16px;\\n}\\n\\np {\\n font-size: 14px;\\n font-weight: 400;\\n line-height: 24px;\\n letter-spacing: 0;\\n margin-bottom: 16px;\\n}\\n\\na {\\n color: rgb(0, 128, 175);\\n font-weight: 500;\\n}\\n\\nblockquote {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n position: relative;\\n font-size: 24px;\\n font-weight: 300;\\n font-style: italic;\\n line-height: 1.35;\\n letter-spacing: 0.08em;\\n}\\n\\nblockquote:before {\\n position: absolute;\\n left: -0.5em;\\n content: \\\"\\\\201C\\\";\\n}\\n\\nblockquote:after {\\n content: \\\"\\\\201D\\\";\\n margin-left: -0.05em;\\n}\\n\\nmark {\\n background-color: #f4ff81;\\n}\\n\\ndt {\\n font-weight: 700;\\n}\\n\\naddress {\\n font-size: 12px;\\n font-weight: 400;\\n line-height: 1;\\n letter-spacing: 0;\\n font-style: normal;\\n}\\n\\nul,\\nol {\\n font-size: 14px;\\n font-weight: 400;\\n line-height: 24px;\\n letter-spacing: 0;\\n}\\n\\n/**\\n * Class Name Styles\\n */\\n\\n.mdl-typography--display-4 {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 112px;\\n font-weight: 300;\\n line-height: 1;\\n letter-spacing: -0.04em;\\n}\\n\\n.mdl-typography--display-4-color-contrast {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 112px;\\n font-weight: 300;\\n line-height: 1;\\n letter-spacing: -0.04em;\\n opacity: 0.54;\\n}\\n\\n.mdl-typography--display-3 {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 56px;\\n font-weight: 400;\\n line-height: 1.35;\\n letter-spacing: -0.02em;\\n}\\n\\n.mdl-typography--display-3-color-contrast {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 56px;\\n font-weight: 400;\\n line-height: 1.35;\\n letter-spacing: -0.02em;\\n opacity: 0.54;\\n}\\n\\n.mdl-typography--display-2 {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 45px;\\n font-weight: 400;\\n line-height: 48px;\\n}\\n\\n.mdl-typography--display-2-color-contrast {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 45px;\\n font-weight: 400;\\n line-height: 48px;\\n opacity: 0.54;\\n}\\n\\n.mdl-typography--display-1 {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 34px;\\n font-weight: 400;\\n line-height: 40px;\\n}\\n\\n.mdl-typography--display-1-color-contrast {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 34px;\\n font-weight: 400;\\n line-height: 40px;\\n opacity: 0.54;\\n}\\n\\n.mdl-typography--headline {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 24px;\\n font-weight: 400;\\n line-height: 32px;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.mdl-typography--headline-color-contrast {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 24px;\\n font-weight: 400;\\n line-height: 32px;\\n -moz-osx-font-smoothing: grayscale;\\n opacity: 0.87;\\n}\\n\\n.mdl-typography--title {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 20px;\\n font-weight: 500;\\n line-height: 1;\\n letter-spacing: 0.02em;\\n}\\n\\n.mdl-typography--title-color-contrast {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 20px;\\n font-weight: 500;\\n line-height: 1;\\n letter-spacing: 0.02em;\\n opacity: 0.87;\\n}\\n\\n.mdl-typography--subhead {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 16px;\\n font-weight: 400;\\n line-height: 24px;\\n letter-spacing: 0.04em;\\n}\\n\\n.mdl-typography--subhead-color-contrast {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 16px;\\n font-weight: 400;\\n line-height: 24px;\\n letter-spacing: 0.04em;\\n opacity: 0.87;\\n}\\n\\n.mdl-typography--body-2 {\\n font-size: 14px;\\n font-weight: bold;\\n line-height: 24px;\\n letter-spacing: 0;\\n}\\n\\n.mdl-typography--body-2-color-contrast {\\n font-size: 14px;\\n font-weight: bold;\\n line-height: 24px;\\n letter-spacing: 0;\\n opacity: 0.87;\\n}\\n\\n.mdl-typography--body-1 {\\n font-size: 14px;\\n font-weight: 400;\\n line-height: 24px;\\n letter-spacing: 0;\\n}\\n\\n.mdl-typography--body-1-color-contrast {\\n font-size: 14px;\\n font-weight: 400;\\n line-height: 24px;\\n letter-spacing: 0;\\n opacity: 0.87;\\n}\\n\\n.mdl-typography--body-2-force-preferred-font {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n line-height: 24px;\\n letter-spacing: 0;\\n}\\n\\n.mdl-typography--body-2-force-preferred-font-color-contrast {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n line-height: 24px;\\n letter-spacing: 0;\\n opacity: 0.87;\\n}\\n\\n.mdl-typography--body-1-force-preferred-font {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 400;\\n line-height: 24px;\\n letter-spacing: 0;\\n}\\n\\n.mdl-typography--body-1-force-preferred-font-color-contrast {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 400;\\n line-height: 24px;\\n letter-spacing: 0;\\n opacity: 0.87;\\n}\\n\\n.mdl-typography--caption {\\n font-size: 12px;\\n font-weight: 400;\\n line-height: 1;\\n letter-spacing: 0;\\n}\\n\\n.mdl-typography--caption-force-preferred-font {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n font-weight: 400;\\n line-height: 1;\\n letter-spacing: 0;\\n}\\n\\n.mdl-typography--caption-color-contrast {\\n font-size: 12px;\\n font-weight: 400;\\n line-height: 1;\\n letter-spacing: 0;\\n opacity: 0.54;\\n}\\n\\n.mdl-typography--caption-force-preferred-font-color-contrast {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n font-weight: 400;\\n line-height: 1;\\n letter-spacing: 0;\\n opacity: 0.54;\\n}\\n\\n.mdl-typography--menu {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n line-height: 1;\\n letter-spacing: 0;\\n}\\n\\n.mdl-typography--menu-color-contrast {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n line-height: 1;\\n letter-spacing: 0;\\n opacity: 0.87;\\n}\\n\\n.mdl-typography--button {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n text-transform: uppercase;\\n line-height: 1;\\n letter-spacing: 0;\\n}\\n\\n.mdl-typography--button-color-contrast {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n text-transform: uppercase;\\n line-height: 1;\\n letter-spacing: 0;\\n opacity: 0.87;\\n}\\n\\n.mdl-typography--text-left {\\n text-align: left;\\n}\\n\\n.mdl-typography--text-right {\\n text-align: right;\\n}\\n\\n.mdl-typography--text-center {\\n text-align: center;\\n}\\n\\n.mdl-typography--text-justify {\\n text-align: justify;\\n}\\n\\n.mdl-typography--text-nowrap {\\n white-space: nowrap;\\n}\\n\\n.mdl-typography--text-lowercase {\\n text-transform: lowercase;\\n}\\n\\n.mdl-typography--text-uppercase {\\n text-transform: uppercase;\\n}\\n\\n.mdl-typography--text-capitalize {\\n text-transform: capitalize;\\n}\\n\\n.mdl-typography--font-thin {\\n font-weight: 200 !important;\\n}\\n\\n.mdl-typography--font-light {\\n font-weight: 300 !important;\\n}\\n\\n.mdl-typography--font-regular {\\n font-weight: 400 !important;\\n}\\n\\n.mdl-typography--font-medium {\\n font-weight: 500 !important;\\n}\\n\\n.mdl-typography--font-bold {\\n font-weight: 700 !important;\\n}\\n\\n.mdl-typography--font-black {\\n font-weight: 900 !important;\\n}\\n\\n.material-icons {\\n font-family: \\\"Material Icons\\\";\\n font-weight: normal;\\n font-style: normal;\\n font-size: 24px;\\n line-height: 1;\\n letter-spacing: normal;\\n text-transform: none;\\n display: inline-block;\\n word-wrap: normal;\\n font-feature-settings: \\\"liga\\\";\\n -webkit-font-feature-settings: \\\"liga\\\";\\n -webkit-font-smoothing: antialiased;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n.mdl-color-text--red {\\n color: rgb(244,67,54) !important;\\n}\\n\\n.mdl-color--red {\\n background-color: rgb(244,67,54) !important;\\n}\\n\\n.mdl-color-text--red-50 {\\n color: rgb(255,235,238) !important;\\n}\\n\\n.mdl-color--red-50 {\\n background-color: rgb(255,235,238) !important;\\n}\\n\\n.mdl-color-text--red-100 {\\n color: rgb(255,205,210) !important;\\n}\\n\\n.mdl-color--red-100 {\\n background-color: rgb(255,205,210) !important;\\n}\\n\\n.mdl-color-text--red-200 {\\n color: rgb(239,154,154) !important;\\n}\\n\\n.mdl-color--red-200 {\\n background-color: rgb(239,154,154) !important;\\n}\\n\\n.mdl-color-text--red-300 {\\n color: rgb(229,115,115) !important;\\n}\\n\\n.mdl-color--red-300 {\\n background-color: rgb(229,115,115) !important;\\n}\\n\\n.mdl-color-text--red-400 {\\n color: rgb(239,83,80) !important;\\n}\\n\\n.mdl-color--red-400 {\\n background-color: rgb(239,83,80) !important;\\n}\\n\\n.mdl-color-text--red-500 {\\n color: rgb(244,67,54) !important;\\n}\\n\\n.mdl-color--red-500 {\\n background-color: rgb(244,67,54) !important;\\n}\\n\\n.mdl-color-text--red-600 {\\n color: rgb(229,57,53) !important;\\n}\\n\\n.mdl-color--red-600 {\\n background-color: rgb(229,57,53) !important;\\n}\\n\\n.mdl-color-text--red-700 {\\n color: rgb(211,47,47) !important;\\n}\\n\\n.mdl-color--red-700 {\\n background-color: rgb(211,47,47) !important;\\n}\\n\\n.mdl-color-text--red-800 {\\n color: rgb(198,40,40) !important;\\n}\\n\\n.mdl-color--red-800 {\\n background-color: rgb(198,40,40) !important;\\n}\\n\\n.mdl-color-text--red-900 {\\n color: rgb(183,28,28) !important;\\n}\\n\\n.mdl-color--red-900 {\\n background-color: rgb(183,28,28) !important;\\n}\\n\\n.mdl-color-text--red-A100 {\\n color: rgb(255,138,128) !important;\\n}\\n\\n.mdl-color--red-A100 {\\n background-color: rgb(255,138,128) !important;\\n}\\n\\n.mdl-color-text--red-A200 {\\n color: rgb(255,82,82) !important;\\n}\\n\\n.mdl-color--red-A200 {\\n background-color: rgb(255,82,82) !important;\\n}\\n\\n.mdl-color-text--red-A400 {\\n color: rgb(255,23,68) !important;\\n}\\n\\n.mdl-color--red-A400 {\\n background-color: rgb(255,23,68) !important;\\n}\\n\\n.mdl-color-text--red-A700 {\\n color: rgb(213,0,0) !important;\\n}\\n\\n.mdl-color--red-A700 {\\n background-color: rgb(213,0,0) !important;\\n}\\n\\n.mdl-color-text--pink {\\n color: rgb(233,30,99) !important;\\n}\\n\\n.mdl-color--pink {\\n background-color: rgb(233,30,99) !important;\\n}\\n\\n.mdl-color-text--pink-50 {\\n color: rgb(252,228,236) !important;\\n}\\n\\n.mdl-color--pink-50 {\\n background-color: rgb(252,228,236) !important;\\n}\\n\\n.mdl-color-text--pink-100 {\\n color: rgb(248,187,208) !important;\\n}\\n\\n.mdl-color--pink-100 {\\n background-color: rgb(248,187,208) !important;\\n}\\n\\n.mdl-color-text--pink-200 {\\n color: rgb(244,143,177) !important;\\n}\\n\\n.mdl-color--pink-200 {\\n background-color: rgb(244,143,177) !important;\\n}\\n\\n.mdl-color-text--pink-300 {\\n color: rgb(240,98,146) !important;\\n}\\n\\n.mdl-color--pink-300 {\\n background-color: rgb(240,98,146) !important;\\n}\\n\\n.mdl-color-text--pink-400 {\\n color: rgb(236,64,122) !important;\\n}\\n\\n.mdl-color--pink-400 {\\n background-color: rgb(236,64,122) !important;\\n}\\n\\n.mdl-color-text--pink-500 {\\n color: rgb(233,30,99) !important;\\n}\\n\\n.mdl-color--pink-500 {\\n background-color: rgb(233,30,99) !important;\\n}\\n\\n.mdl-color-text--pink-600 {\\n color: rgb(216,27,96) !important;\\n}\\n\\n.mdl-color--pink-600 {\\n background-color: rgb(216,27,96) !important;\\n}\\n\\n.mdl-color-text--pink-700 {\\n color: rgb(194,24,91) !important;\\n}\\n\\n.mdl-color--pink-700 {\\n background-color: rgb(194,24,91) !important;\\n}\\n\\n.mdl-color-text--pink-800 {\\n color: rgb(173,20,87) !important;\\n}\\n\\n.mdl-color--pink-800 {\\n background-color: rgb(173,20,87) !important;\\n}\\n\\n.mdl-color-text--pink-900 {\\n color: rgb(136,14,79) !important;\\n}\\n\\n.mdl-color--pink-900 {\\n background-color: rgb(136,14,79) !important;\\n}\\n\\n.mdl-color-text--pink-A100 {\\n color: rgb(255,128,171) !important;\\n}\\n\\n.mdl-color--pink-A100 {\\n background-color: rgb(255,128,171) !important;\\n}\\n\\n.mdl-color-text--pink-A200 {\\n color: rgb(255,64,129) !important;\\n}\\n\\n.mdl-color--pink-A200 {\\n background-color: rgb(255,64,129) !important;\\n}\\n\\n.mdl-color-text--pink-A400 {\\n color: rgb(245,0,87) !important;\\n}\\n\\n.mdl-color--pink-A400 {\\n background-color: rgb(245,0,87) !important;\\n}\\n\\n.mdl-color-text--pink-A700 {\\n color: rgb(197,17,98) !important;\\n}\\n\\n.mdl-color--pink-A700 {\\n background-color: rgb(197,17,98) !important;\\n}\\n\\n.mdl-color-text--purple {\\n color: rgb(156,39,176) !important;\\n}\\n\\n.mdl-color--purple {\\n background-color: rgb(156,39,176) !important;\\n}\\n\\n.mdl-color-text--purple-50 {\\n color: rgb(243,229,245) !important;\\n}\\n\\n.mdl-color--purple-50 {\\n background-color: rgb(243,229,245) !important;\\n}\\n\\n.mdl-color-text--purple-100 {\\n color: rgb(225,190,231) !important;\\n}\\n\\n.mdl-color--purple-100 {\\n background-color: rgb(225,190,231) !important;\\n}\\n\\n.mdl-color-text--purple-200 {\\n color: rgb(206,147,216) !important;\\n}\\n\\n.mdl-color--purple-200 {\\n background-color: rgb(206,147,216) !important;\\n}\\n\\n.mdl-color-text--purple-300 {\\n color: rgb(186,104,200) !important;\\n}\\n\\n.mdl-color--purple-300 {\\n background-color: rgb(186,104,200) !important;\\n}\\n\\n.mdl-color-text--purple-400 {\\n color: rgb(171,71,188) !important;\\n}\\n\\n.mdl-color--purple-400 {\\n background-color: rgb(171,71,188) !important;\\n}\\n\\n.mdl-color-text--purple-500 {\\n color: rgb(156,39,176) !important;\\n}\\n\\n.mdl-color--purple-500 {\\n background-color: rgb(156,39,176) !important;\\n}\\n\\n.mdl-color-text--purple-600 {\\n color: rgb(142,36,170) !important;\\n}\\n\\n.mdl-color--purple-600 {\\n background-color: rgb(142,36,170) !important;\\n}\\n\\n.mdl-color-text--purple-700 {\\n color: rgb(123,31,162) !important;\\n}\\n\\n.mdl-color--purple-700 {\\n background-color: rgb(123,31,162) !important;\\n}\\n\\n.mdl-color-text--purple-800 {\\n color: rgb(106,27,154) !important;\\n}\\n\\n.mdl-color--purple-800 {\\n background-color: rgb(106,27,154) !important;\\n}\\n\\n.mdl-color-text--purple-900 {\\n color: rgb(74,20,140) !important;\\n}\\n\\n.mdl-color--purple-900 {\\n background-color: rgb(74,20,140) !important;\\n}\\n\\n.mdl-color-text--purple-A100 {\\n color: rgb(234,128,252) !important;\\n}\\n\\n.mdl-color--purple-A100 {\\n background-color: rgb(234,128,252) !important;\\n}\\n\\n.mdl-color-text--purple-A200 {\\n color: rgb(224,64,251) !important;\\n}\\n\\n.mdl-color--purple-A200 {\\n background-color: rgb(224,64,251) !important;\\n}\\n\\n.mdl-color-text--purple-A400 {\\n color: rgb(213,0,249) !important;\\n}\\n\\n.mdl-color--purple-A400 {\\n background-color: rgb(213,0,249) !important;\\n}\\n\\n.mdl-color-text--purple-A700 {\\n color: rgb(170,0,255) !important;\\n}\\n\\n.mdl-color--purple-A700 {\\n background-color: rgb(170,0,255) !important;\\n}\\n\\n.mdl-color-text--deep-purple {\\n color: rgb(103,58,183) !important;\\n}\\n\\n.mdl-color--deep-purple {\\n background-color: rgb(103,58,183) !important;\\n}\\n\\n.mdl-color-text--deep-purple-50 {\\n color: rgb(237,231,246) !important;\\n}\\n\\n.mdl-color--deep-purple-50 {\\n background-color: rgb(237,231,246) !important;\\n}\\n\\n.mdl-color-text--deep-purple-100 {\\n color: rgb(209,196,233) !important;\\n}\\n\\n.mdl-color--deep-purple-100 {\\n background-color: rgb(209,196,233) !important;\\n}\\n\\n.mdl-color-text--deep-purple-200 {\\n color: rgb(179,157,219) !important;\\n}\\n\\n.mdl-color--deep-purple-200 {\\n background-color: rgb(179,157,219) !important;\\n}\\n\\n.mdl-color-text--deep-purple-300 {\\n color: rgb(149,117,205) !important;\\n}\\n\\n.mdl-color--deep-purple-300 {\\n background-color: rgb(149,117,205) !important;\\n}\\n\\n.mdl-color-text--deep-purple-400 {\\n color: rgb(126,87,194) !important;\\n}\\n\\n.mdl-color--deep-purple-400 {\\n background-color: rgb(126,87,194) !important;\\n}\\n\\n.mdl-color-text--deep-purple-500 {\\n color: rgb(103,58,183) !important;\\n}\\n\\n.mdl-color--deep-purple-500 {\\n background-color: rgb(103,58,183) !important;\\n}\\n\\n.mdl-color-text--deep-purple-600 {\\n color: rgb(94,53,177) !important;\\n}\\n\\n.mdl-color--deep-purple-600 {\\n background-color: rgb(94,53,177) !important;\\n}\\n\\n.mdl-color-text--deep-purple-700 {\\n color: rgb(81,45,168) !important;\\n}\\n\\n.mdl-color--deep-purple-700 {\\n background-color: rgb(81,45,168) !important;\\n}\\n\\n.mdl-color-text--deep-purple-800 {\\n color: rgb(69,39,160) !important;\\n}\\n\\n.mdl-color--deep-purple-800 {\\n background-color: rgb(69,39,160) !important;\\n}\\n\\n.mdl-color-text--deep-purple-900 {\\n color: rgb(49,27,146) !important;\\n}\\n\\n.mdl-color--deep-purple-900 {\\n background-color: rgb(49,27,146) !important;\\n}\\n\\n.mdl-color-text--deep-purple-A100 {\\n color: rgb(179,136,255) !important;\\n}\\n\\n.mdl-color--deep-purple-A100 {\\n background-color: rgb(179,136,255) !important;\\n}\\n\\n.mdl-color-text--deep-purple-A200 {\\n color: rgb(124,77,255) !important;\\n}\\n\\n.mdl-color--deep-purple-A200 {\\n background-color: rgb(124,77,255) !important;\\n}\\n\\n.mdl-color-text--deep-purple-A400 {\\n color: rgb(101,31,255) !important;\\n}\\n\\n.mdl-color--deep-purple-A400 {\\n background-color: rgb(101,31,255) !important;\\n}\\n\\n.mdl-color-text--deep-purple-A700 {\\n color: rgb(98,0,234) !important;\\n}\\n\\n.mdl-color--deep-purple-A700 {\\n background-color: rgb(98,0,234) !important;\\n}\\n\\n.mdl-color-text--indigo {\\n color: rgb(63,81,181) !important;\\n}\\n\\n.mdl-color--indigo {\\n background-color: rgb(63,81,181) !important;\\n}\\n\\n.mdl-color-text--indigo-50 {\\n color: rgb(232,234,246) !important;\\n}\\n\\n.mdl-color--indigo-50 {\\n background-color: rgb(232,234,246) !important;\\n}\\n\\n.mdl-color-text--indigo-100 {\\n color: rgb(197,202,233) !important;\\n}\\n\\n.mdl-color--indigo-100 {\\n background-color: rgb(197,202,233) !important;\\n}\\n\\n.mdl-color-text--indigo-200 {\\n color: rgb(159,168,218) !important;\\n}\\n\\n.mdl-color--indigo-200 {\\n background-color: rgb(159,168,218) !important;\\n}\\n\\n.mdl-color-text--indigo-300 {\\n color: rgb(121,134,203) !important;\\n}\\n\\n.mdl-color--indigo-300 {\\n background-color: rgb(121,134,203) !important;\\n}\\n\\n.mdl-color-text--indigo-400 {\\n color: rgb(92,107,192) !important;\\n}\\n\\n.mdl-color--indigo-400 {\\n background-color: rgb(92,107,192) !important;\\n}\\n\\n.mdl-color-text--indigo-500 {\\n color: rgb(63,81,181) !important;\\n}\\n\\n.mdl-color--indigo-500 {\\n background-color: rgb(63,81,181) !important;\\n}\\n\\n.mdl-color-text--indigo-600 {\\n color: rgb(57,73,171) !important;\\n}\\n\\n.mdl-color--indigo-600 {\\n background-color: rgb(57,73,171) !important;\\n}\\n\\n.mdl-color-text--indigo-700 {\\n color: rgb(48,63,159) !important;\\n}\\n\\n.mdl-color--indigo-700 {\\n background-color: rgb(48,63,159) !important;\\n}\\n\\n.mdl-color-text--indigo-800 {\\n color: rgb(40,53,147) !important;\\n}\\n\\n.mdl-color--indigo-800 {\\n background-color: rgb(40,53,147) !important;\\n}\\n\\n.mdl-color-text--indigo-900 {\\n color: rgb(26,35,126) !important;\\n}\\n\\n.mdl-color--indigo-900 {\\n background-color: rgb(26,35,126) !important;\\n}\\n\\n.mdl-color-text--indigo-A100 {\\n color: rgb(140,158,255) !important;\\n}\\n\\n.mdl-color--indigo-A100 {\\n background-color: rgb(140,158,255) !important;\\n}\\n\\n.mdl-color-text--indigo-A200 {\\n color: rgb(83,109,254) !important;\\n}\\n\\n.mdl-color--indigo-A200 {\\n background-color: rgb(83,109,254) !important;\\n}\\n\\n.mdl-color-text--indigo-A400 {\\n color: rgb(61,90,254) !important;\\n}\\n\\n.mdl-color--indigo-A400 {\\n background-color: rgb(61,90,254) !important;\\n}\\n\\n.mdl-color-text--indigo-A700 {\\n color: rgb(48,79,254) !important;\\n}\\n\\n.mdl-color--indigo-A700 {\\n background-color: rgb(48,79,254) !important;\\n}\\n\\n.mdl-color-text--blue {\\n color: rgb(33,150,243) !important;\\n}\\n\\n.mdl-color--blue {\\n background-color: rgb(33,150,243) !important;\\n}\\n\\n.mdl-color-text--blue-50 {\\n color: rgb(227,242,253) !important;\\n}\\n\\n.mdl-color--blue-50 {\\n background-color: rgb(227,242,253) !important;\\n}\\n\\n.mdl-color-text--blue-100 {\\n color: rgb(187,222,251) !important;\\n}\\n\\n.mdl-color--blue-100 {\\n background-color: rgb(187,222,251) !important;\\n}\\n\\n.mdl-color-text--blue-200 {\\n color: rgb(144,202,249) !important;\\n}\\n\\n.mdl-color--blue-200 {\\n background-color: rgb(144,202,249) !important;\\n}\\n\\n.mdl-color-text--blue-300 {\\n color: rgb(100,181,246) !important;\\n}\\n\\n.mdl-color--blue-300 {\\n background-color: rgb(100,181,246) !important;\\n}\\n\\n.mdl-color-text--blue-400 {\\n color: rgb(66,165,245) !important;\\n}\\n\\n.mdl-color--blue-400 {\\n background-color: rgb(66,165,245) !important;\\n}\\n\\n.mdl-color-text--blue-500 {\\n color: rgb(33,150,243) !important;\\n}\\n\\n.mdl-color--blue-500 {\\n background-color: rgb(33,150,243) !important;\\n}\\n\\n.mdl-color-text--blue-600 {\\n color: rgb(30,136,229) !important;\\n}\\n\\n.mdl-color--blue-600 {\\n background-color: rgb(30,136,229) !important;\\n}\\n\\n.mdl-color-text--blue-700 {\\n color: rgb(25,118,210) !important;\\n}\\n\\n.mdl-color--blue-700 {\\n background-color: rgb(25,118,210) !important;\\n}\\n\\n.mdl-color-text--blue-800 {\\n color: rgb(21,101,192) !important;\\n}\\n\\n.mdl-color--blue-800 {\\n background-color: rgb(21,101,192) !important;\\n}\\n\\n.mdl-color-text--blue-900 {\\n color: rgb(13,71,161) !important;\\n}\\n\\n.mdl-color--blue-900 {\\n background-color: rgb(13,71,161) !important;\\n}\\n\\n.mdl-color-text--blue-A100 {\\n color: rgb(130,177,255) !important;\\n}\\n\\n.mdl-color--blue-A100 {\\n background-color: rgb(130,177,255) !important;\\n}\\n\\n.mdl-color-text--blue-A200 {\\n color: rgb(68,138,255) !important;\\n}\\n\\n.mdl-color--blue-A200 {\\n background-color: rgb(68,138,255) !important;\\n}\\n\\n.mdl-color-text--blue-A400 {\\n color: rgb(41,121,255) !important;\\n}\\n\\n.mdl-color--blue-A400 {\\n background-color: rgb(41,121,255) !important;\\n}\\n\\n.mdl-color-text--blue-A700 {\\n color: rgb(41,98,255) !important;\\n}\\n\\n.mdl-color--blue-A700 {\\n background-color: rgb(41,98,255) !important;\\n}\\n\\n.mdl-color-text--light-blue {\\n color: rgb(3,169,244) !important;\\n}\\n\\n.mdl-color--light-blue {\\n background-color: rgb(3,169,244) !important;\\n}\\n\\n.mdl-color-text--light-blue-50 {\\n color: rgb(225,245,254) !important;\\n}\\n\\n.mdl-color--light-blue-50 {\\n background-color: rgb(225,245,254) !important;\\n}\\n\\n.mdl-color-text--light-blue-100 {\\n color: rgb(179,229,252) !important;\\n}\\n\\n.mdl-color--light-blue-100 {\\n background-color: rgb(179,229,252) !important;\\n}\\n\\n.mdl-color-text--light-blue-200 {\\n color: rgb(129,212,250) !important;\\n}\\n\\n.mdl-color--light-blue-200 {\\n background-color: rgb(129,212,250) !important;\\n}\\n\\n.mdl-color-text--light-blue-300 {\\n color: rgb(79,195,247) !important;\\n}\\n\\n.mdl-color--light-blue-300 {\\n background-color: rgb(79,195,247) !important;\\n}\\n\\n.mdl-color-text--light-blue-400 {\\n color: rgb(41,182,246) !important;\\n}\\n\\n.mdl-color--light-blue-400 {\\n background-color: rgb(41,182,246) !important;\\n}\\n\\n.mdl-color-text--light-blue-500 {\\n color: rgb(3,169,244) !important;\\n}\\n\\n.mdl-color--light-blue-500 {\\n background-color: rgb(3,169,244) !important;\\n}\\n\\n.mdl-color-text--light-blue-600 {\\n color: rgb(3,155,229) !important;\\n}\\n\\n.mdl-color--light-blue-600 {\\n background-color: rgb(3,155,229) !important;\\n}\\n\\n.mdl-color-text--light-blue-700 {\\n color: rgb(2,136,209) !important;\\n}\\n\\n.mdl-color--light-blue-700 {\\n background-color: rgb(2,136,209) !important;\\n}\\n\\n.mdl-color-text--light-blue-800 {\\n color: rgb(2,119,189) !important;\\n}\\n\\n.mdl-color--light-blue-800 {\\n background-color: rgb(2,119,189) !important;\\n}\\n\\n.mdl-color-text--light-blue-900 {\\n color: rgb(1,87,155) !important;\\n}\\n\\n.mdl-color--light-blue-900 {\\n background-color: rgb(1,87,155) !important;\\n}\\n\\n.mdl-color-text--light-blue-A100 {\\n color: rgb(128,216,255) !important;\\n}\\n\\n.mdl-color--light-blue-A100 {\\n background-color: rgb(128,216,255) !important;\\n}\\n\\n.mdl-color-text--light-blue-A200 {\\n color: rgb(64,196,255) !important;\\n}\\n\\n.mdl-color--light-blue-A200 {\\n background-color: rgb(64,196,255) !important;\\n}\\n\\n.mdl-color-text--light-blue-A400 {\\n color: rgb(0,176,255) !important;\\n}\\n\\n.mdl-color--light-blue-A400 {\\n background-color: rgb(0,176,255) !important;\\n}\\n\\n.mdl-color-text--light-blue-A700 {\\n color: rgb(0,145,234) !important;\\n}\\n\\n.mdl-color--light-blue-A700 {\\n background-color: rgb(0,145,234) !important;\\n}\\n\\n.mdl-color-text--cyan {\\n color: rgb(0,188,212) !important;\\n}\\n\\n.mdl-color--cyan {\\n background-color: rgb(0,188,212) !important;\\n}\\n\\n.mdl-color-text--cyan-50 {\\n color: rgb(224,247,250) !important;\\n}\\n\\n.mdl-color--cyan-50 {\\n background-color: rgb(224,247,250) !important;\\n}\\n\\n.mdl-color-text--cyan-100 {\\n color: rgb(178,235,242) !important;\\n}\\n\\n.mdl-color--cyan-100 {\\n background-color: rgb(178,235,242) !important;\\n}\\n\\n.mdl-color-text--cyan-200 {\\n color: rgb(128,222,234) !important;\\n}\\n\\n.mdl-color--cyan-200 {\\n background-color: rgb(128,222,234) !important;\\n}\\n\\n.mdl-color-text--cyan-300 {\\n color: rgb(77,208,225) !important;\\n}\\n\\n.mdl-color--cyan-300 {\\n background-color: rgb(77,208,225) !important;\\n}\\n\\n.mdl-color-text--cyan-400 {\\n color: rgb(38,198,218) !important;\\n}\\n\\n.mdl-color--cyan-400 {\\n background-color: rgb(38,198,218) !important;\\n}\\n\\n.mdl-color-text--cyan-500 {\\n color: rgb(0,188,212) !important;\\n}\\n\\n.mdl-color--cyan-500 {\\n background-color: rgb(0,188,212) !important;\\n}\\n\\n.mdl-color-text--cyan-600 {\\n color: rgb(0,172,193) !important;\\n}\\n\\n.mdl-color--cyan-600 {\\n background-color: rgb(0,172,193) !important;\\n}\\n\\n.mdl-color-text--cyan-700 {\\n color: rgb(0,151,167) !important;\\n}\\n\\n.mdl-color--cyan-700 {\\n background-color: rgb(0,151,167) !important;\\n}\\n\\n.mdl-color-text--cyan-800 {\\n color: rgb(0,131,143) !important;\\n}\\n\\n.mdl-color--cyan-800 {\\n background-color: rgb(0,131,143) !important;\\n}\\n\\n.mdl-color-text--cyan-900 {\\n color: rgb(0,96,100) !important;\\n}\\n\\n.mdl-color--cyan-900 {\\n background-color: rgb(0,96,100) !important;\\n}\\n\\n.mdl-color-text--cyan-A100 {\\n color: rgb(132,255,255) !important;\\n}\\n\\n.mdl-color--cyan-A100 {\\n background-color: rgb(132,255,255) !important;\\n}\\n\\n.mdl-color-text--cyan-A200 {\\n color: rgb(24,255,255) !important;\\n}\\n\\n.mdl-color--cyan-A200 {\\n background-color: rgb(24,255,255) !important;\\n}\\n\\n.mdl-color-text--cyan-A400 {\\n color: rgb(0,229,255) !important;\\n}\\n\\n.mdl-color--cyan-A400 {\\n background-color: rgb(0,229,255) !important;\\n}\\n\\n.mdl-color-text--cyan-A700 {\\n color: rgb(0,184,212) !important;\\n}\\n\\n.mdl-color--cyan-A700 {\\n background-color: rgb(0,184,212) !important;\\n}\\n\\n.mdl-color-text--teal {\\n color: rgb(0,150,136) !important;\\n}\\n\\n.mdl-color--teal {\\n background-color: rgb(0,150,136) !important;\\n}\\n\\n.mdl-color-text--teal-50 {\\n color: rgb(224,242,241) !important;\\n}\\n\\n.mdl-color--teal-50 {\\n background-color: rgb(224,242,241) !important;\\n}\\n\\n.mdl-color-text--teal-100 {\\n color: rgb(178,223,219) !important;\\n}\\n\\n.mdl-color--teal-100 {\\n background-color: rgb(178,223,219) !important;\\n}\\n\\n.mdl-color-text--teal-200 {\\n color: rgb(128,203,196) !important;\\n}\\n\\n.mdl-color--teal-200 {\\n background-color: rgb(128,203,196) !important;\\n}\\n\\n.mdl-color-text--teal-300 {\\n color: rgb(77,182,172) !important;\\n}\\n\\n.mdl-color--teal-300 {\\n background-color: rgb(77,182,172) !important;\\n}\\n\\n.mdl-color-text--teal-400 {\\n color: rgb(38,166,154) !important;\\n}\\n\\n.mdl-color--teal-400 {\\n background-color: rgb(38,166,154) !important;\\n}\\n\\n.mdl-color-text--teal-500 {\\n color: rgb(0,150,136) !important;\\n}\\n\\n.mdl-color--teal-500 {\\n background-color: rgb(0,150,136) !important;\\n}\\n\\n.mdl-color-text--teal-600 {\\n color: rgb(0,137,123) !important;\\n}\\n\\n.mdl-color--teal-600 {\\n background-color: rgb(0,137,123) !important;\\n}\\n\\n.mdl-color-text--teal-700 {\\n color: rgb(0,121,107) !important;\\n}\\n\\n.mdl-color--teal-700 {\\n background-color: rgb(0,121,107) !important;\\n}\\n\\n.mdl-color-text--teal-800 {\\n color: rgb(0,105,92) !important;\\n}\\n\\n.mdl-color--teal-800 {\\n background-color: rgb(0,105,92) !important;\\n}\\n\\n.mdl-color-text--teal-900 {\\n color: rgb(0,77,64) !important;\\n}\\n\\n.mdl-color--teal-900 {\\n background-color: rgb(0,77,64) !important;\\n}\\n\\n.mdl-color-text--teal-A100 {\\n color: rgb(167,255,235) !important;\\n}\\n\\n.mdl-color--teal-A100 {\\n background-color: rgb(167,255,235) !important;\\n}\\n\\n.mdl-color-text--teal-A200 {\\n color: rgb(100,255,218) !important;\\n}\\n\\n.mdl-color--teal-A200 {\\n background-color: rgb(100,255,218) !important;\\n}\\n\\n.mdl-color-text--teal-A400 {\\n color: rgb(29,233,182) !important;\\n}\\n\\n.mdl-color--teal-A400 {\\n background-color: rgb(29,233,182) !important;\\n}\\n\\n.mdl-color-text--teal-A700 {\\n color: rgb(0,191,165) !important;\\n}\\n\\n.mdl-color--teal-A700 {\\n background-color: rgb(0,191,165) !important;\\n}\\n\\n.mdl-color-text--green {\\n color: rgb(76,175,80) !important;\\n}\\n\\n.mdl-color--green {\\n background-color: rgb(76,175,80) !important;\\n}\\n\\n.mdl-color-text--green-50 {\\n color: rgb(232,245,233) !important;\\n}\\n\\n.mdl-color--green-50 {\\n background-color: rgb(232,245,233) !important;\\n}\\n\\n.mdl-color-text--green-100 {\\n color: rgb(200,230,201) !important;\\n}\\n\\n.mdl-color--green-100 {\\n background-color: rgb(200,230,201) !important;\\n}\\n\\n.mdl-color-text--green-200 {\\n color: rgb(165,214,167) !important;\\n}\\n\\n.mdl-color--green-200 {\\n background-color: rgb(165,214,167) !important;\\n}\\n\\n.mdl-color-text--green-300 {\\n color: rgb(129,199,132) !important;\\n}\\n\\n.mdl-color--green-300 {\\n background-color: rgb(129,199,132) !important;\\n}\\n\\n.mdl-color-text--green-400 {\\n color: rgb(102,187,106) !important;\\n}\\n\\n.mdl-color--green-400 {\\n background-color: rgb(102,187,106) !important;\\n}\\n\\n.mdl-color-text--green-500 {\\n color: rgb(76,175,80) !important;\\n}\\n\\n.mdl-color--green-500 {\\n background-color: rgb(76,175,80) !important;\\n}\\n\\n.mdl-color-text--green-600 {\\n color: rgb(67,160,71) !important;\\n}\\n\\n.mdl-color--green-600 {\\n background-color: rgb(67,160,71) !important;\\n}\\n\\n.mdl-color-text--green-700 {\\n color: rgb(56,142,60) !important;\\n}\\n\\n.mdl-color--green-700 {\\n background-color: rgb(56,142,60) !important;\\n}\\n\\n.mdl-color-text--green-800 {\\n color: rgb(46,125,50) !important;\\n}\\n\\n.mdl-color--green-800 {\\n background-color: rgb(46,125,50) !important;\\n}\\n\\n.mdl-color-text--green-900 {\\n color: rgb(27,94,32) !important;\\n}\\n\\n.mdl-color--green-900 {\\n background-color: rgb(27,94,32) !important;\\n}\\n\\n.mdl-color-text--green-A100 {\\n color: rgb(185,246,202) !important;\\n}\\n\\n.mdl-color--green-A100 {\\n background-color: rgb(185,246,202) !important;\\n}\\n\\n.mdl-color-text--green-A200 {\\n color: rgb(105,240,174) !important;\\n}\\n\\n.mdl-color--green-A200 {\\n background-color: rgb(105,240,174) !important;\\n}\\n\\n.mdl-color-text--green-A400 {\\n color: rgb(0,230,118) !important;\\n}\\n\\n.mdl-color--green-A400 {\\n background-color: rgb(0,230,118) !important;\\n}\\n\\n.mdl-color-text--green-A700 {\\n color: rgb(0,200,83) !important;\\n}\\n\\n.mdl-color--green-A700 {\\n background-color: rgb(0,200,83) !important;\\n}\\n\\n.mdl-color-text--light-green {\\n color: rgb(139,195,74) !important;\\n}\\n\\n.mdl-color--light-green {\\n background-color: rgb(139,195,74) !important;\\n}\\n\\n.mdl-color-text--light-green-50 {\\n color: rgb(241,248,233) !important;\\n}\\n\\n.mdl-color--light-green-50 {\\n background-color: rgb(241,248,233) !important;\\n}\\n\\n.mdl-color-text--light-green-100 {\\n color: rgb(220,237,200) !important;\\n}\\n\\n.mdl-color--light-green-100 {\\n background-color: rgb(220,237,200) !important;\\n}\\n\\n.mdl-color-text--light-green-200 {\\n color: rgb(197,225,165) !important;\\n}\\n\\n.mdl-color--light-green-200 {\\n background-color: rgb(197,225,165) !important;\\n}\\n\\n.mdl-color-text--light-green-300 {\\n color: rgb(174,213,129) !important;\\n}\\n\\n.mdl-color--light-green-300 {\\n background-color: rgb(174,213,129) !important;\\n}\\n\\n.mdl-color-text--light-green-400 {\\n color: rgb(156,204,101) !important;\\n}\\n\\n.mdl-color--light-green-400 {\\n background-color: rgb(156,204,101) !important;\\n}\\n\\n.mdl-color-text--light-green-500 {\\n color: rgb(139,195,74) !important;\\n}\\n\\n.mdl-color--light-green-500 {\\n background-color: rgb(139,195,74) !important;\\n}\\n\\n.mdl-color-text--light-green-600 {\\n color: rgb(124,179,66) !important;\\n}\\n\\n.mdl-color--light-green-600 {\\n background-color: rgb(124,179,66) !important;\\n}\\n\\n.mdl-color-text--light-green-700 {\\n color: rgb(104,159,56) !important;\\n}\\n\\n.mdl-color--light-green-700 {\\n background-color: rgb(104,159,56) !important;\\n}\\n\\n.mdl-color-text--light-green-800 {\\n color: rgb(85,139,47) !important;\\n}\\n\\n.mdl-color--light-green-800 {\\n background-color: rgb(85,139,47) !important;\\n}\\n\\n.mdl-color-text--light-green-900 {\\n color: rgb(51,105,30) !important;\\n}\\n\\n.mdl-color--light-green-900 {\\n background-color: rgb(51,105,30) !important;\\n}\\n\\n.mdl-color-text--light-green-A100 {\\n color: rgb(204,255,144) !important;\\n}\\n\\n.mdl-color--light-green-A100 {\\n background-color: rgb(204,255,144) !important;\\n}\\n\\n.mdl-color-text--light-green-A200 {\\n color: rgb(178,255,89) !important;\\n}\\n\\n.mdl-color--light-green-A200 {\\n background-color: rgb(178,255,89) !important;\\n}\\n\\n.mdl-color-text--light-green-A400 {\\n color: rgb(118,255,3) !important;\\n}\\n\\n.mdl-color--light-green-A400 {\\n background-color: rgb(118,255,3) !important;\\n}\\n\\n.mdl-color-text--light-green-A700 {\\n color: rgb(100,221,23) !important;\\n}\\n\\n.mdl-color--light-green-A700 {\\n background-color: rgb(100,221,23) !important;\\n}\\n\\n.mdl-color-text--lime {\\n color: rgb(205,220,57) !important;\\n}\\n\\n.mdl-color--lime {\\n background-color: rgb(205,220,57) !important;\\n}\\n\\n.mdl-color-text--lime-50 {\\n color: rgb(249,251,231) !important;\\n}\\n\\n.mdl-color--lime-50 {\\n background-color: rgb(249,251,231) !important;\\n}\\n\\n.mdl-color-text--lime-100 {\\n color: rgb(240,244,195) !important;\\n}\\n\\n.mdl-color--lime-100 {\\n background-color: rgb(240,244,195) !important;\\n}\\n\\n.mdl-color-text--lime-200 {\\n color: rgb(230,238,156) !important;\\n}\\n\\n.mdl-color--lime-200 {\\n background-color: rgb(230,238,156) !important;\\n}\\n\\n.mdl-color-text--lime-300 {\\n color: rgb(220,231,117) !important;\\n}\\n\\n.mdl-color--lime-300 {\\n background-color: rgb(220,231,117) !important;\\n}\\n\\n.mdl-color-text--lime-400 {\\n color: rgb(212,225,87) !important;\\n}\\n\\n.mdl-color--lime-400 {\\n background-color: rgb(212,225,87) !important;\\n}\\n\\n.mdl-color-text--lime-500 {\\n color: rgb(205,220,57) !important;\\n}\\n\\n.mdl-color--lime-500 {\\n background-color: rgb(205,220,57) !important;\\n}\\n\\n.mdl-color-text--lime-600 {\\n color: rgb(192,202,51) !important;\\n}\\n\\n.mdl-color--lime-600 {\\n background-color: rgb(192,202,51) !important;\\n}\\n\\n.mdl-color-text--lime-700 {\\n color: rgb(175,180,43) !important;\\n}\\n\\n.mdl-color--lime-700 {\\n background-color: rgb(175,180,43) !important;\\n}\\n\\n.mdl-color-text--lime-800 {\\n color: rgb(158,157,36) !important;\\n}\\n\\n.mdl-color--lime-800 {\\n background-color: rgb(158,157,36) !important;\\n}\\n\\n.mdl-color-text--lime-900 {\\n color: rgb(130,119,23) !important;\\n}\\n\\n.mdl-color--lime-900 {\\n background-color: rgb(130,119,23) !important;\\n}\\n\\n.mdl-color-text--lime-A100 {\\n color: rgb(244,255,129) !important;\\n}\\n\\n.mdl-color--lime-A100 {\\n background-color: rgb(244,255,129) !important;\\n}\\n\\n.mdl-color-text--lime-A200 {\\n color: rgb(238,255,65) !important;\\n}\\n\\n.mdl-color--lime-A200 {\\n background-color: rgb(238,255,65) !important;\\n}\\n\\n.mdl-color-text--lime-A400 {\\n color: rgb(198,255,0) !important;\\n}\\n\\n.mdl-color--lime-A400 {\\n background-color: rgb(198,255,0) !important;\\n}\\n\\n.mdl-color-text--lime-A700 {\\n color: rgb(174,234,0) !important;\\n}\\n\\n.mdl-color--lime-A700 {\\n background-color: rgb(174,234,0) !important;\\n}\\n\\n.mdl-color-text--yellow {\\n color: rgb(255,235,59) !important;\\n}\\n\\n.mdl-color--yellow {\\n background-color: rgb(255,235,59) !important;\\n}\\n\\n.mdl-color-text--yellow-50 {\\n color: rgb(255,253,231) !important;\\n}\\n\\n.mdl-color--yellow-50 {\\n background-color: rgb(255,253,231) !important;\\n}\\n\\n.mdl-color-text--yellow-100 {\\n color: rgb(255,249,196) !important;\\n}\\n\\n.mdl-color--yellow-100 {\\n background-color: rgb(255,249,196) !important;\\n}\\n\\n.mdl-color-text--yellow-200 {\\n color: rgb(255,245,157) !important;\\n}\\n\\n.mdl-color--yellow-200 {\\n background-color: rgb(255,245,157) !important;\\n}\\n\\n.mdl-color-text--yellow-300 {\\n color: rgb(255,241,118) !important;\\n}\\n\\n.mdl-color--yellow-300 {\\n background-color: rgb(255,241,118) !important;\\n}\\n\\n.mdl-color-text--yellow-400 {\\n color: rgb(255,238,88) !important;\\n}\\n\\n.mdl-color--yellow-400 {\\n background-color: rgb(255,238,88) !important;\\n}\\n\\n.mdl-color-text--yellow-500 {\\n color: rgb(255,235,59) !important;\\n}\\n\\n.mdl-color--yellow-500 {\\n background-color: rgb(255,235,59) !important;\\n}\\n\\n.mdl-color-text--yellow-600 {\\n color: rgb(253,216,53) !important;\\n}\\n\\n.mdl-color--yellow-600 {\\n background-color: rgb(253,216,53) !important;\\n}\\n\\n.mdl-color-text--yellow-700 {\\n color: rgb(251,192,45) !important;\\n}\\n\\n.mdl-color--yellow-700 {\\n background-color: rgb(251,192,45) !important;\\n}\\n\\n.mdl-color-text--yellow-800 {\\n color: rgb(249,168,37) !important;\\n}\\n\\n.mdl-color--yellow-800 {\\n background-color: rgb(249,168,37) !important;\\n}\\n\\n.mdl-color-text--yellow-900 {\\n color: rgb(245,127,23) !important;\\n}\\n\\n.mdl-color--yellow-900 {\\n background-color: rgb(245,127,23) !important;\\n}\\n\\n.mdl-color-text--yellow-A100 {\\n color: rgb(255,255,141) !important;\\n}\\n\\n.mdl-color--yellow-A100 {\\n background-color: rgb(255,255,141) !important;\\n}\\n\\n.mdl-color-text--yellow-A200 {\\n color: rgb(255,255,0) !important;\\n}\\n\\n.mdl-color--yellow-A200 {\\n background-color: rgb(255,255,0) !important;\\n}\\n\\n.mdl-color-text--yellow-A400 {\\n color: rgb(255,234,0) !important;\\n}\\n\\n.mdl-color--yellow-A400 {\\n background-color: rgb(255,234,0) !important;\\n}\\n\\n.mdl-color-text--yellow-A700 {\\n color: rgb(255,214,0) !important;\\n}\\n\\n.mdl-color--yellow-A700 {\\n background-color: rgb(255,214,0) !important;\\n}\\n\\n.mdl-color-text--amber {\\n color: rgb(255,193,7) !important;\\n}\\n\\n.mdl-color--amber {\\n background-color: rgb(255,193,7) !important;\\n}\\n\\n.mdl-color-text--amber-50 {\\n color: rgb(255,248,225) !important;\\n}\\n\\n.mdl-color--amber-50 {\\n background-color: rgb(255,248,225) !important;\\n}\\n\\n.mdl-color-text--amber-100 {\\n color: rgb(255,236,179) !important;\\n}\\n\\n.mdl-color--amber-100 {\\n background-color: rgb(255,236,179) !important;\\n}\\n\\n.mdl-color-text--amber-200 {\\n color: rgb(255,224,130) !important;\\n}\\n\\n.mdl-color--amber-200 {\\n background-color: rgb(255,224,130) !important;\\n}\\n\\n.mdl-color-text--amber-300 {\\n color: rgb(255,213,79) !important;\\n}\\n\\n.mdl-color--amber-300 {\\n background-color: rgb(255,213,79) !important;\\n}\\n\\n.mdl-color-text--amber-400 {\\n color: rgb(255,202,40) !important;\\n}\\n\\n.mdl-color--amber-400 {\\n background-color: rgb(255,202,40) !important;\\n}\\n\\n.mdl-color-text--amber-500 {\\n color: rgb(255,193,7) !important;\\n}\\n\\n.mdl-color--amber-500 {\\n background-color: rgb(255,193,7) !important;\\n}\\n\\n.mdl-color-text--amber-600 {\\n color: rgb(255,179,0) !important;\\n}\\n\\n.mdl-color--amber-600 {\\n background-color: rgb(255,179,0) !important;\\n}\\n\\n.mdl-color-text--amber-700 {\\n color: rgb(255,160,0) !important;\\n}\\n\\n.mdl-color--amber-700 {\\n background-color: rgb(255,160,0) !important;\\n}\\n\\n.mdl-color-text--amber-800 {\\n color: rgb(255,143,0) !important;\\n}\\n\\n.mdl-color--amber-800 {\\n background-color: rgb(255,143,0) !important;\\n}\\n\\n.mdl-color-text--amber-900 {\\n color: rgb(255,111,0) !important;\\n}\\n\\n.mdl-color--amber-900 {\\n background-color: rgb(255,111,0) !important;\\n}\\n\\n.mdl-color-text--amber-A100 {\\n color: rgb(255,229,127) !important;\\n}\\n\\n.mdl-color--amber-A100 {\\n background-color: rgb(255,229,127) !important;\\n}\\n\\n.mdl-color-text--amber-A200 {\\n color: rgb(255,215,64) !important;\\n}\\n\\n.mdl-color--amber-A200 {\\n background-color: rgb(255,215,64) !important;\\n}\\n\\n.mdl-color-text--amber-A400 {\\n color: rgb(255,196,0) !important;\\n}\\n\\n.mdl-color--amber-A400 {\\n background-color: rgb(255,196,0) !important;\\n}\\n\\n.mdl-color-text--amber-A700 {\\n color: rgb(255,171,0) !important;\\n}\\n\\n.mdl-color--amber-A700 {\\n background-color: rgb(255,171,0) !important;\\n}\\n\\n.mdl-color-text--orange {\\n color: rgb(255,152,0) !important;\\n}\\n\\n.mdl-color--orange {\\n background-color: rgb(255,152,0) !important;\\n}\\n\\n.mdl-color-text--orange-50 {\\n color: rgb(255,243,224) !important;\\n}\\n\\n.mdl-color--orange-50 {\\n background-color: rgb(255,243,224) !important;\\n}\\n\\n.mdl-color-text--orange-100 {\\n color: rgb(255,224,178) !important;\\n}\\n\\n.mdl-color--orange-100 {\\n background-color: rgb(255,224,178) !important;\\n}\\n\\n.mdl-color-text--orange-200 {\\n color: rgb(255,204,128) !important;\\n}\\n\\n.mdl-color--orange-200 {\\n background-color: rgb(255,204,128) !important;\\n}\\n\\n.mdl-color-text--orange-300 {\\n color: rgb(255,183,77) !important;\\n}\\n\\n.mdl-color--orange-300 {\\n background-color: rgb(255,183,77) !important;\\n}\\n\\n.mdl-color-text--orange-400 {\\n color: rgb(255,167,38) !important;\\n}\\n\\n.mdl-color--orange-400 {\\n background-color: rgb(255,167,38) !important;\\n}\\n\\n.mdl-color-text--orange-500 {\\n color: rgb(255,152,0) !important;\\n}\\n\\n.mdl-color--orange-500 {\\n background-color: rgb(255,152,0) !important;\\n}\\n\\n.mdl-color-text--orange-600 {\\n color: rgb(251,140,0) !important;\\n}\\n\\n.mdl-color--orange-600 {\\n background-color: rgb(251,140,0) !important;\\n}\\n\\n.mdl-color-text--orange-700 {\\n color: rgb(245,124,0) !important;\\n}\\n\\n.mdl-color--orange-700 {\\n background-color: rgb(245,124,0) !important;\\n}\\n\\n.mdl-color-text--orange-800 {\\n color: rgb(239,108,0) !important;\\n}\\n\\n.mdl-color--orange-800 {\\n background-color: rgb(239,108,0) !important;\\n}\\n\\n.mdl-color-text--orange-900 {\\n color: rgb(230,81,0) !important;\\n}\\n\\n.mdl-color--orange-900 {\\n background-color: rgb(230,81,0) !important;\\n}\\n\\n.mdl-color-text--orange-A100 {\\n color: rgb(255,209,128) !important;\\n}\\n\\n.mdl-color--orange-A100 {\\n background-color: rgb(255,209,128) !important;\\n}\\n\\n.mdl-color-text--orange-A200 {\\n color: rgb(255,171,64) !important;\\n}\\n\\n.mdl-color--orange-A200 {\\n background-color: rgb(255,171,64) !important;\\n}\\n\\n.mdl-color-text--orange-A400 {\\n color: rgb(255,145,0) !important;\\n}\\n\\n.mdl-color--orange-A400 {\\n background-color: rgb(255,145,0) !important;\\n}\\n\\n.mdl-color-text--orange-A700 {\\n color: rgb(255,109,0) !important;\\n}\\n\\n.mdl-color--orange-A700 {\\n background-color: rgb(255,109,0) !important;\\n}\\n\\n.mdl-color-text--deep-orange {\\n color: rgb(255,87,34) !important;\\n}\\n\\n.mdl-color--deep-orange {\\n background-color: rgb(255,87,34) !important;\\n}\\n\\n.mdl-color-text--deep-orange-50 {\\n color: rgb(251,233,231) !important;\\n}\\n\\n.mdl-color--deep-orange-50 {\\n background-color: rgb(251,233,231) !important;\\n}\\n\\n.mdl-color-text--deep-orange-100 {\\n color: rgb(255,204,188) !important;\\n}\\n\\n.mdl-color--deep-orange-100 {\\n background-color: rgb(255,204,188) !important;\\n}\\n\\n.mdl-color-text--deep-orange-200 {\\n color: rgb(255,171,145) !important;\\n}\\n\\n.mdl-color--deep-orange-200 {\\n background-color: rgb(255,171,145) !important;\\n}\\n\\n.mdl-color-text--deep-orange-300 {\\n color: rgb(255,138,101) !important;\\n}\\n\\n.mdl-color--deep-orange-300 {\\n background-color: rgb(255,138,101) !important;\\n}\\n\\n.mdl-color-text--deep-orange-400 {\\n color: rgb(255,112,67) !important;\\n}\\n\\n.mdl-color--deep-orange-400 {\\n background-color: rgb(255,112,67) !important;\\n}\\n\\n.mdl-color-text--deep-orange-500 {\\n color: rgb(255,87,34) !important;\\n}\\n\\n.mdl-color--deep-orange-500 {\\n background-color: rgb(255,87,34) !important;\\n}\\n\\n.mdl-color-text--deep-orange-600 {\\n color: rgb(244,81,30) !important;\\n}\\n\\n.mdl-color--deep-orange-600 {\\n background-color: rgb(244,81,30) !important;\\n}\\n\\n.mdl-color-text--deep-orange-700 {\\n color: rgb(230,74,25) !important;\\n}\\n\\n.mdl-color--deep-orange-700 {\\n background-color: rgb(230,74,25) !important;\\n}\\n\\n.mdl-color-text--deep-orange-800 {\\n color: rgb(216,67,21) !important;\\n}\\n\\n.mdl-color--deep-orange-800 {\\n background-color: rgb(216,67,21) !important;\\n}\\n\\n.mdl-color-text--deep-orange-900 {\\n color: rgb(191,54,12) !important;\\n}\\n\\n.mdl-color--deep-orange-900 {\\n background-color: rgb(191,54,12) !important;\\n}\\n\\n.mdl-color-text--deep-orange-A100 {\\n color: rgb(255,158,128) !important;\\n}\\n\\n.mdl-color--deep-orange-A100 {\\n background-color: rgb(255,158,128) !important;\\n}\\n\\n.mdl-color-text--deep-orange-A200 {\\n color: rgb(255,110,64) !important;\\n}\\n\\n.mdl-color--deep-orange-A200 {\\n background-color: rgb(255,110,64) !important;\\n}\\n\\n.mdl-color-text--deep-orange-A400 {\\n color: rgb(255,61,0) !important;\\n}\\n\\n.mdl-color--deep-orange-A400 {\\n background-color: rgb(255,61,0) !important;\\n}\\n\\n.mdl-color-text--deep-orange-A700 {\\n color: rgb(221,44,0) !important;\\n}\\n\\n.mdl-color--deep-orange-A700 {\\n background-color: rgb(221,44,0) !important;\\n}\\n\\n.mdl-color-text--brown {\\n color: rgb(121,85,72) !important;\\n}\\n\\n.mdl-color--brown {\\n background-color: rgb(121,85,72) !important;\\n}\\n\\n.mdl-color-text--brown-50 {\\n color: rgb(239,235,233) !important;\\n}\\n\\n.mdl-color--brown-50 {\\n background-color: rgb(239,235,233) !important;\\n}\\n\\n.mdl-color-text--brown-100 {\\n color: rgb(215,204,200) !important;\\n}\\n\\n.mdl-color--brown-100 {\\n background-color: rgb(215,204,200) !important;\\n}\\n\\n.mdl-color-text--brown-200 {\\n color: rgb(188,170,164) !important;\\n}\\n\\n.mdl-color--brown-200 {\\n background-color: rgb(188,170,164) !important;\\n}\\n\\n.mdl-color-text--brown-300 {\\n color: rgb(161,136,127) !important;\\n}\\n\\n.mdl-color--brown-300 {\\n background-color: rgb(161,136,127) !important;\\n}\\n\\n.mdl-color-text--brown-400 {\\n color: rgb(141,110,99) !important;\\n}\\n\\n.mdl-color--brown-400 {\\n background-color: rgb(141,110,99) !important;\\n}\\n\\n.mdl-color-text--brown-500 {\\n color: rgb(121,85,72) !important;\\n}\\n\\n.mdl-color--brown-500 {\\n background-color: rgb(121,85,72) !important;\\n}\\n\\n.mdl-color-text--brown-600 {\\n color: rgb(109,76,65) !important;\\n}\\n\\n.mdl-color--brown-600 {\\n background-color: rgb(109,76,65) !important;\\n}\\n\\n.mdl-color-text--brown-700 {\\n color: rgb(93,64,55) !important;\\n}\\n\\n.mdl-color--brown-700 {\\n background-color: rgb(93,64,55) !important;\\n}\\n\\n.mdl-color-text--brown-800 {\\n color: rgb(78,52,46) !important;\\n}\\n\\n.mdl-color--brown-800 {\\n background-color: rgb(78,52,46) !important;\\n}\\n\\n.mdl-color-text--brown-900 {\\n color: rgb(62,39,35) !important;\\n}\\n\\n.mdl-color--brown-900 {\\n background-color: rgb(62,39,35) !important;\\n}\\n\\n.mdl-color-text--grey {\\n color: rgb(158,158,158) !important;\\n}\\n\\n.mdl-color--grey {\\n background-color: rgb(158,158,158) !important;\\n}\\n\\n.mdl-color-text--grey-50 {\\n color: rgb(250,250,250) !important;\\n}\\n\\n.mdl-color--grey-50 {\\n background-color: rgb(250,250,250) !important;\\n}\\n\\n.mdl-color-text--grey-100 {\\n color: rgb(245,245,245) !important;\\n}\\n\\n.mdl-color--grey-100 {\\n background-color: rgb(245,245,245) !important;\\n}\\n\\n.mdl-color-text--grey-200 {\\n color: rgb(238,238,238) !important;\\n}\\n\\n.mdl-color--grey-200 {\\n background-color: rgb(238,238,238) !important;\\n}\\n\\n.mdl-color-text--grey-300 {\\n color: rgb(224,224,224) !important;\\n}\\n\\n.mdl-color--grey-300 {\\n background-color: rgb(224,224,224) !important;\\n}\\n\\n.mdl-color-text--grey-400 {\\n color: rgb(189,189,189) !important;\\n}\\n\\n.mdl-color--grey-400 {\\n background-color: rgb(189,189,189) !important;\\n}\\n\\n.mdl-color-text--grey-500 {\\n color: rgb(158,158,158) !important;\\n}\\n\\n.mdl-color--grey-500 {\\n background-color: rgb(158,158,158) !important;\\n}\\n\\n.mdl-color-text--grey-600 {\\n color: rgb(117,117,117) !important;\\n}\\n\\n.mdl-color--grey-600 {\\n background-color: rgb(117,117,117) !important;\\n}\\n\\n.mdl-color-text--grey-700 {\\n color: rgb(97,97,97) !important;\\n}\\n\\n.mdl-color--grey-700 {\\n background-color: rgb(97,97,97) !important;\\n}\\n\\n.mdl-color-text--grey-800 {\\n color: rgb(66,66,66) !important;\\n}\\n\\n.mdl-color--grey-800 {\\n background-color: rgb(66,66,66) !important;\\n}\\n\\n.mdl-color-text--grey-900 {\\n color: rgb(33,33,33) !important;\\n}\\n\\n.mdl-color--grey-900 {\\n background-color: rgb(33,33,33) !important;\\n}\\n\\n.mdl-color-text--blue-grey {\\n color: rgb(96,125,139) !important;\\n}\\n\\n.mdl-color--blue-grey {\\n background-color: rgb(96,125,139) !important;\\n}\\n\\n.mdl-color-text--blue-grey-50 {\\n color: rgb(236,239,241) !important;\\n}\\n\\n.mdl-color--blue-grey-50 {\\n background-color: rgb(236,239,241) !important;\\n}\\n\\n.mdl-color-text--blue-grey-100 {\\n color: rgb(207,216,220) !important;\\n}\\n\\n.mdl-color--blue-grey-100 {\\n background-color: rgb(207,216,220) !important;\\n}\\n\\n.mdl-color-text--blue-grey-200 {\\n color: rgb(176,190,197) !important;\\n}\\n\\n.mdl-color--blue-grey-200 {\\n background-color: rgb(176,190,197) !important;\\n}\\n\\n.mdl-color-text--blue-grey-300 {\\n color: rgb(144,164,174) !important;\\n}\\n\\n.mdl-color--blue-grey-300 {\\n background-color: rgb(144,164,174) !important;\\n}\\n\\n.mdl-color-text--blue-grey-400 {\\n color: rgb(120,144,156) !important;\\n}\\n\\n.mdl-color--blue-grey-400 {\\n background-color: rgb(120,144,156) !important;\\n}\\n\\n.mdl-color-text--blue-grey-500 {\\n color: rgb(96,125,139) !important;\\n}\\n\\n.mdl-color--blue-grey-500 {\\n background-color: rgb(96,125,139) !important;\\n}\\n\\n.mdl-color-text--blue-grey-600 {\\n color: rgb(84,110,122) !important;\\n}\\n\\n.mdl-color--blue-grey-600 {\\n background-color: rgb(84,110,122) !important;\\n}\\n\\n.mdl-color-text--blue-grey-700 {\\n color: rgb(69,90,100) !important;\\n}\\n\\n.mdl-color--blue-grey-700 {\\n background-color: rgb(69,90,100) !important;\\n}\\n\\n.mdl-color-text--blue-grey-800 {\\n color: rgb(55,71,79) !important;\\n}\\n\\n.mdl-color--blue-grey-800 {\\n background-color: rgb(55,71,79) !important;\\n}\\n\\n.mdl-color-text--blue-grey-900 {\\n color: rgb(38,50,56) !important;\\n}\\n\\n.mdl-color--blue-grey-900 {\\n background-color: rgb(38,50,56) !important;\\n}\\n\\n.mdl-color--black {\\n background-color: rgb(0,0,0) !important;\\n}\\n\\n.mdl-color-text--black {\\n color: rgb(0,0,0) !important;\\n}\\n\\n.mdl-color--white {\\n background-color: rgb(255,255,255) !important;\\n}\\n\\n.mdl-color-text--white {\\n color: rgb(255,255,255) !important;\\n}\\n\\n.mdl-color--primary {\\n background-color: rgb(98, 105, 113) !important;\\n}\\n\\n.mdl-color--primary-contrast {\\n background-color: rgb(255, 255, 255) !important;\\n}\\n\\n.mdl-color--primary-dark {\\n background-color: rgb(38, 50, 56) !important;\\n}\\n\\n.mdl-color--accent {\\n background-color: rgb(0, 128, 175) !important;\\n}\\n\\n.mdl-color--accent-contrast {\\n background-color: rgb(255, 255, 255) !important;\\n}\\n\\n.mdl-color-text--primary {\\n color: rgb(98, 105, 113) !important;\\n}\\n\\n.mdl-color-text--primary-contrast {\\n color: rgb(255, 255, 255) !important;\\n}\\n\\n.mdl-color-text--primary-dark {\\n color: rgb(38, 50, 56) !important;\\n}\\n\\n.mdl-color-text--accent {\\n color: rgb(0, 128, 175) !important;\\n}\\n\\n.mdl-color-text--accent-contrast {\\n color: rgb(255, 255, 255) !important;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n.mdl-ripple {\\n background: rgb(0,0,0);\\n border-radius: 50%;\\n height: 50px;\\n left: 0;\\n opacity: 0;\\n pointer-events: none;\\n position: absolute;\\n top: 0;\\n transform: translate(-50%, -50%);\\n width: 50px;\\n overflow: hidden;\\n}\\n\\n.mdl-ripple.is-animating {\\n transition: transform 0.3s cubic-bezier(0, 0, 0.2, 1), width 0.3s cubic-bezier(0, 0, 0.2, 1), height 0.3s cubic-bezier(0, 0, 0.2, 1), opacity 0.6s cubic-bezier(0, 0, 0.2, 1);\\n}\\n\\n.mdl-ripple.is-visible {\\n opacity: 0.3;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n.mdl-animation--default {\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n}\\n\\n.mdl-animation--fast-out-slow-in {\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n}\\n\\n.mdl-animation--linear-out-slow-in {\\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\\n}\\n\\n.mdl-animation--fast-out-linear-in {\\n transition-timing-function: cubic-bezier(0.4, 0, 1, 1);\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n.mdl-badge {\\n position: relative;\\n white-space: nowrap;\\n margin-right: 24px;\\n}\\n\\n.mdl-badge:not([data-badge]) {\\n margin-right: auto;\\n}\\n\\n.mdl-badge[data-badge]:after {\\n content: attr(data-badge);\\n display: flex;\\n flex-direction: row;\\n flex-wrap: wrap;\\n justify-content: center;\\n align-content: center;\\n align-items: center;\\n position: absolute;\\n top: -11px;\\n right: -24px;\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-weight: 600;\\n font-size: 12px;\\n width: 22px;\\n height: 22px;\\n border-radius: 50%;\\n background: rgb(0, 128, 175);\\n color: rgb(255, 255, 255);\\n}\\n\\n.mdl-button .mdl-badge[data-badge]:after {\\n top: -10px;\\n right: -5px;\\n}\\n\\n.mdl-badge.mdl-badge--no-background[data-badge]:after {\\n color: rgb(0, 128, 175);\\n background: rgba(255, 255, 255,0.2);\\n box-shadow: 0 0 1px gray;\\n}\\n\\n.mdl-badge.mdl-badge--overlap {\\n margin-right: 10px;\\n}\\n\\n.mdl-badge.mdl-badge--overlap:after {\\n right: -10px;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Typography */\\n\\n/* Shadows */\\n\\n/* Animations */\\n\\n/* Dialog */\\n\\n.mdl-button {\\n background: transparent;\\n border: none;\\n border-radius: 2px;\\n color: rgb(0,0,0);\\n position: relative;\\n height: 36px;\\n margin: 0;\\n min-width: 64px;\\n padding: 0 16px;\\n display: inline-block;\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n text-transform: uppercase;\\n line-height: 1;\\n letter-spacing: 0;\\n overflow: hidden;\\n will-change: box-shadow;\\n transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1);\\n outline: none;\\n cursor: pointer;\\n text-decoration: none;\\n text-align: center;\\n line-height: 36px;\\n vertical-align: middle;\\n}\\n\\n.mdl-button::-moz-focus-inner {\\n border: 0;\\n}\\n\\n.mdl-button:hover {\\n background-color: rgba(158,158,158, 0.20);\\n}\\n\\n.mdl-button:focus:not(:active) {\\n background-color: rgba(0,0,0, 0.12);\\n}\\n\\n.mdl-button:active {\\n background-color: rgba(158,158,158, 0.40);\\n}\\n\\n.mdl-button.mdl-button--colored {\\n color: rgb(98, 105, 113);\\n}\\n\\n.mdl-button.mdl-button--colored:focus:not(:active) {\\n background-color: rgba(0,0,0, 0.12);\\n}\\n\\ninput.mdl-button[type=submit] {\\n -webkit-appearance: none;\\n}\\n\\n.mdl-button--raised {\\n background: rgba(158,158,158, 0.20);\\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n}\\n\\n.mdl-button--raised:active {\\n box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2);\\n background-color: rgba(158,158,158, 0.40);\\n}\\n\\n.mdl-button--raised:focus:not(:active) {\\n box-shadow: 0 0 8px rgba(0, 0, 0, 0.18), 0 8px 16px rgba(0, 0, 0, 0.36);\\n background-color: rgba(158,158,158, 0.40);\\n}\\n\\n.mdl-button--raised.mdl-button--colored {\\n background: rgb(98, 105, 113);\\n color: rgb(255, 255, 255);\\n}\\n\\n.mdl-button--raised.mdl-button--colored:hover {\\n background-color: rgb(98, 105, 113);\\n}\\n\\n.mdl-button--raised.mdl-button--colored:active {\\n background-color: rgb(98, 105, 113);\\n}\\n\\n.mdl-button--raised.mdl-button--colored:focus:not(:active) {\\n background-color: rgb(98, 105, 113);\\n}\\n\\n.mdl-button--raised.mdl-button--colored .mdl-ripple {\\n background: rgb(255, 255, 255);\\n}\\n\\n.mdl-button--fab {\\n border-radius: 50%;\\n font-size: 24px;\\n height: 56px;\\n margin: auto;\\n min-width: 56px;\\n width: 56px;\\n padding: 0;\\n overflow: hidden;\\n background: rgba(158,158,158, 0.20);\\n box-shadow: 0 1px 1.5px 0 rgba(0, 0, 0, 0.12), 0 1px 1px 0 rgba(0, 0, 0, 0.24);\\n position: relative;\\n line-height: normal;\\n}\\n\\n.mdl-button--fab .material-icons {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n transform: translate(-12px, -12px);\\n line-height: 24px;\\n width: 24px;\\n}\\n\\n.mdl-button--fab.mdl-button--mini-fab {\\n height: 40px;\\n min-width: 40px;\\n width: 40px;\\n}\\n\\n.mdl-button--fab .mdl-button__ripple-container {\\n border-radius: 50%;\\n -webkit-mask-image: -webkit-radial-gradient(circle, white, black);\\n}\\n\\n.mdl-button--fab:active {\\n box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2);\\n background-color: rgba(158,158,158, 0.40);\\n}\\n\\n.mdl-button--fab:focus:not(:active) {\\n box-shadow: 0 0 8px rgba(0, 0, 0, 0.18), 0 8px 16px rgba(0, 0, 0, 0.36);\\n background-color: rgba(158,158,158, 0.40);\\n}\\n\\n.mdl-button--fab.mdl-button--colored {\\n background: rgb(0, 128, 175);\\n color: rgb(255, 255, 255);\\n}\\n\\n.mdl-button--fab.mdl-button--colored:hover {\\n background-color: rgb(0, 128, 175);\\n}\\n\\n.mdl-button--fab.mdl-button--colored:focus:not(:active) {\\n background-color: rgb(0, 128, 175);\\n}\\n\\n.mdl-button--fab.mdl-button--colored:active {\\n background-color: rgb(0, 128, 175);\\n}\\n\\n.mdl-button--fab.mdl-button--colored .mdl-ripple {\\n background: rgb(255, 255, 255);\\n}\\n\\n.mdl-button--icon {\\n border-radius: 50%;\\n font-size: 24px;\\n height: 32px;\\n margin-left: 0;\\n margin-right: 0;\\n min-width: 32px;\\n width: 32px;\\n padding: 0;\\n overflow: hidden;\\n color: inherit;\\n line-height: normal;\\n}\\n\\n.mdl-button--icon .material-icons {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n transform: translate(-12px, -12px);\\n line-height: 24px;\\n width: 24px;\\n}\\n\\n.mdl-button--icon.mdl-button--mini-icon {\\n height: 24px;\\n min-width: 24px;\\n width: 24px;\\n}\\n\\n.mdl-button--icon.mdl-button--mini-icon .material-icons {\\n top: 0px;\\n left: 0px;\\n}\\n\\n.mdl-button--icon .mdl-button__ripple-container {\\n border-radius: 50%;\\n -webkit-mask-image: -webkit-radial-gradient(circle, white, black);\\n}\\n\\n.mdl-button__ripple-container {\\n display: block;\\n height: 100%;\\n left: 0px;\\n position: absolute;\\n top: 0px;\\n width: 100%;\\n z-index: 0;\\n overflow: hidden;\\n}\\n\\n.mdl-button[disabled] .mdl-button__ripple-container .mdl-ripple,\\n.mdl-button.mdl-button--disabled .mdl-button__ripple-container .mdl-ripple {\\n background-color: transparent;\\n}\\n\\n.mdl-button--primary.mdl-button--primary {\\n color: rgb(98, 105, 113);\\n}\\n\\n.mdl-button--primary.mdl-button--primary .mdl-ripple {\\n background: rgb(255, 255, 255);\\n}\\n\\n.mdl-button--primary.mdl-button--primary.mdl-button--raised,\\n.mdl-button--primary.mdl-button--primary.mdl-button--fab {\\n color: rgb(255, 255, 255);\\n background-color: rgb(98, 105, 113);\\n}\\n\\n.mdl-button--accent.mdl-button--accent {\\n color: rgb(0, 128, 175);\\n}\\n\\n.mdl-button--accent.mdl-button--accent .mdl-ripple {\\n background: rgb(255, 255, 255);\\n}\\n\\n.mdl-button--accent.mdl-button--accent.mdl-button--raised,\\n.mdl-button--accent.mdl-button--accent.mdl-button--fab {\\n color: rgb(255, 255, 255);\\n background-color: rgb(0, 128, 175);\\n}\\n\\n.mdl-button[disabled][disabled],\\n.mdl-button.mdl-button--disabled.mdl-button--disabled {\\n color: rgba(0,0,0, 0.26);\\n cursor: default;\\n background-color: transparent;\\n}\\n\\n.mdl-button--fab[disabled][disabled],\\n.mdl-button--fab.mdl-button--disabled.mdl-button--disabled {\\n background-color: rgba(0,0,0, 0.12);\\n color: rgba(0,0,0, 0.26);\\n}\\n\\n.mdl-button--raised[disabled][disabled],\\n.mdl-button--raised.mdl-button--disabled.mdl-button--disabled {\\n background-color: rgba(0,0,0, 0.12);\\n color: rgba(0,0,0, 0.26);\\n box-shadow: none;\\n}\\n\\n.mdl-button--colored[disabled][disabled],\\n.mdl-button--colored.mdl-button--disabled.mdl-button--disabled {\\n color: rgba(0,0,0, 0.26);\\n}\\n\\n.mdl-button .material-icons {\\n vertical-align: middle;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n.mdl-card {\\n display: flex;\\n flex-direction: column;\\n font-size: 16px;\\n font-weight: 400;\\n min-height: 200px;\\n overflow: hidden;\\n width: 330px;\\n z-index: 1;\\n position: relative;\\n background: rgb(255,255,255);\\n border-radius: 2px;\\n box-sizing: border-box;\\n}\\n\\n.mdl-card__media {\\n background-color: rgb(0, 128, 175);\\n background-repeat: repeat;\\n background-position: 50% 50%;\\n background-size: cover;\\n background-origin: padding-box;\\n background-attachment: scroll;\\n box-sizing: border-box;\\n}\\n\\n.mdl-card__title {\\n align-items: center;\\n color: rgb(0,0,0);\\n display: block;\\n display: flex;\\n justify-content: stretch;\\n line-height: normal;\\n padding: 16px 16px;\\n perspective-origin: 165px 56px;\\n transform-origin: 165px 56px;\\n box-sizing: border-box;\\n}\\n\\n.mdl-card__title.mdl-card--border {\\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\\n}\\n\\n.mdl-card__title-text {\\n align-self: flex-end;\\n color: inherit;\\n display: block;\\n display: flex;\\n font-size: 18px;\\n font-weight: 300;\\n line-height: normal;\\n overflow: hidden;\\n transform-origin: 149px 48px;\\n margin: 0;\\n}\\n\\n.mdl-card__subtitle-text {\\n font-size: 14px;\\n color: rgba(0,0,0, 0.54);\\n margin: 0;\\n}\\n\\n.mdl-card__supporting-text {\\n color: rgba(0,0,0, 0.54);\\n font-size: 1rem;\\n line-height: 18px;\\n overflow: hidden;\\n padding: 16px 16px;\\n width: 90%;\\n}\\n\\n.mdl-card__supporting-text.mdl-card--border {\\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\\n}\\n\\n.mdl-card__actions {\\n font-size: 16px;\\n line-height: normal;\\n width: 100%;\\n background-color: rgba(0, 0, 0, 0);\\n padding: 8px;\\n box-sizing: border-box;\\n}\\n\\n.mdl-card__actions.mdl-card--border {\\n border-top: 1px solid rgba(0, 0, 0, 0.1);\\n}\\n\\n.mdl-card--expand {\\n flex-grow: 1;\\n}\\n\\n.mdl-card__menu {\\n position: absolute;\\n right: 16px;\\n top: 16px;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Typography */\\n\\n/* Shadows */\\n\\n/* Animations */\\n\\n/* Dialog */\\n\\n.mdl-checkbox {\\n position: relative;\\n z-index: 1;\\n vertical-align: middle;\\n display: inline-block;\\n box-sizing: border-box;\\n width: 100%;\\n height: 24px;\\n margin: 0;\\n padding: 0;\\n}\\n\\n.mdl-checkbox.is-upgraded {\\n padding-left: 24px;\\n}\\n\\n.mdl-checkbox__input {\\n line-height: 24px;\\n}\\n\\n.mdl-checkbox.is-upgraded .mdl-checkbox__input {\\n position: absolute;\\n width: 0;\\n height: 0;\\n margin: 0;\\n padding: 0;\\n opacity: 0;\\n -ms-appearance: none;\\n -moz-appearance: none;\\n -webkit-appearance: none;\\n appearance: none;\\n border: none;\\n}\\n\\n.mdl-checkbox__box-outline {\\n position: absolute;\\n top: 3px;\\n left: 0;\\n display: inline-block;\\n box-sizing: border-box;\\n width: 16px;\\n height: 16px;\\n margin: 0;\\n cursor: pointer;\\n overflow: hidden;\\n border: 2px solid rgba(0,0,0, 0.54);\\n border-radius: 2px;\\n z-index: 2;\\n}\\n\\n.mdl-checkbox.is-checked .mdl-checkbox__box-outline {\\n border: 2px solid rgb(98, 105, 113);\\n}\\n\\nfieldset[disabled] .mdl-checkbox .mdl-checkbox__box-outline,\\n.mdl-checkbox.is-disabled .mdl-checkbox__box-outline {\\n border: 2px solid rgba(0,0,0, 0.26);\\n cursor: auto;\\n}\\n\\n.mdl-checkbox__focus-helper {\\n position: absolute;\\n top: 3px;\\n left: 0;\\n display: inline-block;\\n box-sizing: border-box;\\n width: 16px;\\n height: 16px;\\n border-radius: 50%;\\n background-color: transparent;\\n}\\n\\n.mdl-checkbox.is-focused .mdl-checkbox__focus-helper {\\n box-shadow: 0 0 0px 8px rgba(0, 0, 0, 0.1);\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n\\n.mdl-checkbox.is-focused.is-checked .mdl-checkbox__focus-helper {\\n box-shadow: 0 0 0px 8px rgba(98, 105, 113, 0.26);\\n background-color: rgba(98, 105, 113, 0.26);\\n}\\n\\n.mdl-checkbox__tick-outline {\\n position: absolute;\\n top: 0;\\n left: 0;\\n height: 100%;\\n width: 100%;\\n mask: url(\" + escape(require(\"material-design-lite/dist/images/tick-mask.svg?embed\")) + \");\\n background: transparent;\\n transition-duration: 0.28s;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-property: background;\\n}\\n\\n.mdl-checkbox.is-checked .mdl-checkbox__tick-outline {\\n background: rgb(98, 105, 113) url(\" + escape(require(\"material-design-lite/dist/images/tick.svg?embed\")) + \");\\n}\\n\\nfieldset[disabled] .mdl-checkbox.is-checked .mdl-checkbox__tick-outline,\\n.mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline {\\n background: rgba(0,0,0, 0.26) url(\" + escape(require(\"material-design-lite/dist/images/tick.svg?embed\")) + \");\\n}\\n\\n.mdl-checkbox__label {\\n position: relative;\\n cursor: pointer;\\n font-size: 13px;\\n line-height: 24px;\\n margin: 0;\\n}\\n\\nfieldset[disabled] .mdl-checkbox .mdl-checkbox__label,\\n.mdl-checkbox.is-disabled .mdl-checkbox__label {\\n color: rgba(0,0,0, 0.26);\\n cursor: auto;\\n}\\n\\n.mdl-checkbox__ripple-container {\\n position: absolute;\\n z-index: 2;\\n top: -6px;\\n left: -10px;\\n box-sizing: border-box;\\n width: 36px;\\n height: 36px;\\n border-radius: 50%;\\n cursor: pointer;\\n overflow: hidden;\\n -webkit-mask-image: -webkit-radial-gradient(circle, white, black);\\n}\\n\\n.mdl-checkbox__ripple-container .mdl-ripple {\\n background: rgb(98, 105, 113);\\n}\\n\\nfieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container,\\n.mdl-checkbox.is-disabled .mdl-checkbox__ripple-container {\\n cursor: auto;\\n}\\n\\nfieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container .mdl-ripple,\\n.mdl-checkbox.is-disabled .mdl-checkbox__ripple-container .mdl-ripple {\\n background: transparent;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Typography */\\n\\n/* Shadows */\\n\\n/* Animations */\\n\\n/* Dialog */\\n\\n.mdl-chip {\\n height: 32px;\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n line-height: 32px;\\n padding: 0 12px;\\n border: 0;\\n border-radius: 16px;\\n background-color: rgb(222, 222, 222);\\n display: inline-block;\\n color: rgba(0,0,0, 0.87);\\n margin: 2px 0;\\n font-size: 0;\\n white-space: nowrap;\\n}\\n\\n.mdl-chip__text {\\n font-size: 13px;\\n vertical-align: middle;\\n display: inline-block;\\n}\\n\\n.mdl-chip__action {\\n height: 24px;\\n width: 24px;\\n background: transparent;\\n opacity: 0.54;\\n display: inline-block;\\n cursor: pointer;\\n text-align: center;\\n vertical-align: middle;\\n padding: 0;\\n margin: 0 0 0 4px;\\n font-size: 13px;\\n text-decoration: none;\\n color: rgba(0,0,0, 0.87);\\n border: none;\\n outline: none;\\n overflow: hidden;\\n}\\n\\n.mdl-chip__contact {\\n height: 32px;\\n width: 32px;\\n border-radius: 16px;\\n display: inline-block;\\n vertical-align: middle;\\n margin-right: 8px;\\n overflow: hidden;\\n text-align: center;\\n font-size: 18px;\\n line-height: 32px;\\n}\\n\\n.mdl-chip:focus {\\n outline: 0;\\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n}\\n\\n.mdl-chip:active {\\n background-color: rgb(214, 214, 214);\\n}\\n\\n.mdl-chip--deletable {\\n padding-right: 4px;\\n}\\n\\n.mdl-chip--contact {\\n padding-left: 0;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Typography */\\n\\n/* Shadows */\\n\\n/* Animations */\\n\\n/* Dialog */\\n\\n.mdl-data-table {\\n position: relative;\\n border: 1px solid rgba(0, 0, 0, 0.12);\\n border-collapse: collapse;\\n white-space: nowrap;\\n font-size: 13px;\\n background-color: rgb(255,255,255);\\n}\\n\\n.mdl-data-table thead {\\n padding-bottom: 3px;\\n}\\n\\n.mdl-data-table thead .mdl-data-table__select {\\n margin-top: 0;\\n}\\n\\n.mdl-data-table tbody tr {\\n position: relative;\\n height: 48px;\\n transition-duration: 0.28s;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-property: background-color;\\n}\\n\\n.mdl-data-table tbody tr.is-selected {\\n background-color: #e0e0e0;\\n}\\n\\n.mdl-data-table tbody tr:hover {\\n background-color: #eeeeee;\\n}\\n\\n.mdl-data-table td,\\n.mdl-data-table th {\\n padding: 0 18px 12px 18px;\\n text-align: right;\\n}\\n\\n.mdl-data-table td:first-of-type,\\n.mdl-data-table th:first-of-type {\\n padding-left: 24px;\\n}\\n\\n.mdl-data-table td:last-of-type,\\n.mdl-data-table th:last-of-type {\\n padding-right: 24px;\\n}\\n\\n.mdl-data-table td {\\n position: relative;\\n vertical-align: middle;\\n height: 48px;\\n border-top: 1px solid rgba(0, 0, 0, 0.12);\\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\\n padding-top: 12px;\\n box-sizing: border-box;\\n}\\n\\n.mdl-data-table td .mdl-data-table__select {\\n vertical-align: middle;\\n}\\n\\n.mdl-data-table th {\\n position: relative;\\n vertical-align: bottom;\\n text-overflow: ellipsis;\\n font-size: 14px;\\n font-weight: bold;\\n line-height: 24px;\\n letter-spacing: 0;\\n height: 48px;\\n font-size: 12px;\\n color: rgba(0, 0, 0, 0.54);\\n padding-bottom: 8px;\\n box-sizing: border-box;\\n}\\n\\n.mdl-data-table th.mdl-data-table__header--sorted-ascending,\\n.mdl-data-table th.mdl-data-table__header--sorted-descending {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mdl-data-table th.mdl-data-table__header--sorted-ascending:before,\\n.mdl-data-table th.mdl-data-table__header--sorted-descending:before {\\n font-family: \\\"Material Icons\\\";\\n font-weight: normal;\\n font-style: normal;\\n font-size: 24px;\\n line-height: 1;\\n letter-spacing: normal;\\n text-transform: none;\\n display: inline-block;\\n word-wrap: normal;\\n font-feature-settings: \\\"liga\\\";\\n -webkit-font-feature-settings: \\\"liga\\\";\\n -webkit-font-smoothing: antialiased;\\n font-size: 16px;\\n content: \\\"\\\\E5D8\\\";\\n margin-right: 5px;\\n vertical-align: sub;\\n}\\n\\n.mdl-data-table th.mdl-data-table__header--sorted-ascending:hover,\\n.mdl-data-table th.mdl-data-table__header--sorted-descending:hover {\\n cursor: pointer;\\n}\\n\\n.mdl-data-table th.mdl-data-table__header--sorted-ascending:hover:before,\\n.mdl-data-table th.mdl-data-table__header--sorted-descending:hover:before {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n\\n.mdl-data-table th.mdl-data-table__header--sorted-descending:before {\\n content: \\\"\\\\E5DB\\\";\\n}\\n\\n.mdl-data-table__select {\\n width: 16px;\\n}\\n\\n.mdl-data-table__cell--non-numeric.mdl-data-table__cell--non-numeric {\\n text-align: left;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Typography */\\n\\n/* Shadows */\\n\\n/* Animations */\\n\\n/* Dialog */\\n\\n.mdl-dialog {\\n border: none;\\n box-shadow: 0 9px 46px 8px rgba(0, 0, 0, 0.14), 0 11px 15px -7px rgba(0, 0, 0, 0.12), 0 24px 38px 3px rgba(0, 0, 0, 0.2);\\n width: 280px;\\n}\\n\\n.mdl-dialog__title {\\n padding: 24px 24px 0;\\n margin: 0;\\n font-size: 2.5rem;\\n}\\n\\n.mdl-dialog__actions {\\n padding: 8px 8px 8px 24px;\\n display: flex;\\n flex-direction: row-reverse;\\n flex-wrap: wrap;\\n}\\n\\n.mdl-dialog__actions > * {\\n margin-right: 8px;\\n height: 36px;\\n}\\n\\n.mdl-dialog__actions > *:first-child {\\n margin-right: 0;\\n}\\n\\n.mdl-dialog__actions--full-width {\\n padding: 0 0 8px 0;\\n}\\n\\n.mdl-dialog__actions--full-width > * {\\n height: 48px;\\n flex: 0 0 100%;\\n padding-right: 16px;\\n margin-right: 0;\\n text-align: right;\\n}\\n\\n.mdl-dialog__content {\\n padding: 20px 24px 24px 24px;\\n color: rgba(0,0,0, 0.54);\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Typography */\\n\\n/* Shadows */\\n\\n/* Animations */\\n\\n/* Dialog */\\n\\n.mdl-mega-footer {\\n padding: 16px 40px;\\n color: rgb(158,158,158);\\n background-color: rgb(66,66,66);\\n}\\n\\n.mdl-mega-footer--top-section:after,\\n.mdl-mega-footer--middle-section:after,\\n.mdl-mega-footer--bottom-section:after,\\n.mdl-mega-footer__top-section:after,\\n.mdl-mega-footer__middle-section:after,\\n.mdl-mega-footer__bottom-section:after {\\n content: \\\"\\\";\\n display: block;\\n clear: both;\\n}\\n\\n.mdl-mega-footer--left-section,\\n.mdl-mega-footer__left-section {\\n margin-bottom: 16px;\\n}\\n\\n.mdl-mega-footer--right-section,\\n.mdl-mega-footer__right-section {\\n margin-bottom: 16px;\\n}\\n\\n.mdl-mega-footer--right-section a,\\n.mdl-mega-footer__right-section a {\\n display: block;\\n margin-bottom: 16px;\\n color: inherit;\\n text-decoration: none;\\n}\\n\\n@media screen and (min-width: 760px) {\\n .mdl-mega-footer--left-section,\\n .mdl-mega-footer__left-section {\\n float: left;\\n }\\n\\n .mdl-mega-footer--right-section,\\n .mdl-mega-footer__right-section {\\n float: right;\\n }\\n\\n .mdl-mega-footer--right-section a,\\n .mdl-mega-footer__right-section a {\\n display: inline-block;\\n margin-left: 16px;\\n line-height: 36px;\\n vertical-align: middle;\\n }\\n}\\n\\n.mdl-mega-footer--social-btn,\\n.mdl-mega-footer__social-btn {\\n width: 36px;\\n height: 36px;\\n padding: 0;\\n margin: 0;\\n background-color: rgb(158,158,158);\\n border: none;\\n}\\n\\n.mdl-mega-footer--drop-down-section,\\n.mdl-mega-footer__drop-down-section {\\n display: block;\\n position: relative;\\n}\\n\\n@media screen and (min-width: 760px) {\\n .mdl-mega-footer--drop-down-section,\\n .mdl-mega-footer__drop-down-section {\\n width: 33%;\\n }\\n\\n .mdl-mega-footer--drop-down-section:nth-child(1),\\n .mdl-mega-footer--drop-down-section:nth-child(2),\\n .mdl-mega-footer__drop-down-section:nth-child(1),\\n .mdl-mega-footer__drop-down-section:nth-child(2) {\\n float: left;\\n }\\n\\n .mdl-mega-footer--drop-down-section:nth-child(3),\\n .mdl-mega-footer__drop-down-section:nth-child(3) {\\n float: right;\\n }\\n\\n .mdl-mega-footer--drop-down-section:nth-child(3):after,\\n .mdl-mega-footer__drop-down-section:nth-child(3):after {\\n clear: right;\\n }\\n\\n .mdl-mega-footer--drop-down-section:nth-child(4),\\n .mdl-mega-footer__drop-down-section:nth-child(4) {\\n clear: right;\\n float: right;\\n }\\n\\n .mdl-mega-footer--middle-section:after,\\n .mdl-mega-footer__middle-section:after {\\n content: \\\"\\\";\\n display: block;\\n clear: both;\\n }\\n\\n .mdl-mega-footer--bottom-section,\\n .mdl-mega-footer__bottom-section {\\n padding-top: 0;\\n }\\n}\\n\\n@media screen and (min-width: 1024px) {\\n .mdl-mega-footer--drop-down-section,\\n .mdl-mega-footer--drop-down-section:nth-child(3),\\n .mdl-mega-footer--drop-down-section:nth-child(4),\\n .mdl-mega-footer__drop-down-section,\\n .mdl-mega-footer__drop-down-section:nth-child(3),\\n .mdl-mega-footer__drop-down-section:nth-child(4) {\\n width: 24%;\\n float: left;\\n }\\n}\\n\\n.mdl-mega-footer--heading-checkbox,\\n.mdl-mega-footer__heading-checkbox {\\n position: absolute;\\n width: 100%;\\n height: 55.8px;\\n padding: 32px;\\n margin: 0;\\n margin-top: -16px;\\n cursor: pointer;\\n z-index: 1;\\n opacity: 0;\\n}\\n\\n.mdl-mega-footer--heading-checkbox + .mdl-mega-footer--heading:after,\\n.mdl-mega-footer--heading-checkbox + .mdl-mega-footer__heading:after,\\n.mdl-mega-footer__heading-checkbox + .mdl-mega-footer--heading:after,\\n.mdl-mega-footer__heading-checkbox + .mdl-mega-footer__heading:after {\\n font-family: \\\"Material Icons\\\";\\n content: \\\"\\\\E5CE\\\";\\n}\\n\\n.mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer--link-list,\\n.mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer__link-list,\\n.mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer--heading + .mdl-mega-footer--link-list,\\n.mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer__heading + .mdl-mega-footer__link-list,\\n.mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer--link-list,\\n.mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer__link-list,\\n.mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer--heading + .mdl-mega-footer--link-list,\\n.mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer__heading + .mdl-mega-footer__link-list {\\n display: none;\\n}\\n\\n.mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer--heading:after,\\n.mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer__heading:after,\\n.mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer--heading:after,\\n.mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer__heading:after {\\n font-family: \\\"Material Icons\\\";\\n content: \\\"\\\\E5CF\\\";\\n}\\n\\n.mdl-mega-footer--heading,\\n.mdl-mega-footer__heading {\\n position: relative;\\n width: 100%;\\n padding-right: 39.8px;\\n margin-bottom: 16px;\\n box-sizing: border-box;\\n font-size: 14px;\\n line-height: 23.8px;\\n font-weight: 500;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n overflow: hidden;\\n color: rgb(224,224,224);\\n}\\n\\n.mdl-mega-footer--heading:after,\\n.mdl-mega-footer__heading:after {\\n content: \\\"\\\";\\n position: absolute;\\n top: 0;\\n right: 0;\\n display: block;\\n width: 23.8px;\\n height: 23.8px;\\n background-size: cover;\\n}\\n\\n.mdl-mega-footer--link-list,\\n.mdl-mega-footer__link-list {\\n list-style: none;\\n margin: 0;\\n padding: 0;\\n margin-bottom: 32px;\\n}\\n\\n.mdl-mega-footer--link-list:after,\\n.mdl-mega-footer__link-list:after {\\n clear: both;\\n display: block;\\n content: \\\"\\\";\\n}\\n\\n.mdl-mega-footer--link-list li,\\n.mdl-mega-footer__link-list li {\\n font-size: 14px;\\n font-weight: 400;\\n line-height: 24px;\\n letter-spacing: 0;\\n line-height: 20px;\\n}\\n\\n.mdl-mega-footer--link-list a,\\n.mdl-mega-footer__link-list a {\\n color: inherit;\\n text-decoration: none;\\n white-space: nowrap;\\n}\\n\\n@media screen and (min-width: 760px) {\\n .mdl-mega-footer--heading-checkbox,\\n .mdl-mega-footer__heading-checkbox {\\n display: none;\\n }\\n\\n .mdl-mega-footer--heading-checkbox + .mdl-mega-footer--heading:after,\\n .mdl-mega-footer--heading-checkbox + .mdl-mega-footer__heading:after,\\n .mdl-mega-footer__heading-checkbox + .mdl-mega-footer--heading:after,\\n .mdl-mega-footer__heading-checkbox + .mdl-mega-footer__heading:after {\\n content: \\\"\\\";\\n }\\n\\n .mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer--link-list,\\n .mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer__link-list,\\n .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer__heading + .mdl-mega-footer__link-list,\\n .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer--heading + .mdl-mega-footer--link-list,\\n .mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer--link-list,\\n .mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer__link-list,\\n .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer__heading + .mdl-mega-footer__link-list,\\n .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer--heading + .mdl-mega-footer--link-list {\\n display: block;\\n }\\n\\n .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer--heading:after,\\n .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer__heading:after,\\n .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer--heading:after,\\n .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer__heading:after {\\n content: \\\"\\\";\\n }\\n}\\n\\n.mdl-mega-footer--bottom-section,\\n.mdl-mega-footer__bottom-section {\\n padding-top: 16px;\\n margin-bottom: 16px;\\n}\\n\\n.mdl-logo {\\n margin-bottom: 16px;\\n color: white;\\n}\\n\\n.mdl-mega-footer--bottom-section .mdl-mega-footer--link-list li,\\n.mdl-mega-footer__bottom-section .mdl-mega-footer__link-list li {\\n float: left;\\n margin-bottom: 0;\\n margin-right: 16px;\\n}\\n\\n@media screen and (min-width: 760px) {\\n .mdl-logo {\\n float: left;\\n margin-bottom: 0;\\n margin-right: 16px;\\n }\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n.mdl-mini-footer {\\n display: flex;\\n flex-flow: row wrap;\\n justify-content: space-between;\\n padding: 32px 16px;\\n color: rgb(158,158,158);\\n background-color: rgb(66,66,66);\\n}\\n\\n.mdl-mini-footer:after {\\n content: \\\"\\\";\\n display: block;\\n}\\n\\n.mdl-mini-footer .mdl-logo {\\n line-height: 36px;\\n}\\n\\n.mdl-mini-footer--link-list,\\n.mdl-mini-footer__link-list {\\n display: flex;\\n flex-flow: row nowrap;\\n list-style: none;\\n margin: 0;\\n padding: 0;\\n}\\n\\n.mdl-mini-footer--link-list li,\\n.mdl-mini-footer__link-list li {\\n margin-bottom: 0;\\n margin-right: 16px;\\n}\\n\\n@media screen and (min-width: 760px) {\\n .mdl-mini-footer--link-list li,\\n .mdl-mini-footer__link-list li {\\n line-height: 36px;\\n }\\n}\\n\\n.mdl-mini-footer--link-list a,\\n.mdl-mini-footer__link-list a {\\n color: inherit;\\n text-decoration: none;\\n white-space: nowrap;\\n}\\n\\n.mdl-mini-footer--left-section,\\n.mdl-mini-footer__left-section {\\n display: inline-block;\\n order: 0;\\n}\\n\\n.mdl-mini-footer--right-section,\\n.mdl-mini-footer__right-section {\\n display: inline-block;\\n order: 1;\\n}\\n\\n.mdl-mini-footer--social-btn,\\n.mdl-mini-footer__social-btn {\\n width: 36px;\\n height: 36px;\\n padding: 0;\\n margin: 0;\\n background-color: rgb(158,158,158);\\n border: none;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n.mdl-icon-toggle {\\n position: relative;\\n z-index: 1;\\n vertical-align: middle;\\n display: inline-block;\\n height: 32px;\\n margin: 0;\\n padding: 0;\\n}\\n\\n.mdl-icon-toggle__input {\\n line-height: 32px;\\n}\\n\\n.mdl-icon-toggle.is-upgraded .mdl-icon-toggle__input {\\n position: absolute;\\n width: 0;\\n height: 0;\\n margin: 0;\\n padding: 0;\\n opacity: 0;\\n -ms-appearance: none;\\n -moz-appearance: none;\\n -webkit-appearance: none;\\n appearance: none;\\n border: none;\\n}\\n\\n.mdl-icon-toggle__label {\\n display: inline-block;\\n position: relative;\\n cursor: pointer;\\n height: 32px;\\n width: 32px;\\n min-width: 32px;\\n color: rgb(97,97,97);\\n border-radius: 50%;\\n padding: 0;\\n margin-left: 0;\\n margin-right: 0;\\n text-align: center;\\n background-color: transparent;\\n will-change: background-color;\\n transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1);\\n}\\n\\n.mdl-icon-toggle__label.material-icons {\\n line-height: 32px;\\n font-size: 24px;\\n}\\n\\n.mdl-icon-toggle.is-checked .mdl-icon-toggle__label {\\n color: rgb(98, 105, 113);\\n}\\n\\n.mdl-icon-toggle.is-disabled .mdl-icon-toggle__label {\\n color: rgba(0,0,0, 0.26);\\n cursor: auto;\\n transition: none;\\n}\\n\\n.mdl-icon-toggle.is-focused .mdl-icon-toggle__label {\\n background-color: rgba(0,0,0, 0.12);\\n}\\n\\n.mdl-icon-toggle.is-focused.is-checked .mdl-icon-toggle__label {\\n background-color: rgba(98, 105, 113, 0.26);\\n}\\n\\n.mdl-icon-toggle__ripple-container {\\n position: absolute;\\n z-index: 2;\\n top: -2px;\\n left: -2px;\\n box-sizing: border-box;\\n width: 36px;\\n height: 36px;\\n border-radius: 50%;\\n cursor: pointer;\\n overflow: hidden;\\n -webkit-mask-image: -webkit-radial-gradient(circle, white, black);\\n}\\n\\n.mdl-icon-toggle__ripple-container .mdl-ripple {\\n background: rgb(97,97,97);\\n}\\n\\n.mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container {\\n cursor: auto;\\n}\\n\\n.mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container .mdl-ripple {\\n background: transparent;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Typography */\\n\\n/* Shadows */\\n\\n/* Animations */\\n\\n/* Dialog */\\n\\n.mdl-list {\\n display: block;\\n padding: 8px 0;\\n list-style: none;\\n}\\n\\n.mdl-list__item {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 16px;\\n font-weight: 400;\\n line-height: 24px;\\n letter-spacing: 0.04em;\\n line-height: 1;\\n display: flex;\\n min-height: 48px;\\n box-sizing: border-box;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n align-items: center;\\n padding: 16px;\\n cursor: default;\\n color: rgba(0,0,0, 0.87);\\n overflow: hidden;\\n}\\n\\n.mdl-list__item .mdl-list__item-primary-content {\\n order: 0;\\n flex-grow: 2;\\n text-decoration: none;\\n box-sizing: border-box;\\n display: flex;\\n align-items: center;\\n}\\n\\n.mdl-list__item .mdl-list__item-primary-content .mdl-list__item-icon {\\n margin-right: 32px;\\n}\\n\\n.mdl-list__item .mdl-list__item-primary-content .mdl-list__item-avatar {\\n margin-right: 16px;\\n}\\n\\n.mdl-list__item .mdl-list__item-secondary-content {\\n display: flex;\\n flex-flow: column;\\n align-items: flex-end;\\n margin-left: 16px;\\n}\\n\\n.mdl-list__item .mdl-list__item-secondary-content .mdl-list__item-secondary-action label {\\n display: inline;\\n}\\n\\n.mdl-list__item .mdl-list__item-secondary-content .mdl-list__item-secondary-info {\\n font-size: 12px;\\n font-weight: 400;\\n line-height: 1;\\n letter-spacing: 0;\\n color: rgba(0,0,0, 0.54);\\n}\\n\\n.mdl-list__item .mdl-list__item-secondary-content .mdl-list__item-sub-header {\\n padding: 0 0 0 16px;\\n}\\n\\n.mdl-list__item-icon,\\n.mdl-list__item-icon.material-icons {\\n height: 24px;\\n width: 24px;\\n font-size: 24px;\\n box-sizing: border-box;\\n color: rgb(117,117,117);\\n}\\n\\n.mdl-list__item-avatar,\\n.mdl-list__item-avatar.material-icons {\\n height: 40px;\\n width: 40px;\\n box-sizing: border-box;\\n border-radius: 50%;\\n background-color: rgb(117,117,117);\\n font-size: 40px;\\n color: white;\\n}\\n\\n.mdl-list__item--two-line {\\n height: 72px;\\n}\\n\\n.mdl-list__item--two-line .mdl-list__item-primary-content {\\n height: 36px;\\n line-height: 20px;\\n display: block;\\n}\\n\\n.mdl-list__item--two-line .mdl-list__item-primary-content .mdl-list__item-avatar {\\n float: left;\\n}\\n\\n.mdl-list__item--two-line .mdl-list__item-primary-content .mdl-list__item-icon {\\n float: left;\\n margin-top: 6px;\\n}\\n\\n.mdl-list__item--two-line .mdl-list__item-primary-content .mdl-list__item-secondary-content {\\n height: 36px;\\n}\\n\\n.mdl-list__item--two-line .mdl-list__item-primary-content .mdl-list__item-sub-title {\\n font-size: 14px;\\n font-weight: 400;\\n line-height: 24px;\\n letter-spacing: 0;\\n line-height: 18px;\\n color: rgba(0,0,0, 0.54);\\n display: block;\\n padding: 0;\\n}\\n\\n.mdl-list__item--three-line {\\n height: 88px;\\n}\\n\\n.mdl-list__item--three-line .mdl-list__item-primary-content {\\n height: 52px;\\n line-height: 20px;\\n display: block;\\n}\\n\\n.mdl-list__item--three-line .mdl-list__item-primary-content .mdl-list__item-avatar,\\n.mdl-list__item--three-line .mdl-list__item-primary-content .mdl-list__item-icon {\\n float: left;\\n}\\n\\n.mdl-list__item--three-line .mdl-list__item-secondary-content {\\n height: 52px;\\n}\\n\\n.mdl-list__item--three-line .mdl-list__item-text-body {\\n font-size: 14px;\\n font-weight: 400;\\n line-height: 24px;\\n letter-spacing: 0;\\n line-height: 18px;\\n height: 52px;\\n color: rgba(0,0,0, 0.54);\\n display: block;\\n padding: 0;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Typography */\\n\\n/* Shadows */\\n\\n/* Animations */\\n\\n/* Dialog */\\n\\n.mdl-menu__container {\\n display: block;\\n margin: 0;\\n padding: 0;\\n border: none;\\n position: absolute;\\n overflow: visible;\\n height: 0;\\n width: 0;\\n visibility: hidden;\\n z-index: -1;\\n}\\n\\n.mdl-menu__container.is-visible,\\n.mdl-menu__container.is-animating {\\n z-index: 999;\\n visibility: visible;\\n}\\n\\n.mdl-menu__outline {\\n display: block;\\n background: rgb(255,255,255);\\n margin: 0;\\n padding: 0;\\n border: none;\\n border-radius: 2px;\\n position: absolute;\\n top: 0;\\n left: 0;\\n overflow: hidden;\\n opacity: 0;\\n transform: scale(0);\\n transform-origin: 0 0;\\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n will-change: transform;\\n transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);\\n z-index: -1;\\n}\\n\\n.mdl-menu__container.is-visible .mdl-menu__outline {\\n opacity: 1;\\n transform: scale(1);\\n z-index: 999;\\n}\\n\\n.mdl-menu__outline.mdl-menu--bottom-right {\\n transform-origin: 100% 0;\\n}\\n\\n.mdl-menu__outline.mdl-menu--top-left {\\n transform-origin: 0 100%;\\n}\\n\\n.mdl-menu__outline.mdl-menu--top-right {\\n transform-origin: 100% 100%;\\n}\\n\\n.mdl-menu {\\n position: absolute;\\n list-style: none;\\n top: 0;\\n left: 0;\\n height: auto;\\n width: auto;\\n min-width: 124px;\\n padding: 8px 0;\\n margin: 0;\\n opacity: 0;\\n clip: rect(0 0 0 0);\\n z-index: -1;\\n}\\n\\n.mdl-menu__container.is-visible .mdl-menu {\\n opacity: 1;\\n z-index: 999;\\n}\\n\\n.mdl-menu.is-animating {\\n transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1), clip 0.3s cubic-bezier(0.4, 0, 0.2, 1);\\n}\\n\\n.mdl-menu.mdl-menu--bottom-right {\\n left: auto;\\n right: 0;\\n}\\n\\n.mdl-menu.mdl-menu--top-left {\\n top: auto;\\n bottom: 0;\\n}\\n\\n.mdl-menu.mdl-menu--top-right {\\n top: auto;\\n left: auto;\\n bottom: 0;\\n right: 0;\\n}\\n\\n.mdl-menu.mdl-menu--unaligned {\\n top: auto;\\n left: auto;\\n}\\n\\n.mdl-menu__item {\\n display: block;\\n border: none;\\n color: rgba(0,0,0, 0.87);\\n background-color: transparent;\\n text-align: left;\\n margin: 0;\\n padding: 0 16px;\\n outline-color: rgb(189,189,189);\\n position: relative;\\n overflow: hidden;\\n font-size: 14px;\\n font-weight: 400;\\n line-height: 24px;\\n letter-spacing: 0;\\n text-decoration: none;\\n cursor: pointer;\\n height: 48px;\\n line-height: 48px;\\n white-space: nowrap;\\n opacity: 0;\\n transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);\\n user-select: none;\\n}\\n\\n.mdl-menu__container.is-visible .mdl-menu__item {\\n opacity: 1;\\n}\\n\\n.mdl-menu__item::-moz-focus-inner {\\n border: 0;\\n}\\n\\n.mdl-menu__item--full-bleed-divider {\\n border-bottom: 1px solid rgba(0,0,0, 0.12);\\n}\\n\\n.mdl-menu__item[disabled],\\n.mdl-menu__item[data-mdl-disabled] {\\n color: rgb(189,189,189);\\n background-color: transparent;\\n cursor: auto;\\n}\\n\\n.mdl-menu__item[disabled]:hover,\\n.mdl-menu__item[data-mdl-disabled]:hover {\\n background-color: transparent;\\n}\\n\\n.mdl-menu__item[disabled]:focus,\\n.mdl-menu__item[data-mdl-disabled]:focus {\\n background-color: transparent;\\n}\\n\\n.mdl-menu__item[disabled] .mdl-ripple,\\n.mdl-menu__item[data-mdl-disabled] .mdl-ripple {\\n background: transparent;\\n}\\n\\n.mdl-menu__item:hover {\\n background-color: rgb(238,238,238);\\n}\\n\\n.mdl-menu__item:focus {\\n outline: none;\\n background-color: rgb(238,238,238);\\n}\\n\\n.mdl-menu__item:active {\\n background-color: rgb(224,224,224);\\n}\\n\\n.mdl-menu__item--ripple-container {\\n display: block;\\n height: 100%;\\n left: 0px;\\n position: absolute;\\n top: 0px;\\n width: 100%;\\n z-index: 0;\\n overflow: hidden;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n.mdl-progress {\\n display: block;\\n position: relative;\\n height: 4px;\\n width: 500px;\\n max-width: 100%;\\n}\\n\\n.mdl-progress > .bar {\\n display: block;\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n width: 0%;\\n transition: width 0.2s cubic-bezier(0.4, 0, 0.2, 1);\\n}\\n\\n.mdl-progress > .progressbar {\\n background-color: rgb(98, 105, 113);\\n z-index: 1;\\n left: 0;\\n}\\n\\n.mdl-progress > .bufferbar {\\n background-image: linear-gradient(to right, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7)), linear-gradient(to right, rgb(98, 105, 113), rgb(98, 105, 113));\\n z-index: 0;\\n left: 0;\\n}\\n\\n.mdl-progress > .auxbar {\\n right: 0;\\n}\\n\\n@supports (-webkit-appearance: none) {\\n .mdl-progress:not(.mdl-progress--indeterminate):not(.mdl-progress--indeterminate) > .auxbar,\\n .mdl-progress:not(.mdl-progress__indeterminate):not(.mdl-progress__indeterminate) > .auxbar {\\n background-image: linear-gradient(to right, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7)), linear-gradient(to right, rgb(98, 105, 113), rgb(98, 105, 113));\\n mask: url(\" + escape(require(\"material-design-lite/dist/images/buffer.svg?embed\")) + \");\\n }\\n}\\n\\n.mdl-progress:not(.mdl-progress--indeterminate) > .auxbar,\\n.mdl-progress:not(.mdl-progress__indeterminate) > .auxbar {\\n background-image: linear-gradient(to right, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.9)), linear-gradient(to right, rgb(98, 105, 113), rgb(98, 105, 113));\\n}\\n\\n.mdl-progress.mdl-progress--indeterminate > .bar1,\\n.mdl-progress.mdl-progress__indeterminate > .bar1 {\\n background-color: rgb(98, 105, 113);\\n animation-name: indeterminate1;\\n animation-duration: 2s;\\n animation-iteration-count: infinite;\\n animation-timing-function: linear;\\n}\\n\\n.mdl-progress.mdl-progress--indeterminate > .bar3,\\n.mdl-progress.mdl-progress__indeterminate > .bar3 {\\n background-image: none;\\n background-color: rgb(98, 105, 113);\\n animation-name: indeterminate2;\\n animation-duration: 2s;\\n animation-iteration-count: infinite;\\n animation-timing-function: linear;\\n}\\n\\n@keyframes indeterminate1 {\\n 0% {\\n left: 0%;\\n width: 0%;\\n }\\n\\n 50% {\\n left: 25%;\\n width: 75%;\\n }\\n\\n 75% {\\n left: 100%;\\n width: 0%;\\n }\\n}\\n\\n@keyframes indeterminate2 {\\n 0% {\\n left: 0%;\\n width: 0%;\\n }\\n\\n 50% {\\n left: 0%;\\n width: 0%;\\n }\\n\\n 75% {\\n left: 0%;\\n width: 25%;\\n }\\n\\n 100% {\\n left: 100%;\\n width: 0%;\\n }\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Typography */\\n\\n/* Shadows */\\n\\n/* Animations */\\n\\n/* Dialog */\\n\\n.mdl-navigation {\\n display: flex;\\n flex-wrap: nowrap;\\n box-sizing: border-box;\\n}\\n\\n.mdl-navigation__link {\\n color: rgb(66,66,66);\\n text-decoration: none;\\n margin: 0;\\n font-size: 14px;\\n font-weight: 400;\\n line-height: 24px;\\n letter-spacing: 0;\\n opacity: 0.87;\\n}\\n\\n.mdl-navigation__link .material-icons {\\n vertical-align: middle;\\n}\\n\\n.mdl-layout {\\n width: 100%;\\n height: 100%;\\n display: flex;\\n flex-direction: column;\\n overflow-y: auto;\\n overflow-x: hidden;\\n position: relative;\\n -webkit-overflow-scrolling: touch;\\n}\\n\\n.mdl-layout.is-small-screen .mdl-layout--large-screen-only {\\n display: none;\\n}\\n\\n.mdl-layout:not(.is-small-screen) .mdl-layout--small-screen-only {\\n display: none;\\n}\\n\\n.mdl-layout__container {\\n position: absolute;\\n width: 100%;\\n height: 100%;\\n}\\n\\n.mdl-layout__title,\\n.mdl-layout-title {\\n display: block;\\n position: relative;\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 20px;\\n font-weight: 500;\\n line-height: 1;\\n letter-spacing: 0.02em;\\n font-weight: 400;\\n box-sizing: border-box;\\n}\\n\\n.mdl-layout-spacer {\\n flex-grow: 1;\\n}\\n\\n.mdl-layout__drawer {\\n display: flex;\\n flex-direction: column;\\n flex-wrap: nowrap;\\n width: 250px;\\n height: 100%;\\n max-height: 100%;\\n position: absolute;\\n top: 0;\\n left: 0;\\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n box-sizing: border-box;\\n border-right: 1px solid rgb(224,224,224);\\n background: rgb(250,250,250);\\n transform: translateX(-260px);\\n transform-style: preserve-3d;\\n will-change: transform;\\n transition-duration: 0.2s;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-property: transform;\\n color: rgb(66,66,66);\\n overflow: visible;\\n overflow-y: auto;\\n z-index: 5;\\n}\\n\\n.mdl-layout__drawer.is-visible {\\n transform: translateX(0);\\n}\\n\\n.mdl-layout__drawer.is-visible ~ .mdl-layout__content.mdl-layout__content {\\n overflow: hidden;\\n}\\n\\n.mdl-layout__drawer > * {\\n flex-shrink: 0;\\n}\\n\\n.mdl-layout__drawer > .mdl-layout__title,\\n.mdl-layout__drawer > .mdl-layout-title {\\n line-height: 50px;\\n padding-left: 20px;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__drawer > .mdl-layout__title,\\n .mdl-layout__drawer > .mdl-layout-title {\\n line-height: 50px;\\n padding-left: 16px;\\n }\\n}\\n\\n.mdl-layout__drawer .mdl-navigation {\\n flex-direction: column;\\n align-items: stretch;\\n padding-top: 16px;\\n}\\n\\n.mdl-layout__drawer .mdl-navigation .mdl-navigation__link {\\n display: block;\\n flex-shrink: 0;\\n padding: 16px 20px;\\n margin: 0;\\n color: #757575;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__drawer .mdl-navigation .mdl-navigation__link {\\n padding: 16px 16px;\\n }\\n}\\n\\n.mdl-layout__drawer .mdl-navigation .mdl-navigation__link:hover {\\n background-color: rgb(224,224,224);\\n}\\n\\n.mdl-layout__drawer .mdl-navigation .mdl-navigation__link--current,\\n.mdl-layout__drawer .mdl-navigation .router-link-active {\\n background-color: rgb(224,224,224);\\n color: rgb(0,0,0);\\n}\\n\\n@media screen and (min-width: 1201px) {\\n .mdl-layout--fixed-drawer > .mdl-layout__drawer {\\n transform: translateX(0);\\n }\\n}\\n\\n.mdl-layout__drawer-button {\\n display: block;\\n position: absolute;\\n height: 48px;\\n width: 48px;\\n border: 0;\\n flex-shrink: 0;\\n overflow: hidden;\\n text-align: center;\\n cursor: pointer;\\n font-size: 26px;\\n line-height: 50px;\\n font-family: Helvetica, Arial, sans-serif;\\n margin: 2px 12px;\\n top: 0;\\n left: 0;\\n color: rgb(255, 255, 255);\\n z-index: 4;\\n}\\n\\n.mdl-layout__header .mdl-layout__drawer-button {\\n position: absolute;\\n color: rgb(255, 255, 255);\\n background-color: inherit;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__header .mdl-layout__drawer-button {\\n margin: 4px;\\n }\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__drawer-button {\\n margin: 4px;\\n color: rgba(0, 0, 0, 0.5);\\n }\\n}\\n\\n@media screen and (min-width: 1201px) {\\n .mdl-layout__drawer-button {\\n line-height: 54px;\\n }\\n\\n .mdl-layout--no-desktop-drawer-button .mdl-layout__drawer-button,\\n .mdl-layout--fixed-drawer > .mdl-layout__drawer-button,\\n .mdl-layout--no-drawer-button .mdl-layout__drawer-button {\\n display: none;\\n }\\n}\\n\\n.mdl-layout__header {\\n display: flex;\\n flex-direction: column;\\n flex-wrap: nowrap;\\n justify-content: flex-start;\\n box-sizing: border-box;\\n flex-shrink: 0;\\n width: 100%;\\n margin: 0;\\n padding: 0;\\n border: none;\\n min-height: 50px;\\n max-height: 1000px;\\n z-index: 3;\\n background-color: rgb(98, 105, 113);\\n color: rgb(255, 255, 255);\\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n transition-duration: 0.2s;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-property: max-height, box-shadow;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__header {\\n min-height: 50px;\\n }\\n}\\n\\n.mdl-layout--fixed-drawer.is-upgraded:not(.is-small-screen) > .mdl-layout__header {\\n margin-left: 250px;\\n width: calc(100% - 250px);\\n}\\n\\n@media screen and (min-width: 1201px) {\\n .mdl-layout--fixed-drawer > .mdl-layout__header .mdl-layout__header-row {\\n padding-left: 40px;\\n }\\n}\\n\\n.mdl-layout__header > .mdl-layout-icon {\\n position: absolute;\\n left: 20px;\\n top: 9px;\\n height: 32px;\\n width: 32px;\\n overflow: hidden;\\n z-index: 3;\\n display: block;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__header > .mdl-layout-icon {\\n left: 16px;\\n top: 9px;\\n }\\n}\\n\\n.mdl-layout.has-drawer .mdl-layout__header > .mdl-layout-icon {\\n display: none;\\n}\\n\\n.mdl-layout__header.is-compact {\\n max-height: 50px;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__header.is-compact {\\n max-height: 50px;\\n }\\n}\\n\\n.mdl-layout__header.is-compact.has-tabs {\\n height: 98px;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__header.is-compact.has-tabs {\\n min-height: 98px;\\n }\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__header {\\n display: none;\\n }\\n\\n .mdl-layout--fixed-header > .mdl-layout__header {\\n display: flex;\\n }\\n}\\n\\n.mdl-layout__header--transparent.mdl-layout__header--transparent {\\n background-color: transparent;\\n box-shadow: none;\\n}\\n\\n.mdl-layout__header--seamed {\\n box-shadow: none;\\n}\\n\\n.mdl-layout__header--scroll {\\n box-shadow: none;\\n}\\n\\n.mdl-layout__header--waterfall {\\n box-shadow: none;\\n overflow: hidden;\\n}\\n\\n.mdl-layout__header--waterfall.is-casting-shadow {\\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n}\\n\\n.mdl-layout__header--waterfall.mdl-layout__header--waterfall-hide-top {\\n justify-content: flex-end;\\n}\\n\\n.mdl-layout__header-row {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n flex-shrink: 0;\\n box-sizing: border-box;\\n align-self: stretch;\\n align-items: center;\\n height: 50px;\\n margin: 0;\\n padding: 0 20px 0 80px;\\n}\\n\\n.mdl-layout--no-drawer-button .mdl-layout__header-row {\\n padding-left: 20px;\\n}\\n\\n@media screen and (min-width: 1201px) {\\n .mdl-layout--no-desktop-drawer-button .mdl-layout__header-row {\\n padding-left: 20px;\\n }\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__header-row {\\n height: 50px;\\n padding: 0 16px 0 72px;\\n }\\n\\n .mdl-layout--no-drawer-button .mdl-layout__header-row {\\n padding-left: 16px;\\n }\\n}\\n\\n.mdl-layout__header-row > * {\\n flex-shrink: 0;\\n}\\n\\n.mdl-layout__header--scroll .mdl-layout__header-row {\\n width: 100%;\\n}\\n\\n.mdl-layout__header-row .mdl-navigation {\\n margin: 0;\\n padding: 0;\\n height: 50px;\\n flex-direction: row;\\n align-items: center;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__header-row .mdl-navigation {\\n height: 50px;\\n }\\n}\\n\\n.mdl-layout__header-row .mdl-navigation__link {\\n display: block;\\n color: rgb(255, 255, 255);\\n line-height: 50px;\\n padding: 0 24px;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__header-row .mdl-navigation__link {\\n line-height: 50px;\\n padding: 0 16px;\\n }\\n}\\n\\n.mdl-layout__obfuscator {\\n background-color: transparent;\\n position: absolute;\\n top: 0;\\n left: 0;\\n height: 100%;\\n width: 100%;\\n z-index: 4;\\n visibility: hidden;\\n transition-property: background-color;\\n transition-duration: 0.2s;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n}\\n\\n.mdl-layout__obfuscator.is-visible {\\n background-color: rgba(0, 0, 0, 0.5);\\n visibility: visible;\\n}\\n\\n@supports (pointer-events: auto) {\\n .mdl-layout__obfuscator {\\n background-color: rgba(0, 0, 0, 0.5);\\n opacity: 0;\\n transition-property: opacity;\\n visibility: visible;\\n pointer-events: none;\\n }\\n\\n .mdl-layout__obfuscator.is-visible {\\n pointer-events: auto;\\n opacity: 1;\\n }\\n}\\n\\n.mdl-layout__content {\\n -ms-flex: 0 1 auto;\\n position: relative;\\n display: inline-block;\\n overflow-y: auto;\\n overflow-x: hidden;\\n flex-grow: 1;\\n z-index: 1;\\n -webkit-overflow-scrolling: touch;\\n}\\n\\n.mdl-layout--fixed-drawer > .mdl-layout__content {\\n margin-left: 250px;\\n}\\n\\n.mdl-layout__container.has-scrolling-header .mdl-layout__content {\\n overflow: visible;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout--fixed-drawer > .mdl-layout__content {\\n margin-left: 0;\\n }\\n\\n .mdl-layout__container.has-scrolling-header .mdl-layout__content {\\n overflow-y: auto;\\n overflow-x: hidden;\\n }\\n}\\n\\n.mdl-layout__tab-bar {\\n height: 96px;\\n margin: 0;\\n width: calc(100% - 112px);\\n padding: 0 0 0 56px;\\n display: flex;\\n background-color: rgb(98, 105, 113);\\n overflow-y: hidden;\\n overflow-x: scroll;\\n}\\n\\n.mdl-layout__tab-bar::-webkit-scrollbar {\\n display: none;\\n}\\n\\n.mdl-layout--no-drawer-button .mdl-layout__tab-bar {\\n padding-left: -4px;\\n width: calc(100% - -8px);\\n}\\n\\n@media screen and (min-width: 1201px) {\\n .mdl-layout--no-desktop-drawer-button .mdl-layout__tab-bar {\\n padding-left: -4px;\\n width: calc(100% - -8px);\\n }\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__tab-bar {\\n width: calc(100% - 60px);\\n padding: 0 0 0 60px;\\n }\\n\\n .mdl-layout--no-drawer-button .mdl-layout__tab-bar {\\n width: calc(100% - 8px);\\n padding-left: 4px;\\n }\\n}\\n\\n.mdl-layout--fixed-tabs .mdl-layout__tab-bar {\\n padding: 0;\\n overflow: hidden;\\n width: 100%;\\n}\\n\\n.mdl-layout__tab-bar-container {\\n position: relative;\\n height: 48px;\\n width: 100%;\\n border: none;\\n margin: 0;\\n z-index: 2;\\n flex-grow: 0;\\n flex-shrink: 0;\\n overflow: hidden;\\n}\\n\\n.mdl-layout__container > .mdl-layout__tab-bar-container {\\n position: absolute;\\n top: 0;\\n left: 0;\\n}\\n\\n.mdl-layout__tab-bar-button {\\n display: inline-block;\\n position: absolute;\\n top: 0;\\n height: 48px;\\n width: 56px;\\n z-index: 4;\\n text-align: center;\\n background-color: rgb(98, 105, 113);\\n color: transparent;\\n cursor: pointer;\\n user-select: none;\\n}\\n\\n.mdl-layout--no-desktop-drawer-button .mdl-layout__tab-bar-button,\\n.mdl-layout--no-drawer-button .mdl-layout__tab-bar-button {\\n width: -4px;\\n}\\n\\n.mdl-layout--no-desktop-drawer-button .mdl-layout__tab-bar-button .material-icons,\\n.mdl-layout--no-drawer-button .mdl-layout__tab-bar-button .material-icons {\\n position: relative;\\n left: -14px;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__tab-bar-button {\\n width: 60px;\\n }\\n}\\n\\n.mdl-layout--fixed-tabs .mdl-layout__tab-bar-button {\\n display: none;\\n}\\n\\n.mdl-layout__tab-bar-button .material-icons {\\n line-height: 48px;\\n}\\n\\n.mdl-layout__tab-bar-button.is-active {\\n color: rgb(255, 255, 255);\\n}\\n\\n.mdl-layout__tab-bar-left-button {\\n left: 0;\\n}\\n\\n.mdl-layout__tab-bar-right-button {\\n right: 0;\\n}\\n\\n.mdl-layout__tab {\\n margin: 0;\\n border: none;\\n padding: 0 24px 0 24px;\\n float: left;\\n position: relative;\\n display: block;\\n flex-grow: 0;\\n flex-shrink: 0;\\n text-decoration: none;\\n height: 48px;\\n line-height: 48px;\\n text-align: center;\\n font-weight: 500;\\n font-size: 14px;\\n text-transform: uppercase;\\n color: rgba(255, 255, 255, 0.6);\\n overflow: hidden;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__tab {\\n padding: 0 12px 0 12px;\\n }\\n}\\n\\n.mdl-layout--fixed-tabs .mdl-layout__tab {\\n float: none;\\n flex-grow: 1;\\n padding: 0;\\n}\\n\\n.mdl-layout.is-upgraded .mdl-layout__tab.is-active {\\n color: rgb(255, 255, 255);\\n}\\n\\n.mdl-layout.is-upgraded .mdl-layout__tab.is-active::after {\\n height: 2px;\\n width: 100%;\\n display: block;\\n content: \\\" \\\";\\n bottom: 0;\\n left: 0;\\n position: absolute;\\n background: rgb(0, 128, 175);\\n animation: border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards;\\n transition: all 1s cubic-bezier(0.4, 0, 1, 1);\\n}\\n\\n.mdl-layout__tab .mdl-layout__tab-ripple-container {\\n display: block;\\n position: absolute;\\n height: 100%;\\n width: 100%;\\n left: 0;\\n top: 0;\\n z-index: 1;\\n overflow: hidden;\\n}\\n\\n.mdl-layout__tab .mdl-layout__tab-ripple-container .mdl-ripple {\\n background-color: rgb(255, 255, 255);\\n}\\n\\n.mdl-layout__tab-panel {\\n display: block;\\n}\\n\\n.mdl-layout.is-upgraded .mdl-layout__tab-panel {\\n display: none;\\n}\\n\\n.mdl-layout.is-upgraded .mdl-layout__tab-panel.is-active {\\n display: block;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Typography */\\n\\n/* Shadows */\\n\\n/* Animations */\\n\\n/* Dialog */\\n\\n.mdl-radio {\\n position: relative;\\n font-size: 13px;\\n line-height: 24px;\\n display: inline-block;\\n vertical-align: middle;\\n box-sizing: border-box;\\n height: 24px;\\n margin: 0;\\n padding-left: 0;\\n}\\n\\n.mdl-radio.is-upgraded {\\n padding-left: 24px;\\n}\\n\\n.mdl-radio__button {\\n line-height: 24px;\\n}\\n\\n.mdl-radio.is-upgraded .mdl-radio__button {\\n position: absolute;\\n width: 0;\\n height: 0;\\n margin: 0;\\n padding: 0;\\n opacity: 0;\\n -ms-appearance: none;\\n -moz-appearance: none;\\n -webkit-appearance: none;\\n appearance: none;\\n border: none;\\n}\\n\\n.mdl-radio__outer-circle {\\n position: absolute;\\n top: 4px;\\n left: 0;\\n display: inline-block;\\n box-sizing: border-box;\\n width: 16px;\\n height: 16px;\\n margin: 0;\\n cursor: pointer;\\n border: 2px solid rgba(0,0,0, 0.54);\\n border-radius: 50%;\\n z-index: 2;\\n}\\n\\n.mdl-radio.is-checked .mdl-radio__outer-circle {\\n border: 2px solid rgb(98, 105, 113);\\n}\\n\\n.mdl-radio__outer-circle fieldset[disabled] .mdl-radio,\\n.mdl-radio.is-disabled .mdl-radio__outer-circle {\\n border: 2px solid rgba(0,0,0, 0.26);\\n cursor: auto;\\n}\\n\\n.mdl-radio__inner-circle {\\n position: absolute;\\n z-index: 1;\\n margin: 0;\\n top: 8px;\\n left: 4px;\\n box-sizing: border-box;\\n width: 8px;\\n height: 8px;\\n cursor: pointer;\\n transition-duration: 0.28s;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-property: transform;\\n transform: scale(0, 0);\\n border-radius: 50%;\\n background: rgb(98, 105, 113);\\n}\\n\\n.mdl-radio.is-checked .mdl-radio__inner-circle {\\n transform: scale(1, 1);\\n}\\n\\nfieldset[disabled] .mdl-radio .mdl-radio__inner-circle,\\n.mdl-radio.is-disabled .mdl-radio__inner-circle {\\n background: rgba(0,0,0, 0.26);\\n cursor: auto;\\n}\\n\\n.mdl-radio.is-focused .mdl-radio__inner-circle {\\n box-shadow: 0 0 0px 10px rgba(0, 0, 0, 0.1);\\n}\\n\\n.mdl-radio__label {\\n cursor: pointer;\\n}\\n\\nfieldset[disabled] .mdl-radio .mdl-radio__label,\\n.mdl-radio.is-disabled .mdl-radio__label {\\n color: rgba(0,0,0, 0.26);\\n cursor: auto;\\n}\\n\\n.mdl-radio__ripple-container {\\n position: absolute;\\n z-index: 2;\\n top: -9px;\\n left: -13px;\\n box-sizing: border-box;\\n width: 42px;\\n height: 42px;\\n border-radius: 50%;\\n cursor: pointer;\\n overflow: hidden;\\n -webkit-mask-image: -webkit-radial-gradient(circle, white, black);\\n}\\n\\n.mdl-radio__ripple-container .mdl-ripple {\\n background: rgb(98, 105, 113);\\n}\\n\\nfieldset[disabled] .mdl-radio .mdl-radio__ripple-container,\\n.mdl-radio.is-disabled .mdl-radio__ripple-container {\\n cursor: auto;\\n}\\n\\nfieldset[disabled] .mdl-radio .mdl-radio__ripple-container .mdl-ripple,\\n.mdl-radio.is-disabled .mdl-radio__ripple-container .mdl-ripple {\\n background: transparent;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n_:-ms-input-placeholder,\\n:root .mdl-slider.mdl-slider.is-upgraded {\\n -ms-appearance: none;\\n height: 32px;\\n margin: 0;\\n}\\n\\n.mdl-slider {\\n width: calc(100% - 40px);\\n margin: 0 20px;\\n}\\n\\n.mdl-slider.is-upgraded {\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n height: 2px;\\n background: transparent;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n user-select: none;\\n outline: 0;\\n padding: 0;\\n color: rgb(98, 105, 113);\\n align-self: center;\\n z-index: 1;\\n cursor: pointer;\\n /**************************** Tracks ****************************/\\n /**************************** Thumbs ****************************/\\n /**************************** 0-value ****************************/\\n /**************************** Disabled ****************************/\\n}\\n\\n.mdl-slider.is-upgraded::-moz-focus-outer {\\n border: 0;\\n}\\n\\n.mdl-slider.is-upgraded::-ms-tooltip {\\n display: none;\\n}\\n\\n.mdl-slider.is-upgraded::-webkit-slider-runnable-track {\\n background: transparent;\\n}\\n\\n.mdl-slider.is-upgraded::-moz-range-track {\\n background: transparent;\\n border: none;\\n}\\n\\n.mdl-slider.is-upgraded::-ms-track {\\n background: none;\\n color: transparent;\\n height: 2px;\\n width: 100%;\\n border: none;\\n}\\n\\n.mdl-slider.is-upgraded::-ms-fill-lower {\\n padding: 0;\\n background: linear-gradient(to right, transparent, transparent 16px, rgb(98, 105, 113) 16px, rgb(98, 105, 113) 0);\\n}\\n\\n.mdl-slider.is-upgraded::-ms-fill-upper {\\n padding: 0;\\n background: linear-gradient(to left, transparent, transparent 16px, rgba(0,0,0, 0.26) 16px, rgba(0,0,0, 0.26) 0);\\n}\\n\\n.mdl-slider.is-upgraded::-webkit-slider-thumb {\\n -webkit-appearance: none;\\n width: 12px;\\n height: 12px;\\n box-sizing: border-box;\\n border-radius: 50%;\\n background: rgb(98, 105, 113);\\n border: none;\\n transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), border 0.18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1);\\n}\\n\\n.mdl-slider.is-upgraded::-moz-range-thumb {\\n -moz-appearance: none;\\n width: 12px;\\n height: 12px;\\n box-sizing: border-box;\\n border-radius: 50%;\\n background-image: none;\\n background: rgb(98, 105, 113);\\n border: none;\\n}\\n\\n.mdl-slider.is-upgraded:focus:not(:active)::-webkit-slider-thumb {\\n box-shadow: 0 0 0 10px rgba(98, 105, 113, 0.26);\\n}\\n\\n.mdl-slider.is-upgraded:focus:not(:active)::-moz-range-thumb {\\n box-shadow: 0 0 0 10px rgba(98, 105, 113, 0.26);\\n}\\n\\n.mdl-slider.is-upgraded:active::-webkit-slider-thumb {\\n background-image: none;\\n background: rgb(98, 105, 113);\\n transform: scale(1.5);\\n}\\n\\n.mdl-slider.is-upgraded:active::-moz-range-thumb {\\n background-image: none;\\n background: rgb(98, 105, 113);\\n transform: scale(1.5);\\n}\\n\\n.mdl-slider.is-upgraded::-ms-thumb {\\n width: 32px;\\n height: 32px;\\n border: none;\\n border-radius: 50%;\\n background: rgb(98, 105, 113);\\n transform: scale(0.375);\\n transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1);\\n}\\n\\n.mdl-slider.is-upgraded:focus:not(:active)::-ms-thumb {\\n background: radial-gradient(circle closest-side, rgb(98, 105, 113) 0%, rgb(98, 105, 113) 37.5%, rgba(98, 105, 113, 0.26) 37.5%, rgba(98, 105, 113, 0.26) 100%);\\n transform: scale(1);\\n}\\n\\n.mdl-slider.is-upgraded:active::-ms-thumb {\\n background: rgb(98, 105, 113);\\n transform: scale(0.5625);\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value::-webkit-slider-thumb {\\n border: 2px solid rgba(0,0,0, 0.26);\\n background: transparent;\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value::-moz-range-thumb {\\n border: 2px solid rgba(0,0,0, 0.26);\\n background: transparent;\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value + .mdl-slider__background-flex > .mdl-slider__background-upper {\\n left: 6px;\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-webkit-slider-thumb {\\n box-shadow: 0 0 0 10px rgba(0,0,0, 0.12);\\n background: rgba(0,0,0, 0.12);\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-moz-range-thumb {\\n box-shadow: 0 0 0 10px rgba(0,0,0, 0.12);\\n background: rgba(0,0,0, 0.12);\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value:active::-webkit-slider-thumb {\\n border: 1.6px solid rgba(0,0,0, 0.26);\\n transform: scale(1.5);\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value:active + .mdl-slider__background-flex > .mdl-slider__background-upper {\\n left: 9px;\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value:active::-moz-range-thumb {\\n border: 1.5px solid rgba(0,0,0, 0.26);\\n transform: scale(1.5);\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value::-ms-thumb {\\n background: radial-gradient(circle closest-side, transparent 0%, transparent 66.67%, rgba(0,0,0, 0.26) 66.67%, rgba(0,0,0, 0.26) 100%);\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-ms-thumb {\\n background: radial-gradient(circle closest-side, rgba(0,0,0, 0.12) 0%, rgba(0,0,0, 0.12) 25%, rgba(0,0,0, 0.26) 25%, rgba(0,0,0, 0.26) 37.5%, rgba(0,0,0, 0.12) 37.5%, rgba(0,0,0, 0.12) 100%);\\n transform: scale(1);\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value:active::-ms-thumb {\\n transform: scale(0.5625);\\n background: radial-gradient(circle closest-side, transparent 0%, transparent 77.78%, rgba(0,0,0, 0.26) 77.78%, rgba(0,0,0, 0.26) 100%);\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value::-ms-fill-lower {\\n background: transparent;\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value::-ms-fill-upper {\\n margin-left: 6px;\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value:active::-ms-fill-upper {\\n margin-left: 9px;\\n}\\n\\n.mdl-slider.is-upgraded:disabled:focus::-webkit-slider-thumb,\\n.mdl-slider.is-upgraded:disabled:active::-webkit-slider-thumb,\\n.mdl-slider.is-upgraded:disabled::-webkit-slider-thumb {\\n transform: scale(0.667);\\n background: rgba(0,0,0, 0.26);\\n}\\n\\n.mdl-slider.is-upgraded:disabled:focus::-moz-range-thumb,\\n.mdl-slider.is-upgraded:disabled:active::-moz-range-thumb,\\n.mdl-slider.is-upgraded:disabled::-moz-range-thumb {\\n transform: scale(0.667);\\n background: rgba(0,0,0, 0.26);\\n}\\n\\n.mdl-slider.is-upgraded:disabled + .mdl-slider__background-flex > .mdl-slider__background-lower {\\n background-color: rgba(0,0,0, 0.26);\\n left: -6px;\\n}\\n\\n.mdl-slider.is-upgraded:disabled + .mdl-slider__background-flex > .mdl-slider__background-upper {\\n left: 6px;\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-webkit-slider-thumb,\\n.mdl-slider.is-upgraded.is-lowest-value:disabled:active::-webkit-slider-thumb,\\n.mdl-slider.is-upgraded.is-lowest-value:disabled::-webkit-slider-thumb {\\n border: 3px solid rgba(0,0,0, 0.26);\\n background: transparent;\\n transform: scale(0.667);\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-moz-range-thumb,\\n.mdl-slider.is-upgraded.is-lowest-value:disabled:active::-moz-range-thumb,\\n.mdl-slider.is-upgraded.is-lowest-value:disabled::-moz-range-thumb {\\n border: 3px solid rgba(0,0,0, 0.26);\\n background: transparent;\\n transform: scale(0.667);\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value:disabled:active + .mdl-slider__background-flex > .mdl-slider__background-upper {\\n left: 6px;\\n}\\n\\n.mdl-slider.is-upgraded:disabled:focus::-ms-thumb,\\n.mdl-slider.is-upgraded:disabled:active::-ms-thumb,\\n.mdl-slider.is-upgraded:disabled::-ms-thumb {\\n transform: scale(0.25);\\n background: rgba(0,0,0, 0.26);\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-ms-thumb,\\n.mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-thumb,\\n.mdl-slider.is-upgraded.is-lowest-value:disabled::-ms-thumb {\\n transform: scale(0.25);\\n background: radial-gradient(circle closest-side, transparent 0%, transparent 50%, rgba(0,0,0, 0.26) 50%, rgba(0,0,0, 0.26) 100%);\\n}\\n\\n.mdl-slider.is-upgraded:disabled::-ms-fill-lower {\\n margin-right: 6px;\\n background: linear-gradient(to right, transparent, transparent 25px, rgba(0,0,0, 0.26) 25px, rgba(0,0,0, 0.26) 0);\\n}\\n\\n.mdl-slider.is-upgraded:disabled::-ms-fill-upper {\\n margin-left: 6px;\\n}\\n\\n.mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-fill-upper {\\n margin-left: 6px;\\n}\\n\\n.mdl-slider__ie-container {\\n height: 18px;\\n overflow: visible;\\n border: none;\\n margin: none;\\n padding: none;\\n}\\n\\n.mdl-slider__container {\\n height: 18px;\\n position: relative;\\n background: none;\\n display: flex;\\n flex-direction: row;\\n}\\n\\n.mdl-slider__background-flex {\\n background: transparent;\\n position: absolute;\\n height: 2px;\\n width: calc(100% - 52px);\\n top: 50%;\\n left: 0;\\n margin: 0 26px;\\n display: flex;\\n overflow: hidden;\\n border: 0;\\n padding: 0;\\n transform: translate(0, -1px);\\n}\\n\\n.mdl-slider__background-lower {\\n background: rgb(98, 105, 113);\\n flex: 0;\\n position: relative;\\n border: 0;\\n padding: 0;\\n}\\n\\n.mdl-slider__background-upper {\\n background: rgba(0,0,0, 0.26);\\n flex: 0;\\n position: relative;\\n border: 0;\\n padding: 0;\\n transition: left 0.18s cubic-bezier(0.4, 0, 0.2, 1);\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Typography */\\n\\n/* Shadows */\\n\\n/* Animations */\\n\\n/* Dialog */\\n\\n.mdl-snackbar {\\n position: fixed;\\n bottom: 0;\\n left: 50%;\\n cursor: default;\\n background-color: #323232;\\n z-index: 3;\\n display: block;\\n display: flex;\\n justify-content: space-between;\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n will-change: transform;\\n transform: translate(0, 80px);\\n transition: transform 0.25s cubic-bezier(0.4, 0, 1, 1);\\n pointer-events: none;\\n}\\n\\n@media (max-width: 479px) {\\n .mdl-snackbar {\\n width: 100%;\\n left: 0;\\n min-height: 48px;\\n max-height: 80px;\\n }\\n}\\n\\n@media (min-width: 480px) {\\n .mdl-snackbar {\\n min-width: 288px;\\n max-width: 568px;\\n border-radius: 2px;\\n transform: translate(-50%, 80px);\\n }\\n}\\n\\n.mdl-snackbar--active {\\n transform: translate(0, 0);\\n pointer-events: auto;\\n transition: transform 0.25s cubic-bezier(0, 0, 0.2, 1);\\n}\\n\\n@media (min-width: 480px) {\\n .mdl-snackbar--active {\\n transform: translate(-50%, 0);\\n }\\n}\\n\\n.mdl-snackbar__text {\\n padding: 14px 12px 14px 24px;\\n vertical-align: middle;\\n color: white;\\n float: left;\\n}\\n\\n.mdl-snackbar__action {\\n background: transparent;\\n border: none;\\n color: rgb(0, 128, 175);\\n float: right;\\n text-transform: uppercase;\\n padding: 14px 24px 14px 12px;\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n text-transform: uppercase;\\n line-height: 1;\\n letter-spacing: 0;\\n overflow: hidden;\\n outline: none;\\n opacity: 0;\\n pointer-events: none;\\n cursor: pointer;\\n text-decoration: none;\\n text-align: center;\\n align-self: center;\\n}\\n\\n.mdl-snackbar__action::-moz-focus-inner {\\n border: 0;\\n}\\n\\n.mdl-snackbar__action:not([aria-hidden]) {\\n opacity: 1;\\n pointer-events: auto;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n.mdl-spinner {\\n display: inline-block;\\n position: relative;\\n width: 28px;\\n height: 28px;\\n}\\n\\n.mdl-spinner:not(.is-upgraded).is-active:after {\\n content: \\\"Loading...\\\";\\n}\\n\\n.mdl-spinner.is-upgraded.is-active {\\n animation: mdl-spinner__container-rotate 1568.2352941176ms linear infinite;\\n}\\n\\n@keyframes mdl-spinner__container-rotate {\\n to {\\n transform: rotate(360deg);\\n }\\n}\\n\\n.mdl-spinner__layer {\\n position: absolute;\\n width: 100%;\\n height: 100%;\\n opacity: 0;\\n}\\n\\n.mdl-spinner__layer-1 {\\n border-color: rgb(66,165,245);\\n}\\n\\n.mdl-spinner--single-color .mdl-spinner__layer-1 {\\n border-color: rgb(98, 105, 113);\\n}\\n\\n.mdl-spinner.is-active .mdl-spinner__layer-1 {\\n animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\\n}\\n\\n.mdl-spinner__layer-2 {\\n border-color: rgb(244,67,54);\\n}\\n\\n.mdl-spinner--single-color .mdl-spinner__layer-2 {\\n border-color: rgb(98, 105, 113);\\n}\\n\\n.mdl-spinner.is-active .mdl-spinner__layer-2 {\\n animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\\n}\\n\\n.mdl-spinner__layer-3 {\\n border-color: rgb(253,216,53);\\n}\\n\\n.mdl-spinner--single-color .mdl-spinner__layer-3 {\\n border-color: rgb(98, 105, 113);\\n}\\n\\n.mdl-spinner.is-active .mdl-spinner__layer-3 {\\n animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\\n}\\n\\n.mdl-spinner__layer-4 {\\n border-color: rgb(76,175,80);\\n}\\n\\n.mdl-spinner--single-color .mdl-spinner__layer-4 {\\n border-color: rgb(98, 105, 113);\\n}\\n\\n.mdl-spinner.is-active .mdl-spinner__layer-4 {\\n animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\\n}\\n\\n@keyframes mdl-spinner__fill-unfill-rotate {\\n 12.5% {\\n transform: rotate(135deg);\\n }\\n\\n 25% {\\n transform: rotate(270deg);\\n }\\n\\n 37.5% {\\n transform: rotate(405deg);\\n }\\n\\n 50% {\\n transform: rotate(540deg);\\n }\\n\\n 62.5% {\\n transform: rotate(675deg);\\n }\\n\\n 75% {\\n transform: rotate(810deg);\\n }\\n\\n 87.5% {\\n transform: rotate(945deg);\\n }\\n\\n to {\\n transform: rotate(1080deg);\\n }\\n}\\n\\n/**\\n* HACK: Even though the intention is to have the current .mdl-spinner__layer-N\\n* at `opacity: 1`, we set it to `opacity: 0.99` instead since this forces Chrome\\n* to do proper subpixel rendering for the elements being animated. This is\\n* especially visible in Chrome 39 on Ubuntu 14.04. See:\\n*\\n* - https://github.com/Polymer/paper-spinner/issues/9\\n* - https://code.google.com/p/chromium/issues/detail?id=436255\\n*/\\n\\n@keyframes mdl-spinner__layer-1-fade-in-out {\\n from {\\n opacity: 0.99;\\n }\\n\\n 25% {\\n opacity: 0.99;\\n }\\n\\n 26% {\\n opacity: 0;\\n }\\n\\n 89% {\\n opacity: 0;\\n }\\n\\n 90% {\\n opacity: 0.99;\\n }\\n\\n 100% {\\n opacity: 0.99;\\n }\\n}\\n\\n@keyframes mdl-spinner__layer-2-fade-in-out {\\n from {\\n opacity: 0;\\n }\\n\\n 15% {\\n opacity: 0;\\n }\\n\\n 25% {\\n opacity: 0.99;\\n }\\n\\n 50% {\\n opacity: 0.99;\\n }\\n\\n 51% {\\n opacity: 0;\\n }\\n}\\n\\n@keyframes mdl-spinner__layer-3-fade-in-out {\\n from {\\n opacity: 0;\\n }\\n\\n 40% {\\n opacity: 0;\\n }\\n\\n 50% {\\n opacity: 0.99;\\n }\\n\\n 75% {\\n opacity: 0.99;\\n }\\n\\n 76% {\\n opacity: 0;\\n }\\n}\\n\\n@keyframes mdl-spinner__layer-4-fade-in-out {\\n from {\\n opacity: 0;\\n }\\n\\n 65% {\\n opacity: 0;\\n }\\n\\n 75% {\\n opacity: 0.99;\\n }\\n\\n 90% {\\n opacity: 0.99;\\n }\\n\\n 100% {\\n opacity: 0;\\n }\\n}\\n\\n/**\\n* Patch the gap that appear between the two adjacent\\n* div.mdl-spinner__circle-clipper while the spinner is rotating\\n* (appears on Chrome 38, Safari 7.1, and IE 11).\\n*\\n* Update: the gap no longer appears on Chrome when .mdl-spinner__layer-N's\\n* opacity is 0.99, but still does on Safari and IE.\\n*/\\n\\n.mdl-spinner__gap-patch {\\n position: absolute;\\n box-sizing: border-box;\\n top: 0;\\n left: 45%;\\n width: 10%;\\n height: 100%;\\n overflow: hidden;\\n border-color: inherit;\\n}\\n\\n.mdl-spinner__gap-patch .mdl-spinner__circle {\\n width: 1000%;\\n left: -450%;\\n}\\n\\n.mdl-spinner__circle-clipper {\\n display: inline-block;\\n position: relative;\\n width: 50%;\\n height: 100%;\\n overflow: hidden;\\n border-color: inherit;\\n}\\n\\n.mdl-spinner__circle-clipper.mdl-spinner__left {\\n float: left;\\n}\\n\\n.mdl-spinner__circle-clipper.mdl-spinner__right {\\n float: right;\\n}\\n\\n.mdl-spinner__circle-clipper .mdl-spinner__circle {\\n width: 200%;\\n}\\n\\n.mdl-spinner__circle {\\n box-sizing: border-box;\\n height: 100%;\\n border-width: 3px;\\n border-style: solid;\\n border-color: inherit;\\n border-bottom-color: transparent !important;\\n border-radius: 50%;\\n animation: none;\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n}\\n\\n.mdl-spinner__left .mdl-spinner__circle {\\n border-right-color: transparent !important;\\n transform: rotate(129deg);\\n}\\n\\n.mdl-spinner.is-active .mdl-spinner__left .mdl-spinner__circle {\\n animation: mdl-spinner__left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\\n}\\n\\n.mdl-spinner__right .mdl-spinner__circle {\\n left: -100%;\\n border-left-color: transparent !important;\\n transform: rotate(-129deg);\\n}\\n\\n.mdl-spinner.is-active .mdl-spinner__right .mdl-spinner__circle {\\n animation: mdl-spinner__right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\\n}\\n\\n@keyframes mdl-spinner__left-spin {\\n from {\\n transform: rotate(130deg);\\n }\\n\\n 50% {\\n transform: rotate(-5deg);\\n }\\n\\n to {\\n transform: rotate(130deg);\\n }\\n}\\n\\n@keyframes mdl-spinner__right-spin {\\n from {\\n transform: rotate(-130deg);\\n }\\n\\n 50% {\\n transform: rotate(5deg);\\n }\\n\\n to {\\n transform: rotate(-130deg);\\n }\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Typography */\\n\\n/* Shadows */\\n\\n/* Animations */\\n\\n/* Dialog */\\n\\n.mdl-switch {\\n position: relative;\\n z-index: 1;\\n vertical-align: middle;\\n display: inline-block;\\n box-sizing: border-box;\\n width: 100%;\\n height: 24px;\\n margin: 0;\\n padding: 0;\\n overflow: visible;\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n\\n.mdl-switch.is-upgraded {\\n padding-left: 28px;\\n}\\n\\n.mdl-switch__input {\\n line-height: 24px;\\n}\\n\\n.mdl-switch.is-upgraded .mdl-switch__input {\\n position: absolute;\\n width: 0;\\n height: 0;\\n margin: 0;\\n padding: 0;\\n opacity: 0;\\n -ms-appearance: none;\\n -moz-appearance: none;\\n -webkit-appearance: none;\\n appearance: none;\\n border: none;\\n}\\n\\n.mdl-switch__track {\\n background: rgba(0,0,0, 0.26);\\n position: absolute;\\n left: 0;\\n top: 5px;\\n height: 14px;\\n width: 36px;\\n border-radius: 14px;\\n cursor: pointer;\\n}\\n\\n.mdl-switch.is-checked .mdl-switch__track {\\n background: rgba(98, 105, 113, 0.5);\\n}\\n\\n.mdl-switch__track fieldset[disabled] .mdl-switch,\\n.mdl-switch.is-disabled .mdl-switch__track {\\n background: rgba(0,0,0, 0.12);\\n cursor: auto;\\n}\\n\\n.mdl-switch__thumb {\\n background: rgb(250,250,250);\\n position: absolute;\\n left: 0;\\n top: 2px;\\n height: 20px;\\n width: 20px;\\n border-radius: 50%;\\n cursor: pointer;\\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n transition-duration: 0.28s;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-property: left;\\n}\\n\\n.mdl-switch.is-checked .mdl-switch__thumb {\\n background: rgb(98, 105, 113);\\n left: 16px;\\n box-shadow: 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 1px 8px 0 rgba(0, 0, 0, 0.12);\\n}\\n\\n.mdl-switch__thumb fieldset[disabled] .mdl-switch,\\n.mdl-switch.is-disabled .mdl-switch__thumb {\\n background: rgb(189,189,189);\\n cursor: auto;\\n}\\n\\n.mdl-switch__focus-helper {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n transform: translate(-4px, -4px);\\n display: inline-block;\\n box-sizing: border-box;\\n width: 8px;\\n height: 8px;\\n border-radius: 50%;\\n background-color: transparent;\\n}\\n\\n.mdl-switch.is-focused .mdl-switch__focus-helper {\\n box-shadow: 0 0 0px 20px rgba(0, 0, 0, 0.1);\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n\\n.mdl-switch.is-focused.is-checked .mdl-switch__focus-helper {\\n box-shadow: 0 0 0px 20px rgba(98, 105, 113, 0.26);\\n background-color: rgba(98, 105, 113, 0.26);\\n}\\n\\n.mdl-switch__label {\\n position: relative;\\n cursor: pointer;\\n font-size: 13px;\\n line-height: 24px;\\n margin: 0;\\n left: 24px;\\n}\\n\\n.mdl-switch__label fieldset[disabled] .mdl-switch,\\n.mdl-switch.is-disabled .mdl-switch__label {\\n color: rgb(189,189,189);\\n cursor: auto;\\n}\\n\\n.mdl-switch__ripple-container {\\n position: absolute;\\n z-index: 2;\\n top: -12px;\\n left: -14px;\\n box-sizing: border-box;\\n width: 48px;\\n height: 48px;\\n border-radius: 50%;\\n cursor: pointer;\\n overflow: hidden;\\n -webkit-mask-image: -webkit-radial-gradient(circle, white, black);\\n transition-duration: 0.4s;\\n transition-timing-function: step-end;\\n transition-property: left;\\n}\\n\\n.mdl-switch__ripple-container .mdl-ripple {\\n background: rgb(98, 105, 113);\\n}\\n\\n.mdl-switch__ripple-container fieldset[disabled] .mdl-switch,\\n.mdl-switch.is-disabled .mdl-switch__ripple-container {\\n cursor: auto;\\n}\\n\\nfieldset[disabled] .mdl-switch .mdl-switch__ripple-container .mdl-ripple,\\n.mdl-switch.is-disabled .mdl-switch__ripple-container .mdl-ripple {\\n background: transparent;\\n}\\n\\n.mdl-switch.is-checked .mdl-switch__ripple-container {\\n left: 2px;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n.mdl-tabs {\\n display: block;\\n width: 100%;\\n}\\n\\n.mdl-tabs__tab-bar {\\n display: flex;\\n flex-direction: row;\\n justify-content: center;\\n align-content: space-between;\\n align-items: flex-start;\\n height: 48px;\\n padding: 0 0 0 0;\\n margin: 0;\\n border-bottom: 1px solid rgb(224,224,224);\\n}\\n\\n.mdl-tabs__tab {\\n margin: 0;\\n border: none;\\n padding: 0 24px 0 24px;\\n float: left;\\n position: relative;\\n display: block;\\n text-decoration: none;\\n height: 48px;\\n line-height: 48px;\\n text-align: center;\\n font-weight: 500;\\n font-size: 14px;\\n text-transform: uppercase;\\n color: rgba(0,0,0, 0.54);\\n overflow: hidden;\\n}\\n\\n.mdl-tabs.is-upgraded .mdl-tabs__tab.is-active {\\n color: rgba(0,0,0, 0.87);\\n}\\n\\n.mdl-tabs.is-upgraded .mdl-tabs__tab.is-active:after {\\n height: 2px;\\n width: 100%;\\n display: block;\\n content: \\\" \\\";\\n bottom: 0px;\\n left: 0px;\\n position: absolute;\\n background: rgb(98, 105, 113);\\n animation: border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards;\\n transition: all 1s cubic-bezier(0.4, 0, 1, 1);\\n}\\n\\n.mdl-tabs__tab .mdl-tabs__ripple-container {\\n display: block;\\n position: absolute;\\n height: 100%;\\n width: 100%;\\n left: 0px;\\n top: 0px;\\n z-index: 1;\\n overflow: hidden;\\n}\\n\\n.mdl-tabs__tab .mdl-tabs__ripple-container .mdl-ripple {\\n background: rgb(98, 105, 113);\\n}\\n\\n.mdl-tabs__panel {\\n display: block;\\n}\\n\\n.mdl-tabs.is-upgraded .mdl-tabs__panel {\\n display: none;\\n}\\n\\n.mdl-tabs.is-upgraded .mdl-tabs__panel.is-active {\\n display: block;\\n}\\n\\n@keyframes border-expand {\\n 0% {\\n opacity: 0;\\n width: 0;\\n }\\n\\n 100% {\\n opacity: 1;\\n width: 100%;\\n }\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Typography */\\n\\n/* Shadows */\\n\\n/* Animations */\\n\\n/* Dialog */\\n\\n.mdl-textfield {\\n position: relative;\\n font-size: 13px;\\n display: inline-block;\\n box-sizing: border-box;\\n width: 300px;\\n max-width: 100%;\\n margin: 0;\\n padding: 20px 0;\\n}\\n\\n.mdl-textfield .mdl-button {\\n position: absolute;\\n bottom: 20px;\\n}\\n\\n.mdl-textfield--align-right {\\n text-align: right;\\n}\\n\\n.mdl-textfield--full-width {\\n width: 100%;\\n}\\n\\n.mdl-textfield--expandable {\\n min-width: 32px;\\n width: auto;\\n min-height: 32px;\\n}\\n\\n.mdl-textfield--expandable .mdl-button--icon {\\n top: 16px;\\n}\\n\\n.mdl-textfield__input {\\n border: none;\\n border-bottom: 1px solid rgba(0,0,0, 0.12);\\n display: block;\\n font-size: 13px;\\n font-family: \\\"Helvetica\\\", \\\"Arial\\\", sans-serif;\\n margin: 0;\\n padding: 4px 0;\\n width: 100%;\\n background: none;\\n text-align: left;\\n color: inherit;\\n}\\n\\n.mdl-textfield__input[type=number] {\\n -moz-appearance: textfield;\\n}\\n\\n.mdl-textfield__input[type=number]::-webkit-inner-spin-button,\\n.mdl-textfield__input[type=number]::-webkit-outer-spin-button {\\n -webkit-appearance: none;\\n margin: 0;\\n}\\n\\n.mdl-textfield.is-focused .mdl-textfield__input {\\n outline: none;\\n}\\n\\n.mdl-textfield.is-invalid .mdl-textfield__input {\\n border-color: rgb(213,0,0);\\n box-shadow: none;\\n}\\n\\nfieldset[disabled] .mdl-textfield .mdl-textfield__input,\\n.mdl-textfield.is-disabled .mdl-textfield__input {\\n background-color: transparent;\\n border-bottom: 1px dotted rgba(0,0,0, 0.12);\\n color: rgba(0,0,0, 0.26);\\n}\\n\\n.mdl-textfield textarea.mdl-textfield__input {\\n display: block;\\n}\\n\\n.mdl-textfield__label {\\n bottom: 0;\\n color: rgba(0,0,0, 0.26);\\n font-size: 13px;\\n left: 0;\\n right: 0;\\n pointer-events: none;\\n position: absolute;\\n display: block;\\n top: 24px;\\n width: 100%;\\n overflow: hidden;\\n white-space: nowrap;\\n text-align: left;\\n}\\n\\n.mdl-textfield.is-dirty .mdl-textfield__label,\\n.mdl-textfield.has-placeholder .mdl-textfield__label {\\n visibility: hidden;\\n}\\n\\n.mdl-textfield--floating-label .mdl-textfield__label {\\n transition-duration: 0.2s;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n}\\n\\n.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label {\\n transition: none;\\n}\\n\\nfieldset[disabled] .mdl-textfield .mdl-textfield__label,\\n.mdl-textfield.is-disabled.is-disabled .mdl-textfield__label {\\n color: rgba(0,0,0, 0.26);\\n}\\n\\n.mdl-textfield--floating-label.is-focused .mdl-textfield__label,\\n.mdl-textfield--floating-label.is-dirty .mdl-textfield__label,\\n.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label {\\n color: rgb(98, 105, 113);\\n font-size: 12px;\\n top: 4px;\\n visibility: visible;\\n}\\n\\n.mdl-textfield--floating-label.is-focused .mdl-textfield__expandable-holder .mdl-textfield__label,\\n.mdl-textfield--floating-label.is-dirty .mdl-textfield__expandable-holder .mdl-textfield__label,\\n.mdl-textfield--floating-label.has-placeholder .mdl-textfield__expandable-holder .mdl-textfield__label {\\n top: -16px;\\n}\\n\\n.mdl-textfield--floating-label.is-invalid .mdl-textfield__label {\\n color: rgb(213,0,0);\\n font-size: 12px;\\n}\\n\\n.mdl-textfield__label:after {\\n background-color: rgb(98, 105, 113);\\n bottom: 20px;\\n content: \\\"\\\";\\n height: 2px;\\n left: 45%;\\n position: absolute;\\n transition-duration: 0.2s;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n visibility: hidden;\\n width: 10px;\\n}\\n\\n.mdl-textfield.is-focused .mdl-textfield__label:after {\\n left: 0;\\n visibility: visible;\\n width: 100%;\\n}\\n\\n.mdl-textfield.is-invalid .mdl-textfield__label:after {\\n background-color: rgb(213,0,0);\\n}\\n\\n.mdl-textfield__error {\\n color: rgb(213,0,0);\\n position: absolute;\\n font-size: 12px;\\n margin-top: 3px;\\n visibility: hidden;\\n display: block;\\n}\\n\\n.mdl-textfield.is-invalid .mdl-textfield__error {\\n visibility: visible;\\n}\\n\\n.mdl-textfield__expandable-holder {\\n display: inline-block;\\n position: relative;\\n margin-left: 32px;\\n transition-duration: 0.2s;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n display: inline-block;\\n max-width: 0.1px;\\n}\\n\\n.mdl-textfield.is-focused .mdl-textfield__expandable-holder,\\n.mdl-textfield.is-dirty .mdl-textfield__expandable-holder {\\n max-width: 600px;\\n}\\n\\n.mdl-textfield__expandable-holder .mdl-textfield__label:after {\\n bottom: 0;\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n.mdl-tooltip {\\n transform: scale(0);\\n transform-origin: top center;\\n z-index: 999;\\n background: rgba(97,97,97, 0.9);\\n border-radius: 2px;\\n color: rgb(255,255,255);\\n display: inline-block;\\n font-size: 10px;\\n font-weight: 500;\\n line-height: 14px;\\n max-width: 170px;\\n position: fixed;\\n top: -500px;\\n left: -500px;\\n padding: 8px;\\n text-align: center;\\n}\\n\\n.mdl-tooltip.is-active {\\n animation: pulse 200ms cubic-bezier(0, 0, 0.2, 1) forwards;\\n}\\n\\n.mdl-tooltip--large {\\n line-height: 14px;\\n font-size: 14px;\\n padding: 16px;\\n}\\n\\n@keyframes pulse {\\n 0% {\\n transform: scale(0);\\n opacity: 0;\\n }\\n\\n 50% {\\n transform: scale(0.99);\\n }\\n\\n 100% {\\n transform: scale(1);\\n opacity: 1;\\n visibility: visible;\\n }\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* Typography */\\n\\n/* Shadows */\\n\\n/* Animations */\\n\\n/* Dialog */\\n\\n.mdl-shadow--2dp {\\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n}\\n\\n.mdl-shadow--3dp {\\n box-shadow: 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 1px 8px 0 rgba(0, 0, 0, 0.12);\\n}\\n\\n.mdl-shadow--4dp {\\n box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2);\\n}\\n\\n.mdl-shadow--6dp {\\n box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12), 0 3px 5px -1px rgba(0, 0, 0, 0.2);\\n}\\n\\n.mdl-shadow--8dp {\\n box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.2);\\n}\\n\\n.mdl-shadow--16dp {\\n box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2);\\n}\\n\\n.mdl-shadow--24dp {\\n box-shadow: 0 9px 46px 8px rgba(0, 0, 0, 0.14), 0 11px 15px -7px rgba(0, 0, 0, 0.12), 0 24px 38px 3px rgba(0, 0, 0, 0.2);\\n}\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*\\n* NOTE: Some rules here are applied using duplicate selectors.\\n* This is on purpose to increase their specificity when applied.\\n* For example: `.mdl-cell--1-col-phone.mdl-cell--1-col-phone`\\n*/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/*------------------------------------*\\\\\\n $CONTENTS\\n\\\\*------------------------------------*/\\n\\n/**\\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\\n * -----Typography\\n * -----Colors\\n * -----Textfield\\n * -----Switch\\n * -----Spinner\\n * -----Radio\\n * -----Menu\\n * -----List\\n * -----Layout\\n * -----Icon toggles\\n * -----Footer\\n * -----Column\\n * -----Checkbox\\n * -----Card\\n * -----Button\\n * -----Animation\\n * -----Progress\\n * -----Badge\\n * -----Shadows\\n * -----Grid\\n * -----Data table\\n * -----Dialog\\n * -----Snackbar\\n * -----Tooltip\\n * -----Chip\\n *\\n * Even though all variables have the `!default` directive, most of them\\n * should not be changed as they are dependent one another. This can cause\\n * visual distortions (like alignment issues) that are hard to track down\\n * and fix.\\n */\\n\\n/* ========== TYPOGRAPHY ========== */\\n\\n/* We're splitting fonts into \\\"preferred\\\" and \\\"performance\\\" in order to optimize\\n page loading. For important text, such as the body, we want it to load\\n immediately and not wait for the web font load, whereas for other sections,\\n such as headers and titles, we're OK with things taking a bit longer to load.\\n We do have some optional classes and parameters in the mixins, in case you\\n definitely want to make sure you're using the preferred font and don't mind\\n the performance hit.\\n We should be able to improve on this once CSS Font Loading L3 becomes more\\n widely available.\\n*/\\n\\n/* ========== COLORS ========== */\\n\\n/**\\n*\\n* Material design color palettes.\\n* @see http://www.google.com/design/spec/style/color.html\\n*\\n**/\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== Color Palettes ========== */\\n\\n/* colors.scss */\\n\\n/**\\n * Copyright 2015 Google Inc. All Rights Reserved.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/* ========== IMAGES ========== */\\n\\n/* ========== Color & Themes ========== */\\n\\n/* ========== Typography ========== */\\n\\n/* ========== Components ========== */\\n\\n/* ========== Standard Buttons ========== */\\n\\n/* ========== Icon Toggles ========== */\\n\\n/* ========== Radio Buttons ========== */\\n\\n/* ========== Ripple effect ========== */\\n\\n/* ========== Layout ========== */\\n\\n/* ========== Content Tabs ========== */\\n\\n/* ========== Checkboxes ========== */\\n\\n/* ========== Switches ========== */\\n\\n/* ========== Spinner ========== */\\n\\n/* ========== Text fields ========== */\\n\\n/* ========== Card ========== */\\n\\n/* ========== Sliders ========== */\\n\\n/* ========== Progress ========== */\\n\\n/* ========== List ========== */\\n\\n/* ========== Item ========== */\\n\\n/* ========== Dropdown menu ========== */\\n\\n/* ========== Tooltips ========== */\\n\\n/* ========== Footer ========== */\\n\\n/* TEXTFIELD */\\n\\n/* SWITCH */\\n\\n/* SPINNER */\\n\\n/* RADIO */\\n\\n/* MENU */\\n\\n/* LIST */\\n\\n/* LAYOUT */\\n\\n/* ICON TOGGLE */\\n\\n/* FOOTER */\\n\\n/*mega-footer*/\\n\\n/*mini-footer*/\\n\\n/* CHECKBOX */\\n\\n/* CARD */\\n\\n/* Card dimensions */\\n\\n/* Cover image */\\n\\n/* BUTTON */\\n\\n/**\\n *\\n * Dimensions\\n *\\n */\\n\\n/* ANIMATION */\\n\\n/* PROGRESS */\\n\\n/* BADGE */\\n\\n/* SHADOWS */\\n\\n/* GRID */\\n\\n/* DATA TABLE */\\n\\n/* DIALOG */\\n\\n/* SNACKBAR */\\n\\n/* TOOLTIP */\\n\\n/* CHIP */\\n\\n.mdl-grid {\\n display: flex;\\n flex-flow: row wrap;\\n margin: 0 auto 0 auto;\\n align-items: stretch;\\n}\\n\\n.mdl-grid.mdl-grid--no-spacing {\\n padding: 0;\\n}\\n\\n.mdl-cell {\\n box-sizing: border-box;\\n}\\n\\n.mdl-cell--top {\\n align-self: flex-start;\\n}\\n\\n.mdl-cell--middle {\\n align-self: center;\\n}\\n\\n.mdl-cell--bottom {\\n align-self: flex-end;\\n}\\n\\n.mdl-cell--stretch {\\n align-self: stretch;\\n}\\n\\n.mdl-grid.mdl-grid--no-spacing > .mdl-cell {\\n margin: 0;\\n}\\n\\n.mdl-cell--order-1 {\\n order: 1;\\n}\\n\\n.mdl-cell--order-2 {\\n order: 2;\\n}\\n\\n.mdl-cell--order-3 {\\n order: 3;\\n}\\n\\n.mdl-cell--order-4 {\\n order: 4;\\n}\\n\\n.mdl-cell--order-5 {\\n order: 5;\\n}\\n\\n.mdl-cell--order-6 {\\n order: 6;\\n}\\n\\n.mdl-cell--order-7 {\\n order: 7;\\n}\\n\\n.mdl-cell--order-8 {\\n order: 8;\\n}\\n\\n.mdl-cell--order-9 {\\n order: 9;\\n}\\n\\n.mdl-cell--order-10 {\\n order: 10;\\n}\\n\\n.mdl-cell--order-11 {\\n order: 11;\\n}\\n\\n.mdl-cell--order-12 {\\n order: 12;\\n}\\n\\n@media (max-width: 479px) {\\n .mdl-grid {\\n padding: 8px;\\n }\\n\\n .mdl-cell {\\n margin: 8px;\\n width: calc(100% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell {\\n width: 100%;\\n }\\n\\n .mdl-cell--hide-phone {\\n display: none !important;\\n }\\n\\n .mdl-cell--order-1-phone.mdl-cell--order-1-phone {\\n order: 1;\\n }\\n\\n .mdl-cell--order-2-phone.mdl-cell--order-2-phone {\\n order: 2;\\n }\\n\\n .mdl-cell--order-3-phone.mdl-cell--order-3-phone {\\n order: 3;\\n }\\n\\n .mdl-cell--order-4-phone.mdl-cell--order-4-phone {\\n order: 4;\\n }\\n\\n .mdl-cell--order-5-phone.mdl-cell--order-5-phone {\\n order: 5;\\n }\\n\\n .mdl-cell--order-6-phone.mdl-cell--order-6-phone {\\n order: 6;\\n }\\n\\n .mdl-cell--order-7-phone.mdl-cell--order-7-phone {\\n order: 7;\\n }\\n\\n .mdl-cell--order-8-phone.mdl-cell--order-8-phone {\\n order: 8;\\n }\\n\\n .mdl-cell--order-9-phone.mdl-cell--order-9-phone {\\n order: 9;\\n }\\n\\n .mdl-cell--order-10-phone.mdl-cell--order-10-phone {\\n order: 10;\\n }\\n\\n .mdl-cell--order-11-phone.mdl-cell--order-11-phone {\\n order: 11;\\n }\\n\\n .mdl-cell--order-12-phone.mdl-cell--order-12-phone {\\n order: 12;\\n }\\n\\n .mdl-cell--1-col,\\n .mdl-cell--1-col-phone.mdl-cell--1-col-phone {\\n width: calc(25% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--1-col,\\n .mdl-grid--no-spacing > .mdl-cell--1-col-phone.mdl-cell--1-col-phone {\\n width: 25%;\\n }\\n\\n .mdl-cell--2-col,\\n .mdl-cell--2-col-phone.mdl-cell--2-col-phone {\\n width: calc(50% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--2-col,\\n .mdl-grid--no-spacing > .mdl-cell--2-col-phone.mdl-cell--2-col-phone {\\n width: 50%;\\n }\\n\\n .mdl-cell--3-col,\\n .mdl-cell--3-col-phone.mdl-cell--3-col-phone {\\n width: calc(75% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--3-col,\\n .mdl-grid--no-spacing > .mdl-cell--3-col-phone.mdl-cell--3-col-phone {\\n width: 75%;\\n }\\n\\n .mdl-cell--4-col,\\n .mdl-cell--4-col-phone.mdl-cell--4-col-phone {\\n width: calc(100% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--4-col,\\n .mdl-grid--no-spacing > .mdl-cell--4-col-phone.mdl-cell--4-col-phone {\\n width: 100%;\\n }\\n\\n .mdl-cell--5-col,\\n .mdl-cell--5-col-phone.mdl-cell--5-col-phone {\\n width: calc(100% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--5-col,\\n .mdl-grid--no-spacing > .mdl-cell--5-col-phone.mdl-cell--5-col-phone {\\n width: 100%;\\n }\\n\\n .mdl-cell--6-col,\\n .mdl-cell--6-col-phone.mdl-cell--6-col-phone {\\n width: calc(100% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--6-col,\\n .mdl-grid--no-spacing > .mdl-cell--6-col-phone.mdl-cell--6-col-phone {\\n width: 100%;\\n }\\n\\n .mdl-cell--7-col,\\n .mdl-cell--7-col-phone.mdl-cell--7-col-phone {\\n width: calc(100% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--7-col,\\n .mdl-grid--no-spacing > .mdl-cell--7-col-phone.mdl-cell--7-col-phone {\\n width: 100%;\\n }\\n\\n .mdl-cell--8-col,\\n .mdl-cell--8-col-phone.mdl-cell--8-col-phone {\\n width: calc(100% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--8-col,\\n .mdl-grid--no-spacing > .mdl-cell--8-col-phone.mdl-cell--8-col-phone {\\n width: 100%;\\n }\\n\\n .mdl-cell--9-col,\\n .mdl-cell--9-col-phone.mdl-cell--9-col-phone {\\n width: calc(100% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--9-col,\\n .mdl-grid--no-spacing > .mdl-cell--9-col-phone.mdl-cell--9-col-phone {\\n width: 100%;\\n }\\n\\n .mdl-cell--10-col,\\n .mdl-cell--10-col-phone.mdl-cell--10-col-phone {\\n width: calc(100% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--10-col,\\n .mdl-grid--no-spacing > .mdl-cell--10-col-phone.mdl-cell--10-col-phone {\\n width: 100%;\\n }\\n\\n .mdl-cell--11-col,\\n .mdl-cell--11-col-phone.mdl-cell--11-col-phone {\\n width: calc(100% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--11-col,\\n .mdl-grid--no-spacing > .mdl-cell--11-col-phone.mdl-cell--11-col-phone {\\n width: 100%;\\n }\\n\\n .mdl-cell--12-col,\\n .mdl-cell--12-col-phone.mdl-cell--12-col-phone {\\n width: calc(100% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--12-col,\\n .mdl-grid--no-spacing > .mdl-cell--12-col-phone.mdl-cell--12-col-phone {\\n width: 100%;\\n }\\n\\n .mdl-cell--1-offset,\\n .mdl-cell--1-offset-phone.mdl-cell--1-offset-phone {\\n margin-left: calc(25% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--1-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--1-offset-phone.mdl-cell--1-offset-phone {\\n margin-left: 25%;\\n }\\n\\n .mdl-cell--2-offset,\\n .mdl-cell--2-offset-phone.mdl-cell--2-offset-phone {\\n margin-left: calc(50% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--2-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--2-offset-phone.mdl-cell--2-offset-phone {\\n margin-left: 50%;\\n }\\n\\n .mdl-cell--3-offset,\\n .mdl-cell--3-offset-phone.mdl-cell--3-offset-phone {\\n margin-left: calc(75% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--3-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--3-offset-phone.mdl-cell--3-offset-phone {\\n margin-left: 75%;\\n }\\n}\\n\\n@media (min-width: 480px) and (max-width: 839px) {\\n .mdl-grid {\\n padding: 8px;\\n }\\n\\n .mdl-cell {\\n margin: 8px;\\n width: calc(50% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell {\\n width: 50%;\\n }\\n\\n .mdl-cell--hide-tablet {\\n display: none !important;\\n }\\n\\n .mdl-cell--order-1-tablet.mdl-cell--order-1-tablet {\\n order: 1;\\n }\\n\\n .mdl-cell--order-2-tablet.mdl-cell--order-2-tablet {\\n order: 2;\\n }\\n\\n .mdl-cell--order-3-tablet.mdl-cell--order-3-tablet {\\n order: 3;\\n }\\n\\n .mdl-cell--order-4-tablet.mdl-cell--order-4-tablet {\\n order: 4;\\n }\\n\\n .mdl-cell--order-5-tablet.mdl-cell--order-5-tablet {\\n order: 5;\\n }\\n\\n .mdl-cell--order-6-tablet.mdl-cell--order-6-tablet {\\n order: 6;\\n }\\n\\n .mdl-cell--order-7-tablet.mdl-cell--order-7-tablet {\\n order: 7;\\n }\\n\\n .mdl-cell--order-8-tablet.mdl-cell--order-8-tablet {\\n order: 8;\\n }\\n\\n .mdl-cell--order-9-tablet.mdl-cell--order-9-tablet {\\n order: 9;\\n }\\n\\n .mdl-cell--order-10-tablet.mdl-cell--order-10-tablet {\\n order: 10;\\n }\\n\\n .mdl-cell--order-11-tablet.mdl-cell--order-11-tablet {\\n order: 11;\\n }\\n\\n .mdl-cell--order-12-tablet.mdl-cell--order-12-tablet {\\n order: 12;\\n }\\n\\n .mdl-cell--1-col,\\n .mdl-cell--1-col-tablet.mdl-cell--1-col-tablet {\\n width: calc(12.5% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--1-col,\\n .mdl-grid--no-spacing > .mdl-cell--1-col-tablet.mdl-cell--1-col-tablet {\\n width: 12.5%;\\n }\\n\\n .mdl-cell--2-col,\\n .mdl-cell--2-col-tablet.mdl-cell--2-col-tablet {\\n width: calc(25% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--2-col,\\n .mdl-grid--no-spacing > .mdl-cell--2-col-tablet.mdl-cell--2-col-tablet {\\n width: 25%;\\n }\\n\\n .mdl-cell--3-col,\\n .mdl-cell--3-col-tablet.mdl-cell--3-col-tablet {\\n width: calc(37.5% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--3-col,\\n .mdl-grid--no-spacing > .mdl-cell--3-col-tablet.mdl-cell--3-col-tablet {\\n width: 37.5%;\\n }\\n\\n .mdl-cell--4-col,\\n .mdl-cell--4-col-tablet.mdl-cell--4-col-tablet {\\n width: calc(50% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--4-col,\\n .mdl-grid--no-spacing > .mdl-cell--4-col-tablet.mdl-cell--4-col-tablet {\\n width: 50%;\\n }\\n\\n .mdl-cell--5-col,\\n .mdl-cell--5-col-tablet.mdl-cell--5-col-tablet {\\n width: calc(62.5% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--5-col,\\n .mdl-grid--no-spacing > .mdl-cell--5-col-tablet.mdl-cell--5-col-tablet {\\n width: 62.5%;\\n }\\n\\n .mdl-cell--6-col,\\n .mdl-cell--6-col-tablet.mdl-cell--6-col-tablet {\\n width: calc(75% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--6-col,\\n .mdl-grid--no-spacing > .mdl-cell--6-col-tablet.mdl-cell--6-col-tablet {\\n width: 75%;\\n }\\n\\n .mdl-cell--7-col,\\n .mdl-cell--7-col-tablet.mdl-cell--7-col-tablet {\\n width: calc(87.5% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--7-col,\\n .mdl-grid--no-spacing > .mdl-cell--7-col-tablet.mdl-cell--7-col-tablet {\\n width: 87.5%;\\n }\\n\\n .mdl-cell--8-col,\\n .mdl-cell--8-col-tablet.mdl-cell--8-col-tablet {\\n width: calc(100% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--8-col,\\n .mdl-grid--no-spacing > .mdl-cell--8-col-tablet.mdl-cell--8-col-tablet {\\n width: 100%;\\n }\\n\\n .mdl-cell--9-col,\\n .mdl-cell--9-col-tablet.mdl-cell--9-col-tablet {\\n width: calc(100% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--9-col,\\n .mdl-grid--no-spacing > .mdl-cell--9-col-tablet.mdl-cell--9-col-tablet {\\n width: 100%;\\n }\\n\\n .mdl-cell--10-col,\\n .mdl-cell--10-col-tablet.mdl-cell--10-col-tablet {\\n width: calc(100% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--10-col,\\n .mdl-grid--no-spacing > .mdl-cell--10-col-tablet.mdl-cell--10-col-tablet {\\n width: 100%;\\n }\\n\\n .mdl-cell--11-col,\\n .mdl-cell--11-col-tablet.mdl-cell--11-col-tablet {\\n width: calc(100% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--11-col,\\n .mdl-grid--no-spacing > .mdl-cell--11-col-tablet.mdl-cell--11-col-tablet {\\n width: 100%;\\n }\\n\\n .mdl-cell--12-col,\\n .mdl-cell--12-col-tablet.mdl-cell--12-col-tablet {\\n width: calc(100% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--12-col,\\n .mdl-grid--no-spacing > .mdl-cell--12-col-tablet.mdl-cell--12-col-tablet {\\n width: 100%;\\n }\\n\\n .mdl-cell--1-offset,\\n .mdl-cell--1-offset-tablet.mdl-cell--1-offset-tablet {\\n margin-left: calc(12.5% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--1-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--1-offset-tablet.mdl-cell--1-offset-tablet {\\n margin-left: 12.5%;\\n }\\n\\n .mdl-cell--2-offset,\\n .mdl-cell--2-offset-tablet.mdl-cell--2-offset-tablet {\\n margin-left: calc(25% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--2-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--2-offset-tablet.mdl-cell--2-offset-tablet {\\n margin-left: 25%;\\n }\\n\\n .mdl-cell--3-offset,\\n .mdl-cell--3-offset-tablet.mdl-cell--3-offset-tablet {\\n margin-left: calc(37.5% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--3-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--3-offset-tablet.mdl-cell--3-offset-tablet {\\n margin-left: 37.5%;\\n }\\n\\n .mdl-cell--4-offset,\\n .mdl-cell--4-offset-tablet.mdl-cell--4-offset-tablet {\\n margin-left: calc(50% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--4-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--4-offset-tablet.mdl-cell--4-offset-tablet {\\n margin-left: 50%;\\n }\\n\\n .mdl-cell--5-offset,\\n .mdl-cell--5-offset-tablet.mdl-cell--5-offset-tablet {\\n margin-left: calc(62.5% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--5-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--5-offset-tablet.mdl-cell--5-offset-tablet {\\n margin-left: 62.5%;\\n }\\n\\n .mdl-cell--6-offset,\\n .mdl-cell--6-offset-tablet.mdl-cell--6-offset-tablet {\\n margin-left: calc(75% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--6-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--6-offset-tablet.mdl-cell--6-offset-tablet {\\n margin-left: 75%;\\n }\\n\\n .mdl-cell--7-offset,\\n .mdl-cell--7-offset-tablet.mdl-cell--7-offset-tablet {\\n margin-left: calc(87.5% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--7-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--7-offset-tablet.mdl-cell--7-offset-tablet {\\n margin-left: 87.5%;\\n }\\n}\\n\\n@media (min-width: 840px) {\\n .mdl-grid {\\n padding: 8px;\\n }\\n\\n .mdl-cell {\\n margin: 8px;\\n width: calc(33.3333333333% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell {\\n width: 33.3333333333%;\\n }\\n\\n .mdl-cell--hide-desktop {\\n display: none !important;\\n }\\n\\n .mdl-cell--order-1-desktop.mdl-cell--order-1-desktop {\\n order: 1;\\n }\\n\\n .mdl-cell--order-2-desktop.mdl-cell--order-2-desktop {\\n order: 2;\\n }\\n\\n .mdl-cell--order-3-desktop.mdl-cell--order-3-desktop {\\n order: 3;\\n }\\n\\n .mdl-cell--order-4-desktop.mdl-cell--order-4-desktop {\\n order: 4;\\n }\\n\\n .mdl-cell--order-5-desktop.mdl-cell--order-5-desktop {\\n order: 5;\\n }\\n\\n .mdl-cell--order-6-desktop.mdl-cell--order-6-desktop {\\n order: 6;\\n }\\n\\n .mdl-cell--order-7-desktop.mdl-cell--order-7-desktop {\\n order: 7;\\n }\\n\\n .mdl-cell--order-8-desktop.mdl-cell--order-8-desktop {\\n order: 8;\\n }\\n\\n .mdl-cell--order-9-desktop.mdl-cell--order-9-desktop {\\n order: 9;\\n }\\n\\n .mdl-cell--order-10-desktop.mdl-cell--order-10-desktop {\\n order: 10;\\n }\\n\\n .mdl-cell--order-11-desktop.mdl-cell--order-11-desktop {\\n order: 11;\\n }\\n\\n .mdl-cell--order-12-desktop.mdl-cell--order-12-desktop {\\n order: 12;\\n }\\n\\n .mdl-cell--1-col,\\n .mdl-cell--1-col-desktop.mdl-cell--1-col-desktop {\\n width: calc(8.3333333333% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--1-col,\\n .mdl-grid--no-spacing > .mdl-cell--1-col-desktop.mdl-cell--1-col-desktop {\\n width: 8.3333333333%;\\n }\\n\\n .mdl-cell--2-col,\\n .mdl-cell--2-col-desktop.mdl-cell--2-col-desktop {\\n width: calc(16.6666666667% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--2-col,\\n .mdl-grid--no-spacing > .mdl-cell--2-col-desktop.mdl-cell--2-col-desktop {\\n width: 16.6666666667%;\\n }\\n\\n .mdl-cell--3-col,\\n .mdl-cell--3-col-desktop.mdl-cell--3-col-desktop {\\n width: calc(25% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--3-col,\\n .mdl-grid--no-spacing > .mdl-cell--3-col-desktop.mdl-cell--3-col-desktop {\\n width: 25%;\\n }\\n\\n .mdl-cell--4-col,\\n .mdl-cell--4-col-desktop.mdl-cell--4-col-desktop {\\n width: calc(33.3333333333% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--4-col,\\n .mdl-grid--no-spacing > .mdl-cell--4-col-desktop.mdl-cell--4-col-desktop {\\n width: 33.3333333333%;\\n }\\n\\n .mdl-cell--5-col,\\n .mdl-cell--5-col-desktop.mdl-cell--5-col-desktop {\\n width: calc(41.6666666667% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--5-col,\\n .mdl-grid--no-spacing > .mdl-cell--5-col-desktop.mdl-cell--5-col-desktop {\\n width: 41.6666666667%;\\n }\\n\\n .mdl-cell--6-col,\\n .mdl-cell--6-col-desktop.mdl-cell--6-col-desktop {\\n width: calc(50% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--6-col,\\n .mdl-grid--no-spacing > .mdl-cell--6-col-desktop.mdl-cell--6-col-desktop {\\n width: 50%;\\n }\\n\\n .mdl-cell--7-col,\\n .mdl-cell--7-col-desktop.mdl-cell--7-col-desktop {\\n width: calc(58.3333333333% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--7-col,\\n .mdl-grid--no-spacing > .mdl-cell--7-col-desktop.mdl-cell--7-col-desktop {\\n width: 58.3333333333%;\\n }\\n\\n .mdl-cell--8-col,\\n .mdl-cell--8-col-desktop.mdl-cell--8-col-desktop {\\n width: calc(66.6666666667% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--8-col,\\n .mdl-grid--no-spacing > .mdl-cell--8-col-desktop.mdl-cell--8-col-desktop {\\n width: 66.6666666667%;\\n }\\n\\n .mdl-cell--9-col,\\n .mdl-cell--9-col-desktop.mdl-cell--9-col-desktop {\\n width: calc(75% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--9-col,\\n .mdl-grid--no-spacing > .mdl-cell--9-col-desktop.mdl-cell--9-col-desktop {\\n width: 75%;\\n }\\n\\n .mdl-cell--10-col,\\n .mdl-cell--10-col-desktop.mdl-cell--10-col-desktop {\\n width: calc(83.3333333333% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--10-col,\\n .mdl-grid--no-spacing > .mdl-cell--10-col-desktop.mdl-cell--10-col-desktop {\\n width: 83.3333333333%;\\n }\\n\\n .mdl-cell--11-col,\\n .mdl-cell--11-col-desktop.mdl-cell--11-col-desktop {\\n width: calc(91.6666666667% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--11-col,\\n .mdl-grid--no-spacing > .mdl-cell--11-col-desktop.mdl-cell--11-col-desktop {\\n width: 91.6666666667%;\\n }\\n\\n .mdl-cell--12-col,\\n .mdl-cell--12-col-desktop.mdl-cell--12-col-desktop {\\n width: calc(100% - 16px);\\n }\\n\\n .mdl-grid--no-spacing > .mdl-cell--12-col,\\n .mdl-grid--no-spacing > .mdl-cell--12-col-desktop.mdl-cell--12-col-desktop {\\n width: 100%;\\n }\\n\\n .mdl-cell--1-offset,\\n .mdl-cell--1-offset-desktop.mdl-cell--1-offset-desktop {\\n margin-left: calc(8.3333333333% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--1-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--1-offset-desktop.mdl-cell--1-offset-desktop {\\n margin-left: 8.3333333333%;\\n }\\n\\n .mdl-cell--2-offset,\\n .mdl-cell--2-offset-desktop.mdl-cell--2-offset-desktop {\\n margin-left: calc(16.6666666667% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--2-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--2-offset-desktop.mdl-cell--2-offset-desktop {\\n margin-left: 16.6666666667%;\\n }\\n\\n .mdl-cell--3-offset,\\n .mdl-cell--3-offset-desktop.mdl-cell--3-offset-desktop {\\n margin-left: calc(25% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--3-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--3-offset-desktop.mdl-cell--3-offset-desktop {\\n margin-left: 25%;\\n }\\n\\n .mdl-cell--4-offset,\\n .mdl-cell--4-offset-desktop.mdl-cell--4-offset-desktop {\\n margin-left: calc(33.3333333333% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--4-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--4-offset-desktop.mdl-cell--4-offset-desktop {\\n margin-left: 33.3333333333%;\\n }\\n\\n .mdl-cell--5-offset,\\n .mdl-cell--5-offset-desktop.mdl-cell--5-offset-desktop {\\n margin-left: calc(41.6666666667% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--5-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--5-offset-desktop.mdl-cell--5-offset-desktop {\\n margin-left: 41.6666666667%;\\n }\\n\\n .mdl-cell--6-offset,\\n .mdl-cell--6-offset-desktop.mdl-cell--6-offset-desktop {\\n margin-left: calc(50% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--6-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--6-offset-desktop.mdl-cell--6-offset-desktop {\\n margin-left: 50%;\\n }\\n\\n .mdl-cell--7-offset,\\n .mdl-cell--7-offset-desktop.mdl-cell--7-offset-desktop {\\n margin-left: calc(58.3333333333% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--7-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--7-offset-desktop.mdl-cell--7-offset-desktop {\\n margin-left: 58.3333333333%;\\n }\\n\\n .mdl-cell--8-offset,\\n .mdl-cell--8-offset-desktop.mdl-cell--8-offset-desktop {\\n margin-left: calc(66.6666666667% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--8-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--8-offset-desktop.mdl-cell--8-offset-desktop {\\n margin-left: 66.6666666667%;\\n }\\n\\n .mdl-cell--9-offset,\\n .mdl-cell--9-offset-desktop.mdl-cell--9-offset-desktop {\\n margin-left: calc(75% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--9-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--9-offset-desktop.mdl-cell--9-offset-desktop {\\n margin-left: 75%;\\n }\\n\\n .mdl-cell--10-offset,\\n .mdl-cell--10-offset-desktop.mdl-cell--10-offset-desktop {\\n margin-left: calc(83.3333333333% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--10-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--10-offset-desktop.mdl-cell--10-offset-desktop {\\n margin-left: 83.3333333333%;\\n }\\n\\n .mdl-cell--11-offset,\\n .mdl-cell--11-offset-desktop.mdl-cell--11-offset-desktop {\\n margin-left: calc(91.6666666667% + 8px);\\n }\\n\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--11-offset,\\n .mdl-grid.mdl-grid--no-spacing > .mdl-cell--11-offset-desktop.mdl-cell--11-offset-desktop {\\n margin-left: 91.6666666667%;\\n }\\n}\\n\\n@font-face {\\n font-family: \\\"Material Icons\\\";\\n font-style: normal;\\n font-weight: 400;\\n src: url(\" + escape(require(\"./../../../../../node_modules/material-design-icons-iconfont/dist/fonts/MaterialIcons-Regular.eot\")) + \");\\n /* For IE6-8 */\\n src: local(\\\"Material Icons\\\"), local(\\\"MaterialIcons-Regular\\\"), url(\" + escape(require(\"./../../../../../node_modules/material-design-icons-iconfont/dist/fonts/MaterialIcons-Regular.woff2\")) + \") format(\\\"woff2\\\"), url(\" + escape(require(\"./../../../../../node_modules/material-design-icons-iconfont/dist/fonts/MaterialIcons-Regular.woff\")) + \") format(\\\"woff\\\"), url(\" + escape(require(\"./../../../../../node_modules/material-design-icons-iconfont/dist/fonts/MaterialIcons-Regular.ttf\")) + \") format(\\\"truetype\\\");\\n}\\n\\n.material-icons {\\n font-family: \\\"Material Icons\\\";\\n font-weight: normal;\\n font-style: normal;\\n font-size: 24px;\\n /* Preferred icon size */\\n display: inline-block;\\n line-height: 1;\\n text-transform: none;\\n letter-spacing: normal;\\n word-wrap: normal;\\n white-space: nowrap;\\n direction: ltr;\\n /* Support for all WebKit browsers. */\\n -webkit-font-smoothing: antialiased;\\n /* Support for Safari and Chrome. */\\n text-rendering: optimizeLegibility;\\n /* Support for Firefox. */\\n -moz-osx-font-smoothing: grayscale;\\n /* Support for IE. */\\n font-feature-settings: \\\"liga\\\";\\n}\\n\\n/* BEGIN Regular */\\n\\n@font-face {\\n font-family: \\\"Open Sans\\\";\\n src: url(\" + escape(require(\"./../../../../../node_modules/open-sans-fontface/fonts/Regular/OpenSans-Regular.eot\")) + \");\\n src: url(\" + escape(require(\"./../../../../../node_modules/open-sans-fontface/fonts/Regular/OpenSans-Regular.eot\")) + \") format(\\\"embedded-opentype\\\"), url(\" + escape(require(\"./../../../../../node_modules/open-sans-fontface/fonts/Regular/OpenSans-Regular.woff\")) + \") format(\\\"woff\\\"), url(\" + escape(require(\"./../../../../../node_modules/open-sans-fontface/fonts/Regular/OpenSans-Regular.ttf\")) + \") format(\\\"truetype\\\"), url(\" + escape(require(\"./../../../../../node_modules/open-sans-fontface/fonts/Regular/OpenSans-Regular.svg\")) + \") format(\\\"svg\\\");\\n font-weight: normal;\\n font-style: normal;\\n}\\n\\n/* END Regular */\\n\\n/* source-sans-pro-cyrillic-ext-400-normal*/\\n\\n@font-face {\\n font-family: \\\"Source Sans Pro\\\";\\n font-style: normal;\\n font-display: swap;\\n font-weight: 400;\\n src: url(\" + escape(require(\"./../../../../../node_modules/@fontsource/source-sans-pro/files/source-sans-pro-cyrillic-ext-400-normal.woff2\")) + \") format(\\\"woff2\\\"), url(\" + escape(require(\"./../../../../../node_modules/@fontsource/source-sans-pro/files/source-sans-pro-all-400-normal.woff\")) + \") format(\\\"woff\\\");\\n unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\\n}\\n\\n/* source-sans-pro-cyrillic-400-normal*/\\n\\n@font-face {\\n font-family: \\\"Source Sans Pro\\\";\\n font-style: normal;\\n font-display: swap;\\n font-weight: 400;\\n src: url(\" + escape(require(\"./../../../../../node_modules/@fontsource/source-sans-pro/files/source-sans-pro-cyrillic-400-normal.woff2\")) + \") format(\\\"woff2\\\"), url(\" + escape(require(\"./../../../../../node_modules/@fontsource/source-sans-pro/files/source-sans-pro-all-400-normal.woff\")) + \") format(\\\"woff\\\");\\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\\n}\\n\\n/* source-sans-pro-greek-ext-400-normal*/\\n\\n@font-face {\\n font-family: \\\"Source Sans Pro\\\";\\n font-style: normal;\\n font-display: swap;\\n font-weight: 400;\\n src: url(\" + escape(require(\"./../../../../../node_modules/@fontsource/source-sans-pro/files/source-sans-pro-greek-ext-400-normal.woff2\")) + \") format(\\\"woff2\\\"), url(\" + escape(require(\"./../../../../../node_modules/@fontsource/source-sans-pro/files/source-sans-pro-all-400-normal.woff\")) + \") format(\\\"woff\\\");\\n unicode-range: U+1F00-1FFF;\\n}\\n\\n/* source-sans-pro-greek-400-normal*/\\n\\n@font-face {\\n font-family: \\\"Source Sans Pro\\\";\\n font-style: normal;\\n font-display: swap;\\n font-weight: 400;\\n src: url(\" + escape(require(\"./../../../../../node_modules/@fontsource/source-sans-pro/files/source-sans-pro-greek-400-normal.woff2\")) + \") format(\\\"woff2\\\"), url(\" + escape(require(\"./../../../../../node_modules/@fontsource/source-sans-pro/files/source-sans-pro-all-400-normal.woff\")) + \") format(\\\"woff\\\");\\n unicode-range: U+0370-03FF;\\n}\\n\\n/* source-sans-pro-vietnamese-400-normal*/\\n\\n@font-face {\\n font-family: \\\"Source Sans Pro\\\";\\n font-style: normal;\\n font-display: swap;\\n font-weight: 400;\\n src: url(\" + escape(require(\"./../../../../../node_modules/@fontsource/source-sans-pro/files/source-sans-pro-vietnamese-400-normal.woff2\")) + \") format(\\\"woff2\\\"), url(\" + escape(require(\"./../../../../../node_modules/@fontsource/source-sans-pro/files/source-sans-pro-all-400-normal.woff\")) + \") format(\\\"woff\\\");\\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;\\n}\\n\\n/* source-sans-pro-latin-ext-400-normal*/\\n\\n@font-face {\\n font-family: \\\"Source Sans Pro\\\";\\n font-style: normal;\\n font-display: swap;\\n font-weight: 400;\\n src: url(\" + escape(require(\"./../../../../../node_modules/@fontsource/source-sans-pro/files/source-sans-pro-latin-ext-400-normal.woff2\")) + \") format(\\\"woff2\\\"), url(\" + escape(require(\"./../../../../../node_modules/@fontsource/source-sans-pro/files/source-sans-pro-all-400-normal.woff\")) + \") format(\\\"woff\\\");\\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\\n}\\n\\n/* source-sans-pro-latin-400-normal*/\\n\\n@font-face {\\n font-family: \\\"Source Sans Pro\\\";\\n font-style: normal;\\n font-display: swap;\\n font-weight: 400;\\n src: url(\" + escape(require(\"./../../../../../node_modules/@fontsource/source-sans-pro/files/source-sans-pro-latin-400-normal.woff2\")) + \") format(\\\"woff2\\\"), url(\" + escape(require(\"./../../../../../node_modules/@fontsource/source-sans-pro/files/source-sans-pro-all-400-normal.woff\")) + \") format(\\\"woff\\\");\\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\\n}\\n\\nag-grid,\\nag-grid-angular,\\nag-grid-ng2,\\nag-grid-polymer,\\nag-grid-aurelia {\\n display: block;\\n}\\n\\n.ag-rtl {\\n direction: rtl;\\n}\\n\\n.ag-ltr {\\n direction: ltr;\\n}\\n\\n.ag-select-agg-func-popup {\\n position: absolute;\\n}\\n\\n.ag-body-no-select {\\n user-select: none;\\n}\\n\\n.ag-root-wrapper {\\n position: relative;\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.ag-root-wrapper.ag-layout-normal {\\n height: 100%;\\n}\\n\\n.ag-root-wrapper-body {\\n display: flex;\\n flex-direction: row;\\n}\\n\\n.ag-root-wrapper-body.ag-layout-normal {\\n flex-grow: 1;\\n height: 0px;\\n min-height: 0px;\\n}\\n\\n.ag-root {\\n box-sizing: border-box;\\n position: relative;\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.ag-root.ag-layout-normal,\\n.ag-root.ag-layout-auto-height {\\n overflow: hidden;\\n width: 0px;\\n min-width: 0px;\\n flex: 1;\\n}\\n\\n.ag-root.ag-layout-normal {\\n height: 100%;\\n}\\n\\n.ag-font-style {\\n cursor: default;\\n user-select: none;\\n}\\n\\n.ag-popup-backdrop {\\n height: 100%;\\n left: 0;\\n position: fixed;\\n top: 0;\\n width: 100%;\\n}\\n\\n.ag-header {\\n box-sizing: border-box;\\n white-space: nowrap;\\n width: 100%;\\n display: flex;\\n}\\n\\n.ag-pinned-left-header {\\n box-sizing: border-box;\\n display: inline-block;\\n height: 100%;\\n overflow: hidden;\\n}\\n\\n.ag-pinned-right-header {\\n box-sizing: border-box;\\n display: inline-block;\\n height: 100%;\\n overflow: hidden;\\n}\\n\\n.ag-header-viewport {\\n box-sizing: border-box;\\n height: 100%;\\n overflow: hidden;\\n width: 0px;\\n min-width: 0px;\\n flex: 1;\\n}\\n\\n.ag-header-row {\\n position: absolute;\\n}\\n\\n.ag-header-container {\\n box-sizing: border-box;\\n height: 100%;\\n position: relative;\\n white-space: nowrap;\\n}\\n\\n.ag-header-overlay {\\n display: block;\\n position: absolute;\\n}\\n\\n.ag-header-cell {\\n box-sizing: border-box;\\n display: inline-block;\\n height: 100%;\\n position: absolute;\\n vertical-align: bottom;\\n}\\n\\n.ag-floating-filter {\\n box-sizing: border-box;\\n display: inline-block;\\n position: absolute;\\n}\\n\\n.ag-floating-filter-body {\\n height: 20px;\\n margin-right: 25px;\\n}\\n\\n.ag-floating-filter-full-body {\\n height: 20px;\\n width: 100%;\\n}\\n\\n.ag-floating-filter-input {\\n width: 100%;\\n}\\n\\n.ag-floating-filter-input:read-only {\\n background-color: #eee;\\n}\\n\\n.ag-floating-filter-menu {\\n position: absolute;\\n user-select: none;\\n}\\n\\n.ag-dnd-ghost {\\n background: #e5e5e5;\\n border: 1px solid black;\\n box-sizing: border-box;\\n cursor: move;\\n font-family: \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\n font-size: 14px;\\n line-height: 1.4;\\n overflow: hidden;\\n padding: 3px;\\n position: absolute;\\n text-overflow: ellipsis;\\n user-select: none;\\n}\\n\\n.ag-dnd-ghost-icon {\\n display: inline-block;\\n float: left;\\n padding: 2px;\\n}\\n\\n.ag-dnd-ghost-label {\\n display: inline-block;\\n}\\n\\n.ag-header-group-cell {\\n box-sizing: border-box;\\n display: inline-block;\\n height: 100%;\\n overflow: hidden;\\n position: absolute;\\n text-overflow: ellipsis;\\n}\\n\\n.ag-header-group-cell-label {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: flex;\\n}\\n\\n.ag-header-cell-label {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n}\\n\\n.ag-header-cell-resize {\\n position: absolute;\\n z-index: 4;\\n cursor: col-resize;\\n height: 100%;\\n width: 4px;\\n}\\n\\n.ag-ltr .ag-header-cell-resize {\\n right: -4px;\\n}\\n\\n.ag-ltr .ag-pinned-right-header .ag-header-cell-resize {\\n left: -4px;\\n}\\n\\n.ag-rtl .ag-header-cell-resize {\\n left: -4px;\\n}\\n\\n.ag-rtl .ag-pinned-left-header .ag-header-cell-resize {\\n right: -4px;\\n}\\n\\n.ag-ltr .ag-header-select-all {\\n float: left;\\n}\\n\\n.ag-rtl .ag-header-select-all {\\n float: right;\\n}\\n\\n.ag-header-expand-icon {\\n padding-left: 4px;\\n}\\n\\n.ag-header-cell-menu-button {\\n float: right;\\n}\\n\\n.ag-overlay {\\n height: 100%;\\n left: 0;\\n pointer-events: none;\\n position: absolute;\\n top: 0;\\n width: 100%;\\n}\\n\\n.ag-overlay-panel {\\n display: table;\\n height: 100%;\\n pointer-events: none;\\n width: 100%;\\n}\\n\\n.ag-overlay-wrapper {\\n display: table-cell;\\n text-align: center;\\n vertical-align: middle;\\n}\\n\\n.ag-primary-cols-header-panel .ag-column-name-filter {\\n flex-grow: 1;\\n flex-shrink: 1;\\n}\\n\\n.ag-primary-cols-header-panel .ag-primary-cols-filter-wrapper {\\n width: 100%;\\n}\\n\\n.ag-tool-panel-wrapper {\\n display: flex;\\n overflow-y: auto;\\n}\\n\\n.ag-column-panel {\\n display: flex;\\n min-height: 400px;\\n flex-direction: column;\\n flex-grow: 1;\\n overflow-x: hidden;\\n max-height: 100vh;\\n}\\n\\n.ag-body-container.ag-layout-auto-height {\\n min-height: 50px;\\n}\\n\\n.ag-overlay-no-rows-wrapper.ag-layout-auto-height {\\n padding-top: 30px;\\n}\\n\\n.ag-body {\\n box-sizing: border-box;\\n position: relative;\\n display: flex;\\n}\\n\\n.ag-body.ag-layout-normal {\\n flex: 1;\\n height: 0px;\\n min-height: 0px;\\n}\\n\\n.ag-rtl .ag-body {\\n flex-direction: row-reverse;\\n}\\n\\n.ag-ltr .ag-body {\\n flex-direction: row;\\n}\\n\\n.ag-rtl .ag-floating-top {\\n flex-direction: row-reverse;\\n}\\n\\n.ag-ltr .ag-floating-top {\\n flex-direction: row;\\n}\\n\\n.ag-rtl .ag-floating-bottom {\\n flex-direction: row-reverse;\\n}\\n\\n.ag-ltr .ag-floating-bottom {\\n flex-direction: row;\\n}\\n\\n.ag-ltr .ag-header {\\n flex-direction: row;\\n}\\n\\n.ag-rtl .ag-header {\\n flex-direction: row-reverse;\\n}\\n\\n.ag-floating-top {\\n box-sizing: border-box;\\n overflow: hidden;\\n white-space: nowrap;\\n width: 100%;\\n position: relative;\\n display: flex;\\n}\\n\\n.ag-pinned-left-floating-top {\\n box-sizing: border-box;\\n display: inline-block;\\n overflow: hidden;\\n position: relative;\\n min-width: 0px;\\n width: 0px;\\n flex-grow: 1000;\\n}\\n\\n.ag-pinned-right-floating-top {\\n box-sizing: border-box;\\n display: inline-block;\\n overflow: hidden;\\n position: relative;\\n min-width: 0px;\\n width: 0px;\\n flex-grow: 1000;\\n}\\n\\n.ag-floating-top-viewport {\\n box-sizing: border-box;\\n overflow: hidden;\\n width: 0px;\\n min-width: 0px;\\n flex: 1;\\n}\\n\\n.ag-floating-top-viewport.ag-layout-normal {\\n height: 100%;\\n}\\n\\n.ag-floating-top-container {\\n box-sizing: border-box;\\n position: relative;\\n white-space: nowrap;\\n}\\n\\n.ag-floating-bottom {\\n box-sizing: border-box;\\n overflow: hidden;\\n white-space: nowrap;\\n width: 100%;\\n position: relative;\\n display: flex;\\n}\\n\\n.ag-pinned-left-floating-bottom {\\n box-sizing: border-box;\\n display: inline-block;\\n overflow: hidden;\\n position: relative;\\n min-width: 0px;\\n width: 0px;\\n flex-grow: 1000;\\n}\\n\\n.ag-pinned-right-floating-bottom {\\n box-sizing: border-box;\\n display: inline-block;\\n overflow: hidden;\\n position: relative;\\n min-width: 0px;\\n width: 0px;\\n flex-grow: 1000;\\n}\\n\\n.ag-floating-bottom-viewport {\\n box-sizing: border-box;\\n overflow: hidden;\\n flex: 1;\\n width: 0px;\\n min-width: 0px;\\n}\\n\\n.ag-floating-bottom-container {\\n box-sizing: border-box;\\n position: relative;\\n white-space: nowrap;\\n}\\n\\n.ag-pinned-right-cols-viewport-wrapper {\\n height: 100%;\\n overflow: hidden;\\n flex-grow: 1000;\\n min-width: 0px;\\n width: 0px;\\n}\\n\\n.ag-pinned-right-cols-viewport {\\n height: 100%;\\n overflow-x: hidden;\\n overflow-y: auto;\\n}\\n\\n.ag-pinned-right-cols-container {\\n display: block;\\n position: relative;\\n}\\n\\n.ag-pinned-left-cols-viewport-wrapper {\\n height: 100%;\\n overflow: hidden;\\n flex-grow: 1000;\\n min-width: 0px;\\n width: 0px;\\n}\\n\\n.ag-pinned-left-cols-viewport {\\n height: 100%;\\n overflow-x: hidden;\\n overflow-y: auto;\\n}\\n\\n.ag-pinned-left-cols-container {\\n display: block;\\n position: relative;\\n}\\n\\n.ag-body-viewport-wrapper {\\n overflow: hidden;\\n}\\n\\n.ag-body-viewport-wrapper.ag-layout-auto-height,\\n.ag-body-viewport-wrapper.ag-layout-normal {\\n height: 100%;\\n width: 20px;\\n min-width: 20px;\\n flex: 1;\\n}\\n\\n.ag-body-viewport.ag-layout-auto-height {\\n overflow-x: auto;\\n overflow-y: hidden;\\n}\\n\\n.ag-body-viewport.ag-layout-normal {\\n overflow-x: auto;\\n overflow-y: auto;\\n height: 100%;\\n}\\n\\n.ag-full-width-viewport-wrapper {\\n height: 100%;\\n width: 100%;\\n display: inline-block;\\n pointer-events: none;\\n overflow: hidden;\\n position: absolute;\\n top: 0px;\\n left: 0px;\\n box-sizing: border-box;\\n}\\n\\n.ag-full-width-viewport {\\n box-sizing: border-box;\\n height: 100%;\\n pointer-events: none;\\n overflow-x: hidden;\\n overflow-y: auto;\\n}\\n\\n.ag-full-width-container {\\n overflow: hidden;\\n position: relative;\\n width: 100%;\\n}\\n\\n.ag-floating-bottom-full-width-container {\\n display: inline;\\n left: 0;\\n overflow: hidden;\\n pointer-events: none;\\n position: absolute;\\n top: 0;\\n}\\n\\n.ag-floating-top-full-width-container {\\n display: inline;\\n left: 0;\\n overflow: hidden;\\n pointer-events: none;\\n position: absolute;\\n top: 0;\\n}\\n\\n.ag-full-width-row {\\n overflow: hidden;\\n pointer-events: all;\\n}\\n\\n.ag-body-container {\\n position: relative;\\n}\\n\\n.ag-body-container:not(.ag-layout-print) {\\n display: block;\\n}\\n\\n.ag-row-animation .ag-row {\\n transition: transform 0.4s, top 0.4s, height 0.4s, background-color 0.1s, opacity 0.2s;\\n}\\n\\n.ag-row-no-animation .ag-row {\\n transition: background-color 0.1s;\\n}\\n\\n.ag-row {\\n box-sizing: border-box;\\n white-space: nowrap;\\n width: 100%;\\n}\\n\\n.ag-row-position-absolute {\\n position: absolute;\\n}\\n\\n.ag-row-position-relative {\\n position: relative;\\n}\\n\\n.ag-column-moving .ag-cell {\\n transition: left 0.2s;\\n}\\n\\n.ag-column-moving .ag-header-cell {\\n transition: left 0.2s;\\n}\\n\\n.ag-column-moving .ag-header-group-cell {\\n transition: left 0.2s, width 0.2s;\\n}\\n\\n.ag-column-drop {\\n box-sizing: border-box;\\n width: 100%;\\n}\\n\\n.ag-column-drop-vertical {\\n display: flex;\\n flex-direction: column;\\n flex-grow: 1;\\n height: 50px;\\n overflow: hidden;\\n}\\n\\n.ag-column-drop-vertical .ag-column-drop-list {\\n flex-grow: 1;\\n height: 20px;\\n overflow-x: auto;\\n}\\n\\n.ag-column-drop-vertical .ag-column-drop-cell {\\n display: flex;\\n}\\n\\n.ag-column-drop-vertical .ag-column-drop-cell .ag-column-drop-cell-text {\\n overflow: hidden;\\n flex: 1;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n\\n.ag-column-drop-vertical .ag-column-drop-empty-message {\\n display: block;\\n}\\n\\n.ag-column-drop-vertical .ag-column-drop-cell-button {\\n line-height: 16px;\\n}\\n\\n.ag-ltr .ag-column-drop-vertical .ag-column-drop-cell-button {\\n float: right;\\n}\\n\\n.ag-rtl .ag-column-drop-vertical .ag-column-drop-cell-button {\\n float: left;\\n}\\n\\n.ag-column-drop-horizontal {\\n white-space: nowrap;\\n overflow: hidden;\\n}\\n\\n.ag-column-drop-horizontal .ag-column-drop-cell {\\n display: inline-block;\\n}\\n\\n.ag-column-drop-horizontal .ag-column-drop-empty-message {\\n display: inline-block;\\n}\\n\\n.ag-column-drop-horizontal .ag-column-drop-list {\\n height: 100%;\\n}\\n\\n.ag-cell {\\n box-sizing: border-box;\\n display: inline-block;\\n overflow: hidden;\\n position: absolute;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n\\n.ag-cell-with-height {\\n height: 100%;\\n}\\n\\n.ag-value-slide-out {\\n margin-right: 5px;\\n opacity: 1;\\n transition: opacity 3s, margin-right 3s;\\n transition-timing-function: linear;\\n}\\n\\n.ag-value-slide-out-end {\\n margin-right: 10px;\\n opacity: 0;\\n}\\n\\n.ag-opacity-zero {\\n opacity: 0;\\n}\\n\\n.ag-cell-edit-input {\\n height: 100%;\\n width: 100%;\\n}\\n\\n.ag-group-cell-entire-row {\\n box-sizing: border-box;\\n display: inline-block;\\n height: 100%;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n width: 100%;\\n}\\n\\n.ag-footer-cell-entire-row {\\n box-sizing: border-box;\\n display: inline-block;\\n height: 100%;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n width: 100%;\\n}\\n\\n.ag-popup-editor {\\n position: absolute;\\n user-select: none;\\n}\\n\\n.ag-menu {\\n max-height: 100%;\\n overflow-y: auto;\\n position: absolute;\\n user-select: none;\\n}\\n\\n.ag-menu-column-select-wrapper {\\n height: 265px;\\n overflow: auto;\\n width: 200px;\\n}\\n\\n.ag-menu-list {\\n border-collapse: collapse;\\n display: table;\\n}\\n\\n.ag-menu-option {\\n display: table-row;\\n}\\n\\n.ag-menu-option-text {\\n display: table-cell;\\n white-space: nowrap;\\n}\\n\\n.ag-menu-option-shortcut {\\n display: table-cell;\\n}\\n\\n.ag-menu-option-icon {\\n display: table-cell;\\n}\\n\\n.ag-menu-option-popup-pointer {\\n display: table-cell;\\n}\\n\\n.ag-menu-separator {\\n display: table-row;\\n}\\n\\n.ag-menu-separator-cell {\\n display: table-cell;\\n}\\n\\n.ag-virtual-list-viewport {\\n height: 100%;\\n overflow-x: auto;\\n width: 100%;\\n}\\n\\n.ag-virtual-list-container {\\n overflow: hidden;\\n position: relative;\\n}\\n\\n.ag-rich-select {\\n cursor: default;\\n outline: none;\\n}\\n\\n.ag-rich-select-row {\\n white-space: nowrap;\\n}\\n\\n.ag-rich-select-list {\\n height: 200px;\\n width: 200px;\\n}\\n\\n.ag-set-filter-list {\\n height: 200px;\\n width: 200px;\\n}\\n\\n.ag-set-filter-item {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n\\n.ag-virtual-list-item {\\n position: absolute;\\n width: 100%;\\n}\\n\\n.ag-virtual-list-item span:empty:not(.ag-icon) {\\n border-left: 1px solid transparent;\\n}\\n\\n.ag-filter-filter {\\n box-sizing: border-box;\\n width: 100%;\\n}\\n\\n.ag-filter .ag-filter-checkbox {\\n pointer-events: none;\\n}\\n\\n.ag-floating-filter-body input {\\n height: 19px;\\n margin: 0;\\n width: 100%;\\n}\\n\\n.ag-floating-filter-full-body input {\\n height: 19px;\\n margin: 0;\\n width: 100%;\\n}\\n\\n.ag-filter-select {\\n margin: 4px 4px 0 4px;\\n width: 110px;\\n}\\n\\n.ag-list-selection {\\n cursor: default;\\n user-select: none;\\n}\\n\\n.ag-tool-panel-wrapper {\\n box-sizing: border-box;\\n cursor: default;\\n user-select: none;\\n width: 200px;\\n}\\n\\n.ag-primary-cols-list-panel {\\n flex-grow: 1;\\n height: 50px;\\n overflow: auto;\\n}\\n\\n.ag-column-select-indent {\\n display: inline-block;\\n}\\n\\n.ag-ltr .ag-column-tool-panel-column {\\n margin-left: 16px;\\n}\\n\\n.ag-rtl .ag-column-tool-panel-column {\\n margin-right: 16px;\\n}\\n\\n.ag-column-tool-panel-column,\\n.ag-column-tool-panel-column-group {\\n align-items: stretch;\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n\\n.ag-column-tool-panel-column .ag-column-tool-panel-column,\\n.ag-column-tool-panel-column .ag-column-tool-panel-column-group,\\n.ag-column-tool-panel-column-group .ag-column-tool-panel-column,\\n.ag-column-tool-panel-column-group .ag-column-tool-panel-column-group {\\n flex-grow: 1;\\n flex-shrink: 1;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n}\\n\\n.ag-column-tool-panel-column .ag-column-drag,\\n.ag-column-tool-panel-column-group .ag-column-drag {\\n min-width: 16px;\\n flex-grow: 0;\\n flex-shrink: 0;\\n}\\n\\n.ag-column-select-panel {\\n display: flex;\\n flex-direction: column;\\n overflow: hidden;\\n}\\n\\n.ag-side-bar .ag-column-select-panel {\\n flex-grow: 4;\\n}\\n\\n.ag-tool-panel-horizontal-resize {\\n cursor: col-resize;\\n height: 100%;\\n position: absolute;\\n top: 0;\\n width: 5px;\\n z-index: 1;\\n}\\n\\n.ag-rtl .ag-tool-panel-horizontal-resize {\\n float: right;\\n transform: translateX(3px);\\n}\\n\\n.ag-ltr .ag-tool-panel-horizontal-resize {\\n float: left;\\n transform: translateX(-3px);\\n}\\n\\n.ag-menu-column-select-wrapper .ag-column-select-panel {\\n height: 100%;\\n}\\n\\n.ag-hidden {\\n display: none !important;\\n}\\n\\n.ag-visibility-hidden {\\n visibility: hidden !important;\\n}\\n\\n.ag-faded {\\n opacity: 0.3;\\n}\\n\\n.ag-width-half {\\n display: inline-block;\\n width: 50%;\\n}\\n\\n.ag-shake-left-to-right {\\n animation-direction: alternate;\\n animation-duration: 0.2s;\\n animation-iteration-count: infinite;\\n animation-name: ag-shake-left-to-right;\\n}\\n\\n@keyframes ag-shake-left-to-right {\\n from {\\n padding-left: 6px;\\n padding-right: 2px;\\n }\\n\\n to {\\n padding-left: 2px;\\n padding-right: 6px;\\n }\\n}\\n\\n/* icons are used outside of the grid root (in the ghost) */\\n\\n.ag-icon-aggregation {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/aggregation.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-arrows {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/arrows.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-asc {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/asc.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-checkbox-checked-readonly {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/checkbox-checked-readonly.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-checkbox-checked {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/checkbox-checked.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-checkbox-indeterminate-readonly {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/checkbox-indeterminate-readonly.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-checkbox-indeterminate {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/checkbox-indeterminate.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-checkbox-unchecked-readonly {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/checkbox-unchecked-readonly.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-checkbox-unchecked {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/checkbox-unchecked.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-column {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/column.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-columns {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/columns.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-contracted {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/contracted.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-copy {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/copy.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-cut {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/cut.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-desc {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/desc.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-expanded {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/expanded.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-eye-slash {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/eye-slash.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-eye {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/eye.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-filter {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/filter.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-group {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/group.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-indeterminate {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/indeterminate.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-left {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/left.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-loading {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/loading.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-menu {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/menu.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-minus {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/minus.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-none {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/none.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-not-allowed {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/not-allowed.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-paste {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/paste.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-pin {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/pin.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-pivot {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/pivot.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-plus {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/plus.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-right {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/right.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-small-left {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/small-left.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-small-right {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/small-right.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-small-up {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/small-up.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-small-down {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/small-down.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-tick {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/tick.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-cross {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/cross.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-tree-open {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/tree-open.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-tree-closed {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/tree-closed.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.ag-icon-tree-indeterminate {\\n display: inline-block;\\n background: transparent url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/tree-indeterminate.svg\")) + \") center no-repeat;\\n background-size: 12px 12px;\\n filter: \\\"initial\\\";\\n height: 12px;\\n width: 12px;\\n}\\n\\n.loading-filter {\\n background-color: #e6e6e6;\\n height: 100%;\\n padding: 5px;\\n position: absolute;\\n top: 34px;\\n width: 100%;\\n z-index: 1;\\n}\\n\\n.ag-details-row {\\n height: 100%;\\n width: 100%;\\n}\\n\\n.ag-details-grid {\\n height: 100%;\\n width: 100%;\\n}\\n\\n.ag-primary-cols-header-panel {\\n display: flex;\\n flex-direction: row;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-1 {\\n padding-left: 10px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-1 {\\n padding-right: 10px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-1 {\\n padding-left: 10px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-1 {\\n padding-right: 10px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-2 {\\n padding-left: 20px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-2 {\\n padding-right: 20px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-2 {\\n padding-left: 20px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-2 {\\n padding-right: 20px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-3 {\\n padding-left: 30px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-3 {\\n padding-right: 30px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-3 {\\n padding-left: 30px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-3 {\\n padding-right: 30px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-4 {\\n padding-left: 40px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-4 {\\n padding-right: 40px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-4 {\\n padding-left: 40px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-4 {\\n padding-right: 40px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-5 {\\n padding-left: 50px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-5 {\\n padding-right: 50px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-5 {\\n padding-left: 50px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-5 {\\n padding-right: 50px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-6 {\\n padding-left: 60px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-6 {\\n padding-right: 60px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-6 {\\n padding-left: 60px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-6 {\\n padding-right: 60px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-7 {\\n padding-left: 70px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-7 {\\n padding-right: 70px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-7 {\\n padding-left: 70px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-7 {\\n padding-right: 70px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-8 {\\n padding-left: 80px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-8 {\\n padding-right: 80px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-8 {\\n padding-left: 80px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-8 {\\n padding-right: 80px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-9 {\\n padding-left: 90px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-9 {\\n padding-right: 90px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-9 {\\n padding-left: 90px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-9 {\\n padding-right: 90px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-10 {\\n padding-left: 100px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-10 {\\n padding-right: 100px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-10 {\\n padding-left: 100px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-10 {\\n padding-right: 100px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-11 {\\n padding-left: 110px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-11 {\\n padding-right: 110px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-11 {\\n padding-left: 110px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-11 {\\n padding-right: 110px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-12 {\\n padding-left: 120px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-12 {\\n padding-right: 120px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-12 {\\n padding-left: 120px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-12 {\\n padding-right: 120px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-13 {\\n padding-left: 130px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-13 {\\n padding-right: 130px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-13 {\\n padding-left: 130px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-13 {\\n padding-right: 130px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-14 {\\n padding-left: 140px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-14 {\\n padding-right: 140px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-14 {\\n padding-left: 140px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-14 {\\n padding-right: 140px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-15 {\\n padding-left: 150px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-15 {\\n padding-right: 150px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-15 {\\n padding-left: 150px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-15 {\\n padding-right: 150px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-16 {\\n padding-left: 160px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-16 {\\n padding-right: 160px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-16 {\\n padding-left: 160px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-16 {\\n padding-right: 160px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-17 {\\n padding-left: 170px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-17 {\\n padding-right: 170px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-17 {\\n padding-left: 170px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-17 {\\n padding-right: 170px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-18 {\\n padding-left: 180px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-18 {\\n padding-right: 180px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-18 {\\n padding-left: 180px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-18 {\\n padding-right: 180px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-19 {\\n padding-left: 190px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-19 {\\n padding-right: 190px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-19 {\\n padding-left: 190px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-19 {\\n padding-right: 190px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-20 {\\n padding-left: 200px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-20 {\\n padding-right: 200px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-20 {\\n padding-left: 200px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-20 {\\n padding-right: 200px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-21 {\\n padding-left: 210px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-21 {\\n padding-right: 210px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-21 {\\n padding-left: 210px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-21 {\\n padding-right: 210px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-22 {\\n padding-left: 220px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-22 {\\n padding-right: 220px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-22 {\\n padding-left: 220px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-22 {\\n padding-right: 220px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-23 {\\n padding-left: 230px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-23 {\\n padding-right: 230px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-23 {\\n padding-left: 230px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-23 {\\n padding-right: 230px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-24 {\\n padding-left: 240px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-24 {\\n padding-right: 240px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-24 {\\n padding-left: 240px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-24 {\\n padding-right: 240px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-25 {\\n padding-left: 250px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-25 {\\n padding-right: 250px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-25 {\\n padding-left: 250px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-25 {\\n padding-right: 250px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-26 {\\n padding-left: 260px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-26 {\\n padding-right: 260px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-26 {\\n padding-left: 260px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-26 {\\n padding-right: 260px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-27 {\\n padding-left: 270px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-27 {\\n padding-right: 270px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-27 {\\n padding-left: 270px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-27 {\\n padding-right: 270px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-28 {\\n padding-left: 280px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-28 {\\n padding-right: 280px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-28 {\\n padding-left: 280px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-28 {\\n padding-right: 280px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-29 {\\n padding-left: 290px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-29 {\\n padding-right: 290px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-29 {\\n padding-left: 290px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-29 {\\n padding-right: 290px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-30 {\\n padding-left: 300px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-30 {\\n padding-right: 300px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-30 {\\n padding-left: 300px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-30 {\\n padding-right: 300px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-31 {\\n padding-left: 310px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-31 {\\n padding-right: 310px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-31 {\\n padding-left: 310px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-31 {\\n padding-right: 310px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-32 {\\n padding-left: 320px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-32 {\\n padding-right: 320px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-32 {\\n padding-left: 320px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-32 {\\n padding-right: 320px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-33 {\\n padding-left: 330px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-33 {\\n padding-right: 330px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-33 {\\n padding-left: 330px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-33 {\\n padding-right: 330px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-34 {\\n padding-left: 340px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-34 {\\n padding-right: 340px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-34 {\\n padding-left: 340px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-34 {\\n padding-right: 340px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-35 {\\n padding-left: 350px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-35 {\\n padding-right: 350px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-35 {\\n padding-left: 350px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-35 {\\n padding-right: 350px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-36 {\\n padding-left: 360px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-36 {\\n padding-right: 360px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-36 {\\n padding-left: 360px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-36 {\\n padding-right: 360px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-37 {\\n padding-left: 370px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-37 {\\n padding-right: 370px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-37 {\\n padding-left: 370px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-37 {\\n padding-right: 370px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-38 {\\n padding-left: 380px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-38 {\\n padding-right: 380px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-38 {\\n padding-left: 380px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-38 {\\n padding-right: 380px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-39 {\\n padding-left: 390px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-39 {\\n padding-right: 390px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-39 {\\n padding-left: 390px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-39 {\\n padding-right: 390px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-40 {\\n padding-left: 400px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-40 {\\n padding-right: 400px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-40 {\\n padding-left: 400px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-40 {\\n padding-right: 400px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-41 {\\n padding-left: 410px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-41 {\\n padding-right: 410px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-41 {\\n padding-left: 410px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-41 {\\n padding-right: 410px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-42 {\\n padding-left: 420px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-42 {\\n padding-right: 420px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-42 {\\n padding-left: 420px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-42 {\\n padding-right: 420px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-43 {\\n padding-left: 430px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-43 {\\n padding-right: 430px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-43 {\\n padding-left: 430px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-43 {\\n padding-right: 430px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-44 {\\n padding-left: 440px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-44 {\\n padding-right: 440px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-44 {\\n padding-left: 440px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-44 {\\n padding-right: 440px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-45 {\\n padding-left: 450px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-45 {\\n padding-right: 450px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-45 {\\n padding-left: 450px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-45 {\\n padding-right: 450px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-46 {\\n padding-left: 460px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-46 {\\n padding-right: 460px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-46 {\\n padding-left: 460px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-46 {\\n padding-right: 460px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-47 {\\n padding-left: 470px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-47 {\\n padding-right: 470px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-47 {\\n padding-left: 470px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-47 {\\n padding-right: 470px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-48 {\\n padding-left: 480px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-48 {\\n padding-right: 480px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-48 {\\n padding-left: 480px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-48 {\\n padding-right: 480px;\\n}\\n\\n.ag-ltr .ag-toolpanel-indent-49 {\\n padding-left: 490px;\\n}\\n\\n.ag-rtl .ag-toolpanel-indent-49 {\\n padding-right: 490px;\\n}\\n\\n.ag-ltr .ag-row-group-indent-49 {\\n padding-left: 490px;\\n}\\n\\n.ag-rtl .ag-row-group-indent-49 {\\n padding-right: 490px;\\n}\\n\\n.ag-side-bar {\\n display: flex;\\n flex-direction: row-reverse;\\n box-sizing: border-box;\\n}\\n\\n.ag-side-bar .ag-side-buttons {\\n width: 20px;\\n}\\n\\n.ag-side-bar .ag-side-buttons div button {\\n display: block;\\n white-space: nowrap;\\n outline: none;\\n}\\n\\n.ag-side-bar .ag-side-buttons div button span {\\n writing-mode: tb;\\n writing-mode: vertical-lr;\\n}\\n\\n.ag-side-bar .panel-container {\\n width: 180px;\\n}\\n\\n.ag-side-bar.full-width .panel-container {\\n width: 200px;\\n}\\n\\n.ag-rtl .ag-side-bar .ag-side-buttons button span {\\n writing-mode: tb-rl;\\n writing-mode: vertical-rl;\\n}\\n\\n.ag-row-inline-editing {\\n z-index: 1;\\n}\\n\\n.ag-status-bar {\\n display: flex;\\n justify-content: space-between;\\n}\\n\\n.ag-status-bar .ag-status-panel {\\n display: inline-flex;\\n}\\n\\n.ag-status-bar-left {\\n display: inline-flex;\\n}\\n\\n.ag-status-bar-center {\\n display: inline-flex;\\n}\\n\\n.ag-status-bar-right {\\n display: inline-flex;\\n}\\n\\n@media print {\\n .ag-body-viewport {\\n display: block;\\n }\\n\\n .ag-row {\\n page-break-inside: avoid;\\n }\\n}\\n\\n.ag-body .ag-pinned-left-cols-viewport,\\n.ag-body .ag-body-viewport,\\n.ag-body .ag-pinned-right-cols-viewport {\\n -webkit-overflow-scrolling: touch;\\n}\\n\\n.ag-theme-material {\\n background-color: #fff;\\n color: rgba(0, 0, 0, 0.87);\\n font: 400 13px \\\"Roboto\\\", sans-serif;\\n}\\n\\n.ag-theme-material .ag-tab-header .ag-tab.ag-tab-selected {\\n border-bottom: 2px solid #3f51b5;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-1 {\\n padding-left: 10px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-1 {\\n padding-right: 10px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-1 {\\n padding-left: 10px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-1 {\\n padding-right: 10px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-2 {\\n padding-left: 20px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-2 {\\n padding-right: 20px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-2 {\\n padding-left: 20px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-2 {\\n padding-right: 20px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-3 {\\n padding-left: 30px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-3 {\\n padding-right: 30px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-3 {\\n padding-left: 30px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-3 {\\n padding-right: 30px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-4 {\\n padding-left: 40px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-4 {\\n padding-right: 40px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-4 {\\n padding-left: 40px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-4 {\\n padding-right: 40px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-5 {\\n padding-left: 50px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-5 {\\n padding-right: 50px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-5 {\\n padding-left: 50px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-5 {\\n padding-right: 50px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-6 {\\n padding-left: 60px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-6 {\\n padding-right: 60px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-6 {\\n padding-left: 60px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-6 {\\n padding-right: 60px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-7 {\\n padding-left: 70px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-7 {\\n padding-right: 70px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-7 {\\n padding-left: 70px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-7 {\\n padding-right: 70px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-8 {\\n padding-left: 80px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-8 {\\n padding-right: 80px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-8 {\\n padding-left: 80px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-8 {\\n padding-right: 80px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-9 {\\n padding-left: 90px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-9 {\\n padding-right: 90px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-9 {\\n padding-left: 90px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-9 {\\n padding-right: 90px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-10 {\\n padding-left: 100px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-10 {\\n padding-right: 100px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-10 {\\n padding-left: 100px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-10 {\\n padding-right: 100px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-11 {\\n padding-left: 110px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-11 {\\n padding-right: 110px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-11 {\\n padding-left: 110px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-11 {\\n padding-right: 110px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-12 {\\n padding-left: 120px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-12 {\\n padding-right: 120px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-12 {\\n padding-left: 120px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-12 {\\n padding-right: 120px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-13 {\\n padding-left: 130px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-13 {\\n padding-right: 130px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-13 {\\n padding-left: 130px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-13 {\\n padding-right: 130px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-14 {\\n padding-left: 140px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-14 {\\n padding-right: 140px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-14 {\\n padding-left: 140px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-14 {\\n padding-right: 140px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-15 {\\n padding-left: 150px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-15 {\\n padding-right: 150px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-15 {\\n padding-left: 150px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-15 {\\n padding-right: 150px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-16 {\\n padding-left: 160px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-16 {\\n padding-right: 160px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-16 {\\n padding-left: 160px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-16 {\\n padding-right: 160px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-17 {\\n padding-left: 170px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-17 {\\n padding-right: 170px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-17 {\\n padding-left: 170px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-17 {\\n padding-right: 170px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-18 {\\n padding-left: 180px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-18 {\\n padding-right: 180px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-18 {\\n padding-left: 180px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-18 {\\n padding-right: 180px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-19 {\\n padding-left: 190px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-19 {\\n padding-right: 190px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-19 {\\n padding-left: 190px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-19 {\\n padding-right: 190px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-20 {\\n padding-left: 200px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-20 {\\n padding-right: 200px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-20 {\\n padding-left: 200px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-20 {\\n padding-right: 200px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-21 {\\n padding-left: 210px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-21 {\\n padding-right: 210px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-21 {\\n padding-left: 210px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-21 {\\n padding-right: 210px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-22 {\\n padding-left: 220px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-22 {\\n padding-right: 220px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-22 {\\n padding-left: 220px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-22 {\\n padding-right: 220px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-23 {\\n padding-left: 230px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-23 {\\n padding-right: 230px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-23 {\\n padding-left: 230px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-23 {\\n padding-right: 230px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-24 {\\n padding-left: 240px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-24 {\\n padding-right: 240px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-24 {\\n padding-left: 240px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-24 {\\n padding-right: 240px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-25 {\\n padding-left: 250px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-25 {\\n padding-right: 250px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-25 {\\n padding-left: 250px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-25 {\\n padding-right: 250px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-26 {\\n padding-left: 260px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-26 {\\n padding-right: 260px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-26 {\\n padding-left: 260px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-26 {\\n padding-right: 260px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-27 {\\n padding-left: 270px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-27 {\\n padding-right: 270px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-27 {\\n padding-left: 270px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-27 {\\n padding-right: 270px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-28 {\\n padding-left: 280px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-28 {\\n padding-right: 280px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-28 {\\n padding-left: 280px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-28 {\\n padding-right: 280px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-29 {\\n padding-left: 290px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-29 {\\n padding-right: 290px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-29 {\\n padding-left: 290px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-29 {\\n padding-right: 290px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-30 {\\n padding-left: 300px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-30 {\\n padding-right: 300px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-30 {\\n padding-left: 300px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-30 {\\n padding-right: 300px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-31 {\\n padding-left: 310px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-31 {\\n padding-right: 310px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-31 {\\n padding-left: 310px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-31 {\\n padding-right: 310px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-32 {\\n padding-left: 320px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-32 {\\n padding-right: 320px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-32 {\\n padding-left: 320px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-32 {\\n padding-right: 320px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-33 {\\n padding-left: 330px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-33 {\\n padding-right: 330px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-33 {\\n padding-left: 330px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-33 {\\n padding-right: 330px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-34 {\\n padding-left: 340px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-34 {\\n padding-right: 340px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-34 {\\n padding-left: 340px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-34 {\\n padding-right: 340px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-35 {\\n padding-left: 350px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-35 {\\n padding-right: 350px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-35 {\\n padding-left: 350px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-35 {\\n padding-right: 350px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-36 {\\n padding-left: 360px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-36 {\\n padding-right: 360px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-36 {\\n padding-left: 360px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-36 {\\n padding-right: 360px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-37 {\\n padding-left: 370px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-37 {\\n padding-right: 370px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-37 {\\n padding-left: 370px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-37 {\\n padding-right: 370px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-38 {\\n padding-left: 380px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-38 {\\n padding-right: 380px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-38 {\\n padding-left: 380px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-38 {\\n padding-right: 380px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-39 {\\n padding-left: 390px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-39 {\\n padding-right: 390px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-39 {\\n padding-left: 390px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-39 {\\n padding-right: 390px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-40 {\\n padding-left: 400px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-40 {\\n padding-right: 400px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-40 {\\n padding-left: 400px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-40 {\\n padding-right: 400px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-41 {\\n padding-left: 410px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-41 {\\n padding-right: 410px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-41 {\\n padding-left: 410px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-41 {\\n padding-right: 410px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-42 {\\n padding-left: 420px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-42 {\\n padding-right: 420px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-42 {\\n padding-left: 420px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-42 {\\n padding-right: 420px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-43 {\\n padding-left: 430px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-43 {\\n padding-right: 430px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-43 {\\n padding-left: 430px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-43 {\\n padding-right: 430px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-44 {\\n padding-left: 440px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-44 {\\n padding-right: 440px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-44 {\\n padding-left: 440px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-44 {\\n padding-right: 440px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-45 {\\n padding-left: 450px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-45 {\\n padding-right: 450px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-45 {\\n padding-left: 450px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-45 {\\n padding-right: 450px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-46 {\\n padding-left: 460px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-46 {\\n padding-right: 460px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-46 {\\n padding-left: 460px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-46 {\\n padding-right: 460px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-47 {\\n padding-left: 470px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-47 {\\n padding-right: 470px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-47 {\\n padding-left: 470px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-47 {\\n padding-right: 470px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-48 {\\n padding-left: 480px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-48 {\\n padding-right: 480px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-48 {\\n padding-left: 480px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-48 {\\n padding-right: 480px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-toolpanel-indent-49 {\\n padding-left: 490px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-toolpanel-indent-49 {\\n padding-right: 490px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-indent-49 {\\n padding-left: 490px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-indent-49 {\\n padding-right: 490px;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-row-group-leaf-indent {\\n margin-left: 42px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-row-group-leaf-indent {\\n margin-right: 42px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-cell-first-right-pinned {\\n border-left: 1px solid #e0e0e0;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-cell-first-right-pinned {\\n border-left: 1px solid #e0e0e0;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-cell-last-left-pinned {\\n border-right: 1px solid #e0e0e0;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-cell-last-left-pinned {\\n border-right: 1px solid #e0e0e0;\\n}\\n\\n.ag-theme-material .ag-value-change-delta {\\n padding-right: 2px;\\n}\\n\\n.ag-theme-material .ag-value-change-delta-up {\\n color: #43a047;\\n}\\n\\n.ag-theme-material .ag-value-change-delta-down {\\n color: #e53935;\\n}\\n\\n.ag-theme-material .ag-value-change-value {\\n background-color: transparent;\\n border-radius: 1px;\\n padding-left: 1px;\\n padding-right: 1px;\\n transition: background-color 1s;\\n}\\n\\n.ag-theme-material .ag-value-change-value-highlight {\\n background-color: #00acc1;\\n transition: background-color 0.1s;\\n}\\n\\n.ag-theme-material .ag-header {\\n color: rgba(0, 0, 0, 0.54);\\n font: 700 12px \\\"Roboto\\\", sans-serif;\\n}\\n\\n.ag-theme-material .ag-header-row {\\n border-style: solid;\\n border-color: #e0e0e0;\\n box-sizing: border-box;\\n border-width: 0 0 1px;\\n}\\n\\n.ag-theme-material .ag-row {\\n border-style: solid;\\n border-color: #e0e0e0;\\n box-sizing: border-box;\\n border-width: 0;\\n}\\n\\n.ag-theme-material .ag-row:not(.ag-row-first) {\\n border-width: 1px 0 0;\\n}\\n\\n.ag-theme-material .ag-row.ag-row-last {\\n border-bottom-width: 1px;\\n}\\n\\n.ag-theme-material .ag-row-hover {\\n background-color: #fafafa;\\n}\\n\\n.ag-theme-material .ag-numeric-cell {\\n text-align: right;\\n}\\n\\n.ag-theme-material .ag-header-cell-label {\\n display: flex;\\n float: left;\\n height: 100%;\\n width: calc(100% - 18px);\\n}\\n\\n.ag-theme-material .ag-header-cell-label span {\\n height: 100%;\\n}\\n\\n.ag-theme-material .ag-header-cell-label > span {\\n float: left;\\n}\\n\\n.ag-theme-material .ag-header-cell-label .ag-header-icon {\\n background-position-y: 20px;\\n background-size: 14px 14px;\\n height: 100%;\\n margin: 0;\\n margin-left: 8px;\\n opacity: 0.87;\\n}\\n\\n.ag-theme-material .ag-header-cell-label .ag-header-cell-text {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n\\n.ag-theme-material .ag-numeric-header .ag-header-cell-label {\\n flex-direction: row-reverse;\\n float: right;\\n}\\n\\n.ag-theme-material .ag-numeric-header .ag-header-cell-label > span {\\n float: right;\\n}\\n\\n.ag-theme-material .ag-numeric-header .ag-header-cell-menu-button {\\n float: left;\\n}\\n\\n.ag-theme-material .ag-header-group-text {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n\\n.ag-theme-material .ag-header-cell,\\n.ag-theme-material .ag-header-group-cell {\\n line-height: 56px;\\n padding-left: 24px;\\n padding-right: 24px;\\n}\\n\\n.ag-theme-material .ag-cell {\\n line-height: 46px;\\n padding-left: 24px;\\n padding-right: 24px;\\n border: 1px solid transparent;\\n padding-left: 23px;\\n padding-right: 23px;\\n}\\n\\n.ag-theme-material .ag-row-drag {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/grip.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n background-position-x: left;\\n background-position-y: 6px;\\n float: left;\\n height: 100%;\\n width: 42px;\\n}\\n\\n.ag-theme-material .ag-column-drag {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/grip.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n background-position-x: left;\\n background-position-y: 8px !important;\\n height: 100%;\\n min-width: 26px;\\n}\\n\\n.ag-theme-material .ag-row-dragging {\\n opacity: 0.5;\\n z-index: 10000;\\n}\\n\\n.ag-theme-material .ag-ltr .ag-cell-focus {\\n border: 1px solid #3f51b5;\\n outline: initial;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-cell-focus {\\n border: 1px solid #3f51b5;\\n outline: initial;\\n}\\n\\n.ag-theme-material .ag-header-cell-resize {\\n width: 16px;\\n}\\n\\n.ag-theme-material .ag-icon-aggregation {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/aggregation.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-arrows {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/arrows.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-asc {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/asc.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-checkbox-checked-readonly {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/checkbox-checked-readonly.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-checkbox-checked {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/checkbox-checked.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-checkbox-indeterminate-readonly {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/checkbox-indeterminate-readonly.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-checkbox-indeterminate {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/checkbox-indeterminate.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-checkbox-unchecked-readonly {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/checkbox-unchecked-readonly.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-checkbox-unchecked {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/checkbox-unchecked.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-column {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/column.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-columns {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/columns.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-contracted {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/contracted.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-copy {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/copy.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-cut {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/cut.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-desc {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/desc.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-expanded {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/expanded.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-eye-slash {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/eye-slash.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-eye {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/eye.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-filter {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/filter.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-group {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/group.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-indeterminate {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/indeterminate.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-left {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/left.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-loading {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/loading.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-menu {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/menu.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-minus {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/minus.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-none {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/none.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-not-allowed {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/not-allowed.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-paste {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/paste.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-pin {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/pin.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-pivot {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/pivot.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-plus {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/plus.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-right {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/right.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-small-left {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/small-left.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-small-right {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/small-right.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-small-up {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/small-up.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-small-down {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/small-down.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-tick {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/tick.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-cross {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/cross.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-tree-open {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/tree-open.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-tree-closed {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/tree-closed.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-icon-tree-indeterminate {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/tree-indeterminate.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-header-cell-menu-button .ag-icon-menu {\\n display: block;\\n height: 56px;\\n}\\n\\n.ag-theme-material .ag-icon-checkbox-checked:empty {\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/checkbox-checked.svg\")) + \");\\n}\\n\\n.ag-theme-material .ag-menu {\\n background: #fff;\\n border-radius: 2px;\\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n padding: 8px;\\n padding: 0;\\n z-index: 5;\\n}\\n\\n.ag-theme-material .ag-menu .ag-menu-list {\\n cursor: default;\\n margin-bottom: 8px;\\n margin-top: 8px;\\n width: 100%;\\n}\\n\\n.ag-theme-material .ag-menu .ag-menu-option {\\n line-height: 32px;\\n padding-left: 16px;\\n padding-right: 16px;\\n}\\n\\n.ag-theme-material .ag-menu .ag-menu-option > span {\\n display: table-cell;\\n vertical-align: middle;\\n}\\n\\n.ag-theme-material .ag-menu .ag-menu-option-active {\\n background: #fafafa;\\n}\\n\\n.ag-theme-material .ag-menu .ag-menu-option-disabled {\\n opacity: 0.5;\\n}\\n\\n.ag-theme-material .ag-menu .ag-menu-option-icon {\\n padding-left: 8px;\\n padding-right: 8px;\\n}\\n\\n.ag-theme-material .ag-menu .ag-menu-option-icon span {\\n height: 18px;\\n line-height: 0;\\n margin-top: 8px;\\n}\\n\\n.ag-theme-material .ag-menu .ag-menu-option-shortcut {\\n padding-left: 16px;\\n}\\n\\n.ag-theme-material .ag-menu .ag-menu-separator {\\n margin-left: -8px;\\n}\\n\\n.ag-theme-material .ag-menu .ag-menu-separator > span {\\n background-image: url(\\\"data:image/svg+xml;utf8, \\\");\\n height: 16px;\\n}\\n\\n.ag-theme-material .ag-menu .ag-menu-option-popup-pointer {\\n width: 34px;\\n}\\n\\n.ag-theme-material.ag-dnd-ghost {\\n background: #fff;\\n border-radius: 2px;\\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n padding: 8px;\\n border: 1px solid #e0e0e0;\\n color: rgba(0, 0, 0, 0.54);\\n font: 700 12px \\\"Roboto\\\", sans-serif;\\n height: 56px !important;\\n line-height: 56px;\\n margin: 0;\\n padding: 0 16px;\\n transform: translateY(16px);\\n z-index: 5;\\n}\\n\\n.ag-theme-material.ag-dnd-ghost span,\\n.ag-theme-material.ag-dnd-ghost div {\\n float: left;\\n height: 100%;\\n margin: 0;\\n padding: 0;\\n}\\n\\n.ag-theme-material.ag-dnd-ghost .ag-dnd-ghost-icon {\\n margin-right: 8px;\\n opacity: 0.87;\\n}\\n\\n.ag-theme-material .ag-tab-header {\\n background: #eee;\\n min-width: 220px;\\n width: 100%;\\n display: table;\\n}\\n\\n.ag-theme-material .ag-tab-header .ag-tab {\\n border-bottom: 2px solid transparent;\\n height: 32px;\\n text-align: center;\\n vertical-align: middle;\\n display: table-cell;\\n}\\n\\n.ag-theme-material .ag-tab-header .ag-tab.ag-tab-selected .ag-icon-filter {\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/filter.svg\")) + \");\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-tab-header .ag-tab.ag-tab-selected .ag-icon-columns {\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/columns.svg\")) + \");\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-tab-header .ag-tab.ag-tab-selected .ag-icon-menu {\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/menu.svg\")) + \");\\n display: inline-block;\\n}\\n\\n.ag-theme-material .ag-tab-body {\\n padding: 8px 0;\\n}\\n\\n.ag-theme-material .ag-tab-body .ag-filter-select {\\n margin: 8px;\\n width: calc(100% - 16px);\\n}\\n\\n.ag-theme-material .ag-tab-body .ag-menu-list {\\n margin-bottom: 0;\\n margin-top: 0;\\n}\\n\\n.ag-theme-material .ag-tab-body .ag-menu-list > div:first-child > span {\\n padding-top: 0;\\n}\\n\\n.ag-theme-material .ag-tab-body .ag-menu-list > div:last-child > span {\\n padding-bottom: 0;\\n}\\n\\n.ag-theme-material .ag-tab-body .ag-menu-list > div:last-child > .ag-menu-option-popup-pointer {\\n background-position-y: 0;\\n}\\n\\n.ag-theme-material .ag-filter-select {\\n margin: 8px;\\n width: calc(100% - 16px);\\n}\\n\\n.ag-theme-material .ag-filter input[type=radio] {\\n margin: 0 3px 0 6px;\\n width: 12px;\\n height: 17px;\\n vertical-align: top;\\n}\\n\\n.ag-theme-material .ag-filter input[type=text],\\n.ag-theme-material .ag-filter input[type=date] {\\n background: transparent;\\n box-sizing: border-box;\\n color: rgba(0, 0, 0, 0.87);\\n font-family: inherit;\\n font-size: inherit;\\n height: 24px;\\n padding-bottom: 8px;\\n border-width: 0;\\n border-bottom: 1px solid #e0e0e0;\\n padding-left: 8px;\\n}\\n\\n.ag-theme-material .ag-filter input[type=text]:focus,\\n.ag-theme-material .ag-filter input[type=date]:focus {\\n border-bottom: 2px solid #3f51b5;\\n outline: none;\\n padding-bottom: 7px;\\n}\\n\\n.ag-theme-material .ag-filter input[type=text]::placeholder,\\n.ag-theme-material .ag-filter input[type=date]::placeholder {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.ag-theme-material .ag-filter label {\\n display: block;\\n padding-left: 8px;\\n}\\n\\n.ag-theme-material .ag-filter .ag-set-filter-list {\\n height: 260px;\\n padding-top: 8px;\\n}\\n\\n.ag-theme-material .ag-filter .ag-filter-header-container {\\n box-sizing: border-box;\\n height: 40px;\\n}\\n\\n.ag-theme-material .ag-filter .ag-filter-header-container:nth-child(2) {\\n border-bottom: 1px solid #e0e0e0;\\n}\\n\\n.ag-theme-material .ag-filter .ag-filter-checkbox {\\n float: left;\\n height: 40px;\\n margin-right: 8px;\\n padding-top: 4px;\\n}\\n\\n.ag-theme-material .ag-filter .ag-filter-value {\\n height: 40px;\\n line-height: 28px;\\n}\\n\\n.ag-theme-material .ag-filter .ag-filter-apply-panel {\\n display: flex;\\n justify-content: flex-end;\\n padding: 8px;\\n padding-top: 16px;\\n}\\n\\n.ag-theme-material .ag-filter .ag-filter-apply-panel button {\\n appearance: none;\\n background-color: transparent;\\n border: 0;\\n color: #3f51b5;\\n font-family: inherit;\\n font-size: inherit;\\n margin: 0;\\n padding: 0;\\n text-transform: uppercase;\\n}\\n\\n.ag-theme-material .ag-filter .ag-filter-apply-panel button + button {\\n margin-left: 16px;\\n}\\n\\n.ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column-group,\\n.ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column {\\n height: 32px;\\n line-height: 32px;\\n margin-left: 0;\\n}\\n\\n.ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column-group span,\\n.ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column span {\\n float: left;\\n height: 100%;\\n}\\n\\n.ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column-group .ag-column-select-indent,\\n.ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column .ag-column-select-indent {\\n width: 16px;\\n}\\n\\n.ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column-group .ag-column-select-checkbox,\\n.ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column-group .ag-column-group-icons,\\n.ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column .ag-column-select-checkbox,\\n.ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column .ag-column-group-icons {\\n margin-left: 8px;\\n margin-right: 8px;\\n}\\n\\n.ag-theme-material .ag-column-select-panel .ag-primary-cols-list-panel {\\n padding-top: 8px;\\n}\\n\\n.ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column.ag-toolpanel-add-group-indent {\\n margin-left: 34px;\\n}\\n\\n.ag-theme-material .ag-filter-filter {\\n margin-bottom: 8px;\\n}\\n\\n.ag-theme-material .ag-primary-cols-header-panel {\\n border-bottom: 1px solid #e0e0e0;\\n box-sizing: border-box;\\n height: 56px;\\n padding-top: 8px;\\n}\\n\\n.ag-theme-material .ag-primary-cols-header-panel a {\\n margin: 0 8px;\\n padding-top: 4px;\\n}\\n\\n.ag-theme-material .ag-primary-cols-header-panel .ag-filter-body {\\n margin-left: 8px;\\n margin-right: 8px;\\n}\\n\\n.ag-theme-material .ag-group-child-count::before {\\n content: \\\" \\\";\\n}\\n\\n.ag-theme-material .ag-tool-panel-wrapper {\\n border-right: 0;\\n}\\n\\n.ag-theme-material .ag-tool-panel-wrapper .ag-filter-panel {\\n width: 100%;\\n}\\n\\n.ag-theme-material .ag-tool-panel-wrapper .ag-filter-panel .ag-filter-toolpanel-instance {\\n color: rgba(0, 0, 0, 0.54);\\n font-weight: 600;\\n flex: auto;\\n flex-direction: column;\\n flex-wrap: nowrap;\\n display: flex;\\n flex-flow: column nowrap;\\n}\\n\\n.ag-theme-material .ag-tool-panel-wrapper .ag-filter-panel .ag-filter-toolpanel-instance .ag-filter-toolpanel-header {\\n padding: 5px 0 5px 5px;\\n}\\n\\n.ag-theme-material .ag-tool-panel-wrapper .ag-filter-panel .ag-filter-body-wrapper {\\n padding-top: 5px;\\n}\\n\\n.ag-theme-material .ag-tool-panel-wrapper .ag-filter-panel .ag-filter-air {\\n border: 1px solid #e0e0e0;\\n border-left: 0;\\n border-right: 0;\\n padding: 8px 0;\\n}\\n\\n.ag-theme-material .ag-tool-panel-wrapper .ag-pivot-mode-panel {\\n border-bottom: 1px solid #e0e0e0;\\n box-sizing: border-box;\\n height: 56px;\\n line-height: 56px;\\n}\\n\\n.ag-theme-material .ag-tool-panel-wrapper .ag-pivot-mode-panel span {\\n float: left;\\n height: 100%;\\n}\\n\\n.ag-theme-material .ag-tool-panel-wrapper .ag-pivot-mode-panel .ag-pivot-mode-select {\\n margin-left: 8px;\\n}\\n\\n.ag-theme-material .ag-tool-panel-wrapper .ag-pivot-mode-panel .ag-pivot-mode-select .ag-checkbox-label {\\n margin-left: 8px;\\n}\\n\\n.ag-theme-material .ag-tool-panel-wrapper .ag-column-select-panel {\\n border-bottom: 1px solid #e0e0e0;\\n padding-bottom: 7px;\\n padding-top: 0;\\n}\\n\\n.ag-theme-material .ag-tool-panel-wrapper .ag-column-drop {\\n border-bottom: 1px solid #e0e0e0;\\n clear: both;\\n overflow: auto;\\n padding: 8px 0;\\n padding-bottom: 16px;\\n}\\n\\n.ag-theme-material .ag-tool-panel-wrapper .ag-column-drop .ag-icon {\\n float: left;\\n height: 40px;\\n margin: 0 8px;\\n}\\n\\n.ag-theme-material .ag-tool-panel-wrapper .ag-column-drop .ag-column-drop-title {\\n clear: right;\\n float: left;\\n height: 40px;\\n line-height: 40px;\\n width: calc(100% - 34px);\\n}\\n\\n.ag-theme-material .ag-tool-panel-wrapper .ag-column-drop .ag-column-drop-empty-message {\\n clear: both;\\n color: rgba(0, 0, 0, 0.38);\\n font: 700 12px \\\"Roboto\\\", sans-serif;\\n line-height: 16px;\\n padding-left: 32px;\\n padding-right: 8px;\\n}\\n\\n.ag-theme-material .ag-tool-panel-wrapper .ag-column-drop:last-child {\\n border-bottom: 0;\\n}\\n\\n.ag-theme-material .ag-filter-icon:empty {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/filter.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n}\\n\\n.ag-theme-material .ag-sort-ascending-icon:empty {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/asc.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n}\\n\\n.ag-theme-material .ag-sort-descending-icon:empty {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/desc.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n}\\n\\n.ag-theme-material .ag-sort-none-icon:empty {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/none.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n}\\n\\n.ag-theme-material .ag-numeric-header .ag-header-cell-label .ag-header-icon {\\n margin-left: 0;\\n margin-right: 8px;\\n}\\n\\n.ag-theme-material .ag-paging-panel {\\n align-items: center;\\n border-top: 1px solid #e0e0e0;\\n color: rgba(0, 0, 0, 0.54);\\n display: flex;\\n height: 56px;\\n justify-content: flex-end;\\n padding: 0 24px;\\n}\\n\\n.ag-theme-material .ag-paging-panel > span {\\n margin-left: 32px;\\n}\\n\\n.ag-theme-material button[ref=btFirst] {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/first.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n overflow: hidden;\\n text-indent: 100%;\\n appearance: none;\\n border: 0;\\n opacity: 0.54;\\n padding: 0;\\n}\\n\\n.ag-theme-material button[ref=btFirst][disabled] {\\n opacity: 0.38;\\n}\\n\\n.ag-theme-material button[ref=btPrevious] {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/previous.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n overflow: hidden;\\n text-indent: 100%;\\n appearance: none;\\n border: 0;\\n opacity: 0.54;\\n padding: 0;\\n}\\n\\n.ag-theme-material button[ref=btPrevious][disabled] {\\n opacity: 0.38;\\n}\\n\\n.ag-theme-material button[ref=btLast] {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/last.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n overflow: hidden;\\n text-indent: 100%;\\n appearance: none;\\n border: 0;\\n opacity: 0.54;\\n padding: 0;\\n}\\n\\n.ag-theme-material button[ref=btLast][disabled] {\\n opacity: 0.38;\\n}\\n\\n.ag-theme-material button[ref=btNext] {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/next.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n overflow: hidden;\\n text-indent: 100%;\\n appearance: none;\\n border: 0;\\n opacity: 0.54;\\n padding: 0;\\n}\\n\\n.ag-theme-material button[ref=btNext][disabled] {\\n opacity: 0.38;\\n}\\n\\n.ag-theme-material .ag-rtl button[ref=btFirst] {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/last.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n}\\n\\n.ag-theme-material .ag-rtl button[ref=btPrevious] {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/next.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n}\\n\\n.ag-theme-material .ag-rtl button[ref=btLast] {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/first.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n}\\n\\n.ag-theme-material .ag-rtl button[ref=btNext] {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/previous.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n}\\n\\n.ag-theme-material .ag-row-selected {\\n background-color: #eee;\\n}\\n\\n.ag-theme-material .ag-cell-range-selected:not(.ag-cell-focus) {\\n background-color: #e8eaf6;\\n}\\n\\n.ag-theme-material .ag-cell-inline-editing {\\n background: #fff;\\n border-radius: 2px;\\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n padding: 8px;\\n background: #fafafa;\\n height: 72px;\\n line-height: normal;\\n padding: 24px;\\n z-index: 2;\\n}\\n\\n.ag-theme-material .ag-cell-inline-editing input[type=text],\\n.ag-theme-material .ag-cell-inline-editing input[type=tel],\\n.ag-theme-material .ag-cell-inline-editing input[type=date],\\n.ag-theme-material .ag-cell-inline-editing input[type=datetime-local] {\\n background: transparent;\\n box-sizing: border-box;\\n color: rgba(0, 0, 0, 0.87);\\n font-family: inherit;\\n font-size: inherit;\\n height: 24px;\\n padding-bottom: 8px;\\n border-width: 0;\\n border-bottom: 1px solid #e0e0e0;\\n}\\n\\n.ag-theme-material .ag-cell-inline-editing input[type=text]:focus,\\n.ag-theme-material .ag-cell-inline-editing input[type=tel]:focus,\\n.ag-theme-material .ag-cell-inline-editing input[type=date]:focus,\\n.ag-theme-material .ag-cell-inline-editing input[type=datetime-local]:focus {\\n border-bottom: 2px solid #3f51b5;\\n outline: none;\\n padding-bottom: 7px;\\n}\\n\\n.ag-theme-material .ag-cell-inline-editing input[type=text]::placeholder,\\n.ag-theme-material .ag-cell-inline-editing input[type=tel]::placeholder,\\n.ag-theme-material .ag-cell-inline-editing input[type=date]::placeholder,\\n.ag-theme-material .ag-cell-inline-editing input[type=datetime-local]::placeholder {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.ag-theme-material .ag-cell-inline-editing select {\\n height: auto;\\n}\\n\\n.ag-theme-material .ag-popup-editor {\\n background: #fff;\\n border-radius: 2px;\\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n padding: 8px;\\n background: #fafafa;\\n padding: 0;\\n z-index: 1;\\n}\\n\\n.ag-theme-material .ag-popup-editor .ag-large-textarea textarea {\\n background: transparent;\\n box-sizing: border-box;\\n color: rgba(0, 0, 0, 0.87);\\n font-family: inherit;\\n font-size: inherit;\\n height: 24px;\\n padding-bottom: 8px;\\n border-width: 0;\\n border-bottom: 1px solid #e0e0e0;\\n height: auto;\\n padding: 24px;\\n}\\n\\n.ag-theme-material .ag-popup-editor .ag-large-textarea textarea:focus {\\n border-bottom: 2px solid #3f51b5;\\n outline: none;\\n padding-bottom: 7px;\\n}\\n\\n.ag-theme-material .ag-popup-editor .ag-large-textarea textarea::placeholder {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.ag-theme-material .ag-rich-select {\\n background-color: #fafafa;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/tree-open.svg\")) + \");\\n background-position-x: calc(100% - 8px);\\n background-position-y: 16px;\\n background-repeat: no-repeat;\\n}\\n\\n.ag-theme-material .ag-rich-select .ag-rich-select-list {\\n height: 312px;\\n}\\n\\n.ag-theme-material .ag-rich-select .ag-rich-select-value {\\n height: 48px;\\n line-height: 48px;\\n padding-left: 24px;\\n}\\n\\n.ag-theme-material .ag-rich-select .ag-virtual-list-item {\\n cursor: default;\\n height: 48px;\\n line-height: 48px;\\n}\\n\\n.ag-theme-material .ag-rich-select .ag-virtual-list-item:hover {\\n background-color: #fafafa;\\n}\\n\\n.ag-theme-material .ag-rich-select .ag-rich-select-row {\\n padding-left: 24px;\\n}\\n\\n.ag-theme-material .ag-rich-select .ag-rich-select-row-selected {\\n background-color: #eee;\\n}\\n\\n.ag-theme-material .ag-floating-filter-body {\\n float: left;\\n height: 100%;\\n margin-right: 0;\\n width: calc(100% - 34px);\\n}\\n\\n.ag-theme-material .ag-floating-filter-body input {\\n box-sizing: border-box;\\n background: transparent;\\n box-sizing: border-box;\\n color: rgba(0, 0, 0, 0.87);\\n font-family: inherit;\\n font-size: inherit;\\n height: 24px;\\n padding-bottom: 8px;\\n border-width: 0;\\n border-bottom: 1px solid #e0e0e0;\\n}\\n\\n.ag-theme-material .ag-floating-filter-body input:focus {\\n border-bottom: 2px solid #3f51b5;\\n outline: none;\\n padding-bottom: 7px;\\n}\\n\\n.ag-theme-material .ag-floating-filter-body input::placeholder {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.ag-theme-material .ag-floating-filter-full-body input {\\n box-sizing: border-box;\\n background: transparent;\\n box-sizing: border-box;\\n color: rgba(0, 0, 0, 0.87);\\n font-family: inherit;\\n font-size: inherit;\\n height: 24px;\\n padding-bottom: 8px;\\n border-width: 0;\\n border-bottom: 1px solid #e0e0e0;\\n}\\n\\n.ag-theme-material .ag-floating-filter-full-body input:focus {\\n border-bottom: 2px solid #3f51b5;\\n outline: none;\\n padding-bottom: 7px;\\n}\\n\\n.ag-theme-material .ag-floating-filter-full-body input::placeholder {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.ag-theme-material .ag-floating-filter-input {\\n line-height: normal;\\n}\\n\\n.ag-theme-material .ag-floating-filter-button {\\n float: right;\\n line-height: 18px;\\n margin-top: 20px;\\n}\\n\\n.ag-theme-material .ag-floating-filter-button button {\\n appearance: none;\\n background: transparent;\\n border: 0;\\n height: 18px;\\n padding: 0;\\n width: 18px;\\n}\\n\\n.ag-theme-material .ag-cell-label-container {\\n height: 100%;\\n}\\n\\n.ag-theme-material .ag-header-group-cell-label {\\n height: 100%;\\n}\\n\\n.ag-theme-material .ag-header-group-cell-label span {\\n float: left;\\n height: 100%;\\n}\\n\\n.ag-theme-material .ag-header-select-all {\\n height: 100%;\\n margin-right: 24px;\\n}\\n\\n.ag-theme-material .ag-header-select-all span {\\n height: 100%;\\n}\\n\\n.ag-theme-material .ag-header-select-all:not(.ag-hidden) + .ag-cell-label-container {\\n float: left;\\n width: calc(100% - 18px - 24px);\\n}\\n\\n.ag-theme-material .ag-selection-checkbox span,\\n.ag-theme-material .ag-group-expanded span,\\n.ag-theme-material .ag-group-contracted span {\\n margin-right: 24px;\\n}\\n\\n.ag-theme-material .ag-selection-checkbox span {\\n position: relative;\\n top: 4px;\\n}\\n\\n.ag-theme-material .ag-group-expanded .ag-icon-contracted:empty {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/tree-open.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n}\\n\\n.ag-theme-material .ag-column-drop-horizontal {\\n background-color: #eee;\\n height: 48px;\\n line-height: 32px;\\n padding-left: 24px;\\n}\\n\\n.ag-theme-material .ag-column-drop-horizontal.ag-width-half {\\n margin-bottom: -3px;\\n}\\n\\n.ag-theme-material .ag-column-drop-horizontal span {\\n float: left;\\n height: 100%;\\n}\\n\\n.ag-theme-material .ag-column-drop-horizontal > div:first-child {\\n float: left;\\n height: 100%;\\n}\\n\\n.ag-theme-material .ag-column-drop-horizontal .ag-icon-group,\\n.ag-theme-material .ag-column-drop-horizontal .ag-icon-pivot {\\n margin-right: 24px;\\n}\\n\\n.ag-theme-material .ag-column-drop-horizontal .ag-right-arrow {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/right.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n}\\n\\n.ag-theme-material .ag-column-drop-horizontal .ag-left-arrow {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/left.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n}\\n\\n.ag-theme-material .ag-column-drop-horizontal .ag-left-arrow,\\n.ag-theme-material .ag-column-drop-horizontal .ag-right-arrow {\\n overflow: hidden;\\n text-indent: 100%;\\n height: 100%;\\n margin: 0 8px;\\n opacity: 0.54;\\n}\\n\\n.ag-theme-material .ag-column-drop-horizontal .ag-column-drop-empty-message {\\n height: 100%;\\n line-height: 48px;\\n opacity: 0.38;\\n}\\n\\n.ag-theme-material .ag-column-drop-cell {\\n background: #e0e0e0;\\n border-radius: 32px;\\n box-sizing: border-box;\\n height: 32px !important;\\n margin-top: 8px;\\n padding: 0 4px;\\n}\\n\\n.ag-theme-material .ag-column-drop-cell .ag-column-drop-cell-text {\\n height: 100%;\\n line-height: 32px;\\n margin: 0 8px;\\n}\\n\\n.ag-theme-material .ag-column-drop-cell .ag-column-drop-cell-button {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/cancel.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n overflow: hidden;\\n text-indent: 100%;\\n min-width: 32px;\\n height: 100%;\\n margin: 0 4px;\\n opacity: 0.54;\\n}\\n\\n.ag-theme-material .ag-column-drop-cell .ag-column-drop-cell-button:hover {\\n opacity: 0.87;\\n}\\n\\n.ag-theme-material .ag-column-drop-cell .ag-column-drag {\\n margin-left: 16px;\\n margin-top: 4px;\\n width: 18px;\\n}\\n\\n.ag-theme-material .ag-select-agg-func-popup {\\n background: #fff;\\n border-radius: 2px;\\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n padding: 8px;\\n background: #fff;\\n height: 140px;\\n padding: 0;\\n}\\n\\n.ag-theme-material .ag-select-agg-func-popup .ag-virtual-list-item {\\n cursor: default;\\n line-height: 40px;\\n padding-left: 16px;\\n}\\n\\n.ag-theme-material .ag-set-filter-list,\\n.ag-theme-material .ag-menu-column-select-wrapper {\\n width: auto;\\n}\\n\\n.ag-theme-material .ag-column-drop-vertical > .ag-column-drop-cell {\\n float: left;\\n margin-bottom: 8px;\\n margin-left: 8px;\\n margin-top: 0;\\n}\\n\\n.ag-theme-material .ag-cell-data-changed {\\n background-color: #00acc1 !important;\\n}\\n\\n.ag-theme-material .ag-cell-data-changed-animation {\\n background-color: transparent;\\n transition: background-color 1s;\\n}\\n\\n.ag-theme-material .ag-stub-cell {\\n padding-left: 24px;\\n padding-top: 8px;\\n}\\n\\n.ag-theme-material .ag-stub-cell .ag-loading-icon {\\n float: left;\\n height: 100%;\\n}\\n\\n.ag-theme-material .ag-stub-cell .ag-loading-text {\\n float: left;\\n height: 100%;\\n margin-left: 8px;\\n margin-top: 8px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-numeric-cell {\\n text-align: left;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-header-cell-menu-button {\\n float: left;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-header-cell-label {\\n float: right;\\n width: calc(100% - 18px);\\n}\\n\\n.ag-theme-material .ag-rtl .ag-header-cell-label > span {\\n float: right;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-header-cell-label .ag-header-icon {\\n margin-top: 2px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-numeric-header .ag-header-cell-menu-button {\\n float: right;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-numeric-header .ag-header-cell-label {\\n float: left;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-numeric-header .ag-header-cell-label > span {\\n float: left;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-tool-panel-wrapper .ag-pivot-mode-panel span {\\n float: right;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-tool-panel-wrapper .ag-pivot-mode-panel .ag-pivot-mode-select {\\n margin-right: 8px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-tool-panel-wrapper .ag-pivot-mode-panel .ag-pivot-mode-select .ag-checkbox-label {\\n margin-right: 8px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-tool-panel-wrapper .ag-column-drop .ag-icon {\\n float: right;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-tool-panel-wrapper .ag-column-drop .ag-column-drop-title {\\n clear: left;\\n float: right;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-tool-panel-wrapper .ag-column-drop .ag-column-drop-empty-message {\\n padding-left: 8px;\\n padding-right: 32px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-filter-checkbox {\\n float: right;\\n margin-left: 8px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-column-select-panel .ag-column-tool-panel-column-group span,\\n.ag-theme-material .ag-rtl .ag-column-select-panel .ag-column-tool-panel-column span {\\n float: right;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-column-select-panel .ag-column-tool-panel-column-group .ag-column-select-checkbox,\\n.ag-theme-material .ag-rtl .ag-column-select-panel .ag-column-tool-panel-column-group .ag-column-group-icons,\\n.ag-theme-material .ag-rtl .ag-column-select-panel .ag-column-tool-panel-column .ag-column-select-checkbox,\\n.ag-theme-material .ag-rtl .ag-column-select-panel .ag-column-tool-panel-column .ag-column-group-icons {\\n margin-left: 8px;\\n margin-right: 8px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-column-select-panel .ag-column-tool-panel-column.ag-toolpanel-add-group-indent {\\n margin-left: 0;\\n margin-right: 34px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-icon-tree-closed {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/contracted.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-header-group-cell-label {\\n height: 100%;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-header-group-cell-label span {\\n float: right;\\n height: 100%;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-header-select-all:not(.ag-hidden) + .ag-cell-label-container {\\n float: right;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-header-select-all {\\n margin-left: 24px;\\n margin-right: 0;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-selection-checkbox span,\\n.ag-theme-material .ag-rtl .ag-group-expanded span,\\n.ag-theme-material .ag-rtl .ag-group-contracted span {\\n margin-left: 24px;\\n margin-right: 0;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-column-drop-horizontal {\\n padding-right: 24px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-column-drop-horizontal span {\\n float: right;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-column-drop-horizontal > div:first-child {\\n float: right;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-column-drop-horizontal .ag-icon-group,\\n.ag-theme-material .ag-rtl .ag-column-drop-horizontal .ag-icon-pivot {\\n margin-left: 24px;\\n margin-right: 0;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-column-drop-horizontal .ag-right-arrow {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/right.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n height: 100%;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-column-drop-horizontal .ag-left-arrow {\\n background-color: transparent;\\n background-image: url(\" + escape(require(\"./../../../../../node_modules/ag-grid-community/src/styles/material-icons/left.svg\")) + \");\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n height: 18px;\\n opacity: 0.87;\\n width: 18px;\\n height: 100%;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-floating-filter-body {\\n float: right;\\n margin-left: 0;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-floating-filter-button {\\n float: left;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-header .ag-header-cell-resize::after {\\n border-left: 1px solid #e0e0e0;\\n border-right: 0;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-column-drag {\\n background-position-x: right;\\n}\\n\\n.ag-theme-material .ag-status-bar {\\n background: #fff;\\n border: 1px solid #e0e0e0;\\n border-top: 0;\\n color: rgba(0, 0, 0, 0.38);\\n font: 700 12px \\\"Roboto\\\", sans-serif;\\n padding-right: 32px;\\n padding-left: 32px;\\n}\\n\\n.ag-theme-material .ag-name-value-value {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.ag-theme-material .ag-status-bar-center {\\n text-align: center;\\n}\\n\\n.ag-theme-material .ag-name-value {\\n margin-left: 8px;\\n margin-right: 8px;\\n padding-top: 16px;\\n padding-bottom: 16px;\\n}\\n\\n.ag-theme-material .ag-details-row {\\n box-sizing: border-box;\\n padding: 40px;\\n}\\n\\n.ag-theme-material .ag-overlay-loading-wrapper {\\n background-color: rgba(255, 255, 255, 0.5);\\n}\\n\\n.ag-theme-material .ag-overlay-loading-center {\\n background: #fff;\\n border-radius: 2px;\\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n padding: 8px;\\n}\\n\\n.ag-theme-material .ag-side-bar {\\n background-color: #fafafa;\\n border-right: 1px solid #e0e0e0;\\n border-top: 1px solid #e0e0e0;\\n position: relative;\\n}\\n\\n.ag-theme-material .ag-side-bar .ag-side-buttons {\\n padding-top: 32px;\\n background: #fff;\\n border-bottom: 1px solid #e0e0e0;\\n position: relative;\\n}\\n\\n.ag-theme-material .ag-side-bar .ag-side-buttons .ag-side-button button {\\n background: transparent;\\n border: 0;\\n color: rgba(0, 0, 0, 0.87);\\n padding: 16px 0 16px 0;\\n width: 100%;\\n margin: 0;\\n min-height: 144px;\\n border-width: 1px 0 1px 0;\\n border-style: solid;\\n border-color: transparent;\\n background-position-y: 8px;\\n background-position-x: center;\\n background-repeat: no-repeat;\\n}\\n\\n.ag-theme-material .ag-side-bar .ag-side-buttons .ag-selected button {\\n background-color: #fafafa;\\n margin-left: -1px;\\n padding-left: 1px;\\n width: calc(100% + 1px);\\n border-color: #e0e0e0;\\n}\\n\\n.ag-theme-material .ag-side-bar .ag-panel-container {\\n border-right: 1px solid #e0e0e0;\\n box-sizing: border-box;\\n}\\n\\n.ag-theme-material .ag-side-bar.full-width .ag-panel-container {\\n border-right: 0;\\n}\\n\\n.ag-theme-material .ag-side-bar .ag-column-drop {\\n min-height: 50px;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-side-bar .ag-panel-container {\\n border-left: 1px solid #e0e0e0;\\n border-right: 0;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-side-bar.full-width .ag-panel-container {\\n border-left: 0;\\n}\\n\\n.ag-theme-material .ag-primary-cols-filter {\\n background: transparent;\\n box-sizing: border-box;\\n color: rgba(0, 0, 0, 0.87);\\n font-family: inherit;\\n font-size: inherit;\\n height: 24px;\\n padding-bottom: 8px;\\n border-width: 0;\\n border-bottom: 1px solid #e0e0e0;\\n box-sizing: border-box;\\n width: 100%;\\n}\\n\\n.ag-theme-material .ag-primary-cols-filter:focus {\\n border-bottom: 2px solid #3f51b5;\\n outline: none;\\n padding-bottom: 7px;\\n}\\n\\n.ag-theme-material .ag-primary-cols-filter::placeholder {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.ag-theme-material .ag-primary-cols-filter-wrapper {\\n margin-left: 8px;\\n margin-right: 8px;\\n}\\n\\n.ag-theme-material .sass-variables::after {\\n content: '{ \\\"autoSizePadding\\\": \\\"24px\\\", \\\"headerHeight\\\": \\\"56px\\\", \\\"groupPaddingSize\\\": \\\"42px\\\", \\\"footerPaddingAddition\\\": \\\"32px\\\", \\\"virtualItemHeight\\\": \\\"40px\\\", \\\"aggFuncPopupHeight\\\": \\\"140px\\\", \\\"checkboxIndentWidth\\\": \\\"26px\\\", \\\"leafNodePadding\\\": \\\"24px\\\", \\\"rowHeight\\\": \\\"48px\\\", \\\"gridSize\\\": \\\"8px\\\", \\\"iconSize\\\": \\\"18px\\\" }';\\n display: none;\\n}\\n\\n.ag-theme-material .ag-cell-highlight {\\n background-color: #fce4ec !important;\\n}\\n\\n.ag-theme-material .ag-cell-highlight-animation {\\n transition: background-color 1s;\\n}\\n\\n.ag-theme-material .ag-row-drag {\\n background-position-y: center;\\n}\\n\\n.ag-theme-material .ag-column-drag {\\n background-position-y: center;\\n}\\n\\n.ag-theme-material .ag-cell-range-selected-1:not(.ag-cell-focus) {\\n background-color: #e8eaf6;\\n}\\n\\n.ag-theme-material .ag-cell-range-selected-2:not(.ag-cell-focus) {\\n background-color: rgb(217.3375, 220.6125, 240.2625);\\n}\\n\\n.ag-theme-material .ag-cell-range-selected-3:not(.ag-cell-focus) {\\n background-color: rgb(202.675, 207.225, 234.525);\\n}\\n\\n.ag-theme-material .ag-cell-range-selected-4:not(.ag-cell-focus) {\\n background-color: rgb(188.0125, 193.8375, 228.7875);\\n}\\n\\n.ag-theme-material .ag-side-bar {\\n border-bottom: 0;\\n border-right: 0;\\n border-top: 0;\\n}\\n\\n.ag-theme-material .ag-side-bar .ag-side-buttons button {\\n border: 0;\\n color: rgba(0, 0, 0, 0.54);\\n font-family: \\\"Roboto\\\", sans-serif;\\n font-size: 12px;\\n font-weight: 700;\\n background: transparent;\\n}\\n\\n.ag-theme-material .ag-side-bar .ag-side-buttons .ag-side-button button {\\n background-color: transparent;\\n border-width: 0;\\n}\\n\\n.ag-theme-material .ag-side-bar .ag-side-buttons .ag-selected button {\\n border-left: 2px solid #3f51b5;\\n background-color: #fafafa;\\n margin-left: -2px;\\n padding-left: 1px;\\n}\\n\\n.ag-theme-material .ag-side-bar .ag-filter-toolpanel-body {\\n background-color: #fff;\\n}\\n\\n.ag-theme-material .ag-rtl .ag-side-bar .ag-side-buttons .ag-selected button {\\n border-left: 0;\\n margin-left: 0;\\n padding-left: 0;\\n border-right: 2px solid #3f51b5;\\n margin-right: -2px;\\n padding-right: 1px;\\n}\\n\\nhtml,\\nbody {\\n font-size: 13px;\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\nbody {\\n height: 100%;\\n min-width: 1200px;\\n}\\n\\nbody application {\\n display: flex;\\n flex-direction: column;\\n height: 100%;\\n}\\n\\nbody quill-editor .ql-snow .ql-tooltip {\\n z-index: 9999;\\n position: static;\\n}\\n\\na {\\n text-decoration: none;\\n font-weight: inherit;\\n}\\n\\ninput::placeholder {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n\\nmdl-select .mdl-textfield .mdl-select__toggle {\\n overflow: hidden;\\n width: 24px;\\n color: #616161;\\n}\\n\\nmdl-select .mdl-textfield .mdl-select__toggle:before {\\n content: \\\"arrow_drop_down\\\";\\n}\\n\\nmdl-select.menu-select > .mdl-textfield,\\n.menu-select > .mdl-select > .mdl-textfield {\\n width: auto;\\n padding: 0;\\n}\\n\\nmdl-select.menu-select > .mdl-textfield .mdl-textfield__input,\\n.menu-select > .mdl-select > .mdl-textfield .mdl-textfield__input {\\n border-bottom-color: transparent;\\n background-color: #f5f5f5;\\n border: 1px solid #ccc;\\n border-radius: 3px;\\n padding-left: 6px;\\n padding-right: 24px;\\n background: linear-gradient(to bottom, #f5f5f5 0%, #eee 50%, #eaeaea 100%);\\n}\\n\\nmdl-select.menu-select.large-menu > .mdl-textfield,\\n.menu-select.large-menu > .mdl-select > .mdl-textfield {\\n width: 300px;\\n}\\n\\n.mdl-textfield.no-textfield-controls {\\n padding: 0;\\n}\\n\\n.mdl-textfield.no-textfield-controls .mdl-textfield__error {\\n display: none;\\n}\\n\\n.mdl-textfield.no-textfield-controls .mdl-textfield__label {\\n top: 4px;\\n}\\n\\n.mdl-textfield.no-textfield-controls .mdl-textfield__label:after {\\n bottom: 0;\\n}\\n\\n.mdl-checkbox.is-checked .mdl-checkbox__tick-outline,\\n.mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline {\\n background-image: url(\\\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K\\\");\\n}\\n\\n.mdl-switch .mdl-switch__track {\\n background: #fff;\\n border: 1px solid #ddd;\\n left: 0;\\n top: 0;\\n height: 20px;\\n}\\n\\n.mdl-switch .mdl-switch__thumb {\\n background: #fff;\\n height: 18px;\\n width: 18px;\\n}\\n\\n.mdl-switch.is-checked .mdl-switch__track {\\n background: #00C853;\\n border: 1px solid #00C853;\\n}\\n\\n.mdl-switch.is-checked .mdl-switch__thumb {\\n background: #fff;\\n left: 18px;\\n}\\n\\ncovance-chain-filter.menu-select .mdl-select .mdl-textfield__input {\\n border-bottom-color: transparent;\\n background-color: #f5f5f5;\\n border: 1px solid #ccc;\\n border-radius: 3px;\\n padding-left: 6px;\\n padding-right: 24px;\\n background: linear-gradient(to bottom, #f5f5f5 0%, #eee 50%, #eaeaea 100%);\\n}\\n\\ncovance-chain-filter.menu-select .mdl-select .mdl-textfield {\\n width: 250px;\\n}\\n\\nmdl-menu .mdl-menu__container.is-upgraded {\\n position: fixed;\\n}\\n\\nmdl-menu .mdl-menu__container.is-upgraded.is-visible {\\n position: absolute;\\n}\\n\\n.mdl-tabs.is-upgraded .mdl-tabs__tab-bar {\\n padding-top: 16px;\\n padding-left: 10px;\\n height: 27px;\\n}\\n\\n.mdl-tabs.is-upgraded .mdl-tabs__tab-bar .mdl-tabs__tab {\\n padding: 3px 10px 3px;\\n background: #eee;\\n border: 1px solid #ddd;\\n cursor: pointer;\\n color: inherit;\\n height: 20px;\\n line-height: 20px;\\n text-transform: none;\\n}\\n\\n.mdl-tabs.is-upgraded .mdl-tabs__tab-bar .mdl-tabs__tab.is-active {\\n background: #fff;\\n border-bottom-color: #fff;\\n cursor: default;\\n}\\n\\n.mdl-tabs.is-upgraded .mdl-tabs__tab-bar .mdl-tabs__tab.is-active:after {\\n display: none;\\n}\\n\\n.mdl-layout__drawer {\\n box-shadow: none;\\n transform: none;\\n z-index: 7;\\n overflow-y: visible;\\n}\\n\\n.mdl-layout__drawer .mdl-navigation {\\n padding-top: 8px;\\n}\\n\\n.mdl-layout__drawer .mdl-navigation .mdl-navigation__link {\\n color: #616161;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__drawer .mdl-navigation .mdl-navigation__link {\\n padding-left: 20px;\\n padding-right: 20px;\\n }\\n}\\n\\n.mdl-layout__drawer .mdl-navigation .mdl-navigation__link--current,\\n.mdl-layout__drawer .mdl-navigation .router-link-active {\\n color: #0080af;\\n background-color: rgb(250,250,250);\\n font-weight: 600;\\n}\\n\\n.mdl-layout.mdl-layout--fixed-drawer {\\n /* Collapsed Drawer */\\n}\\n\\n.mdl-layout.mdl-layout--fixed-drawer > .mdl-layout__header .mdl-layout__header-row {\\n padding-left: 0;\\n}\\n\\n.mdl-layout.mdl-layout--fixed-drawer > .mdl-layout__content {\\n z-index: 7;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout.mdl-layout--fixed-drawer > .mdl-layout__content {\\n margin-left: 250px;\\n }\\n}\\n\\n.mdl-layout.mdl-layout--fixed-drawer.is-drawer-collapsed .mdl-layout__drawer {\\n width: 65px;\\n}\\n\\n.mdl-layout.mdl-layout--fixed-drawer.is-drawer-collapsed .mdl-layout__content {\\n margin-left: 65px;\\n}\\n\\n.mdl-layout.mdl-layout--fixed-drawer.is-drawer-collapsed .dashboard-link {\\n justify-content: center;\\n}\\n\\n.mdl-layout.mdl-layout--fixed-drawer.is-drawer-collapsed .dashboard-link .dashboard-link__text {\\n display: none;\\n}\\n\\n.mdl-layout.mdl-layout--fixed-drawer.is-drawer-collapsed covance-side-nav .mdl-navigation__link.top-level-link {\\n position: relative;\\n}\\n\\n.mdl-layout.mdl-layout--fixed-drawer.is-drawer-collapsed covance-side-nav .nav-second-level-menu {\\n padding: 0;\\n}\\n\\n.mdl-layout.mdl-layout--fixed-drawer.is-drawer-collapsed covance-side-nav .navigation-link-text {\\n display: none;\\n}\\n\\n.mdl-layout.mdl-layout--fixed-drawer.is-drawer-collapsed covance-side-nav .counter {\\n position: absolute;\\n bottom: 0;\\n left: 30px;\\n}\\n\\n.mdl-layout.mdl-layout--fixed-drawer.is-drawer-collapsed sample-tracking-side-nav .mdl-navigation__link.top-level-link {\\n position: relative;\\n}\\n\\n.mdl-layout.mdl-layout--fixed-drawer.is-drawer-collapsed sample-tracking-side-nav .nav-second-level-menu {\\n padding: 0;\\n}\\n\\n.mdl-layout.mdl-layout--fixed-drawer.is-drawer-collapsed sample-tracking-side-nav .navigation-link-text {\\n display: none;\\n}\\n\\n.mdl-layout.mdl-layout--fixed-drawer.is-drawer-collapsed sample-tracking-side-nav .counter {\\n position: absolute;\\n bottom: 38px;\\n left: 30px;\\n}\\n\\n.mdl-layout.mdl-layout--fixed-drawer.is-drawer-collapsed .rootlink-tooltip,\\n.mdl-layout.mdl-layout--fixed-drawer.is-drawer-collapsed .childlink-tooltip,\\n.mdl-layout.mdl-layout--fixed-drawer.is-drawer-collapsed .link-tooltip {\\n display: inline-block;\\n}\\n\\n.mdl-layout__header .material-icons {\\n color: #424242;\\n}\\n\\n.mdl-layout__header .mdl-layout__drawer-button {\\n display: none;\\n justify-content: center;\\n align-items: center;\\n color: #616161;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-layout__header .mdl-layout__drawer-button {\\n display: none;\\n }\\n}\\n\\n.page-content {\\n display: flex;\\n flex-grow: 1;\\n flex-direction: column;\\n}\\n\\n.nav-header {\\n color: inherit;\\n background-color: white;\\n}\\n\\n.nav-second-level-menu {\\n padding-left: 20px;\\n}\\n\\n.align-center {\\n align-items: center;\\n}\\n\\n.align-end {\\n align-items: flex-end;\\n}\\n\\n.flex-container {\\n display: flex;\\n}\\n\\n.flex-row {\\n display: flex;\\n flex-direction: row;\\n}\\n\\n.flex-column {\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.flex-grow-1 {\\n flex-grow: 1;\\n}\\n\\n.justify-content-between {\\n justify-content: space-between;\\n}\\n\\n.justify-content-start {\\n justify-content: start;\\n}\\n\\n.full-width {\\n width: 100%;\\n}\\n\\n.flex-inner-container {\\n display: flex;\\n flex-grow: 1;\\n flex-direction: column;\\n}\\n\\n.header-link {\\n text-decoration: none;\\n color: inherit;\\n margin-right: 20px;\\n}\\n\\nrouter-outlet.flex-router-outlet + * {\\n flex-direction: column;\\n display: flex;\\n flex-grow: 1;\\n}\\n\\ntemplate.flex-outlet + * {\\n flex-direction: column;\\n display: flex;\\n flex-grow: 1;\\n}\\n\\n.mdl-dialog {\\n width: 50%;\\n}\\n\\n@media screen and (max-width: 1200px) {\\n .mdl-dialog {\\n min-width: 1200px !important;\\n position: absolute;\\n }\\n}\\n\\n.mdl-dialog .mdl-dialog__title {\\n font-size: 24px;\\n padding: 24px;\\n}\\n\\n.mdl-dialog .mdl-dialog__content .mdl-textfield {\\n width: 100%;\\n}\\n\\n.e-query-form {\\n padding: 20px 24px 24px 24px;\\n font-size: 14px;\\n}\\n\\n.e-query-form .mdl-textfield {\\n width: 100%;\\n}\\n\\n.e-query-form mdl-textfield.escalation-input.mdl-textfield div > label.mdl-textfield__label {\\n bottom: -20px;\\n}\\n\\n.tab-navigation__link--current {\\n color: black;\\n}\\n\\n.tab-navigation__link--current:after {\\n height: 2px;\\n width: 100%;\\n display: block;\\n content: \\\" \\\";\\n bottom: 0px;\\n left: 0px;\\n position: absolute;\\n background: rgb(66, 66, 66);\\n animation: border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards;\\n transition: all 1s cubic-bezier(0.4, 0, 1, 1);\\n}\\n\\n.left-aligned-tabs .mdl-tabs__tab-bar {\\n justify-content: flex-start;\\n}\\n\\nheader.mdl-layout__header {\\n color: #666;\\n background-color: #fff;\\n z-index: 8;\\n margin-left: 0 !important;\\n width: inherit !important;\\n border-bottom: 1px solid rgba(0, 0, 0, 0.15);\\n box-shadow: none;\\n}\\n\\nheader.mdl-layout__header .header-link {\\n height: 50px;\\n}\\n\\nfooter.mdl-mini-footer {\\n padding: 0px 10px;\\n color: #666;\\n background-color: #fff;\\n border-top: 1px solid rgba(0, 0, 0, 0.15);\\n flex-shrink: 0;\\n}\\n\\nfooter.mdl-mini-footer ul.mdl-mini-footer--link-list {\\n font-size: 12px;\\n}\\n\\naside .nav-header {\\n height: 50px;\\n width: 100%;\\n}\\n\\na.mdl-layout-title.nav-header.header-link {\\n line-height: 0;\\n}\\n\\n.mdl-tabs__tab .mdl-tabs__ripple-container {\\n z-index: auto;\\n}\\n\\n.tooltip-content td {\\n color: #666;\\n font-size: 13px;\\n font-weight: normal;\\n}\\n\\n.tooltip-content .tooltip-header {\\n font-size: 12px;\\n font-weight: bold;\\n text-align: right;\\n}\\n\\n.mdl-tooltip {\\n font-size: 13px;\\n font-weight: normal;\\n padding: 10px;\\n max-width: 300px;\\n white-space: normal;\\n}\\n\\n/* default list item style */\\n\\n.mdl-list__item {\\n font-size: 13px;\\n min-height: 30px;\\n padding: 8px;\\n}\\n\\n.mdl-button {\\n white-space: nowrap;\\n text-transform: none;\\n}\\n\\n.mdl-button.mdl-outline-primary {\\n background-color: #fff;\\n color: #0080af;\\n border: 1px solid #0080af;\\n line-height: 22px;\\n}\\n\\n.mdl-button.mdl-flat {\\n box-shadow: none;\\n color: #fff;\\n background-color: #0080af;\\n}\\n\\n.mdl-button.mdl-align-left {\\n padding: 0;\\n text-align: left;\\n}\\n\\n.mdl-button.mdl-small {\\n height: 30px;\\n line-height: 30px;\\n min-height: 30px;\\n padding: 0 8px;\\n background: #f5f5f5;\\n color: inherit;\\n border: 1px solid #ccc;\\n border-radius: 3px;\\n}\\n\\n.mdl-button.mdl-small.mdl-button--accent {\\n border-color: #0080af;\\n}\\n\\n.mdl-button.mdl-small.mdl-button--accent[disabled] {\\n border-color: #0080af;\\n}\\n\\n.cancelled-result {\\n color: #CCCCCC;\\n}\\n\\n.cancelled-result .icon.material-icons {\\n font-size: 16px;\\n}\\n\\n.grid-icon .icon.material-icons {\\n font-size: 14px;\\n color: #757575;\\n}\\n\\n.revisioned-result {\\n vertical-align: super;\\n font-style: italic;\\n font-size: 10px;\\n line-height: 10px;\\n font-weight: bold;\\n color: #000;\\n opacity: 0.8;\\n}\\n\\n.cvtooltip .cvtooltip-flagged-high {\\n color: #F44336;\\n}\\n\\n.cvtooltip .cvtooltip-flagged-low {\\n color: #2196F3;\\n}\\n\\n.cvtooltip .cvtooltip-flagged-other {\\n color: #FFA000;\\n}\\n\\n.cvtooltip .cvtooltip-other {\\n color: #757575;\\n}\\n\\n.tooltip-row {\\n margin-bottom: 6px;\\n text-align: left;\\n}\\n\\n.tooltip-row .tooltip-title {\\n font-weight: bold;\\n}\\n\\nmdl-chip.escalation-error {\\n background-color: #FFEBEE;\\n color: #F44336;\\n height: auto;\\n}\\n\\nmdl-chip.escalation-error .mdl-chip__action {\\n color: #F44336;\\n}\\n\\nmdl-chip.escalation-error .mdl-chip__text {\\n max-width: 500px;\\n max-height: 310px;\\n white-space: break-spaces;\\n overflow-y: auto;\\n}\\n\\n.mdl-snackbar {\\n background-color: #FFEBEE;\\n border: 1px solid #F44336;\\n max-width: 700px;\\n z-index: 10;\\n}\\n\\n.mdl-snackbar .mdl-snackbar__text {\\n color: #F44336;\\n font-size: 16px;\\n}\\n\\n.mdl-snackbar .mdl-snackbar__action {\\n background: #FFEBEE;\\n color: #F44336;\\n border: 1px solid #F44336;\\n font-size: 15px;\\n font-weight: bold;\\n margin-right: 5px;\\n}\\n\\n.mdl-spinner__layer-1,\\n.mdl-spinner__layer-2,\\n.mdl-spinner__layer-3,\\n.mdl-spinner__layer-4 {\\n border-color: rgb(66, 165, 245);\\n}\\n\\n.ag-theme-material .flags-exist {\\n color: #F44336;\\n font-weight: 600;\\n}\\n\\n.invalid my-date-picker div.mydp div.selectiongroup {\\n border-bottom-color: #F44336;\\n}\\n\\n.mdl-tooltip {\\n background-color: #333;\\n font-size: 12px;\\n}\\n\\n.category-wrapper .lab-reports .counter,\\nworkspace-level-layout .mdl-layout__drawer covance-side-nav .lab-reports .counter {\\n background-color: #C2185B;\\n}\\n\\n.category-wrapper .lab-manuals .counter,\\nworkspace-level-layout .mdl-layout__drawer covance-side-nav .lab-manuals .counter {\\n background-color: #0288D1;\\n}\\n\\n.category-wrapper .site-actions .counter,\\nworkspace-level-layout .mdl-layout__drawer covance-side-nav .site-actions .counter {\\n background-color: #EF6C00;\\n}\\n\\n.category-wrapper .site-communications .counter,\\nworkspace-level-layout .mdl-layout__drawer covance-side-nav .site-communications .counter {\\n background-color: #689F38;\\n}\\n\\n.category-wrapper .sponsor-communications .counter,\\nworkspace-level-layout .mdl-layout__drawer covance-side-nav .sponsor-communications .counter {\\n background-color: #689F38;\\n}\\n\\n.category-wrapper .training-materials .counter,\\nworkspace-level-layout .mdl-layout__drawer covance-side-nav .training-materials .counter {\\n background-color: #7B1FA2;\\n}\\n\\n.category-wrapper .result-alerts .counter,\\nworkspace-level-layout .mdl-layout__drawer covance-side-nav .result-alerts .counter {\\n background-color: #E65D9B;\\n}\\n\\n.category-wrapper .e-queries .counter,\\nworkspace-level-layout .mdl-layout__drawer covance-side-nav .e-queries .counter {\\n background-color: #b9b13f;\\n}\\n\\nnotification-icon .general-manuals .mdl-badge:after {\\n background-color: #0288D1 !important;\\n}\\n\\nnotification-icon .general-communications .mdl-badge:after {\\n background-color: #689F38 !important;\\n}\\n\\nnotification-icon .general-training-materials .mdl-badge:after {\\n background-color: #7B1FA2 !important;\\n}\\n\\nnotification-icon .application-training .mdl-badge:after {\\n background-color: #0097A7 !important;\\n}\\n\\n.interpretation-badge {\\n height: 20px;\\n line-height: 20px;\\n width: 24px;\\n padding: 1px;\\n display: flex;\\n justify-content: center;\\n font-weight: bold;\\n}\\n\\n.interpretation-badge.R {\\n background: #F8BBD0;\\n}\\n\\n.interpretation-badge.S {\\n background: #C8E6C9;\\n}\\n\\n.interpretation-badge.I {\\n background: #FFECB3;\\n}\\n\\n.interpretation-badge.NA {\\n font-weight: normal;\\n}\\n\\n.interpretation-badge.NS {\\n background: #ffe0b2;\\n}\\n\\n.interpretation-badge.SDD {\\n background: #b2ebf2;\\n}\\n\\n.ag-row.ag-row-group.ag-row-group-ellipsis > span {\\n display: flex;\\n align-items: center;\\n}\\n\\n.ag-row.ag-row-group.ag-row-group-ellipsis > span > span.ag-group-value {\\n overflow: hidden;\\n}\\n\\nmdl-dialog-host-component.scrollable {\\n height: 90%;\\n /* IE compatibility: max-height doesn't work correctly, use height */\\n display: flex;\\n}\\n\\nmdl-dialog-host-component.detail-scrollable {\\n height: 70%;\\n /* IE compatibility: max-height doesn't work correctly, use height */\\n width: 40%;\\n display: flex;\\n}\\n\\nmdl-dialog-host-component.e-query-preview-dialog {\\n max-height: 70%;\\n /* IE compatibility: max-height doesn't work correctly, use height */\\n width: 40%;\\n display: flex;\\n}\\n\\n.mdl-textfield__error {\\n font-size: 10px;\\n}\\n\\n.mdl-select.is-invalid .mdl-textfield__input {\\n border-color: #F44336;\\n box-shadow: none;\\n}\\n\\n.file-description textarea.mdl-textfield__input {\\n font-family: \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.is-invalid .mdl-textfield--floating-label .mdl-textfield__label {\\n color: #F44336;\\n font-size: 12px;\\n}\\n\\n.search-container {\\n display: flex;\\n align-items: center;\\n}\\n\\n.search-container .material-icons {\\n color: #9E9E9E;\\n margin: 0;\\n}\\n\\n.search-container .material-icons.clear-quick-filter-icon {\\n cursor: pointer;\\n font-size: 16px;\\n font-weight: bold;\\n margin-left: -14px;\\n z-index: 1;\\n}\\n\\n.search-container .mdl-textfield.no-textfield-controls .mdl-textfield__label {\\n top: 0;\\n line-height: 24px;\\n color: #BDBDBD;\\n}\\n\\n.search-container .mdl-textfield.no-textfield-controls .mdl-textfield__label:after {\\n bottom: 0;\\n display: none;\\n}\\n\\n.mdl-popover-on-top .mdl-textfield mdl-popover {\\n bottom: calc(100% - 16px);\\n}\\n\\n.mdl-progress {\\n width: 100%;\\n}\\n\\n.mdl-snackbar {\\n z-index: 100002;\\n}\\n\\n.line-chart cvd-line-chart .cv-scatter g.cv-groups g.cv-group path.flagged-high {\\n fill: #F44336;\\n stroke: #F44336;\\n}\\n\\n.line-chart cvd-line-chart .cv-scatter g.cv-groups g.cv-group path.flagged-low {\\n fill: #2196F3;\\n stroke: #2196F3;\\n}\\n\\n.line-chart cvd-line-chart .cv-scatter g.cv-groups g.cv-group path.flagged-other {\\n fill: #FFA000;\\n stroke: #FFA000;\\n}\\n\\n.line-chart cvd-line-chart .cv-scatter g.cv-groups g.cv-group path.non-flagged {\\n fill: #757575;\\n stroke: #757575;\\n}\\n\\n.flagged-legend .flagged-high {\\n fill: #F44336;\\n stroke: #F44336;\\n}\\n\\n.flagged-legend .flagged-low {\\n fill: #2196F3;\\n stroke: #2196F3;\\n}\\n\\n.flagged-legend .flagged-other {\\n fill: #FFA000;\\n stroke: #FFA000;\\n}\\n\\n.flagged-legend .non-flagged {\\n fill: #757575;\\n stroke: #757575;\\n}\\n\\n.cv-wrap g.cv-groups g.cv-group path.cv-line.opaque {\\n opacity: 0.2;\\n}\\n\\n.cv-scatter g.cv-groups g.cv-group path.cv-point.opaque {\\n opacity: 0.2;\\n}\\n\\n.cv-wrap g.cv-groups g.cv-group path.cv-line.cvdhidden {\\n visibility: hidden;\\n}\\n\\n.cv-scatter g.cv-groups g.cv-group path.cv-point.cvdhidden {\\n visibility: hidden;\\n}\\n\\n.ag-overlay .ag-overlay-panel .ag-overlay-wrapper {\\n display: flex;\\n height: 100%;\\n align-items: center;\\n justify-content: center;\\n}\\n\\n.large-study-warning-message {\\n color: #F44336;\\n}\\n\\n.center-column-paddings {\\n padding-right: 40px;\\n padding-left: 40px;\\n}\\n\\n.field-margin-bottom {\\n margin-bottom: 24px;\\n}\\n\\n.field-border {\\n border-bottom: 1px solid lightgray;\\n}\\n\\n.field-label {\\n color: #9E9E9E;\\n}\\n\\n.field-text {\\n color: #757575;\\n}\\n\\n.one-question-block {\\n margin-bottom: 12px;\\n}\\n\\n.one-response-block {\\n margin-bottom: 6px;\\n}\\n\\n.sample-tracking-dialog {\\n width: 80% !important;\\n min-width: 80% !important;\\n max-height: 80%;\\n overflow-y: scroll;\\n padding: 0;\\n overflow-x: hidden;\\n}\\n\\n.container-delete-delete-dialog {\\n padding: 0;\\n width: 50%;\\n min-width: 30% !important;\\n height: auto;\\n}\\n\\n.st-report-confirmation-dialog {\\n padding: 0;\\n width: 50% !important;\\n min-width: 30% !important;\\n height: auto;\\n}\\n\\n.st-report-delete-dialog {\\n padding: 0;\\n width: 30%;\\n min-width: 20% !important;\\n height: auto;\\n}\\n\\n.column-view-dialog {\\n min-width: 900px !important;\\n max-width: 1200px !important;\\n max-height: 90%;\\n padding: 0;\\n overflow-y: auto;\\n}\\n\\n.modal-delete-dialog {\\n padding: 0;\\n width: 30% !important;\\n min-width: 20% !important;\\n height: auto;\\n}\\n\\n.sm-confirm-dialog {\\n padding: 0;\\n width: 35%;\\n min-width: 30% !important;\\n height: auto;\\n}\\n\\n.sm-alternate-container-dialog {\\n padding: 0;\\n width: 25%;\\n min-width: 20% !important;\\n height: auto;\\n}\\n\\n:host {\\n position: relative;\\n display: flex;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.layout-header {\\n display: inline-flex;\\n width: 100%;\\n}\\n\\n.layout-header-style {\\n width: 100%;\\n}\\n\\n.wrapper {\\n box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.1607843137);\\n border-radius: 4px;\\n opacity: 1;\\n height: auto;\\n background-color: white;\\n margin: 20px;\\n margin-top: unset;\\n padding-left: 20px;\\n padding-right: 20px;\\n}\\n\\n.samples-filter-header {\\n padding: 20px;\\n padding-left: 0px;\\n height: 10px;\\n position: relative;\\n display: flex;\\n}\\n\\n.filter-options-grid {\\n background: #FAFBFE 0% 0% no-repeat padding-box;\\n border: 1px solid #E9E9E9;\\n border-radius: 10px;\\n margin-right: 20px;\\n padding-bottom: 30px;\\n}\\n\\n.filter-header {\\n padding-left: 20px;\\n padding-top: 20px;\\n position: relative;\\n display: flex;\\n}\\n\\n.filter-header .header-text {\\n text-align: left;\\n letter-spacing: 0px;\\n color: #3A5CE9;\\n opacity: 1;\\n font-size: 16px;\\n font-weight: bold;\\n padding: 10px;\\n}\\n\\n.filter-header img {\\n bottom: 10px;\\n left: 2px;\\n position: relative;\\n}\\n\\n.sample-header-text {\\n text-align: left;\\n letter-spacing: 0px;\\n color: #231F20;\\n opacity: 1;\\n font-size: 16px;\\n font-weight: bold;\\n}\\n\\n.filter-grid-box {\\n padding: 10px;\\n padding-top: 0px;\\n}\\n\\n.select-box {\\n padding: 10px;\\n padding-top: 0px;\\n padding-bottom: 0px;\\n}\\n\\n.filter-name {\\n text-align: left;\\n color: #231F20;\\n font-weight: 800;\\n font-size: 13px;\\n margin-bottom: 0px;\\n}\\n\\n.dashboard-header {\\n font-size: 20px;\\n font-weight: bold;\\n padding-top: 5px;\\n height: 15px;\\n}\\n\\n.dashboard-helper-text {\\n font-size: 14px;\\n font-weight: bold;\\n margin-bottom: 5px;\\n}\\n\\n.dashboard-helper-text .dashboard-protocol {\\n color: #231F20;\\n}\\n\\n.study-group-protocol {\\n position: relative;\\n font-weight: 500;\\n font-size: 14px;\\n padding-left: 5px;\\n display: flex;\\n color: #231F20;\\n display: inline-flex;\\n}\\n\\n.study-group-header {\\n display: inline-flex;\\n}\\n\\n.horizontal-list {\\n margin: 0px;\\n padding-left: 0px;\\n}\\n\\n.collapse-button {\\n color: #3A5CE9;\\n font-weight: bold;\\n font-family: \\\"Source Sans Pro\\\";\\n display: inline-flex;\\n margin-right: 20px;\\n font-size: 16px;\\n cursor: pointer;\\n}\\n\\n.collapse-button .material-icons {\\n font-weight: bold;\\n font-size: 20px;\\n position: relative;\\n}\\n\\n.collapse-button:hover {\\n color: #1A2188;\\n}\\n\\n.warn {\\n color: #F7758C !important;\\n}\\n\\n.collapse-button.warn:hover {\\n color: #DC1439 !important;\\n}\\n\\napp-samples-search::ng-deep .samples-search-container {\\n width: unset !important;\\n}\\n\\n.disable {\\n color: #a0a0a0;\\n pointer-events: none;\\n}\\n\\n.collapse-filter {\\n width: 220px;\\n font-size: 16px;\\n justify-content: center;\\n align-items: center;\\n display: flex;\\n border: 1px solid black;\\n margin: 15px;\\n cursor: pointer;\\n border-radius: 10px;\\n}\\n\\n/*app-dashboard-search::ng-deep{\\n .wrapper{\\n margin-top: 7px;\\n margin-right: 10px;\\n }\\n\\n .search-input{\\n margin-top: 7px;\\n margin-right: 10px;\\n }\\n\\n .search-icon{\\n margin-top: 7px;\\n }\\n}*/\\n\\n.search-wrapper {\\n padding: 4px 7px 5px 0px;\\n position: relative;\\n background: white;\\n top: -28px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n:host {\\n position: relative;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.layout-header {\\n display: inline-flex;\\n}\\n\\n.layout-header-style {\\n width: 100%;\\n}\\n\\n.mdl-layout {\\n width: auto;\\n overflow-y: hidden;\\n}\\n\\n.wrapper {\\n box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.1607843137);\\n border-radius: 4px;\\n opacity: 1;\\n min-height: auto;\\n background-color: white;\\n margin: 20px;\\n margin-bottom: 10px;\\n margin-top: unset;\\n z-index: 100;\\n padding-left: 20px;\\n padding-right: 20px;\\n}\\n\\n.filter-options-grid {\\n background: #FAFBFE 0% 0% no-repeat padding-box;\\n border: 1px solid #E9E9E9;\\n border-radius: 4px;\\n margin-top: 5px;\\n margin-left: 0px;\\n margin-bottom: 5px;\\n}\\n\\n.filter-header {\\n padding-left: 20px;\\n padding-top: 10px;\\n position: relative;\\n display: flex;\\n}\\n\\n.filter-header .header-text {\\n text-align: left;\\n letter-spacing: 0px;\\n color: #3A5CE9;\\n opacity: 1;\\n font-size: 16px;\\n font-weight: bold;\\n padding: 10px;\\n}\\n\\n.filter-header img {\\n bottom: 10px;\\n left: 2px;\\n position: relative;\\n}\\n\\n.filter-grid-box {\\n padding: 0 10px;\\n}\\n\\n.select-box {\\n padding: 10px;\\n padding-top: 0px;\\n padding-bottom: 0px;\\n}\\n\\n/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.filter-name {\\n text-align: left;\\n color: #231F20;\\n font-weight: 800;\\n font-size: 13px;\\n margin-bottom: 0px;\\n}\\n\\n.action-button {\\n width: 100%;\\n justify-content: center;\\n display: flex;\\n}\\n\\n.action-button .close-action {\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 2px solid #DC1439;\\n border-radius: 20px;\\n opacity: 1;\\n color: #DC1439;\\n cursor: pointer;\\n align-items: center;\\n display: flex;\\n font-family: \\\"Source Sans Pro\\\";\\n margin: 10px;\\n background-color: white;\\n}\\n\\n.action-button .close-action:hover {\\n border-radius: 20px;\\n opacity: 1;\\n cursor: pointer;\\n font-family: \\\"Source Sans Pro\\\";\\n background-color: #DC1439;\\n margin: 10px;\\n color: white;\\n}\\n\\n.action-button .save-action {\\n background: #3A5CE9 0% 0% no-repeat padding-box;\\n border-radius: 20px;\\n opacity: 1;\\n align-items: center;\\n display: flex;\\n color: white;\\n margin: 10px;\\n font-family: \\\"Source Sans Pro\\\";\\n cursor: pointer;\\n background-color: #3A5CE9;\\n}\\n\\n.action-button .save-action:hover {\\n background: #1A2188 0% 0% no-repeat padding-box;\\n border-radius: 20px;\\n opacity: 1;\\n color: white;\\n font-family: \\\"Source Sans Pro\\\";\\n margin: 10px;\\n cursor: pointer;\\n background-color: #1A2188;\\n}\\n\\n.collapse-button {\\n color: #3A5CE9;\\n font-weight: bold;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.collapse-button .material-icons {\\n background-color: #3A5CE9;\\n color: white;\\n border-radius: 15px;\\n height: 25px;\\n width: 25px;\\n min-width: 25px;\\n margin-right: 10px;\\n}\\n\\n.collapse-button:hover {\\n color: #1A2188;\\n font-weight: bold;\\n}\\n\\n.collapse-button:hover .material-icons {\\n background-color: #1A2188;\\n color: white;\\n border-radius: 15px;\\n height: 25px;\\n width: 25px;\\n min-width: 25px;\\n margin-right: 10px;\\n}\\n\\n.mdl-button.mdl-flat {\\n box-shadow: none;\\n color: #fff;\\n background-color: #0080af;\\n}\\n\\n.dashboard-header {\\n font-size: 20px;\\n font-weight: bold;\\n padding-top: 5px;\\n height: 15px;\\n}\\n\\n.dashboard-sub-header {\\n padding-top: unset;\\n height: 10px;\\n font-size: 20px;\\n font-weight: bold;\\n}\\n\\n.dashboard-help-text {\\n font-size: 14px;\\n padding-top: unset;\\n height: 10px;\\n}\\n\\n.filter-helper-text {\\n font-size: 13px;\\n font-weight: bold;\\n padding-left: 10px;\\n display: inline-flex;\\n margin-bottom: 5px;\\n}\\n\\n.filter-helper-text .dashboard-protocol {\\n color: dodgerblue;\\n}\\n\\n.study-group-protocol {\\n position: relative;\\n font-size: 13px;\\n font-weight: 600;\\n padding-right: 5px;\\n display: flex;\\n color: dodgerblue;\\n display: inline-flex;\\n}\\n\\n.study-group-header {\\n display: inline-flex;\\n}\\n\\n.filter-value {\\n top: 2px;\\n position: relative;\\n font-size: 13px;\\n font-weight: 600;\\n padding-left: 5px;\\n display: flex;\\n background-color: #2998E3;\\n padding-right: 5px;\\n color: white;\\n margin-left: 5px;\\n display: inline-flex;\\n margin-bottom: 5px;\\n border-radius: 10px;\\n}\\n\\n.sample-filter-value {\\n top: 2px;\\n position: relative;\\n font-size: 14px;\\n font-weight: 600;\\n padding-left: 5px;\\n background-color: #1A2188;\\n color: white;\\n padding-right: 7px;\\n margin-left: 5px;\\n display: inline-flex;\\n}\\n\\n.horizontal-list {\\n margin: 0px;\\n padding-left: 0px;\\n}\\n\\n.mdl-layout-spacer {\\n flex-grow: 1;\\n width: 300px;\\n}\\n\\n.grid-class {\\n top: 20px;\\n position: relative;\\n}\\n\\napp-tracking-grid::ng-deep .table-header {\\n background: #2998E3 !important;\\n}\\n\\napp-tracking-grid::ng-deep .table-header div {\\n margin-left: 8px !important;\\n margin-right: 8px !important;\\n}\\n\\napp-tracking-grid::ng-deep .table-data {\\n max-height: calc(100vh - 485px) !important;\\n}\\n\\napp-tracking-grid::ng-deep .active-search-filter {\\n width: unset !important;\\n}\\n\\n.export-action-button {\\n float: right;\\n align-items: flex-end;\\n display: flex;\\n justify-content: flex-end;\\n width: 100%;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.export-action-button .export-button,\\n.export-action-button .select-button {\\n border-radius: 20px;\\n opacity: 1;\\n cursor: pointer;\\n align-items: center;\\n font-family: \\\"Source Sans Pro\\\";\\n text-align: center;\\n margin-left: 10px;\\n display: flex;\\n}\\n\\n.export-action-button .export-button .icon-logo,\\n.export-action-button .select-button .icon-logo {\\n left: -1px;\\n position: relative;\\n}\\n\\n.export-action-button .export-button {\\n background-color: #3A5CE9;\\n border-color: #3A5CE9;\\n color: white;\\n}\\n\\n.export-action-button .select-button {\\n background-color: white;\\n color: #3A5CE9;\\n border: 2px solid #3A5CE9;\\n}\\n\\n.export-action-button .view-button {\\n border: 2px solid #3A5CE9 !important;\\n background-color: white !important;\\n color: #3A5CE9 !important;\\n}\\n\\n.export-action-button .view-button:hover {\\n background-color: #3A5CE9 !important;\\n font-family: \\\"Source Sans Pro\\\";\\n color: white !important;\\n}\\n\\n.export-action-button .view-button:hover .icon-logo {\\n -webkit-filter: brightness(0) invert(1);\\n}\\n\\n.export-action-button .view-button:disabled {\\n pointer-events: none;\\n}\\n\\n.export-action-button .select-button {\\n width: 220px;\\n justify-content: center;\\n}\\n\\n.export-action-button .export-button:hover {\\n background-color: #1A2188;\\n border-color: #1A2188;\\n font-family: \\\"Source Sans Pro\\\";\\n color: white !important;\\n}\\n\\n.export-action-button .export-button:hover .icon-logo {\\n -webkit-filter: brightness(0) invert(1);\\n}\\n\\n.export-action-button .select-button:hover {\\n background-color: #1A2188;\\n border: 2px solid #1A2188;\\n color: white !important;\\n font-weight: bold;\\n}\\n\\n.export-action-button .active {\\n background-color: #3A5CE9;\\n color: white !important;\\n font-weight: bold;\\n}\\n\\n.toolBar {\\n display: flex;\\n margin-bottom: -15px;\\n align-items: center;\\n justify-content: space-between;\\n}\\n\\n.search-align {\\n float: left;\\n align-items: flex-start;\\n display: flex;\\n position: relative;\\n}\\n\\n.align-button {\\n width: auto !important;\\n}\\n\\n.quick-filter {\\n position: relative;\\n display: flex;\\n margin: 5px 0 0 10px;\\n white-space: nowrap;\\n align-items: center;\\n margin-bottom: unset;\\n font: normal normal 600 16px/9px Source Sans Pro;\\n color: #231F20;\\n}\\n\\ntimeframe-filter::ng-deep .filter-name {\\n width: 100% !important;\\n}\\n\\n.time-frame-option sample-tracking-select::ng-deep .wrapper {\\n margin-bottom: 3px;\\n}\\n\\n.time-frame-option sample-tracking-select::ng-deep .drop-toggle {\\n height: 22px;\\n min-height: unset !important;\\n background: #E9E9E9 !important;\\n}\\n\\n.time-frame-option sample-tracking-select::ng-deep .selected-item-list .selected-item {\\n margin: unset !important;\\n height: unset !important;\\n background: unset !important;\\n}\\n\\n.time-frame-option sample-tracking-select::ng-deep .selected-item-list .selected-item-text {\\n color: black !important;\\n padding: 2px;\\n padding-left: 5px;\\n font-size: 13px;\\n}\\n\\n.time-frame-option sample-tracking-select::ng-deep .selected-item-list .close-button {\\n display: none !important;\\n}\\n\\n.time-frame-option sample-tracking-select::ng-deep .clear-button {\\n display: none !important;\\n}\\n\\n.time-frame-option sample-tracking-select::ng-deep .drop-down-button .material-icons {\\n color: black !important;\\n}\\n\\n.time-frame-option sample-tracking-select::ng-deep .drop-toggle:hover {\\n border: 1px solid #E9E9E9 !important;\\n}\\n\\n.time-frame-option sample-tracking-select::ng-deep .drop-show {\\n top: 24px !important;\\n}\\n\\n.time-frame-option timeframe-filter::ng-deep .timeframe-wrapper .mdl-button {\\n height: 30px !important;\\n line-height: unset !important;\\n padding: 0 5px !important;\\n}\\n\\n.time-frame-option timeframe-filter::ng-deep .drop-show {\\n right: 30px !important;\\n top: 56px !important;\\n}\\n\\n.collpase-filters {\\n display: block !important;\\n}\\n\\n.collpase-filters .time-frame-option {\\n top: 3px;\\n position: relative;\\n}\\n\\n.tool-bar-quick-filter {\\n display: flex;\\n align-items: center;\\n}\\n\\n.grid-count {\\n padding: 5px;\\n font-size: 15px;\\n}\\n\\n.grid-count span {\\n font: normal normal bold 16px/12px Source Sans Pro;\\n}\\n\\n.active-list {\\n background: white;\\n border-radius: 10px;\\n display: flex !important;\\n position: absolute;\\n padding: 5px;\\n justify-content: center;\\n text-align: center;\\n flex-direction: column;\\n max-height: 250px;\\n overflow-y: auto;\\n border: 1px solid #3A5CE9;\\n width: 10%;\\n z-index: 1;\\n top: 63px;\\n}\\n\\n.checkbox_label {\\n padding: 5px;\\n font-size: 15px;\\n cursor: pointer;\\n}\\n\\n.checkbox_label:hover {\\n background-color: #FAFBFE;\\n border-radius: 10px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n

Reports {{getHeaderText()}}

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

My Generated Reports

\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n Disclaimer: History of Reports is available for the past 60 days.\\r\\n View All arrow_forward\\r\\n
\\r\\n
\\r\\n
\\r\\n

My Saved and Scheduled Reports

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n View All arrow_forward\\r\\n
\\r\\n
\\r\\n\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sample-tracking-reports.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n:host {\\n position: relative;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.wrapper {\\n box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.1607843137);\\n border-radius: 4px;\\n opacity: 1;\\n height: 100%;\\n background-color: white;\\n margin: 20px;\\n margin-bottom: 10px;\\n margin-top: unset;\\n padding-left: 20px;\\n padding-right: 20px;\\n}\\n\\nreport-grid::ng-deep .table {\\n width: 1400px;\\n}\\n\\nreport-grid::ng-deep .table-header {\\n background: #2998E3 !important;\\n}\\n\\nreport-grid::ng-deep .table-header div {\\n width: 222px !important;\\n}\\n\\nreport-grid::ng-deep .active-search-filter {\\n width: 100%;\\n}\\n\\nreport-grid::ng-deep .search-filter {\\n align-items: center;\\n justify-content: flex-start;\\n}\\n\\nreport-grid::ng-deep .search-filter .search {\\n width: -webkit-fill-available !important;\\n align-items: center;\\n justify-content: flex-start !important;\\n}\\n\\nreport-grid::ng-deep .table-row {\\n background-color: #FAFBFE;\\n}\\n\\nreport-grid::ng-deep .grid-actions {\\n padding-right: 90px;\\n padding-left: 10px;\\n}\\n\\n.wrapper-header {\\n display: inline-flex;\\n width: 100%;\\n max-width: 1575px;\\n}\\n\\n.header {\\n width: 100%;\\n}\\n\\n.report-title {\\n font-size: 20px;\\n font-weight: bold;\\n padding-top: 5px;\\n height: 15px;\\n}\\n\\n.report-header {\\n font-size: 18px;\\n font-weight: bold;\\n padding: 15px;\\n padding-bottom: unset;\\n padding-left: unset;\\n height: 15px;\\n}\\n\\n.table {\\n width: 100%;\\n background-color: #F1F3FE;\\n}\\n\\n.table-row {\\n height: 40px;\\n background-color: #F1F3FE;\\n color: #535051;\\n text-align: center;\\n font-size: 12px;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.table-header {\\n height: 40px;\\n background-color: #4CD5F7;\\n color: black;\\n font-family: \\\"Source Sans Pro\\\";\\n font-size: 14px;\\n}\\n\\n.table-search {\\n align-items: center;\\n display: flex;\\n border: 1px solid #C6D0F9;\\n border-radius: 2px;\\n height: 20px;\\n width: 80%;\\n}\\n\\n.action-style {\\n font-size: 12px;\\n font-family: \\\"Source Sans Pro\\\";\\n color: #231F20;\\n opacity: 1;\\n font-weight: bold;\\n font: normal;\\n}\\n\\n.action-type {\\n padding-right: 30px;\\n}\\n\\n.action-type-end {\\n padding-right: 20px;\\n}\\n\\n.table-toolbar {\\n width: 100%;\\n margin-bottom: 100px;\\n}\\n\\n.search-align {\\n float: left;\\n align-items: flex-start;\\n display: flex;\\n top: 20px;\\n position: relative;\\n}\\n\\n.timeframe-filter-align {\\n float: right;\\n align-items: flex-end;\\n display: flex;\\n padding-bottom: 20px;\\n}\\n\\n.report-footer {\\n font-size: 12px;\\n font-weight: bold;\\n margin-bottom: 40px;\\n width: 100%;\\n max-width: 1575px;\\n}\\n\\n.disclaimer {\\n color: #6C2FAC;\\n float: left;\\n padding-bottom: 10px;\\n}\\n\\n.load-option {\\n color: #3A5CE9;\\n float: right;\\n cursor: pointer;\\n font-size: 15px;\\n padding-bottom: 10px;\\n}\\n\\n.load-option .material-icons {\\n font-size: 15px;\\n font-weight: bold;\\n padding-bottom: unset;\\n background-color: white;\\n color: #3A5CE9;\\n border: 2px solid #3A5CE9;\\n border-radius: 25px;\\n position: relative;\\n top: 2px;\\n}\\n\\n.load-option:hover {\\n color: #1A2188;\\n}\\n\\n.load-option:hover .material-icons {\\n color: #1A2188;\\n border: 2px solid #1A2188;\\n}\\n\\n.action-button {\\n align-items: flex-end;\\n display: flex;\\n padding-bottom: 10px;\\n justify-content: flex-end;\\n width: 100%;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.action-button .export-button {\\n border: 2px solid #3A5CE9;\\n border-radius: 25px;\\n opacity: 1;\\n height: 45px;\\n font: normal normal bold 15px/15px Source Sans Pro;\\n justify-content: center;\\n width: 170px;\\n cursor: pointer;\\n align-items: center;\\n background-color: white;\\n color: #3A5CE9;\\n text-align: center;\\n margin-right: 10px;\\n display: flex;\\n}\\n\\n.action-button .export-button .icon-logo {\\n left: 5px;\\n position: relative;\\n}\\n\\n.action-button .export-button:hover {\\n background-color: #3A5CE9;\\n border: 2px solid #3A5CE9;\\n color: white;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.action-button .export-button:hover .icon-logo {\\n -webkit-filter: brightness(0) invert(1);\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n

Generated Reports {{getHeaderText()}}

\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n Disclaimer: History of Reports is available for the past 60 days.\\r\\n
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./view-generated-reports.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n:host {\\n position: relative;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.report-footer {\\n font-size: 12px;\\n font-weight: bold;\\n margin-bottom: 40px;\\n width: 100%;\\n}\\n\\n.disclaimer {\\n color: #6C2FAC;\\n float: left;\\n padding-bottom: 10px;\\n}\\n\\n.wrapper {\\n box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.1607843137);\\n border-radius: 4px;\\n opacity: 1;\\n height: 100%;\\n /* width: 90%;\\n max-width: 1400px;*/\\n background-color: white;\\n margin: 20px;\\n margin-bottom: 10px;\\n margin-top: unset;\\n padding-left: 20px;\\n padding-right: 20px;\\n}\\n\\n.dashboard-header {\\n font-size: 20px;\\n font-weight: bold;\\n padding-top: 20px;\\n height: 15px;\\n}\\n\\n.dashboard-helper-text {\\n font-size: 14px;\\n font-weight: bold;\\n margin-bottom: 5px;\\n}\\n\\n.dashboard-helper-text .dashboard-protocol {\\n color: #231F20;\\n}\\n\\n.layout-header {\\n display: inline-flex;\\n width: 100%;\\n max-width: 1575px;\\n}\\n\\n.layout-header-style {\\n width: 100%;\\n}\\n\\nreport-grid::ng-deep .table {\\n width: 1400px;\\n}\\n\\nreport-grid::ng-deep .table-header {\\n background: #2998E3 !important;\\n}\\n\\nreport-grid::ng-deep .table-header div {\\n width: 222px !important;\\n}\\n\\nreport-grid::ng-deep .active-search-filter {\\n width: 100%;\\n}\\n\\nreport-grid::ng-deep .search-filter {\\n align-items: center;\\n justify-content: flex-start;\\n}\\n\\nreport-grid::ng-deep .search-filter .search {\\n width: -webkit-fill-available !important;\\n align-items: center;\\n justify-content: flex-start !important;\\n}\\n\\nreport-grid::ng-deep .table-row {\\n background-color: #FAFBFE;\\n}\\n\\nreport-grid::ng-deep .grid-actions {\\n padding-right: 90px;\\n padding-left: 10px;\\n}\\n\\nsearch-bar::ng-deep .search-container {\\n width: 300px;\\n height: 40px;\\n}\\n\\n.report-title {\\n font-size: 20px;\\n font-weight: bold;\\n padding-top: 5px;\\n height: 15px;\\n}\\n\\n.report-header {\\n font-size: 18px;\\n font-weight: bold;\\n padding-top: 5px;\\n height: 15px;\\n}\\n\\n.action-style {\\n font-size: 12px;\\n font-family: \\\"Source Sans Pro\\\";\\n color: #231F20;\\n opacity: 1;\\n font-weight: bold;\\n font: normal;\\n}\\n\\n.action-type {\\n padding-right: 30px;\\n}\\n\\n.action-type-end {\\n padding-right: 20px;\\n}\\n\\n.table-toolbar {\\n width: 100%;\\n display: inline-flex;\\n}\\n\\n.search-align {\\n float: left;\\n align-items: flex-start;\\n display: flex;\\n position: relative;\\n}\\n\\n.timeframe-filter-align {\\n float: right;\\n align-items: flex-end;\\n display: flex;\\n padding-bottom: 20px;\\n}\\n\\n.report-footer {\\n font-size: 12px;\\n font-weight: bold;\\n margin-bottom: 40px;\\n width: 100%;\\n}\\n\\n.disclaimer {\\n color: #6C2FAC;\\n float: left;\\n padding-bottom: 10px;\\n}\\n\\n.load-option {\\n color: #3A5CE9;\\n float: right;\\n cursor: pointer;\\n font-size: 15px;\\n padding-bottom: 10px;\\n}\\n\\n.load-option .material-icons {\\n font-size: 15px;\\n font-weight: bold;\\n padding-bottom: unset;\\n background-color: white;\\n color: #3A5CE9;\\n border: 2px solid #3A5CE9;\\n border-radius: 25px;\\n position: relative;\\n top: 2px;\\n}\\n\\n.load-option:hover {\\n color: #1A2188;\\n}\\n\\n.load-option:hover .material-icons {\\n color: #1A2188;\\n border: 2px solid #1A2188;\\n}\\n\\n.layout-header {\\n display: inline-flex;\\n}\\n\\n.layout-header-style {\\n width: 100%;\\n}\\n\\n.action-button {\\n align-items: flex-end;\\n display: flex;\\n padding-bottom: 10px;\\n justify-content: flex-end;\\n width: 100%;\\n max-width: 1275px;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.action-button .export-button {\\n border: 2px solid #3A5CE9;\\n border-radius: 25px;\\n opacity: 1;\\n height: 45px;\\n font: normal normal bold 15px/15px Source Sans Pro;\\n justify-content: center;\\n width: 170px;\\n cursor: pointer;\\n align-items: center;\\n background-color: white;\\n color: #3A5CE9;\\n text-align: center;\\n margin-right: 10px;\\n display: flex;\\n}\\n\\n.action-button .export-button .icon-logo {\\n left: 5px;\\n position: relative;\\n}\\n\\n.action-button .export-button:hover {\\n background-color: #3A5CE9;\\n border: 2px solid #3A5CE9;\\n color: white;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.action-button .export-button:hover .icon-logo {\\n -webkit-filter: brightness(0) invert(1);\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n

Scheduled Reports {{getHeaderText()}}

\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./view-scheduled-reports.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n:host {\\n position: relative;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.wrapper {\\n box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.1607843137);\\n border-radius: 4px;\\n opacity: 1;\\n height: 100%;\\n /* width: 90%;\\n max-width: 1400px;*/\\n background-color: white;\\n margin: 20px;\\n margin-bottom: 10px;\\n margin-top: unset;\\n padding-left: 20px;\\n padding-right: 20px;\\n}\\n\\n.dashboard-header {\\n font-size: 20px;\\n font-weight: bold;\\n padding-top: 20px;\\n height: 15px;\\n}\\n\\n.dashboard-helper-text {\\n font-size: 14px;\\n font-weight: bold;\\n margin-bottom: 5px;\\n}\\n\\n.dashboard-helper-text .dashboard-protocol {\\n color: #231F20;\\n}\\n\\n.layout-header {\\n display: inline-flex;\\n width: 100%;\\n max-width: 1575px;\\n}\\n\\n.layout-header-style {\\n width: 100%;\\n}\\n\\nreport-grid::ng-deep .table {\\n width: 1400px;\\n}\\n\\nreport-grid::ng-deep .table-header {\\n background: #2998E3 !important;\\n}\\n\\nreport-grid::ng-deep .table-header div {\\n width: 222px !important;\\n}\\n\\nreport-grid::ng-deep .active-search-filter {\\n width: 100%;\\n}\\n\\nreport-grid::ng-deep .search-filter {\\n align-items: center;\\n justify-content: flex-start;\\n}\\n\\nreport-grid::ng-deep .search-filter .search {\\n width: -webkit-fill-available !important;\\n align-items: center;\\n justify-content: flex-start !important;\\n}\\n\\nreport-grid::ng-deep .table-row {\\n background-color: #FAFBFE;\\n}\\n\\nreport-grid::ng-deep .grid-actions {\\n padding-right: 90px;\\n padding-left: 10px;\\n}\\n\\nsearch-bar::ng-deep .search-container {\\n width: 300px;\\n height: 40px;\\n}\\n\\n.report-title {\\n font-size: 20px;\\n font-weight: bold;\\n padding-top: 5px;\\n height: 15px;\\n}\\n\\n.report-header {\\n font-size: 18px;\\n font-weight: bold;\\n padding-top: 5px;\\n height: 15px;\\n}\\n\\n.action-style {\\n font-size: 12px;\\n font-family: \\\"Source Sans Pro\\\";\\n color: #231F20;\\n opacity: 1;\\n font-weight: bold;\\n font: normal;\\n}\\n\\n.action-type {\\n padding-right: 30px;\\n}\\n\\n.action-type-end {\\n padding-right: 20px;\\n}\\n\\n.table-toolbar {\\n width: 100%;\\n display: inline-flex;\\n}\\n\\n.search-align {\\n float: left;\\n align-items: flex-start;\\n display: flex;\\n position: relative;\\n}\\n\\n.timeframe-filter-align {\\n float: right;\\n align-items: flex-end;\\n display: flex;\\n padding-bottom: 20px;\\n}\\n\\n.report-footer {\\n font-size: 12px;\\n font-weight: bold;\\n margin-bottom: 40px;\\n width: 100%;\\n}\\n\\n.disclaimer {\\n color: #6C2FAC;\\n float: left;\\n padding-bottom: 10px;\\n}\\n\\n.load-option {\\n color: #3A5CE9;\\n float: right;\\n cursor: pointer;\\n font-size: 15px;\\n padding-bottom: 10px;\\n}\\n\\n.load-option .material-icons {\\n font-size: 15px;\\n font-weight: bold;\\n padding-bottom: unset;\\n background-color: white;\\n color: #3A5CE9;\\n border: 2px solid #3A5CE9;\\n border-radius: 25px;\\n position: relative;\\n top: 2px;\\n}\\n\\n.load-option:hover {\\n color: #1A2188;\\n}\\n\\n.load-option:hover .material-icons {\\n color: #1A2188;\\n border: 2px solid #1A2188;\\n}\\n\\n.layout-header {\\n display: inline-flex;\\n}\\n\\n.layout-header-style {\\n width: 100%;\\n}\\n\\n.action-button {\\n align-items: flex-end;\\n display: flex;\\n padding-bottom: 10px;\\n justify-content: flex-end;\\n width: 100%;\\n max-width: 1275px;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.action-button .export-button {\\n border: 2px solid #3A5CE9;\\n border-radius: 25px;\\n opacity: 1;\\n height: 45px;\\n font: normal normal bold 15px/15px Source Sans Pro;\\n justify-content: center;\\n width: 170px;\\n cursor: pointer;\\n align-items: center;\\n background-color: white;\\n color: #3A5CE9;\\n text-align: center;\\n margin-right: 10px;\\n display: flex;\\n}\\n\\n.action-button .export-button .icon-logo {\\n left: 5px;\\n position: relative;\\n}\\n\\n.action-button .export-button:hover {\\n background-color: #3A5CE9;\\n border: 2px solid #3A5CE9;\\n color: white;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.action-button .export-button:hover .icon-logo {\\n -webkit-filter: brightness(0) invert(1);\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n
{{title}}
\\r\\n
\\r\\n Type a Unique Report Name and apply filter criteria or Select from your previously saved Reports in order to\\r\\n generate a new report.\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{filterErrorMsg}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n {{filterErrorMsg}}\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Selected Columns\\r\\n {{columnSettingsInfo?.selectedColumns?.length ? columnSettingsInfo?.selectedColumns?.length : '-' }}\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n {{reportMsg}}\\r\\n Do you want to Save this report for future use?\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n {{reportMsg}}\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n Edit Columns\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./new-report.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.generate-report-container {\\n box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.1607843137);\\n border-radius: 4px;\\n opacity: 1;\\n height: 100%;\\n max-width: 1165px;\\n background-color: white;\\n margin: 20px 20px 10px;\\n margin-bottom: 10px;\\n margin-top: unset;\\n padding-left: 20px;\\n padding-right: 20px;\\n}\\n\\n.header {\\n margin: 10px 0;\\n}\\n\\n.header .title {\\n height: 20px;\\n font: normal normal 600 20px/25px \\\"Source Sans Pro\\\";\\n margin: 10px 0;\\n}\\n\\n.header .sub-title {\\n font: normal normal 600 12px/15px \\\"Source Sans Pro\\\";\\n}\\n\\n.my-filters {\\n margin: 10px 0;\\n display: flex;\\n justify-content: center;\\n}\\n\\n.report-actions {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n\\n.report-actions button {\\n border: 2px solid #3A5CE9;\\n border-radius: 20px;\\n cursor: pointer;\\n background-color: #3A5CE9;\\n color: white;\\n font: normal normal 500 16px/12px \\\"Source Sans Pro\\\";\\n margin: 10px 5px;\\n width: 170px;\\n height: 38px;\\n}\\n\\n.report-actions button:hover {\\n background: #1A2188 0% 0% no-repeat padding-box;\\n border: 2px solid #3A5CE9;\\n}\\n\\n.report-actions .disabled {\\n pointer-events: none;\\n background: #C6D0F9 0% 0% no-repeat padding-box;\\n border: 2px solid #C6D0F9;\\n}\\n\\n.report-actions img {\\n width: 20px;\\n height: 20px;\\n margin: -3px -3px 0 3px;\\n}\\n\\n.report-actions .custom-img {\\n width: 24px;\\n height: 24px;\\n}\\n\\n.error-msg {\\n color: red;\\n font: normal normal bold 12px/9px \\\"Source Sans Pro\\\";\\n}\\n\\n.report-name-error {\\n color: red;\\n font: normal normal bold 12px/9px \\\"Source Sans Pro\\\";\\n text-align: center;\\n padding-bottom: 10px;\\n}\\n\\n.save-report-options {\\n background: #F1F3FE 0% 0% no-repeat padding-box;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n flex-direction: column;\\n margin-right: 20px;\\n}\\n\\n.save-report-options .msg {\\n padding: 20px;\\n font: normal normal bold 16px/18px \\\"Source Sans Pro\\\";\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n}\\n\\n.save-report-options .msg .report-msg {\\n color: #069D06;\\n}\\n\\n.save-report-options .save-actions {\\n padding: 30px 0 15px 0;\\n}\\n\\n.save-report-options .save-actions .close {\\n border: 2px solid #DC1439;\\n border-radius: 19px;\\n font: normal normal 600 16px/12px \\\"Source Sans Pro\\\";\\n color: #DC1439;\\n margin-right: 15px;\\n}\\n\\n.save-report-options .save-actions .save {\\n border: 2px solid #3A5CE9;\\n border-radius: 20px;\\n cursor: pointer;\\n background-color: #3A5CE9;\\n color: white;\\n font: normal normal 500 16px/12px \\\"Source Sans Pro\\\";\\n margin: 10px 5px;\\n}\\n\\n.save-report-options .save-actions .save:hover {\\n background: #1A2188 0% 0% no-repeat padding-box;\\n border: 2px solid #3A5CE9;\\n}\\n\\n.edit-view {\\n background: white 0% 0% no-repeat padding-box;\\n padding: 10px;\\n margin: 10px;\\n border: 2px solid #C6D0F9;\\n margin-left: unset;\\n display: inline-flex;\\n width: 98%;\\n border-radius: 15px;\\n justify-content: space-between;\\n}\\n\\n.edit-view div:first-child {\\n align-content: center;\\n font: normal normal bold 15px/18px \\\"Source Sans Pro\\\";\\n}\\n\\n.edit-view div:first-child span {\\n margin-left: 10px;\\n padding: 9px;\\n border-radius: 50px;\\n background-color: #C6D0F9;\\n}\\n\\n.edit-view button {\\n border-radius: 20px;\\n cursor: pointer;\\n color: white;\\n font: normal normal 500 16px/12px \\\"Source Sans Pro\\\";\\n height: 38px;\\n}\\n\\n.edit-view button:hover {\\n background: white 0% 0% no-repeat padding-box;\\n}\\n\\n.report-tooltip {\\n margin: 1rem -5rem !important;\\n width: 6rem;\\n background: #C6D0F9 !important;\\n color: #000000 !important;\\n font-weight: bold;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n

Patient Number Search Results

\\r\\n\\r\\n 0\\\">\\r\\n
\\r\\n {{resultCount}} results\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n {{emptyPlaceholder}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./subject-search-overview.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","var escape = require(\"../../../../../node_modules/css-loader/lib/url/escape.js\");\nexports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.overview-container {\\n box-shadow: 0px 0px 15px 3px #bebcbc;\\n border-radius: 4px;\\n opacity: 1;\\n height: 100%;\\n margin: 5px;\\n background-color: white;\\n padding-left: 20px;\\n padding-top: 5px;\\n font-family: \\\"Source Sans Pro\\\";\\n margin-left: 20px;\\n max-width: 1300px;\\n}\\n\\n.tracking-heading {\\n font: normal normal bold 20px/25px \\\"Source Sans Pro\\\";\\n}\\n\\n.grid-heading {\\n font: normal normal bold 16px/28px \\\"Source Sans Pro\\\";\\n margin: 1rem 0 1rem 0;\\n}\\n\\napp-tracking-grid::ng-deep .table-row span {\\n margin: 10px !important;\\n}\\n\\napp-tracking-grid::ng-deep .table-row .row-content:nth-last-child(2) {\\n font-size: 0;\\n background-image: url(\" + escape(require(\"./../../../../../images/sample_tracking/visit-icon.svg\")) + \");\\n background-repeat: no-repeat;\\n background-size: 20px;\\n filter: invert(0.3) sepia(1) saturate(5) hue-rotate(175deg);\\n color: #3A5CE9;\\n position: relative;\\n top: 8px;\\n margin-top: unset !important;\\n right: -50px;\\n}\\n\\napp-tracking-grid::ng-deep .table-row .row-content:last-child {\\n font-size: 0;\\n background-image: url(\" + escape(require(\"./../../../../../images/sample_tracking/sample-icon.svg\")) + \");\\n background-repeat: no-repeat;\\n background-size: 20px;\\n filter: invert(0.3) sepia(1) saturate(5) hue-rotate(175deg);\\n color: #3A5CE9;\\n top: 8px;\\n position: relative;\\n margin-top: unset !important;\\n right: -10px !important;\\n}\\n\\napp-tracking-grid::ng-deep .active-search-filter {\\n width: unset !important;\\n padding-right: 20px;\\n}\\n\\napp-tracking-grid::ng-deep .search-filter {\\n align-items: center;\\n justify-content: flex-start;\\n}\\n\\napp-tracking-grid::ng-deep .search-filter .search {\\n width: -webkit-fill-available !important;\\n align-items: center;\\n justify-content: flex-start !important;\\n}\\n\\napp-tracking-grid::ng-deep .search-filter .search .search-box {\\n width: 75% !important;\\n}\\n\\napp-tracking-grid::ng-deep .header {\\n margin-left: 10px !important;\\n}\\n\\napp-tracking-grid::ng-deep .table-header .header:nth-last-child(2) {\\n justify-content: center;\\n}\\n\\napp-tracking-grid::ng-deep .is-active {\\n margin-top: 20px !important;\\n top: 1px;\\n z-index: 1;\\n}\\n\\napp-tracking-grid::ng-deep .no-data span {\\n max-width: 1300px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"build/fonts/visit-icon.svg\";","module.exports = \"build/fonts/sample-icon.svg\";","module.exports = \"
\\r\\n \\r\\n

{{headerLabel}}

\\r\\n\\r\\n
\\r\\n Protocol: {{patientDetails.protocol ? patientDetails.protocol : '-'}}\\r\\n Project No.: {{patientDetails.projectNumber ? patientDetails.projectNumber : '-'}}\\r\\n Investigator Name: {{patientDetails.investigatorName ? patientDetails.investigatorName : '-'}}\\r\\n Investigator No.: {{patientDetails.investigatorNumber ? patientDetails.investigatorNumber : '-'}}\\r\\n Country: {{patientDetails.country ? patientDetails.country : '-'}}\\r\\n Screening No.: {{patientDetails.screeningNumber ? patientDetails.screeningNumber : '-'}}\\r\\n Age/ Date of Birth: {{patientDetails.age ? patientDetails.age : '-'}}\\r\\n\\r\\n
\\r\\n\\r\\n 0\\\">\\r\\n
\\r\\n {{resultCount}} results\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n {{emptyPlaceholder}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./subject-details.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.overview-container {\\n box-shadow: 0px 0px 15px 3px #bebcbc;\\n border-radius: 4px;\\n opacity: 1;\\n height: 100%;\\n margin: 5px;\\n background-color: white;\\n padding-left: 20px;\\n padding-top: 5px;\\n font-family: \\\"Source Sans Pro\\\";\\n margin-left: 20px;\\n margin-right: 20px;\\n margin-bottom: 20px;\\n max-width: 1300px;\\n}\\n\\n.tracking-heading {\\n font: normal normal bold 20px/25px \\\"Source Sans Pro\\\";\\n}\\n\\n.tracking-details {\\n display: flex;\\n margin: 1rem 0 1rem 0;\\n font: normal normal bold 14px/12px \\\"Source Sans Pro\\\";\\n}\\n\\n.tracking-details span {\\n padding-right: 20px;\\n line-height: 1.4;\\n}\\n\\n.active {\\n font-weight: normal;\\n}\\n\\n.grid-heading {\\n font: normal normal bold 16px/28px \\\"Source Sans Pro\\\";\\n}\\n\\n.grid-no-data {\\n display: flex;\\n font: normal normal bold 16px/28px \\\"Source Sans Pro\\\";\\n justify-content: center;\\n margin: 50px;\\n}\\n\\napp-tracking-grid::ng-deep .header {\\n margin-left: 6px !important;\\n width: 160px !important;\\n}\\n\\napp-tracking-grid::ng-deep .header:first-child {\\n width: 110px !important;\\n}\\n\\napp-tracking-grid::ng-deep .active-search-filter {\\n width: unset !important;\\n padding-right: 20px;\\n}\\n\\napp-tracking-grid::ng-deep .search-filter {\\n align-items: center;\\n justify-content: flex-start;\\n}\\n\\napp-tracking-grid::ng-deep .search-filter .search {\\n width: 160px !important;\\n align-items: center;\\n justify-content: flex-start !important;\\n}\\n\\napp-tracking-grid::ng-deep .search-filter .search .search-box {\\n width: 75% !important;\\n}\\n\\napp-tracking-grid::ng-deep .search-filter .search .header-search-close {\\n right: 37px !important;\\n}\\n\\napp-tracking-grid::ng-deep .search-filter .search:first-child {\\n width: 110px !important;\\n}\\n\\napp-tracking-grid::ng-deep .search-filter .search:first-child .header-search-close {\\n right: 25px !important;\\n}\\n\\napp-tracking-grid::ng-deep .table-row .row-content {\\n width: 151px !important;\\n position: relative;\\n margin: 7px !important;\\n}\\n\\napp-tracking-grid::ng-deep .table-row .row-content:first-child {\\n width: 100px !important;\\n}\\n\\napp-tracking-grid::ng-deep .is-active {\\n margin-top: 20px;\\n top: 1px;\\n z-index: 1;\\n}\\n\\napp-tracking-grid::ng-deep .no-data span {\\n max-width: 700px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n Sample Monitoring Notifications\\r\\n
\\r\\n
0\\\">\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sample-monitoring.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n:host {\\n position: relative;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.wrapper {\\n box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.1607843137);\\n border-radius: 4px;\\n opacity: 1;\\n height: 100%;\\n background-color: white;\\n margin: 20px;\\n margin-bottom: 10px;\\n margin-top: unset;\\n padding-left: 20px;\\n padding-right: 20px;\\n max-width: 1600px;\\n}\\n\\n.layout-header {\\n display: inline-flex;\\n width: 100%;\\n max-width: 1575px;\\n font-size: 20px;\\n font-weight: bold;\\n padding-top: 20px;\\n height: 15px;\\n}\\n\\n.mdl-tabs__tab-bar {\\n font-family: \\\"Source Sans Pro\\\";\\n padding-left: unset !important;\\n z-index: 100;\\n position: relative;\\n border-bottom: 1px solid white !important;\\n}\\n\\n.mdl-tabs__tab.is-active {\\n background: unset !important;\\n border-bottom: 3px solid #2998E3 !important;\\n color: #3A5CE9 !important;\\n font-weight: bold;\\n cursor: default;\\n}\\n\\n.mdl-tabs__tab {\\n background: unset !important;\\n border: unset !important;\\n font-size: 18px;\\n margin-right: 30px;\\n}\\n\\n.mdl-tabs {\\n display: flex;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sample-monitoring-notifications.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","var escape = require(\"../../../../../node_modules/css-loader/lib/url/escape.js\");\nexports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".timeframe-filter-align {\\n justify-content: flex-end;\\n display: flex;\\n bottom: 70px;\\n max-width: 1500px;\\n z-index: 1;\\n}\\n\\n.grid-class {\\n position: relative;\\n}\\n\\napp-tracking-grid::ng-deep {\\n /*\\n .link.T {\\n color: #231F20 !important;\\n cursor: default !important;\\n pointer-events: none !important;\\n\\n }*/\\n /*\\n .spinner-wrapper {\\n padding: unset !important;\\n position: relative;\\n bottom: 100px;\\n }\\n */\\n}\\n\\napp-tracking-grid::ng-deep .table-row .row-content {\\n margin: 8px !important;\\n margin-left: 6px !important;\\n}\\n\\napp-tracking-grid::ng-deep .table-row .row-content:first-child {\\n font-size: 0 !important;\\n margin: unset !important;\\n padding-left: 8px !important;\\n width: 560px;\\n}\\n\\napp-tracking-grid::ng-deep .action {\\n margin: 0 !important;\\n font-size: 0;\\n color: transparent;\\n}\\n\\napp-tracking-grid::ng-deep .action.F {\\n background-image: url(\" + escape(require(\"./../../../../../images/sample_tracking/edit.svg\")) + \");\\n background-repeat: no-repeat;\\n background-size: 18px;\\n background-position: left center;\\n pointer-events: auto !important;\\n cursor: pointer;\\n visibility: visible;\\n width: 30px !important;\\n height: 18px !important;\\n right: 20px !important;\\n position: relative;\\n}\\n\\napp-tracking-grid::ng-deep .action.new.\\\\31 {\\n background-image: url(\" + escape(require(\"./../../../../../images/sample_tracking/new.svg\")) + \");\\n background-repeat: no-repeat;\\n background-size: 25px;\\n background-position: left center;\\n visibility: visible;\\n height: 18px !important;\\n}\\n\\napp-tracking-grid::ng-deep span:has(.action) {\\n position: relative;\\n visibility: hidden;\\n font-size: 0;\\n justify-content: center;\\n}\\n\\napp-tracking-grid::ng-deep .active-search-filter {\\n width: unset !important;\\n max-width: 1500px !important;\\n padding-right: 20px;\\n margin-top: -60px;\\n}\\n\\napp-tracking-grid::ng-deep .search-filter {\\n align-items: center;\\n justify-content: flex-start;\\n}\\n\\napp-tracking-grid::ng-deep .search-filter .search:first-child {\\n width: 560px !important;\\n}\\n\\napp-tracking-grid::ng-deep .search-filter .search {\\n width: -webkit-fill-available !important;\\n align-items: center;\\n justify-content: flex-start !important;\\n}\\n\\napp-tracking-grid::ng-deep .search-filter .search .search-box {\\n width: 75% !important;\\n}\\n\\napp-tracking-grid::ng-deep .is-active {\\n margin-top: 20px;\\n top: 1px;\\n z-index: 1;\\n}\\n\\napp-tracking-grid::ng-deep .header {\\n margin-left: 10px !important;\\n}\\n\\napp-tracking-grid::ng-deep .table-header .header:first-child {\\n width: 50px !important;\\n}\\n\\napp-tracking-grid::ng-deep .no-data span {\\n max-width: 1500px;\\n}\\n\\napp-tracking-grid::ng-deep app-pagination::ng-deep .pagination-wrapper {\\n max-width: 1500px;\\n}\\n\\n.report-footer {\\n font-size: 12px;\\n font-weight: bold;\\n margin-bottom: 40px;\\n width: 100%;\\n}\\n\\n.disclaimer {\\n color: #6C2FAC;\\n float: left;\\n padding-bottom: 10px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"build/fonts/edit.svg\";","module.exports = \"build/fonts/new.svg\";","module.exports = \"
\\r\\n
\\r\\n

Create New Study Grouping

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

Select Studies:

\\r\\n

\\r\\n Please, select with checkmark the Studies you want to add to the new Grouping and type a unique Grouping\\r\\n name.\\r\\n

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

Study Group should have atleast one Study

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

Study Grouping Name: \\r\\n *\\r\\n This Field is required\\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{titleErrorMessage}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./create-study-group.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.dialog-title {\\n width: auto;\\n height: 41px;\\n background-color: #2998E3;\\n background: #2998E3 0% 0% no-repeat padding-box;\\n border-radius: 3px 3px 0px 0px;\\n opacity: 1;\\n font-family: \\\"Source Sans Pro\\\";\\n text-align: center;\\n color: white;\\n display: flex;\\n}\\n\\n.dialog-title .mdl-dialog__title {\\n font-size: 18px;\\n padding: 10px;\\n text-align: center;\\n width: 100%;\\n}\\n\\n.dialog-title .mdl-button {\\n top: 5px;\\n}\\n\\n.wrapper {\\n background-color: #FAFBFE;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.content-header {\\n font-size: 14px;\\n text-align: center;\\n font-family: \\\"Source Sans Pro\\\";\\n color: black;\\n}\\n\\n.content-header .content-header-text {\\n font-weight: bold;\\n line-height: 0px;\\n}\\n\\n.error-message {\\n color: red;\\n text-align: center;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.error-message .error-message-text {\\n line-height: 0px;\\n}\\n\\n.checkbox {\\n columns: 1 20em;\\n position: relative;\\n color: black;\\n left: 50px;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.checkbox input {\\n margin-right: 0.25em;\\n}\\n\\n.checkbox label {\\n border: 1px transparent solid;\\n display: inline-block;\\n width: 12em;\\n}\\n\\n.form-container {\\n position: relative;\\n top: 30px;\\n height: 100px;\\n}\\n\\n.required:hover + .hide {\\n display: block;\\n position: relative;\\n left: 170px;\\n background-color: #FAFBFE;\\n background: #F3F5FE 0% 0% no-repeat padding-box;\\n box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.1215686275);\\n border-radius: 2px;\\n opacity: 1;\\n bottom: 10px;\\n font-family: \\\"Source Sans Pro\\\";\\n color: black;\\n font-weight: normal;\\n}\\n\\n.required {\\n color: #3A5CE9;\\n cursor: pointer;\\n}\\n\\n.hide {\\n display: none;\\n}\\n\\n.group-name-text {\\n font-size: 14px;\\n padding-top: 20px;\\n left: 32.5%;\\n position: relative;\\n line-height: 0px;\\n font-weight: bold;\\n font-family: \\\"Source Sans Pro\\\";\\n color: black;\\n width: fit-content;\\n}\\n\\n.group-name-container {\\n left: 32%;\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 1px solid #828081;\\n border-radius: 10px;\\n height: 50px;\\n font-family: \\\"Source Sans Pro\\\";\\n display: flex;\\n justify-content: center;\\n position: relative;\\n width: 40%;\\n}\\n\\n.group-name-container .group-name-textfield {\\n position: relative;\\n left: 15px;\\n width: 90%;\\n}\\n\\n.group-name-container:hover {\\n border: 1px solid rgba(58, 92, 233, 0.7019607843);\\n box-shadow: 0 0 5px 1px #08F;\\n}\\n\\n.mdl-textfield {\\n left: 20px;\\n width: 80%;\\n display: flex;\\n position: relative;\\n font-family: \\\"Source Sans Pro\\\";\\n padding: unset;\\n}\\n\\n.mdl-textfield__input {\\n border: unset !important;\\n outline: unset !important;\\n font-size: 14px;\\n position: relative;\\n color: black;\\n font-family: \\\"Source Sans Pro\\\";\\n padding: unset;\\n justify-content: center;\\n display: flex;\\n}\\n\\n.mdl-textfield__label {\\n color: #B3B2B3 !important;\\n outline: unset !important;\\n font-family: \\\"Source Sans Pro\\\";\\n background: unset !important;\\n bottom: 15px;\\n top: unset;\\n}\\n\\n.error-msg {\\n color: red;\\n font-size: 14px;\\n top: 5px;\\n left: 33.5%;\\n font-family: \\\"Source Sans Pro\\\";\\n position: relative;\\n}\\n\\n.mdl-dialog__actions {\\n display: flex;\\n flex-wrap: wrap;\\n align-content: space-around;\\n justify-content: center;\\n padding-bottom: 10px;\\n padding-top: 40px;\\n}\\n\\n.mdl-dialog__actions .close-action {\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 2px solid #DC1439;\\n border-radius: 20px;\\n opacity: 1;\\n width: 130px;\\n font-family: \\\"Source Sans Pro\\\";\\n justify-content: center;\\n color: #DC1439;\\n font-size: 16px;\\n cursor: pointer;\\n background-color: white;\\n}\\n\\n.mdl-dialog__actions .close-action:hover {\\n border-radius: 20px;\\n opacity: 1;\\n cursor: pointer;\\n background-color: #DC1439;\\n color: white;\\n}\\n\\n.mdl-dialog__actions .save-action {\\n background: #3A5CE9 0% 0% no-repeat padding-box;\\n border-radius: 20px;\\n opacity: 1;\\n font-family: \\\"Source Sans Pro\\\";\\n width: 130px;\\n justify-content: center;\\n font-size: 15px;\\n color: white;\\n cursor: pointer;\\n background-color: #3A5CE9;\\n padding-right: 10px;\\n}\\n\\n.mdl-dialog__actions .save-action:hover {\\n background: #1A2188 0% 0% no-repeat padding-box;\\n background-color: #1A2188;\\n}\\n\\n.mdl-dialog__actions .save-action:disabled,\\n.mdl-dialog__actions button[disabled] {\\n background: #99ABF3 0% 0% no-repeat padding-box;\\n background-color: #99ABF3;\\n}\\n\\n.mdl-dialog__actions button {\\n display: flex;\\n align-items: center;\\n}\\n\\n.group-search {\\n left: 20px;\\n position: relative;\\n font-family: \\\"Source Sans Pro\\\";\\n height: 40px;\\n}\\n\\n.protocol-name {\\n bottom: 2px;\\n font-family: \\\"Source Sans Pro\\\";\\n position: relative;\\n font-size: 14px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n {{messageDialogRequest.icon}} \\r\\n

{{messageDialogRequest.title}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./message-dialog.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.wrapper {\\n background: #069D06 0% 0% no-repeat padding-box;\\n border: 2px solid #069D06;\\n border-radius: 6px 1px 6px 6px;\\n opacity: 1;\\n height: 100px;\\n}\\n\\n.wrapper-error {\\n background: #FF2E2E 0% 0% no-repeat padding-box;\\n border: 2px solid #FF2E2E;\\n border-radius: 6px 1px 6px 6px;\\n opacity: 1;\\n height: 100px;\\n}\\n\\n.mdl-dialog__content {\\n left: 10px;\\n bottom: 70px;\\n font-size: 14px;\\n text-align: left;\\n color: white;\\n top: 50px;\\n position: absolute;\\n}\\n\\n.dialog-title {\\n display: inline-block;\\n color: white;\\n}\\n\\n.dialog-title .mdl-dialog__title {\\n font-size: 20px;\\n text-align: center;\\n color: white;\\n position: relative;\\n bottom: 45px;\\n left: 10px;\\n}\\n\\n.dialog-title .mdl-button {\\n left: 350px;\\n bottom: 100px;\\n}\\n\\n.dialog-title .search-icon {\\n margin: 0;\\n position: relative;\\n top: 8px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n

View Study Grouping {{studyGroup.groupName}}

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

Study Grouping Name:

\\r\\n

{{studyGroup.groupName}}

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

Created on:

\\r\\n

{{studyGroup.createdDate}}

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

Last Modified on:

\\r\\n

{{studyGroup.updatedDate}}

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

Studies in your Grouping:

\\r\\n
\\r\\n {{study.protocolCode}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./view-study-group.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.mdl-dialog__content {\\n padding-left: 5rem;\\n position: relative;\\n color: black;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.mdl-dialog__content p {\\n margin: 0;\\n font-weight: 600;\\n}\\n\\n.study-info {\\n display: flex;\\n flex-direction: row;\\n justify-content: space-between;\\n padding-bottom: 1rem;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.study-info div p:nth-child(2) {\\n font-weight: unset;\\n}\\n\\n.study-list div {\\n columns: 6 10rem;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.study-list div span {\\n display: list-item;\\n margin-left: 1.2rem;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.dialog-title {\\n height: 50px;\\n background-color: #2998E3;\\n border-radius: 3px 3px 0px 0px;\\n color: white;\\n display: flex;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.dialog-title .mdl-dialog__title {\\n width: 100%;\\n font-size: 18px;\\n display: flex;\\n justify-content: space-around;\\n align-content: space-around;\\n flex-wrap: wrap;\\n}\\n\\n.dialog-title .mdl-button {\\n top: 0.6rem;\\n}\\n\\n.mdl-dialog__actions {\\n padding-top: 50px;\\n display: flex;\\n flex-wrap: wrap;\\n align-content: space-around;\\n justify-content: center;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.mdl-dialog__actions .close-action {\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 2px solid #DC1439;\\n border-radius: 20px;\\n opacity: 1;\\n color: #DC1439;\\n width: 145px;\\n display: flex;\\n font-size: 15px;\\n cursor: pointer;\\n align-items: center;\\n font-family: \\\"Source Sans Pro\\\";\\n text-align: center;\\n}\\n\\n.mdl-dialog__actions .close-action:hover {\\n border-radius: 20px;\\n opacity: 1;\\n cursor: pointer;\\n background-color: #DC1439;\\n color: white;\\n}\\n\\n.mdl-dialog__actions .save-action {\\n background: #3A5CE9 0% 0% no-repeat padding-box;\\n border-radius: 20px;\\n opacity: 1;\\n color: white;\\n width: 145px;\\n font-family: \\\"Source Sans Pro\\\";\\n align-items: center;\\n display: flex;\\n justify-content: center;\\n font-size: 15px;\\n cursor: pointer;\\n background-color: #3A5CE9;\\n}\\n\\n.mdl-dialog__actions .save-action:hover {\\n background-color: #1A2188;\\n}\\n\\n.mdl-dialog__actions .mdl-button .material-icons {\\n vertical-align: middle;\\n position: relative;\\n font-size: 20px;\\n left: 5px;\\n}\\n\\n.wrapper {\\n background-color: #FAFBFE;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n

Delete Study Grouping

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

Study Grouping {{studyGroup.groupName}} contains the following Studies:

\\r\\n
\\r\\n
    \\r\\n
  • {{study.protocolCode}}
  • \\r\\n
\\r\\n
\\r\\n

Are you sure you want to delete the Study Grouping {{studyGroup.groupName}} from your Groupings?\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./delete-study-group.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.study-info {\\n display: inline-flex;\\n width: 100%;\\n}\\n\\n:host {\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.wrapper {\\n background-color: #FAFBFE;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.dialog-title {\\n width: auto;\\n height: 41px;\\n background-color: #2998E3;\\n background: #2998E3 0% 0% no-repeat padding-box;\\n border-radius: 3px 3px 0px 0px;\\n opacity: 1;\\n text-align: center;\\n color: white;\\n display: flex;\\n}\\n\\n.dialog-title .mdl-dialog__title {\\n font-size: 18px;\\n padding: 10px;\\n text-align: center;\\n width: 100%;\\n}\\n\\n.dialog-title .mdl-button {\\n top: 5px;\\n}\\n\\n.content-header {\\n font-size: 14px;\\n text-align: center;\\n color: black;\\n position: relative;\\n text-align: center;\\n line-height: 0px;\\n}\\n\\n.group-text {\\n text-align: left;\\n}\\n\\n.confirm {\\n font-size: 14px;\\n text-align: center;\\n color: black;\\n position: relative;\\n text-align: center;\\n top: 50px;\\n}\\n\\n.update-date {\\n font-size: 14px;\\n text-align: center;\\n color: black;\\n width: 25%;\\n position: relative;\\n left: 600px;\\n}\\n\\n.update-date .update-date-text {\\n font-weight: bold;\\n line-height: 0px;\\n text-align: left;\\n}\\n\\n.checkbox {\\n columns: 6 5em;\\n color: black;\\n}\\n\\n.checkbox input {\\n margin-right: 0.25em;\\n}\\n\\n.checkbox label {\\n border: 1px transparent solid;\\n display: inline-block;\\n width: 12em;\\n}\\n\\n.study-list {\\n font-size: 14px;\\n text-align: center;\\n color: black;\\n width: 25%;\\n position: relative;\\n left: 150px;\\n top: 20px;\\n}\\n\\n.study-list .study-list-text {\\n font-weight: bold;\\n line-height: 0px;\\n text-align: left;\\n}\\n\\n.ul {\\n height: 100px;\\n display: flex;\\n flex-direction: column;\\n flex-wrap: wrap;\\n}\\n\\n.group-name-text {\\n font-size: 14px;\\n padding: 10px;\\n padding-top: 80px;\\n text-align: center;\\n width: 1080px;\\n line-height: 0px;\\n font-weight: bold;\\n color: black;\\n}\\n\\n.group-name-container {\\n left: 470px;\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 1px solid #828081;\\n border-radius: 20px;\\n height: 50px;\\n position: relative;\\n width: 500px;\\n}\\n\\n.group-name-container .group-name-textfield {\\n position: relative;\\n left: 15px;\\n width: 90%;\\n}\\n\\n.mdl-dialog__actions {\\n justify-content: center;\\n padding-top: 50px;\\n}\\n\\n.mdl-dialog__actions .close-action {\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 2px solid #DC1439;\\n border-radius: 20px;\\n opacity: 1;\\n font-family: inherit;\\n font-size: 15px;\\n width: 150px;\\n justify-content: center;\\n color: #DC1439;\\n cursor: pointer;\\n background-color: white;\\n}\\n\\n.mdl-dialog__actions .close-action:hover {\\n border-radius: 20px;\\n opacity: 1;\\n cursor: pointer;\\n background-color: #DC1439;\\n color: white;\\n}\\n\\n.mdl-dialog__actions .save-action {\\n background: #3A5CE9 0% 0% no-repeat padding-box;\\n border-radius: 20px;\\n opacity: 1;\\n width: 150px;\\n justify-content: center;\\n font-family: inherit;\\n font-size: 15px;\\n color: white;\\n cursor: pointer;\\n background-color: #3A5CE9;\\n}\\n\\n.mdl-dialog__actions .save-action:hover {\\n background-color: #1A2188;\\n}\\n\\n.mdl-dialog__actions button {\\n display: flex;\\n align-items: center;\\n}\\n\\n.group-search {\\n top: 30px;\\n left: 20px;\\n position: relative;\\n height: 40px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n

Edit Study Grouping {{studyGroupInfo.groupName}}

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

\\r\\n Please, select with checkmark the Studies you want to add or remove from your existing Study Grouping\\r\\n {{studyGroupInfo.groupName}}.\\r\\n

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

Study Group should have atleast one Study

\\r\\n
\\r\\n
0\\\">\\r\\n

Studies in your Grouping:

\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
0\\\">\\r\\n

Other Studies:

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

\\r\\n Study Grouping Name: \\r\\n *\\r\\n This Field is required\\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{titleErrorMessage}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./edit-study-group.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.dialog-title {\\n width: auto;\\n height: 41px;\\n background-color: #2998E3;\\n background: #2998E3 0% 0% no-repeat padding-box;\\n border-radius: 3px 3px 0px 0px;\\n opacity: 1;\\n text-align: center;\\n color: white;\\n display: flex;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.dialog-title .mdl-dialog__title {\\n font-size: 18px;\\n padding: 10px;\\n text-align: center;\\n width: 100%;\\n}\\n\\n.dialog-title .mdl-button {\\n top: 5px;\\n}\\n\\n.content-header {\\n font-size: 14px;\\n text-align: center;\\n color: black;\\n}\\n\\n.content-header .content-header-text {\\n font-weight: bold;\\n line-height: 0px;\\n}\\n\\n.wrapper {\\n background-color: #FAFBFE;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.error-message {\\n color: red;\\n font-family: \\\"Source Sans Pro\\\";\\n text-align: center;\\n}\\n\\n.error-message .error-message-text {\\n line-height: 0px;\\n}\\n\\n.checkbox {\\n columns: 5 20em;\\n position: relative;\\n color: black;\\n font-family: \\\"Source Sans Pro\\\";\\n column-width: 20px;\\n}\\n\\n.required:hover + .hide {\\n display: block;\\n position: relative;\\n left: 170px;\\n background-color: #FAFBFE;\\n background: #F3F5FE 0% 0% no-repeat padding-box;\\n box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.1215686275);\\n border-radius: 2px;\\n opacity: 1;\\n font-family: \\\"Source Sans Pro\\\";\\n bottom: 10px;\\n color: black;\\n font-weight: normal;\\n}\\n\\n.required {\\n color: #3A5CE9;\\n cursor: pointer;\\n}\\n\\n.hide {\\n display: none;\\n}\\n\\n.checkbox input {\\n margin-right: 0.25em;\\n}\\n\\n.checkbox label {\\n border: 1px transparent solid;\\n display: inline-block;\\n width: 12em;\\n}\\n\\n.form-container {\\n position: relative;\\n height: 100px;\\n}\\n\\n.group-name-text {\\n font-size: 14px;\\n padding-top: 20px;\\n left: 32.5%;\\n position: relative;\\n line-height: 0px;\\n font-weight: bold;\\n color: black;\\n width: fit-content;\\n}\\n\\n.group-name-container {\\n left: 32%;\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 1px solid #828081;\\n border-radius: 10px;\\n height: 50px;\\n display: flex;\\n justify-content: center;\\n position: relative;\\n width: 40%;\\n}\\n\\n.group-name-container .group-name-textfield {\\n position: relative;\\n left: 15px;\\n width: 90%;\\n}\\n\\n.group-name-container:hover {\\n border: 1px solid rgba(58, 92, 233, 0.7019607843);\\n box-shadow: 0 0 5px 1px #08F;\\n}\\n\\n.mdl-textfield {\\n left: 20px;\\n width: 80%;\\n display: flex;\\n position: relative;\\n padding: unset;\\n}\\n\\n.mdl-textfield__input {\\n border: unset !important;\\n outline: unset !important;\\n font-size: 14px;\\n position: relative;\\n color: black;\\n padding: unset;\\n font-family: inherit;\\n justify-content: center;\\n display: flex;\\n}\\n\\n.mdl-textfield__label {\\n color: #B3B2B3 !important;\\n outline: unset !important;\\n background: unset !important;\\n bottom: 15px;\\n top: unset;\\n font-family: inherit;\\n}\\n\\n.error-msg {\\n color: red;\\n font-size: 14px;\\n top: 5px;\\n left: 33.5%;\\n position: relative;\\n}\\n\\n.mdl-dialog__actions {\\n display: flex;\\n flex-wrap: wrap;\\n align-content: space-around;\\n justify-content: center;\\n padding-bottom: 10px;\\n padding-top: 20px;\\n}\\n\\n.mdl-dialog__actions .close-action {\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 2px solid #DC1439;\\n border-radius: 20px;\\n opacity: 1;\\n width: 130px;\\n font-family: \\\"Source Sans Pro\\\";\\n justify-content: center;\\n font-size: 16px;\\n color: #DC1439;\\n cursor: pointer;\\n background-color: white;\\n}\\n\\n.mdl-dialog__actions .close-action:hover {\\n border-radius: 20px;\\n opacity: 1;\\n cursor: pointer;\\n background-color: #DC1439;\\n color: white;\\n}\\n\\n.mdl-dialog__actions .save-action {\\n background: #3A5CE9 0% 0% no-repeat padding-box;\\n border-radius: 20px;\\n opacity: 1;\\n width: 130px;\\n justify-content: center;\\n color: white;\\n font-family: \\\"Source Sans Pro\\\";\\n cursor: pointer;\\n font-size: 15px;\\n background-color: #3A5CE9;\\n padding-right: 10px;\\n}\\n\\n.mdl-dialog__actions .save-action:hover {\\n background: #1A2188 0% 0% no-repeat padding-box;\\n background-color: #1A2188;\\n}\\n\\n.mdl-dialog__actions .save-action:disabled,\\n.mdl-dialog__actions button[disabled] {\\n background: #99ABF3 0% 0% no-repeat padding-box;\\n background-color: #99ABF3;\\n}\\n\\n.mdl-dialog__actions button {\\n display: flex;\\n align-items: center;\\n}\\n\\n.group-search {\\n left: 20px;\\n position: relative;\\n height: 40px;\\n}\\n\\n.group-study {\\n font-size: 14px;\\n color: black;\\n position: relative;\\n left: 2rem;\\n padding-bottom: 50px;\\n}\\n\\n.group-study .group-study-text {\\n padding-top: 20px;\\n font-weight: bold;\\n line-height: 0px;\\n text-align: left;\\n}\\n\\n.protocol-name {\\n bottom: 2px;\\n position: relative;\\n font-size: 14px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n

Delete {{reportType}} Report

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Are you sure you want to delete {{reportData.scheduledReportName}}?\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./delete-report.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.study-info {\\n display: inline-flex;\\n width: 100%;\\n}\\n\\n:host {\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.wrapper {\\n background-color: #FAFBFE;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.dialog-title {\\n width: auto;\\n height: 41px;\\n background-color: #2998E3;\\n background: #2998E3 0% 0% no-repeat padding-box;\\n border-radius: 3px 3px 0px 0px;\\n opacity: 1;\\n text-align: center;\\n color: white;\\n display: flex;\\n}\\n\\n.dialog-title .mdl-dialog__title {\\n font-size: 18px;\\n padding: 10px;\\n text-align: center;\\n width: 100%;\\n}\\n\\n.dialog-title .mdl-button {\\n top: 5px;\\n}\\n\\n.content-header {\\n font-size: 14px;\\n text-align: center;\\n color: black;\\n position: relative;\\n text-align: center;\\n line-height: 0px;\\n}\\n\\n.group-text {\\n text-align: left;\\n}\\n\\n.confirm {\\n font-size: 18px !important;\\n text-align: center;\\n color: black;\\n position: relative;\\n text-align: center;\\n top: 20px;\\n}\\n\\n.update-date {\\n font-size: 14px;\\n text-align: center;\\n color: black;\\n width: 25%;\\n position: relative;\\n left: 600px;\\n}\\n\\n.update-date .update-date-text {\\n font-weight: bold;\\n line-height: 0px;\\n text-align: left;\\n}\\n\\n.checkbox {\\n columns: 6 5em;\\n color: black;\\n}\\n\\n.checkbox input {\\n margin-right: 0.25em;\\n}\\n\\n.checkbox label {\\n border: 1px transparent solid;\\n display: inline-block;\\n width: 12em;\\n}\\n\\n.study-list {\\n font-size: 14px;\\n text-align: center;\\n color: black;\\n width: 25%;\\n position: relative;\\n left: 150px;\\n top: 20px;\\n}\\n\\n.study-list .study-list-text {\\n font-weight: bold;\\n line-height: 0px;\\n text-align: left;\\n}\\n\\n.ul {\\n height: 100px;\\n display: flex;\\n flex-direction: column;\\n flex-wrap: wrap;\\n}\\n\\n.group-name-text {\\n font-size: 14px;\\n padding: 10px;\\n padding-top: 80px;\\n text-align: center;\\n width: 1080px;\\n line-height: 0px;\\n font-weight: bold;\\n color: black;\\n}\\n\\n.group-name-container {\\n left: 470px;\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 1px solid #828081;\\n border-radius: 20px;\\n height: 50px;\\n position: relative;\\n width: 500px;\\n}\\n\\n.group-name-container .group-name-textfield {\\n position: relative;\\n left: 15px;\\n width: 90%;\\n}\\n\\n.mdl-dialog__actions {\\n justify-content: center;\\n padding-top: 70px;\\n}\\n\\n.mdl-dialog__actions .close-action {\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 2px solid #DC1439;\\n border-radius: 20px;\\n opacity: 1;\\n font-family: inherit;\\n font-size: 15px;\\n width: 150px;\\n justify-content: center;\\n color: #DC1439;\\n cursor: pointer;\\n background-color: white;\\n}\\n\\n.mdl-dialog__actions .close-action:hover {\\n border-radius: 20px;\\n opacity: 1;\\n cursor: pointer;\\n background-color: #DC1439;\\n color: white;\\n}\\n\\n.mdl-dialog__actions .save-action {\\n background: #3A5CE9 0% 0% no-repeat padding-box;\\n border-radius: 20px;\\n opacity: 1;\\n width: 150px;\\n justify-content: center;\\n font-family: inherit;\\n font-size: 15px;\\n color: white;\\n cursor: pointer;\\n background-color: #3A5CE9;\\n}\\n\\n.mdl-dialog__actions .save-action:hover {\\n background-color: #1A2188;\\n}\\n\\n.mdl-dialog__actions button {\\n display: flex;\\n align-items: center;\\n}\\n\\n.group-search {\\n top: 30px;\\n left: 20px;\\n position: relative;\\n height: 40px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n Show Expired Rules\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sm-notification-rules.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","var escape = require(\"../../../../../node_modules/css-loader/lib/url/escape.js\");\nexports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".timeframe-filter-align {\\n justify-content: flex-end;\\n display: flex;\\n bottom: 70px;\\n}\\n\\n.expired-toggle {\\n position: absolute;\\n right: 50px;\\n font: bold;\\n}\\n\\n.grid-class {\\n position: relative;\\n}\\n\\napp-tracking-grid::ng-deep .active-search-filter {\\n width: unset !important;\\n}\\n\\napp-tracking-grid::ng-deep .table-data {\\n max-height: calc(100vh - 485px) !important;\\n}\\n\\napp-tracking-grid::ng-deep .no-data span {\\n max-width: 1400px;\\n}\\n\\napp-tracking-grid::ng-deep span:has(.action) {\\n position: relative;\\n visibility: hidden;\\n font-size: 0;\\n}\\n\\napp-tracking-grid::ng-deep .action {\\n visibility: visible;\\n margin: 0 !important;\\n width: 30px !important;\\n pointer-events: auto !important;\\n height: 18px !important;\\n cursor: pointer;\\n font-size: 0;\\n color: transparent;\\n}\\n\\napp-tracking-grid::ng-deep .action.disabled {\\n pointer-events: none !important;\\n}\\n\\napp-tracking-grid::ng-deep .action.edit {\\n background-image: url(\" + escape(require(\"./../../../../../images/sample_tracking/edit_pencil.svg\")) + \");\\n background-repeat: no-repeat;\\n background-size: 18px;\\n background-position: left center;\\n}\\n\\napp-tracking-grid::ng-deep .action.delete {\\n background-image: url(\" + escape(require(\"./../../../../../images/sample_tracking/report-delete.svg\")) + \");\\n background-repeat: no-repeat;\\n background-size: 22px;\\n background-position: left center;\\n}\\n\\napp-tracking-grid::ng-deep .switch {\\n position: relative;\\n display: inline-block;\\n box-shadow: 0 0px 0px rgba(0, 0, 0, 0.1607843137);\\n width: 40px;\\n height: 20px;\\n}\\n\\napp-tracking-grid::ng-deep .switch input {\\n opacity: 0;\\n width: 0;\\n height: 0;\\n}\\n\\napp-tracking-grid::ng-deep .slider {\\n cursor: pointer;\\n background-color: darkgray;\\n -webkit-transition: 0.4s;\\n transition: 0.4s;\\n height: 12px !important;\\n}\\n\\napp-tracking-grid::ng-deep .slider:before {\\n position: absolute;\\n content: \\\"\\\";\\n height: 16px;\\n width: 16px;\\n left: -4px;\\n background-color: white;\\n -webkit-transition: 0.4s;\\n transition: 0.4s;\\n}\\n\\napp-tracking-grid::ng-deep .slider.round {\\n border-radius: 50px;\\n box-shadow: 3px 3px 6px rgba(0, 0, 0, 0.1607843137);\\n}\\n\\napp-tracking-grid::ng-deep .slider.round:before {\\n border-radius: 50%;\\n background-color: white;\\n box-shadow: 3px 3px 6px rgba(0, 0, 0, 0.1607843137);\\n}\\n\\napp-tracking-grid::ng-deep .slider.round.true::before {\\n -webkit-transform: translateX(20px);\\n -ms-transform: translateX(20px);\\n transform: translateX(20px);\\n background-color: #1A2188;\\n}\\n\\napp-tracking-grid::ng-deep .slider.round.true {\\n background-color: #3A5CE9;\\n}\\n\\napp-tracking-grid::ng-deep .search:has(.sub-heading) {\\n justify-content: flex-start !important;\\n}\\n\\napp-tracking-grid::ng-deep .sub-heading {\\n padding-right: 10px;\\n font-weight: bold;\\n}\\n\\napp-tracking-grid::ng-deep app-pagination::ng-deep .pagination-wrapper {\\n max-width: 1400px;\\n}\\n\\napp-spinner::ng-deep .spinner-wrapper {\\n position: absolute;\\n top: 45%;\\n left: 45%;\\n}\\n\\n.switch {\\n position: relative;\\n display: inline-block;\\n box-shadow: 0 0px 0px rgba(0, 0, 0, 0.1607843137);\\n width: 40px;\\n height: 20px;\\n margin-right: 10px;\\n}\\n\\n.switch input {\\n opacity: 0;\\n width: 0;\\n height: 0;\\n}\\n\\n.slider {\\n position: absolute;\\n cursor: pointer;\\n top: 3px;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n background-color: darkgray;\\n -webkit-transition: 0.4s;\\n transition: 0.4s;\\n height: 15Px;\\n}\\n\\n.slider:before {\\n position: absolute;\\n content: \\\"\\\";\\n height: 20px;\\n width: 20px;\\n left: 0px;\\n background-color: white;\\n -webkit-transition: 0.4s;\\n transition: 0.4s;\\n top: -3px;\\n}\\n\\ninput:checked + .slider {\\n background-color: #3A5CE9;\\n box-shadow: 6px 6px 6px rgba(0, 0, 0, 0.1607843137);\\n}\\n\\ninput:focus + .slider {\\n box-shadow: 6px 6px 6px rgba(0, 0, 0, 0.1607843137);\\n}\\n\\ninput:checked + .slider:before {\\n -webkit-transform: translateX(20px);\\n -ms-transform: translateX(20px);\\n transform: translateX(20px);\\n background-color: #1A2188;\\n box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.1607843137);\\n}\\n\\n/* Rounded sliders */\\n\\n.slider.round {\\n border-radius: 50px;\\n box-shadow: 3px 3px 6px rgba(0, 0, 0, 0.1607843137);\\n}\\n\\n.slider.round:before {\\n border-radius: 50%;\\n background-color: white;\\n box-shadow: 3px 3px 6px rgba(0, 0, 0, 0.1607843137);\\n}\\n\\n.action-buttons {\\n display: flex;\\n justify-content: flex-end;\\n margin-top: -31px;\\n margin-bottom: 7px;\\n max-width: 1400px;\\n align-items: center;\\n}\\n\\n.action-buttons div {\\n padding-right: 10px;\\n}\\n\\n.action-buttons div span {\\n font-weight: bold;\\n padding-right: 40px;\\n}\\n\\n.action-buttons .new-rule {\\n border: 2px solid #3A5CE9;\\n border-radius: 20px;\\n background-color: #3A5CE9;\\n color: white;\\n font-family: \\\"Source Sans Pro\\\";\\n font-weight: bold;\\n height: 30px;\\n display: flex;\\n align-items: center;\\n cursor: pointer;\\n}\\n\\n.action-buttons .new-rule .material-icons {\\n font-size: 13px;\\n padding: 5px 0 5px 5px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n
\\r\\n {{headerTitle}}\\r\\n
\\r\\n\\r\\n
\\r\\n Created : {{ruleData.createdDate}}\\r\\n Last Edited : {{ruleData.lastEditedDate}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n IF\\r\\n
\\r\\n
\\r\\n
\\r\\n \\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 AND\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n THEN\\r\\n
\\r\\n \\r\\n Notifications will always appear in the Notifications page, but you can also choose to receive notifications in your\\r\\n email by checking below.\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sm-notification-rule-form.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n:host {\\n position: relative;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.wrapper {\\n box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.1607843137);\\n border-radius: 4px;\\n opacity: 1;\\n height: 100%;\\n background-color: white;\\n margin: 20px;\\n margin-bottom: 10px;\\n margin-top: unset;\\n padding-left: 20px;\\n padding-right: 20px;\\n}\\n\\n.email-checkbox {\\n position: relative;\\n top: 45px;\\n display: flex;\\n height: 18px;\\n font-size: 15px;\\n}\\n\\n.email-checkbox input {\\n width: 16px;\\n height: 16px;\\n cursor: pointer;\\n}\\n\\n.disabled {\\n pointer-events: none !important;\\n}\\n\\n.notification-text {\\n display: flex;\\n padding: 7px;\\n padding-left: unset;\\n font-size: 15px;\\n padding-top: 15px;\\n}\\n\\n.layout-header {\\n display: inline-flex;\\n width: 100%;\\n max-width: 1575px;\\n font-size: 20px;\\n font-weight: bold;\\n margin-top: 20px;\\n margin-bottom: 20px;\\n}\\n\\n.layout-sub-header span {\\n padding-right: 5vh;\\n}\\n\\n.sub-header {\\n background-color: #C6D0F9;\\n width: 90%;\\n margin-top: 2px;\\n padding: 7px;\\n margin-bottom: 5px !important;\\n}\\n\\n.form-group {\\n display: flex;\\n width: 400px;\\n margin-bottom: 1rem;\\n}\\n\\n.column {\\n margin-right: 5rem;\\n min-width: 350px;\\n}\\n\\n.mdl-dialog__actions {\\n display: flex;\\n flex-wrap: wrap;\\n align-content: space-around;\\n justify-content: flex-end;\\n padding: 20px 0 20px 0;\\n}\\n\\n.mdl-dialog__actions .close-action {\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 2px solid #3A5CE9;\\n border-radius: 20px;\\n opacity: 1;\\n font-family: \\\"Source Sans Pro\\\";\\n justify-content: center;\\n color: #3A5CE9;\\n font-weight: bold;\\n font-size: 16px;\\n cursor: pointer;\\n background-color: white;\\n}\\n\\n.mdl-dialog__actions .close-action:hover {\\n border-radius: 20px;\\n opacity: 1;\\n cursor: pointer;\\n background-color: #3A5CE9;\\n color: white;\\n}\\n\\n.mdl-dialog__actions .save-action {\\n background: #3A5CE9 0% 0% no-repeat padding-box;\\n border-radius: 20px;\\n opacity: 1;\\n font-family: \\\"Source Sans Pro\\\";\\n justify-content: center;\\n font-size: 15px;\\n color: white;\\n font-weight: bold;\\n cursor: pointer;\\n background-color: #3A5CE9;\\n padding-right: 10px;\\n}\\n\\n.mdl-dialog__actions .save-action:hover {\\n background: #1A2188 0% 0% no-repeat padding-box;\\n background-color: #1A2188;\\n}\\n\\n.mdl-dialog__actions .save-action:disabled,\\n.mdl-dialog__actions button[disabled] {\\n background: #99ABF3 0% 0% no-repeat padding-box;\\n background-color: #99ABF3;\\n cursor: unset;\\n}\\n\\n.mdl-dialog__actions button {\\n display: flex;\\n align-items: center;\\n width: 135px;\\n}\\n\\n.remove-condition {\\n /* margin-left: 200px;\\n justify-content: flex-start !important;\\n */\\n}\\n\\n.remove-condition .close-action {\\n width: 160px !important;\\n}\\n\\n.align-form sm-form-field::ng-deep .form-section {\\n padding-top: 7.6rem;\\n}\\n\\n.align-form-element sm-form-field::ng-deep .form-section {\\n padding-top: 0.5rem;\\n}\\n\\n.align-condition sm-form-field::ng-deep .form-section {\\n padding-top: 1rem;\\n}\\n\\n.loading {\\n width: 15px;\\n}\\n\\n.loading app-spinner ::ng-deep .spinner-wrapper {\\n padding: 0px !important;\\n left: 30px;\\n position: relative;\\n justify-content: flex-end;\\n font-size: 20px;\\n display: flex;\\n}\\n\\n.loading app-spinner ::ng-deep .mdl-spinner {\\n height: 15px;\\n width: 15px;\\n}\\n\\n.loading app-spinner ::ng-deep .mdl-spinner__layer-1,\\n.loading app-spinner ::ng-deep .mdl-spinner__layer-2,\\n.loading app-spinner ::ng-deep .mdl-spinner__layer-3,\\n.loading app-spinner ::ng-deep .mdl-spinner__layer-4 {\\n border-color: white;\\n}\\n\\nsm-form-field::ng-deep .form-section .mdl-textfield__label {\\n justify-content: left !important;\\n text-align: left !important;\\n padding-left: 6px;\\n width: fit-content;\\n}\\n\\n.add-condition {\\n color: #3A5CE9;\\n margin: 10px;\\n margin-left: unset;\\n}\\n\\n.add-condition .add-condition-button {\\n background: none;\\n border: none !important;\\n opacity: 1;\\n font-family: \\\"Source Sans Pro\\\";\\n justify-content: center;\\n color: #3A5CE9;\\n font-size: 15px;\\n cursor: pointer;\\n padding: unset;\\n background-color: white;\\n}\\n\\n.add-condition .add-condition-button:disabled,\\n.add-condition button[disabled] {\\n color: darkgray;\\n pointer-events: none;\\n}\\n\\n.add-condition .material-icons {\\n font-size: 20px;\\n cursor: pointer;\\n}\\n\\n.add-condition span {\\n position: relative;\\n text-align: center;\\n top: -5px;\\n cursor: pointer;\\n font-size: 15px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","var escape = require(\"../../../../node_modules/css-loader/lib/url/escape.js\");\nexports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n:host {\\n position: relative;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.header-content {\\n justify-content: center;\\n align-items: center;\\n display: flex;\\n}\\n\\n.header,\\n.sub-header {\\n display: flex;\\n justify-content: space-between;\\n margin-right: 5px;\\n margin-bottom: 20px;\\n margin-top: 30px;\\n}\\n\\n.header span,\\n.sub-header span {\\n margin-right: 10px;\\n font: normal normal bold 24px/25px \\\"Source Sans Pro\\\";\\n}\\n\\n.sub-header span {\\n color: #1A2188;\\n font: normal normal bold 20px/20px \\\"Source Sans Pro\\\";\\n}\\n\\n.shipment-wrapper {\\n margin: 20px 30px 30px 20px;\\n background-color: white;\\n}\\n\\n.register-button {\\n border: 2px solid #3A5CE9;\\n border-radius: 20px;\\n background-color: #3A5CE9;\\n color: white;\\n font-weight: 700;\\n font-size: 14px;\\n height: 40px;\\n display: flex;\\n align-items: center;\\n margin-right: 5px;\\n}\\n\\napp-tracking-grid::ng-deep .table-container {\\n min-width: 935px;\\n}\\n\\napp-tracking-grid::ng-deep .search-filter {\\n background-color: #E9E9E9 !important;\\n}\\n\\napp-tracking-grid::ng-deep .child-row {\\n border-bottom: unset !important;\\n box-shadow: unset !important;\\n}\\n\\napp-tracking-grid::ng-deep .align-child-row {\\n padding-left: 0px !important;\\n margin: unset;\\n}\\n\\napp-tracking-grid::ng-deep .indicator {\\n display: grid !important;\\n text-align: center;\\n}\\n\\napp-tracking-grid::ng-deep .Additional {\\n background-color: lightgrey !important;\\n color: black !important;\\n padding: 5px 8px !important;\\n justify-content: center;\\n font-weight: bold;\\n border-radius: 7px;\\n}\\n\\napp-tracking-grid::ng-deep .alternateContainer {\\n background-color: #1A2188;\\n color: white;\\n padding: 5px 8px !important;\\n font-weight: bold;\\n border-radius: 7px;\\n justify-content: center;\\n}\\n\\napp-tracking-grid::ng-deep .table-header {\\n font-size: 14px;\\n background: #2998E3 !important;\\n}\\n\\napp-tracking-grid::ng-deep .table-header div {\\n justify-content: center;\\n}\\n\\napp-tracking-grid::ng-deep .table-row {\\n background: #F1F3FE;\\n font-size: 14px;\\n}\\n\\napp-tracking-grid::ng-deep .table-row span {\\n justify-content: center;\\n}\\n\\napp-tracking-grid::ng-deep .table-row .row-content:nth-child(5) {\\n display: grid;\\n}\\n\\napp-tracking-grid::ng-deep .subValue {\\n font-size: 14px !important;\\n padding-left: unset !important;\\n max-width: 12rem !important;\\n}\\n\\napp-tracking-grid::ng-deep .no-data span {\\n position: relative !important;\\n}\\n\\napp-tracking-grid::ng-deep .link {\\n font: normal normal bold 14px/9px \\\"Source Sans Pro\\\";\\n color: #1A2188 !important;\\n border-radius: 20px;\\n background: #FFFFFF !important;\\n justify-content: center;\\n margin: 4px !important;\\n}\\n\\napp-tracking-grid::ng-deep .active-search-filter {\\n width: auto !important;\\n}\\n\\napp-tracking-grid::ng-deep span:has(.action) {\\n position: relative;\\n visibility: hidden;\\n font-size: 0;\\n}\\n\\napp-tracking-grid::ng-deep .action {\\n visibility: visible;\\n margin: 0 !important;\\n pointer-events: auto !important;\\n height: 18px !important;\\n cursor: pointer;\\n font-size: 0;\\n color: transparent;\\n}\\n\\napp-tracking-grid::ng-deep .action.none {\\n background-image: url(\" + escape(require(\"./../../../../images/sample_tracking/menu_book.svg\")) + \");\\n background-repeat: no-repeat;\\n background-size: 15px;\\n background-position: center center;\\n}\\n\\napp-tracking-grid::ng-deep .action.resume {\\n background-image: url(\" + escape(require(\"./../../../../images/sample_tracking/report-resume.svg\")) + \");\\n background-repeat: no-repeat;\\n background-size: 15px;\\n background-position: center center;\\n}\\n\\napp-tracking-grid::ng-deep .action.helptext {\\n font-size: 12px;\\n background: unset;\\n color: black;\\n justify-content: center;\\n margin-bottom: 0.2rem !important;\\n text-align: center;\\n align-items: center;\\n}\\n\\n.header,\\n.sub-header {\\n display: flex;\\n justify-content: space-between;\\n margin-right: 5px;\\n margin-bottom: 10px;\\n margin-top: 10px;\\n}\\n\\n.header span,\\n.sub-header span {\\n margin-right: 10px;\\n font: normal normal bold 24px/25px \\\"Source Sans Pro\\\";\\n}\\n\\n.sub-header span {\\n color: #1A2188;\\n font: normal normal bold 20px/20px \\\"Source Sans Pro\\\";\\n}\\n\\n.tool-bar {\\n width: 100%;\\n display: inline-flex;\\n justify-content: space-between;\\n margin-bottom: 1.5rem;\\n}\\n\\n.tool-bar .search-bar {\\n display: flex;\\n justify-content: flex-end;\\n}\\n\\n.tool-bar .grid-count {\\n padding: 5px 5px 12px 5px;\\n font-size: 15px;\\n display: inline-flex;\\n align-items: center;\\n bottom: -15px;\\n position: relative;\\n}\\n\\n.align-search {\\n align-items: center;\\n margin-bottom: 20px;\\n}\\n\\n.align-date-filter {\\n margin-right: 15px;\\n}\\n\\nsearch-bar::ng-deep .search-container {\\n width: 15rem;\\n margin-top: 20px;\\n border: 1px solid #2998E3;\\n border-radius: unset;\\n}\\n\\nsearch-bar::ng-deep .search-container .search-icon {\\n filter: invert(0.5) !important;\\n}\\n\\nsearch-bar::ng-deep .search-container:hover {\\n border: 1px solid #3A5CE9;\\n padding: 1px;\\n}\\n\\nsearch-bar::ng-deep mdl-textfield ::ng-deep .mdl-textfield__input {\\n width: unset !important;\\n}\\n\\n.submit-align-tooltip {\\n margin-top: 0.5rem;\\n margin-bottom: 1rem;\\n display: inline-flex;\\n width: 100%;\\n justify-content: flex-end;\\n}\\n\\n.submit-tool-tip {\\n background-color: #069D06;\\n border-color: #069D06;\\n color: white;\\n display: flex;\\n width: 40px;\\n justify-content: center;\\n align-items: center;\\n position: relative;\\n text-align: center;\\n border-radius: 10px 0 0 10px;\\n height: 40px;\\n left: 2px;\\n cursor: pointer;\\n top: 7px;\\n margin-top: -23px;\\n}\\n\\n.submit-tool-tip .tool-tip-icon {\\n display: flex;\\n font-weight: bold;\\n width: 20px;\\n justify-content: center;\\n align-items: center;\\n text-align: center;\\n background-color: white;\\n border-radius: 20px;\\n height: 20px;\\n color: #069D06;\\n}\\n\\n.submit-tool-tip .tool-tip-icon .material-icons {\\n font-size: 18px;\\n}\\n\\n.submit-tool-tip-text {\\n border: 1px solid #069D06;\\n border-radius: 0 10px 10px 0;\\n justify-content: center;\\n display: flex;\\n text-align: center;\\n align-items: center;\\n position: relative;\\n left: 2px;\\n padding-right: 10px;\\n top: 7px;\\n height: 38px;\\n margin-top: -23px;\\n}\\n\\n.submit-tool-tip-text span {\\n left: 5px;\\n position: relative;\\n margin: 1rem;\\n font-size: 17px;\\n}\\n\\n.submit-tool-tip-text mdl-icon {\\n cursor: pointer;\\n margin-left: 50px;\\n}\\n\\ntimeframe-filter::ng-deep .drop-show {\\n right: unset;\\n left: 25rem;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"build/fonts/menu_book.svg\";","module.exports = \"
\\r\\n
\\r\\n

{{data.title}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./delete-warning-dialog.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n:host {\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.wrapper {\\n background-color: #FAFBFE;\\n font-family: \\\"Source Sans Pro\\\";\\n border-radius: 30px;\\n}\\n\\n.mdl-dialog__content {\\n padding: 25px 0px;\\n text-align: center;\\n}\\n\\n.heading {\\n font-size: 18px !important;\\n color: black;\\n}\\n\\n.mdl-dialog__actions {\\n justify-content: center;\\n padding-bottom: 30px;\\n}\\n\\n.mdl-dialog__actions .close-action {\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 2px solid #DC1439;\\n border-radius: 20px;\\n opacity: 1;\\n font-family: inherit;\\n font-size: 15px;\\n font-weight: bold;\\n width: 100px;\\n justify-content: center;\\n color: #DC1439;\\n cursor: pointer;\\n background-color: white;\\n}\\n\\n.mdl-dialog__actions .close-action:hover {\\n border-radius: 20px;\\n opacity: 1;\\n cursor: pointer;\\n background-color: #DC1439;\\n color: white;\\n}\\n\\n.mdl-dialog__actions .save-action {\\n background: #3A5CE9 0% 0% no-repeat padding-box;\\n border-radius: 20px;\\n opacity: 1;\\n width: 200px;\\n justify-content: center;\\n font-family: inherit;\\n font-weight: bold;\\n font-size: 15px;\\n color: white;\\n cursor: pointer;\\n background-color: #3A5CE9;\\n}\\n\\n.mdl-dialog__actions .save-action:hover {\\n background-color: #1A2188;\\n}\\n\\n.mdl-dialog__actions button {\\n display: flex;\\n align-items: center;\\n}\\n\\n.reverse-buttons {\\n flex-direction: unset;\\n}\\n\\n.reverse-buttons .close-action {\\n right: 20px;\\n}\\n\\nmdl-icon {\\n margin-right: 10px;\\n}\\n\\n.dialog-title {\\n width: auto;\\n height: 41px;\\n background: #2998E3 0% 0% no-repeat padding-box;\\n border-radius: 10px 10px 0px 0px;\\n opacity: 1;\\n font-family: \\\"Source Sans Pro\\\";\\n text-align: center;\\n color: white;\\n display: flex;\\n}\\n\\n.dialog-title .mdl-dialog__title {\\n font-size: 18px;\\n padding: 10px;\\n text-align: center;\\n font-weight: bold;\\n width: 100%;\\n}\\n\\n.dialog-title .mdl-button {\\n top: 5px;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .table-header {\\n color: white;\\n font-size: 14px;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .table-header div {\\n margin-left: 10px !important;\\n padding-right: 5px;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .table-container {\\n min-height: unset !important;\\n margin-left: 1px;\\n margin-right: 1px;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .table-row {\\n font-size: 14px;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .table-row .row-content:first-child {\\n display: grid;\\n font-weight: bold;\\n justify-content: flex-start;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .subValue {\\n width: 8.5rem !important;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .children-row {\\n font-size: 12Px !important;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .children-row span {\\n opacity: 0;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .children-row span:first-child {\\n font-weight: normal !important;\\n opacity: 1 !important;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n Shipments\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n In-Progress Shipments\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Submitted Shipments\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./shipment-list.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","var escape = require(\"../../../../node_modules/css-loader/lib/url/escape.js\");\nexports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.shipment-wrapper {\\n margin: 30px;\\n margin-top: 0px;\\n margin-left: 15px;\\n}\\n\\n.shipment-button {\\n border: 2px solid #3A5CE9;\\n border-radius: 20px;\\n background-color: #3A5CE9;\\n color: white;\\n font-weight: 700;\\n font-size: 14px;\\n height: 40px;\\n display: flex;\\n align-items: center;\\n margin-right: 5px;\\n}\\n\\n.timeframe-filter-align {\\n float: right;\\n align-items: flex-end;\\n display: flex;\\n padding-bottom: 20px;\\n}\\n\\n.header-content {\\n justify-content: center;\\n align-items: center;\\n display: flex;\\n}\\n\\n.header,\\n.sub-header {\\n display: flex;\\n justify-content: space-between;\\n margin-right: 5px;\\n margin-bottom: 20px;\\n margin-top: 10px;\\n}\\n\\n.header span,\\n.sub-header span {\\n margin-right: 10px;\\n font: normal normal bold 24px/25px \\\"Source Sans Pro\\\";\\n}\\n\\n.sub-header span {\\n color: #1A2188;\\n font: normal normal bold 20px/20px \\\"Source Sans Pro\\\";\\n}\\n\\n.shipment-button:hover {\\n background: #1A2188;\\n border-color: #1A2188;\\n}\\n\\n.shipment-button:disabled {\\n background: #99ABF3;\\n border-color: #99ABF3;\\n color: white;\\n}\\n\\n.shipment-list {\\n margin-top: 10px;\\n}\\n\\n.action-button {\\n display: flex;\\n justify-content: center;\\n}\\n\\napp-tracking-grid::ng-deep .table-container {\\n min-width: 935px;\\n}\\n\\napp-tracking-grid::ng-deep .table-header {\\n font-size: 14px;\\n background: #2998E3 !important;\\n}\\n\\napp-tracking-grid::ng-deep .table-header div {\\n margin-left: 10px !important;\\n padding-right: 5px;\\n}\\n\\napp-tracking-grid::ng-deep .table-header div:last-child {\\n justify-content: center;\\n margin-left: 25px !important;\\n}\\n\\napp-tracking-grid::ng-deep .table-row {\\n background: #F1F3FE;\\n font-size: 14px;\\n}\\n\\napp-tracking-grid::ng-deep .no-data span {\\n position: unset !important;\\n}\\n\\napp-tracking-grid::ng-deep .link {\\n font: normal normal bold 14px/9px \\\"Source Sans Pro\\\";\\n color: #1A2188 !important;\\n border-radius: 20px;\\n background: #FFFFFF !important;\\n justify-content: center;\\n margin: 4px !important;\\n}\\n\\napp-tracking-grid::ng-deep span:has(.action) {\\n position: relative;\\n visibility: hidden;\\n font-size: 0;\\n}\\n\\napp-tracking-grid::ng-deep .action {\\n visibility: visible;\\n margin: 0 !important;\\n margin: 6px !important;\\n margin-top: unset !important;\\n pointer-events: auto !important;\\n height: 18px !important;\\n cursor: pointer;\\n font-size: 0;\\n color: transparent;\\n}\\n\\napp-tracking-grid::ng-deep .action.delete {\\n background-image: url(\" + escape(require(\"./../../../../images/sample_tracking/report-delete.svg\")) + \");\\n background-repeat: no-repeat;\\n background-size: 18px;\\n background-position: center center;\\n}\\n\\napp-tracking-grid::ng-deep .action.resume {\\n background-image: url(\" + escape(require(\"./../../../../images/sample_tracking/report-resume.svg\")) + \");\\n background-repeat: no-repeat;\\n background-size: 15px;\\n background-position: center right;\\n background-position: center center;\\n}\\n\\napp-tracking-grid::ng-deep .action.edit {\\n background-image: url(\" + escape(require(\"./../../../../images/sample_tracking/edit_pencil.svg\")) + \");\\n background-repeat: no-repeat;\\n background-size: 15px;\\n background-position: center center;\\n}\\n\\napp-tracking-grid::ng-deep .action.view {\\n background-image: url(\" + escape(require(\"./../../../../images/sample_tracking/report-view.svg\")) + \");\\n background-repeat: no-repeat;\\n background-size: 15px;\\n background-position: center center;\\n}\\n\\napp-tracking-grid::ng-deep .action.helptext {\\n font-size: 12px;\\n background: unset;\\n color: black;\\n justify-content: center;\\n margin-bottom: unset !important;\\n text-align: center;\\n align-items: center;\\n}\\n\\n.inprogress-grid app-tracking-grid::ng-deep .table .table-data {\\n max-height: 40vh !important;\\n}\\n\\n.inprogress-grid app-tracking-grid::ng-deep .table-container {\\n min-height: unset !important;\\n}\\n\\ntimeframe-filter::ng-deep .filter-name {\\n width: fit-content !important;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"build/fonts/report-view.svg\";","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
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./protocol-shipment-list.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.container {\\n margin: 20px;\\n}\\n\\n.toolbar {\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.toolbar .first-row,\\n.toolbar .second-row {\\n display: flex;\\n flex-direction: row;\\n align-items: center;\\n justify-content: space-between;\\n}\\n\\n.export-action-button {\\n float: right;\\n align-items: flex-end;\\n display: flex;\\n padding: 20px 0;\\n justify-content: flex-end;\\n width: 100%;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.export-action-button .export-button {\\n border: 2px solid #3A5CE9;\\n border-radius: 20px;\\n opacity: 1;\\n cursor: pointer;\\n align-items: center;\\n font-family: \\\"Source Sans Pro\\\";\\n background-color: white;\\n color: #3A5CE9;\\n text-align: center;\\n margin-left: 10px;\\n display: flex;\\n}\\n\\n.export-action-button .export-button .icon-logo {\\n left: -2px;\\n position: relative;\\n}\\n\\n.export-action-button .export-button:hover {\\n background-color: #3A5CE9;\\n font-family: \\\"Source Sans Pro\\\";\\n color: white !important;\\n}\\n\\n.export-action-button .export-button:hover .icon-logo {\\n -webkit-filter: brightness(0) invert(1);\\n}\\n\\n.export-action-button .active {\\n background-color: #3A5CE9;\\n color: white !important;\\n font-weight: bold;\\n}\\n\\napp-tracking-grid::ng-deep .table-header {\\n background: #2998E3 !important;\\n}\\n\\napp-tracking-grid::ng-deep .table-header div {\\n margin-left: 8px !important;\\n margin-right: 8px !important;\\n}\\n\\napp-tracking-grid::ng-deep .table-data {\\n max-height: calc(100vh - 485px) !important;\\n}\\n\\napp-tracking-grid::ng-deep .active-search-filter {\\n width: unset !important;\\n}\\n\\ntimeframe-filter::ng-deep .filter-name {\\n width: 100% !important;\\n}\\n\\napp-select::ng-deep .all {\\n background-color: #fff !important;\\n}\\n\\napp-select::ng-deep .title {\\n font-weight: 800;\\n font-size: 14px;\\n font-family: \\\"Source Sans Pro\\\";\\n padding-left: 0;\\n}\\n\\napp-select::ng-deep .clear-selected,\\napp-select::ng-deep .selected-item-close {\\n display: none;\\n}\\n\\n.error-msg {\\n color: red;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\\r\\n\"","module.exports = \"\\r\\n\\r\\n\\r\\n \\r\\n\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n Shipment Details\\r\\n
\\r\\n
\\r\\n check\\r\\n
\\r\\n
\\r\\n Shipment created with {{numberOfContainers}} {{numberOfContainers > 1 ? 'samples.' : 'sample.'}}close\\r\\n
\\r\\n
\\r\\n
\\r\\n
0\\\" class=\\\"sample-table hide-table\\\">\\r\\n
\\r\\n Samples in Shipment: {{numberOfContainers}} \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Shipping To:\\r\\n {{info.toOrgName}}\\r\\n {{info.toAddressLine1}}\\r\\n {{info.toAddressLine2}}\\r\\n {{info.toCity}}\\r\\n {{toSubAddressData}}\\r\\n {{info.toCountryName}}\\r\\n {{info.toPhoneNumber}}\\r\\n
\\r\\n
\\r\\n Shipping From:\\r\\n {{ info.fromOrgName}}\\r\\n {{info.fromAddressLine1}}\\r\\n {{info.fromAddressLine2}}\\r\\n {{info.fromCity}}\\r\\n {{fromSubAddressData}}\\r\\n {{info.fromCountryName}}\\r\\n {{info.fromPhoneNumber}}\\r\\n
\\r\\n
\\r\\n Airbill No.:\\r\\n {{info?.trackingNumber}}\\r\\n
\\r\\n
\\r\\n Preparer:\\r\\n {{info?.preparerName}}\\r\\n
\\r\\n
\\r\\n Courier:\\r\\n {{info?.courierName}}\\r\\n
\\r\\n
\\r\\n Number of Containers:\\r\\n {{numberOfContainers}}\\r\\n
\\r\\n
\\r\\n Created on:\\r\\n {{info?.shipmentCreatedOn | date: 'dd-MMM-y, hh:mm a'}}\\r\\n
\\r\\n
\\r\\n Submitted on:\\r\\n {{info?.submittedOn | date: 'dd-MMM-y, hh:mm a'}}\\r\\n
\\r\\n
\\r\\n Shipment Schedule Date:\\r\\n {{info?.scheduledShipmentDate | date: 'dd-MMM-y'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Shipment Details\\r\\n {{printedOn}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Shipping To\\r\\n {{info.toOrgName}}\\r\\n {{info.toAddressLine1}}\\r\\n {{info.toAddressLine2}}\\r\\n {{info.toCity}}\\r\\n {{toSubAddressData}}\\r\\n {{info.toCountryName}}\\r\\n {{info.toPhoneNumber}}\\r\\n
\\r\\n
\\r\\n Airbill No.\\r\\n {{info?.trackingNumber}}\\r\\n
\\r\\n
\\r\\n Preparer\\r\\n {{info?.preparerName}}\\r\\n
\\r\\n
\\r\\n Created on\\r\\n {{info?.shipmentCreatedOn | date: 'dd-MMM-y, hh:mm a'}}\\r\\n
\\r\\n
\\r\\n Shipment Schedule Date\\r\\n {{info?.scheduledShipmentDate | date: 'dd-MMM-y'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Shipping From\\r\\n {{ info.fromOrgName}}\\r\\n {{info.fromAddressLine1}}\\r\\n {{info.fromAddressLine2}}\\r\\n {{info.fromCity}}\\r\\n {{fromSubAddressData}}\\r\\n {{info.fromCountryName}}\\r\\n {{info.fromPhoneNumber}}\\r\\n
\\r\\n
\\r\\n Courier\\r\\n {{info?.courierName}}\\r\\n
\\r\\n
\\r\\n Number of Containers\\r\\n {{numberOfContainers}}\\r\\n
\\r\\n
\\r\\n Submitted on\\r\\n {{info?.submittedOn | date: 'dd-MMM-y, hh:mm a'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n 0\\\" class=\\\"protocol-header\\\">Protocol: {{ dataItem.protocol }}\\r\\n No protocol specified\\r\\n
0\\\" class=\\\"sample-table\\\">\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./shipment-summary.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","var escape = require(\"../../../../node_modules/css-loader/lib/url/escape.js\");\nexports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"@charset \\\"UTF-8\\\";\\n\\n/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\napp-tracking-grid::ng-deep .table-container {\\n min-width: 355px;\\n}\\n\\napp-tracking-grid::ng-deep .table-row {\\n background: #F1F3FE;\\n min-height: 3rem;\\n margin-bottom: 15px;\\n}\\n\\napp-tracking-grid::ng-deep .table-header {\\n background: #3A5CE9;\\n color: white;\\n}\\n\\napp-tracking-grid::ng-deep .table-data {\\n max-height: 75vh !important;\\n}\\n\\napp-tracking-grid::ng-deep .no-data span {\\n position: inherit !important;\\n}\\n\\napp-tracking-grid::ng-deep .link {\\n font-size: 0;\\n background-image: url(\" + escape(require(\"./../../../../images/sample_tracking/trash-can.svg\")) + \");\\n background-repeat: no-repeat;\\n background-size: 20px;\\n background-position: center;\\n margin: 0 !important;\\n}\\n\\napp-tracking-grid::ng-deep .table-row:has(+ .children-row) {\\n border: none !important;\\n margin-bottom: 0;\\n}\\n\\napp-tracking-grid::ng-deep .children-row span:nth-child(1) {\\n background-image: none !important;\\n}\\n\\napp-tracking-grid::ng-deep .children-row .link {\\n visibility: hidden !important;\\n pointer-events: none !important;\\n}\\n\\n/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.heading {\\n font: normal normal bold 16px/28px \\\"Source Sans Pro\\\";\\n}\\n\\n.heading img {\\n height: 25px;\\n padding: 0 10px 2px 0;\\n}\\n\\n.view-results {\\n background: #FFFFFF;\\n color: #3A5CE9;\\n cursor: pointer;\\n}\\n\\n.table-container {\\n padding-right: 5px;\\n min-height: 35vh;\\n}\\n\\n.active-search-filter {\\n width: 1155px;\\n overflow-x: scroll;\\n}\\n\\n.table {\\n padding-bottom: 1rem;\\n font: normal normal normal 12px/12px \\\"Source Sans Pro\\\";\\n font-weight: 400;\\n}\\n\\n.table div:last-child {\\n border-radius: 0 0 6px 6px;\\n}\\n\\n.table-header {\\n display: flex;\\n background: #3A5CE9;\\n border-radius: 6px 6px 0px 0px;\\n color: white;\\n height: 4rem;\\n cursor: pointer;\\n flex-direction: row;\\n font: normal normal bold 13px/13px \\\"Source Sans Pro\\\";\\n}\\n\\n.table-header div {\\n display: flex;\\n align-items: center;\\n flex-wrap: nowrap;\\n width: -webkit-fill-available;\\n width: -moz-available;\\n margin-left: 5px;\\n}\\n\\n.table-data {\\n max-height: 78vh;\\n overflow-x: hidden;\\n}\\n\\n.table-row {\\n display: flex;\\n flex-direction: column;\\n border-bottom: 1px solid #d9d9d9;\\n background: #F8F8F8;\\n color: #231F20;\\n min-height: 1rem;\\n box-shadow: 0px 3px 6px -2px #b5b5b5;\\n}\\n\\n.table-row span {\\n display: inherit;\\n width: -webkit-fill-available;\\n width: -moz-available;\\n margin: 1.2vh;\\n line-break: auto;\\n align-items: center;\\n pointer-events: none;\\n}\\n\\n.table-row .link {\\n cursor: pointer;\\n color: #3A5CE9;\\n pointer-events: auto;\\n}\\n\\n.table-row .expired {\\n color: red;\\n}\\n\\n.no-data {\\n min-height: 3rem !important;\\n}\\n\\n.no-data span {\\n justify-content: space-around;\\n position: fixed;\\n}\\n\\n.table-row:hover {\\n background: #dee3fa !important;\\n}\\n\\n/* .children-row {\\n background: #F3F5FE !important;\\n cursor: pointer;\\n\\n img {\\n height: 20px;\\n padding-right: 5px;\\n margin-top: -0.5vh;\\n margin-left: 0;\\n }\\n\\n span:nth-child(1) {\\n background-image: url('../../../../../images/sample_tracking/arrow-right-bottom.svg');\\n background-repeat: no-repeat;\\n padding-left: 25px;\\n background-size: 25px, 40px;\\n background-position: left, center;\\n margin-left: 0;\\n }\\n }*/\\n\\n.children-row:hover {\\n background: #C6D0F9 !important;\\n}\\n\\n.disable-row {\\n background: #E9E9E9 !important;\\n}\\n\\n.sm-row {\\n position: relative;\\n box-shadow: unset !important;\\n background: #FFCCCB !important;\\n}\\n\\n.sm-row .tooltiptext {\\n visibility: hidden;\\n width: auto;\\n background-color: white;\\n color: #000;\\n text-align: center;\\n padding: 5px;\\n border: 1px solid;\\n border-radius: 6px;\\n position: absolute;\\n z-index: 1;\\n margin-top: -15px;\\n margin-left: 40px;\\n font: normal normal normal 14px/17px \\\"Source Sans Pro\\\";\\n}\\n\\n.sm-row .tooltiptext::after {\\n content: \\\" \\\";\\n position: absolute;\\n top: 100%;\\n left: 50%;\\n margin-left: -25px;\\n border-width: 5px;\\n border-style: dashed;\\n border-color: black transparent transparent transparent;\\n}\\n\\n.sm-row > .row-container > span:nth-child(1),\\n.sm-row > span:nth-child(1) {\\n background-image: url(\" + escape(require(\"./../../../../images/sample_tracking/hold-badge.svg\")) + \");\\n background-repeat: no-repeat;\\n background-size: 40px;\\n background-position: center center;\\n}\\n\\n.sm-row > span:nth-child(1):hover ~ .tooltiptext {\\n visibility: visible;\\n}\\n\\n.sm-row:hover {\\n background: #FFCCCB !important;\\n}\\n\\n.special-cell {\\n color: white;\\n border-radius: 15px;\\n align-items: center;\\n justify-content: center;\\n width: 6.5vw !important;\\n margin: 1vh 2.3vw 1vh 2vw !important;\\n height: 25px;\\n}\\n\\n.active {\\n background-color: #069D06;\\n}\\n\\n.in-active {\\n background-color: #DC1439;\\n}\\n\\n.special-cell-text-active {\\n color: #069D06;\\n}\\n\\n.special-cell-text-inactive {\\n color: #DC1439;\\n}\\n\\n::-webkit-scrollbar {\\n width: 5px;\\n height: 14px;\\n}\\n\\n::-webkit-scrollbar-track {\\n background: #ffffff;\\n}\\n\\n::-webkit-scrollbar-thumb {\\n background: #C6D0F9;\\n}\\n\\n/* Handle on hover */\\n\\n::-webkit-scrollbar-thumb:hover {\\n background: #3A5CE9;\\n}\\n\\n.search-filter {\\n height: 4rem;\\n display: flex;\\n flex-direction: row;\\n align-items: center;\\n justify-content: center;\\n background-color: #F3F5FE;\\n}\\n\\n.search-filter .search {\\n width: 175px;\\n display: flex;\\n margin-left: 5px;\\n justify-content: center;\\n position: relative;\\n}\\n\\n.search-filter .search .search-box {\\n width: 140px;\\n border: 1px solid #C6D0F9;\\n border-radius: 2px;\\n outline: none;\\n}\\n\\n.search-filter .search .search-box.has-value {\\n border: 2px solid #3a5ce9;\\n}\\n\\n.search-filter .search .search-box:focus-visible {\\n border-color: #3a5ce9 !important;\\n}\\n\\n.search-filter .search img {\\n cursor: pointer;\\n height: 20px;\\n}\\n\\n.search-filter .search .header-search-close {\\n font-size: 12px;\\n color: #B3B2B3;\\n right: 25px;\\n top: 5px;\\n position: absolute;\\n cursor: pointer;\\n}\\n\\n.search-filter .search .header-search-close:hover {\\n color: #ff0000 !important;\\n}\\n\\n.filter-menu {\\n display: none;\\n}\\n\\n.filter-menu .filter-search-box {\\n border: none;\\n outline: none;\\n border-radius: 3px;\\n border-bottom: 2px solid #6e82d8;\\n}\\n\\n.last-item {\\n right: 10px;\\n left: auto !important;\\n}\\n\\n.is-active {\\n background: #e3e6f2 !important;\\n border-radius: 5px !important;\\n display: flex;\\n position: absolute;\\n padding: 10px;\\n margin-top: 25px;\\n justify-content: flex-start;\\n flex-direction: column;\\n max-height: 250px;\\n overflow-y: auto;\\n border: 1px solid #aebdff;\\n width: max-content;\\n left: 0;\\n z-index: 1;\\n}\\n\\n.unique-items {\\n padding-top: 5px;\\n padding-left: 5px;\\n display: flex;\\n align-items: center;\\n font-size: 15px;\\n}\\n\\n.unique-items input {\\n width: 14px;\\n height: 14px;\\n}\\n\\n.unique-items label {\\n cursor: pointer;\\n}\\n\\n.select-all {\\n border-bottom: 3px solid #3a5ce9;\\n margin: 10px 0;\\n padding-bottom: 10px;\\n border-radius: 0 !important;\\n}\\n\\n.filter-hint {\\n position: absolute;\\n top: 22px;\\n left: 5px;\\n color: red;\\n}\\n\\n.prevent-events {\\n pointer-events: none;\\n cursor: none;\\n}\\n\\n.expand .row-container span:nth-child(1)::before {\\n content: \\\"\\\\25B4\\\";\\n font-size: 20px;\\n cursor: pointer;\\n pointer-events: all;\\n}\\n\\n.collapse {\\n color: white;\\n margin-bottom: 10px;\\n transition: transform 1.3s cubic-bezier(0, 0, 0.91, 1.01);\\n}\\n\\n.collapse .row-container {\\n background-color: #3A5CE9 !important;\\n}\\n\\n.collapse .row-container span:nth-child(1)::before {\\n content: \\\"\\\\25BE\\\";\\n font-size: 20px;\\n cursor: pointer;\\n pointer-events: all;\\n}\\n\\n.collapse .row-container .link {\\n color: white !important;\\n}\\n\\n.collapse .row-container:hover {\\n background-color: #3A5CE9 !important;\\n}\\n\\n.grouping-row {\\n display: none;\\n background-color: #dee3fa;\\n}\\n\\n.grouping-row .parent,\\n.grouping-row .child {\\n margin: 10px;\\n}\\n\\n.grouping-row .parent .table-row,\\n.grouping-row .child .table-row {\\n flex-direction: row;\\n}\\n\\n.grouping-row .title {\\n background-color: #b5b5b5;\\n border-radius: 6px 6px 0 0;\\n padding: 10px;\\n color: rgba(0, 0, 0, 0.87);\\n font: normal normal bold 13px/13px \\\"Source Sans Pro\\\";\\n}\\n\\n.show {\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.row-container {\\n display: flex;\\n}\\n\\n.columns-outline.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder) {\\n transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);\\n}\\n\\n.cdk-drag {\\n transition: transform 150ms ease;\\n}\\n\\n.cdk-drag-animating {\\n transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);\\n}\\n\\n.cdk-drag-placeholder {\\n background: #E9E9E9;\\n border: 1px dashed #2998E3 !important;\\n border-radius: 3px;\\n font-size: 0;\\n transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);\\n}\\n\\n.cdk-drag-preview {\\n background: #2998E3;\\n border-radius: 3px;\\n color: white;\\n height: 4rem;\\n cursor: grabbing !important;\\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);\\n font: normal normal bold 13px/13px \\\"Source Sans Pro\\\";\\n display: flex;\\n}\\n\\n.cdk-drag-preview span {\\n text-align: center;\\n display: flex;\\n align-items: center;\\n margin-left: 5px;\\n}\\n\\n.rotate-icon {\\n transform: rotate(90deg) !important;\\n width: 20%;\\n text-align: center;\\n margin-bottom: 7px;\\n padding-top: 10px;\\n}\\n\\n.material-icons {\\n font-size: 13px;\\n width: 8px;\\n}\\n\\n.row-checkbox {\\n margin-left: 20px;\\n margin-right: 18px;\\n cursor: pointer;\\n transform: scale(1.5);\\n}\\n\\n.column-checkbox {\\n margin-left: 20px;\\n margin-right: 15px;\\n cursor: pointer;\\n transform: scale(1.5);\\n}\\n\\n.action-span {\\n display: grid !important;\\n margin: unset !important;\\n margin-bottom: 0.5vh !important;\\n}\\n\\n.action-disabled {\\n pointer-events: none !important;\\n opacity: 0 !important;\\n}\\n\\n.default {\\n color: #a0a0a0;\\n}\\n\\nselect {\\n border-radius: 10px;\\n border: 1px solid #a0a0a0;\\n padding: 7px;\\n margin: 10px;\\n margin-left: 5px;\\n outline: none;\\n height: 3rem;\\n width: 55rem;\\n cursor: pointer;\\n font-family: \\\"Source Sans Pro\\\";\\n font-size: 14px;\\n}\\n\\nselect option {\\n cursor: pointer;\\n font-family: \\\"Source Sans Pro\\\";\\n color: black;\\n font-size: 16px;\\n border-radius: 10px;\\n}\\n\\nselect option .hide {\\n display: none;\\n}\\n\\nselect option:hover {\\n background-color: #a0a0a0 !important;\\n color: black;\\n}\\n\\nselect option:checked {\\n color: white;\\n background-color: #2998E3 !important;\\n}\\n\\nselect:focus {\\n outline: 1px solid #3A5CE9;\\n}\\n\\n.reason-row {\\n display: inline-flex;\\n align-items: center;\\n margin-left: 2rem;\\n font-weight: bold;\\n margin-top: 1rem;\\n margin-bottom: 1rem;\\n}\\n\\n.reason-row span {\\n width: fit-content !important;\\n}\\n\\ntextarea {\\n margin: 0 1rem 1rem 9.2rem;\\n width: 35rem;\\n border-radius: 10px;\\n height: 6rem;\\n font-family: \\\"Source Sans Pro\\\";\\n padding: 5px;\\n font-size: 16px;\\n}\\n\\ntextarea:hover,\\ntextarea:focus {\\n border: 1px solid #3A5CE9;\\n box-shadow: 0 0 5px 1px #08F;\\n outline: none !important;\\n}\\n\\n.subValue {\\n display: block !important;\\n max-width: 14rem !important;\\n word-wrap: break-word;\\n font-weight: normal;\\n padding-left: 15px;\\n padding-top: 4px;\\n font-size: 12px !important;\\n margin: unset !important;\\n position: relative;\\n}\\n\\n.align-child-row {\\n padding-left: 3rem;\\n margin-top: 1rem;\\n margin-bottom: 1rem;\\n border-top: 1px solid #e9e9e9;\\n}\\n\\n.child-row {\\n border-bottom: unset !important;\\n}\\n\\n.disable {\\n pointer-events: none !important;\\n color: grey !important;\\n}\\n\\n@media print {\\n@page {\\n size: A4 landscape;\\n}\\n\\n :host {\\n display: none;\\n }\\n\\n .wrapper {\\n display: grid;\\n }\\n\\n .action-buttons {\\n display: none;\\n }\\n}\\n\\n:host {\\n position: relative;\\n display: flex;\\n font-family: \\\"Source Sans Pro\\\";\\n float: none;\\n}\\n\\n.wrapper {\\n display: grid;\\n}\\n\\n.sample-table {\\n margin-left: 20px;\\n height: fit-content;\\n}\\n\\n.summary-field {\\n display: grid;\\n font: normal normal normal 16px/16px \\\"Source Sans Pro\\\";\\n margin-bottom: 40px;\\n line-height: 2.5rem;\\n}\\n\\n.summary-field .field-name {\\n color: black;\\n font: normal normal bold 16px/16px \\\"Source Sans Pro\\\";\\n}\\n\\n.summary-field span {\\n width: max-content;\\n}\\n\\n.summary-header {\\n width: 90%;\\n font: normal normal bold 22px/22px \\\"Source Sans Pro\\\";\\n padding: 30px;\\n padding-bottom: 0px;\\n height: 30px;\\n display: flex;\\n padding-left: 30px;\\n justify-content: space-between;\\n}\\n\\n.summary-sub-header {\\n padding: unset;\\n padding-left: 30px;\\n font-size: 18px;\\n color: #000000;\\n padding-bottom: 30px;\\n}\\n\\n.success {\\n color: #2FAF00;\\n font-size: 24px !important;\\n padding-bottom: 5px;\\n}\\n\\n.print-date {\\n font: normal normal bold 16px/16px \\\"Source Sans Pro\\\";\\n opacity: 0;\\n}\\n\\n.action-buttons {\\n position: relative;\\n display: flex;\\n width: 95%;\\n padding-left: 20px;\\n padding-bottom: 20px;\\n justify-content: flex-end;\\n margin-right: 20px;\\n}\\n\\n.action-buttons button {\\n border: 2px solid #3A5CE9;\\n border-radius: 20px;\\n background-color: #3A5CE9;\\n color: white;\\n height: 40px;\\n font: normal normal bold 14px/14px \\\"Source Sans Pro\\\";\\n margin-right: 10px;\\n}\\n\\n.action-buttons button:hover {\\n background: #1A2188;\\n border-color: #1A2188;\\n}\\n\\n.shipment-address {\\n display: flex;\\n width: 400px;\\n margin-left: 10px;\\n}\\n\\n.shipment-details {\\n display: flex;\\n padding-left: 20px;\\n padding-right: 30px;\\n}\\n\\n.shipment-to,\\n.shipment-from {\\n width: 200px;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .table-header {\\n background: #2998E3 !important;\\n color: white;\\n font-size: 14px;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .table-header div {\\n margin-left: 10px !important;\\n padding-right: 5px;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .disable-row {\\n background: #E9E9E9 !important;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .table .table-data {\\n max-height: 40vh !important;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .table-container {\\n min-height: unset !important;\\n max-width: 90%;\\n margin-left: 1rem;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .table-row {\\n margin-bottom: unset !important;\\n font-size: 14px;\\n background: #F1F3FE;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .table-row .row-content:first-child {\\n display: grid;\\n font-weight: bold;\\n justify-content: flex-start;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .children-row {\\n font-size: 12Px !important;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .children-row span {\\n opacity: 0;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .children-row span:first-child {\\n font-weight: normal !important;\\n opacity: 1 !important;\\n}\\n\\n.material-icons {\\n position: relative;\\n top: 5px;\\n right: 5px;\\n margin-right: 15px;\\n font-size: 24px !important;\\n}\\n\\n.print-button {\\n background-color: white !important;\\n color: #3A5CE9 !important;\\n}\\n\\n.print-button:hover {\\n background-color: #3A5CE9 !important;\\n color: white !important;\\n border-color: #3A5CE9 !important;\\n}\\n\\n.print-page {\\n display: none;\\n width: 1000px;\\n}\\n\\n.protocol-header {\\n text-align: center;\\n font: normal normal normal 18px/18px \\\"Source Sans Pro\\\";\\n padding-bottom: 15px;\\n}\\n\\n.print-summary {\\n flex-direction: row;\\n}\\n\\n.summary-data {\\n width: 90%;\\n border: 2px solid #E8E8E8;\\n background-color: #F8F8F8;\\n margin-top: 2rem;\\n margin-bottom: 3rem;\\n margin-left: 2.5rem;\\n border-radius: 10px;\\n}\\n\\n.summary-data .summary-field {\\n height: fit-content;\\n margin-right: 2rem;\\n line-height: 2rem;\\n}\\n\\n.summary-data .summary-field .field-name {\\n margin-bottom: 1rem;\\n}\\n\\n.grid-box {\\n margin-left: 20px;\\n margin-top: 20px;\\n display: grid;\\n grid-template-columns: repeat(5, 1fr);\\n}\\n\\n.submit-align-tooltip {\\n margin-top: 1.5rem;\\n margin-bottom: 1rem;\\n display: inline-flex;\\n justify-content: flex-end;\\n}\\n\\n.submit-tool-tip {\\n background-color: #069D06;\\n border-color: #069D06;\\n color: white;\\n display: flex;\\n width: 40px;\\n justify-content: center;\\n align-items: center;\\n position: relative;\\n text-align: center;\\n border-radius: 10px 0 0 10px;\\n height: 40px;\\n left: 2px;\\n cursor: pointer;\\n top: 7px;\\n margin-top: -23px;\\n}\\n\\n.submit-tool-tip .tool-tip-icon {\\n display: flex;\\n font-weight: bold;\\n width: 20px;\\n justify-content: center;\\n align-items: center;\\n text-align: center;\\n background-color: white;\\n border-radius: 20px;\\n height: 20px;\\n color: #069D06;\\n}\\n\\n.submit-tool-tip .tool-tip-icon .material-icons {\\n font-size: 18px !important;\\n position: relative;\\n right: unset;\\n top: unset;\\n left: 1px;\\n margin-right: 15px;\\n}\\n\\n.submit-tool-tip-text {\\n border: 1px solid #069D06;\\n border-radius: 0 10px 10px 0;\\n justify-content: center;\\n display: flex;\\n text-align: center;\\n align-items: center;\\n position: relative;\\n left: 2px;\\n padding-right: 10px;\\n top: 7px;\\n font-weight: normal;\\n height: 38px;\\n margin-top: -23px;\\n}\\n\\n.submit-tool-tip-text span {\\n left: 5px;\\n position: relative;\\n margin: 1rem;\\n font-size: 17px;\\n}\\n\\n.submit-tool-tip-text mdl-icon {\\n cursor: pointer;\\n margin-left: 50px;\\n margin-bottom: 1rem;\\n}\\n\\n\", \"\"]);\n\n// exports\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 {{isDrawerCollapsed ? 'Expand sidebar' : 'Collapse sidebar'}}\\r\\n \\r\\n \\r\\n Home\\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sm-workspace-level-layout.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.wrapper {\\n display: flex;\\n flex-direction: column;\\n flex-grow: 1;\\n}\\n\\n.dashboard-link {\\n font-size: 12px;\\n color: #616161;\\n min-width: auto;\\n display: flex;\\n align-items: center;\\n}\\n\\n.dashboard-link .material-icons {\\n font-size: 18px;\\n}\\n\\n.header-title {\\n flex-shrink: 1;\\n min-width: 40px;\\n}\\n\\n.header-title .inner-header-title {\\n display: flex;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n}\\n\\n.home-button-tooltip {\\n display: none;\\n}\\n\\n.is-drawer-collapsed .home-button-tooltip {\\n display: block;\\n}\\n\\n.collapse-button {\\n height: 29px;\\n justify-content: flex-end;\\n}\\n\\n.collapse-button .material-icons {\\n width: 8px;\\n color: #3A5CE9;\\n font-weight: bold;\\n}\\n\\n.collapse-button:hover .material-icons {\\n color: #1A2188;\\n font-weight: bold;\\n}\\n\\n.mdl-navigation {\\n flex-grow: 1;\\n}\\n\\n.shrink {\\n flex-shrink: 1;\\n}\\n\\n.app-title {\\n align-self: center;\\n letter-spacing: 0px;\\n}\\n\\n.mdl-layout__header {\\n color: #666;\\n background-color: #fff;\\n z-index: 8;\\n margin-left: 0 !important;\\n width: inherit !important;\\n border-bottom: 1px solid rgba(0, 0, 0, 0.15);\\n box-shadow: none;\\n}\\n\\n.mdl-navigation ::ng-deep .mdl-navigation__link--current,\\n.mdl-navigation ::ng-deep .active-link {\\n color: #000000;\\n font-weight: bold;\\n font-family: \\\"Source Sans Pro\\\";\\n opacity: 1 !important;\\n}\\n\\n.mdl-navigation ::ng-deep .mdl-navigation__link--current .navigation-link-text,\\n.mdl-navigation ::ng-deep .active-link .navigation-link-text {\\n top: 2px;\\n position: relative;\\n color: #000000 !important;\\n}\\n\\n.mdl-navigation ::ng-deep .active-link {\\n border-left: thick solid #3A5CE9 !important;\\n}\\n\\n.mdl-navigation ::ng-deep .navigation-link-text {\\n font-size: 16px;\\n}\\n\\n.mdl-navigation ::ng-deep .active-icon {\\n color: #000000 !important;\\n}\\n\\n.mdl-navigation ::ng-deep .mdl-navigation__link.top-level-link {\\n padding-bottom: 12px;\\n padding-top: 12px;\\n font-family: \\\"Source Sans Pro\\\";\\n justify-content: unset !important;\\n border-left: thick solid rgb(250, 250, 250);\\n}\\n\\n.mdl-navigation ::ng-deep .mdl-navigation__link.top-level-link .navigation-link-text {\\n top: 2px;\\n position: relative;\\n color: black;\\n}\\n\\n.mdl-navigation ::ng-deep .mdl-navigation__link.second-level-link {\\n padding-bottom: 12px;\\n padding-top: 12px;\\n font-family: \\\"Source Sans Pro\\\";\\n padding-left: 40px;\\n border-left: thick solid rgb(250, 250, 250);\\n}\\n\\n.mdl-navigation ::ng-deep .mdl-navigation__link.second-level-link .navigation-link-text {\\n top: 2px;\\n position: relative;\\n color: black;\\n}\\n\\n.mdl-navigation ::ng-deep .mdl-navigation__link:hover {\\n background-color: rgb(250, 250, 250) !important;\\n font-weight: bold;\\n}\\n\\n.mdl-navigation ::ng-deep .mdl-navigation__link mdl-icon.material-icons {\\n margin-right: 13px !important;\\n margin-left: 2px;\\n color: black !important;\\n}\\n\\n.mdl-navigation ::ng-deep .mdl-navigation__link {\\n opacity: 1;\\n}\\n\\n.mdl-navigation ::ng-deep .disabled {\\n opacity: 0.5;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sm-navigation.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Additional Container

\\r\\n
\\r\\n
\\r\\n
\\r\\n * = Required\\r\\n
\\r\\n Additional Container\\r\\n Additional containers wil not be visible to sponsors until receipt at Labcorp.\\r\\n \\r\\n Sample Identifier:\\r\\n {{containerRequest?.barcode}}\\r\\n \\r\\n \\r\\n Intended Use*\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{containerRequest?.errorText}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./additional-container.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.wrapper {\\n background-color: #FAFBFE;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.wrapper .heading {\\n font-size: 18px;\\n font-weight: bold;\\n}\\n\\n.wrapper .required-text {\\n font-size: 13px;\\n}\\n\\n.wrapper .instruction-text {\\n font-size: 13px;\\n margin-top: 1rem;\\n}\\n\\n.wrapper .barcode-input-container {\\n display: inherit;\\n}\\n\\n.wrapper .input-container {\\n display: flex;\\n position: relative;\\n margin: 10px 0px 5px 0px;\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 1px solid #707070;\\n opacity: 1;\\n border-radius: 10px;\\n}\\n\\n.wrapper .mdl-textfield__input {\\n border: unset !important;\\n outline: unset !important;\\n font-family: \\\"Source Sans Pro\\\";\\n display: flex;\\n padding-left: 10px;\\n font-size: 16px;\\n position: relative;\\n height: 6rem;\\n}\\n\\n.wrapper .accession-number__label {\\n font-size: 16px !important;\\n font-weight: bold;\\n margin-top: 0.5rem;\\n}\\n\\n.wrapper .container-barcode-img {\\n width: 250px !important;\\n height: 170px !important;\\n padding: 8px 8px 8px 24px;\\n display: flex;\\n position: relative;\\n}\\n\\n.sub-header {\\n width: 100%;\\n text-align: end;\\n}\\n\\n.error-text {\\n margin-top: 1rem;\\n margin-bottom: 1rem;\\n font-size: 13px;\\n color: red;\\n}\\n\\n.dialog-title {\\n width: auto;\\n height: 41px;\\n background: #2998E3 0% 0% no-repeat padding-box;\\n opacity: 1;\\n font-family: \\\"Source Sans Pro\\\";\\n text-align: center;\\n color: white;\\n display: flex;\\n}\\n\\n.dialog-title .mdl-dialog__title {\\n font-size: 18px;\\n padding: 10px;\\n text-align: center;\\n font-weight: bold;\\n width: 100%;\\n}\\n\\n.dialog-title .mdl-button {\\n top: 5px;\\n}\\n\\n.wrapper {\\n background-color: #FAFBFE;\\n font-family: \\\"Source Sans Pro\\\";\\n border-radius: 10px;\\n}\\n\\n.mdl-dialog__content {\\n padding: 20px 20px 10px 20px;\\n display: grid;\\n color: black;\\n}\\n\\n.action-buttons {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n\\n.action-buttons button {\\n display: flex;\\n align-items: center;\\n}\\n\\n.action-buttons .close {\\n border: 2px solid #3A5CE9;\\n border-radius: 19px;\\n font: normal normal 600 16px/12px \\\"Source Sans Pro\\\";\\n color: #3A5CE9;\\n min-width: 100px;\\n justify-content: center;\\n}\\n\\n.action-buttons .save {\\n border: 2px solid #3A5CE9;\\n border-radius: 20px;\\n cursor: pointer;\\n background-color: #3A5CE9;\\n color: white;\\n font: normal normal 500 16px/12px \\\"Source Sans Pro\\\";\\n margin: 10px 5px;\\n padding: 15px;\\n min-width: 100px;\\n justify-content: center;\\n}\\n\\n.action-buttons .save:hover {\\n background: #1A2188 0% 0% no-repeat padding-box;\\n border: 2px solid #3A5CE9;\\n}\\n\\n.action-buttons .close:hover {\\n background: #3A5CE9 0% 0% no-repeat padding-box;\\n color: white;\\n}\\n\\n.action-buttons .save:disabled,\\n.action-buttons button[disabled] {\\n background: #99ABF3 0% 0% no-repeat padding-box;\\n background-color: #99ABF3;\\n border: 2px solid #99ABF3;\\n cursor: unset;\\n}\\n\\n.required {\\n color: #F7758C;\\n font-size: 13px;\\n font-weight: bold;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n Registered Samples\\r\\n
\\r\\n
\\r\\n
\\r\\n i\\r\\n
\\r\\n
\\r\\n Reminder: Please relabel alternate/additional containers with extra barcode labels provided in kit.\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Record Count: {{formatedContainerList?.length ? formatedContainerList.length : '0'}} \\r\\n Saving\\r\\n
\\r\\n
{{count?.length}} of {{formatedContainerList?.length}} expected samples registered.
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n Additional Samples
\\r\\n Type or scan any samples that are not expected.\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n camera_alt\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n info_outline{{errorText}}\\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
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./register-samples.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n:host {\\n position: relative;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.header-content {\\n margin-top: 20px;\\n margin-left: 10px;\\n display: grid;\\n}\\n\\n.header-content span {\\n margin-right: 10px;\\n font: normal normal bold 24px/25px \\\"Source Sans Pro\\\";\\n}\\n\\n.header-content span:nth-child(2) {\\n margin-top: 15px;\\n font: normal normal normal 15px/15px \\\"Source Sans Pro\\\";\\n}\\n\\n.wrapper {\\n margin: 0 50px 100px 20px;\\n background-color: white;\\n max-width: 150rem;\\n}\\n\\n.tool-tip {\\n background-color: #6C2FAC;\\n border-color: #6C2FAC;\\n color: white;\\n display: flex;\\n width: 50px;\\n justify-content: center;\\n align-items: center;\\n position: relative;\\n text-align: center;\\n border-radius: 10px 0 0 10px;\\n height: 50px;\\n left: 2px;\\n cursor: pointer;\\n top: 7px;\\n}\\n\\n.tool-tip .tool-tip-icon {\\n display: flex;\\n font-weight: bold;\\n width: 25px;\\n justify-content: center;\\n align-items: center;\\n text-align: center;\\n background-color: white;\\n border-radius: 20px;\\n height: 25px;\\n color: #6C2FAC;\\n font-size: 15px;\\n}\\n\\n.tool-tip-text {\\n border: 1px solid #6C2FAC;\\n border-radius: 0 10px 10px 0;\\n justify-content: center;\\n display: flex;\\n text-align: center;\\n align-items: center;\\n position: relative;\\n left: 2px;\\n padding-right: 10px;\\n top: 7px;\\n height: 48px;\\n}\\n\\n.tool-tip-text span {\\n left: 5px;\\n position: relative;\\n margin: 1rem;\\n font-size: 17px;\\n}\\n\\n.align-tooltip {\\n margin-top: 1rem;\\n display: inline-flex;\\n max-width: 100rem;\\n width: 100%;\\n justify-content: flex-end;\\n}\\n\\nsample-details::ng-deep .accession-info {\\n margin-bottom: 2rem;\\n max-width: 100rem;\\n}\\n\\napp-tracking-grid::ng-deep .table {\\n max-width: 90rem !important;\\n}\\n\\napp-tracking-grid::ng-deep .table-container {\\n margin-left: 10px;\\n}\\n\\napp-tracking-grid::ng-deep .table-data {\\n max-height: unset;\\n}\\n\\napp-tracking-grid::ng-deep .required,\\napp-tracking-grid::ng-deep .optional {\\n background-color: #3A5CE9;\\n color: white;\\n height: 2.5rem;\\n width: 40rem !important;\\n font-weight: bold;\\n margin: 16px !important;\\n margin-right: 3rem !important;\\n border-radius: 7px;\\n}\\n\\napp-tracking-grid::ng-deep .alternateContainer {\\n background-color: #1A2188;\\n color: white;\\n width: 40rem !important;\\n height: 2.5rem;\\n margin-top: 10px !important;\\n margin-right: 3rem !important;\\n font-weight: bold;\\n border-radius: 7px;\\n}\\n\\napp-tracking-grid::ng-deep .Additional {\\n opacity: 0;\\n pointer-events: none !important;\\n}\\n\\napp-tracking-grid::ng-deep .hideLink {\\n pointer-events: none !important;\\n color: #99ABF3 !important;\\n}\\n\\napp-tracking-grid::ng-deep .optional {\\n background-color: lightgrey !important;\\n color: black !important;\\n}\\n\\napp-tracking-grid::ng-deep .alternateContainer {\\n background-color: #1A2188, !important;\\n}\\n\\napp-tracking-grid::ng-deep .align-text {\\n width: 50rem !important;\\n}\\n\\napp-tracking-grid::ng-deep .table-row {\\n font-size: 14px;\\n box-shadow: unset !important;\\n background: #F1F3FE;\\n}\\n\\napp-tracking-grid::ng-deep .table-row .row-content {\\n justify-content: center;\\n}\\n\\napp-tracking-grid::ng-deep .table-row .row-content:nth-child(2) {\\n display: grid;\\n font-weight: bold;\\n justify-content: flex-start;\\n}\\n\\napp-tracking-grid::ng-deep .table-row .link {\\n text-decoration: underline;\\n}\\n\\napp-tracking-grid::ng-deep .child-content:last-child {\\n font-weight: bold;\\n text-decoration: none;\\n}\\n\\napp-tracking-grid::ng-deep .table-header {\\n background: #2998E3 !important;\\n}\\n\\napp-tracking-grid::ng-deep .table-header div {\\n font-size: 14px;\\n justify-content: center;\\n}\\n\\napp-tracking-grid::ng-deep .table-header div:first-child {\\n width: 44rem !important;\\n margin-right: 3rem;\\n}\\n\\napp-tracking-grid::ng-deep .table-header div:nth-child(2) {\\n justify-content: flex-start;\\n}\\n\\napp-tracking-grid::ng-deep .no-data span {\\n position: absolute !important;\\n max-width: 100rem !important;\\n}\\n\\napp-tracking-grid::ng-deep .material-icons {\\n margin-right: 10px;\\n font-size: 15px;\\n padding-top: 2px;\\n}\\n\\napp-tracking-grid::ng-deep .next-action {\\n background: #3A5CE9 0% 0% no-repeat padding-box;\\n border-radius: 20px;\\n opacity: 1;\\n font-family: \\\"Source Sans Pro\\\";\\n font-size: 15px;\\n color: white !important;\\n font-weight: bold;\\n cursor: pointer;\\n background-color: #3A5CE9;\\n padding: 0 2.5rem;\\n bottom: 30px;\\n}\\n\\napp-tracking-grid::ng-deep .next-action:hover {\\n background: #1A2188 0% 0% no-repeat padding-box;\\n background-color: #1A2188;\\n}\\n\\napp-tracking-grid::ng-deep .next-action:disabled,\\napp-tracking-grid::ng-deep button[disabled] {\\n background: #99ABF3 0% 0% no-repeat padding-box;\\n background-color: #99ABF3;\\n cursor: unset;\\n}\\n\\napp-tracking-grid::ng-deep .content-img {\\n padding-left: 5px;\\n}\\n\\n.tool-bar {\\n width: 99%;\\n max-width: 89rem;\\n margin-left: 5px;\\n}\\n\\n.tool-bar .search-bar {\\n display: flex;\\n justify-content: flex-end;\\n}\\n\\n.tool-bar .grid-info {\\n max-width: 100rem;\\n display: inline-flex;\\n width: 100%;\\n justify-content: space-between;\\n}\\n\\n.tool-bar .grid-count {\\n padding: 5px 5px 12px 5px;\\n font-size: 15px;\\n display: inline-flex;\\n}\\n\\n.tool-bar .saving-action {\\n padding-left: 3rem;\\n color: #A0A0A0;\\n font-size: 15px;\\n}\\n\\n.tool-bar .saving-action img {\\n padding-right: 0.5rem;\\n padding-bottom: 1px;\\n}\\n\\n.tool-bar .count-info {\\n font-size: 15px;\\n align-items: center;\\n display: flex;\\n}\\n\\n.tool-bar .count-info b {\\n color: #DC1439;\\n padding-right: 4px;\\n padding-left: 4px;\\n}\\n\\nsearch-bar::ng-deep .search-container {\\n width: 15rem;\\n border: 1px solid #2998E3;\\n border-radius: unset;\\n}\\n\\nsearch-bar::ng-deep .search-container .search-icon {\\n filter: invert(0.5) !important;\\n}\\n\\n.required {\\n color: #F7758C;\\n font-size: 16px;\\n padding-left: 6px;\\n font-weight: bold;\\n}\\n\\n.field-container {\\n margin-top: 1rem;\\n}\\n\\n.field-container .heading {\\n margin-left: 12px;\\n font-size: 17px;\\n font-weight: bold;\\n}\\n\\n.field-container .instruction {\\n margin-left: 12px;\\n font-size: 13px;\\n font-weight: 500;\\n}\\n\\n.field-container .required-text {\\n font-size: 12px;\\n}\\n\\n.field-container .barcode-input-container {\\n display: inherit;\\n}\\n\\n.field-container .input-container {\\n display: flex;\\n width: 300px;\\n position: relative;\\n margin: 10px 10px 5px 10px;\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 1px solid #707070;\\n opacity: 1;\\n height: 40px;\\n border-radius: 10px;\\n}\\n\\n.field-container .input-focus {\\n border: 1px solid #3A5CE9;\\n box-shadow: 0 0 5px 1px #08F;\\n}\\n\\n.field-container .input-container:hover {\\n box-shadow: 0 0 5px 1px #08F;\\n border: 1px solid #3A5CE9;\\n}\\n\\n.field-container .mdl-textfield__input {\\n border: unset !important;\\n outline: unset !important;\\n font-family: \\\"Source Sans Pro\\\";\\n display: flex;\\n padding-left: 10px;\\n font-size: 16px;\\n position: relative;\\n}\\n\\n.field-container .mdl-textfield__label {\\n color: grey !important;\\n outline: unset !important;\\n font-family: \\\"Source Sans Pro\\\";\\n font-size: 15px;\\n background: unset !important;\\n bottom: 9px;\\n display: flex;\\n width: fit-content;\\n margin-left: 7px;\\n top: unset;\\n}\\n\\n.field-container .barcode-loading {\\n width: 15px;\\n margin-right: 10px;\\n margin-top: 5px;\\n}\\n\\n.field-container .barcode-loading app-spinner ::ng-deep .spinner-wrapper {\\n padding: 0px !important;\\n left: 3px;\\n position: relative;\\n top: 5px;\\n font-size: 20px;\\n display: flex;\\n}\\n\\n.field-container .barcode-loading app-spinner ::ng-deep .mdl-spinner {\\n height: 15px;\\n width: 15px;\\n}\\n\\n.field-container .barcode-loading app-spinner ::ng-deep .mdl-spinner__layer-1,\\n.field-container .barcode-loading app-spinner ::ng-deep .mdl-spinner__layer-2,\\n.field-container .barcode-loading app-spinner ::ng-deep .mdl-spinner__layer-3,\\n.field-container .barcode-loading app-spinner ::ng-deep .mdl-spinner__layer-4 {\\n border-color: #2998E3;\\n}\\n\\n.field-container .barcode-icon {\\n display: flex;\\n position: relative;\\n padding-top: 10px;\\n padding-right: 5px;\\n bottom: 5px;\\n align-items: center;\\n cursor: pointer;\\n}\\n\\n.field-container .disabled {\\n pointer-events: none;\\n}\\n\\n.field-container .disabled button {\\n background-color: #94a8fc;\\n}\\n\\n.error-msg {\\n position: relative;\\n left: 10px;\\n display: flex;\\n width: auto;\\n font-size: 20px;\\n align-items: center;\\n height: auto;\\n color: #F44336;\\n font-size: 15px;\\n}\\n\\n.error-msg mdl-icon {\\n font-size: 21px;\\n margin-right: 5px;\\n}\\n\\n.error {\\n padding-bottom: 1.5rem;\\n}\\n\\n.error .input-container {\\n border: 1px solid #F44336;\\n outline: 1px solid #F44336;\\n box-shadow: unset;\\n}\\n\\n.error .input-container:hover {\\n box-shadow: 0 0 5px 1px #F44336;\\n border: 1px solid #F44336;\\n}\\n\\n.success {\\n padding-bottom: 1.5rem;\\n}\\n\\n.success .input-container {\\n border: 1px solid #069D06;\\n outline: 1px solid #069D06;\\n box-shadow: unset;\\n}\\n\\n.success .input-container:hover {\\n box-shadow: 0 0 5px 1px #069D06;\\n border: 1px solid #069D06;\\n}\\n\\n.success .search-container:hover {\\n border: 1px solid #3A5CE9;\\n padding: 1px;\\n}\\n\\n.success mdl-textfield ::ng-deep .mdl-textfield__input {\\n width: unset !important;\\n}\\n\\n.mdl-dialog__actions {\\n width: 100%;\\n max-width: 100rem;\\n padding: 25px 0 10px 0;\\n}\\n\\n.mdl-dialog__actions .cancel-action {\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 2px solid #3A5CE9;\\n border-radius: 20px;\\n opacity: 1;\\n font-family: \\\"Source Sans Pro\\\";\\n justify-content: center;\\n color: #3A5CE9;\\n font-weight: bold;\\n font-size: 16px;\\n cursor: pointer;\\n background-color: white;\\n}\\n\\n.mdl-dialog__actions .cancel-action:hover {\\n border-radius: 20px;\\n opacity: 1;\\n cursor: pointer;\\n background-color: #3A5CE9;\\n color: white;\\n}\\n\\n.mdl-dialog__actions .next-action {\\n background: #3A5CE9 0% 0% no-repeat padding-box;\\n border-radius: 20px;\\n opacity: 1;\\n font-family: \\\"Source Sans Pro\\\";\\n justify-content: center;\\n font-size: 15px;\\n color: white;\\n font-weight: bold;\\n cursor: pointer;\\n background-color: #3A5CE9;\\n padding-right: 10px;\\n}\\n\\n.mdl-dialog__actions .next-action:hover {\\n background: #1A2188 0% 0% no-repeat padding-box;\\n background-color: #1A2188;\\n}\\n\\n.mdl-dialog__actions .next-action:disabled,\\n.mdl-dialog__actions button[disabled] {\\n background: #99ABF3 0% 0% no-repeat padding-box;\\n background-color: #99ABF3;\\n cursor: unset;\\n}\\n\\n.mdl-dialog__actions button {\\n display: flex;\\n align-items: center;\\n width: 135px;\\n}\\n\\n.loading {\\n width: 15px;\\n}\\n\\n.loading app-spinner ::ng-deep .spinner-wrapper {\\n padding: 0px !important;\\n left: 20px;\\n position: relative;\\n justify-content: flex-end;\\n font-size: 20px;\\n display: flex;\\n}\\n\\n.loading app-spinner ::ng-deep .mdl-spinner {\\n height: 15px;\\n width: 15px;\\n}\\n\\n.loading app-spinner ::ng-deep .mdl-spinner__layer-1,\\n.loading app-spinner ::ng-deep .mdl-spinner__layer-2,\\n.loading app-spinner ::ng-deep .mdl-spinner__layer-3,\\n.loading app-spinner ::ng-deep .mdl-spinner__layer-4 {\\n border-color: white;\\n}\\n\\nbarcode-scanner::ng-deep .wrapper {\\n top: unset !important;\\n bottom: 10% !important;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n Sample Registration\\r\\n All Fields are Required.\\r\\n
\\r\\n
\\r\\n
\\r\\n check\\r\\n
\\r\\n
\\r\\n Sample Registration Deletedclose\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n Accession Number\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n camera_alt\\r\\n
\\r\\n
\\r\\n
\\r\\n info_outline{{errorText}}\\r\\n
\\r\\n
\\r\\n checkSuccess\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n i\\r\\n
\\r\\n
\\r\\n Reminder: Do not enter information in this field that is considered PHI or PII. Patient ID entry must match patient identifier as entered on requisition.
\\r\\n
\\r\\n
\\r\\n 1\\\"\\r\\n [isDisabled]=\\\"visitDropDown.length == 0\\\"\\r\\n [dropDownList]=\\\"visitDropDown\\\"\\r\\n [showInput]=\\\"false\\\"\\r\\n placeholder=\\\"----------\\\"\\r\\n (onDropDownValueSelected)=\\\"onVisitSelected($event)\\\"\\r\\n [fieldControl]=\\\"visit\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./accession-details.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n:host {\\n position: relative;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.wrapper {\\n margin: 0 50px 100px 20px;\\n max-width: 150rem;\\n background-color: white;\\n}\\n\\n.header-content {\\n margin-top: 20px;\\n margin-left: 10px;\\n display: grid;\\n}\\n\\n.header-content span {\\n margin-right: 10px;\\n font: normal normal bold 24px/25px \\\"Source Sans Pro\\\";\\n}\\n\\n.header-content span:nth-child(2) {\\n margin-top: 15px;\\n font: normal normal normal 15px/15px \\\"Source Sans Pro\\\";\\n}\\n\\n.field-container {\\n margin-top: 40px;\\n}\\n\\n.field-container span {\\n margin-left: 12px;\\n font-size: 17px;\\n font-weight: bold;\\n}\\n\\n.field-container .barcode-input-container {\\n display: inherit;\\n}\\n\\n.field-container .input-container {\\n display: flex;\\n width: 300px;\\n position: relative;\\n margin: 10px 10px 5px 10px;\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 1px solid #707070;\\n opacity: 1;\\n height: 33px;\\n border-radius: 10px;\\n}\\n\\n.field-container .input-focus {\\n border: 1px solid #3A5CE9;\\n box-shadow: 0 0 5px 1px #08F;\\n}\\n\\n.field-container .input-container:hover {\\n box-shadow: 0 0 5px 1px #08F;\\n border: 1px solid #3A5CE9;\\n}\\n\\n.field-container .mdl-textfield__input {\\n border: unset !important;\\n outline: unset !important;\\n font-family: \\\"Source Sans Pro\\\";\\n display: flex;\\n padding-left: 10px;\\n font-size: 16px;\\n position: relative;\\n}\\n\\n.field-container .mdl-textfield__label {\\n color: grey !important;\\n outline: unset !important;\\n font-family: \\\"Source Sans Pro\\\";\\n font-size: 15px;\\n background: unset !important;\\n bottom: 6px;\\n display: flex;\\n width: fit-content;\\n margin-left: 7px;\\n top: unset;\\n}\\n\\n.field-container .barcode-loading {\\n width: 15px;\\n margin-right: 10px;\\n margin-top: 5px;\\n}\\n\\n.field-container .barcode-loading app-spinner ::ng-deep .spinner-wrapper {\\n padding: 0px !important;\\n left: 3px;\\n position: relative;\\n top: 5px;\\n font-size: 20px;\\n display: flex;\\n}\\n\\n.field-container .barcode-loading app-spinner ::ng-deep .mdl-spinner {\\n height: 15px;\\n width: 15px;\\n}\\n\\n.field-container .barcode-loading app-spinner ::ng-deep .mdl-spinner__layer-1,\\n.field-container .barcode-loading app-spinner ::ng-deep .mdl-spinner__layer-2,\\n.field-container .barcode-loading app-spinner ::ng-deep .mdl-spinner__layer-3,\\n.field-container .barcode-loading app-spinner ::ng-deep .mdl-spinner__layer-4 {\\n border-color: #2998E3;\\n}\\n\\n.field-container .barcode-icon {\\n display: flex;\\n position: relative;\\n padding-top: 10px;\\n padding-right: 5px;\\n bottom: 5px;\\n align-items: center;\\n cursor: pointer;\\n}\\n\\n.field-container .disabled {\\n pointer-events: none;\\n}\\n\\n.field-container .disabled button {\\n background-color: #94a8fc;\\n}\\n\\n.error {\\n padding-bottom: 1.5rem;\\n}\\n\\n.error .input-container {\\n border: 1px solid #F7758C;\\n outline: 1px solid #F7758C;\\n box-shadow: unset;\\n}\\n\\n.error .input-container:hover {\\n box-shadow: 0 0 5px 1px #F7758C;\\n border: 1px solid #F7758C;\\n}\\n\\n.success {\\n padding-bottom: 1.5rem;\\n}\\n\\n.success .input-container {\\n border: 1px solid #069D06;\\n outline: 1px solid #069D06;\\n box-shadow: unset;\\n}\\n\\n.success .input-container:hover {\\n box-shadow: 0 0 5px 1px #069D06;\\n border: 1px solid #069D06;\\n}\\n\\n::ng-deep .highlight {\\n color: #3A5CE9 !important;\\n font-weight: bold;\\n}\\n\\n.error-msg {\\n position: relative;\\n left: 10px;\\n display: flex;\\n width: auto;\\n font-size: 20px;\\n align-items: center;\\n height: auto;\\n color: #F7758C;\\n font-size: 15px;\\n}\\n\\n.error-msg mdl-icon {\\n font-size: 21px;\\n margin-right: 5px;\\n}\\n\\n.success-msg {\\n position: relative;\\n left: 10px;\\n display: flex;\\n width: auto;\\n font-size: 20px;\\n align-items: center;\\n height: auto;\\n color: #069D06;\\n font-size: 15px;\\n}\\n\\n.success-msg mdl-icon {\\n font-size: 20px;\\n margin-right: 5px;\\n}\\n\\n.mdl-dialog__actions {\\n width: 80%;\\n padding: 25px 0 10px 0;\\n}\\n\\n.mdl-dialog__actions .cancel-action {\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 2px solid #3A5CE9;\\n border-radius: 20px;\\n opacity: 1;\\n font-family: \\\"Source Sans Pro\\\";\\n justify-content: center;\\n color: #3A5CE9;\\n font-weight: bold;\\n font-size: 16px;\\n cursor: pointer;\\n background-color: white;\\n}\\n\\n.mdl-dialog__actions .cancel-action:hover {\\n border-radius: 20px;\\n opacity: 1;\\n cursor: pointer;\\n background-color: #3A5CE9;\\n color: white;\\n}\\n\\n.mdl-dialog__actions .next-action {\\n background: #3A5CE9 0% 0% no-repeat padding-box;\\n border-radius: 20px;\\n opacity: 1;\\n font-family: \\\"Source Sans Pro\\\";\\n justify-content: center;\\n font-size: 15px;\\n color: white;\\n font-weight: bold;\\n cursor: pointer;\\n background-color: #3A5CE9;\\n padding-right: 10px;\\n}\\n\\n.mdl-dialog__actions .next-action:hover {\\n background: #1A2188 0% 0% no-repeat padding-box;\\n background-color: #1A2188;\\n}\\n\\n.mdl-dialog__actions .next-action:disabled,\\n.mdl-dialog__actions button[disabled] {\\n background: #99ABF3 0% 0% no-repeat padding-box;\\n background-color: #99ABF3;\\n cursor: unset;\\n}\\n\\n.mdl-dialog__actions button {\\n display: flex;\\n align-items: center;\\n width: 135px;\\n}\\n\\n.row {\\n padding: 10px;\\n padding-top: 0px;\\n}\\n\\n.row .align-fields {\\n margin-right: 5rem;\\n}\\n\\n.row sm-form-field::ng-deep .form-section .field-name {\\n font-size: 17px !important;\\n margin-left: 2px;\\n}\\n\\n.row sm-form-field::ng-deep .form-section .form-field-container {\\n border: 1px solid grey;\\n height: 40px !important;\\n justify-content: left;\\n width: 320px !important;\\n}\\n\\n.row sm-form-field::ng-deep .form-section .mdl-textfield__label {\\n justify-content: unset;\\n text-align: unset;\\n bottom: 9px;\\n margin-left: 10px;\\n font-size: 15px;\\n}\\n\\n.row sm-form-field::ng-deep .form-section .mdl-textfield__input {\\n padding-left: 10px;\\n font-size: 16px;\\n}\\n\\n.row sm-form-field::ng-deep .error .form-field-container {\\n border: 1px solid #F7758C !important;\\n box-shadow: unset;\\n}\\n\\n.row sm-form-field::ng-deep .error .form-field-container:hover {\\n border: 1px solid #F7758C !important;\\n box-shadow: 0 0 5px 1px #F7758C;\\n}\\n\\n.row sm-form-field::ng-deep .error-msg {\\n font-size: 15px;\\n align-items: center;\\n}\\n\\n.row sm-form-field::ng-deep .error-msg mdl-icon {\\n font-size: 21px;\\n margin-right: 5px;\\n}\\n\\n.row sm-form-field::ng-deep .error-msg .field-instruction {\\n font-size: 14px !important;\\n margin-left: 64px;\\n}\\n\\n.row sm-form-field::ng-deep .field-instruction {\\n font-weight: normal;\\n font-size: 13px;\\n margin-left: 5.3rem;\\n}\\n\\n.tool-tip {\\n background-color: #6C2FAC;\\n border-color: #6C2FAC;\\n color: white;\\n display: flex;\\n width: 50px;\\n justify-content: center;\\n align-items: center;\\n position: relative;\\n border-radius: 10px 0 0 10px;\\n height: 50px;\\n left: 2px;\\n cursor: pointer;\\n top: 7px;\\n}\\n\\n.tool-tip .tool-tip-icon {\\n display: flex;\\n font-weight: bold;\\n width: 25px;\\n justify-content: center;\\n align-items: center;\\n background-color: white;\\n border-radius: 20px;\\n height: 25px;\\n color: #6C2FAC;\\n font-size: 15px;\\n}\\n\\n.tool-tip-text {\\n border: 1px solid #6C2FAC;\\n border-radius: 0 10px 10px 0;\\n justify-content: center;\\n display: flex;\\n align-items: center;\\n position: relative;\\n left: 2px;\\n padding-right: 10px;\\n top: 7px;\\n height: 48px;\\n}\\n\\n.tool-tip-text span {\\n left: 5px;\\n position: relative;\\n margin: 1rem;\\n font-size: 17px;\\n}\\n\\n.align-tooltip {\\n margin-top: 1rem;\\n display: inline-flex;\\n}\\n\\n.highlight-tool-tip .tool-tip,\\n.highlight-tool-tip .tool-tip-text {\\n box-shadow: 0 0 5px 1px #6C2FAC;\\n}\\n\\n.delete-align-tooltip {\\n margin-top: 1rem;\\n display: inline-flex;\\n width: 100%;\\n justify-content: flex-end;\\n}\\n\\n.delete-tool-tip {\\n background-color: #069D06;\\n border-color: #069D06;\\n color: white;\\n display: flex;\\n width: 50px;\\n justify-content: center;\\n align-items: center;\\n position: relative;\\n text-align: center;\\n border-radius: 10px 0 0 10px;\\n height: 51px;\\n left: 2px;\\n cursor: pointer;\\n top: 7px;\\n margin-top: -23px;\\n}\\n\\n.delete-tool-tip .tool-tip-icon {\\n display: flex;\\n font-weight: bold;\\n width: 25px;\\n justify-content: center;\\n align-items: center;\\n text-align: center;\\n background-color: white;\\n border-radius: 20px;\\n height: 25px;\\n color: #069D06;\\n font-size: 15px;\\n}\\n\\n.delete-tool-tip-text {\\n border: 1px solid #069D06;\\n border-radius: 0 10px 10px 0;\\n justify-content: center;\\n display: flex;\\n text-align: center;\\n align-items: center;\\n position: relative;\\n left: 2px;\\n padding-right: 10px;\\n top: 7px;\\n height: 48px;\\n margin-top: -23px;\\n}\\n\\n.delete-tool-tip-text span {\\n left: 5px;\\n position: relative;\\n margin: 1rem;\\n font-size: 17px;\\n}\\n\\n.delete-tool-tip-text mdl-icon {\\n cursor: pointer;\\n margin-left: 50px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Audience is required\\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./audience-roles-select.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".audience-roles {\\n padding-bottom: 0;\\n}\\n\\n.audience-roles .mdl-textfield__error {\\n margin-top: -20px;\\n}\\n\\n.audience-roles .mdl-progress {\\n position: absolute;\\n height: 2px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n arrow_drop_down\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n {{suggestion}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./covance-textfield.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \":host {\\n display: block;\\n position: relative;\\n padding-bottom: 20px;\\n}\\n\\nmdl-textfield {\\n width: 100%;\\n}\\n\\n.mdl-progress {\\n width: 100%;\\n height: 2px;\\n margin-top: -2px;\\n}\\n\\n.mdl-select__toggle {\\n position: absolute;\\n top: 50%;\\n right: 0;\\n}\\n\\nmdl-popover {\\n width: 100%;\\n}\\n\\n.suggestions-popover-container {\\n padding: 10px;\\n color: #666;\\n font-size: 12px;\\n}\\n\\n.select-items {\\n padding: 5px;\\n margin-top: 8px;\\n height: fit-content;\\n max-height: 200px;\\n overflow-y: auto;\\n}\\n\\n.select-items mdl-list {\\n padding: 0;\\n}\\n\\n.select-items mdl-list mdl-list-item {\\n cursor: pointer;\\n}\\n\\n.select-items mdl-list mdl-list-item:hover {\\n background-color: #eee;\\n}\\n\\n.select-items mdl-list mdl-list-item.is-active,\\n.select-items mdl-list mdl-list-item.is-active:hover {\\n background-color: #e0e0e0;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n This field is required\\r\\n \\r\\n
\"","exports = module.exports = require(\"../../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n:host-context(.disabled) {\\n opacity: 0.4;\\n}\\n\\n.mdl-textfield__label {\\n color: #626971;\\n}\\n\\n.mdl-textfield__error {\\n visibility: visible;\\n position: static;\\n margin-top: -20px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./user-search-select.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \":host {\\n position: relative;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\\r\\nclear\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./protocol-search-field.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \":host {\\n display: flex;\\n align-items: center;\\n}\\n\\n.clear-select {\\n visibility: visible;\\n cursor: pointer;\\n}\\n\\n.clear-select.hide {\\n visibility: hidden;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n At least one field is required\\r\\n \\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./admin-protocol-access-filter.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \":host {\\n margin: 10px 10px 0;\\n}\\n\\n.errors {\\n padding: 0;\\n}\\n\\n.errors .mdl-textfield__error {\\n margin-top: -30px;\\n}\\n\\n.search-fields {\\n display: flex;\\n flex-wrap: nowrap;\\n}\\n\\n.search-fields .search-field {\\n margin-right: 10px;\\n}\\n\\n.search-fields .search-field:last-child {\\n margin-right: 0;\\n}\\n\\n.protocol-search-field {\\n width: 300px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\"","module.exports = \"
\\r\\n
Uploading...
\\r\\n
Files have been successfully uploaded
\\r\\n
Error occurred while uploading
\\r\\n
Error occurred while uploading: Invalid files
\\r\\n
Error occurred while uploading: {{uploadError}}
\\r\\n
Error occurred while uploading: Document folder does not exist
\\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./upload-progress.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n Title\\r\\n \\r\\n \\r\\n {{report.title}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Roles\\r\\n \\r\\n \\r\\n {{rolesString}}\\r\\n \\r\\n
\"","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".field-container {\\n display: flex;\\n flex-direction: column;\\n border-bottom: 1px solid lightgray;\\n margin-bottom: 24px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n Category\\r\\n \\r\\n \\r\\n {{report.subcategoryTitle}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Title\\r\\n \\r\\n \\r\\n {{report.title}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Letter Number\\r\\n \\r\\n \\r\\n {{report.letterNumber}}\\r\\n \\r\\n
\"","module.exports = \"
\\r\\n \\r\\n Title\\r\\n \\r\\n \\r\\n {{report.title}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Letter Number\\r\\n \\r\\n \\r\\n {{report.letterNumber}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Sites\\r\\n \\r\\n \\r\\n {{sitesString}}\\r\\n \\r\\n
\"","module.exports = \"
\\r\\n \\r\\n Title\\r\\n \\r\\n \\r\\n {{report.title}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Letter Number\\r\\n \\r\\n \\r\\n {{report.letterNumber}}\\r\\n \\r\\n
\"","module.exports = \"
\\r\\n \\r\\n Category\\r\\n \\r\\n \\r\\n {{report.subcategoryTitle}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Project Number\\r\\n \\r\\n \\r\\n {{report.zcProjectNumber}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Title\\r\\n \\r\\n \\r\\n {{report.title}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Version\\r\\n \\r\\n \\r\\n {{report.version}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Version Date\\r\\n \\r\\n \\r\\n {{report.versionDate | formatDate}}\\r\\n \\r\\n
\"","module.exports = \"
\\r\\n \\r\\n Category\\r\\n \\r\\n \\r\\n {{report.subcategoryTitle}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Project Number\\r\\n \\r\\n \\r\\n {{report.projectNumber}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Title\\r\\n \\r\\n \\r\\n {{report.title}}\\r\\n \\r\\n
\"","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n This field is required\\r\\n \\r\\n
\"","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n This field is required\\r\\n \\r\\n
\"","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n This field is required\\r\\n \\r\\n
\"","module.exports = \"
\\r\\n
\\r\\n All Sites\\r\\n Selected Sites\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n This field is required\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sites-select.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n:host {\\n display: block;\\n}\\n\\n:host-context(.disabled) {\\n opacity: 0.4;\\n}\\n\\n.mdl-textfield__label {\\n color: #626971;\\n}\\n\\n.all-sites-container {\\n padding: 12px 0 16px 0;\\n}\\n\\n.all-sites-container mdl-radio {\\n padding-right: 16px;\\n}\\n\\n.date-container {\\n padding: 16px 0;\\n}\\n\\n.mdl-textfield__error {\\n visibility: visible;\\n position: static;\\n margin-top: -20px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n
\"","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n This field is required\\r\\n \\r\\n
\"","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n This field is required\\r\\n \\r\\n
\"","module.exports = \"
\\r\\n

eQuery preview

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Open Questions\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Escalations\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{mail}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{mail}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{mail}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Attachments\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
{{ file.description }}
\\r\\n
\\r\\n
\\r\\n (None)\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Comments\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n (None)\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./admin-e-query-preview-dialog.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\nhr {\\n border: none;\\n border-top: 2px solid #0080af;\\n color: #0080af;\\n overflow: visible;\\n text-align: left;\\n height: 5px;\\n}\\n\\nhr:before {\\n background-color: #fff;\\n padding: 0 4px 0 0;\\n position: relative;\\n top: -13px;\\n font-size: 14px;\\n}\\n\\n.e-query-details-text-container {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 12px;\\n margin-right: 24px;\\n}\\n\\n.e-query-details-label {\\n font-weight: 800;\\n}\\n\\n.e-query-details-text {\\n font-weight: 400;\\n padding-left: 5px;\\n}\\n\\n.e-query-label-text {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 5px;\\n}\\n\\n.e-query-label-text label {\\n color: black;\\n text-decoration-line: underline;\\n text-decoration-style: solid;\\n text-decoration-color: #0080af;\\n text-decoration-thickness: 2px;\\n text-underline-position: under;\\n display: inline-block;\\n text-align: right;\\n width: 170px;\\n font-weight: bold;\\n margin-bottom: 1px;\\n margin-right: 5px;\\n}\\n\\n.separator {\\n border-bottom: 3px #0080af dashed;\\n width: 158px;\\n margin: 15px;\\n}\\n\\n:host {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n width: 100%;\\n}\\n\\n:host .e-query-container {\\n overflow-y: auto;\\n}\\n\\n:host .e-query-container .questions {\\n margin-left: -20px;\\n}\\n\\n:host .e-query-container-block {\\n display: flex;\\n}\\n\\n:host e-query-accession-info::ng-deep .e-query-label-text label {\\n width: 110px;\\n}\\n\\ndiv.short-select {\\n margin-right: 5px;\\n}\\n\\ndiv.e-query-content-block.escalations {\\n display: flex;\\n justify-content: space-between;\\n word-break: break-word;\\n margin-right: 5px;\\n}\\n\\ndiv.e-query-content-block.escalations label {\\n text-align: left;\\n font-weight: bold;\\n text-decoration-line: underline;\\n text-decoration-style: solid;\\n text-decoration-color: #0080af;\\n text-decoration-thickness: 2px;\\n text-underline-position: under;\\n}\\n\\ndiv.e-query-content-block.attachments label {\\n color: #2C99E3;\\n width: auto;\\n margin-left: 0px;\\n}\\n\\n.editor-section {\\n padding-top: 24px;\\n padding-bottom: 8px;\\n}\\n\\n.editor-section div.mdl-textfield {\\n width: 100%;\\n padding-top: 0px;\\n padding-left: 15px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./coordinator-e-query-title.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\nhr {\\n border: none;\\n border-top: 2px solid #0080af;\\n color: #0080af;\\n overflow: visible;\\n text-align: left;\\n height: 5px;\\n}\\n\\nhr:before {\\n background-color: #fff;\\n padding: 0 4px 0 0;\\n position: relative;\\n top: -13px;\\n font-size: 14px;\\n}\\n\\n.e-query-details-text-container {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 12px;\\n margin-right: 24px;\\n}\\n\\n.e-query-details-label {\\n font-weight: 800;\\n}\\n\\n.e-query-details-text {\\n font-weight: 400;\\n padding-left: 5px;\\n}\\n\\n.e-query-label-text {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 5px;\\n}\\n\\n.e-query-label-text label {\\n color: black;\\n text-decoration-line: underline;\\n text-decoration-style: solid;\\n text-decoration-color: #0080af;\\n text-decoration-thickness: 2px;\\n text-underline-position: under;\\n display: inline-block;\\n text-align: right;\\n width: 170px;\\n font-weight: bold;\\n margin-bottom: 1px;\\n margin-right: 5px;\\n}\\n\\n.separator {\\n border-bottom: 3px #0080af dashed;\\n width: 158px;\\n margin: 15px;\\n}\\n\\n.e-query-title-container {\\n margin-left: -60px;\\n}\\n\\ne-query-details-text-field::ng-deep .e-query-label-text label {\\n max-width: 120px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n \\r\\n Escalations\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n {{item.emailAddress}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n {{item.emailAddress}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n {{item.emailAddress}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./coordinator-e-query-email-escalations.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\nhr {\\n border: none;\\n border-top: 2px solid #0080af;\\n color: #0080af;\\n overflow: visible;\\n text-align: left;\\n height: 5px;\\n}\\n\\nhr:before {\\n background-color: #fff;\\n padding: 0 4px 0 0;\\n position: relative;\\n top: -13px;\\n font-size: 14px;\\n}\\n\\n.e-query-details-text-container {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 12px;\\n margin-right: 24px;\\n}\\n\\n.e-query-details-label {\\n font-weight: 800;\\n}\\n\\n.e-query-details-text {\\n font-weight: 400;\\n padding-left: 5px;\\n}\\n\\n.e-query-label-text {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 5px;\\n}\\n\\n.e-query-label-text label {\\n color: black;\\n text-decoration-line: underline;\\n text-decoration-style: solid;\\n text-decoration-color: #0080af;\\n text-decoration-thickness: 2px;\\n text-underline-position: under;\\n display: inline-block;\\n text-align: right;\\n width: 170px;\\n font-weight: bold;\\n margin-bottom: 1px;\\n margin-right: 5px;\\n}\\n\\n.separator {\\n border-bottom: 3px #0080af dashed;\\n width: 158px;\\n margin: 15px;\\n}\\n\\n:host .e-query-details-label {\\n margin-right: 4px;\\n color: black;\\n}\\n\\n.justify-content-start {\\n margin-left: 20px;\\n}\\n\\n.e-query-details-label {\\n color: black;\\n text-decoration-line: underline;\\n text-decoration-style: solid;\\n text-decoration-color: #0080af;\\n text-decoration-thickness: 2px;\\n text-underline-position: under;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n At least one field is required\\r\\n \\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./escalation-emails-filter.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \":host {\\n margin: 10px 10px 0;\\n}\\n\\n.errors {\\n padding: 0;\\n}\\n\\n.errors .mdl-textfield__error {\\n margin-top: -30px;\\n}\\n\\n.search-fields {\\n display: flex;\\n flex-wrap: nowrap;\\n}\\n\\n.search-fields .search-field {\\n margin-right: 10px;\\n}\\n\\n.search-fields .search-field:last-child {\\n margin-right: 0;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\\r\\nclear\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./escalation-search-field.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \":host {\\n display: flex;\\n align-items: center;\\n}\\n\\n.clear-select {\\n visibility: visible;\\n cursor: pointer;\\n}\\n\\n.clear-select.hide {\\n visibility: hidden;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n \\r\\n {{ item.name }}\\r\\n \\r\\n \\r\\n Escalation Level is required\\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./escalation-level-select.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".mdl-textfield__error {\\n margin-top: -20px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Duplicate email\\r\\n
\\r\\n
\\r\\n Maximum {{mailsMaxCount}} email addresses is allowed\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n Email is required\\r\\n Email format is\\r\\n invalid\\r\\n Duplicate email\\r\\n
\\r\\n
\\r\\n
\\r\\n Email is required\\r\\n {{customErrorMessage}}\\r\\n Drop the email here\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./escalation-mail.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.escalation-wrap {\\n display: flex;\\n flex-direction: column;\\n margin-right: 15px;\\n height: 100%;\\n}\\n\\n.escalation-wrap .escalation-drop-area {\\n border: dashed 2px #0080af;\\n display: flex;\\n flex-direction: column;\\n padding: 6px;\\n margin-top: 15px;\\n height: 100%;\\n user-select: none;\\n}\\n\\n.escalation-wrap .escalation-container .escalation-input {\\n flex-basis: 65%;\\n padding-bottom: 0px;\\n}\\n\\n.escalation-wrap .escalation-container button.escalation-delete {\\n flex-basis: 20%;\\n position: initial;\\n}\\n\\n.escalation-wrap .error-container {\\n flex-basis: 100%;\\n}\\n\\n.escalation-wrap .error-container .error-message {\\n color: #F44336;\\n font-size: 10px;\\n margin-top: 3px;\\n}\\n\\n.escalation-wrap .error-container.outer-error {\\n flex-basis: auto;\\n}\\n\\n.escalation-wrap .error-container.outer-error .hidden-container {\\n visibility: hidden;\\n flex-basis: auto;\\n}\\n\\n.escalation-wrap .drop-zone-messages {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n flex-direction: column;\\n}\\n\\n.escalation-wrap .drop-zone-messages .drop-zone-message {\\n color: rgba(0, 0, 0, 0.26);\\n font-size: 12px;\\n}\\n\\n.escalation-wrap .escalation-add-container {\\n position: relative;\\n width: 65px;\\n margin-top: 5px;\\n}\\n\\n.escalation-wrap .escalation-add-container button.escalation-add {\\n position: initial;\\n}\\n\\n\", \"\"]);\n\n// exports\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 First escalation email entry is required prior to entering second level\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n First and second escalation email entries are required prior to entering third level\\r\\n \\r\\n
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./escalations.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\nhr {\\n border: none;\\n border-top: 2px solid #0080af;\\n color: #0080af;\\n overflow: visible;\\n text-align: left;\\n height: 5px;\\n}\\n\\nhr:before {\\n background-color: #fff;\\n padding: 0 4px 0 0;\\n position: relative;\\n top: -13px;\\n font-size: 14px;\\n}\\n\\n.e-query-details-text-container {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 12px;\\n margin-right: 24px;\\n}\\n\\n.e-query-details-label {\\n font-weight: 800;\\n}\\n\\n.e-query-details-text {\\n font-weight: 400;\\n padding-left: 5px;\\n}\\n\\n.e-query-label-text {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 5px;\\n}\\n\\n.e-query-label-text label {\\n color: black;\\n text-decoration-line: underline;\\n text-decoration-style: solid;\\n text-decoration-color: #0080af;\\n text-decoration-thickness: 2px;\\n text-underline-position: under;\\n display: inline-block;\\n text-align: right;\\n width: 170px;\\n font-weight: bold;\\n margin-bottom: 1px;\\n margin-right: 5px;\\n}\\n\\n.separator {\\n border-bottom: 3px #0080af dashed;\\n width: 158px;\\n margin: 15px;\\n}\\n\\ndiv.e-query-content-block.escalations {\\n display: flex;\\n}\\n\\n.escalation-tooltip-container {\\n height: 100%;\\n}\\n\\n.escalation-tooltip-hide {\\n display: none;\\n}\\n\\n.mdl-textfield__error {\\n font-size: 10px;\\n}\\n\\n.mdl-textfield__error.invalid-url {\\n right: 0;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n \\r\\n

\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Description is required\\r\\n \\r\\n \\r\\n Description cannot consist of only whitespaces\\r\\n \\r\\n
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./e-query-attachments-uploader.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".mdl-textfield__error {\\n visibility: visible;\\n font-size: 12px;\\n position: inherit;\\n}\\n\\n.file-description {\\n padding: 0px 6px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Open Questions\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Escalations\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Attachments\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Comments\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./admin-prefilled-e-query-edit.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\nhr {\\n border: none;\\n border-top: 2px solid #0080af;\\n color: #0080af;\\n overflow: visible;\\n text-align: left;\\n height: 5px;\\n}\\n\\nhr:before {\\n background-color: #fff;\\n padding: 0 4px 0 0;\\n position: relative;\\n top: -13px;\\n font-size: 14px;\\n}\\n\\n.e-query-details-text-container {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 12px;\\n margin-right: 24px;\\n}\\n\\n.e-query-details-label {\\n font-weight: 800;\\n}\\n\\n.e-query-details-text {\\n font-weight: 400;\\n padding-left: 5px;\\n}\\n\\n.e-query-label-text {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 5px;\\n}\\n\\n.e-query-label-text label {\\n color: black;\\n text-decoration-line: underline;\\n text-decoration-style: solid;\\n text-decoration-color: #0080af;\\n text-decoration-thickness: 2px;\\n text-underline-position: under;\\n display: inline-block;\\n text-align: right;\\n width: 170px;\\n font-weight: bold;\\n margin-bottom: 1px;\\n margin-right: 5px;\\n}\\n\\n.separator {\\n border-bottom: 3px #0080af dashed;\\n width: 158px;\\n margin: 15px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Text is required\\r\\n \\r\\n \\r\\n Text is too long\\r\\n \\r\\n
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./comments.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\nhr {\\n border: none;\\n border-top: 2px solid #0080af;\\n color: #0080af;\\n overflow: visible;\\n text-align: left;\\n height: 5px;\\n}\\n\\nhr:before {\\n background-color: #fff;\\n padding: 0 4px 0 0;\\n position: relative;\\n top: -13px;\\n font-size: 14px;\\n}\\n\\n.e-query-details-text-container {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 12px;\\n margin-right: 24px;\\n}\\n\\n.e-query-details-label {\\n font-weight: 800;\\n}\\n\\n.e-query-details-text {\\n font-weight: 400;\\n padding-left: 5px;\\n}\\n\\n.e-query-label-text {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 5px;\\n}\\n\\n.e-query-label-text label {\\n color: black;\\n text-decoration-line: underline;\\n text-decoration-style: solid;\\n text-decoration-color: #0080af;\\n text-decoration-thickness: 2px;\\n text-underline-position: under;\\n display: inline-block;\\n text-align: right;\\n width: 170px;\\n font-weight: bold;\\n margin-bottom: 1px;\\n margin-right: 5px;\\n}\\n\\n.separator {\\n border-bottom: 3px #0080af dashed;\\n width: 158px;\\n margin: 15px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n {{question.issueType}} / {{question.issueTypeDescription}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{question.queryText}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./e-query-questions.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\nhr {\\n border: none;\\n border-top: 2px solid #0080af;\\n color: #0080af;\\n overflow: visible;\\n text-align: left;\\n height: 5px;\\n}\\n\\nhr:before {\\n background-color: #fff;\\n padding: 0 4px 0 0;\\n position: relative;\\n top: -13px;\\n font-size: 14px;\\n}\\n\\n.e-query-details-text-container {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 12px;\\n margin-right: 24px;\\n}\\n\\n.e-query-details-label {\\n font-weight: 800;\\n}\\n\\n.e-query-details-text {\\n font-weight: 400;\\n padding-left: 5px;\\n}\\n\\n.e-query-label-text {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 5px;\\n}\\n\\n.e-query-label-text label {\\n color: black;\\n text-decoration-line: underline;\\n text-decoration-style: solid;\\n text-decoration-color: #0080af;\\n text-decoration-thickness: 2px;\\n text-underline-position: under;\\n display: inline-block;\\n text-align: right;\\n width: 170px;\\n font-weight: bold;\\n margin-bottom: 1px;\\n margin-right: 5px;\\n}\\n\\n.separator {\\n border-bottom: 3px #0080af dashed;\\n width: 158px;\\n margin: 15px;\\n}\\n\\n.separator-small {\\n border-bottom: 3px #0080af dashed;\\n width: 145px;\\n margin: 15px;\\n margin-left: 25px;\\n}\\n\\n.e-query-label-text {\\n display: flex;\\n}\\n\\n.e-query-label-text .question-content {\\n flex: 21;\\n}\\n\\n.separator {\\n margin-left: 35px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n This field is required\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n This field is required\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./admin-usage-e-query-filter.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.usage-report-filter-row {\\n display: flex;\\n flex-direction: row;\\n}\\n\\n.usage-report-filter-row .filter-field {\\n margin-right: 50px;\\n}\\n\\n.usage-report-filter-row .filter-field button {\\n margin-top: 10px;\\n width: 150px;\\n}\\n\\n.usage-report-filter-container {\\n margin: 15px;\\n}\\n\\n.mdl-textfield__error {\\n visibility: visible;\\n margin-top: -15px;\\n font-size: 12px;\\n}\\n\\n.disabled {\\n pointer-events: none;\\n cursor: default;\\n opacity: 0.5;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n {{usageEQueryReport.totalQueries}}\\r\\n {{usageEQueryReport.totalResolvedEQueries}}\\r\\n {{usageEQueryReport.currentlyOutstanding}}\\r\\n
\\r\\n
\\r\\n {{usageEQueryReport.escalatedToRSCs}}\\r\\n {{usageEQueryReport.escalatedToGSMs}}\\r\\n
\\r\\n\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./admin-usage-e-query-report-data.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".usage-report-box {\\n border: 2px solid #0082D0;\\n display: flex;\\n flex-direction: row;\\n width: 600px;\\n margin: 15px;\\n padding: 30px;\\n justify-content: space-evenly;\\n font-size: 12px;\\n}\\n\\n.usage-report-box span {\\n font-weight: bold;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n \\r\\n Active eQuery\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Questions\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 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\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./admin-prefilled-active-e-query-edit.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\nhr {\\n border: none;\\n border-top: 2px solid #0080af;\\n color: #0080af;\\n overflow: visible;\\n text-align: left;\\n height: 5px;\\n}\\n\\nhr:before {\\n background-color: #fff;\\n padding: 0 4px 0 0;\\n position: relative;\\n top: -13px;\\n font-size: 14px;\\n}\\n\\n.e-query-details-text-container {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 12px;\\n margin-right: 24px;\\n}\\n\\n.e-query-details-label {\\n font-weight: 800;\\n}\\n\\n.e-query-details-text {\\n font-weight: 400;\\n padding-left: 5px;\\n}\\n\\n.e-query-label-text {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 5px;\\n}\\n\\n.e-query-label-text label {\\n color: black;\\n text-decoration-line: underline;\\n text-decoration-style: solid;\\n text-decoration-color: #0080af;\\n text-decoration-thickness: 2px;\\n text-underline-position: under;\\n display: inline-block;\\n text-align: right;\\n width: 170px;\\n font-weight: bold;\\n margin-bottom: 1px;\\n margin-right: 5px;\\n}\\n\\n.separator {\\n border-bottom: 3px #0080af dashed;\\n width: 158px;\\n margin: 15px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n {{ activeEQuery.eQueryId }}\\r\\n
\\r\\n
\\r\\n {{ activeEQuery.statusName }}\\r\\n
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./active-e-query.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\nhr {\\n border: none;\\n border-top: 2px solid #0080af;\\n color: #0080af;\\n overflow: visible;\\n text-align: left;\\n height: 5px;\\n}\\n\\nhr:before {\\n background-color: #fff;\\n padding: 0 4px 0 0;\\n position: relative;\\n top: -13px;\\n font-size: 14px;\\n}\\n\\n.e-query-details-text-container {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 12px;\\n margin-right: 24px;\\n}\\n\\n.e-query-details-label {\\n font-weight: 800;\\n}\\n\\n.e-query-details-text {\\n font-weight: 400;\\n padding-left: 5px;\\n}\\n\\n.e-query-label-text {\\n font-size: 12px;\\n color: inherit;\\n margin-bottom: 5px;\\n}\\n\\n.e-query-label-text label {\\n color: black;\\n text-decoration-line: underline;\\n text-decoration-style: solid;\\n text-decoration-color: #0080af;\\n text-decoration-thickness: 2px;\\n text-underline-position: under;\\n display: inline-block;\\n text-align: right;\\n width: 170px;\\n font-weight: bold;\\n margin-bottom: 1px;\\n margin-right: 5px;\\n}\\n\\n.separator {\\n border-bottom: 3px #0080af dashed;\\n width: 158px;\\n margin: 15px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n
\\r\\n The active eQuery has the following questions:\\r\\n
\\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./active-e-query-questions.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.active-questions-warning {\\n margin: 10px;\\n font-weight: bold;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \" 0\\\">\\r\\n
\\r\\n The active eQuery has the following attachments:\\r\\n
\\r\\n \\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./active-e-query-attachments.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".active-e-query-label {\\n margin: 10px 0;\\n font-weight: bold;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n At least one field is required\\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./hide-equery-filter.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \":host {\\n margin: 10px 10px 0;\\n}\\n\\n.errors {\\n padding: 0;\\n}\\n\\n.errors .mdl-textfield__error {\\n margin-top: -30px;\\n}\\n\\n.search-fields {\\n display: flex;\\n flex-wrap: nowrap;\\n}\\n\\n.search-fields .search-field {\\n margin-right: 10px;\\n}\\n\\n.search-fields .search-field:last-child {\\n margin-right: 0;\\n}\\n\\n.protocol-search-field {\\n width: 300px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n Looks good\\r\\n {{ (data | async)?.length }}\\r\\n
\"","module.exports = \"\\r\\n\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sponsor-e-query-grid.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.wrapper {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n}\\n\\n.wrapper .toolbar {\\n display: flex;\\n justify-content: flex-end;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\\"Labcorp\\\"\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{errorMessage}}
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./okta-widget.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".mdl-textfield.is-invalid .mdl-textfield__input {\\n border-color: rgba(0, 0, 0, 0.12);\\n}\\n\\n.info-box {\\n height: 48px;\\n display: flex;\\n justify-content: center;\\n}\\n\\n.info-box .error-box {\\n color: red;\\n}\\n\\n.mdl-card {\\n box-shadow: none;\\n border: 1px solid #E0E0E0;\\n}\\n\\n.mdl-card button {\\n width: 100%;\\n}\\n\\n.mdl-card .mdl-card__title {\\n display: flex;\\n justify-content: space-around;\\n align-content: center;\\n}\\n\\n.mdl-card .mdl-card__actions {\\n padding-bottom: 16px;\\n}\\n\\n.mdl-card .mdl-card__actions .secondary-links {\\n padding-top: 16px;\\n}\\n\\n.mdl-card .mdl-card__actions .secondary-links a {\\n color: #9E9E9E;\\n font-size: 13px;\\n}\\n\\n.mdl-card .mdl-card__actions .secondary-links a:hover {\\n text-decoration: underline;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./loading-bar.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".loading-bar {\\n position: fixed;\\n left: 0;\\n right: 0;\\n top: 0;\\n height: 2px;\\n z-index: 100003;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n |\\r\\n Sample Tracking\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./st-header.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\nnotification-bar {\\n margin-right: 8px;\\n}\\n\\n:host {\\n position: relative;\\n display: flex;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.mdl-button.mdl-flat {\\n color: #666;\\n background-color: #fff;\\n}\\n\\n.wrapper {\\n display: flex;\\n justify-content: center;\\n}\\n\\n.xip-logo-sizing {\\n width: 200px;\\n}\\n\\n.home-button {\\n height: 50px;\\n max-width: 78px;\\n min-width: 0;\\n display: flex;\\n flex-direction: column;\\n padding: 4px 8px 0 8px;\\n white-space: normal;\\n align-items: center;\\n}\\n\\n.home-label {\\n font-size: 10px;\\n line-height: 10px;\\n}\\n\\n.header-link {\\n margin-right: unset;\\n display: flex;\\n align-items: center;\\n height: 50px;\\n}\\n\\n.app-title {\\n font-size: 27px;\\n color: black;\\n align-self: center;\\n padding-bottom: 2px;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.app-divider {\\n font-size: 23px;\\n padding-right: 5px;\\n align-self: center;\\n padding-bottom: 5px;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"

My Study Groupings

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n No Study groups found. Click on 'Create New Group' button to create new one\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./study-group-list.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.group-title {\\n height: 20px;\\n font-weight: bold;\\n font-size: 16px;\\n margin: 0;\\n margin-top: 5px;\\n}\\n\\n.inline {\\n display: inline-block;\\n}\\n\\n.group-search {\\n top: 15px;\\n position: relative;\\n height: 40px;\\n margin-bottom: -30px;\\n margin-top: 5px;\\n}\\n\\n.study-group-grid {\\n position: relative;\\n}\\n\\n.create-group {\\n position: relative;\\n float: right;\\n left: -6rem;\\n}\\n\\n.create-group button {\\n border: 2px solid #3A5CE9;\\n border-radius: 20px;\\n background-color: #3A5CE9;\\n color: white;\\n font-family: \\\"Source Sans Pro\\\";\\n font-weight: 700;\\n height: 40px;\\n}\\n\\n.create-group button:hover {\\n background: #1A2188;\\n border-color: #1A2188;\\n}\\n\\n.group-action {\\n padding-bottom: 10px;\\n}\\n\\n.no-data {\\n font-size: 20px;\\n top: 20px;\\n color: red;\\n display: flex;\\n justify-content: center;\\n}\\n\\n\", \"\"]);\n\n// exports\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
10\\\" class=\\\"study-more-button\\\">\\r\\n ... {{studyGroupInfo.studyList.length - 10}}\\r\\n more\\r\\n
\\r\\n
\\r\\n
\\r\\n Modified on {{studyGroupInfo.updatedDate}}\\r\\n
\\r\\n
\\r\\n Created on {{studyGroupInfo.createdDate}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n {{studyGroupInfo.groupName}}\\r\\n\\r\\n\\r\\n\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./study-group-card.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n:host {\\n position: relative;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.category-wrapper {\\n columns: 2 5em;\\n text-align: left;\\n color: black;\\n}\\n\\n.study-info-date {\\n color: #6C2FAC;\\n font-size: 15px;\\n padding-left: 10px;\\n font-family: inherit;\\n}\\n\\n.study-group-card {\\n width: 200px;\\n height: 225px;\\n margin: 0px 15px 25px 5px;\\n box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.1607843137);\\n border-radius: 10px;\\n opacity: 1;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.study-group-card .mdl-button {\\n font-size: 14px;\\n}\\n\\n.study-group-card .study-card__link {\\n display: flex;\\n align-items: center;\\n}\\n\\n.study-group-card .mdl-card__supporting-text {\\n line-height: 18px;\\n overflow: hidden;\\n padding: 10px;\\n width: 90%;\\n height: 80%;\\n}\\n\\n.header-wrapper {\\n display: flex;\\n align-items: center;\\n}\\n\\nbutton.favorite {\\n color: #e0e0e0;\\n}\\n\\n.study-link {\\n cursor: pointer;\\n width: 143px;\\n}\\n\\nmdl-card {\\n height: 250px;\\n}\\n\\nmdl-card:hover {\\n background: #F3F5FE 0% 0% no-repeat padding-box;\\n}\\n\\nmdl-card:hover .action-button {\\n background-color: #3A5CE9;\\n color: white !important;\\n}\\n\\nmdl-card-title {\\n background: #626971;\\n color: #ffffff;\\n}\\n\\nmdl-card-title {\\n padding: 5px 0px 5px 5px;\\n background-color: #2998E3;\\n}\\n\\nmdl-card-title .mdl-card__title-text {\\n font-size: 18px;\\n font-weight: 400;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n display: block;\\n font-family: inherit;\\n}\\n\\nmdl-card-actions {\\n display: flex;\\n justify-content: space-around;\\n}\\n\\n.action-title {\\n left: 10px;\\n position: absolute;\\n top: 50px;\\n}\\n\\n.disabled {\\n pointer-events: none;\\n cursor: default;\\n opacity: 0.5;\\n}\\n\\n.study-info-wrapper .disabled .counter,\\n.study-info-wrapper .disabled .action-title {\\n color: #AAA;\\n}\\n\\n.study-info-wrapper .hide-tooltip {\\n display: none;\\n}\\n\\n.mdl-menu__item {\\n transform: translateZ(0);\\n}\\n\\n.action-button {\\n border: 2px solid #3A5CE9;\\n border-radius: 20px;\\n opacity: 1;\\n cursor: pointer;\\n background-color: white;\\n color: #3A5CE9;\\n text-align: center;\\n font-family: inherit;\\n font-size: 14px;\\n display: flex;\\n align-items: center;\\n}\\n\\n.view-group:hover {\\n border: 2px solid #2998E3;\\n border-radius: 20px;\\n opacity: 1;\\n cursor: pointer;\\n background-color: #2998E3;\\n color: white;\\n}\\n\\n.study-more-button {\\n color: #3A5CE9;\\n font-size: 13px;\\n cursor: pointer;\\n font-weight: 700;\\n position: absolute;\\n right: 5px;\\n bottom: 70px;\\n}\\n\\n.study-label {\\n width: auto;\\n display: flex;\\n font-size: 11px;\\n font-family: inherit;\\n}\\n\\n::ng-deep .text-highlight {\\n background-color: gold;\\n color: black;\\n}\\n\\n.header-wrapper .material-icons {\\n font-size: 20px !important;\\n}\\n\\n.protocol-tooltip {\\n margin: 1rem -12.6rem !important;\\n width: 13rem;\\n background: #dee3fb !important;\\n color: #000000 !important;\\n border: 1px solid #F1F3FE;\\n font-family: inherit;\\n}\\n\\n.header-wrapper .mdl-button--icon {\\n min-width: 25px;\\n width: 25px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n

My Protocols

\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./protocols.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".protocols-title {\\n height: 20px;\\n font-weight: bold;\\n font-size: 16px;\\n margin-bottom: 5px;\\n}\\n\\n.protocols-search {\\n position: relative;\\n height: 40px;\\n}\\n\\n.protocols-list {\\n padding: 5px 0px 50px 0px;\\n display: flex;\\n flex-wrap: wrap;\\n}\\n\\n.protocols-label {\\n display: flex;\\n cursor: pointer;\\n border: 1px solid #3A5CE9;\\n border-radius: 10px;\\n align-items: left;\\n padding: 3px;\\n margin-bottom: 10px;\\n font-weight: 600;\\n color: #1A2188;\\n margin: 0 10px 10px 0;\\n min-width: 138px;\\n width: 138px;\\n height: 25px;\\n align-items: center;\\n}\\n\\n.protocols-label img {\\n height: 18px;\\n padding: 0px 6px;\\n}\\n\\n.protocols-label span {\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n overflow: hidden;\\n}\\n\\n.protocols-label:hover {\\n background: #F1F3FE 0% 0% no-repeat padding-box;\\n box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.1019607843);\\n border: 1px solid #1A2188;\\n border-radius: 10px;\\n}\\n\\n.protocol-tooltip {\\n margin: 1rem;\\n background: #dee3fb !important;\\n color: #000000 !important;\\n border: 1px solid #F1F3FE;\\n border-radius: 10px;\\n height: 0px;\\n display: flex;\\n align-items: center;\\n justify-content: space-around;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n

Samples Search

\\r\\n

Search for samples from a specific visit or enter the barcode number to search\\r\\n for a specific sample

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

Search by Accession :

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

 \\r\\n \\r\\n {{searchForVisitError}}\\r\\n \\r\\n\\r\\n \\r\\n {{searchForVisit?.errors?.validation}}\\r\\n \\r\\n

\\r\\n \\r\\n
\\r\\n\\r\\n
Or
\\r\\n\\r\\n
\\r\\n\\r\\n

Search by Sample :

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

Accession-Container Number OR Barcode Number\\r\\n \\r\\n {{searchForSampleError}}\\r\\n \\r\\n\\r\\n \\r\\n {{searchForSample?.errors?.validation}}\\r\\n \\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./samples-search.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.samples-search-container {\\n background: #FAFBFE 0% 0% no-repeat padding-box;\\n border: 1px solid #E9E9E9;\\n border-radius: 4px;\\n margin: 5px 20px 10px 0;\\n padding: 10px;\\n width: 1065px;\\n}\\n\\n.samples-search-title {\\n height: 20px;\\n font-weight: bold;\\n font-size: 16px;\\n margin: -5px 0 0;\\n}\\n\\n.search-icon {\\n padding: 10px;\\n background: #3A5CE9;\\n color: white;\\n min-width: 30px;\\n text-align: center;\\n border-radius: 0px 5px 5px 0px;\\n cursor: pointer;\\n top: -1px;\\n height: 27px;\\n position: relative;\\n object-fit: cover;\\n}\\n\\n.search-icon:hover {\\n background: #0a279e;\\n}\\n\\n.search-for-visit {\\n background-position: right 0px bottom 5px;\\n background-size: 28px 1px;\\n background-repeat: repeat-x;\\n background-position-x: 25px;\\n width: 290px;\\n outline: none;\\n border: 1px solid rgba(58, 92, 233, 0.7019607843);\\n border-radius: 5px 0px 0px 5px;\\n height: 42px;\\n padding-left: 10px;\\n margin-right: -20px;\\n font: normal normal normal 14px/18px \\\"Source Sans Pro\\\";\\n}\\n\\n.is-active {\\n letter-spacing: 21px;\\n background-image: linear-gradient(to left, #cbc7c7 70%, rgba(255, 255, 255, 0) 0%);\\n}\\n\\n.search-for-accession {\\n background-position: right 0px bottom 5px;\\n background-size: 28px 1px;\\n background-repeat: repeat-x;\\n background-position-x: 25px;\\n width: 400px;\\n outline: none;\\n border-radius: 5px 0px 0px 5px;\\n height: 42px;\\n padding-left: 10px;\\n margin-right: -25px;\\n border-right: none;\\n border: 1px solid rgba(58, 92, 233, 0.7019607843);\\n font: normal normal normal 14px/18px \\\"Source Sans Pro\\\";\\n}\\n\\n.samples-search-sub-title {\\n font-size: 12px;\\n margin: 0;\\n}\\n\\n.split-text {\\n position: relative;\\n padding: 3rem 2rem;\\n font: normal normal normal 12px/12px \\\"Source Sans Pro\\\";\\n}\\n\\n.search-label {\\n margin: 0px;\\n font: normal normal 600 14px/18px \\\"Source Sans Pro\\\";\\n padding-bottom: 5px;\\n}\\n\\n.search-wrapper {\\n display: flex;\\n font-weight: 700;\\n}\\n\\n.sample-icon {\\n width: 5rem;\\n float: left;\\n padding-top: 10px;\\n}\\n\\n.search-hint {\\n font: normal normal 600 10px/13px \\\"Source Sans Pro\\\";\\n color: #231F20;\\n}\\n\\n.disabled {\\n pointer-events: none;\\n background: #b5b5b5;\\n}\\n\\n.invalid {\\n border-color: red;\\n}\\n\\n.error {\\n color: red;\\n}\\n\\nmdl-progress ::ng-deep {\\n top: -32px;\\n height: 2px;\\n width: 99%;\\n left: 3px;\\n}\\n\\nmdl-progress ::ng-deep div {\\n background-color: #2998E3 !important;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n help\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n {{status.count}}\\r\\n \\r\\n Samples \\r\\n
\\r\\n
\\r\\n \\r\\n {{status.formatedCount}}\\r\\n \\r\\n Samples\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n {{status.count}}\\r\\n \\r\\n\\r\\n \\r\\n {{status.tooltip}}\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sample-status.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n:host {\\n position: relative;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.category-wrapper {\\n columns: 2 5em;\\n text-align: left;\\n color: black;\\n position: relative;\\n top: 20px;\\n margin-bottom: 10px;\\n left: 10px;\\n height: 110px;\\n display: inline-flex;\\n}\\n\\n.img-wrapper {\\n position: relative;\\n top: 5px;\\n width: fit-content;\\n left: 70px;\\n height: 120px;\\n display: flex;\\n}\\n\\n.xip-logo-sizing {\\n padding: 20px;\\n padding-top: 10px;\\n padding-left: 10px;\\n}\\n\\n.samples-count {\\n text-align: center;\\n letter-spacing: 0px;\\n color: #3A5CE9;\\n opacity: 1;\\n font-size: 40px;\\n font-weight: bold;\\n}\\n\\n.hold {\\n color: #F7758C;\\n}\\n\\n.samples-text {\\n text-align: center;\\n letter-spacing: 0px;\\n color: grey;\\n opacity: 1;\\n font-size: 20px;\\n}\\n\\n.samples {\\n display: inline-grid;\\n position: relative;\\n height: 60px;\\n padding-top: 10px;\\n top: 10px;\\n}\\n\\n.img_height {\\n height: 80px;\\n padding-top: 5px;\\n padding-right: 30px;\\n}\\n\\n.study-group-card {\\n width: 250px;\\n position: relative;\\n min-height: 220px;\\n height: auto;\\n margin: 0px 20px 20px 0px;\\n outline: 1px solid rgba(0, 0, 0, 0.12);\\n background: #FAFBFE 0% 0% no-repeat padding-box;\\n border: 1px solid #E4E4E4;\\n border-radius: 4px;\\n opacity: 1;\\n cursor: pointer;\\n}\\n\\n.study-group-card .label {\\n width: auto;\\n justify-content: center;\\n letter-spacing: 0px;\\n color: #231F20;\\n opacity: 1;\\n margin: 10px;\\n display: flex;\\n margin-bottom: 10px;\\n height: 40px;\\n font-size: 16px;\\n font-weight: bold;\\n position: relative;\\n align-items: center;\\n text-align: center;\\n}\\n\\n.disabled {\\n cursor: default;\\n}\\n\\n.study-group-card:hover {\\n width: 250px;\\n background: #F3F5FE 0% 0% no-repeat padding-box;\\n border: 1px solid #C6D0F9;\\n}\\n\\n.study-group-card:hover .label {\\n color: #1A2188;\\n}\\n\\n.mdl-button {\\n font-weight: 400;\\n}\\n\\n.samples-grid-box {\\n padding: 10px;\\n padding-left: 0px;\\n}\\n\\n.view-sample {\\n background: #3A5CE9 0% 0% no-repeat padding-box;\\n border-radius: 20px;\\n opacity: 1;\\n color: white;\\n cursor: pointer;\\n}\\n\\n.view-sample:hover {\\n background: #1A2188 0% 0% no-repeat padding-box;\\n}\\n\\n.align-button {\\n display: flex;\\n justify-content: center;\\n margin: 20px;\\n margin-top: unset;\\n position: relative;\\n}\\n\\n.count-tooltip {\\n margin: 1rem;\\n background: #dee3fb !important;\\n color: #000000 !important;\\n border: 1px solid #F1F3FE;\\n border-radius: 5px;\\n height: 0px;\\n font-size: 18px;\\n display: flex;\\n align-items: center;\\n justify-content: space-around;\\n}\\n\\n.help-text-tooltip {\\n height: auto;\\n font-size: 16px;\\n line-height: 20px;\\n}\\n\\n.hide {\\n display: none !important;\\n}\\n\\n.tooltip-info {\\n font-size: 18px;\\n color: #6C2FAC;\\n cursor: help;\\n position: absolute;\\n right: 10px;\\n top: 10px;\\n}\\n\\n.samples-section-seperator {\\n width: 97%;\\n border-bottom: 1px solid #707070;\\n margin-bottom: 20px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\\r\\n
\\r\\n \\r\\n Visit Details:\\r\\n Hold\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n {{header.displayText}}:\\r\\n \\r\\n {{\\r\\n header.isDate ? ((visitDetails?.data[header.key] | date:'dd-MMM-y') || 'N/A'):\\r\\n header.isDateTime ? ((visitDetails?.data[header.key] | date:'dd-MMM-y, hh:mm a') || 'N/A') :\\r\\n (visitDetails?.data[header.key] || 'N/A')\\r\\n }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n No Data Available\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./visit-details.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.visit-container {\\n background: rgba(235, 237, 248, 0.2392156863) 0% 0% no-repeat padding-box;\\n border: 1px solid #C6D0F9;\\n border-radius: 4px;\\n display: flex;\\n height: 115px;\\n font: normal normal bold 14px/18px \\\"Source Sans Pro\\\";\\n flex-direction: column;\\n flex-wrap: wrap;\\n padding: 20px;\\n margin-right: 5px;\\n}\\n\\n.visit-container div {\\n display: inherit;\\n flex-direction: column;\\n}\\n\\n.visit-container .property-value {\\n font-weight: 400;\\n}\\n\\n.visit-container .property-name {\\n width: 375px;\\n padding-bottom: 3px;\\n}\\n\\n.heading {\\n font: normal normal bold 16px/28px \\\"Source Sans Pro\\\";\\n padding-right: 10px;\\n}\\n\\n.heading img {\\n height: 25px;\\n padding: 0 5px 2px 0;\\n}\\n\\n.onhold-indicator {\\n color: #fff;\\n background-color: #DC1439;\\n padding: 2px 8px 2px 8px;\\n bottom: 10px;\\n top: 1px;\\n position: relative;\\n border-radius: 12px;\\n line-height: 16px;\\n font: normal normal normal 12px/9px Source Sans Pro;\\n left: 5px;\\n top: 0px;\\n font-weight: bold;\\n letter-spacing: 0.5px;\\n}\\n\\n.no-data {\\n height: 70px;\\n font: normal normal bold 12px/9px Source Sans Pro;\\n margin-left: 35px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{defaultItemText}}\\r\\n
\\r\\n close\\r\\n
\\r\\n
\\r\\n
\\r\\n
0\\\">\\r\\n
\\r\\n {{checkedList[0].value}}\\r\\n
\\r\\n close\\r\\n
\\r\\n
\\r\\n 1\\\">\\r\\n
\\r\\n ...{{checkedList.length - 1}} more\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n close\\r\\n
\\r\\n
\\r\\n keyboard_arrow_down\\r\\n
\\r\\n
\\r\\n
0\\\">\\r\\n 10\\\">\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{item.value}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n no items found\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n {{getToolTip(checkedList)}}\\r\\n\\r\\n\\r\\n\\r\\n {{getToolTip(defaultValue)}}\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sample-tracking-select.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n/***\\n css for multi select drop down\\n**/\\n\\n:host {\\n position: relative;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.drop-toggle {\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 1px solid #C6D0F9;\\n border-radius: 10px;\\n min-height: 33px;\\n display: flex;\\n min-width: 220px;\\n position: relative;\\n}\\n\\n.wrapper {\\n width: auto;\\n height: auto;\\n display: inline-flex;\\n}\\n\\n.drop-toggle:hover {\\n border: 1px solid #3A5CE9;\\n}\\n\\n.drop-toggle:hover .clear-button .material-icons {\\n font-size: 12px;\\n color: #F7758C;\\n}\\n\\n.drop-show {\\n padding: 4px;\\n top: 40px;\\n min-width: 210px;\\n background-color: #f1f3fe;\\n width: max-content;\\n border: 1px solid #BABABA;\\n border-radius: 5px;\\n position: absolute;\\n z-index: 100;\\n box-shadow: 0 6px 10px rgba(0, 0, 0, 0.15);\\n margin-left: 1px;\\n max-height: 250px;\\n overflow-y: scroll;\\n}\\n\\n::-webkit-scrollbar {\\n width: 5px;\\n height: 14px;\\n}\\n\\n::-webkit-scrollbar-track {\\n background: #f1f3fe;\\n}\\n\\n::-webkit-scrollbar-thumb {\\n background: #6e82d8;\\n}\\n\\n/* Handle on hover */\\n\\n::-webkit-scrollbar-thumb:hover {\\n background: #6e82d8;\\n}\\n\\n.selected-item-list {\\n width: 100%;\\n display: inline-flex;\\n}\\n\\n.selected-item-list .selected-item {\\n display: inline-flex;\\n background: #2998E3;\\n height: max-content;\\n margin: 5px;\\n padding-right: 3px;\\n border-radius: 10px;\\n}\\n\\n.selected-item-list .selected-item-text {\\n width: max-content;\\n font-size: 12px;\\n font-family: \\\"Source Sans Pro\\\";\\n display: inline-flex;\\n color: white;\\n padding: 5px;\\n}\\n\\n.selected-item-list .close-button {\\n color: white;\\n bottom: 8px;\\n left: 7px;\\n bottom: 2px;\\n cursor: pointer;\\n padding-bottom: 10px;\\n font-size: 30px;\\n}\\n\\n.selected-item-list .close-button .material-icons {\\n font-size: 10px;\\n font-weight: bold;\\n}\\n\\n.action-button {\\n display: flex;\\n}\\n\\n.default-item-list {\\n width: 100%;\\n}\\n\\n.default-item {\\n display: inline-flex;\\n background: #C6D0F9;\\n height: 30px;\\n margin: 5px;\\n width: fit-content;\\n border-radius: 10px;\\n}\\n\\n.default-item .default-item-text {\\n color: black;\\n text-align: center;\\n position: relative;\\n margin: 10px 5px 10px 7px;\\n font: normal normal 600 12px/9px \\\"Source Sans Pro\\\";\\n}\\n\\n.default-item .default-close-button {\\n color: white;\\n position: relative;\\n bottom: 2px;\\n left: -2px;\\n cursor: pointer;\\n padding-bottom: 10px;\\n font-size: 30px;\\n}\\n\\n.default-item .default-close-button .material-icons {\\n font-size: 10px;\\n font-weight: bold;\\n}\\n\\n.drop-show label {\\n display: block;\\n font-size: 15px;\\n cursor: pointer;\\n}\\n\\n.drop-down-button {\\n float: right;\\n align-items: center;\\n display: flex;\\n cursor: pointer;\\n margin-right: 5px;\\n}\\n\\n.drop-down-button .material-icons {\\n font-size: 18px;\\n color: #3A5CE9;\\n}\\n\\nmdl-list mdl-list-item {\\n cursor: pointer;\\n font-size: 12px;\\n color: #231F20;\\n padding-bottom: 5px;\\n}\\n\\nmdl-list mdl-list-item:hover {\\n background-color: #C6D0F9;\\n}\\n\\nmdl-list mdl-list-item.is-active,\\nmdl-list mdl-list-item.is-active:hover {\\n background-color: #C6D0F9;\\n}\\n\\nlabel:hover {\\n background-color: #6e82d8;\\n border-radius: 3px;\\n}\\n\\nlabel:hover span {\\n color: white;\\n}\\n\\n.clear-button {\\n float: right;\\n align-items: center;\\n display: flex;\\n cursor: pointer;\\n}\\n\\n.clear-button .material-icons {\\n font-size: 12px;\\n color: #B3B2B3;\\n}\\n\\n.clear-button .material-icons:hover {\\n font-size: 12px;\\n color: #F7758C;\\n}\\n\\n.drop-show label input {\\n vertical-align: top;\\n}\\n\\n.drop-show label span {\\n display: inline-block;\\n}\\n\\n.protocol-tooltip {\\n margin: 1rem -14rem !important;\\n width: 14rem;\\n background: #F1F3FE !important;\\n color: #000000 !important;\\n}\\n\\n.more-button {\\n color: #3A5CE9;\\n font-size: 13px;\\n margin-right: 7px;\\n cursor: pointer;\\n font-weight: 700;\\n position: relative;\\n top: 7px;\\n}\\n\\n.checkbox-label {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n -webkit-box-orient: vertical;\\n -webkit-line-clamp: 2;\\n line-height: 15px;\\n display: initial !important;\\n position: relative;\\n left: 3px;\\n bottom: 1.5px;\\n color: black;\\n font-weight: bold;\\n}\\n\\n.search-box {\\n height: 20px;\\n border: none;\\n outline: none;\\n border-radius: 3px 3px 0 0;\\n border-bottom: 3px solid #6e82d8;\\n margin: 5px;\\n min-width: 190px;\\n width: 93%;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n search\\r\\n \\r\\n clear\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sample-tracking-grid.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.covance-ag-grid-container {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n}\\n\\n.covance-ag-grid-container .grid {\\n flex-direction: column;\\n flex-grow: 1;\\n display: flex;\\n}\\n\\n.toolbar {\\n display: flex;\\n align-items: center;\\n flex-wrap: wrap;\\n padding: 8px;\\n}\\n\\n.mdl-cell {\\n margin-top: 0;\\n margin-right: 0;\\n width: calc(100% - 8px);\\n}\\n\\n.hidden {\\n display: none;\\n}\\n\\n.inner-toolbar-wrapper {\\n flex-grow: 1;\\n}\\n\\nag-export {\\n flex-grow: 1;\\n}\\n\\n.clear-quick-filter-icon {\\n cursor: pointer;\\n}\\n\\nag-grid-angular ::ng-deep .ag-header-row {\\n background-color: #2998E3;\\n color: white;\\n}\\n\\nag-grid-angular ::ng-deep .ag-header-row .ag-header-cell {\\n /*display: flex;\\n align-content: space-around;\\n flex-wrap: wrap;*/\\n padding-top: 10px;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\nag-grid-angular ::ng-deep .ag-font-style {\\n user-select: text;\\n}\\n\\nag-grid-angular ::ng-deep .ag-header-row:nth-child(1) {\\n border-radius: 10px 10px 0 0;\\n}\\n\\nag-grid-angular ::ng-deep .ag-header-row:last-child {\\n border-radius: 0 10px 0 0;\\n}\\n\\nag-grid-angular ::ng-deep .ag-header-container {\\n text-align: center;\\n font-size: 15px;\\n}\\n\\nag-grid-angular ::ng-deep .ag-header-container div:nth-child(2) {\\n background-color: #F3F5FE;\\n}\\n\\nag-grid-angular ::ng-deep .ag-header-container .ag-header-cell-sortable {\\n background-color: #2998E3 !important;\\n border-radius: 10px 10px 0 0;\\n}\\n\\nag-grid-angular ::ng-deep .ag-theme-material .ag-cell-label-container {\\n top: 10px;\\n position: relative;\\n}\\n\\nag-grid-angular ::ng-deep .ag-body-viewport-wrapper.ag-layout-normal {\\n background: #F8F8F8 0% 0% no-repeat padding-box;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\nag-grid-angular ::ng-deep .ag-theme-material .ag-cell-not-inline-editing {\\n text-align: center;\\n}\\n\\nag-grid-angular ::ng-deep .ag-header-cell-text {\\n font-size: 14px;\\n}\\n\\nag-grid-angular ::ng-deep .ag-floating-filter-full-body .ag-floating-filter-input {\\n color: #231F20;\\n background: #F8F8F8;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\nag-grid-angular ::ng-deep .filter-value {\\n top: 2px;\\n position: absolute;\\n border-radius: 50px;\\n font-size: 14px;\\n align-items: center;\\n padding-right: 20px;\\n width: 100px !important;\\n padding-left: 20px;\\n font-weight: 600;\\n justify-content: center;\\n background: #DC1439 0% 0% no-repeat padding-box;\\n color: white;\\n border-radius: 11px;\\n}\\n\\nag-grid-angular ::ng-deep .sample-filter-value {\\n top: 2px;\\n position: absolute;\\n border-radius: 50px;\\n width: 100px !important;\\n font-size: 14px;\\n align-items: center;\\n padding-right: 20px;\\n width: fit-content;\\n padding-left: 20px;\\n font-weight: 600;\\n justify-content: center;\\n background: #069D06 0% 0% no-repeat padding-box;\\n color: white;\\n border-radius: 11px;\\n}\\n\\nag-grid-angular ::ng-deep .hyperlink-text {\\n color: #3A5CE9;\\n padding: 15px;\\n cursor: pointer;\\n}\\n\\nag-grid-angular ::ng-deep .alert-text {\\n color: #DC1439;\\n padding: 15px;\\n}\\n\\nag-grid-angular ::ng-deep .align-row-text {\\n padding: 15px;\\n}\\n\\nag-grid-angular ::ng-deep .mdl-tooltip {\\n background: #2998E3 !important;\\n color: white !important;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.search-container {\\n border: 1px solid var(--azure);\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 1px solid #3A5CE9;\\n border-radius: 50px;\\n opacity: 1;\\n height: 40px;\\n width: 350px;\\n}\\n\\n.material-icons {\\n color: #3A5CE9;\\n margin: 5px;\\n}\\n\\n.options {\\n display: flex;\\n justify-content: flex-start;\\n align-items: center;\\n}\\n\\n.options div {\\n padding-right: 2rem;\\n}\\n\\n.options div span {\\n padding-right: 0.5rem;\\n}\\n\\n.options div select {\\n padding: 0.2rem 1rem;\\n border-radius: 1rem;\\n}\\n\\n.ag-theme-material {\\n font: normal normal normal 14px/12px \\\"Source Sans Pro\\\";\\n font-family: \\\"Source Sans Pro\\\";\\n min-height: 400px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n Select Unread\\r\\n Select All\\r\\n Deselect All\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n {{checkBoxLabel}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Unread:{{unreadCount}} of {{totalRecords}}\\r\\n
\\r\\n
\\r\\n Count: {{totalRecords}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sample-tracking-ag-export.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.wrapper {\\n display: flex;\\n align-items: center;\\n flex-wrap: wrap;\\n}\\n\\n.wrapper > div {\\n padding: 0 4px 0 4px;\\n}\\n\\n.export {\\n color: #616161;\\n text-transform: capitalize;\\n}\\n\\n#select-icon {\\n font-size: 18px;\\n}\\n\\n.unread-buttons button {\\n margin-left: 4px;\\n}\\n\\n.unread-switch-box {\\n white-space: nowrap;\\n}\\n\\n.total-info {\\n color: rgba(0, 0, 0, 0.54);\\n font-size: 12px;\\n white-space: nowrap;\\n}\\n\\n.total-info .total-label {\\n margin-right: 6px;\\n margin-left: 12px;\\n}\\n\\n.inline-content {\\n flex-grow: 1;\\n}\\n\\n.action-button {\\n float: right;\\n display: flex;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.action-button .export-button {\\n border: 2px solid #3A5CE9;\\n border-radius: 20px;\\n opacity: 1;\\n cursor: pointer;\\n align-items: center;\\n font-family: \\\"Source Sans Pro\\\";\\n background-color: white;\\n color: #3A5CE9;\\n text-align: center;\\n margin-right: 10px;\\n display: flex;\\n}\\n\\n.action-button .export-button .icon-logo {\\n left: 5px;\\n position: relative;\\n}\\n\\n.action-button .export-button:hover {\\n background-color: #3A5CE9;\\n font-family: \\\"Source Sans Pro\\\";\\n color: white !important;\\n}\\n\\n.action-button .export-button:hover .icon-logo {\\n -webkit-filter: brightness(0) invert(1);\\n}\\n\\n\", \"\"]);\n\n// exports\n","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".hyperlink-text {\\n color: #3A5CE9;\\n display: flex;\\n white-space: initial;\\n cursor: pointer;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\\r\\n
\\r\\n \\r\\n Sample Details:\\r\\n
\\r\\n\\r\\n \\r\\n
= 15\\\">\\r\\n \\r\\n {{header.displayText}}:\\r\\n \\r\\n {{\\r\\n header.isDate ? ((sampleDetails?.data[header.key] | date:'dd-MMM-y') || 'N/A'):\\r\\n header.isDateTime ? ((sampleDetails?.data[header.key] | date:'dd-MMM-y, hh:mm a') || 'N/A'):\\r\\n (sampleDetails?.data[header.key] || 'N/A')\\r\\n }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n No Data Available\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sample-details.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.sample-container {\\n background: rgba(235, 237, 248, 0.2392156863) 0% 0% no-repeat padding-box;\\n border: 1px solid #C6D0F9;\\n border-radius: 4px;\\n display: flex;\\n height: 105px;\\n font: normal normal bold 14px/18px Source Sans Pro;\\n flex-direction: column;\\n flex-wrap: wrap;\\n padding: 20px;\\n margin-right: 5px;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.sample-container div {\\n display: inherit;\\n flex-direction: column;\\n}\\n\\n.sample-container .property-value {\\n font-weight: 400;\\n}\\n\\n.sample-container .property-name {\\n width: 375px;\\n padding-bottom: 3px;\\n}\\n\\n.four-items {\\n height: 85px;\\n}\\n\\n.six-items {\\n height: 130px;\\n}\\n\\n.heading {\\n font: normal normal bold 16px/28px Source Sans Pro;\\n}\\n\\n.heading img {\\n height: 25px;\\n padding: 0 0 2px 0;\\n}\\n\\n.no-data {\\n height: 70px;\\n font: normal normal bold 12px/9px Source Sans Pro;\\n margin-left: 35px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\\r\\n
\\r\\n \\r\\n Sample Activity:\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{activity?.hideDescription ? activity?.activityStatus : activity?.activityDescription}}\\r\\n {{activity?.activityOccurredonDate | date:'d-MMM-y, hh:mm a' }}\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n {{activity?.activityDescription}} History\\r\\n
\\r\\n\\r\\n
\\r\\n From Location: \\r\\n {{activity?.fromLocation}}\\r\\n
\\r\\n\\r\\n
\\r\\n To Location: \\r\\n {{activity?.toLocation}}\\r\\n
\\r\\n\\r\\n
\\r\\n Cancellation Description: \\r\\n {{activity?.cancellationDescription}}\\r\\n
\\r\\n\\r\\n
\\r\\n Airway BillNumber: \\r\\n {{activity?.airwayBillNumber}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n No Data Available\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sample-activity.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".heading {\\n font: normal normal bold 16px/28px Source Sans Pro;\\n}\\n\\n.heading img {\\n height: 25px;\\n padding: 0 5px 5px 0;\\n}\\n\\n.life-cycle-status {\\n display: flex;\\n}\\n\\n.life-cycle-status .icon-status {\\n display: flex;\\n flex-direction: column;\\n padding: 10px;\\n z-index: 1;\\n align-items: center;\\n}\\n\\n.life-cycle-status .icon-status span {\\n padding-top: 10px;\\n display: inherit;\\n justify-content: center;\\n}\\n\\n.life-cycle-status img {\\n height: 35px;\\n padding-bottom: 10px;\\n}\\n\\n.life-cycle-status .no-data {\\n height: 70px;\\n font: normal normal bold 12px/9px Source Sans Pro;\\n margin-left: 35px;\\n}\\n\\n.status-circle {\\n color: white;\\n width: 20px;\\n height: 20px;\\n border-radius: 50%;\\n text-align: center;\\n margin: 0 auto;\\n align-items: center;\\n padding: 0 !important;\\n}\\n\\n.status-circle span {\\n width: 5px;\\n height: 5px;\\n border-radius: 50%;\\n margin: 0 auto;\\n padding: 0 !important;\\n}\\n\\n.status-circle.completed {\\n background-color: #3A5CE9;\\n}\\n\\n.status-circle.completed span {\\n background-color: white;\\n}\\n\\n.status-circle.pending {\\n margin: 0;\\n background-color: white;\\n}\\n\\n.status-circle.pending span {\\n background-color: gray;\\n}\\n\\n.line {\\n width: 7vw;\\n height: 5rem;\\n margin: 0px -2rem;\\n border-bottom: 2px solid #3A5CE9;\\n}\\n\\n.line.pending {\\n border-color: #C6D0F9 !important;\\n}\\n\\n.status {\\n font: normal normal bold 12px/9px Source Sans Pro;\\n text-transform: uppercase;\\n}\\n\\n.date-time {\\n font: normal normal normal 10px/12px Source Sans Pro;\\n}\\n\\n.activity-tooltip {\\n background: #dee3fb !important;\\n color: #000000 !important;\\n border: 1px solid #F1F3FE;\\n border-radius: 5px;\\n display: flex;\\n align-items: center;\\n}\\n\\n.activity-tooltip .tooltip-heading {\\n display: flex;\\n padding-bottom: 10px;\\n}\\n\\n.activity-tooltip .item {\\n display: flex;\\n padding-bottom: 3px;\\n}\\n\\n.activity-tooltip .title {\\n font: normal normal bold 14px/18px Source Sans Pro;\\n}\\n\\n.activity-tooltip .value {\\n padding-left: 5px;\\n font: normal normal normal 14px/18px Source Sans Pro;\\n}\\n\\n.hide-tooltip {\\n display: none;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
    \\r\\n
  1. SP Home
  2. \\r\\n
  3. \\r\\n \\r\\n \\r\\n {{ breadcrumb.label }}\\r\\n \\r\\n \\r\\n
  4. \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./breadcrumb.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.breadcrumb {\\n background: none;\\n font-size: 12px;\\n margin: 0;\\n padding-left: 20px;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.breadcrumb a,\\n.breadcrumb span {\\n color: #3A5CE9;\\n}\\n\\n.breadcrumb a:hover,\\n.breadcrumb span:hover {\\n color: #1A2188;\\n text-decoration: none;\\n}\\n\\n.breadcrumb .last-link {\\n color: #231F20;\\n pointer-events: none;\\n}\\n\\n.breadcrumb .last-link span {\\n color: #231F20;\\n}\\n\\n.breadcrumb li {\\n list-style: none;\\n float: left;\\n margin: 2px;\\n}\\n\\n.breadcrumb li:last-child {\\n margin-right: 5px;\\n}\\n\\n.breadcrumb li::after {\\n content: \\\"/\\\";\\n color: darkgrey;\\n}\\n\\n.breadcrumb li:last-child::after {\\n content: \\\"\\\";\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n

Generate New Report

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Specimen Management Inventory Report\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Sample Tracking Report\\r\\n
\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./report-types.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n:host {\\n position: relative;\\n display: flex;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.report-header {\\n font-size: 16px;\\n font-weight: bold;\\n padding: 15px;\\n padding-left: unset;\\n height: 15px;\\n}\\n\\n.samples-grid-box {\\n margin: 5px 20px 10px 0;\\n}\\n\\n.img-wrapper {\\n position: relative;\\n top: 15px;\\n justify-content: center;\\n height: 100px;\\n display: flex;\\n}\\n\\n.xip-logo-sizing {\\n padding: 30px;\\n padding-top: 20px;\\n}\\n\\n.study-group-card {\\n width: 330px;\\n position: relative;\\n height: 160px;\\n margin: 0px 30px 10px 0px;\\n background: #FAFBFE 0% 0% no-repeat padding-box;\\n border: 1px solid #EFF0F1;\\n opacity: 1;\\n border-radius: 4px;\\n cursor: pointer;\\n}\\n\\n.study-group-card .label {\\n width: auto;\\n text-align: center;\\n letter-spacing: 0px;\\n color: #231F20;\\n opacity: 1;\\n display: block;\\n font-size: 14px;\\n font-weight: bold;\\n position: relative;\\n top: 10px;\\n}\\n\\n.study-group-card:hover {\\n background: #F2F7FF 0% 0% no-repeat padding-box;\\n border: 1px solid #E9EDFD;\\n}\\n\\n.study-group-card:hover .label {\\n color: #1A2188;\\n}\\n\\n\", \"\"]);\n\n// exports\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\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./action-renderer.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n:host {\\n position: relative;\\n display: flex;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.report-action {\\n cursor: pointer;\\n display: flex;\\n position: relative;\\n justify-content: center;\\n padding-right: 18px;\\n}\\n\\n.report-action-disabled {\\n cursor: pointer;\\n display: flex;\\n position: relative;\\n justify-content: center;\\n pointer-events: none;\\n opacity: 0.4;\\n padding-right: 18px;\\n}\\n\\n.report-action-disabled .icon-img {\\n filter: grayscale(1);\\n}\\n\\n.enable-toggle-disabled {\\n cursor: pointer;\\n display: flex;\\n position: relative;\\n justify-content: center;\\n pointer-events: none;\\n opacity: 0;\\n padding-right: 18px;\\n}\\n\\n.enable-toggle-disabled .icon-img {\\n filter: grayscale(1);\\n}\\n\\n.report-action-delete {\\n cursor: pointer;\\n padding-right: 15px;\\n padding-left: 10px;\\n}\\n\\n.switch {\\n position: relative;\\n display: inline-block;\\n box-shadow: 0 0px 0px rgba(0, 0, 0, 0.1607843137);\\n width: 40px;\\n height: 20px;\\n}\\n\\n.switch input {\\n opacity: 0;\\n width: 0;\\n height: 0;\\n}\\n\\n.slider {\\n position: absolute;\\n cursor: pointer;\\n top: 3px;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n background-color: darkgray;\\n -webkit-transition: 0.4s;\\n transition: 0.4s;\\n height: 15Px;\\n}\\n\\n.slider:before {\\n position: absolute;\\n content: \\\"\\\";\\n height: 20px;\\n width: 20px;\\n left: 0px;\\n background-color: white;\\n -webkit-transition: 0.4s;\\n transition: 0.4s;\\n top: -3px;\\n}\\n\\ninput:checked + .slider {\\n background-color: #3A5CE9;\\n box-shadow: 6px 6px 6px rgba(0, 0, 0, 0.1607843137);\\n}\\n\\ninput:focus + .slider {\\n box-shadow: 6px 6px 6px rgba(0, 0, 0, 0.1607843137);\\n}\\n\\ninput:checked + .slider:before {\\n -webkit-transform: translateX(20px);\\n -ms-transform: translateX(20px);\\n transform: translateX(20px);\\n background-color: #1A2188;\\n box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.1607843137);\\n}\\n\\n/* Rounded sliders */\\n\\n.slider.round {\\n border-radius: 50px;\\n box-shadow: 3px 3px 6px rgba(0, 0, 0, 0.1607843137);\\n}\\n\\n.slider.round:before {\\n border-radius: 50%;\\n background-color: white;\\n box-shadow: 3px 3px 6px rgba(0, 0, 0, 0.1607843137);\\n}\\n\\n.report-action-type {\\n display: inline-flex;\\n justify-content: flex-start;\\n align-items: center;\\n}\\n\\n.enable-toggle-disabled-visible {\\n cursor: pointer;\\n display: flex;\\n position: relative;\\n justify-content: center;\\n pointer-events: none;\\n opacity: 0.4;\\n padding-right: 18px;\\n}\\n\\n.enable-toggle-disabled-visible .icon-img {\\n filter: grayscale(1);\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{header.displayText}}\\r\\n {{header.sort === 'asc' ? '▴' : header.sort === 'desc' ? '▾' : '' }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n close\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{header?.selectedFilterCount}}\\r\\n \\r\\n\\r\\n
0 ? rowLimit*50+'px' : 250 +'px'}\\\">\\r\\n\\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 {{action?.actionName}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{header.isDate ? ((data[header.key] | date:'dd-MMM-y' ) || header.defaultValue || '-') :\\r\\n header.isDateTime ? ((data[header.key] | date:'dd-MMM-y, hh:mm a' ) || header.defaultValue || '-') :\\r\\n (formatGridData(data[header.key], header.formatData) || header.defaultValue || '-')\\r\\n }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n {{header.isDate ? ((children[header.key] | date:'dd-MMM-y') || '-') :\\r\\n header.isDateTime ? ((children[header.key] | date:'dd-MMM-y, hh:mm a') || '-') :\\r\\n children[header.key] || '-'\\r\\n }}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n {{emptyDataPlaceHolder}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./report-grid.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","var escape = require(\"../../../../../node_modules/css-loader/lib/url/escape.js\");\nexports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.action-type {\\n padding-right: 20px;\\n padding-left: 6px;\\n font-weight: bold;\\n}\\n\\n.heading {\\n font: normal normal bold 16px/28px \\\"Source Sans Pro\\\";\\n}\\n\\n.heading img {\\n height: 25px;\\n padding: 0 10px 2px 0;\\n}\\n\\n.view-results {\\n background: #FFFFFF;\\n color: #3A5CE9;\\n cursor: pointer;\\n}\\n\\n.table-container {\\n padding-right: 5px;\\n}\\n\\n.active-search-filter {\\n width: 1155px;\\n overflow-x: scroll;\\n}\\n\\n.table {\\n padding-bottom: 1rem;\\n font: normal normal normal 12px/12px \\\"Source Sans Pro\\\";\\n font-weight: 400;\\n}\\n\\n.table div:last-child {\\n border-radius: 0 0 6px 6px;\\n}\\n\\n.table-header {\\n display: flex;\\n background: #3A5CE9;\\n border-radius: 6px 6px 0px 0px;\\n color: white;\\n height: 4rem;\\n cursor: pointer;\\n font: normal normal bold 13px/13px \\\"Source Sans Pro\\\";\\n}\\n\\n.table-header div {\\n display: flex;\\n align-items: center;\\n flex-wrap: nowrap;\\n width: 175px;\\n margin-left: 5px;\\n}\\n\\n.table-data {\\n max-height: 78vh;\\n overflow-x: hidden;\\n}\\n\\n.table-row {\\n display: flex;\\n border-bottom: 1px solid #d9d9d9;\\n background: #F8F8F8;\\n color: #231F20;\\n min-height: 4rem;\\n box-shadow: 0px 3px 6px -2px #b5b5b5;\\n}\\n\\n.table-row span {\\n display: inherit;\\n width: -webkit-fill-available;\\n width: -moz-available;\\n margin: 1.2vh;\\n line-break: auto;\\n align-items: center;\\n pointer-events: none;\\n}\\n\\n.table-row .link {\\n cursor: pointer;\\n color: #3A5CE9;\\n pointer-events: auto;\\n}\\n\\n.table-row .status-fail {\\n color: #F7758C;\\n font-weight: bold;\\n}\\n\\n.table-row .status-complete {\\n color: #069D06;\\n font-weight: bold;\\n}\\n\\n.table-row .status-progress {\\n color: #3A5CE9;\\n font-weight: bold;\\n}\\n\\n.table-row .new-read {\\n font-weight: bold;\\n}\\n\\n.no-data span {\\n justify-content: space-around;\\n}\\n\\n.table-row:hover {\\n background: #dee3fa !important;\\n}\\n\\n.children-row {\\n background: #F3F5FE !important;\\n}\\n\\n.children-row img {\\n height: 20px;\\n padding-right: 5px;\\n margin-top: -0.5vh;\\n margin-left: 0;\\n}\\n\\n.children-row span:nth-child(1) {\\n background-image: url(\" + escape(require(\"./../../../../../images/sample_tracking/arrow-right-bottom.svg\")) + \");\\n background-repeat: no-repeat;\\n padding-left: 25px;\\n background-size: 25px;\\n background-position: left center;\\n margin-left: 0;\\n}\\n\\n.children-row:hover {\\n background: #C6D0F9 !important;\\n}\\n\\n.special-cell {\\n color: white;\\n border-radius: 15px;\\n align-items: center;\\n justify-content: center;\\n width: 6.5vw !important;\\n margin: 1vh 2.3vw 1vh 2vw !important;\\n height: 25px;\\n}\\n\\n.active {\\n background-color: #069D06;\\n}\\n\\n.in-active {\\n background-color: #DC1439;\\n}\\n\\n.special-cell-text-active {\\n color: #069D06;\\n}\\n\\n.special-cell-text-inactive {\\n color: #DC1439;\\n}\\n\\n::-webkit-scrollbar {\\n width: 5px;\\n height: 14px;\\n}\\n\\n::-webkit-scrollbar-track {\\n background: #ffffff;\\n}\\n\\n::-webkit-scrollbar-thumb {\\n background: #C6D0F9;\\n}\\n\\n/* Handle on hover */\\n\\n::-webkit-scrollbar-thumb:hover {\\n background: #3A5CE9;\\n}\\n\\napp-pagination::ng-deep .pagination-wrapper {\\n max-width: 1575px !important;\\n}\\n\\n.search-filter {\\n height: 4rem;\\n display: flex;\\n flex-direction: row;\\n align-items: flex-start;\\n justify-content: center;\\n background-color: #F3F5FE;\\n}\\n\\n.search-filter .search {\\n width: 175px;\\n display: flex;\\n margin-left: 5px;\\n justify-content: center;\\n position: relative;\\n}\\n\\n.search-filter .search .search-box {\\n width: 140px;\\n border: 1px solid #C6D0F9;\\n border-radius: 2px;\\n outline: none;\\n}\\n\\n.search-filter .search .search-box.has-value {\\n border: 2px solid #3a5ce9;\\n}\\n\\n.search-filter .search .search-box:focus-visible {\\n border-color: #3a5ce9 !important;\\n}\\n\\n.search-filter .search img {\\n cursor: pointer;\\n height: 20px;\\n}\\n\\n.search-filter .search .header-search-close {\\n font-size: 12px;\\n color: #B3B2B3;\\n right: 25px;\\n top: 5px;\\n position: absolute;\\n cursor: pointer;\\n}\\n\\n.search-filter .search .header-search-close:hover {\\n color: #ff0000 !important;\\n}\\n\\n.filter-menu {\\n display: none;\\n}\\n\\n.filter-menu .filter-search-box {\\n border: none;\\n outline: none;\\n border-radius: 3px;\\n border-bottom: 2px solid #6e82d8;\\n}\\n\\n.last-item {\\n right: 10px;\\n left: auto !important;\\n}\\n\\n.is-active {\\n background: #e3e6f2 !important;\\n border-radius: 5px !important;\\n display: flex;\\n position: absolute;\\n padding: 10px;\\n margin-top: 25px;\\n top: 1px;\\n justify-content: flex-start;\\n flex-direction: column;\\n max-height: 250px;\\n overflow-y: auto;\\n border: 1px solid #aebdff;\\n width: max-content;\\n z-index: 100;\\n left: 0;\\n}\\n\\n.unique-items {\\n padding-top: 5px;\\n padding-left: 5px;\\n display: flex;\\n align-items: center;\\n font-size: 15px;\\n}\\n\\n.unique-items input {\\n width: 16px;\\n height: 16px;\\n}\\n\\n.unique-items label {\\n cursor: pointer;\\n}\\n\\n.select-all {\\n border-bottom: 3px solid #3a5ce9;\\n margin: 10px 0;\\n padding-bottom: 10px;\\n border-radius: 0 !important;\\n}\\n\\n.filter-hint {\\n position: absolute;\\n top: 22px;\\n left: 5px;\\n color: red;\\n}\\n\\n.custom-superscript {\\n background: #F7758C 0% 0% no-repeat padding-box;\\n border-radius: 11px;\\n opacity: 1;\\n width: 30px;\\n justify-content: center;\\n display: flex;\\n align-items: center;\\n position: relative;\\n color: #231F20;\\n font: normal normal bold 10px/13px Source Sans Pro;\\n bottom: 10px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"build/fonts/arrow-right-bottom.svg\";","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./scheduled-report-grid.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"report-grid::ng-deep .table-header {\\n background: #4CD5F7 !important;\\n color: #231F20;\\n}\\n\\nreport-grid::ng-deep .table-header div {\\n width: -webkit-fill-available !important;\\n}\\n\\nreport-grid::ng-deep .table-header div:last-child {\\n min-width: 265px;\\n}\\n\\nreport-grid::ng-deep .active-search-filter {\\n width: 100%;\\n}\\n\\nreport-grid::ng-deep .search-filter {\\n align-items: center;\\n justify-content: flex-start;\\n}\\n\\nreport-grid::ng-deep .search-filter .search {\\n width: -webkit-fill-available !important;\\n align-items: center;\\n justify-content: flex-start !important;\\n}\\n\\nreport-grid::ng-deep .search-filter .search .header-search-close {\\n right: 80px !important;\\n}\\n\\nreport-grid::ng-deep .search-filter .search .search-box {\\n width: 75% !important;\\n}\\n\\nreport-grid::ng-deep .grid-actions {\\n width: -webkit-fill-available !important;\\n margin: 1.2vh;\\n /*padding-right: 15px;\\n padding-left: 15px;*/\\n}\\n\\nreport-grid::ng-deep report-action-renderer::ng-deep .report-action:last-child {\\n left: 8px;\\n}\\n\\nreport-grid::ng-deep report-action-renderer::ng-deep .report-action:nth-last-child(2) {\\n left: 2px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./generated-report-grid.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"report-grid::ng-deep .table-header {\\n background: #2998E3 !important;\\n}\\n\\nreport-grid::ng-deep .table-header div {\\n width: -webkit-fill-available !important;\\n}\\n\\nreport-grid::ng-deep .active-search-filter {\\n width: 100%;\\n}\\n\\nreport-grid::ng-deep .search-filter {\\n align-items: center;\\n justify-content: flex-start;\\n}\\n\\nreport-grid::ng-deep .search-filter .search {\\n width: -webkit-fill-available !important;\\n align-items: center;\\n justify-content: flex-start !important;\\n}\\n\\nreport-grid::ng-deep .search-filter .search .search-box {\\n width: 75% !important;\\n}\\n\\nreport-grid::ng-deep .table-row {\\n background-color: #FAFBFE;\\n}\\n\\nreport-grid::ng-deep .grid-actions {\\n width: -webkit-fill-available !important;\\n margin: 1.2vh;\\n /*padding-right: 90px;\\n padding-left: 10px;*/\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\\r\\n
\\r\\n

{{filterInfo?.title}}\\r\\n info\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n {{selectedFilter?.name || 'Search or add ' +\\r\\n filterInfo?.newText}}\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n edit\\r\\n delete\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n {{searchFilterName?.value}}\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n close\\r\\n \\r\\n\\r\\n \\r\\n {{selectedFilterName?.errors?.validation}}\\r\\n\\r\\n \\r\\n Are you sure want to delete\\r\\n {{selectedFilter.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 {{filterInfo?.editText}} Name\\r\\n\\r\\n\\r\\n\\r\\n {{filterInfo?.deleteText}}\\r\\n\\r\\n\\r\\n\\r\\n Click to add {{filterInfo?.newText}}\\r\\n\\r\\n\\r\\n\\r\\n {{filterInfo?.infoMsg}}\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./my-filters.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","var escape = require(\"../../../../../node_modules/css-loader/lib/url/escape.js\");\nexports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.drop-down {\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 1px solid #C6D0F9;\\n border-radius: 2px;\\n min-width: 220px;\\n}\\n\\n.filter-select {\\n width: 100%;\\n outline: none;\\n border: none;\\n background-image: url(\" + escape(require(\"./../../../../../images/sample_tracking/dropdown.svg\")) + \");\\n appearance: none;\\n background-repeat: no-repeat, repeat;\\n background-position: right 1rem center;\\n height: 40px;\\n padding: 10px;\\n}\\n\\n.save-filters-info {\\n font-size: 12px;\\n color: #6C2FAC;\\n cursor: help;\\n}\\n\\n.filters-tooltip {\\n font: normal normal normal 10px/11px \\\"Source Sans Pro\\\";\\n letter-spacing: 0px;\\n background: #C6D0F9 0% 0% no-repeat padding-box;\\n box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.0784313725);\\n border-radius: 2px;\\n color: #231F20;\\n max-width: 180px;\\n}\\n\\n.filter-title {\\n color: #231F20;\\n font-weight: 800;\\n font-size: 13px;\\n margin-bottom: 0px;\\n}\\n\\n.filter-header {\\n display: flex;\\n position: relative;\\n}\\n\\n.menu-icon {\\n cursor: pointer;\\n right: 0;\\n position: absolute;\\n}\\n\\n.filter-menu {\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n display: flex;\\n position: absolute;\\n padding: 10px;\\n margin-top: 15px;\\n justify-content: flex-start;\\n flex-direction: column;\\n right: -70px;\\n z-index: 999;\\n box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.1607843137);\\n border-radius: 2px;\\n font-weight: 600;\\n font-size: 13px;\\n}\\n\\n.filter-menu .items {\\n cursor: pointer;\\n margin: 5px;\\n}\\n\\n.filter-menu .items:hover {\\n color: #3A5CE9;\\n}\\n\\n.filter-input {\\n align-items: flex-end;\\n margin-top: 10px;\\n}\\n\\n.filter-input input {\\n outline: none;\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 1px solid #C6D0F9;\\n border-radius: 2px;\\n min-height: 33px;\\n}\\n\\n.menu-close-button {\\n color: #F7758C;\\n cursor: pointer;\\n}\\n\\n.menu-close-button .material-icons {\\n font-size: 12px;\\n}\\n\\n.action-button button {\\n margin: 10px;\\n width: 60px;\\n border-radius: 5px;\\n color: white;\\n cursor: pointer;\\n border: none;\\n height: 28px;\\n}\\n\\n.action-button .active {\\n background: #3A5CE9 0% 0% no-repeat padding-box;\\n}\\n\\n.action-button .warn {\\n background: #DC1439 0% 0% no-repeat padding-box;\\n}\\n\\n.action-button .btn-disable {\\n background-color: #a0a0a0 !important;\\n pointer-events: none;\\n}\\n\\n.disable {\\n color: #a0a0a0 !important;\\n pointer-events: none;\\n}\\n\\n.warn-msg {\\n color: #DC1439;\\n}\\n\\nmdl-progress ::ng-deep {\\n height: 1px;\\n width: 92%;\\n left: 7px;\\n top: -1px;\\n}\\n\\nmdl-progress ::ng-deep div {\\n background-color: #3A5CE9 !important;\\n}\\n\\n.invalid {\\n border-color: #DC1439 !important;\\n}\\n\\n/* new ui changes */\\n\\n.my-select-wrapper {\\n position: relative;\\n padding-top: 5px;\\n}\\n\\n.title {\\n font: normal normal 600 12px/12px \\\"Source Sans Pro\\\";\\n margin-bottom: 5px;\\n font-size: 13px;\\n}\\n\\n.my-select-box {\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 1px solid #C6D0F9;\\n border-radius: 10px;\\n height: 40px;\\n display: flex;\\n min-width: 220px;\\n position: relative;\\n justify-content: space-between;\\n align-items: center;\\n}\\n\\n.my-select-box:hover {\\n border: 1px solid #3A5CE9;\\n}\\n\\n.selected-item {\\n background: #2998E3 0% 0% no-repeat padding-box;\\n border-radius: 2px;\\n height: 27px;\\n margin: 5px;\\n padding: 0 10px;\\n cursor: pointer;\\n border-radius: 10px;\\n}\\n\\n.new-item {\\n background: green 0% 0% no-repeat padding-box;\\n border-radius: 2px;\\n height: 27px;\\n margin: 5px;\\n padding: 0 10px;\\n cursor: pointer;\\n width: max-content;\\n}\\n\\n.selected-item-text {\\n font: normal normal 400 12px/9px Source Sans Pro;\\n color: #FFFFFF;\\n display: inline-flex;\\n height: 26px;\\n align-items: center;\\n}\\n\\n.selected-item-action {\\n font-size: 20px;\\n color: #3A5CE9;\\n cursor: pointer;\\n z-index: 1;\\n position: relative;\\n}\\n\\n.delete {\\n color: #DC1439;\\n}\\n\\n.select-menu {\\n display: none;\\n}\\n\\n.select-menu .search-box {\\n height: 25px;\\n border: none;\\n outline: none;\\n border-radius: 3px 3px 0 0;\\n border-bottom: 3px solid #6e82d8;\\n}\\n\\n.show-dropdown {\\n background: #f1f3fe;\\n border-radius: 3px;\\n display: flex;\\n position: absolute;\\n padding: 10px;\\n margin-top: 3px;\\n justify-content: flex-start;\\n flex-direction: column;\\n max-height: 250px;\\n overflow-y: auto;\\n border: 1px solid #aebdff;\\n width: max-content;\\n left: 0;\\n z-index: 1;\\n}\\n\\n.select-items {\\n padding: 3px;\\n display: flex;\\n align-items: center;\\n font-size: 15px;\\n cursor: pointer;\\n}\\n\\n.select-items label {\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n height: 18px;\\n}\\n\\n.select-items:hover {\\n background-color: #6e82d8;\\n border-radius: 3px;\\n}\\n\\n.select-items:hover label {\\n color: white;\\n}\\n\\n.select-selection {\\n background-color: white;\\n min-width: 170px;\\n display: flex;\\n height: 27px;\\n align-items: center;\\n cursor: pointer;\\n}\\n\\n.selected-action-button {\\n display: flex;\\n margin: 5px;\\n}\\n\\n.select-action-menu {\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n display: flex;\\n position: absolute;\\n padding: 10px;\\n margin-top: 15px;\\n justify-content: flex-start;\\n flex-direction: column;\\n right: -70px;\\n z-index: 999;\\n box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.1607843137);\\n border-radius: 2px;\\n font-weight: 600;\\n font-size: 13px;\\n}\\n\\n.select-action-menu .items {\\n cursor: pointer;\\n margin: 5px;\\n}\\n\\n.select-action-menu .items:hover {\\n color: #3A5CE9;\\n}\\n\\n.select-input {\\n align-items: flex-end;\\n margin-top: 10px;\\n}\\n\\n.select-input input {\\n outline: none;\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 1px solid #C6D0F9;\\n border-radius: 2px;\\n min-height: 33px;\\n}\\n\\n.default-select {\\n background-color: white !important;\\n min-width: 170px;\\n}\\n\\n.default-select .selected-item-text {\\n font: normal normal normal 14px/18px Source Sans Pro;\\n color: #B3B2B3 !important;\\n}\\n\\n.dropdown-icon {\\n width: 10px;\\n cursor: pointer;\\n}\\n\\n::-webkit-scrollbar {\\n width: 5px;\\n height: 14px;\\n}\\n\\n::-webkit-scrollbar-track {\\n background: #ffffff;\\n}\\n\\n::-webkit-scrollbar-thumb {\\n background: #C6D0F9;\\n}\\n\\n::-webkit-scrollbar-thumb:hover {\\n background: #3A5CE9;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"build/fonts/dropdown.svg\";","module.exports = \"
\\r\\n
\\r\\n
Schedule Options
\\r\\n
\\r\\n Schedule Pattern:\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Recur every\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n week(s) on:\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Report Start Time:\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n {{errorMessage}}\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n First\\r\\n
\\r\\n\\r\\n
\\r\\n {{selectedWeek?.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\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n Select a weekday\\r\\n
\\r\\n\\r\\n
\\r\\n {{selectedWeekday?.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\\r\\n\\r\\n
\\r\\n
\\r\\n close\\r\\n
\\r\\n
\\r\\n {{infoMessage.replace('_SELECTED_DAY_', this.monthlyData.dayNumber)}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n 0)\\\">\\r\\n Occurs every {{dailyData.isEveryWeekDay ? 'weekday' : dailyData.days + ' day(s)' }} effective\\r\\n {{effectiveDateString}}\\r\\n from\\r\\n {{startTime}}\\r\\n \\r\\n\\r\\n \\r\\n Occurs every {{weeklyData?.recureEvery}} week(s) on {{selectedWeekday?.name}}\\r\\n effective {{effectiveDateString}} from {{startTime}}\\r\\n \\r\\n\\r\\n \\r\\n Occurs day {{monthlyData?.dayNumber}} of every {{monthlyData?.dayMonth}}\\r\\n month(s) effective {{effectiveDateString}} from {{startTime}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n Occurs the {{selectedWeek?.name + ' ' + selectedWeekday?.name }} of every {{monthlyData?.weekMonths}} month(s)\\r\\n effective\\r\\n {{effectiveDateString}} from {{startTime}}\\r\\n \\r\\n\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./schedule-report.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.schedule-pattern {\\n font: normal normal 600 12px/12px \\\"Source Sans Pro\\\";\\n padding-bottom: 15px;\\n}\\n\\n.schedule-options {\\n background: #F1F3FE 0% 0% no-repeat padding-box;\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n}\\n\\n.schedule-options .title {\\n height: 20px;\\n font: normal normal bold 16px/12px \\\"Source Sans Pro\\\";\\n margin: 10px 0;\\n}\\n\\n.schedule-options .schedule {\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.schedule-options .schedule .sub-title {\\n font: normal normal 600 12px/9px \\\"Source Sans Pro\\\";\\n margin: 15px 0;\\n padding-left: 5px;\\n}\\n\\n.schedule-options .schedule .line {\\n border-top: 1px solid #c0cae5;\\n margin: 20px 0px;\\n margin-left: -20px;\\n}\\n\\n.schedule-options .schedule .schedule-type {\\n display: flex;\\n font: normal normal 600 12px/12px \\\"Source Sans Pro\\\";\\n}\\n\\n.radio input[type=radio] {\\n display: none;\\n}\\n\\n.radio span {\\n display: flex;\\n cursor: pointer;\\n align-items: center;\\n padding-right: 2rem;\\n}\\n\\n.radio input:checked + span:before {\\n box-shadow: inset 0 0 0 0.25em #3A5CE9;\\n}\\n\\n.radio span:before {\\n display: flex;\\n flex-shrink: 0;\\n content: \\\"\\\";\\n background-color: #fff;\\n width: 1em;\\n height: 1em;\\n border-radius: 50%;\\n margin-right: 0.5em;\\n transition: 0.25s ease;\\n box-shadow: inset 0 0 0 0.125em #c9c9c9;\\n}\\n\\n.action-buttons {\\n padding-bottom: 15px;\\n}\\n\\n.action-buttons .close {\\n border: 2px solid #DC1439;\\n border-radius: 19px;\\n font: normal normal 600 16px/12px \\\"Source Sans Pro\\\";\\n color: #DC1439;\\n margin-right: 15px;\\n}\\n\\n.action-buttons .save {\\n border: 2px solid #3A5CE9;\\n border-radius: 20px;\\n cursor: pointer;\\n background-color: #3A5CE9;\\n color: white;\\n font: normal normal 500 16px/12px \\\"Source Sans Pro\\\";\\n margin: 10px 5px;\\n}\\n\\n.action-buttons .save:hover {\\n background: #1A2188 0% 0% no-repeat padding-box;\\n border: 2px solid #3A5CE9;\\n}\\n\\n.action-buttons .save.disabled {\\n background-color: #8196ed;\\n border-color: #8196ed;\\n}\\n\\ninput[type=text] {\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 1px solid #C6D0F9;\\n border-radius: 3px;\\n height: 33px;\\n width: 100px;\\n outline: none;\\n text-align-last: center;\\n cursor: pointer;\\n}\\n\\n.has-value {\\n border: 1px solid #3A5CE9;\\n}\\n\\n.report-start-time {\\n margin-top: 10px;\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.report-start-time .time-input {\\n display: flex;\\n width: 145px;\\n position: relative;\\n}\\n\\n.report-start-time .time-input input[type=text] {\\n border-radius: 0;\\n border-right: none;\\n border-top-left-radius: 2px;\\n border-bottom-left-radius: 2px;\\n width: 104px;\\n}\\n\\n.report-start-time .time-input span {\\n height: 27px;\\n border: 0.047rem solid #C6D0F9;\\n position: absolute;\\n right: 40px;\\n top: 4px;\\n border-radius: 3px;\\n}\\n\\n.report-start-time .time-input img {\\n padding: 5px;\\n background: white;\\n border: 1px solid #C6D0F9;\\n border-top-right-radius: 2px;\\n border-bottom-right-radius: 2px;\\n border-left: 0;\\n height: 25px;\\n}\\n\\n.select-box {\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 1px solid #C6D0F9;\\n border-radius: 10px;\\n height: 33px;\\n display: flex;\\n min-width: 180px;\\n justify-content: space-between;\\n position: relative;\\n align-items: center;\\n margin-left: 10px;\\n cursor: pointer;\\n}\\n\\n.select-box .placeholder .placeholder-text {\\n font: normal normal normal 12px/9px Source Sans Pro;\\n color: #828081;\\n padding: 5px;\\n}\\n\\n.dropdown {\\n display: flex;\\n margin: 0 5px;\\n}\\n\\n.dropdown .icon {\\n margin-left: 8px;\\n cursor: pointer;\\n}\\n\\n.select-menu {\\n display: none;\\n cursor: auto;\\n}\\n\\n.select-items {\\n padding: 5px;\\n display: flex;\\n align-items: center;\\n font-size: 15px;\\n width: max-content;\\n}\\n\\n.select-items label {\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n height: 20px;\\n}\\n\\nlabel {\\n cursor: pointer;\\n}\\n\\n.is-active {\\n background: #f1f3fe;\\n border-radius: 3px;\\n display: flex;\\n position: absolute;\\n padding: 10px;\\n justify-content: flex-start;\\n flex-direction: column;\\n max-height: 250px;\\n overflow-y: auto;\\n border: 1px solid #aebdff;\\n width: max-content;\\n left: 0;\\n top: 35px;\\n z-index: 1;\\n}\\n\\n.selected-item {\\n background: #2998E3 0% 0% no-repeat padding-box;\\n border-radius: 2px;\\n height: 27px;\\n margin: 5px;\\n padding: 0 10px;\\n}\\n\\n.selected-item .selected-item-text {\\n font: normal normal 400 12px/9px Source Sans Pro;\\n color: #FFFFFF;\\n display: inline-flex;\\n height: 26px;\\n align-items: center;\\n}\\n\\n.select-items:hover {\\n background-color: #6e82d8;\\n border-radius: 3px;\\n}\\n\\n.daily {\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.daily .day-selection {\\n display: flex;\\n flex-direction: row;\\n align-items: center;\\n width: 355px;\\n}\\n\\n.daily .day-selection .every-day {\\n display: flex;\\n align-items: center;\\n}\\n\\n.daily .day-selection .every-day span {\\n padding-right: 0;\\n}\\n\\n.daily .day-selection .every-day input[type=text] {\\n margin: 0 10px;\\n width: 58px;\\n}\\n\\n.daily .day-selection .weekday {\\n margin-left: 70px;\\n}\\n\\n.weekly {\\n width: 400px;\\n}\\n\\n.weekly .week-selection {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n}\\n\\n.weekly .week-selection .recure-every {\\n display: flex;\\n align-items: center;\\n}\\n\\n.weekly .week-selection .recure-every input[type=text] {\\n margin: 0 10px;\\n width: 58px;\\n}\\n\\n.weekday-container {\\n display: flex;\\n align-items: center;\\n}\\n\\n.monthly {\\n width: 650px;\\n}\\n\\n.monthly .day-option {\\n display: flex;\\n align-items: center;\\n margin: 15px 0;\\n}\\n\\n.monthly .week-option {\\n display: flex;\\n align-items: center;\\n}\\n\\n.monthly .week-selection {\\n display: flex;\\n}\\n\\n.monthly .week-selection .select-box.week-date-input-box {\\n min-width: 100px;\\n}\\n\\n.monthly .select-box {\\n margin-right: 15px;\\n}\\n\\n.monthly .every-month input {\\n width: 55px;\\n margin: 0 10px;\\n}\\n\\n.week-date-input-box {\\n width: 55px !important;\\n margin: 0 10px;\\n}\\n\\n.select-box .week-date-input-box {\\n min-width: 60px;\\n}\\n\\n.week-option .radio span {\\n padding-right: 0px !important;\\n}\\n\\n.info-popup {\\n font: normal normal 600 12px/12px \\\"Source Sans Pro\\\";\\n background: #ffffff;\\n border-radius: 3px;\\n display: flex;\\n position: absolute;\\n padding: 10px;\\n max-height: 250px;\\n overflow-y: auto;\\n border: 1px solid #7088f1;\\n width: max-content;\\n margin: -200px 0px 0 240px;\\n z-index: 1;\\n align-items: center;\\n flex-direction: column;\\n pointer-events: all;\\n}\\n\\n.info-popup .info-msg {\\n margin-top: 15px;\\n word-spacing: 2px;\\n}\\n\\n.info-popup .action-buttons {\\n padding: 10px 0 0;\\n display: flex;\\n align-items: center;\\n}\\n\\n.info-popup .action-buttons .mdl-button {\\n height: 25px;\\n min-width: fit-content;\\n display: flex;\\n align-items: center;\\n}\\n\\n.info-popup .close-button {\\n top: 5px;\\n right: 5px;\\n position: absolute;\\n cursor: pointer;\\n}\\n\\n.info-popup .close-button .material-icons {\\n font-size: 15px;\\n color: red;\\n font-weight: 900;\\n}\\n\\n.disabled {\\n pointer-events: none;\\n color: rgba(0, 0, 0, 0.199);\\n}\\n\\n.error {\\n border: 1px solid red !important;\\n border-radius: 3px;\\n}\\n\\n.error-msg {\\n color: red;\\n font: normal normal 600 12px/15px \\\"Source Sans Pro\\\";\\n}\\n\\n.occurs-msg {\\n color: #3a5ce9;\\n font: normal normal 600 12px/15px \\\"Source Sans Pro\\\";\\n padding-bottom: 15px;\\n}\\n\\nngx-material-timepicker ::ng-deep .timepicker__header {\\n background-color: #3A5CE9;\\n}\\n\\nngx-material-timepicker ::ng-deep .clock-face__clock-hand {\\n background-color: #3A5CE9;\\n}\\n\\nngx-material-timepicker ::ng-deep .timepicker-button {\\n color: #3A5CE9;\\n}\\n\\nngx-material-timepicker ::ng-deep .clock-face__number > span.active {\\n background-color: #3A5CE9 !important;\\n}\\n\\nngx-material-timepicker ::ng-deep ngx-material-timepicker-dial ::ng-deep .timepicker-dial__hint {\\n display: none;\\n}\\n\\nngx-material-timepicker ::ng-deep ngx-material-timepicker-24-hours-face ::ng-deep ngx-material-timepicker-face ::ng-deep .clock-face__clock-hand:after {\\n width: 10px;\\n height: 10px;\\n bottom: -4px;\\n left: -4px;\\n}\\n\\nngx-material-timepicker ::ng-deep ngx-material-timepicker-minutes-face ::ng-deep ngx-material-timepicker-face ::ng-deep .clock-face__clock-hand:after {\\n width: 10px;\\n height: 10px;\\n bottom: -4px;\\n left: -4px;\\n}\\n\\nngx-material-timepicker ::ng-deep ngx-material-timepicker-minutes-face ::ng-deep ngx-material-timepicker-face ::ng-deep .clock-face__clock-hand:before {\\n border-color: #3A5CE9;\\n}\\n\\nngx-material-timepicker-toggle::ng-deep .ngx-material-timepicker-toggle {\\n padding: 0;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Filter options\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Clear Filters\\r\\n close\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Report Type:\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Date Range:\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./filter-options.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.report-filters {\\n background: #F1F3FE 0% 0% no-repeat padding-box;\\n padding: 10px;\\n}\\n\\n.report-filters .header {\\n display: flex;\\n justify-content: space-between;\\n}\\n\\n.report-filters .header .title {\\n font: normal normal bold 16px/12px \\\"Source Sans Pro\\\";\\n color: #3A5CE9;\\n}\\n\\n.report-filters .header .action {\\n font: normal normal bold 14px/12px \\\"Source Sans Pro\\\";\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n}\\n\\n.report-filters .header .action .material-icons {\\n font-weight: bold;\\n font-size: 18px;\\n margin-left: 3px;\\n}\\n\\n.report-filters .header .action .clear-btn {\\n color: #F7758C;\\n}\\n\\n.report-filters .header .action .clear-btn:hover {\\n color: #DC1439;\\n}\\n\\n.report-filters .header .action div {\\n display: flex;\\n align-items: center;\\n margin: 0 5px;\\n}\\n\\n.report-filters .disabled {\\n pointer-events: none;\\n color: rgb(165, 165, 165);\\n}\\n\\n.report-filters .sub-header {\\n font: normal normal bold 12px/9px \\\"Source Sans Pro\\\";\\n color: #231F20;\\n padding: 10px 0;\\n}\\n\\n.report-filters .report-type {\\n display: flex;\\n}\\n\\n.report-filters .report-type label input {\\n display: none;\\n}\\n\\n.report-filters .report-type label span {\\n display: flex;\\n cursor: pointer;\\n align-items: center;\\n padding-right: 5rem;\\n font: normal normal 600 12px/12px \\\"Source Sans Pro\\\";\\n}\\n\\n.report-filters .report-type label input:checked + span:before {\\n box-shadow: inset 0 0 0 0.25em #3A5CE9;\\n}\\n\\n.report-filters .report-type label span:before {\\n display: flex;\\n flex-shrink: 0;\\n content: \\\"\\\";\\n background-color: #fff;\\n width: 1em;\\n height: 1em;\\n border-radius: 50%;\\n margin-right: 0.5em;\\n transition: 0.25s ease;\\n box-shadow: inset 0 0 0 0.125em #c9c9c9;\\n}\\n\\n.select-container {\\n display: flex;\\n padding: 10px;\\n font: normal normal 600 12px/12px \\\"Source Sans Pro\\\";\\n justify-content: flex-start;\\n flex-direction: row;\\n flex-wrap: wrap;\\n}\\n\\ntimeframe-filter ::ng-deep .mdl-button {\\n height: 30px;\\n display: flex;\\n align-items: center;\\n}\\n\\n.add-condition {\\n color: #3A5CE9;\\n margin: 10px;\\n margin-left: unset;\\n}\\n\\n.add-condition .add-condition-button {\\n background: #F1F3FE !important;\\n border: none !important;\\n opacity: 1;\\n font-family: \\\"Source Sans Pro\\\";\\n justify-content: center;\\n color: #3A5CE9;\\n font-size: 15px;\\n cursor: pointer;\\n padding: unset;\\n font-weight: bold;\\n}\\n\\n.add-condition .material-icons {\\n font-size: 20px;\\n cursor: pointer;\\n}\\n\\n.add-condition .delete-icon {\\n height: 24px;\\n width: 24px;\\n}\\n\\n.add-condition span {\\n position: relative;\\n text-align: center;\\n top: -5px;\\n cursor: pointer;\\n font-size: 15px;\\n}\\n\\n.add-condition .delete-button-label {\\n top: 1px !important;\\n}\\n\\n.date-range .date-range-options {\\n margin: 15px 0 15px 0;\\n}\\n\\ntimeframe-filter::ng-deep .drop-show {\\n top: 40px !important;\\n right: 500px !important;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n

Email Preferences

\\r\\n
\\r\\n Sample Tracking Reports\\r\\n \\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./user-settings.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n:host {\\n position: relative;\\n display: flex;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.setting-header {\\n font: normal normal bold 16px/16px \\\"Source Sans Pro\\\";\\n}\\n\\n.setting-name {\\n font: normal normal normal 16px/16px \\\"Source Sans Pro\\\";\\n padding-right: 2em;\\n}\\n\\n.setting {\\n height: auto;\\n margin-bottom: 10em;\\n}\\n\\nsample-tracking-select::ng-deep .drop-toggle {\\n min-width: unset;\\n width: 120px;\\n border-radius: 10px;\\n}\\n\\nsample-tracking-select::ng-deep .drop-toggle:hover {\\n min-width: inherit;\\n border-radius: 10px;\\n}\\n\\nsample-tracking-select::ng-deep .drop-show {\\n width: max-content;\\n}\\n\\nsample-tracking-select::ng-deep .selected-item-list .selected-item {\\n border-radius: 10px;\\n}\\n\\nsample-tracking-select::ng-deep .selected-item-list .selected-item-text {\\n font-size: 15px !important;\\n padding: 5px 8px 5px 10px !important;\\n}\\n\\nsample-tracking-select::ng-deep .drop-show {\\n width: 110px !important;\\n border-radius: 10px !important;\\n}\\n\\nsample-tracking-select::ng-deep mdl-list mdl-list-item {\\n font-size: 14px !important;\\n}\\n\\nsample-tracking-select::ng-deep mdl-list mdl-list-item:hover {\\n border-radius: 10px;\\n}\\n\\nsample-tracking-select::ng-deep mdl-list mdl-list-item.is-active,\\nsample-tracking-select::ng-deep mdl-list mdl-list-item.is-active:hover {\\n background-color: #2998E3 !important;\\n color: white !important;\\n border-radius: 10px;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"\\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./shipment-grid.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","var escape = require(\"../../../../../node_modules/css-loader/lib/url/escape.js\");\nexports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\napp-tracking-grid::ng-deep .table-container {\\n min-width: 355px;\\n}\\n\\napp-tracking-grid::ng-deep .table-row {\\n background: #F1F3FE;\\n min-height: 3rem;\\n margin-bottom: 15px;\\n}\\n\\napp-tracking-grid::ng-deep .table-header {\\n background: #3A5CE9;\\n color: white;\\n}\\n\\napp-tracking-grid::ng-deep .table-data {\\n max-height: 75vh !important;\\n}\\n\\napp-tracking-grid::ng-deep .no-data span {\\n position: inherit !important;\\n}\\n\\napp-tracking-grid::ng-deep .link {\\n font-size: 0;\\n background-image: url(\" + escape(require(\"./../../../../../images/sample_tracking/trash-can.svg\")) + \");\\n background-repeat: no-repeat;\\n background-size: 20px;\\n background-position: center;\\n margin: 0 !important;\\n}\\n\\napp-tracking-grid::ng-deep .table-row:has(+ .children-row) {\\n border: none !important;\\n margin-bottom: 0;\\n}\\n\\napp-tracking-grid::ng-deep .children-row span:nth-child(1) {\\n background-image: none !important;\\n}\\n\\napp-tracking-grid::ng-deep .children-row .link {\\n visibility: hidden !important;\\n pointer-events: none !important;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n

{{isResumeShipment ? 'Resume Shipment' : 'Create a Shipment'}}

\\r\\n
\\r\\n
\\r\\n i\\r\\n
\\r\\n
\\r\\n Reminder: Please relabel substitute containers with extra barcode labels provided in kit.\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Shipping Details\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./shipment-form.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n:host {\\n position: relative;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\nform {\\n width: 100%;\\n}\\n\\n.sub-section {\\n width: 100%;\\n margin-top: 20px;\\n display: inline-flex;\\n}\\n\\n.column {\\n width: 50%;\\n float: left;\\n}\\n\\n.sub-header {\\n display: block;\\n margin-top: 4rem;\\n position: relative;\\n}\\n\\n.sub-header .field-name {\\n display: flex;\\n font-weight: bold;\\n font-size: 18px;\\n color: #1A2188;\\n}\\n\\n.group-title {\\n height: 20px;\\n font-weight: bold;\\n font-size: 24px;\\n color: #000000;\\n margin: 0;\\n}\\n\\n.create-shipment-container {\\n margin: 30px;\\n}\\n\\nshipment-form-field::ng-deep .form-section .field-name {\\n padding-left: 0px !important;\\n}\\n\\nshipment-form-field::ng-deep .form-section .form-field-container {\\n background-color: white !important;\\n border: 1px solid #303030 !important;\\n}\\n\\n.align-tooltip {\\n display: inline-flex;\\n}\\n\\n.tool-tip {\\n background-color: #6C2FAC;\\n border-color: #6C2FAC;\\n color: white;\\n display: flex;\\n width: 50px;\\n justify-content: center;\\n align-items: center;\\n position: relative;\\n text-align: center;\\n border-radius: 10px 0 0 10px;\\n height: 50px;\\n left: 2px;\\n cursor: pointer;\\n top: 7px;\\n}\\n\\n.tool-tip .tool-tip-icon {\\n display: flex;\\n font-weight: bold;\\n width: 25px;\\n justify-content: center;\\n align-items: center;\\n text-align: center;\\n background-color: white;\\n border-radius: 20px;\\n height: 25px;\\n color: #6C2FAC;\\n font-size: 15px;\\n}\\n\\n.tool-tip-text {\\n border: 1px solid #6C2FAC;\\n border-radius: 0 10px 10px 0;\\n justify-content: center;\\n display: flex;\\n text-align: center;\\n align-items: center;\\n position: relative;\\n left: 2px;\\n padding-right: 10px;\\n top: 7px;\\n height: 48px;\\n}\\n\\n.tool-tip-text span {\\n left: 5px;\\n position: relative;\\n margin: 1rem;\\n font-size: 17px;\\n}\\n\\n.form-header {\\n display: inline-flex;\\n align-items: center;\\n justify-content: space-between;\\n width: 93%;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n Scan Barcode\\r\\n
\\r\\n
\\r\\n close\\r\\n
\\r\\n
\\r\\n Position the barcode facing your camera in order to scan.
\\r\\n This window will automatically close when complete.\\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
\\r\\n
\\r\\n {{barcodeData || 'Scanning...'}}\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\nswitch camera\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./barcode-scanner.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.wrapper {\\n background: #ffffff !important;\\n border-radius: 10px !important;\\n display: flex;\\n position: absolute;\\n top: 20%;\\n border: 1px solid #aebdff;\\n z-index: 100;\\n left: 30%;\\n flex-direction: column;\\n}\\n\\n.header {\\n background: #2998E3 0% 0% no-repeat padding-box;\\n border-radius: 3px 3px 0px 0px;\\n opacity: 1;\\n text-align: center;\\n font-size: 16px;\\n padding: 5px;\\n color: white;\\n border-radius: 10px;\\n border-bottom-left-radius: unset;\\n border-bottom-right-radius: unset;\\n position: relative;\\n font-weight: bold;\\n}\\n\\nzxing-scanner::ng-deep video {\\n height: 250px;\\n width: 250px;\\n}\\n\\n.barcode-text {\\n font: normal normal 600 14px/12px \\\"Source Sans Pro\\\";\\n padding: 10px 25px 0 10px;\\n line-height: 18px;\\n}\\n\\n.barcode-data-actions {\\n display: flex;\\n flex-direction: column;\\n padding-bottom: 20px;\\n}\\n\\n.barcode-data-actions .scan-result {\\n font: normal normal 800 16px/12px \\\"Source Sans Pro\\\";\\n}\\n\\n.is-detected {\\n color: green;\\n padding-top: 10px;\\n}\\n\\n.action-buttons {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n\\n.action-buttons button {\\n display: flex;\\n align-items: center;\\n}\\n\\n.action-buttons .close {\\n border: 2px solid #DC1439;\\n border-radius: 19px;\\n font: normal normal 600 16px/12px \\\"Source Sans Pro\\\";\\n color: #DC1439;\\n}\\n\\n.action-buttons .save {\\n border: 2px solid #3A5CE9;\\n border-radius: 20px;\\n cursor: pointer;\\n background-color: #3A5CE9;\\n color: white;\\n font: normal normal 500 16px/12px \\\"Source Sans Pro\\\";\\n margin: 10px 5px;\\n padding: 15px;\\n}\\n\\n.action-buttons .save:hover {\\n background: #1A2188 0% 0% no-repeat padding-box;\\n border: 2px solid #3A5CE9;\\n}\\n\\n.close-icon {\\n position: absolute;\\n top: 3px;\\n right: 10px;\\n}\\n\\n.close-icon .material-icons {\\n color: white;\\n font-weight: 900;\\n cursor: pointer;\\n}\\n\\n.scanner {\\n padding: 15px;\\n display: flex;\\n justify-content: center;\\n flex-direction: column;\\n align-content: space-around;\\n flex-wrap: wrap;\\n}\\n\\n.switch-camera {\\n cursor: pointer;\\n display: flex;\\n flex-direction: row-reverse;\\n margin-top: 1vh;\\n}\\n\\n.switch-camera-tooltip {\\n background: #dee3fb !important;\\n color: #000000 !important;\\n border: 1px solid #F1F3FE;\\n border-radius: 5px;\\n height: 0px;\\n display: flex;\\n align-items: center;\\n justify-content: space-around;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n {{sequence}}\\r\\n {{label}} \\r\\n *\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n keyboard_arrow_down\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n 0\\\">\\r\\n \\r\\n {{item.value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n no items found\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{errorMsg}}\\r\\n
\\r\\n
\\r\\n {{customErrorMsg}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./form-field.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.form-section {\\n display: flex;\\n width: 100%;\\n padding-top: 25px;\\n align-items: center;\\n}\\n\\n.form-section .form-number {\\n padding: 10px;\\n background-color: #F1F3FE;\\n align-items: center;\\n border-radius: 50px;\\n display: flex;\\n height: 6px;\\n font-weight: bold;\\n color: #3A5CE9;\\n text-align: center;\\n justify-content: center;\\n}\\n\\n.form-section .hide {\\n opacity: 0;\\n}\\n\\n.form-section .field-name {\\n width: 160px;\\n display: flex;\\n align-items: center;\\n font-weight: bold;\\n font-size: 14px;\\n color: #000000;\\n padding-left: 15px;\\n}\\n\\n.form-section .form-field-container {\\n background: #F3F5FE 0% 0% no-repeat padding-box;\\n border: 1px solid #777777;\\n border-radius: 6px;\\n height: 30px;\\n font-family: \\\"Source Sans Pro\\\";\\n display: flex;\\n justify-content: center;\\n position: relative;\\n width: 300px;\\n}\\n\\n.form-section .form-field-container .group-name-textfield {\\n position: relative;\\n left: 15px;\\n width: 90%;\\n}\\n\\n.form-section .focus {\\n border: 1px solid #3A5CE9;\\n box-shadow: 0 0 5px 1px #08F;\\n}\\n\\n.form-section .form-field-container:hover {\\n box-shadow: 0 0 5px 1px #08F;\\n border: 1px solid #3A5CE9 !important;\\n}\\n\\n.form-section .mdl-textfield__input {\\n border: unset !important;\\n outline: unset !important;\\n font-family: \\\"Source Sans Pro\\\";\\n display: flex;\\n padding-left: 5px;\\n font-size: 14px;\\n justify-content: center;\\n text-align: center;\\n position: relative;\\n}\\n\\n.form-section .mdl-textfield__label {\\n color: #B3B2B3 !important;\\n outline: unset !important;\\n font-family: \\\"Source Sans Pro\\\";\\n background: unset !important;\\n bottom: 5px;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n top: unset;\\n}\\n\\n.value-entered .form-number {\\n background-color: #3A5CE9;\\n color: white;\\n}\\n\\n.value-entered .form-field-container {\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 1px solid #3A5CE9;\\n}\\n\\n.value-entered .field-name {\\n font-weight: bold;\\n color: black;\\n}\\n\\n.disable-field {\\n pointer-events: none !important;\\n}\\n\\n.disable-section {\\n opacity: 0.5;\\n pointer-events: none !important;\\n}\\n\\n.disable-section .form-number {\\n background-color: #F1F3FE;\\n color: #3A5CE9;\\n}\\n\\n.disable-section .field-name {\\n color: #777777;\\n}\\n\\n.input-container {\\n display: flex;\\n width: 100%;\\n position: relative;\\n}\\n\\n.error {\\n padding-bottom: 1.5rem;\\n}\\n\\n.error .form-field-container {\\n border: 1px solid #F7758C !important;\\n outline: 1px solid #F7758C;\\n box-shadow: 0 0 5px 1px #F7758C;\\n display: block;\\n}\\n\\n.error .form-field-container:hover {\\n box-shadow: 0px 3px 6px #F7758C;\\n border: 1px solid #F7758C !important;\\n}\\n\\n.error .input-container {\\n top: 5px;\\n}\\n\\n.error .form-number {\\n background-color: #F7758C;\\n color: white;\\n}\\n\\n.error-msg {\\n top: 10px;\\n position: relative;\\n display: flex;\\n width: auto;\\n height: auto;\\n color: #F7758C;\\n font-size: 14px;\\n}\\n\\n.sub-field-section {\\n padding-top: 10px;\\n}\\n\\n.sub-field-section .field-name {\\n font-weight: 500;\\n}\\n\\n.drop-down-button {\\n float: right;\\n align-items: center;\\n display: flex;\\n cursor: pointer;\\n margin-right: 5px;\\n}\\n\\n.drop-down-button .material-icons {\\n font-size: 18px;\\n color: #3A5CE9;\\n}\\n\\n.drop-show {\\n background: #F8F8F8 0% 0% no-repeat padding-box;\\n border-radius: 5px;\\n border: 1px solid #303030;\\n width: 100%;\\n display: grid;\\n top: 32px;\\n position: absolute;\\n z-index: 100;\\n margin-left: 1px;\\n max-height: 150px;\\n overflow-y: scroll;\\n}\\n\\n.drop-show .mdl-list {\\n display: block;\\n list-style: none;\\n font-family: \\\"Source Sans Pro\\\";\\n padding: unset;\\n width: 100%;\\n}\\n\\n.drop-show .mdl-list .mdl-list__item {\\n font-size: 13px;\\n justify-content: center;\\n border-bottom: 0.5px solid #303030;\\n font-weight: bold;\\n cursor: pointer;\\n}\\n\\n.drop-show .mdl-list mdl-list-item:last-child {\\n border-bottom: unset !important;\\n justify-content: center;\\n}\\n\\n::-webkit-scrollbar {\\n width: 5px;\\n height: 14px;\\n border-radius: 100px;\\n}\\n\\n::-webkit-scrollbar-track {\\n background: #ffffff;\\n border-radius: 20px;\\n}\\n\\n::-webkit-scrollbar-thumb {\\n background: #C6D0F9;\\n border-radius: 20px;\\n}\\n\\n/* Handle on hover */\\n\\n::-webkit-scrollbar-thumb:hover {\\n background: #3A5CE9;\\n}\\n\\n.radio-type {\\n display: flex;\\n align-items: center;\\n}\\n\\n.radio-type label input {\\n display: none;\\n}\\n\\n.radio-type label span {\\n display: flex;\\n cursor: pointer;\\n align-items: center;\\n padding-right: 5rem;\\n font: normal normal 600 14px/14px \\\"Source Sans Pro\\\";\\n}\\n\\n.radio-type label input:checked + span:before {\\n box-shadow: inset 0 0 0 0.25em #3A5CE9;\\n}\\n\\n.radio-type label span:before {\\n display: flex;\\n flex-shrink: 0;\\n content: \\\"\\\";\\n background-color: #fff;\\n width: 1em;\\n height: 1em;\\n border-radius: 50%;\\n margin-right: 0.5em;\\n transition: 0.25s ease;\\n box-shadow: inset 0 0 0 0.125em #c9c9c9;\\n}\\n\\napp-spinner ::ng-deep .mdl-spinner {\\n width: 12px;\\n height: 12px;\\n}\\n\\napp-spinner ::ng-deep .spinner-wrapper {\\n padding: 0px !important;\\n right: 18px;\\n position: relative;\\n display: flex;\\n}\\n\\n.loading {\\n width: 15px;\\n}\\n\\nmy-date-picker ::after ng-deep .mydpicon icon-mydpcalendar {\\n color: #3A5CE9;\\n}\\n\\n.align-date-pciker my-date-picker::ng-deep .selector {\\n right: 0px;\\n bottom: 2.2rem;\\n}\\n\\nmy-date-picker ::ng-deep .selbtngroup {\\n height: 28px !important;\\n right: 3px;\\n}\\n\\nmy-date-picker ::ng-deep .selectiongroup input {\\n display: flex;\\n justify-content: center;\\n text-align: center;\\n align-content: center;\\n height: 25px !important;\\n padding: 5px;\\n background: #F3F5FE;\\n border-radius: 10px;\\n font: \\\"Source Sans Pro\\\";\\n left: 2px;\\n top: 2px;\\n width: 85%;\\n}\\n\\nmy-date-picker ::ng-deep .mydp {\\n border: none !important;\\n top: 1px;\\n}\\n\\nmy-date-picker ::ng-deep .mydp .invaliddate {\\n background-color: #F1DEDE !important;\\n}\\n\\nmy-date-picker ::ng-deep .mydp .btnclear,\\nmy-date-picker ::ng-deep .mydp .btnpicker {\\n background: #f3f5fe;\\n}\\n\\nmy-date-picker ::ng-deep .mydp .selectiongroup {\\n border: none !important;\\n background-color: #f3f5fe;\\n border-radius: 24px;\\n}\\n\\nmy-date-picker ::ng-deep .mydp .mydpicon {\\n color: #3A5CE9;\\n font-size: 18px;\\n}\\n\\n.date-error .input-container {\\n top: -4px;\\n}\\n\\n.date-error .input-container my-date-picker {\\n top: 4px;\\n position: inherit;\\n}\\n\\n.section-tool-tip {\\n background: #F1F3FE !important;\\n color: #F7758C !important;\\n font-weight: bold;\\n}\\n\\n.hide-tool-tip {\\n display: none;\\n}\\n\\n.required {\\n color: #F7758C;\\n font-size: 18px !important;\\n padding-left: 6px;\\n font-weight: bold;\\n}\\n\\n.search-box {\\n height: 20px;\\n outline: none;\\n display: flex;\\n margin: 5px;\\n margin-bottom: unset;\\n text-align: center;\\n justify-content: center;\\n border-radius: 3px;\\n border: 2px solid #6e82d8;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n {{expandSection ? 'Hide Section' : 'Expand Section'}}\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./address-form-field.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.address-container {\\n display: flex;\\n}\\n\\n.add-container {\\n display: flex;\\n margin-top: 25px;\\n align-items: center;\\n}\\n\\n.add-container button {\\n border: none;\\n background-color: white;\\n font: normal normal bold 14px/9px Source Sans Pro;\\n color: #1A2188;\\n border-radius: 15px;\\n width: 25px;\\n height: 25px;\\n font-weight: bold;\\n cursor: pointer;\\n}\\n\\n.add-container button:disabled {\\n color: #99ABF3;\\n cursor: unset;\\n}\\n\\n.material-icons {\\n right: 5.5px;\\n position: relative;\\n}\\n\\n.section-tool-tip {\\n background: #F1F3FE !important;\\n color: #000000 !important;\\n}\\n\\nshipment-form-field::ng-deep .form-section .field-name {\\n padding-left: 0px !important;\\n}\\n\\nshipment-form-field::ng-deep .form-section .form-field-container {\\n background-color: white !important;\\n border: 1px solid #303030 !important;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n Container Bar Codes\\r\\n Enter or scan your containers\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n 0\\\">\\r\\n Add Container Bar Codes to proceed.\\r\\n \\r\\n \\r\\n Save your changes and resume later\\r\\n \\r\\n \\r\\n The Shipment is invalid. Check if all the required fields are filled and matching the criteria.\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n camera_alt\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n check\\r\\n
\\r\\n
\\r\\n {{sampleCount > 1 ? sampleCount + ' Samples' : sampleCount + ' Sample'}} added to Shipmentclose\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Samples in shipment will appear here\\r\\n
\\r\\n 0\\\">\\r\\n
\\r\\n Samples in Shipment: {{gridDetails?.data?.length ? gridDetails?.data?.length : '0'}} \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./container-barcode-handler.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","var escape = require(\"../../../../../node_modules/css-loader/lib/url/escape.js\");\nexports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n:host {\\n position: relative;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.field-container {\\n display: inline-flex;\\n justify-content: space-between;\\n width: 90%;\\n margin-top: 40px;\\n min-width: 700px;\\n}\\n\\n.sub-header {\\n display: block;\\n padding-top: 6px;\\n position: relative;\\n}\\n\\n.sub-header .field-name {\\n display: flex;\\n font-weight: bold;\\n font-size: 18px;\\n color: #1A2188;\\n}\\n\\n.sub-header .sub-field-name {\\n display: flex;\\n font-size: 16px;\\n color: #000000;\\n padding-top: 10px;\\n}\\n\\n.mdl-textfield__input {\\n border: unset !important;\\n outline: unset !important;\\n font-family: \\\"Source Sans Pro\\\";\\n display: flex;\\n padding-left: 2px;\\n font-size: 15px;\\n justify-content: left;\\n text-align: left;\\n position: relative;\\n}\\n\\n.mdl-textfield__label {\\n color: #B3B2B3 !important;\\n outline: unset !important;\\n font-family: \\\"Source Sans Pro\\\";\\n background: unset !important;\\n bottom: 11px;\\n display: flex;\\n font-size: 15px;\\n padding-left: 5px;\\n justify-content: left;\\n align-items: flex-start;\\n top: unset;\\n}\\n\\n.input-container {\\n display: flex;\\n min-width: 250px;\\n position: relative;\\n height: 25px;\\n padding: 10px;\\n padding-left: 5px;\\n margin: 10px;\\n margin-left: 0px;\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 1px solid #707070;\\n opacity: 1;\\n border-radius: 10px;\\n}\\n\\n.input-focus {\\n border: 1px solid #3A5CE9;\\n box-shadow: 0 0 5px 1px #08F;\\n}\\n\\n.input-container:hover {\\n box-shadow: 0 0 5px 1px #08F;\\n border: 1px solid #3A5CE9;\\n}\\n\\n.mdl-dialog__actions {\\n display: flex;\\n flex-wrap: wrap;\\n align-content: space-around;\\n justify-content: flex-end;\\n padding: 40px 0 10px 0;\\n left: 20px;\\n position: relative;\\n}\\n\\n.mdl-dialog__actions .save-action {\\n background: #3A5CE9 0% 0% no-repeat padding-box;\\n border-radius: 20px;\\n opacity: 1;\\n font-family: \\\"Source Sans Pro\\\";\\n justify-content: center;\\n font-size: 15px;\\n color: white;\\n font-weight: bold;\\n cursor: pointer;\\n background-color: #3A5CE9;\\n padding-right: 10px;\\n}\\n\\n.mdl-dialog__actions .save-action:hover {\\n background: #1A2188 0% 0% no-repeat padding-box;\\n background-color: #1A2188;\\n}\\n\\n.mdl-dialog__actions .save-action:disabled,\\n.mdl-dialog__actions button[disabled] {\\n background: #99ABF3 0% 0% no-repeat padding-box;\\n background-color: #99ABF3;\\n cursor: unset;\\n}\\n\\n.mdl-dialog__actions button {\\n display: flex;\\n align-items: center;\\n width: 135px;\\n}\\n\\n.mdl-dialog__actions .save-for-later {\\n border: unset !important;\\n color: #3A5CE9;\\n opacity: 1;\\n font-family: \\\"Source Sans Pro\\\";\\n justify-content: center;\\n font-weight: bold;\\n font-size: 16px;\\n cursor: pointer;\\n}\\n\\n.mdl-dialog__actions .save-for-later:hover {\\n opacity: 1;\\n cursor: pointer;\\n color: #1A2188 !important;\\n}\\n\\n.mdl-dialog__actions .save-for-later:disabled {\\n pointer-events: none;\\n color: darkgrey !important;\\n background: unset;\\n}\\n\\n.container-details-grid {\\n max-width: 1500px;\\n padding-top: 20px;\\n}\\n\\n.barcode-input-container {\\n display: inherit;\\n}\\n\\n.barcode-icon {\\n display: flex;\\n position: relative;\\n padding-top: 10px;\\n bottom: 5px;\\n align-items: center;\\n cursor: pointer;\\n}\\n\\n.disabled {\\n pointer-events: none;\\n}\\n\\n.disabled button {\\n background-color: #94a8fc;\\n}\\n\\napp-spinner ::ng-deep .mdl-spinner {\\n width: 10px;\\n height: 10px;\\n}\\n\\napp-spinner ::ng-deep .spinner-wrapper {\\n padding: 0px !important;\\n left: 10px;\\n position: relative;\\n display: flex;\\n}\\n\\napp-spinner ::ng-deep .mdl-spinner__layer-1,\\napp-spinner ::ng-deep .mdl-spinner__layer-2,\\napp-spinner ::ng-deep .mdl-spinner__layer-3,\\napp-spinner ::ng-deep .mdl-spinner__layer-4 {\\n border-color: #fff;\\n}\\n\\n.loading {\\n width: 10px !important;\\n}\\n\\n.save-loading {\\n width: 10px !important;\\n}\\n\\n.save-loading app-spinner ::ng-deep .mdl-spinner__layer-1,\\n.save-loading app-spinner ::ng-deep .mdl-spinner__layer-2,\\n.save-loading app-spinner ::ng-deep .mdl-spinner__layer-3,\\n.save-loading app-spinner ::ng-deep .mdl-spinner__layer-4 {\\n border-color: #1A2188;\\n}\\n\\n.barcode-loading {\\n width: 15px;\\n}\\n\\n.barcode-loading app-spinner ::ng-deep .spinner-wrapper {\\n padding: 0px !important;\\n left: 3px;\\n position: relative;\\n top: 5px;\\n font-size: 20px;\\n display: flex;\\n}\\n\\n.barcode-loading app-spinner ::ng-deep .mdl-spinner {\\n height: 15px;\\n width: 15px;\\n}\\n\\n.barcode-loading app-spinner ::ng-deep .mdl-spinner__layer-1,\\n.barcode-loading app-spinner ::ng-deep .mdl-spinner__layer-2,\\n.barcode-loading app-spinner ::ng-deep .mdl-spinner__layer-3,\\n.barcode-loading app-spinner ::ng-deep .mdl-spinner__layer-4 {\\n border-color: #2998E3;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .table-header {\\n background: #2998E3 !important;\\n color: white;\\n font-size: 14px;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .table-header div {\\n margin-left: 10px !important;\\n padding-right: 5px;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .table .table-data {\\n max-height: 40vh !important;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .table div:last-child {\\n justify-content: center;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .subValue {\\n max-width: 12rem !important;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .table-container {\\n min-height: unset !important;\\n max-width: 90%;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .table-row {\\n margin-bottom: unset !important;\\n font-size: 14px;\\n background: #F1F3FE;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .table-row .row-content:first-child {\\n display: grid;\\n font-weight: bold;\\n justify-content: flex-start;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .table-row span {\\n margin: 5px !important;\\n margin-left: 8px !important;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .children-row {\\n font-size: 12Px !important;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .children-row span {\\n opacity: 0;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .children-row span:first-child {\\n font-weight: normal !important;\\n opacity: 1 !important;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep span:has(.action) {\\n position: relative;\\n visibility: hidden;\\n font-size: 0;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .action {\\n visibility: visible;\\n margin: 0 !important;\\n margin: 6px !important;\\n margin-top: unset !important;\\n pointer-events: auto !important;\\n height: 18px !important;\\n cursor: pointer;\\n font-size: 0;\\n color: transparent;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .action.delete {\\n background-image: url(\" + escape(require(\"./../../../../../images/sample_tracking/report-delete.svg\")) + \");\\n background-repeat: no-repeat;\\n background-size: 18px;\\n background-position: center center;\\n}\\n\\nshipment-grid::ng-deep app-tracking-grid::ng-deep .action.helptext {\\n font-size: 12px;\\n background: unset;\\n color: black;\\n justify-content: center;\\n margin-bottom: unset !important;\\n text-align: center;\\n align-items: center;\\n}\\n\\n.container-barcode-header {\\n display: inline-flex;\\n justify-content: space-between;\\n max-width: 90%;\\n}\\n\\n.hide-actions shipment-grid::ng-deep app-tracking-grid::ng-deep .table .table-header div:last-child {\\n display: none;\\n}\\n\\n.hide-actions shipment-grid::ng-deep app-tracking-grid::ng-deep .table .table-row .row-content:last-child {\\n display: none;\\n}\\n\\n.grid {\\n display: grid;\\n grid-template-rows: 24px;\\n grid-gap: 5px 10px;\\n top: 30px;\\n position: relative;\\n background: white;\\n margin-bottom: 30px;\\n}\\n\\n.section-tool-tip {\\n background: #F1F3FE !important;\\n color: #000000 !important;\\n font-weight: bold;\\n font-size: 14px;\\n}\\n\\n.hide-tool-tip {\\n display: none;\\n}\\n\\n.empty-grid {\\n display: flex;\\n border: 2px solid #E8E8E8;\\n justify-content: center;\\n align-items: center;\\n height: 10rem;\\n font-size: 18px;\\n width: 90%;\\n background-color: #F8F8F8;\\n margin-top: 2rem;\\n border-radius: 10px;\\n}\\n\\n.submit-align-tooltip {\\n margin-top: 0.5rem;\\n margin-bottom: 1rem;\\n display: inline-flex;\\n width: 100%;\\n justify-content: flex-end;\\n}\\n\\n.submit-tool-tip {\\n background-color: #069D06;\\n border-color: #069D06;\\n color: white;\\n display: flex;\\n width: 40px;\\n justify-content: center;\\n align-items: center;\\n position: relative;\\n text-align: center;\\n border-radius: 10px 0 0 10px;\\n height: 40px;\\n left: 2px;\\n cursor: pointer;\\n top: 7px;\\n margin-top: -23px;\\n}\\n\\n.submit-tool-tip .tool-tip-icon {\\n display: flex;\\n font-weight: bold;\\n width: 20px;\\n justify-content: center;\\n align-items: center;\\n text-align: center;\\n background-color: white;\\n border-radius: 20px;\\n height: 20px;\\n color: #069D06;\\n}\\n\\n.submit-tool-tip .tool-tip-icon .material-icons {\\n font-size: 18px;\\n}\\n\\n.submit-tool-tip-text {\\n border: 1px solid #069D06;\\n border-radius: 0 10px 10px 0;\\n justify-content: center;\\n display: flex;\\n text-align: center;\\n align-items: center;\\n position: relative;\\n left: 2px;\\n padding-right: 10px;\\n top: 7px;\\n height: 38px;\\n margin-top: -23px;\\n}\\n\\n.submit-tool-tip-text span {\\n left: 5px;\\n position: relative;\\n margin: 1rem;\\n font-size: 17px;\\n}\\n\\n.submit-tool-tip-text mdl-icon {\\n cursor: pointer;\\n margin-left: 50px;\\n}\\n\\n.align-count {\\n margin-top: 40px;\\n}\\n\\nbarcode-scanner::ng-deep .wrapper {\\n left: unset !important;\\n margin-left: 300% !important;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n Available Samples to Add to Shipment\\r\\n {{displayList ? 'keyboard_arrow_up' : 'keyboard_arrow_down'}}\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n local_shipping\\r\\n Add Samples to Shipment\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Record Count: {{filteredData?.length ? filteredData.length : '0'}} \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../../node_modules/css-loader/index.js!../../../../../../node_modules/resolve-url-loader/index.js!../../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./registered-samples.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n:host {\\n position: relative;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.header {\\n margin-left: 5px;\\n font-size: 18px;\\n font-weight: bold;\\n color: #1A2188;\\n cursor: pointer;\\n}\\n\\n.header .material-icons {\\n top: 5px;\\n position: relative;\\n}\\n\\n.shipment-wrapper {\\n margin: 20px 30px 30px 0px;\\n background-color: white;\\n}\\n\\napp-tracking-grid::ng-deep .table-container {\\n min-width: 935px;\\n}\\n\\napp-tracking-grid::ng-deep .search-filter {\\n background-color: #E9E9E9 !important;\\n}\\n\\napp-tracking-grid::ng-deep .child-row {\\n border-bottom: unset !important;\\n box-shadow: unset !important;\\n}\\n\\napp-tracking-grid::ng-deep .align-child-row {\\n padding-left: 0px !important;\\n margin: unset;\\n}\\n\\napp-tracking-grid::ng-deep .indicator {\\n display: grid !important;\\n text-align: center;\\n}\\n\\napp-tracking-grid::ng-deep .Additional {\\n background-color: lightgrey !important;\\n color: black !important;\\n padding: 5px 8px !important;\\n margin-left: unset !important;\\n justify-content: center;\\n font-weight: bold;\\n border-radius: 7px;\\n}\\n\\napp-tracking-grid::ng-deep .alternateContainer {\\n background-color: #1A2188;\\n color: white;\\n padding: 5px 8px !important;\\n margin-left: unset !important;\\n font-weight: bold;\\n border-radius: 7px;\\n justify-content: center;\\n}\\n\\napp-tracking-grid::ng-deep .table-header {\\n font-size: 14px;\\n background: #2998E3 !important;\\n}\\n\\napp-tracking-grid::ng-deep .table-header div {\\n margin-left: 10px !important;\\n}\\n\\napp-tracking-grid::ng-deep .table-row {\\n background: #F1F3FE;\\n font-size: 14px;\\n}\\n\\napp-tracking-grid::ng-deep .table-row span {\\n margin: 0.9vh !important;\\n}\\n\\napp-tracking-grid::ng-deep .table-row .row-content:nth-child(6) {\\n display: grid;\\n}\\n\\napp-tracking-grid::ng-deep .subValue {\\n font-size: 14px !important;\\n padding-left: unset !important;\\n max-width: 7rem !important;\\n}\\n\\napp-tracking-grid::ng-deep .no-data span {\\n position: relative !important;\\n}\\n\\napp-tracking-grid::ng-deep .link {\\n font: normal normal bold 14px/9px \\\"Source Sans Pro\\\";\\n color: #1A2188 !important;\\n border-radius: 20px;\\n background: #FFFFFF !important;\\n justify-content: center;\\n margin: 4px !important;\\n}\\n\\napp-tracking-grid::ng-deep .active-search-filter {\\n width: auto !important;\\n}\\n\\napp-tracking-grid::ng-deep span:has(.action) {\\n position: relative;\\n visibility: hidden;\\n font-size: 0;\\n}\\n\\napp-tracking-grid::ng-deep .child-content:first-child {\\n width: 22rem !important;\\n}\\n\\n.tool-bar {\\n width: 95%;\\n max-width: 120rem;\\n display: inline-flex;\\n justify-content: space-between;\\n margin-bottom: 1rem;\\n margin-top: 1.5rem;\\n}\\n\\n.tool-bar .search-bar {\\n display: flex;\\n justify-content: flex-end;\\n}\\n\\n.tool-bar .grid-count {\\n padding: 5px 5px 12px 5px;\\n font-size: 15px;\\n display: inline-flex;\\n bottom: -15px;\\n position: relative;\\n}\\n\\nsearch-bar::ng-deep .search-container {\\n width: 15rem;\\n border: 1px solid #2998E3;\\n border-radius: unset;\\n}\\n\\nsearch-bar::ng-deep .search-container .search-icon {\\n filter: invert(0.5) !important;\\n}\\n\\nsearch-bar::ng-deep .search-container:hover {\\n border: 1px solid #3A5CE9;\\n padding: 1px;\\n}\\n\\nsearch-bar::ng-deep mdl-textfield ::ng-deep .mdl-textfield__input {\\n width: unset !important;\\n}\\n\\n.export-button {\\n background-color: #3A5CE9;\\n border-color: #3A5CE9;\\n color: white;\\n border-radius: 20px;\\n opacity: 1;\\n cursor: pointer;\\n font-size: 16px;\\n align-items: center;\\n font-family: \\\"Source Sans Pro\\\";\\n text-align: center;\\n margin-left: 10px;\\n display: flex;\\n}\\n\\n.export-button:disabled {\\n background: #99ABF3 0% 0% no-repeat padding-box;\\n background-color: #99ABF3;\\n pointer-events: none;\\n color: white;\\n}\\n\\n.export-button:hover {\\n background-color: #1A2188;\\n border-color: #1A2188;\\n}\\n\\n.active-list {\\n background: white;\\n border-radius: 10px;\\n display: flex;\\n position: absolute;\\n justify-content: center;\\n text-align: center;\\n flex-direction: row;\\n max-height: 250px;\\n overflow-y: auto;\\n border: 1px solid #3A5CE9;\\n z-index: 1;\\n top: 6.5rem;\\n width: 16rem;\\n padding: 7px 10px 5px 7px;\\n font-size: 16px;\\n cursor: pointer;\\n}\\n\\n.active-list .material-icons {\\n bottom: 2px;\\n right: 5px;\\n position: relative;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n \\r\\n \\r\\n\\r\\n
0\\\" class=\\\"search-input\\\">\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n clear\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n {{searchError}}\\r\\n\\r\\n {{searchControl?.errors?.validation}}\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./dashboard-search.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n.wrapper {\\n display: inline-flex;\\n height: 60px;\\n top: 3px;\\n position: relative;\\n margin-left: 20px;\\n}\\n\\n.search-input {\\n margin-left: 20px;\\n top: 3px;\\n position: relative;\\n display: inline-grid;\\n}\\n\\nsample-tracking-select::ng-deep .drop-toggle {\\n border: 1px solid #3A5CE9 !important;\\n border-radius: 50px !important;\\n width: 250px !important;\\n top: 3px;\\n position: relative;\\n}\\n\\nsample-tracking-select::ng-deep .drop-show {\\n margin-left: 15px !important;\\n}\\n\\nsample-tracking-select::ng-deep .drop-down-button {\\n padding-right: 10px !important;\\n padding-left: 15px !important;\\n margin-right: unset !important;\\n}\\n\\nsample-tracking-select::ng-deep .default-item-list .default-item {\\n background: unset !important;\\n width: 100% !important;\\n}\\n\\nsample-tracking-select::ng-deep .default-item-list .default-item-text {\\n justify-content: center;\\n width: 100% !important;\\n}\\n\\nsample-tracking-select::ng-deep .selected-item-list .selected-item {\\n background: unset !important;\\n width: 100% !important;\\n}\\n\\nsample-tracking-select::ng-deep .selected-item-list .selected-item-text {\\n color: black !important;\\n font-weight: bold !important;\\n justify-content: center;\\n width: 100% !important;\\n}\\n\\n.search-hint {\\n font: normal normal 600 10px/13px \\\"Source Sans Pro\\\";\\n color: #231F20;\\n margin-bottom: unset;\\n position: relative;\\n margin-left: 20px;\\n}\\n\\n.invalid {\\n border-color: red;\\n}\\n\\n.error {\\n color: red;\\n}\\n\\n.search-context-type {\\n margin-left: 15px;\\n}\\n\\nmdl-progress ::ng-deep {\\n height: 2px;\\n width: 90%;\\n left: 13px;\\n top: -10px;\\n}\\n\\nmdl-progress ::ng-deep div {\\n background-color: #2998E3 !important;\\n}\\n\\n.search-container {\\n width: 310px;\\n height: 38px;\\n display: flex;\\n background: #FFFFFF 0% 0% no-repeat padding-box;\\n border: 1px solid #3A5CE9;\\n border-radius: 50px;\\n padding: 1px;\\n}\\n\\n.search-container .search-icon {\\n filter: invert(3%) sepia(10%) saturate(1000000%) hue-rotate(235deg) brightness(100%) contrast(100%);\\n color: #3A5CE9;\\n margin: 7px;\\n cursor: pointer;\\n z-index: 100;\\n}\\n\\n.search-container:hover {\\n border: 2px solid #3A5CE9;\\n padding: 0px;\\n}\\n\\n.clear-quick-filter-icon {\\n cursor: pointer;\\n font-size: 16px;\\n font-weight: bold;\\n padding-right: 10px;\\n color: #3A5CE9 !important;\\n}\\n\\n.search-form-input {\\n font: normal normal normal 14px/18px \\\"Source Sans Pro\\\";\\n letter-spacing: 9px;\\n border: unset !important;\\n outline: unset !important;\\n width: 100%;\\n margin-right: 5px;\\n}\\n\\n.mdl-textfield__label {\\n color: #B3B2B3 !important;\\n outline: unset !important;\\n font-family: \\\"Source Sans Pro\\\";\\n background: unset !important;\\n left: 45px;\\n top: 12px;\\n width: auto;\\n height: fit-content;\\n}\\n\\n.disabled {\\n pointer-events: none !important;\\n background-color: #eaeaea !important;\\n cursor: none !important;\\n}\\n\\n.disabled .search-form-input {\\n background-color: #eaeaea !important;\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Investigator Portal - Sample Management\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/resolve-url-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sm-header.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\nnotification-bar {\\n margin-right: 8px;\\n}\\n\\n:host {\\n position: relative;\\n display: flex;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.mdl-button.mdl-flat {\\n color: #666;\\n background-color: #fff;\\n}\\n\\n.wrapper {\\n display: flex;\\n justify-content: center;\\n}\\n\\n.xip-logo-sizing {\\n width: 167px;\\n padding-top: 3px;\\n margin: 0px 15px 0px 15px;\\n}\\n\\n.home-button {\\n height: 50px;\\n max-width: 78px;\\n min-width: 0;\\n display: flex;\\n flex-direction: column;\\n padding: 4px 8px 0 8px;\\n white-space: normal;\\n align-items: center;\\n}\\n\\n.home-label {\\n font-size: 10px;\\n line-height: 10px;\\n}\\n\\n.header-link {\\n margin-right: unset;\\n display: flex;\\n align-items: center;\\n height: 50px;\\n}\\n\\n.app-title {\\n font-size: 20px;\\n color: black;\\n align-self: center;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.app-divider {\\n font-size: 23px;\\n padding-right: 5px;\\n align-self: center;\\n padding-bottom: 5px;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\r\\n Enter Accession number below to get started\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{header.displayText}}:\\r\\n \\r\\n {{\\r\\n header.isDate ? ((accessionDetails?.data[header.key] | date:'dd-MMM-y') || '----------'):\\r\\n header.isTime ? ((accessionDetails?.data[header.key] | date:'hh:mm a') || '----------'):\\r\\n (accessionDetails?.data[header.key] || '----------')\\r\\n }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Accession Number:
{{accessionData?.sampleRegistrationAccessionData[0]?.accessionNumber}}\\r\\n
\\r\\n
\"","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/resolve-url-loader/index.js!../../../../../node_modules/sass-loader/lib/loader.js??ref--6-3!./sample-details.component.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* TEXTFIELD */\\n\\n/* LIST */\\n\\n/* ========== Layout ========== */\\n\\n/* BUTTON */\\n\\n/* ANIMATION */\\n\\n/* Small control size */\\n\\n:host {\\n position: relative;\\n font-family: \\\"Source Sans Pro\\\";\\n}\\n\\n.data-wrapper {\\n border: 2px solid darkgray;\\n width: 80%;\\n margin-top: 30px;\\n margin-left: 10px;\\n border-radius: 20px;\\n height: 200px;\\n display: flex;\\n background: white;\\n justify-content: center;\\n align-items: center;\\n}\\n\\n.data-wrapper span {\\n font-size: 16px;\\n font-style: italic;\\n}\\n\\n.accession-info {\\n border: 2px solid darkgray;\\n width: 80%;\\n margin-top: 30px;\\n background: white;\\n font-size: 16px;\\n margin-left: 10px;\\n border-radius: 20px;\\n display: inline-flex;\\n justify-content: space-between;\\n}\\n\\n.accession-info div:nth-child(2) {\\n display: grid;\\n margin: 20px !important;\\n font-size: 17px;\\n}\\n\\n.accession-info div:nth-child(2) span {\\n position: relative;\\n top: -35px;\\n font-size: 20px;\\n font-weight: bold;\\n}\\n\\n.sample-container {\\n display: flex;\\n font: normal normal bold 16px/18px \\\"Source Sans Pro\\\";\\n flex-direction: column;\\n flex-wrap: wrap;\\n padding: 20px;\\n margin-right: 5px;\\n height: 130px;\\n}\\n\\n.sample-container div {\\n display: inherit;\\n flex-direction: column;\\n}\\n\\n.sample-container .property-value {\\n font-weight: 400;\\n}\\n\\n.sample-container .property-name {\\n width: 375px;\\n padding-bottom: 3px;\\n}\\n\\n.six-items {\\n height: 130px;\\n}\\n\\n.heading {\\n font: normal normal bold 16px/28px Source Sans Pro;\\n}\\n\\n.heading img {\\n height: 25px;\\n padding: 0 0 2px 0;\\n}\\n\\n\", \"\"]);\n\n// exports\n","import { Injectable } from '@angular/core';\r\nimport { ReplaySubject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class TimeoutWarningState {\r\n\r\n private millisesondsLeftSource = new ReplaySubject(1);\r\n\r\n public get millisecondsLeft() {\r\n return this.millisesondsLeftSource.asObservable();\r\n }\r\n\r\n public setMillisecondsLeft(milliseconds: number) {\r\n this.millisesondsLeftSource.next(milliseconds);\r\n }\r\n}","import { Component, Inject, ChangeDetectionStrategy } from '@angular/core';\r\nimport { TimeoutWarningState } from './timeout-warning-state';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'timeout-warning',\r\n template: require('./timeout-warning.component.html'),\r\n styles: [require('./timeout-warning.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TimeoutWarningComponent {\r\n\r\n public readonly millisecondsLeft: Observable;\r\n\r\n constructor(state: TimeoutWarningState) {\r\n this.millisecondsLeft = state.millisecondsLeft;\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { AuthenticationState, ExpirationSnapshot } from './authentication-state';\r\nimport { UrlBuilder } from '../core/url-builder/url-builder';\r\nimport { Idle, DEFAULT_INTERRUPTSOURCES } from '@ng-idle/core';\r\nimport { Keepalive } from '@ng-idle/keepalive';\r\nimport { Subscription } from 'rxjs';\r\nimport { map, distinctUntilChanged } from 'rxjs/operators';\r\nimport { Settings } from '../core/settings';\r\nimport { MdlDialogService, MdlDialogReference } from '@angular-mdl/core';\r\nimport { TimeoutWarningComponent } from './timeout-warning.component';\r\nimport { TimeoutWarningState } from './timeout-warning-state';\r\n\r\n@Injectable()\r\nexport class IdleUserMonitor {\r\n\r\n private monitoringInProgress = false;\r\n private expirationSubscription: Subscription;\r\n private tokenInfoSubscription: Subscription;\r\n\r\n private onIdleEndSubscription: Subscription;\r\n private onTimeoutSubscription: Subscription;\r\n private onTimeoutWarningSubscription: Subscription;\r\n\r\n private warningDialog: Promise | null = null;\r\n\r\n private timeoutWarningState: TimeoutWarningState = new TimeoutWarningState();\r\n\r\n constructor(\r\n private settings: Settings,\r\n private authenticationState: AuthenticationState,\r\n private urlBuilder: UrlBuilder,\r\n private idle: Idle,\r\n private keepalive: Keepalive,\r\n private dialogService: MdlDialogService\r\n ) {\r\n\r\n this.idle.setIdle(this.settings.inactivityPeriodSeconds);\r\n\r\n this.idle.setTimeout(this.settings.timeoutPeriodSeconds);\r\n\r\n this.idle.setInterrupts(DEFAULT_INTERRUPTSOURCES);\r\n\r\n this.keepalive.interval(this.settings.inactivityPeriodSeconds / 3);\r\n\r\n this.onIdleEndSubscription = this.idle.onIdleEnd.subscribe(this.onIdleEnd);\r\n this.onTimeoutWarningSubscription = this.idle.onTimeoutWarning.subscribe(this.onTimeoutWarning);\r\n this.onTimeoutSubscription = this.idle.onTimeout.subscribe(this.onTimeout);\r\n\r\n this.keepalive.onPing.subscribe(this.refreshSession);\r\n }\r\n\r\n public start() {\r\n if (this.monitoringInProgress) {\r\n throw new Error('Monitoring is already in progress');\r\n }\r\n\r\n this.monitoringInProgress = true;\r\n\r\n this.expirationSubscription = this.authenticationState\r\n .tokenExpiration\r\n .subscribe(this.checkExpirationStatus);\r\n\r\n this.authenticationState\r\n .authInfo\r\n .pipe(\r\n map(x => x.isAuthenticated),\r\n distinctUntilChanged()\r\n )\r\n .subscribe(this.handleAuthenticationStatusChange);\r\n }\r\n\r\n public async stop() { \r\n await this.hideWarningDialog();\r\n\r\n if (this.monitoringInProgress) {\r\n throw new Error('Monitoring was not started');\r\n }\r\n\r\n this.expirationSubscription.unsubscribe();\r\n this.tokenInfoSubscription.unsubscribe();\r\n\r\n this.monitoringInProgress = false;\r\n }\r\n\r\n public dispose() {\r\n if (this.monitoringInProgress) {\r\n this.stop();\r\n }\r\n\r\n this.onIdleEndSubscription.unsubscribe();\r\n this.onTimeoutSubscription.unsubscribe();\r\n this.onTimeoutWarningSubscription.unsubscribe();\r\n }\r\n\r\n private handleAuthenticationStatusChange = (x: boolean) => {\r\n if (x) {\r\n this.idle.watch();\r\n } else {\r\n this.idle.stop();\r\n }\r\n }\r\n\r\n private checkExpirationStatus = async (x: ExpirationSnapshot) => {\r\n if (x.isExpired) {\r\n console.debug('Token has expired, redireting to login page');\r\n await this.hideWarningDialog();\r\n this.urlBuilder.esa().login().reload({ saveReturnUrl: true });\r\n }\r\n }\r\n\r\n private onIdleEnd = async () => {\r\n console.debug('user is not idle anymore');\r\n await this.hideWarningDialog();\r\n }\r\n\r\n ///Show timeout notification\r\n private onTimeoutWarning = (secondsLeft: number) => {\r\n this.timeoutWarningState.setMillisecondsLeft(secondsLeft * 1000);\r\n if (!this.warningDialog) {\r\n this.warningDialog = this.dialogService.showCustomDialog({\r\n component: TimeoutWarningComponent,\r\n providers: [ { provide: TimeoutWarningState, useValue: this.timeoutWarningState } ]\r\n }).toPromise();\r\n }\r\n }\r\n\r\n ///Logout user without confirmation\r\n private onTimeout = async () => {\r\n console.debug('User timed out, logging out');\r\n await this.hideWarningDialog();\r\n this.urlBuilder.esa().logout().navigate({ saveReturnUrl: true });\r\n }\r\n\r\n private async hideWarningDialog() {\r\n if (this.warningDialog) {\r\n const dialogRef = await this.warningDialog;\r\n dialogRef.hide();\r\n this.warningDialog = null;\r\n }\r\n }\r\n\r\n private refreshSession = () => {\r\n console.debug('Refreshing user session');\r\n this.authenticationState.refresh();\r\n }\r\n}","import { Component, ViewEncapsulation, AfterViewInit } from '@angular/core';\r\nimport { IdleUserMonitor } from './authentication/idle-user-monitor';\r\n\r\n@Component({\r\n selector: 'application',\r\n template: require('./app.html'),\r\n styles: [require('../app.scss'), require('../grid.scss'), require('../cvd3.scss')],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AppComponent implements AfterViewInit {\r\n\r\n constructor(private idleUserMonitor: IdleUserMonitor) {\r\n }\r\n\r\n public ngAfterViewInit() {\r\n this.idleUserMonitor.start();\r\n }\r\n}","import { dataMember, required, typedArray } from 'santee-dcts';\r\nimport * as moment from 'moment';\r\nimport { deserializers } from '../../../core';\r\nimport { siteDisplayNameRenderer } from '../../../renderer/site-display-name-renderer';\r\n\r\nexport class AdminProtocolAccessReport {\r\n @dataMember()\r\n @required()\r\n public sponsorName: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public protocolName: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public zcProjectNumber: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public country: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public siteName: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public siteNum: string;\r\n\r\n @dataMember()\r\n @required()\r\n public userName: string;\r\n\r\n @dataMember()\r\n @required()\r\n public email: string;\r\n\r\n @dataMember()\r\n @required()\r\n public studyRole: string;\r\n\r\n @dataMember()\r\n @required()\r\n public blindingRole: string;\r\n\r\n @dataMember()\r\n @required()\r\n public activeFlag: string;\r\n\r\n @dataMember({ customDeserializer: deserializers.deserializeDate })\r\n @required()\r\n public accessGivenDate: moment.Moment;\r\n\r\n @dataMember({ customDeserializer: deserializers.deserializeDate })\r\n @required()\r\n public accountCreatedDate: moment.Moment;\r\n\r\n @dataMember({ customDeserializer: deserializers.deserializeDate })\r\n @required({ nullable: true })\r\n public accessRevokedDate: moment.Moment;\r\n\r\n @dataMember({ customDeserializer: deserializers.deserializeDate })\r\n @required({ nullable: true })\r\n public lastAccessDate: moment.Moment;\r\n\r\n public get siteDisplayName(): string {\r\n return siteDisplayNameRenderer({siteNumber: this.siteNum, investigatorFullName: this.siteName});\r\n }\r\n}\r\n\r\nexport class AdminProtocolAccessReportReadModel {\r\n @dataMember()\r\n @required()\r\n @typedArray(AdminProtocolAccessReport)\r\n public reports: AdminProtocolAccessReport[];\r\n}\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { deserialize } from 'santee-dcts';\r\nimport { Settings } from '../../../core';\r\nimport { AdminProtocolAccessReport, AdminProtocolAccessReportReadModel } from '../report-types/admin-activity-report-protocol-access';\r\nimport { defaultProtocolAccessesSort } from '../../../documents/models/default-report-sort';\r\nimport { Protocol } from '../../shared';\r\n\r\ninterface SearchValues {\r\n readonly email: object;\r\n readonly protocol: object;\r\n}\r\n\r\n@Injectable()\r\nexport class AdminProtocolAccessesStorage {\r\n constructor(\r\n private http: HttpClient,\r\n private settings: Settings\r\n ) { }\r\n\r\n public getReports(searchValues: SearchValues): Observable {\r\n\r\n let params = this.prepareSearchFieldsParams(searchValues);\r\n\r\n return this.http.get(`${this.settings.apiUrl}/admin/activity-reports/protocol-accesses`, { params: params })\r\n .pipe(\r\n map((reports) => {\r\n let protocolAccesses = deserialize(reports, AdminProtocolAccessReportReadModel).reports;\r\n protocolAccesses = protocolAccesses.sort((a, b) => defaultProtocolAccessesSort(a, b));\r\n return protocolAccesses;\r\n }),\r\n );\r\n }\r\n\r\n private prepareSearchFieldsParams(searchValues: SearchValues): HttpParams {\r\n let httpParams = new HttpParams();\r\n\r\n if (searchValues.email) {\r\n httpParams = httpParams.append('email', searchValues.email.toString());\r\n }\r\n\r\n if (searchValues.protocol) {\r\n httpParams = httpParams.append('protocol', (searchValues.protocol as Protocol).id.toString());\r\n }\r\n\r\n return httpParams;\r\n }\r\n}\r\n","import { FilterFieldDef } from './../covance-filter/covance-filter.models';\r\nimport { FilterFieldType } from '../covance-filter';\r\nimport { MandatoryFilter } from './mandatory-filter';\r\n\r\nexport const projectFilter: FilterFieldDef = {\r\n title: 'Project',\r\n queryParam: 'project',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.MultiSelect,\r\n leaveOnlySelectedItems: true,\r\n};\r\n\r\nexport const protocolFilter: FilterFieldDef = {\r\n title: 'Protocol',\r\n queryParam: 'protocol',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.MultiSelect,\r\n leaveOnlySelectedItems: true,\r\n};\r\n\r\nexport const protocolMasterFilter: FilterFieldDef = {\r\n title: 'Protocol',\r\n queryParam: MandatoryFilter.Protocol,\r\n isServerSideFilter: true,\r\n leaveOnlySelectedItems: true,\r\n type: FilterFieldType.External,\r\n};\r\n\r\nexport const siteFilter: FilterFieldDef = {\r\n title: 'Site',\r\n queryParam: 'site',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.MultiSelect\r\n};\r\n\r\nexport const ageFilter: FilterFieldDef = {\r\n title: 'eQuery Age',\r\n queryParam: 'age',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.Age\r\n};\r\n\r\nexport const statusFilter: FilterFieldDef = {\r\n title: 'Status',\r\n queryParam: 'status',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.MultiSelect\r\n};\r\n\r\nexport const unreadOnlyFilter: FilterFieldDef = {\r\n title: 'Unread Only?',\r\n queryParam: 'unreadOnly',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.Checkbox\r\n};\r\n\r\nexport const unrespondedOnlyFilter: FilterFieldDef = {\r\n title: 'Unresponded Only?',\r\n queryParam: 'unrespondedOnly',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.Checkbox\r\n};\r\n\r\nexport const dateFilter: FilterFieldDef = {\r\n title: 'Posted',\r\n queryParam: 'date',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.DateRange\r\n};\r\n\r\nexport const labReportTypeFilter: FilterFieldDef = {\r\n title: 'Type',\r\n queryParam: 'type',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.MultiSelect\r\n};\r\n\r\nexport const sponsorFilter: FilterFieldDef = {\r\n title: 'Sponsor',\r\n queryParam: MandatoryFilter.Sponsor,\r\n isServerSideFilter: true,\r\n leaveOnlySelectedItems: true,\r\n type: FilterFieldType.MultiSelect,\r\n};\r\n\r\nexport const sponsorMasterFilter: FilterFieldDef = {\r\n title: 'Sponsor',\r\n queryParam: MandatoryFilter.Sponsor,\r\n isServerSideFilter: true,\r\n leaveOnlySelectedItems: true,\r\n type: FilterFieldType.External,\r\n};\r\n\r\nexport const externalProtocolFilter: FilterFieldDef = {\r\n title: 'Protocol',\r\n queryParam: 'protocol',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.External,\r\n leaveOnlySelectedItems: true,\r\n};\r\n\r\nexport const subCategoryFilter: FilterFieldDef = {\r\n title: 'Subcategory',\r\n queryParam: 'subcategory',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.Select\r\n};\r\n\r\nexport const expirationDateFilter: FilterFieldDef = {\r\n title: 'Expiration Date Range',\r\n queryParam: 'expirationDate',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.DateRange,\r\n};\r\n\r\nexport const shippedDateFilter: FilterFieldDef = {\r\n title: 'Shipped Date Range',\r\n queryParam: 'date',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.DateRange,\r\n};\r\n\r\nexport const kitTypeFilter: FilterFieldDef = {\r\n title: 'Kit Type',\r\n queryParam: 'kitType',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.MultiSelect,\r\n};\r\n\r\nexport const documentTypeFilter: FilterFieldDef = {\r\n title: 'Document Type',\r\n queryParam: 'documentType',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.MultiSelect\r\n};\r\n\r\nexport const sentDateFilter: FilterFieldDef = {\r\n title: 'Sent Time',\r\n queryParam: 'sentDate',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.DateRange\r\n};\r\n","import { FilterFieldDef } from './../../../covance-filter/covance-filter.models';\r\nimport { Injectable } from '@angular/core';\r\nimport { FilterFieldValue } from '../../../covance-filter/covance-filter.models';\r\nimport { CategoryNaturalKey } from '../../../documents/models/category';\r\nimport { \r\n dateFilter, labReportTypeFilter, protocolFilter, siteFilter,\r\n sponsorFilter, subCategoryFilter, unreadOnlyFilter, externalProtocolFilter, unrespondedOnlyFilter, projectFilter, documentTypeFilter, sentDateFilter, ageFilter, statusFilter\r\n} from '../../../documents/document-filter-definitions';\r\nimport { FilterResolver } from '../../../documents/filter-resolver';\r\n\r\n\r\n@Injectable()\r\nexport class AdminActivityReportsFilterResolver implements FilterResolver {\r\n private filterTypesDictionary: { [key in CategoryNaturalKey]?: FilterFieldDef[] };\r\n\r\n constructor() {\r\n this.fillDataFiltersDictionary();\r\n }\r\n\r\n public resolveFilters(categoryKey: CategoryNaturalKey): FilterFieldValue[] {\r\n const filterDefs = this.filterTypesDictionary[categoryKey] || [];\r\n return filterDefs.map(f => ({def: f}));\r\n }\r\n\r\n public resolveEQueryFilters(): FilterFieldValue[] {\r\n return [\r\n externalProtocolFilter,\r\n siteFilter,\r\n sponsorFilter,\r\n unrespondedOnlyFilter,\r\n dateFilter,\r\n ].map(f => ({def: f}));\r\n }\r\n\r\n private fillDataFiltersDictionary() {\r\n\r\n const sponsorCommunicationsFilters = [\r\n sponsorFilter,\r\n dateFilter\r\n ];\r\n\r\n const labReportsFilters = [\r\n externalProtocolFilter,\r\n siteFilter,\r\n unreadOnlyFilter,\r\n labReportTypeFilter,\r\n dateFilter,\r\n ];\r\n\r\n const generalCommunicationsFilters = [\r\n dateFilter\r\n ];\r\n\r\n const siteCommunicationsFilters = [\r\n externalProtocolFilter,\r\n siteFilter,\r\n unreadOnlyFilter,\r\n dateFilter\r\n ];\r\n\r\n const siteActionsFilters = [\r\n externalProtocolFilter,\r\n siteFilter,\r\n unreadOnlyFilter,\r\n dateFilter\r\n ];\r\n\r\n const labManualsFilters = [\r\n externalProtocolFilter,\r\n siteFilter,\r\n unreadOnlyFilter,\r\n subCategoryFilter,\r\n dateFilter\r\n ];\r\n\r\n const trainingMaterialsFilters = [\r\n externalProtocolFilter,\r\n siteFilter,\r\n unreadOnlyFilter,\r\n subCategoryFilter,\r\n dateFilter,\r\n ];\r\n\r\n const resultAlertsFilters = [\r\n externalProtocolFilter,\r\n siteFilter,\r\n unreadOnlyFilter,\r\n dateFilter\r\n ];\r\n\r\n const eQueryFilters = [\r\n externalProtocolFilter,\r\n siteFilter,\r\n sponsorFilter,\r\n unrespondedOnlyFilter,\r\n dateFilter,\r\n ];\r\n\r\n const eQuerySummaryFilters = [\r\n ageFilter,\r\n statusFilter,\r\n ];\r\n\r\n const emailNotificationFilters = [\r\n protocolFilter,\r\n projectFilter,\r\n documentTypeFilter,\r\n sentDateFilter,\r\n ];\r\n\r\n this.filterTypesDictionary = {\r\n 'sponsor-communications': sponsorCommunicationsFilters,\r\n 'lab-manuals': labManualsFilters,\r\n 'lab-reports': labReportsFilters,\r\n 'general-communications': generalCommunicationsFilters,\r\n 'site-communications': siteCommunicationsFilters,\r\n 'site-actions': siteActionsFilters,\r\n 'training-materials': trainingMaterialsFilters,\r\n 'result-alerts': resultAlertsFilters,\r\n 'equery': eQueryFilters,\r\n 'equery-summary': eQuerySummaryFilters,\r\n 'email-notification': emailNotificationFilters\r\n };\r\n }\r\n}","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { merge, Observable, of, Subject } from 'rxjs';\r\nimport { map, switchMap, publishReplay, refCount, startWith } from 'rxjs/operators';\r\nimport { CovanceGridColumn } from '../../../covance-ag-grid';\r\nimport { zcProjectNumberColumn } from '../../../documents';\r\nimport { blindingRoleColumn, buildDateColumn, emailColumn, protocolNameColumn, sponsorNameColumn, studyRoleColumn, userNameColumn, countryColumn, getCompositeSiteColumn, activeSiteColumn } from '../../../shared';\r\nimport { SearchFieldsValues } from './admin-protocol-access-filter/admin-protocol-access-filter.component';\r\nimport { AdminProtocolAccessesStorage } from './admin-protocol-accesses-storage';\r\nimport { AdminProtocolAccessReport } from '../report-types/admin-activity-report-protocol-access';\r\nimport { FilterFieldValue, CovanceFilter } from '../../../covance-filter';\r\nimport { AdminActivityReportsFilterResolver } from '../documents/admin-activity-reports-filter-resolver';\r\n\r\n@Component({\r\n selector: 'admin-protocol-access-reports',\r\n template: require('./admin-protocol-access-reports.component.html'),\r\n styles: [require('./admin-protocol-access-reports.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AdminProtocolAccessReportComponent {\r\n public readonly protocolControl: FormControl;\r\n public readonly columnDefs: CovanceGridColumn[];\r\n public readonly reports$: Observable;\r\n public readonly filterGroup = 'protocol-access-report';\r\n public readonly filterFields$: Observable;\r\n private readonly searchFieldValues$ = new Subject();\r\n\r\n constructor(\r\n protocolAccessesStorage: AdminProtocolAccessesStorage,\r\n filterService: CovanceFilter,\r\n filterResolver: AdminActivityReportsFilterResolver,\r\n ) {\r\n this.protocolControl = new FormControl();\r\n const filterDefs = filterResolver.resolveEQueryFilters();\r\n\r\n this.columnDefs = this.getColumnDefs();\r\n\r\n const filterFields$ = this.searchFieldValues$.pipe(\r\n map(values => {\r\n filterService.setFiltersItems([], filterDefs);\r\n return { fields: filterDefs, values };\r\n }),\r\n publishReplay(1),\r\n refCount(),\r\n );\r\n\r\n this.filterFields$ = filterFields$.pipe(map(x => x.fields));\r\n\r\n const filterFlow$ = filterFields$\r\n .pipe(\r\n switchMap(({ fields, values }) => filterService.listen(fields).pipe(map(() => ({ fields, values })))),\r\n publishReplay(1),\r\n refCount()\r\n );\r\n\r\n this.reports$ = filterFlow$.pipe(\r\n switchMap(({ fields, values }) =>\r\n protocolAccessesStorage.getReports(values)\r\n ),\r\n publishReplay(1),\r\n refCount(),\r\n startWith([]),\r\n );\r\n }\r\n\r\n public onSearch(values: SearchFieldsValues) {\r\n if (!this.areSearchFieldsEmpty(values)) {\r\n this.searchFieldValues$.next(values);\r\n }\r\n }\r\n\r\n private getColumnDefs(): CovanceGridColumn[] {\r\n const columns: CovanceGridColumn[] = [\r\n sponsorNameColumn,\r\n protocolNameColumn,\r\n zcProjectNumberColumn,\r\n getCompositeSiteColumn('asc'),\r\n countryColumn,\r\n userNameColumn,\r\n emailColumn,\r\n studyRoleColumn,\r\n blindingRoleColumn,\r\n buildDateColumn('accountCreatedDate', 'Account Created Date', 'desc'),\r\n buildDateColumn('accessGivenDate', 'Access Given Date', 'desc'),\r\n buildDateColumn('accessRevokedDate', 'Access Revoked Date'),\r\n buildDateColumn('lastAccessDate', 'Last Login Date'),\r\n activeSiteColumn\r\n ];\r\n\r\n return columns;\r\n }\r\n\r\n private areSearchFieldsEmpty(values: SearchFieldsValues) {\r\n return !values.email\r\n && !values.protocol;\r\n }\r\n}\r\n","import { dataMember, required, typedArray } from 'santee-dcts';\r\n\r\nexport class Project {\r\n @dataMember()\r\n @required()\r\n public subProtocolId: number;\r\n\r\n @dataMember()\r\n @required()\r\n public zcProjectNumber: string;\r\n\r\n @dataMember()\r\n @required()\r\n public protocolNumber: string;\r\n\r\n @dataMember()\r\n @required()\r\n public sponsor: string;\r\n\r\n public toString() {\r\n return `${this.zcProjectNumber} - ${this.protocolNumber} - ${this.sponsor}`;\r\n }\r\n}\r\n\r\nexport class ProjectReadModel {\r\n @dataMember()\r\n @required()\r\n @typedArray(Project)\r\n public projects: Project[];\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map, publishLast, refCount } from 'rxjs/operators';\r\nimport { deserialize } from 'santee-dcts';\r\nimport { Settings } from '../../core';\r\nimport { Protocol, ProtocolsReadModel } from './protocol';\r\nimport { ActivityLogger } from '../../activities/activity-logger';\r\nimport { ProjectReadModel, Project } from './project';\r\n\r\n@Injectable()\r\nexport class AdminProtocolsStorage {\r\n private readonly protocols: Observable;\r\n\r\n constructor(\r\n private readonly http: HttpClient,\r\n private readonly settings: Settings,\r\n private readonly activityLogger: ActivityLogger,\r\n ) {\r\n this.protocols = this.loadAll()\r\n .pipe(\r\n publishLast(),\r\n refCount()\r\n );\r\n }\r\n\r\n public get all(): Observable {\r\n return this.protocols;\r\n }\r\n\r\n public search(searchTerm: string): Observable {\r\n return searchTerm\r\n ? this.http.get(`${this.settings.apiUrl}/admin/protocols`, { params: { searchTerm } })\r\n .pipe(map(protocols => deserialize(protocols, ProtocolsReadModel).protocols))\r\n : of([]);\r\n }\r\n\r\n public searchById(protocolId: string): Observable {\r\n if (!protocolId) {\r\n return of([]);\r\n }\r\n\r\n return this.http.get(`${this.settings.apiUrl}/admin/protocols/${protocolId}`)\r\n .pipe(map(protocol => [deserialize(protocol, Protocol)]));\r\n }\r\n\r\n public updateAccessibility(protocolId: number, isAccessible: boolean): Observable {\r\n this.activityLogger.logActivity('Change Protocol Access');\r\n\r\n return this.http.patch(`${this.settings.apiUrl}/admin/protocols/${protocolId}`, { isAccessible } );\r\n }\r\n\r\n public getProtocolProjects(protocolId: number): Observable {\r\n return this.http.get(`${this.settings.apiUrl}/admin/protocols/${protocolId}/projects`)\r\n .pipe(map(projects => deserialize(projects, ProjectReadModel).projects));\r\n }\r\n\r\n private loadAll(): Observable {\r\n return this.http.get(`${this.settings.apiUrl}/admin/protocols`)\r\n .pipe(map(rawData => deserialize(rawData, ProtocolsReadModel).protocols));\r\n }\r\n}","import { InjectionToken } from '@angular/core';\r\nimport { Category } from '.';\r\nimport { FilterFieldValue } from '../covance-filter';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport interface DocumentsStorage {\r\n loadDocumentsByCategory(category: Category, filterParameters: FilterFieldValue[]): Observable;\r\n}\r\n\r\nexport const DOCUMENTS_STORAGE = new InjectionToken('DocumentsLoaderForFilteredGrid');\r\n","import { InjectionToken } from '@angular/core';\r\nimport { Category } from '.';\r\nimport { Observable } from 'rxjs';\r\nimport { DocumentFilterItem } from './document-filter-item';\r\n\r\nexport interface FilterItemsLoader {\r\n loadFilterItemsByCategory(category: Category, sponsorIdFilter: Observable): Observable;\r\n}\r\n\r\nexport const FILTER_ITEM_LOADER = new InjectionToken('FilterItemsLoaderForFilteredGrid');\r\n","import { ActivityReport } from '../../../shared/activity-report/activity-report';\r\nimport { dataMember, required } from 'santee-dcts';\r\nimport { deserializers } from '../../../core';\r\nimport { Moment } from 'moment';\r\nimport { siteDisplayNameRenderer } from '../../../renderer/site-display-name-renderer';\r\n\r\nexport class AdminLabReportActivityReport extends ActivityReport {\r\n @dataMember()\r\n @required()\r\n public reportId: string;\r\n\r\n @dataMember()\r\n @required()\r\n public sponsorName: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true})\r\n public protocolName: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public zcProjectNumber: string;\r\n\r\n @dataMember()\r\n @required()\r\n public siteName: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public siteNum: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public country: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public visit: string;\r\n\r\n @dataMember({ customDeserializer: deserializers.deserializeDate })\r\n @required({ nullable: true })\r\n public visitCollectionDate: Moment;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public accessionNumber: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public subjectNumber: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public subjectInitials: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public screeningNumber: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public zcSubjectId: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public type: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public userName: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public email: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public blindingRole: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public studyRole: string;\r\n\r\n public get siteDisplayName(): string {\r\n return siteDisplayNameRenderer({siteNumber: this.siteNum, investigatorFullName: this.siteName});\r\n }\r\n}\r\n","import { ActivityReport } from '../../../shared';\r\nimport { dataMember, required } from 'santee-dcts';\r\nimport { deserializers } from '../../../core';\r\nimport { Moment } from 'moment';\r\nimport { CategoryNaturalKey } from '../../../documents/models/category';\r\nimport { siteDisplayNameRenderer } from '../../../renderer/site-display-name-renderer';\r\n\r\nexport class AdminLabManualActivityReport extends ActivityReport {\r\n @dataMember()\r\n @required()\r\n public reportId: number;\r\n\r\n @dataMember()\r\n @required()\r\n public subcategoryTitle: string;\r\n\r\n @dataMember()\r\n @required()\r\n public subcategoryId: CategoryNaturalKey;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public region: string;\r\n\r\n @dataMember()\r\n @required()\r\n public sponsorName: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public protocolName: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public zcProjectNumber: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public siteName: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public siteNum: string;\r\n\r\n @dataMember({ customDeserializer: deserializers.deserializeDate })\r\n @required({ nullable: true })\r\n public versionDate: Moment;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public version: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public title: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public userName: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public email: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public blindingRole: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public studyRole: string;\r\n\r\n public get siteDisplayName(): string {\r\n return siteDisplayNameRenderer({siteNumber: this.siteNum, investigatorFullName: this.siteName});\r\n }\r\n}\r\n","import { dataMember, required } from 'santee-dcts';\r\nimport { ActivityReport } from '../../../shared';\r\nimport { siteDisplayNameRenderer } from '../../../renderer/site-display-name-renderer';\r\n\r\nexport class AdminSiteCommunicationActivityReport extends ActivityReport {\r\n @dataMember()\r\n @required()\r\n public reportId: number;\r\n\r\n @dataMember()\r\n @required()\r\n public sponsorName: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true})\r\n public protocolName: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public zcProjectNumber: string;\r\n\r\n @dataMember()\r\n @required()\r\n public siteName: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public siteNum: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public country: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public title: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public letterNumber: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public userName: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public email: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public blindingRole: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public studyRole: string;\r\n\r\n public get siteDisplayName(): string {\r\n return siteDisplayNameRenderer({siteNumber: this.siteNum, investigatorFullName: this.siteName});\r\n }\r\n}\r\n","import { ActivityReport } from '../../../shared';\r\nimport { dataMember, required } from 'santee-dcts';\r\nimport { deserializers } from '../../../core';\r\nimport { Moment } from 'moment';\r\nimport { siteDisplayNameRenderer } from '../../../renderer/site-display-name-renderer';\r\n\r\nexport class AdminSiteActionActivityReport extends ActivityReport {\r\n @dataMember()\r\n @required()\r\n public reportId: number;\r\n\r\n @dataMember()\r\n @required()\r\n public sponsorName: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true})\r\n public protocolName: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public zcProjectNumber: string;\r\n\r\n @dataMember()\r\n @required()\r\n public siteName: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public siteNum: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public country: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public visit: string;\r\n\r\n @dataMember({ customDeserializer: deserializers.deserializeDate })\r\n @required({ nullable: true })\r\n public visitCollectionDate: Moment;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public accessionNumber: string;\r\n \r\n @dataMember()\r\n @required({ nullable: true })\r\n public subjectNumber: string;\r\n \r\n @dataMember()\r\n @required({ nullable: true })\r\n public subjectInitials: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public screeningNumber: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public zcSubjectId: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public title: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public userName: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public email: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public blindingRole: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public studyRole: string;\r\n\r\n public get siteDisplayName(): string {\r\n return siteDisplayNameRenderer({siteNumber: this.siteNum, investigatorFullName: this.siteName});\r\n }\r\n}\r\n","import { ActivityReport } from '../../../shared';\r\nimport { dataMember, required } from 'santee-dcts';\r\nimport { deserializers } from '../../../core';\r\nimport { Moment } from 'moment';\r\n\r\nexport class AdminTrainingMaterialActivityReport extends ActivityReport {\r\n @dataMember()\r\n @required()\r\n public reportId: number;\r\n\r\n @dataMember()\r\n @required()\r\n public subcategoryTitle: string;\r\n\r\n @dataMember()\r\n @required()\r\n public sponsorName: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public protocolName: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public siteName: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public siteNum: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public country: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public title: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public userName: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public email: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public blindingRole: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public studyRole: string;\r\n}","import { dataMember, required, typedArray } from 'santee-dcts';\r\nimport { deserializers } from '../../../core';\r\nimport { ActivityReport, Distance } from '../../../shared';\r\nimport * as moment from 'moment';\r\nimport { EQueryStatus } from '../../../e-queries/models/e-query-status';\r\nimport { siteDisplayNameRenderer } from '../../../renderer/site-display-name-renderer';\r\n\r\nexport class ActivityReportEQuery extends ActivityReport {\r\n @required()\r\n @dataMember()\r\n public eQueryId: number;\r\n\r\n @required({ nullable: true })\r\n @dataMember() \r\n public sponsorName: string;\r\n\r\n @required({ nullable: true })\r\n @dataMember() \r\n public protocolName: string;\r\n\r\n @required({ nullable: true })\r\n @dataMember() \r\n public zcProjectNumber: string;\r\n\r\n @required({ nullable: true })\r\n @dataMember() \r\n public siteName: string;\r\n\r\n @required({ nullable: true })\r\n @dataMember() \r\n public siteNum: string;\r\n\r\n @required({ nullable: true })\r\n @dataMember() \r\n public country: string;\r\n\r\n @required({ nullable: true })\r\n @dataMember() \r\n public visit: string;\r\n\r\n @required({ nullable: true })\r\n @dataMember({ customDeserializer: deserializers.deserializeDate })\r\n public visitCollectionDate: moment.Moment;\r\n\r\n @required({ nullable: true })\r\n @dataMember() \r\n public accessionNumber: string;\r\n\r\n @required({ nullable: true })\r\n @dataMember() \r\n public zcSubjectId: string;\r\n\r\n @required({ nullable: true })\r\n @dataMember() \r\n public subjectNumber: string;\r\n\r\n @required({ nullable: true })\r\n @dataMember() \r\n public subjectInitials: string;\r\n\r\n @required()\r\n @dataMember()\r\n public eQueryAge: Distance;\r\n\r\n @required({ nullable: true })\r\n @dataMember()\r\n public responseAge: Distance;\r\n\r\n @required()\r\n @dataMember()\r\n public status: EQueryStatus;\r\n\r\n @required()\r\n @dataMember({ customDeserializer: deserializers.deserializeDate })\r\n public createDate: moment.Moment;\r\n\r\n @required({ nullable: true })\r\n @dataMember({ customDeserializer: deserializers.deserializeDate })\r\n public responseDate: moment.Moment;\r\n\r\n @required({ nullable: true })\r\n @dataMember() \r\n public userName: string;\r\n\r\n @required({ nullable: true })\r\n @dataMember() \r\n public studyRole: string;\r\n\r\n @required({ nullable: true })\r\n @dataMember() \r\n public email: string;\r\n\r\n @required()\r\n @dataMember()\r\n public issueTypes: string;\r\n\r\n public get siteDisplayName(): string {\r\n return siteDisplayNameRenderer({siteNumber: this.siteNum, investigatorFullName: this.siteName});\r\n }\r\n}\r\n\r\nexport class ActivityReportEQueriesReadModel {\r\n @dataMember()\r\n @required()\r\n @typedArray(ActivityReportEQuery)\r\n public activityReports: ActivityReportEQuery[];\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { deserialize, deserializeArray } from 'santee-dcts';\r\nimport { Settings } from '../../../core/settings';\r\nimport { Category, defaultReportSort } from '../../../documents';\r\nimport { DocumentsStorage } from '../../../documents/documents-storage';\r\nimport { prepareFilterUrlParams } from '../../../documents/prepare-filter-url-params';\r\nimport { FilterFieldValue } from '../../../covance-filter/covance-filter.models';\r\nimport { ActivityReport, ActivityReportsReadModel } from '../../../shared';\r\nimport { getAdminActivityReportType } from '../report-types/admin-activity-report-type-resolver';\r\n\r\n@Injectable()\r\nexport class AdminActivityReportDocumentsStorage implements DocumentsStorage {\r\n private readonly apiPath = 'admin/activity-reports/documents';\r\n\r\n constructor(\r\n private readonly http: HttpClient,\r\n private readonly settings: Settings\r\n ) {}\r\n\r\n public loadDocumentsByCategory(category: Category, filterParameters: FilterFieldValue[]): Observable {\r\n\r\n const filtersParams = prepareFilterUrlParams(filterParameters)\r\n .append('requestLimit', this.settings.sqlRequestLimitForActivityReports.toString());\r\n\r\n return this.http.get(`${this.settings.apiUrl}/${this.apiPath}/${category.categoryId}`, {params: filtersParams})\r\n .pipe(\r\n map(rawData => this.getActivityReportsForCategory(rawData, category))\r\n );\r\n }\r\n\r\n private getActivityReportsForCategory(response: Object, category: Category) {\r\n const readModel = deserialize(response, ActivityReportsReadModel);\r\n\r\n const reportType = getAdminActivityReportType(category.categoryId);\r\n let reports = deserializeArray(readModel.activityReports, reportType) as ActivityReport[];\r\n\r\n reports = reports.sort((a, b) => defaultReportSort(a, b));\r\n\r\n return reports;\r\n }\r\n}\r\n","import { AdminLabReportActivityReport } from './admin-lab-report-activity-report';\r\nimport { ActivityReport } from './../../../shared/activity-report/activity-report';\r\n\r\nimport { CategoryNaturalKey } from '../../../documents';\r\nimport { AdminLabManualActivityReport } from './admin-lab-manual-activity-report';\r\nimport { AdminSiteCommunicationActivityReport } from './admin-site-communication-activity-report';\r\nimport { AdminSiteActionActivityReport } from './admin-site-action-activity-report';\r\nimport { AdminTrainingMaterialActivityReport } from './admin-training-material-activity-report';\r\nimport { ActivityReportEQuery } from './activity-report-e-query';\r\n\r\nexport function getAdminActivityReportType(categoryId: CategoryNaturalKey): typeof ActivityReport {\r\n switch (categoryId) {\r\n case 'lab-manuals':\r\n return AdminLabManualActivityReport;\r\n\r\n case 'result-alerts':\r\n case 'lab-reports':\r\n return AdminLabReportActivityReport;\r\n\r\n case 'site-communications':\r\n return AdminSiteCommunicationActivityReport;\r\n\r\n case 'site-actions':\r\n return AdminSiteActionActivityReport;\r\n\r\n case 'training-materials':\r\n return AdminTrainingMaterialActivityReport;\r\n\r\n case 'equery':\r\n return ActivityReportEQuery;\r\n\r\n default:\r\n throw new Error('Unknown activity report category');\r\n }\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map, switchMap } from 'rxjs/operators';\r\nimport { deserialize } from 'santee-dcts';\r\nimport { Settings } from '../../../core/settings';\r\nimport { Category } from '../../../documents';\r\nimport { DocumentFilterItem, DocumentFilterItemReadModel } from '../../../documents/document-filter-item';\r\nimport { FilterItemsLoader } from '../../../documents/filter-items-loader';\r\n\r\n@Injectable()\r\nexport class AdminActivityReportFilterItemsStorage implements FilterItemsLoader {\r\n private readonly apiPath = 'admin/activity-reports-filter-items';\r\n\r\n constructor(\r\n private readonly http: HttpClient,\r\n private readonly settings: Settings\r\n ) { }\r\n\r\n public loadFilterItemsByCategory(category: Category, protocolId$: Observable): Observable {\r\n return protocolId$\r\n .pipe(\r\n switchMap((protocolId) => this.http.get(`${this.settings.apiUrl}/${this.apiPath}/${category.categoryId}${protocolId ? `?protocolId=${protocolId}` : ''}`)),\r\n map((r) => deserialize(r, DocumentFilterItemReadModel).documentFilterItems)\r\n );\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ColDef } from 'ag-grid-community';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { Category, CategoryNaturalKey } from '../../../documents/models/category';\r\nimport { reportTypeColumn, regionColumn, postedColumn, titleColumn, letterNumberColumn, zcProjectNumberColumn } from '../../../documents/documents-columns/documents-columns';\r\nimport {\r\n blindingRoleColumn, countryColumn, emailColumn,\r\n protocolNameColumn, sponsorNameColumn, studyRoleColumn,\r\n subcategoryTitleColumn, userNameColumn, subjectNumberAndInitialsColumn,\r\n timeBetweenReadAndPosted, accessionNumberColumns, getActivityReportsVersionColumn,\r\n readDateTimeColumn, visitColumn, visitCollectionDateColumn, eQueryIdColumn, createDateColumn, responseDateColumn, issueTypesColumn, statusColumn, responseAgeColumn, getCompositeSiteColumn\r\n} from '../../../shared/activity-report/activity-reports-columns';\r\nimport { AdminLabManualActivityReport } from '../report-types/admin-lab-manual-activity-report';\r\n\r\n@Injectable()\r\nexport class AdminActivityReportsDocumentsColumns {\r\n private columnsDictionary: { [key in CategoryNaturalKey]?: ColDef[] };\r\n\r\n constructor() {\r\n this.fillDataDictionary();\r\n }\r\n\r\n public getColumnDefinitions(category: Observable): Observable {\r\n return category.pipe(map(c => {\r\n const columns = this.columnsDictionary[c.categoryId] || [];\r\n return columns;\r\n }));\r\n }\r\n\r\n private fillDataDictionary() {\r\n const siteCommunicationsColumns = [\r\n titleColumn,\r\n letterNumberColumn,\r\n\r\n postedColumn,\r\n readDateTimeColumn,\r\n\r\n countryColumn,\r\n sponsorNameColumn,\r\n protocolNameColumn,\r\n zcProjectNumberColumn,\r\n getCompositeSiteColumn(),\r\n\r\n userNameColumn,\r\n emailColumn,\r\n studyRoleColumn,\r\n blindingRoleColumn,\r\n ];\r\n\r\n const siteActionsColumns = [\r\n titleColumn,\r\n subjectNumberAndInitialsColumn,\r\n visitColumn,\r\n visitCollectionDateColumn,\r\n accessionNumberColumns,\r\n \r\n postedColumn,\r\n readDateTimeColumn,\r\n \r\n countryColumn,\r\n sponsorNameColumn,\r\n protocolNameColumn,\r\n zcProjectNumberColumn,\r\n getCompositeSiteColumn(),\r\n\r\n userNameColumn,\r\n emailColumn,\r\n studyRoleColumn,\r\n blindingRoleColumn,\r\n ];\r\n\r\n const resultAlertsColumns = [\r\n subjectNumberAndInitialsColumn,\r\n visitColumn,\r\n visitCollectionDateColumn,\r\n accessionNumberColumns,\r\n\r\n postedColumn,\r\n readDateTimeColumn,\r\n\r\n countryColumn,\r\n sponsorNameColumn,\r\n protocolNameColumn,\r\n zcProjectNumberColumn,\r\n getCompositeSiteColumn(),\r\n\r\n userNameColumn,\r\n emailColumn,\r\n studyRoleColumn,\r\n blindingRoleColumn,\r\n ];\r\n\r\n const labManualsColumns = [\r\n subcategoryTitleColumn,\r\n getActivityReportsVersionColumn(),\r\n\r\n postedColumn,\r\n readDateTimeColumn,\r\n\r\n regionColumn,\r\n sponsorNameColumn,\r\n protocolNameColumn,\r\n zcProjectNumberColumn,\r\n getCompositeSiteColumn(),\r\n\r\n userNameColumn,\r\n emailColumn,\r\n studyRoleColumn,\r\n blindingRoleColumn,\r\n ];\r\n\r\n const trainingMaterialsColumns = [\r\n subcategoryTitleColumn,\r\n titleColumn,\r\n \r\n postedColumn,\r\n readDateTimeColumn,\r\n \r\n countryColumn,\r\n sponsorNameColumn,\r\n protocolNameColumn,\r\n getCompositeSiteColumn(),\r\n \r\n userNameColumn,\r\n emailColumn,\r\n studyRoleColumn,\r\n blindingRoleColumn,\r\n ];\r\n\r\n const labReportsColumns = [\r\n reportTypeColumn,\r\n subjectNumberAndInitialsColumn,\r\n visitColumn,\r\n visitCollectionDateColumn,\r\n accessionNumberColumns,\r\n \r\n postedColumn,\r\n readDateTimeColumn,\r\n \r\n countryColumn,\r\n sponsorNameColumn,\r\n protocolNameColumn,\r\n zcProjectNumberColumn,\r\n getCompositeSiteColumn(),\r\n\r\n userNameColumn,\r\n emailColumn,\r\n studyRoleColumn,\r\n blindingRoleColumn,\r\n ];\r\n\r\n const eQueryColumns = [\r\n sponsorNameColumn,\r\n protocolNameColumn,\r\n zcProjectNumberColumn,\r\n getCompositeSiteColumn(),\r\n countryColumn,\r\n visitColumn,\r\n visitCollectionDateColumn,\r\n accessionNumberColumns,\r\n subjectNumberAndInitialsColumn,\r\n eQueryIdColumn,\r\n createDateColumn,\r\n responseDateColumn,\r\n issueTypesColumn,\r\n statusColumn,\r\n responseAgeColumn,\r\n userNameColumn,\r\n emailColumn,\r\n studyRoleColumn,\r\n ];\r\n\r\n this.columnsDictionary = {\r\n 'site-communications': siteCommunicationsColumns,\r\n 'result-alerts': resultAlertsColumns,\r\n 'site-actions': siteActionsColumns,\r\n 'lab-manuals': labManualsColumns,\r\n 'training-materials': trainingMaterialsColumns,\r\n 'lab-reports': labReportsColumns,\r\n 'equery': eQueryColumns\r\n };\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { CategoryNaturalKey } from '.';\r\nimport { FilterFieldValue } from '../covance-filter';\r\n\r\nexport interface FilterResolver {\r\n resolveFilters(categoryKey: CategoryNaturalKey): FilterFieldValue[];\r\n}\r\n\r\nexport const FILTER_RESOLVER = new InjectionToken('FilterResolverForFilteredGrid');\r\n","import { AdminProtocolsStorage } from './../../shared/admin-protocols-storage';\r\nimport { Settings } from './../../../core/settings';\r\nimport { isEmpty } from 'lodash';\r\nimport { FormControl } from '@angular/forms';\r\nimport { ChangeDetectionStrategy, Component, OnDestroy, AfterViewInit } from '@angular/core';\r\nimport { ActivatedRoute, Router, Params } from '@angular/router';\r\nimport { ColDef } from 'ag-grid-community';\r\nimport { Observable, Subscription, of } from 'rxjs';\r\nimport { distinctUntilChanged, flatMap, map, publishReplay, refCount, filter, tap, switchMap } from 'rxjs/operators';\r\nimport { FilterFieldValue } from '../../../covance-filter';\r\nimport { DOCUMENTS_STORAGE } from '../../../documents/documents-storage';\r\nimport { FILTER_ITEM_LOADER } from '../../../documents/filter-items-loader';\r\nimport { UrlBuilder } from '../../../core/index';\r\nimport { CategoriesStorage, Category, CategoryNaturalKey } from '../../../documents';\r\nimport { AdminActivityReportDocumentsStorage } from './admin-activity-report-documents-storage';\r\nimport { AdminActivityReportFilterItemsStorage } from './admin-activity-report-filter-items-storage';\r\nimport { AdminActivityReportsDocumentsColumns } from './admin-activity-reports-documents-columns';\r\nimport { AdminActivityReportsFilterResolver } from './admin-activity-reports-filter-resolver';\r\nimport { routeParams } from '../../../shared/route-helpers';\r\nimport { FILTER_RESOLVER } from '../../../documents/filter-resolver';\r\nimport { MandatoryFilter } from '../../../documents/mandatory-filter';\r\nimport { Protocol } from '../../shared';\r\nimport { siteFilter, projectFilter } from '../../../documents/document-filter-definitions';\r\n\r\n@Component({\r\n selector: 'admin-activity-report-documents',\r\n template: require('./admin-activity-report-documents.component.html'),\r\n styles: [require('./admin-activity-report-documents.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n { provide: FILTER_ITEM_LOADER, useExisting: AdminActivityReportFilterItemsStorage },\r\n { provide: DOCUMENTS_STORAGE, useExisting: AdminActivityReportDocumentsStorage },\r\n { provide: FILTER_RESOLVER, useExisting: AdminActivityReportsFilterResolver },\r\n ]\r\n})\r\nexport class AdminActivityReportDocumentsComponent implements AfterViewInit, OnDestroy {\r\n\r\n public categories: Observable;\r\n public selectedCategory: Observable;\r\n public selectedCategoryId: Observable;\r\n public columns: Observable;\r\n public filterFieldDefs: Observable;\r\n public adminFilterGroup: Observable;\r\n public readonly protocolFilterName = MandatoryFilter.Protocol;\r\n public readonly protocolControl = new FormControl();\r\n public subscription = new Subscription();\r\n public readonly warningThreshhold: number;\r\n public mandatoryFilterValue$: Observable;\r\n \r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private categoriesStorage: CategoriesStorage,\r\n private documentsColumns: AdminActivityReportsDocumentsColumns,\r\n private urlBuilder: UrlBuilder,\r\n private protocolsStorage: AdminProtocolsStorage,\r\n settings: Settings,\r\n ) { \r\n this.warningThreshhold = settings.sqlRequestLimitForActivityReports;\r\n this.mandatoryFilterValue$ = this.protocolControl.valueChanges\r\n .pipe(\r\n map(v => v.toString())\r\n );\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n public ngAfterViewInit() {\r\n this.categories = this.categoriesStorage.activityReportCategories;\r\n\r\n this.selectedCategoryId = this.route.params.pipe(\r\n map(x => x[routeParams.categoryId] as CategoryNaturalKey | undefined),\r\n distinctUntilChanged(),\r\n publishReplay(1),\r\n refCount()\r\n );\r\n\r\n this.selectedCategory = this.selectedCategoryId.pipe(\r\n flatMap(categoryId => this.categoriesStorage.findCategoryById(categoryId as CategoryNaturalKey)),\r\n publishReplay(1),\r\n refCount(),\r\n );\r\n\r\n this.columns = this.documentsColumns.getColumnDefinitions(this.selectedCategory);\r\n\r\n this.subscription.add(\r\n this.route.queryParams\r\n .pipe(\r\n map(p => p[this.protocolFilterName] as string),\r\n switchMap(protocolId => {\r\n const oldProtocolId = isEmpty(this.protocolControl.value) ? null : this.protocolControl.value[0].id.toString();\r\n if (oldProtocolId !== protocolId) {\r\n return this.protocolsStorage.searchById(protocolId);\r\n }\r\n return of(null);\r\n }),\r\n filter(v => !!v),\r\n tap((protocol: Protocol[]) => {\r\n this.protocolControl.setValue(protocol);\r\n })\r\n ).subscribe()\r\n );\r\n }\r\n\r\n public categoryChanged(categoryId: CategoryNaturalKey) {\r\n this.urlBuilder.esa().admin().activityReports().documents(categoryId).navigate();\r\n }\r\n\r\n public onProtocolsChange(protocols: Protocol[]) {\r\n if (isEmpty(protocols)) {\r\n return;\r\n }\r\n\r\n const queryParam: Params = {};\r\n queryParam[siteFilter.queryParam] = null;\r\n queryParam[projectFilter.queryParam] = null;\r\n\r\n queryParam[this.protocolFilterName] = protocols[0].id;\r\n this.router.navigate(\r\n [],\r\n {\r\n relativeTo: this.route,\r\n queryParams: queryParam,\r\n queryParamsHandling: 'merge',\r\n });\r\n }\r\n}","import { dataMember, required, typedArray } from 'santee-dcts';\r\nimport * as moment from 'moment';\r\nimport { deserializers } from '../../../core';\r\nimport { siteDisplayNameRenderer } from '../../../renderer/site-display-name-renderer';\r\n\r\nexport class AdminAccessinvestigationReport {\r\n @dataMember()\r\n @required({ nullable: true })\r\n public sponsorName: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public protocolName: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public zcProjectNumber: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public siteName: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public siteNum: string;\r\n\r\n @dataMember()\r\n @required()\r\n public userName: string;\r\n\r\n @dataMember()\r\n @required()\r\n public email: string;\r\n\r\n @dataMember({ customDeserializer: deserializers.deserializeDate })\r\n @required()\r\n public startDateTime: moment.Moment;\r\n\r\n @dataMember({ customDeserializer: deserializers.deserializeDate })\r\n @required({ nullable: true })\r\n public endDateTime: moment.Moment;\r\n\r\n @dataMember()\r\n @required()\r\n public action: string;\r\n\r\n @dataMember({ customDeserializer: deserializers.deserializeDate})\r\n @required()\r\n public actionDateTime: moment.Moment;\r\n\r\n @dataMember()\r\n @required()\r\n public module: string;\r\n\r\n public get siteDisplayName(): string {\r\n return siteDisplayNameRenderer({siteNumber: this.siteNum, investigatorFullName: this.siteName});\r\n }\r\n}\r\n\r\nexport class AdminAccessinvestigationReportReadModel {\r\n @dataMember()\r\n @required()\r\n @typedArray(AdminAccessinvestigationReport)\r\n public reports: AdminAccessinvestigationReport[];\r\n}\r\n","import { Moment, isMoment } from 'moment';\r\n\r\nexport function serializeDateOnly(date: Moment) {\r\n return isMoment(date) && date.isValid()\r\n ? date.format('YYYY-MM-DD')\r\n : null;\r\n}\r\n\r\nexport function serializeDateTimeOffset(date: Moment): string {\r\n return isMoment(date) && date.isValid()\r\n ? encodeURIComponent(date.format('YYYY-MM-DDTHH:mm:ssZ')) // encode +12:00 to %2B12:00\r\n : null;\r\n}\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { deserialize } from 'santee-dcts';\r\nimport { Settings } from '../../../core';\r\nimport { AdminAccessinvestigationReport, AdminAccessinvestigationReportReadModel } from '../report-types/admin-access-investigation-report';\r\nimport { serializeDateTimeOffset } from '../../../core/serializers';\r\n\r\n@Injectable()\r\nexport class AdminAccessInvestigationsStorage {\r\n constructor(\r\n private http: HttpClient,\r\n private settings: Settings\r\n ) { }\r\n\r\n public getReports(userPk: number, dateFrom: string, dateTo: string): Observable {\r\n const dateFromWithOffset = serializeDateTimeOffset(moment(dateFrom));\r\n const dateToWithOffset = serializeDateTimeOffset(moment(dateTo));\r\n\r\n const params = new HttpParams()\r\n .set('userPk', userPk.toString())\r\n .set('dateFrom', dateFromWithOffset)\r\n .set('dateTo', dateToWithOffset);\r\n\r\n return this.http.get(`${this.settings.apiUrl}/admin/reports/access-investigation`, { params: params }).pipe(\r\n map((reports) => deserialize(reports, AdminAccessinvestigationReportReadModel).reports)\r\n );\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { ColDef } from 'ag-grid-community';\r\nimport { BehaviorSubject, combineLatest, merge, of } from 'rxjs';\r\nimport { filter, map, switchMap, debounceTime } from 'rxjs/operators';\r\nimport { FilterDateRangeValue, FilterFieldType, FilterFieldValue } from '../../../covance-filter';\r\nimport { CovanceFilterDateRangeType } from '../../../covance-filter/filter-type/covance-filter-date-range-type';\r\nimport { zcProjectNumberColumn } from '../../../documents';\r\nimport {emailColumn, protocolNameColumn, sponsorNameColumn, userNameColumn, buildDateTimeColumn, getSiteNameColumn, getCompositeSiteColumn} from '../../../shared';\r\nimport { AdminAccessInvestigationsStorage } from './admin-access-investigations-storage';\r\nimport { UserSearch } from '../../users/user-search';\r\nimport { AdminAccessinvestigationReport } from '../report-types/admin-access-investigation-report';\r\n\r\n@Component({\r\n selector: 'app-admin-access-investigation-reports',\r\n template: require('./admin-access-investigation-reports.component.html'),\r\n styles: [require('./admin-access-investigation-reports.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AdminAccessInvestigationReportsComponent {\r\n public filterFieldVal: FilterFieldValue = {\r\n def: {\r\n title: 'Posted',\r\n queryParam: 'postedDateTime',\r\n type: FilterFieldType.DateRange\r\n },\r\n value: {}\r\n };\r\n public usersControl = new FormControl(null, Validators.required);\r\n public selectedDateRange$ = new BehaviorSubject(null);\r\n public isEmptyDateRange$ = this.selectedDateRange$.pipe(map(x => x == null));\r\n\r\n public readonly columnDefs: ColDef[] = [\r\n userNameColumn,\r\n emailColumn,\r\n sponsorNameColumn,\r\n protocolNameColumn,\r\n zcProjectNumberColumn,\r\n getCompositeSiteColumn(),\r\n buildDateTimeColumn('startDateTime', 'Access Start'),\r\n buildDateTimeColumn('endDateTime', 'Access End'),\r\n buildDateTimeColumn('actionDateTime', 'Action Time'),\r\n {\r\n headerName: 'Module',\r\n field: 'module',\r\n },\r\n {\r\n headerName: 'Content',\r\n field: 'action',\r\n }\r\n ];\r\n\r\n public readonly reports$ = merge(\r\n of([]),\r\n combineLatest(\r\n this.usersControl.valueChanges.pipe(\r\n filter(u => !!u),\r\n map((users: UserSearch[]) => users[0].userPk)\r\n ),\r\n this.selectedDateRange$.pipe(\r\n filter(d => !!d)\r\n )\r\n ).pipe(\r\n debounceTime(300),\r\n switchMap(([userPk, dateRange]) =>\r\n merge(\r\n of(null),\r\n this.accessInvestigationsStorage.getReports(userPk, dateRange.dateBegin, dateRange.dateEnd)\r\n )\r\n )\r\n ));\r\n\r\n constructor(\r\n private accessInvestigationsStorage: AdminAccessInvestigationsStorage,\r\n private dateRangeType: CovanceFilterDateRangeType,\r\n ) { }\r\n\r\n public onDateChange(filterFieldValue: FilterFieldValue) {\r\n this.dateRangeType.setValue(filterFieldValue);\r\n this.selectedDateRange$.next(filterFieldValue.value);\r\n }\r\n}\r\n","import { mapValues } from 'lodash';\r\nimport { dataMember, required } from 'santee-dcts';\r\n\r\nimport { CategoryNaturalKey } from './../documents/models/category';\r\n\r\nexport type PermissionName =\r\n | 'ViewLabManuals'\r\n | 'ViewSiteActions'\r\n | 'ViewSiteCommunications'\r\n | 'ViewSponsorCommunications'\r\n | 'ViewTrainingMaterials'\r\n\r\n | 'UploadLabManuals'\r\n | 'UploadSiteActions'\r\n | 'UploadSiteCommunications'\r\n | 'UploadSponsorCommunications'\r\n | 'UploadTrainingMaterials'\r\n | 'UploadApplicationTraining'\r\n | 'UploadGeneralCommunications'\r\n | 'UploadGeneralManuals'\r\n | 'UploadGeneralTrainingMaterials'\r\n\r\n | 'AccessUserProfile'\r\n | 'ProtocolAccess'\r\n | 'ProtocolReadAccess'\r\n | 'ViewAuditLogs'\r\n | 'EmulateUser'\r\n | 'UploadCommonLinks'\r\n | 'UploadAnnouncements'\r\n | 'HideUnhideDocuments'\r\n\r\n | 'AccessInvestigationReport'\r\n | 'ViewActivityReportProtocolAccess'\r\n | 'ViewActivityReportLabManuals'\r\n | 'ViewActivityReportLabReports'\r\n | 'ViewActivityReportResultAlerts'\r\n | 'ViewActivityReportSiteActions'\r\n | 'ViewActivityReportSiteCommunications'\r\n | 'ViewActivityReportTrainingMaterials'\r\n\r\n | 'ViewKitInventory'\r\n | 'KitInventoryandExpirationReport'\r\n\r\n | 'EQueryViewAndRespond'\r\n | 'EQueryCreationRespondClose'\r\n | 'EQueryAdministration'\r\n | 'ViewActivityReportEQuery'\r\n | 'ViewStudyHealthDashboard'\r\n | 'ConfigureViews'\r\n ;\r\n\r\nexport class UserPermissions {\r\n private readonly permissions: Set;\r\n\r\n constructor(permissions: string[]) {\r\n this.permissions = new Set(permissions);\r\n }\r\n\r\n public has(permission: PermissionName): boolean {\r\n return this.permissions.has(permission);\r\n }\r\n\r\n public canViewCategory(categoryId: CategoryNaturalKey): boolean {\r\n switch (categoryId) {\r\n case 'lab-manuals': return this.has('ViewLabManuals');\r\n case 'synopsis': return this.has('ViewLabManuals');\r\n case 'study-manuals': return this.has('ViewLabManuals');\r\n case 'lab-manuals-others': return this.has('ViewLabManuals');\r\n\r\n case 'training-materials': return this.has('ViewTrainingMaterials');\r\n case 'training-materials-e-learning': return this.has('ViewTrainingMaterials');\r\n case 'training-materials-others': return this.has('ViewTrainingMaterials');\r\n\r\n case 'lab-reports': return true;\r\n case 'result-alerts': return true;\r\n\r\n case 'site-actions': return this.has('ViewSiteActions');\r\n case 'site-communications': return this.has('ViewSiteCommunications');\r\n case 'sponsor-communications': return this.has('ViewSponsorCommunications');\r\n default: return false;\r\n }\r\n }\r\n\r\n public canUploadCategory(categoryId: CategoryNaturalKey): boolean {\r\n switch (categoryId) {\r\n case 'lab-manuals': return this.has('UploadLabManuals');\r\n case 'site-actions': return this.has('UploadSiteActions');\r\n case 'site-communications': return this.has('UploadSiteCommunications');\r\n case 'sponsor-communications': return this.has('UploadSponsorCommunications');\r\n case 'training-materials': return this.has('UploadTrainingMaterials');\r\n case 'application-training': return this.has('UploadApplicationTraining');\r\n case 'general-communications': return this.has('UploadGeneralCommunications');\r\n case 'general-manuals': return this.has('UploadGeneralManuals');\r\n case 'general-training-materials': return this.has('UploadGeneralTrainingMaterials');\r\n default: return false;\r\n }\r\n }\r\n\r\n public canViewActivityReport(categoryId: CategoryNaturalKey): boolean {\r\n switch (categoryId) {\r\n case 'lab-manuals': return this.has('ViewActivityReportLabManuals');\r\n case 'lab-reports': return this.has('ViewActivityReportLabReports');\r\n case 'result-alerts': return this.has('ViewActivityReportResultAlerts');\r\n case 'site-actions': return this.has('ViewActivityReportSiteActions');\r\n case 'site-communications': return this.has('ViewActivityReportSiteCommunications');\r\n case 'training-materials': return this.has('ViewActivityReportTrainingMaterials');\r\n case 'equery': return this.has('ViewActivityReportEQuery');\r\n default: return false;\r\n }\r\n }\r\n}\r\n\r\nexport type UserStudyPermissions = { [protocolId: string]: UserPermissions };\r\n\r\nexport class UserPermissionsReadModel {\r\n @dataMember({\r\n customDeserializer: (permissions: string[]) => new UserPermissions(permissions)\r\n })\r\n @required()\r\n public permissions: UserPermissions;\r\n}\r\n\r\nexport class UserStudyPermissionsReadModel {\r\n @dataMember({\r\n customDeserializer: (permissionsDict: { [protocolId: string]: string[] }) => {\r\n return mapValues(permissionsDict, permissions => new UserPermissions(permissions)) as UserStudyPermissions;\r\n }\r\n })\r\n @required()\r\n public studyPermissions: UserStudyPermissions;\r\n}","import { map, publishLast, refCount } from 'rxjs/operators';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { deserialize } from 'santee-dcts';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { UserPermissions, UserStudyPermissionsReadModel, UserPermissionsReadModel, UserStudyPermissions } from './user-permissions';\r\nimport { Settings } from '../core';\r\n\r\n@Injectable()\r\nexport class UserPermissionsStorage {\r\n public userPermissions: Observable;\r\n public userStudiesPermissions: Observable;\r\n\r\n constructor(private settings: Settings, private http: HttpClient) {\r\n this.userPermissions = this.loadUserPermissions();\r\n this.userStudiesPermissions = this.loadUserStudiesPermissions();\r\n }\r\n\r\n public getPermissionsByStudy(protocolId: number): Observable {\r\n return this.userStudiesPermissions.pipe(\r\n map((permissions) => permissions[protocolId.toString()] || new UserPermissions([]))\r\n );\r\n }\r\n\r\n private loadUserStudiesPermissions(): Observable {\r\n return this.http\r\n .get(`${this.settings.apiUrl}/user-permissions/studies`)\r\n .pipe(\r\n map((rawPermissions) => deserialize(rawPermissions, UserStudyPermissionsReadModel).studyPermissions),\r\n publishLast(),\r\n refCount()\r\n );\r\n }\r\n\r\n private loadUserPermissions(): Observable {\r\n return this.http\r\n .get(`${this.settings.apiUrl}/user-permissions`)\r\n .pipe(\r\n map(rawPermissions => deserialize(rawPermissions, UserPermissionsReadModel).permissions),\r\n publishLast(),\r\n refCount()\r\n );\r\n }\r\n}","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { map } from 'rxjs/operators';\r\nimport { UrlBuilder } from '../../core';\r\nimport { UserPermissionsStorage } from '../../user-permissions/user-permissions-storage';\r\n\r\n@Component({\r\n selector: 'admin-activity-reports',\r\n template: require('../../shared/tabs.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AdminActivityReportsComponent {\r\n public tabsCategories = this.userPermissionsStorage.userPermissions.pipe(map(permissions => {\r\n const tabs = [{\r\n name: 'Documents',\r\n url: this.urlBuilder\r\n .esa()\r\n .admin()\r\n .activityReports()\r\n .documents()\r\n .url()\r\n }, {\r\n name: 'Protocol Access',\r\n url: this.urlBuilder\r\n .esa()\r\n .admin()\r\n .activityReports()\r\n .protocolAccess()\r\n .url()\r\n }, {\r\n name: 'Email Notifications',\r\n url: this.urlBuilder\r\n .esa()\r\n .admin()\r\n .activityReports()\r\n .emailNotificationAlerts()\r\n .url()\r\n }];\r\n\r\n if (permissions.has('AccessInvestigationReport')) {\r\n tabs.push({\r\n name: 'Access Investigation',\r\n url: this.urlBuilder\r\n .esa()\r\n .admin()\r\n .activityReports()\r\n .accessInvestigation()\r\n .url()\r\n });\r\n }\r\n\r\n return tabs;\r\n }));\r\n\r\n constructor(\r\n private readonly urlBuilder: UrlBuilder,\r\n private readonly userPermissionsStorage: UserPermissionsStorage\r\n ) { }\r\n}\r\n","import { dataMember, required, typedArray } from 'santee-dcts';\r\nimport * as moment from 'moment';\r\n\r\nexport class AnnouncementInfo {\r\n\r\n @dataMember()\r\n @required()\r\n public id: number;\r\n\r\n @dataMember()\r\n @required()\r\n public text: string;\r\n\r\n @dataMember()\r\n @required()\r\n public title: string;\r\n\r\n @dataMember({ customDeserializer: value => moment(value) })\r\n @required()\r\n public effectiveStartDate: moment.Moment;\r\n\r\n @dataMember({\r\n customDeserializer: value => {\r\n const date = moment(value);\r\n return date.isValid() ? date : null;\r\n }\r\n })\r\n @required({ nullable: true })\r\n public effectiveEndDate?: moment.Moment;\r\n\r\n @dataMember({ customDeserializer: value => moment(value) })\r\n @required()\r\n public posted: moment.Moment;\r\n\r\n @dataMember()\r\n @required()\r\n @typedArray(String)\r\n public roles: string[];\r\n\r\n @dataMember()\r\n @required()\r\n public pinnedFlag: boolean;\r\n}\r\n\r\nexport class AnnouncementsInfoReadModel {\r\n @dataMember()\r\n @required()\r\n @typedArray(AnnouncementInfo)\r\n public announcements: AnnouncementInfo[];\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { Moment } from 'moment';\r\nimport { BehaviorSubject, Observable, of } from 'rxjs';\r\nimport { first, map, mergeMap, publishReplay, refCount, switchMap, tap } from 'rxjs/operators';\r\nimport { deserialize } from 'santee-dcts';\r\nimport { Settings } from '../../core/settings';\r\nimport { AnnouncementInfo, AnnouncementsInfoReadModel } from './announcement-info';\r\nimport { ActivityLogger } from '../../activities/activity-logger';\r\nimport { comparators } from '../../core/comparators';\r\n\r\n@Injectable()\r\nexport class AnnouncementsInfoStorage {\r\n private readonly apiPath = 'admin/announcements';\r\n private readonly announcementsInfo: Observable;\r\n private readonly refresher = new BehaviorSubject(true);\r\n constructor(\r\n private readonly http: HttpClient,\r\n private readonly settings: Settings,\r\n private readonly activityLogger: ActivityLogger,\r\n ) {\r\n this.announcementsInfo = this.loadAll()\r\n .pipe(\r\n publishReplay(1),\r\n refCount()\r\n );\r\n }\r\n\r\n public get all(): Observable {\r\n return this.announcementsInfo;\r\n }\r\n\r\n public insert(announcement: AnnouncementRequest) {\r\n this.activityLogger.logActivity('Create Announcement');\r\n\r\n this.http.post(`${this.settings.apiUrl}/${this.apiPath}`, announcement)\r\n .pipe(\r\n tap(() => this.refresher.next(true)),\r\n first()\r\n ).toPromise();\r\n }\r\n\r\n public update(announcement: AnnouncementRequest) {\r\n this.activityLogger.logActivity('Edit Announcement');\r\n\r\n this.http.put(`${this.settings.apiUrl}/${this.apiPath}/${announcement.id}`, announcement)\r\n .pipe(\r\n tap(() => this.refresher.next(true)),\r\n first()\r\n ).toPromise();\r\n }\r\n\r\n public deleteAnnouncement(announcement: AnnouncementInfo, auditTrailReason: string) {\r\n this.activityLogger.logActivity('Delete Announcement');\r\n\r\n this.http.delete(`${this.settings.apiUrl}/${this.apiPath}/${announcement.id}?auditTrailReason=${auditTrailReason}`)\r\n .pipe(\r\n tap(() => this.refresher.next(true)),\r\n first()\r\n ).toPromise();\r\n }\r\n\r\n private loadAll(): Observable {\r\n return this.refresher.pipe(\r\n mergeMap(() => of(of(null), this.http.get(`${this.settings.apiUrl}/${this.apiPath}`))),\r\n switchMap(x => x),\r\n map((rawData) => {\r\n if (rawData) {\r\n let announcementsInfos = deserialize(rawData, AnnouncementsInfoReadModel).announcements;\r\n announcementsInfos = announcementsInfos.sort((a, b) => comparators.dateTimeComparator(b ? b.posted : null, a ? a.posted : null));\r\n return announcementsInfos;\r\n }\r\n\r\n return null;\r\n })\r\n );\r\n\r\n }\r\n}\r\n\r\nexport class AnnouncementRequest {\r\n private static dateFormat = 'YYYY-MM-DD';\r\n\r\n public auditTrailReason: string;\r\n\r\n constructor(\r\n public readonly id: number,\r\n public readonly text: string,\r\n public readonly title: string,\r\n public readonly effectiveStartDate: Moment,\r\n public readonly effectiveEndDate: Moment,\r\n public readonly roles: string[],\r\n public readonly pinnedFlag: boolean\r\n ) { }\r\n\r\n public toJSON(): Object {\r\n const overrided: { [key in keyof AnnouncementInfo]?: any } = {\r\n effectiveStartDate: moment.isMoment(this.effectiveStartDate) && this.effectiveStartDate.isValid()\r\n ? this.effectiveStartDate.format(AnnouncementRequest.dateFormat)\r\n : null,\r\n effectiveEndDate: moment.isMoment(this.effectiveEndDate) && this.effectiveEndDate.isValid()\r\n ? this.effectiveEndDate.format(AnnouncementRequest.dateFormat)\r\n : null,\r\n };\r\n\r\n const serialized = Object.assign({}, this, overrided);\r\n\r\n return serialized;\r\n }\r\n}\r\n","import * as moment from 'moment';\r\nimport { required, dataMember, typedArray } from 'santee-dcts';\r\nimport { deserializers } from '../core';\r\n\r\nexport class Announcement {\r\n @dataMember()\r\n @required()\r\n public titleAnnouncement: string;\r\n\r\n @dataMember()\r\n @required()\r\n public textAnnouncement: string;\r\n\r\n @dataMember()\r\n @required()\r\n public isPinned: boolean;\r\n\r\n @dataMember()\r\n @required()\r\n public isNew: boolean;\r\n}\r\n\r\nexport class AnnouncementsReadModel {\r\n @dataMember()\r\n @required()\r\n @typedArray(Announcement)\r\n public announcements: Announcement[];\r\n}","import { Component, Inject, InjectionToken, HostListener } from '@angular/core';\r\nimport { MdlDialogReference } from '@angular-mdl/core';\r\nimport { Announcement } from './announcement';\r\n\r\nexport const ANNOUNCEMENT_TOKEN = new InjectionToken('AnnouncementItem');\r\n\r\n@Component({\r\n selector: 'announcement-dialog',\r\n template: require('./announcement-dialog.component.html'),\r\n styles: [require('./announcement-dialog.component.scss')]\r\n})\r\nexport class AnnouncementDialogComponent {\r\n public announcement: Announcement;\r\n\r\n constructor(\r\n private dialog: MdlDialogReference,\r\n @Inject(ANNOUNCEMENT_TOKEN) announcement: Announcement\r\n ) {\r\n this.announcement = announcement;\r\n }\r\n\r\n @HostListener('document:keydown.esc')\r\n public close() {\r\n this.dialog.hide();\r\n }\r\n}","import { MdlDialogReference, MdlDialogService, IMdlCustomDialogConfiguration } from '@angular-mdl/core';\r\nimport { ChangeDetectionStrategy, Component, HostListener, Inject, InjectionToken } from '@angular/core';\r\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport * as moment from 'moment';\r\nimport { maxLengthInBytes, maxBytesError } from '../../shared/validators';\r\nimport { AnnouncementInfo } from './announcement-info';\r\nimport { AnnouncementRequest, AnnouncementsInfoStorage } from './announcements-info-storage';\r\nimport { AnnouncementDialogComponent, ANNOUNCEMENT_TOKEN } from '../../layout/announcement-dialog.component';\r\nimport Quill from 'quill';\r\nimport { includes } from 'lodash';\r\n\r\nconst link = Quill.import('formats/link');\r\n\r\nconst oldSanitize = link.sanitize.bind(link);\r\n\r\nlink.sanitize = function (url: string) {\r\n const sanitized: string = oldSanitize(url);\r\n\r\n if (!sanitized || includes(sanitized, '://')) {\r\n return sanitized;\r\n }\r\n\r\n const withHttp = 'https://' + sanitized;\r\n\r\n return withHttp;\r\n};\r\n\r\nexport const ANNOUNCEMENT_EDIT_TOKEN = new InjectionToken('AnnouncementEditItem');\r\n\r\n@Component({\r\n selector: 'announcement-edit-dialog',\r\n template: require('./announcement-edit-dialog.component.html'),\r\n styles: [require('./announcement-edit-dialog.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AnnouncementEditDialogComponent {\r\n public readonly editorForm: FormGroup;\r\n public readonly audienceCtrl: FormControl;\r\n public readonly announcementTitleCtrl: FormControl;\r\n public readonly effectiveStartDateCtrl: FormControl;\r\n public readonly effectiveEndDateCtrl: FormControl;\r\n public readonly announcementTextCtrl: FormControl;\r\n public readonly isPinnedCtrl: FormControl;\r\n public readonly auditTrailReasonCtrl: FormControl;\r\n public id: number;\r\n public isBusy = false;\r\n public announcementText = '';\r\n public isConfirmDialogOpened: boolean;\r\n\r\n public readonly isNew: boolean;\r\n public readonly wrongDateRangeError = 'wrongDateRangeError';\r\n public readonly wrongEffectiveStartDate = 'wrongEffectiveStartDate';\r\n public readonly wrongEffectiveEndDate = 'wrongEffectiveEndDate';\r\n public readonly missingEffectiveEndDate = 'missingEffectiveEndDate';\r\n\r\n private readonly textMaxBytes = 1048576;\r\n private readonly titleMaxBytes = 75;\r\n private readonly effectiveStartDateName = 'effectiveStartDate';\r\n private readonly effectiveEndDateName = 'effectiveEndDate';\r\n\r\n constructor(\r\n private dialog: MdlDialogReference,\r\n private dialogService: MdlDialogService,\r\n private announcementsInfoStorage: AnnouncementsInfoStorage,\r\n @Inject(ANNOUNCEMENT_EDIT_TOKEN) announcement: AnnouncementInfo,\r\n ) {\r\n this.isNew = !announcement;\r\n this.id = announcement && announcement.id || 0;\r\n this.audienceCtrl = new FormControl(announcement && announcement.roles, [Validators.required]);\r\n this.announcementTitleCtrl = new FormControl(announcement && announcement.title || '', [Validators.required, maxLengthInBytes(this.titleMaxBytes)]);\r\n this.effectiveStartDateCtrl = new FormControl(announcement && announcement.effectiveStartDate || moment(), [Validators.required]);\r\n this.effectiveEndDateCtrl = new FormControl(announcement && announcement.effectiveEndDate || null);\r\n this.announcementTextCtrl = new FormControl(this.announcementText = announcement && announcement.text || '', [Validators.required, maxLengthInBytes(this.textMaxBytes)]);\r\n this.isPinnedCtrl = new FormControl(announcement && announcement.pinnedFlag);\r\n this.auditTrailReasonCtrl = new FormControl();\r\n this.editorForm = new FormGroup(\r\n {\r\n 'audience': this.audienceCtrl,\r\n 'title': this.announcementTitleCtrl,\r\n 'text': this.announcementTextCtrl,\r\n [this.effectiveStartDateName]: this.effectiveStartDateCtrl,\r\n [this.effectiveEndDateName]: this.effectiveEndDateCtrl,\r\n 'isPinned': this.isPinnedCtrl\r\n },\r\n this.verifyDates(),\r\n );\r\n\r\n if (!this.isNew) {\r\n this.editorForm.addControl('auditTrailReason', this.auditTrailReasonCtrl);\r\n }\r\n }\r\n\r\n public onAnnouncementTextChanged($event: { html: string }) {\r\n this.announcementTextCtrl.setValue($event.html);\r\n }\r\n\r\n public getTextFieldClasses(control: FormControl): string[] {\r\n return control.invalid ? ['is-invalid'] : [];\r\n }\r\n\r\n public get titleErrorMessage(): string {\r\n if (this.announcementTitleCtrl.hasError('required')) {\r\n return 'Title is required';\r\n }\r\n\r\n if (this.announcementTitleCtrl.hasError(maxBytesError)) {\r\n return `Title is too long`;\r\n }\r\n\r\n return '';\r\n }\r\n\r\n public async save() {\r\n this.isBusy = true;\r\n if (this.editorForm.invalid) {\r\n this.isBusy = false;\r\n return;\r\n }\r\n\r\n if (!(await this.showConfirm())) {\r\n return;\r\n }\r\n\r\n const announcementRequest = new AnnouncementRequest(\r\n this.id,\r\n this.announcementTextCtrl.value,\r\n this.announcementTitleCtrl.value,\r\n this.effectiveStartDateCtrl.value,\r\n this.effectiveEndDateCtrl.value,\r\n this.audienceCtrl.value,\r\n !!this.isPinnedCtrl.value\r\n );\r\n\r\n if (this.isNew) {\r\n await this.announcementsInfoStorage.insert(announcementRequest);\r\n } else {\r\n announcementRequest.auditTrailReason = this.auditTrailReasonCtrl.value;\r\n\r\n await this.announcementsInfoStorage.update(announcementRequest);\r\n }\r\n\r\n this.dialog.hide();\r\n this.isBusy = false;\r\n }\r\n\r\n public preview() {\r\n const announcementPreview = {\r\n titleAnnouncement: this.announcementTitleCtrl.value,\r\n textAnnouncement: this.announcementTextCtrl.value,\r\n isPinned: !!this.isPinnedCtrl.value,\r\n isNew: false\r\n };\r\n\r\n const configDialog: IMdlCustomDialogConfiguration = {\r\n component: AnnouncementDialogComponent,\r\n providers: [{\r\n provide: ANNOUNCEMENT_TOKEN, useValue: announcementPreview\r\n }],\r\n isModal: true,\r\n clickOutsideToClose: true,\r\n classes: 'scrollable'\r\n };\r\n\r\n this.dialogService.showCustomDialog(configDialog);\r\n }\r\n\r\n @HostListener('document:keydown.esc')\r\n public close() {\r\n this.dialog.hide();\r\n }\r\n\r\n private async showConfirm(): Promise {\r\n this.isConfirmDialogOpened = true;\r\n\r\n try {\r\n await this.dialogService.confirm(`Do you want to post this announcement ?`, 'No', 'Yes').toPromise();\r\n return true;\r\n } catch {\r\n return false;\r\n } finally {\r\n this.isConfirmDialogOpened = false;\r\n }\r\n }\r\n\r\n private verifyDates(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const fromDate: moment.Moment = control.get(this.effectiveStartDateName).value;\r\n const toDate: moment.Moment = control.get(this.effectiveEndDateName).value;\r\n\r\n if (!(fromDate && fromDate.isValid())) {\r\n return null;\r\n } else if (fromDate.isBefore(moment(), 'day')) {\r\n return { [this.wrongEffectiveStartDate]: {} };\r\n }\r\n\r\n if (!(toDate && toDate.isValid())) {\r\n return null;\r\n } else if (toDate.isBefore(moment(), 'day')) {\r\n return { [this.wrongEffectiveEndDate]: {} };\r\n }\r\n\r\n return fromDate.isSameOrBefore(toDate, 'day') ? null : { [this.wrongDateRangeError]: {} };\r\n };\r\n }\r\n}\r\n","import { MdlDialogReference } from '@angular-mdl/core';\r\nimport { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, InjectionToken } from '@angular/core';\r\nimport { AbstractControl, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { CommonLinkInfo } from './common-link-info';\r\nimport { CommonLinkEditorOptions } from './common-links-editor';\r\nimport { maxLengthInBytes, maxBytesError } from '../../shared/validators';\r\n\r\nexport const COMMON_LINK_EDITOR_OPTIONS = new InjectionToken('EditorCommonLinkOptions');\r\n\r\nexport enum CommonLinkEditorResultAction {\r\n close,\r\n create,\r\n save\r\n}\r\n\r\nexport interface CommonLinkEditorResult {\r\n action: CommonLinkEditorResultAction;\r\n editedEntity?: CommonLinkInfo;\r\n}\r\n\r\n@Component({\r\n selector: 'common-link-editor',\r\n template: require('./common-link-editor.component.html'),\r\n styles: [require('./common-link-editor.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CommonLinkEditorComponent implements AfterViewInit {\r\n public readonly invalidUrlValidationName = 'invalidUrl';\r\n\r\n public readonly editorTitle: string;\r\n public readonly actionButtonTitle: string;\r\n\r\n public readonly rolesControl: FormControl;\r\n public readonly titleControl: FormControl;\r\n public readonly urlControl: FormControl;\r\n public readonly descriptionControl: FormControl;\r\n public readonly sortOrderControl: FormControl;\r\n public readonly editorForm: FormGroup;\r\n\r\n private readonly titleMaxBytes = 75;\r\n private readonly urlMaxBytes = 255;\r\n private readonly descriptionMaxBytes = 255;\r\n private readonly sortOrderPattern = '[0-9]+?';\r\n\r\n constructor(\r\n private readonly dialog: MdlDialogReference,\r\n private ref: ChangeDetectorRef,\r\n @Inject(COMMON_LINK_EDITOR_OPTIONS) private readonly editorOptions: CommonLinkEditorOptions,\r\n fb: FormBuilder\r\n ) {\r\n const { isNew, editedEntity } = this.editorOptions;\r\n\r\n this.editorTitle = isNew ? 'New Common Link' : 'Edit Common Link';\r\n this.actionButtonTitle = isNew ? 'Create' : 'Save';\r\n\r\n this.rolesControl = fb.control(editedEntity.roles, [Validators.required]);\r\n this.titleControl = fb.control(editedEntity.title, [Validators.required, maxLengthInBytes(this.titleMaxBytes)]);\r\n this.urlControl = fb.control(editedEntity.url, [Validators.required, maxLengthInBytes(this.urlMaxBytes), this.urlValidator()]);\r\n this.descriptionControl = fb.control(editedEntity.description, [maxLengthInBytes(this.descriptionMaxBytes)]);\r\n this.sortOrderControl = fb.control(editedEntity.sortOrder, [Validators.pattern(this.sortOrderPattern)]);\r\n this.editorForm = fb.group({\r\n 'roles': this.rolesControl,\r\n 'title': this.titleControl,\r\n 'url': this.urlControl,\r\n 'description': this.descriptionControl,\r\n 'sortOrder': this.sortOrderControl\r\n });\r\n }\r\n\r\n public get titleErrorMessage(): string {\r\n if (this.titleControl.hasError('required')) {\r\n return 'Title is required';\r\n }\r\n\r\n if (this.titleControl.hasError(maxBytesError)) {\r\n return 'Title is too long';\r\n }\r\n\r\n return '';\r\n }\r\n\r\n public get urlErrorMessage(): string {\r\n if (this.urlControl.hasError('required')) {\r\n return 'Url is required';\r\n }\r\n\r\n if (this.urlControl.hasError(maxBytesError)) {\r\n return 'Url is too long';\r\n }\r\n\r\n if (this.urlControl.hasError(this.invalidUrlValidationName)) {\r\n return 'Must be a valid url (e.g. http://example.com)';\r\n }\r\n\r\n return '';\r\n }\r\n\r\n public get descriptionErrorMessage(): string {\r\n return this.descriptionControl.hasError(maxBytesError)\r\n ? 'Description is too long'\r\n : '';\r\n }\r\n\r\n public get sortOrderErrorMessage(): string {\r\n if (this.sortOrderControl.hasError('pattern')) {\r\n return `Sort order must be a number`;\r\n }\r\n return '';\r\n }\r\n\r\n public ngAfterViewInit() {\r\n //TODO: Find reason why floating labels don't work with OnPush strategy\r\n this.ref.markForCheck();\r\n }\r\n\r\n public onCloseEditor() {\r\n const result: CommonLinkEditorResult = {\r\n action: CommonLinkEditorResultAction.close\r\n };\r\n this.dialog.hide(result);\r\n }\r\n\r\n public onClickAction() {\r\n if (this.editorOptions.isNew) {\r\n this.createCommonLink();\r\n } else {\r\n this.saveCommonLink();\r\n }\r\n }\r\n\r\n public createCommonLink() {\r\n const newCommonLink = new CommonLinkInfo();\r\n\r\n this.assignValues(newCommonLink);\r\n\r\n const result: CommonLinkEditorResult = {\r\n action: CommonLinkEditorResultAction.create,\r\n editedEntity: newCommonLink\r\n };\r\n\r\n this.dialog.hide(result);\r\n }\r\n\r\n public saveCommonLink() {\r\n const { editedEntity } = this.editorOptions;\r\n\r\n this.assignValues(editedEntity);\r\n\r\n const result: CommonLinkEditorResult = {\r\n action: CommonLinkEditorResultAction.save,\r\n editedEntity: editedEntity\r\n };\r\n\r\n this.dialog.hide(result);\r\n }\r\n\r\n private assignValues(commonLink: CommonLinkInfo) {\r\n commonLink.roles = this.rolesControl.value;\r\n commonLink.title = this.titleControl.value;\r\n commonLink.url = this.urlControl.value;\r\n commonLink.description = this.descriptionControl.value;\r\n commonLink.sortOrder = this.sortOrderControl.value;\r\n }\r\n\r\n private urlValidator() {\r\n const isValidUrl = /^[^\\s/$.?#]+:\\/\\/[^\\s/$.?#].[^\\s]*$/i;\r\n\r\n return (control: AbstractControl): { [key: string]: any } | null => {\r\n return !isValidUrl.test(control.value) ? { [this.invalidUrlValidationName]: { value: control.value } } : null;\r\n };\r\n }\r\n}\r\n","import { MdlDialogReference, MdlDialogService } from '@angular-mdl/core';\r\nimport { ChangeDetectionStrategy, Component, Inject, InjectionToken } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { AnnouncementInfo } from './announcement-info';\r\nimport { AnnouncementsInfoStorage } from './announcements-info-storage';\r\n\r\nexport const ANNOUNCEMENT_DELETE_TOKEN = new InjectionToken('AnnouncementDeleteItem');\r\n\r\n@Component({\r\n selector: 'delete-announcement-dialog',\r\n template: require('./delete-announcement-dialog.component.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AnnouncementDeleteDialogComponent {\r\n public readonly editorForm: FormGroup;\r\n public readonly reasonControl = new FormControl(null);\r\n\r\n constructor(\r\n private readonly dialog: MdlDialogReference,\r\n private readonly dialogService: MdlDialogService,\r\n private readonly announcementsInfoStorage: AnnouncementsInfoStorage,\r\n @Inject(ANNOUNCEMENT_DELETE_TOKEN) readonly deletedAnnouncement: AnnouncementInfo\r\n ) {\r\n this.editorForm = new FormGroup({\r\n 'reason': this.reasonControl\r\n });\r\n }\r\n\r\n public async onDelete() {\r\n const confirmed = await this.showConfirm(`The announcement will be deleted. Proceed?`);\r\n\r\n if (confirmed) {\r\n try {\r\n this.editorForm.disable();\r\n\r\n await this.announcementsInfoStorage.deleteAnnouncement(this.deletedAnnouncement, this.reasonControl.value as string);\r\n\r\n this.dialog.hide();\r\n } catch (e) {\r\n this.editorForm.enable();\r\n throw e;\r\n }\r\n }\r\n }\r\n\r\n public onCancel() {\r\n this.dialog.hide();\r\n }\r\n\r\n private async showConfirm(confirmationText: string): Promise {\r\n try {\r\n await this.dialogService.confirm(confirmationText, 'No', 'Yes').toPromise();\r\n return true;\r\n } catch {\r\n return false;\r\n }\r\n }\r\n}\r\n","import { IMdlCustomDialogConfiguration, MdlDialogService } from '@angular-mdl/core';\r\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ActionsMenuAgRendererComponent, ActionsMenuItem } from '../../covance-ag-grid';\r\nimport { AnnouncementEditDialogComponent, ANNOUNCEMENT_EDIT_TOKEN } from './announcement-edit-dialog.component';\r\nimport { AnnouncementInfo } from './announcement-info';\r\nimport { AnnouncementDeleteDialogComponent, ANNOUNCEMENT_DELETE_TOKEN } from './delete-announcement-dialog.component';\r\n\r\n@Component({\r\n selector: 'common-link-editor-menu-ag-renderer',\r\n template: require('../../covance-ag-grid/renderers/actions-menu-ag-renderer-base.html'),\r\n styles: [require('../../covance-ag-grid/renderers/actions-menu-ag-renderer-base.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AnnouncementsActionsMenuAgRendererComponent extends ActionsMenuAgRendererComponent {\r\n\r\n constructor(private readonly dialogService: MdlDialogService) {\r\n super();\r\n }\r\n\r\n public createMenuItems(data: AnnouncementInfo): ActionsMenuItem[] {\r\n {\r\n return [\r\n {\r\n title: 'Edit',\r\n onClick: () => {\r\n this.addAnnouncement(data);\r\n }\r\n },\r\n {\r\n title: 'Delete',\r\n onClick: () => {\r\n this.deleteAnnouncement(data);\r\n }\r\n }\r\n ];\r\n }\r\n }\r\n\r\n private addAnnouncement(announcement: AnnouncementInfo) {\r\n const configDialog: IMdlCustomDialogConfiguration = {\r\n component: AnnouncementEditDialogComponent,\r\n providers: [{\r\n provide: ANNOUNCEMENT_EDIT_TOKEN, useValue: announcement\r\n }],\r\n isModal: true,\r\n clickOutsideToClose: true\r\n };\r\n\r\n this.dialogService.showCustomDialog(configDialog);\r\n }\r\n\r\n private deleteAnnouncement(announcement: AnnouncementInfo) {\r\n const configDialog: IMdlCustomDialogConfiguration = {\r\n component: AnnouncementDeleteDialogComponent,\r\n providers: [{\r\n provide: ANNOUNCEMENT_DELETE_TOKEN, useValue: announcement\r\n }],\r\n isModal: true,\r\n clickOutsideToClose: true\r\n };\r\n\r\n this.dialogService.showCustomDialog(configDialog);\r\n }\r\n}","import { IMdlCustomDialogConfiguration, MdlDialogService } from '@angular-mdl/core';\r\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ICellRendererParams } from 'ag-grid-community/main';\r\nimport { Observable } from 'rxjs';\r\nimport { CovanceGridColumn, dateTimeComparator, dateTimeRenderer, dateRenderer, booleanRenderer, booleanQuickFilterText } from '../../covance-ag-grid';\r\nimport { AnnouncementEditDialogComponent, ANNOUNCEMENT_EDIT_TOKEN } from './announcement-edit-dialog.component';\r\nimport { AnnouncementInfo } from './announcement-info';\r\nimport { AnnouncementsActionsMenuAgRendererComponent } from './announcements-actions-menu-ag-renderer.component';\r\nimport { AnnouncementsInfoStorage } from './announcements-info-storage';\r\nimport { map } from 'rxjs/operators';\r\nimport { GridColumns } from '../../shared/grid-columns';\r\nimport { UserPermissionsStorage } from '../../user-permissions/user-permissions-storage';\r\nimport { UserPermissions } from '../../user-permissions/user-permissions';\r\nimport { comparators } from '../../core/comparators';\r\n\r\ninterface AnnouncementInfoGridRowItem extends ICellRendererParams {\r\n data: AnnouncementInfo;\r\n}\r\n\r\n@Component({\r\n selector: 'announcements-admin',\r\n template: require('./announcements-admin.component.html'),\r\n styles: [require('./announcements-admin.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AnnouncementsAdminComponent {\r\n public readonly columns$: Observable;\r\n public readonly announcementsInfoData$: Observable;\r\n public readonly canUserManageAnnouncements$: Observable;\r\n\r\n constructor(\r\n readonly announcementsInfoStorage: AnnouncementsInfoStorage,\r\n private readonly gridColumns: GridColumns,\r\n private readonly dialogServce: MdlDialogService,\r\n readonly userPermissionsStorage: UserPermissionsStorage\r\n ) {\r\n this.announcementsInfoData$ = announcementsInfoStorage.all;\r\n\r\n this.canUserManageAnnouncements$ = userPermissionsStorage.userPermissions.pipe(\r\n map(userPermissions => userPermissions.has('UploadAnnouncements'))\r\n );\r\n\r\n this.columns$ = userPermissionsStorage.userPermissions.pipe(\r\n map(userPermissions => this.getColumns(userPermissions))\r\n );\r\n }\r\n\r\n public createAnnouncement() {\r\n const configDialog: IMdlCustomDialogConfiguration = {\r\n component: AnnouncementEditDialogComponent,\r\n providers: [{\r\n provide: ANNOUNCEMENT_EDIT_TOKEN, useValue: null\r\n }],\r\n isModal: true,\r\n clickOutsideToClose: true\r\n };\r\n\r\n this.dialogServce.showCustomDialog(configDialog);\r\n }\r\n\r\n private getColumns(userPermissions: UserPermissions): CovanceGridColumn[] {\r\n const columns: CovanceGridColumn[] = [\r\n {\r\n headerName: 'Title',\r\n field: 'title',\r\n comparator: (a, b) => comparators.mixedStringComparator(a, b)\r\n },\r\n this.gridColumns.multiLineStringColumn({\r\n title: 'Roles',\r\n field: 'roles',\r\n stringsValueGetter: (entity: AnnouncementInfo) => entity.roles,\r\n tooltipGetter: (role) => [{ content: role }]\r\n }),\r\n {\r\n headerName: 'Pinned?',\r\n field: 'pinnedFlag',\r\n cellRenderer: booleanRenderer,\r\n getQuickFilterText: booleanQuickFilterText,\r\n },\r\n {\r\n headerName: 'Start Date',\r\n field: 'effectiveStartDate',\r\n comparator: dateTimeComparator,\r\n valueGetter: (params: AnnouncementInfoGridRowItem) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n return dateRenderer({ value: params.data.effectiveStartDate });\r\n }\r\n },\r\n {\r\n headerName: 'End Date',\r\n field: 'effectiveEndDate',\r\n comparator: dateTimeComparator,\r\n valueGetter: (params: AnnouncementInfoGridRowItem) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n return dateRenderer({ value: params.data.effectiveEndDate });\r\n }\r\n },\r\n {\r\n headerName: 'Posted',\r\n field: 'posted',\r\n sort: 'desc',\r\n comparator: dateTimeComparator,\r\n valueGetter: (params: AnnouncementInfoGridRowItem) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n return dateTimeRenderer({ value: params.data.posted });\r\n }\r\n },\r\n ];\r\n\r\n this.appendActionsMenu(userPermissions, columns);\r\n\r\n return columns;\r\n }\r\n\r\n private appendActionsMenu(userPermissions: UserPermissions, columns: CovanceGridColumn[]) {\r\n if (userPermissions.has('UploadAnnouncements')) {\r\n columns.push(\r\n this.gridColumns.actionsMenuColumn({ cellRendererFramework: AnnouncementsActionsMenuAgRendererComponent })\r\n );\r\n }\r\n }\r\n}","import { dataMember, required, typedArray } from 'santee-dcts';\r\nimport * as moment from 'moment';\r\n\r\nexport interface HasRoles {\r\n roles: string[];\r\n}\r\n\r\nexport class CommonLinkInfo implements HasRoles {\r\n @dataMember()\r\n @required()\r\n public commonLinkId: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true})\r\n public description: string;\r\n\r\n @dataMember()\r\n @required()\r\n public url: string;\r\n\r\n @dataMember()\r\n @required()\r\n public title: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public sortOrder: number;\r\n\r\n @dataMember({ customDeserializer: value => moment(value) })\r\n @required()\r\n public postedDate: moment.Moment; \r\n\r\n @dataMember()\r\n @required()\r\n @typedArray(String)\r\n public roles: string[];\r\n}\r\n\r\nexport class CommonLinksInfoRealModel {\r\n @dataMember()\r\n @required()\r\n @typedArray(CommonLinkInfo)\r\n public commonLinksInfo: CommonLinkInfo[];\r\n}","import { IMdlCustomDialogConfiguration, MdlDialogReference, MdlDialogService } from '@angular-mdl/core';\r\nimport { Injectable } from '@angular/core';\r\nimport { CommonLinkEditorComponent, COMMON_LINK_EDITOR_OPTIONS } from './common-link-editor.component';\r\nimport { CommonLinkInfo } from './common-link-info';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport interface CommonLinkEditorOptions {\r\n isNew: boolean;\r\n editedEntity: CommonLinkInfo;\r\n}\r\n\r\n@Injectable()\r\nexport class CommonLinksInfoEditor {\r\n\r\n constructor(private readonly mdlDialogService: MdlDialogService) { }\r\n\r\n public openToCreate(): Observable {\r\n const editorOptions: CommonLinkEditorOptions = {\r\n isNew: true,\r\n editedEntity: new CommonLinkInfo()\r\n };\r\n\r\n return this.openDialog(editorOptions); \r\n }\r\n\r\n public openToEdit(editedCommonLink: CommonLinkInfo): Observable {\r\n const editorOptions: CommonLinkEditorOptions = {\r\n isNew: false,\r\n editedEntity: editedCommonLink\r\n };\r\n\r\n return this.openDialog(editorOptions); \r\n }\r\n\r\n private openDialog(commonLinkEditorOptions: CommonLinkEditorOptions): Observable {\r\n const dialogConfig: IMdlCustomDialogConfiguration = {\r\n isModal: true,\r\n clickOutsideToClose: true,\r\n component: CommonLinkEditorComponent,\r\n styles: {\r\n 'min-width': '280px'\r\n },\r\n providers: [\r\n {\r\n provide: COMMON_LINK_EDITOR_OPTIONS,\r\n useValue: commonLinkEditorOptions\r\n }\r\n ]\r\n };\r\n\r\n return this.mdlDialogService.showCustomDialog(dialogConfig); \r\n }\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable, of } from 'rxjs';\r\nimport { map, mergeMap, publishReplay, refCount, switchMap } from 'rxjs/operators';\r\nimport { deserialize } from 'santee-dcts';\r\nimport { Settings } from '../../core/settings';\r\nimport { CommonLinkInfo, CommonLinksInfoRealModel } from './common-link-info';\r\nimport { ActivityLogger } from '../../activities/activity-logger';\r\nimport { comparators } from '../../core/comparators';\r\n\r\n@Injectable()\r\nexport class CommonLinksInfoStorage {\r\n private readonly commonLinksInfo: Observable;\r\n private loadAll$ = new BehaviorSubject(true);\r\n\r\n constructor(\r\n private readonly http: HttpClient,\r\n private readonly settings: Settings,\r\n private readonly activityLogger: ActivityLogger,\r\n ) {\r\n this.commonLinksInfo = this.loadAll$\r\n .pipe(\r\n mergeMap(() => of(of(null), this.loadAll())),\r\n switchMap(x => x),\r\n publishReplay(1),\r\n refCount()\r\n );\r\n }\r\n\r\n public get all(): Observable {\r\n return this.commonLinksInfo;\r\n }\r\n\r\n public forceLoadAll() {\r\n this.loadAll$.next(true);\r\n }\r\n\r\n public post(commonLinkInfo: CommonLinkInfo): Promise {\r\n this.activityLogger.logActivity('Create Common Link');\r\n\r\n return this.http.post(`${this.settings.apiUrl}/admin/common-links`, commonLinkInfo).toPromise();\r\n }\r\n\r\n public put(commonLinkInfo: CommonLinkInfo): Promise {\r\n this.activityLogger.logActivity('Edit Common Link');\r\n\r\n return this.http.put(`${this.settings.apiUrl}/admin/common-links/${commonLinkInfo.commonLinkId}`, commonLinkInfo).toPromise();\r\n }\r\n\r\n public delete(commonLinkId: number): Promise {\r\n this.activityLogger.logActivity('Delete Common Link');\r\n\r\n return this.http.delete(`${this.settings.apiUrl}/admin/common-links/${commonLinkId}`).toPromise();\r\n }\r\n\r\n private loadAll(): Observable {\r\n return this.http.get(`${this.settings.apiUrl}/admin/common-links`)\r\n .pipe(\r\n map(rawData => {\r\n let commonLinks = deserialize(rawData, CommonLinksInfoRealModel).commonLinksInfo;\r\n commonLinks = commonLinks.sort((a, b) => comparators.dateTimeComparator(b ? b.postedDate : null, a ? a.postedDate : null));\r\n return commonLinks;\r\n }),\r\n );\r\n }\r\n}\r\n","import { MdlDialogService } from '@angular-mdl/core';\r\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ActionsMenuAgRendererComponent, ActionsMenuItem } from '../../covance-ag-grid';\r\nimport { CommonLinkEditorResult, CommonLinkEditorResultAction } from './common-link-editor.component';\r\nimport { CommonLinkInfo } from './common-link-info';\r\nimport { CommonLinksInfoEditor } from './common-links-editor';\r\nimport { CommonLinksInfoStorage } from './common-links-info-storage';\r\nimport { Observable } from 'rxjs';\r\nimport { switchMap, map } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'common-link-editor-menu-ag-renderer',\r\n template: require('../../covance-ag-grid/renderers/actions-menu-ag-renderer-base.html'),\r\n styles: [require('../../covance-ag-grid/renderers/actions-menu-ag-renderer-base.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CommonLinkActionsMenuAgRendererComponent extends ActionsMenuAgRendererComponent {\r\n\r\n constructor(\r\n private readonly commonLinksInfoStorage: CommonLinksInfoStorage,\r\n private readonly mdlDialogService: MdlDialogService,\r\n private readonly commonLinksInfoEditor: CommonLinksInfoEditor\r\n ) {\r\n super();\r\n }\r\n\r\n public createMenuItems(commonLink: CommonLinkInfo): ActionsMenuItem[] {\r\n return [\r\n {\r\n title: 'Edit',\r\n onClick: () => this.editCommonLink(commonLink)\r\n },\r\n {\r\n title: 'Delete',\r\n onClick: () => {\r\n this.deleteCommonLink(commonLink);\r\n }\r\n }\r\n ];\r\n }\r\n\r\n private async deleteCommonLink(commonLink: CommonLinkInfo) {\r\n const deleteConfirmed = await this.showDeleteDialog(commonLink);\r\n \r\n if (deleteConfirmed) {\r\n await this.commonLinksInfoStorage.delete(commonLink.commonLinkId);\r\n this.commonLinksInfoStorage.forceLoadAll();\r\n }\r\n }\r\n\r\n private async editCommonLink(commonLink: CommonLinkInfo) {\r\n const dialogResult = await this.showEditDialog(commonLink).toPromise();\r\n\r\n if (dialogResult.action === CommonLinkEditorResultAction.save) {\r\n await this.commonLinksInfoStorage.put(dialogResult.editedEntity);\r\n this.commonLinksInfoStorage.forceLoadAll();\r\n }\r\n }\r\n\r\n private async showDeleteDialog(commonLink: CommonLinkInfo): Promise {\r\n try {\r\n await this.mdlDialogService.confirm(`The ${commonLink.title} link will be deleted. Continue?`).toPromise();\r\n return true;\r\n } catch {\r\n return false;\r\n }\r\n }\r\n\r\n private showEditDialog(commonLink: CommonLinkInfo): Observable {\r\n return this.commonLinksInfoEditor.openToEdit(commonLink).pipe(\r\n switchMap(dialog => dialog.onHide()),\r\n map(dialogResult => dialogResult || { action: CommonLinkEditorResultAction.close })\r\n );\r\n }\r\n}","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { CovanceGridColumn, dateTimeComparator, dateTimeRenderer } from '../../covance-ag-grid';\r\nimport { CommonLinkActionsMenuAgRendererComponent } from './common-link-actions-menu-ag-renderer.component';\r\nimport { CommonLinkEditorResult, CommonLinkEditorResultAction } from './common-link-editor.component';\r\nimport { CommonLinkInfo } from './common-link-info';\r\nimport { CommonLinkInfoGridRowItem } from './common-link-info-grid-row';\r\nimport { CommonLinksInfoEditor } from './common-links-editor';\r\nimport { CommonLinksInfoStorage } from './common-links-info-storage';\r\nimport { GridColumns } from '../../shared/grid-columns';\r\nimport { switchMap, map } from 'rxjs/operators';\r\nimport { comparators } from '../../core/comparators';\r\n\r\n@Component({\r\n selector: 'common-links-grid',\r\n template: require('./common-links-grid.component.html'),\r\n styles: [require('./common-links-grid.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CommonLinksGridComponent {\r\n public readonly columns: CovanceGridColumn[];\r\n public readonly commonLinksInfoData: Observable;\r\n\r\n constructor(\r\n private commonLinksInfoStorage: CommonLinksInfoStorage,\r\n private readonly commonLinksInfoEditor: CommonLinksInfoEditor,\r\n gridColumns: GridColumns\r\n ) {\r\n this.commonLinksInfoData = commonLinksInfoStorage.all;\r\n this.columns = [\r\n {\r\n headerName: 'Title',\r\n field: 'title',\r\n comparator: (a, b) => comparators.mixedStringComparator(a, b)\r\n },\r\n gridColumns.multiLineStringColumn({\r\n title: 'Roles',\r\n field: 'roles',\r\n stringsValueGetter: (entity: CommonLinkInfo) => entity.roles,\r\n tooltipGetter: (role) => [{ content: role }]\r\n }),\r\n {\r\n headerName: 'Url',\r\n field: 'url'\r\n },\r\n {\r\n headerName: 'Posted',\r\n field: 'postedDate',\r\n sort: 'desc',\r\n comparator: dateTimeComparator,\r\n valueGetter: (params: CommonLinkInfoGridRowItem) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n return dateTimeRenderer({ value: params.data.postedDate });\r\n }\r\n },\r\n {\r\n headerName: 'Sort Order',\r\n field: 'sortOrder'\r\n },\r\n gridColumns.actionsMenuColumn({ cellRendererFramework: CommonLinkActionsMenuAgRendererComponent })\r\n ];\r\n }\r\n\r\n public async onAddNewLink() {\r\n const dialogResult = await this.showCreateDialog().toPromise();\r\n\r\n if (dialogResult.action === CommonLinkEditorResultAction.create) {\r\n await this.commonLinksInfoStorage.post(dialogResult.editedEntity);\r\n this.commonLinksInfoStorage.forceLoadAll();\r\n }\r\n }\r\n\r\n private showCreateDialog(): Observable {\r\n return this.commonLinksInfoEditor.openToCreate().pipe(\r\n switchMap(dialog => dialog.onHide()),\r\n map(dialogResult => dialogResult || { action: CommonLinkEditorResultAction.close })\r\n );\r\n }\r\n}\r\n","import { map } from 'rxjs/operators';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { deserialize } from 'santee-dcts';\r\nimport { Observable, of } from 'rxjs';\r\n\r\nimport { Settings } from '../../core';\r\nimport { Project, ProjectReadModel } from './project';\r\nimport { SitesReadModel } from '../../sites/sites-read.model';\r\n\r\n@Injectable()\r\nexport class ProjectsStorage {\r\n constructor(\r\n private readonly http: HttpClient,\r\n private readonly settings: Settings\r\n ) { }\r\n\r\n public search(searchTerm: string): Observable {\r\n return searchTerm\r\n ? this.http.get(`${this.settings.apiUrl}/projects/search`, { params: { searchTerm } })\r\n .pipe(map(projects => deserialize(projects, ProjectReadModel).projects))\r\n : of([]);\r\n }\r\n\r\n public getProjectSites(subProtocolId: number) {\r\n return this.http.get(`${this.settings.apiUrl}/projects/${subProtocolId}/sites`)\r\n .pipe(map(sites => deserialize(sites, SitesReadModel).sites));\r\n }\r\n\r\n}","'use strict';\r\n\r\nimport * as moment from 'moment';\r\nimport { dataMember, required, typedArray } from 'santee-dcts';\r\nimport { deserializers } from '../../core';\r\n\r\nexport class Accession {\r\n\r\n @dataMember()\r\n @required()\r\n public accessionId: number;\r\n\r\n @dataMember()\r\n @required()\r\n public accessionNumber: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public visit: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public projectNumber: string;\r\n\r\n @dataMember({ customDeserializer: deserializers.deserializeDate })\r\n @required({ nullable: true })\r\n public collectionDate: moment.Moment;\r\n\r\n public toString() {\r\n return [\r\n this.accessionNumber,\r\n this.visit,\r\n this.collectionDate ? this.collectionDate.format('L LT') : null\r\n ].filter(x => !!x).join(' - ');\r\n }\r\n}\r\n\r\nexport class AccessionReadModel {\r\n @dataMember()\r\n @required()\r\n @typedArray(Accession)\r\n public accessions: Accession[];\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { deserialize } from 'santee-dcts';\r\nimport { Settings } from '../../core';\r\nimport { Accession, AccessionReadModel } from './accession';\r\nimport { EQueryAccessionInfo, AccessionSubjectReadModel } from './e-query-accession-info';\r\n\r\nexport interface AccessionsSearcher {\r\n search(subProtocolId: number, searchTerm: string): Observable;\r\n}\r\n\r\n@Injectable()\r\nexport class AccessionsStorage implements AccessionsSearcher {\r\n constructor(\r\n private readonly http: HttpClient,\r\n private readonly settings: Settings\r\n ) { }\r\n\r\n public search(subProtocolId: number, searchTerm: string): Observable {\r\n return searchTerm\r\n ? this.http.get(`${this.settings.apiUrl}/accessions`, { params: { searchTerm, subProtocolId: subProtocolId !== null ? subProtocolId.toString() : null } })\r\n .pipe(map(projects => deserialize(projects, AccessionReadModel).accessions))\r\n : of([]);\r\n }\r\n}\r\n","import { Component, ChangeDetectionStrategy, Input, InjectionToken, Optional, Inject } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { BehaviorSubject, Observable, Subject, of } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged, tap, switchMap, finalize } from 'rxjs/operators';\r\nimport { Accession } from '../accession';\r\nimport { AccessionsStorage, AccessionsSearcher } from '../accessions-storage';\r\n\r\nexport const CUSTOM_ACCESSIONS_STORAGE = new InjectionToken('Custom accessions storage');\r\n\r\n@Component({\r\n selector: 'accession-search',\r\n template: require('./accession-search.component.html'),\r\n styles: [require('./accession-search.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AccessionSearchComponent {\r\n @Input()\r\n public label = 'Accession Number';\r\n\r\n @Input()\r\n public control: FormControl;\r\n\r\n @Input()\r\n public thresholdSearch = 5;\r\n\r\n public readonly isSearching$ = new BehaviorSubject(false);\r\n public accessions$: Observable;\r\n public readonly searchFlow$ = new Subject();\r\n public readonly requiredErrorName = 'required';\r\n private readonly accessionsStorage: AccessionsSearcher;\r\n\r\n constructor(\r\n accessionsStorage: AccessionsStorage,\r\n @Optional() @Inject(CUSTOM_ACCESSIONS_STORAGE) customAccessionsStorage: AccessionsSearcher,\r\n ) {\r\n this.accessionsStorage = customAccessionsStorage\r\n ? customAccessionsStorage\r\n : accessionsStorage;\r\n\r\n this.accessions$ = this.searchFlow$.pipe(\r\n debounceTime(300),\r\n distinctUntilChanged(),\r\n tap(() => this.isSearching$.next(true)),\r\n switchMap(term => this.loadAccessions(term).pipe(\r\n finalize(() => this.isSearching$.next(false))\r\n )),\r\n );\r\n }\r\n\r\n public onSelectedAccessionChange(accessionSelects: Accession[]) {\r\n const accessionSelect = accessionSelects[0];\r\n if (accessionSelect) {\r\n this.control.setValue(accessionSelect);\r\n }\r\n }\r\n\r\n public getAccessionNames(accession: Accession): string {\r\n return `${accession.accessionNumber}(${accession.projectNumber})`;\r\n }\r\n\r\n private loadAccessions(searchTerm: string): Observable {\r\n return searchTerm && searchTerm.length < this.thresholdSearch\r\n ? of([])\r\n : this.accessionsStorage.search(null, searchTerm);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Settings } from '../../../core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { dataMember, deserialize, required, typedArray } from 'santee-dcts';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class UserEmailsStorage {\r\n constructor(\r\n private readonly http: HttpClient,\r\n private readonly settings: Settings,\r\n ) {\r\n }\r\n\r\n public search(searchTerm: string, accessionNumber: string): Observable {\r\n return searchTerm ? this.http.get(`${this.settings.apiUrl}/admin/e-query-user-emails`, {params: {searchTerm: searchTerm, accessionNumber: accessionNumber}})\r\n .pipe(map(mails => deserialize(mails, AdminEQueryUserEmailsReadModel).mails))\r\n : of([]);\r\n }\r\n}\r\n\r\nexport class AdminEQueryUserEmailsReadModel {\r\n @dataMember()\r\n @required()\r\n @typedArray(String)\r\n public mails: string[];\r\n}\r\n","import { Component, Input, forwardRef, ChangeDetectionStrategy, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport {BehaviorSubject, combineLatest, Observable, of} from 'rxjs';\r\nimport {debounceTime, distinctUntilChanged, filter, finalize, map, publishReplay, refCount, switchMap, tap, withLatestFrom} from 'rxjs/operators';\r\nimport { CovanceSelectComponent } from '../../../covance-select/covance-select.component';\r\nimport { UserEmailsStorage } from './user-emails-storage';\r\nimport { EQueryAccessionInfo } from '../../shared/e-query-accession-info';\r\n\r\n@Component({\r\n selector: 'user-emails-search',\r\n template: require('./user-emails-search.component.html'),\r\n styles: [require('./user-emails-search.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => UserEmailsSearchComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class UserEmailsSearchComponent implements ControlValueAccessor {\r\n\r\n public get value() {\r\n return this.val;\r\n }\r\n\r\n @Input()\r\n public set value(inputVal) {\r\n this.val = inputVal;\r\n this.onChange(this.val);\r\n }\r\n\r\n @Output()\r\n public selectedItemChanged = new EventEmitter();\r\n\r\n @Input()\r\n public disabled = false;\r\n\r\n @Input()\r\n public thresholdSearch = 3;\r\n\r\n @Input()\r\n public set accessionNumber(value: string) {\r\n this.accessionNumber$.next(value);\r\n }\r\n \r\n public readonly searchFlow$ = new BehaviorSubject(undefined);\r\n public readonly isSearching$ = new BehaviorSubject(false);\r\n public emails$: Observable;\r\n public selectedItem$ = new BehaviorSubject('');\r\n public selectedItems$: Observable;\r\n\r\n private val: string;\r\n @ViewChild(CovanceSelectComponent)\r\n private covanceSelectComponent: CovanceSelectComponent;\r\n\r\n private accessionNumber$ = new BehaviorSubject(undefined);\r\n\r\n constructor(private readonly userEmailsStorage: UserEmailsStorage) {\r\n this.emails$ = combineLatest(this.searchFlow$, this.accessionNumber$.pipe(filter(a => !!a))).pipe(\r\n debounceTime(300),\r\n distinctUntilChanged(),\r\n tap(() => {\r\n this.isSearching$.next(true);\r\n }),\r\n switchMap(([searchTerm, accessionNumber]) => this.loadEscalations(searchTerm, accessionNumber).pipe(\r\n finalize(() => this.isSearching$.next(false)),\r\n )),\r\n );\r\n\r\n this.selectedItems$ = this.emails$.pipe(\r\n withLatestFrom(this.selectedItem$),\r\n tap(([emails, selectedEmail]) => {\r\n this.onSelectedEmailChange([selectedEmail]);\r\n }),\r\n map(([emails, selectedEmail]) => { \r\n return emails.filter(v => v === selectedEmail);\r\n }),\r\n publishReplay(1),\r\n refCount());\r\n }\r\n\r\n public onChange: any = () => { };\r\n public onTouched: any = () => { };\r\n\r\n public searchTermChanged(term: string) {\r\n if (!!term) {\r\n this.searchFlow$.next(term);\r\n }\r\n }\r\n\r\n public onSelectedEmailChange(emailSelects: string[]) {\r\n const emailSelect = emailSelects[0];\r\n if (emailSelect) {\r\n this.selectedItemChanged.emit(emailSelect);\r\n this.value = emailSelect;\r\n this.onChange(emailSelect);\r\n }\r\n }\r\n\r\n public writeValue(value: string): void {\r\n this.value = value;\r\n }\r\n\r\n public clearValue(): void {\r\n this.searchFlow$.next(null);\r\n this.covanceSelectComponent.clearSelectedItems();\r\n }\r\n\r\n public registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n public setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n private loadEscalations(searchTerm: string, accessionNumber: string): Observable {\r\n return searchTerm && searchTerm.length < this.thresholdSearch\r\n ? of([])\r\n : this.userEmailsStorage.search(searchTerm, accessionNumber);\r\n }\r\n}\r\n","import { Component, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\r\nimport { debounceTime, distinctUntilChanged, tap, flatMap, map } from 'rxjs/operators';\r\nimport { AgRendererComponent } from 'ag-grid-angular';\r\nimport { FormControl } from '@angular/forms';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { AdminProtocolsStorage } from '../shared/admin-protocols-storage';\r\nimport { ProtocolGridRowItem } from './protocol-grid';\r\nimport { UserPermissionsStorage } from '../../user-permissions/user-permissions-storage';\r\n\r\n@Component({\r\n selector: 'protocol-change-accessibility',\r\n template: require('./protocol-change-accessibility.component.html'),\r\n styles: [require('./protocol-change-accessibility.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ProtocolChangeAccessibilityComponent implements AgRendererComponent, OnDestroy {\r\n public isAccessibleFC = new FormControl();\r\n public readonly disableActivation$: Observable;\r\n\r\n private subscription: Subscription;\r\n\r\n constructor(private protocolsStorage: AdminProtocolsStorage, private changeDetectorRef: ChangeDetectorRef, private readonly permissionsStorage: UserPermissionsStorage) {\r\n this.disableActivation$ = permissionsStorage.userPermissions.pipe(\r\n map(permissions => permissions.has('ProtocolReadAccess')),\r\n );\r\n }\r\n\r\n public agInit(row: ProtocolGridRowItem): void {\r\n if (!row.data) {\r\n return;\r\n }\r\n\r\n this.isAccessibleFC.setValue(row.data.isAccessible);\r\n\r\n this.subscription = this.isAccessibleFC.valueChanges\r\n .pipe(\r\n debounceTime(500),\r\n distinctUntilChanged(),\r\n tap(() => {\r\n this.isAccessibleFC.disable({ onlySelf: true, emitEvent: false });\r\n row.data.isAccessible = !row.data.isAccessible;\r\n this.changeDetectorRef.markForCheck();\r\n }),\r\n flatMap((newValue: boolean) => {\r\n return this.protocolsStorage.updateAccessibility(row.data.id, newValue);\r\n }),\r\n tap(() => {\r\n this.isAccessibleFC.enable();\r\n this.changeDetectorRef.markForCheck();\r\n })\r\n )\r\n .subscribe();\r\n\r\n this.disableActivation$.subscribe(data => {\r\n if (data) {\r\n this.isAccessibleFC.disable({ onlySelf: true, emitEvent: false });\r\n }\r\n });\r\n }\r\n\r\n public refresh() {\r\n return false;\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n}","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from '@angular/core';\r\nimport { GridOptions } from 'ag-grid-community';\r\nimport { first } from 'rxjs/operators';\r\nimport { CovanceGridColumn, BooleanAgFloatingFilterComponent, BooleanCellRendererParams, BooleanAgFloatingFilterParams, BooleanCellValue } from '../../covance-ag-grid';\r\nimport { Protocol, AdminProtocolsStorage } from '../shared';\r\nimport { ProtocolChangeAccessibilityComponent } from './protocol-change-accessibility.component';\r\nimport { comparators } from '../../core';\r\n\r\n@Component({\r\n selector: 'protocol-activation',\r\n template: require('./protocol-activation.component.html'),\r\n styles: [require('./protocol-activation.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ProtocolActivationComponent {\r\n public gridOptions: GridOptions;\r\n\r\n public columnDefs: CovanceGridColumn[];\r\n\r\n public protocolItems: Protocol[];\r\n\r\n constructor(private protocolsStorage: AdminProtocolsStorage, private changeDetectorRef: ChangeDetectorRef) {\r\n this.protocolsStorage.all.pipe(first())\r\n .subscribe(protocols => {\r\n this.protocolItems = protocols;\r\n this.changeDetectorRef.markForCheck();\r\n });\r\n\r\n this.columnDefs = this.getGridColumns();\r\n\r\n this.gridOptions = {\r\n enableFilter: false,\r\n floatingFilter: true,\r\n rowHeight: 27,\r\n enableSorting: true\r\n };\r\n }\r\n\r\n private getGridColumns(): CovanceGridColumn[] {\r\n const activeInativeRenderer = (value: BooleanCellValue) => value === 'true' ? 'Active' : 'Inactive';\r\n const columns: CovanceGridColumn[] = [\r\n {\r\n headerName: 'Sponsor',\r\n field: 'sponsor',\r\n suppressFilter: true,\r\n comparator: (a, b) => comparators.mixedStringComparator(a, b),\r\n },\r\n {\r\n headerName: 'Protocol',\r\n field: 'protocolName',\r\n suppressFilter: true,\r\n comparator: (a, b) => comparators.mixedStringComparator(a, b),\r\n },\r\n {\r\n headerName: 'Projects',\r\n field: 'projects',\r\n suppressFilter: true,\r\n valueGetter: (value) => (value.data.projects as string[]).join(', '),\r\n },\r\n {\r\n headerName: 'Accessible',\r\n field: 'isAccessible',\r\n cellRendererFramework: ProtocolChangeAccessibilityComponent,\r\n filter: 'agSetColumnFilter',\r\n filterParams: {\r\n values: ['true', 'false'],\r\n cellRenderer: (params: BooleanCellRendererParams) => activeInativeRenderer(params.value)\r\n },\r\n floatingFilterComponentFramework: BooleanAgFloatingFilterComponent,\r\n floatingFilterComponentParams: {\r\n booleanValueRenderer: activeInativeRenderer\r\n } as BooleanAgFloatingFilterParams\r\n },\r\n ];\r\n return columns;\r\n }\r\n}","import { FormArray, ValidatorFn } from '@angular/forms';\r\nimport { FileFormGroup } from './file-form-group';\r\n\r\nexport class FileFormArray extends FormArray {\r\n\r\n public get fileFormGroups(): FileFormGroup[] {\r\n return this.controls as FileFormGroup[];\r\n }\r\n\r\n public get hasArrayLengthError(): boolean {\r\n return this.hasError(FileFormArray.maxArrayLengthError);\r\n }\r\n private static readonly requireFilesError = 'requireFiles';\r\n private static readonly maxArrayLengthError = 'arrayLength';\r\n private customValidators: ValidatorFn[];\r\n\r\n constructor(isRequired = true) {\r\n super([]);\r\n this.customValidators = [FileFormArray.baseFilesValidator()];\r\n\r\n if (isRequired) {\r\n this.customValidators.push(FileFormArray.requireFilesValidator());\r\n }\r\n\r\n this.setCustomValidators();\r\n }\r\n\r\n public getByIndex(fileIndex: number): FileFormGroup {\r\n return this.at(fileIndex) as FileFormGroup;\r\n }\r\n\r\n public setCustomValidators(validators: ValidatorFn[] = []) {\r\n this.customValidators = this.customValidators.concat(validators);\r\n this.setValidators(this.customValidators);\r\n }\r\n\r\n public static maxArrayLengthValidator(maxArrayLength: number): ValidatorFn {\r\n return (fileControls: FileFormArray) => {\r\n return fileControls.length > maxArrayLength\r\n ? { [this.maxArrayLengthError]: true }\r\n : null;\r\n };\r\n } \r\n\r\n private static baseFilesValidator(): ValidatorFn {\r\n return (fileControls: FileFormArray) => {\r\n for (let fileControl of fileControls.fileFormGroups) {\r\n fileControl.languageControl.updateValueAndValidity({ onlySelf: true });\r\n fileControl.fileNameControl.updateValueAndValidity({ onlySelf: true });\r\n fileControl.updateValueAndValidity({ onlySelf: true });\r\n }\r\n return null;\r\n };\r\n } \r\n\r\n private static requireFilesValidator(): ValidatorFn {\r\n return (fileControls: FileFormArray) => {\r\n return !fileControls.length\r\n ? { [this.requireFilesError]: true }\r\n : null;\r\n };\r\n } \r\n}","import { dataMember, required, typedArray } from 'santee-dcts';\r\nimport { CategoryNaturalKey } from './category';\r\n\r\nexport abstract class DocumentsCounterBase {\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public categoryId: CategoryNaturalKey;\r\n\r\n @dataMember()\r\n @required()\r\n public rootCategoryId: CategoryNaturalKey;\r\n\r\n @dataMember()\r\n @required()\r\n public totalDocs: number;\r\n\r\n public abstract get totalUnread(): number;\r\n}\r\n\r\nexport class InvestigatorDocumentsCounter extends DocumentsCounterBase {\r\n @dataMember()\r\n @required()\r\n public subProtocolId: number;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public siteId: number;\r\n\r\n @dataMember()\r\n @required()\r\n public unreadSiteCount: number;\r\n\r\n @dataMember()\r\n @required()\r\n public unreadAllSitesCount: number;\r\n\r\n public get totalUnread(): number {\r\n return this.unreadSiteCount + this.unreadAllSitesCount;\r\n }\r\n}\r\n\r\nexport interface DocumentsCounterReadModel {\r\n counters: T[];\r\n}\r\n\r\nexport class InvestigatorDocumentsCounterReadModel implements DocumentsCounterReadModel {\r\n @dataMember()\r\n @required()\r\n @typedArray(InvestigatorDocumentsCounter)\r\n public counters: InvestigatorDocumentsCounter[];\r\n}\r\n\r\nexport class GeneralDocumentsCounter extends DocumentsCounterBase {\r\n @dataMember()\r\n @required()\r\n public unreadCount: number;\r\n\r\n public get totalUnread(): number {\r\n return this.unreadCount;\r\n }\r\n}\r\n\r\nexport class GeneralDocumentsCounterReadModel implements DocumentsCounterReadModel {\r\n @dataMember()\r\n @required()\r\n @typedArray(GeneralDocumentsCounter)\r\n public counters: GeneralDocumentsCounter[];\r\n}\r\n\r\nexport class SponsorDocumentsCounter extends DocumentsCounterBase {\r\n @dataMember()\r\n @required()\r\n public protocolId: number;\r\n\r\n @dataMember()\r\n @required()\r\n public unreadCount: number;\r\n\r\n public get totalUnread(): number {\r\n return this.unreadCount;\r\n }\r\n}\r\n\r\nexport class SponsorDocumentsCounterReadModel implements DocumentsCounterReadModel {\r\n @dataMember()\r\n @required()\r\n @typedArray(SponsorDocumentsCounter)\r\n public counters: SponsorDocumentsCounter[];\r\n}","import { UnreadReportsStorage } from '../documents/unread-reports-storage';\r\nimport { Observable } from 'rxjs';\r\nimport { Settings } from '../core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { CategoriesStorage, ReportsPackage, Report, CategoryNaturalKey } from '../documents';\r\nimport { UserStorage } from '../user';\r\nimport { Injectable } from '@angular/core';\r\nimport { GeneralDocumentsCounter, GeneralDocumentsCounterReadModel } from '../documents/models/documents-counter';\r\n\r\n@Injectable()\r\nexport class GeneralUnreadReportsStorage extends UnreadReportsStorage {\r\n constructor(\r\n settings: Settings,\r\n http: HttpClient,\r\n categoriesStorage: CategoriesStorage,\r\n userStorage: UserStorage\r\n ) {\r\n super(settings, http, categoriesStorage, userStorage);\r\n }\r\n\r\n protected getUnreadCounters(): Observable {\r\n return this.loadUnreadCounters('documents-counters/general', GeneralDocumentsCounterReadModel);\r\n }\r\n\r\n protected recountOnDocumentsReading(updatedReports: ReportsPackage, unreadCounters: GeneralDocumentsCounter[]): GeneralDocumentsCounter[] {\r\n const recentlyReadReports: Report[] = updatedReports.reports.filter(report => !report.isRead);\r\n const currentCategoryId: CategoryNaturalKey = updatedReports.category.categoryId;\r\n\r\n const item = unreadCounters.find(r =>\r\n (r.rootCategoryId === currentCategoryId || r.categoryId === currentCategoryId)\r\n );\r\n\r\n if (item) {\r\n item.unreadCount -= recentlyReadReports.length;\r\n }\r\n\r\n return unreadCounters;\r\n }\r\n\r\n protected recountOnCountersUpdating(updatedReports: ReportsPackage, unreadCounters: GeneralDocumentsCounter[]): GeneralDocumentsCounter[] {\r\n const unreadReports: Report[] = updatedReports.reports.filter(report => !report.isRead);\r\n const currentCategoryId: CategoryNaturalKey = updatedReports.category.categoryId;\r\n\r\n const item = unreadCounters.find(r =>\r\n (r.rootCategoryId === currentCategoryId || r.categoryId === currentCategoryId)\r\n );\r\n\r\n if (item) {\r\n item.unreadCount = unreadReports.length;\r\n } else {\r\n const unreadData = new GeneralDocumentsCounter();\r\n unreadData.categoryId = currentCategoryId;\r\n unreadData.unreadCount = unreadReports.length;\r\n unreadData.totalDocs = updatedReports.reports.length;\r\n unreadCounters.push(unreadData);\r\n }\r\n\r\n return unreadCounters;\r\n }\r\n}","import { CategoryNaturalKey } from './models/category';\r\nimport {\r\n CommunicationReport, GeneralReport, LabManualsReport, LabReport,\r\n Report, SiteActionsReport, SynopsisReport, TrainingMaterialsReport\r\n} from './models/report';\r\n\r\nexport function getReportType(categoryId: CategoryNaturalKey) {\r\n switch (categoryId) {\r\n case 'general-training-materials':\r\n case 'general-manuals':\r\n case 'regulatory-documents':\r\n case 'general-information':\r\n case 'quick-reference-guide':\r\n case 'general-communications':\r\n case 'specimen-collection':\r\n case 'packaging-and-shipping':\r\n case 'application-training':\r\n return GeneralReport;\r\n\r\n case 'lab-manuals':\r\n case 'study-manuals':\r\n case 'lab-manuals-others':\r\n return LabManualsReport;\r\n\r\n case 'synopsis':\r\n return SynopsisReport;\r\n\r\n case 'training-materials':\r\n case 'training-materials-e-learning':\r\n case 'training-materials-others':\r\n return TrainingMaterialsReport;\r\n\r\n case 'site-communications':\r\n case 'sponsor-communications':\r\n case 'sponsor-communications-e-learning':\r\n case 'sponsor-communications-main':\r\n return CommunicationReport;\r\n\r\n case 'site-actions':\r\n return SiteActionsReport;\r\n\r\n case 'lab-reports':\r\n return LabReport;\r\n \r\n case 'result-alerts':\r\n return LabReport;\r\n\r\n default:\r\n return Report;\r\n }\r\n}","import { dataMember, required, typedArray } from 'santee-dcts';\r\n\r\nexport class UploadedFileResponse {\r\n @dataMember()\r\n @required({ nullable: true })\r\n public fileName: string;\r\n\r\n @dataMember()\r\n @required()\r\n public isValid: boolean;\r\n\r\n @dataMember()\r\n @required()\r\n @typedArray(String)\r\n public errorMessages: string[];\r\n}\r\n\r\nexport enum UploadResponseType {\r\n ErrorMessage = 'ErrorMessage',\r\n InvalidFiles = 'InvalidFiles',\r\n InvalidDocumentMetadata = 'InvalidDocumentMetadata',\r\n DocumentFolderMissing = 'DocumentFolderMissing'\r\n}\r\n\r\nexport class UploadedFilesResponse {\r\n @dataMember()\r\n @required()\r\n public responseType: UploadResponseType;\r\n\r\n @dataMember()\r\n @required()\r\n @typedArray(UploadedFileResponse)\r\n public result: UploadedFileResponse[];\r\n}\r\n\r\nexport class UploadErrorDescription {\r\n @dataMember()\r\n @required()\r\n public message: string;\r\n\r\n @dataMember()\r\n @required()\r\n @typedArray(String)\r\n public details: string[];\r\n}\r\n\r\nexport class InvalidDocumentMetadataResponse {\r\n @dataMember()\r\n @required() \r\n public responseType: UploadResponseType;\r\n\r\n @dataMember()\r\n @required()\r\n public result: UploadErrorDescription;\r\n}\r\n\r\nexport function isUploadedFilesResponse(response: any): response is UploadedFilesResponse {\r\n return response && (response as UploadedFilesResponse).responseType === UploadResponseType.InvalidFiles;\r\n}\r\n\r\nexport function isInvalidDocumentMetadataResponse(response: any): response is InvalidDocumentMetadataResponse {\r\n return response && (response as InvalidDocumentMetadataResponse).responseType === UploadResponseType.InvalidDocumentMetadata;\r\n}\r\n\r\nexport function isDocumentFolderMissingResponse(response: any): response is UploadedFilesResponse {\r\n return response && (response as UploadedFilesResponse).responseType === UploadResponseType.DocumentFolderMissing;\r\n}","import { Injectable, SecurityContext } from '@angular/core';\r\nimport { HttpClient, HttpEvent, HttpRequest } from '@angular/common/http';\r\nimport { CultureInfo } from '../../../core/culture-info';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Injectable()\r\nexport class UploadedDocumentsRequestCreator {\r\n constructor(\r\n private readonly http: HttpClient,\r\n private sanitizer: DomSanitizer\r\n ) {\r\n }\r\n\r\n public createPost(url: string, files: Map, documentMetadata: T): Observable> {\r\n const formData = this.extractFileLanguageFormData(files);\r\n formData.append('documentMetadata', JSON.stringify(documentMetadata));\r\n\r\n const request = new HttpRequest('POST', url, formData, {reportProgress: true});\r\n\r\n return this.http.request(request);\r\n }\r\n\r\n public createPut(url: string, files: Map, auditTrailReason: string): Observable> {\r\n const formData = this.extractFileLanguageFormData(files);\r\n formData.append('auditTrailReason', this.sanitizer.sanitize(SecurityContext.HTML, auditTrailReason));\r\n\r\n const request = new HttpRequest('PUT', url, formData, { reportProgress: true });\r\n\r\n return this.http.request(request);\r\n }\r\n\r\n private extractFileLanguageFormData(files: Map): FormData {\r\n const languages: CultureInfo[] = [];\r\n const fileContent = files.keys();\r\n const formData: FormData = new FormData();\r\n\r\n for (let file of fileContent) {\r\n formData.append('file', file, file.name);\r\n languages.push(files.get(file));\r\n }\r\n\r\n formData.append('fileLanguages', JSON.stringify(languages));\r\n return formData;\r\n }\r\n}","import { FilterFieldValue } from '../../../covance-filter/covance-filter.models';\r\nimport { HttpClient, HttpEvent } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { map, switchMap } from 'rxjs/operators';\r\nimport { deserialize, deserializeArray } from 'santee-dcts';\r\nimport { CultureInfo } from '../../../core/culture-info';\r\nimport { Settings } from '../../../core/settings';\r\nimport { Category, CategoryNaturalKey, defaultReportSort, Report, ReportsReadModel } from '../../../documents';\r\nimport { getReportType } from '../../../documents/document-type-resolver';\r\nimport { DocumentsStorage } from '../../../documents/documents-storage';\r\nimport { prepareFilterUrlParams } from '../../../documents/prepare-filter-url-params';\r\nimport { UploadedDocumentsRequestCreator } from './uploaded-documents-request-creator';\r\nimport { UploadStorage } from './upload-storage';\r\nimport { ActivityLogger } from '../../../activities/activity-logger';\r\n\r\n@Injectable()\r\nexport class UploadedDocumentsStorage implements DocumentsStorage, UploadStorage {\r\n private readonly apiPath = 'admin/uploaded-documents';\r\n private readonly refresher = new BehaviorSubject(true);\r\n\r\n constructor(\r\n private readonly http: HttpClient,\r\n private readonly settings: Settings,\r\n private readonly uploadRequestCreator: UploadedDocumentsRequestCreator,\r\n private readonly activityLogger: ActivityLogger,\r\n ) { }\r\n\r\n public loadDocumentsByCategory(category: Category, filterParameters: FilterFieldValue[]): Observable {\r\n\r\n const filtersParams = prepareFilterUrlParams(filterParameters);\r\n\r\n return this.refresher.pipe(\r\n switchMap(() => this.http\r\n .get(`${this.settings.apiUrl}/${this.apiPath}/${category.categoryId}`, {params: filtersParams})),\r\n map(rawData => this.getUploadedDocsForCategory(rawData, category))\r\n );\r\n }\r\n\r\n public forceLoadDocuments() {\r\n this.refresher.next(true);\r\n }\r\n\r\n public create(categoryId: CategoryNaturalKey, files: Map, documentMetadata: T): Observable> {\r\n this.activityLogger.logUploadActivity(categoryId);\r\n\r\n return this.uploadRequestCreator.createPost(`${this.settings.apiUrl}/${this.apiPath}/${categoryId}`, files, documentMetadata);\r\n }\r\n\r\n public update(categoryId: CategoryNaturalKey, files: Map, documentId: string, auditTrailReason: string): Observable> {\r\n this.activityLogger.logEditFileActivity(documentId);\r\n\r\n return this.uploadRequestCreator.createPut(`${this.settings.apiUrl}/admin/uploaded-documents/${categoryId}/update/${documentId}`, files, auditTrailReason);\r\n }\r\n\r\n public changeVisibility(category: Category, request: VisibilityDocumentRequest): Promise {\r\n this.activityLogger.logHideUnhideDocumentActivity(request.documentId);\r\n\r\n return this.http\r\n .post(`${this.settings.apiUrl}/${this.apiPath}/${category.categoryId}/visibility`, request)\r\n .toPromise();\r\n }\r\n\r\n private getUploadedDocsForCategory(response: Object, category: Category) {\r\n const readModel = deserialize(response, ReportsReadModel);\r\n\r\n const reportType = getReportType(category.categoryId);\r\n let reports = deserializeArray(readModel.reports, reportType) as Report[];\r\n\r\n for (let report of reports) {\r\n report.category = category;\r\n }\r\n\r\n reports = reports.sort((a, b) => defaultReportSort(a, b));\r\n\r\n return reports;\r\n }\r\n}\r\n\r\nexport interface VisibilityDocumentRequest {\r\n documentId: string;\r\n isHidden: boolean;\r\n reason: string;\r\n reportId: string;\r\n}\r\n","import { CultureInfo } from '../../../../core/culture-info';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpEvent } from '@angular/common/http';\r\nimport { CategoryNaturalKey } from '../../../../documents';\r\n\r\nexport class MethodUploadOptions {\r\n constructor(\r\n public readonly categoryId: CategoryNaturalKey,\r\n public readonly files: Map,\r\n public readonly documentMetadata: { [metadataName: string]: any },\r\n public readonly onSuccessfulUpload: () => void\r\n ) { }\r\n}\r\n\r\nexport class CustomMethodUploadOptions {\r\n constructor (\r\n public readonly customUploadMethod: () => Observable>,\r\n public readonly onSuccessfulUpload: () => void = () => {}\r\n ) { }\r\n}","import { dataMember, required, typedArray } from 'santee-dcts';\r\n\r\nexport type AudienceRoleName = 'Investigator' | 'Sponsor' | 'Admin' | 'Internal' | 'System Admin';\r\n\r\nexport class AudienceRole {\r\n @dataMember({ customDeserializer: (value: string): AudienceRoleName => value as AudienceRoleName })\r\n @required({ nullable: true})\r\n public name: AudienceRoleName;\r\n\r\n @dataMember()\r\n @required({ nullable: true})\r\n public description: string;\r\n\r\n @dataMember()\r\n @required()\r\n public isExternal: boolean;\r\n\r\n public toString(): string {\r\n return this.name;\r\n }\r\n}\r\n\r\nexport class AudienceRoleReadModel {\r\n @dataMember()\r\n @required()\r\n @typedArray(AudienceRole)\r\n public audienceRoles: AudienceRole[];\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map, publishLast, refCount } from 'rxjs/operators';\r\nimport { deserialize } from 'santee-dcts';\r\nimport { AudienceRole, AudienceRoleReadModel } from '../../authentication/audience-role';\r\nimport { Settings } from '../../core/settings';\r\n\r\n@Injectable()\r\nexport class AudienceRolesStorage {\r\n private readonly allAudienceRoles: Observable;\r\n\r\n constructor(\r\n private readonly http: HttpClient,\r\n private readonly settings: Settings\r\n ) { \r\n this.allAudienceRoles = this.loadAudienceRoles()\r\n .pipe(\r\n publishLast(),\r\n refCount()\r\n );\r\n }\r\n\r\n public get all(): Observable {\r\n return this.allAudienceRoles;\r\n }\r\n\r\n public get external(): Observable {\r\n return this.all.pipe(map(r => r.filter(role => role.isExternal)));\r\n }\r\n\r\n private loadAudienceRoles(): Observable {\r\n return this.http.get(`${this.settings.apiUrl}/admin/audience-roles`)\r\n .pipe(map(response => deserialize(response, AudienceRoleReadModel).audienceRoles));\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { MdlDialogService } from '@angular-mdl/core';\r\nimport { isEmpty, difference } from 'lodash';\r\nimport { AudienceRolesStorage } from '../../../form-fields/audience-roles-storage';\r\n\r\n@Injectable()\r\nexport class UploadConfirmationDialog {\r\n\r\n constructor(\r\n private readonly dialogService: MdlDialogService,\r\n private readonly audienceRolesStorage: AudienceRolesStorage\r\n ) { }\r\n\r\n public async openDialog(audienceRoles: string[]): Promise {\r\n const confirmationText = await this.getConfirmationText(audienceRoles);\r\n\r\n return this.dialogService.confirm(confirmationText, 'No', 'Yes').toPromise();\r\n }\r\n\r\n private async getConfirmationText(audienceRoles: string[]): Promise {\r\n let userText = 'by all users';\r\n\r\n if (!isEmpty(audienceRoles)) {\r\n const allExternalRoles = (await this.audienceRolesStorage.external.toPromise()).map(x => x.name);\r\n const rolesDiff = difference(allExternalRoles, audienceRoles);\r\n\r\n if (!isEmpty(rolesDiff)) {\r\n userText = `only by ${audienceRoles.map(x => x.toLowerCase() + 's').join(', ')}`;\r\n }\r\n }\r\n\r\n return `The uploaded documents will be viewable ${userText}. Proceed?`;\r\n }\r\n\r\n}","import { Observable } from 'rxjs';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { Category, Report } from '../../../../documents';\r\nexport const UPLOAD_DLG_DATA_TOKEN = new InjectionToken('UPLOAD_DLG_DATA_TOKEN');\r\n\r\nexport interface UploadDialogData {\r\n subCategories$?: Observable;\r\n category: Category;\r\n report?: T;\r\n}","import { OnDestroy, HostListener } from '@angular/core';\r\nimport { Observable, BehaviorSubject, ReplaySubject } from 'rxjs';\r\nimport { HttpEventType, HttpProgressEvent, HttpEvent, HttpErrorResponse, HttpResponse } from '@angular/common/http';\r\nimport { UploadStorage } from '../../storages/upload-storage';\r\nimport { filter, tap, first, map, takeUntil } from 'rxjs/operators';\r\nimport { deserialize } from 'santee-dcts';\r\nimport { UploadedFilesResponse, UploadedFileResponse, isUploadedFilesResponse, isDocumentFolderMissingResponse, isInvalidDocumentMetadataResponse, InvalidDocumentMetadataResponse, UploadErrorDescription } from '../../../../covance-file-upload/uploaded-file-response';\r\nimport { CustomMethodUploadOptions, MethodUploadOptions } from './method-upload-options';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MdlDialogReference } from '@angular-mdl/core';\r\n\r\nexport interface UploadProgress {\r\n loaded: number;\r\n total: number;\r\n}\r\n\r\nexport enum UploadState {\r\n Ready,\r\n inProgress,\r\n InvalidFiles,\r\n InvalidMetadata,\r\n MissingDocumentFolder,\r\n ErrorUpload,\r\n SuccessUpload\r\n}\r\n\r\n/**\r\n * Implementing interface requires public modificator. \r\n * ngOnDestory can be defined without 'implements OnDestroy' keyword, because of duck-typing. Other hand, we should depend on OnDestroy definintion.\r\n */\r\nconst ngOnDestroyMethod: keyof OnDestroy = 'ngOnDestroy';\r\n\r\nexport abstract class UploadDialogBase {\r\n public readonly editorForm = new FormGroup({});\r\n\r\n protected confirmationDialogOpened = false;\r\n protected errorDetails$: Observable;\r\n protected get onDialogDestroying(): Observable {\r\n return this.onDialogDestroying$;\r\n }\r\n\r\n private readonly uploadState$ = new BehaviorSubject(UploadState.Ready);\r\n private readonly uploadResult$ = new BehaviorSubject(null);\r\n private readonly uploadErrorDescription$ = new BehaviorSubject(null);\r\n private readonly uploadProgress$ = new BehaviorSubject(null);\r\n private readonly errorMessage$: Observable;\r\n\r\n // Using ReplaySubject is to handle the case when someone subscribed after onDialogDestroying$ had been completed\r\n private readonly onDialogDestroying$ = new ReplaySubject(1);\r\n\r\n public get uploadErrors(): Observable {\r\n return this.uploadResult$.pipe(\r\n map(x => x ? x.filter(fileReponse => !fileReponse.isValid) : null)\r\n );\r\n }\r\n\r\n public get uploadProgress(): Observable {\r\n return this.uploadProgress$;\r\n }\r\n\r\n public get uploadState(): Observable {\r\n return this.uploadState$;\r\n }\r\n\r\n public get disableForm(): Observable {\r\n return this.uploadState$.pipe(map(state => state === UploadState.inProgress || state === UploadState.SuccessUpload));\r\n }\r\n\r\n public get inProgress(): boolean {\r\n return this.uploadState$.value === UploadState.inProgress;\r\n }\r\n\r\n public get errorMessage(): Observable {\r\n return this.errorMessage$;\r\n }\r\n\r\n protected constructor(\r\n private readonly uploadStorage: UploadStorage,\r\n protected readonly dialog: MdlDialogReference,\r\n ) {\r\n this.errorMessage$ = this.uploadErrorDescription$.pipe(filter(d => !!d), map(d => d.message));\r\n this.errorDetails$ = this.uploadErrorDescription$.pipe(filter(d => !!d), map(d => d.details));\r\n this.disableEditorForm();\r\n }\r\n\r\n public upload(options: MethodUploadOptions): Promise;\r\n public upload(options: CustomMethodUploadOptions): Promise;\r\n public async upload(options: unknown): Promise {\r\n this.uploadResult$.next(null);\r\n this.uploadProgress$.next(null);\r\n\r\n let request: Observable>;\r\n if (options instanceof MethodUploadOptions) {\r\n request = this.uploadStorage.create(options.categoryId, options.files, options.documentMetadata);\r\n } else if (options instanceof CustomMethodUploadOptions) {\r\n request = options.customUploadMethod();\r\n } else {\r\n throw new Error('Invalid options');\r\n }\r\n\r\n try {\r\n await request\r\n .pipe(\r\n tap(this.handleHttpEvent),\r\n filter(event => event.type === HttpEventType.Response),\r\n tap(options.onSuccessfulUpload),\r\n first()\r\n ).toPromise();\r\n } catch (e) {\r\n this.handleError(e);\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.esc')\r\n public close() {\r\n if (!this.confirmationDialogOpened && !this.inProgress && this.dialog) {\r\n this.dialog.hide();\r\n }\r\n }\r\n\r\n private handleHttpEvent = (event: HttpEvent) => {\r\n switch (event.type) {\r\n case HttpEventType.UploadProgress:\r\n this.handleProgress(event);\r\n break;\r\n case HttpEventType.Response:\r\n this.handleOkResponse(event);\r\n break;\r\n }\r\n }\r\n\r\n private handleProgress(event: HttpProgressEvent) {\r\n this.uploadProgress$.next({ total: event.total, loaded: event.loaded });\r\n this.uploadState$.next(UploadState.inProgress);\r\n }\r\n\r\n private handleOkResponse(event: HttpResponse) {\r\n if (event.ok) {\r\n this.uploadResult$.next(null);\r\n this.uploadState$.next(UploadState.SuccessUpload);\r\n }\r\n }\r\n\r\n private handleError(e: unknown) {\r\n if (e instanceof HttpErrorResponse) {\r\n if (e.status === 400 && isUploadedFilesResponse(e.error)) {\r\n const uploadedFileReponses = deserialize(e.error, UploadedFilesResponse).result;\r\n this.uploadResult$.next(uploadedFileReponses);\r\n this.uploadState$.next(UploadState.InvalidFiles);\r\n return;\r\n }\r\n if (e.status === 400 && isInvalidDocumentMetadataResponse(e.error)) {\r\n const invalidMetadataResponse = deserialize(e.error, InvalidDocumentMetadataResponse).result;\r\n this.uploadErrorDescription$.next(invalidMetadataResponse);\r\n this.uploadState$.next(UploadState.InvalidMetadata);\r\n return;\r\n }\r\n if (e.status === 404 && isDocumentFolderMissingResponse(e.error)) {\r\n this.uploadState$.next(UploadState.MissingDocumentFolder);\r\n return;\r\n }\r\n }\r\n\r\n this.uploadState$.next(UploadState.ErrorUpload);\r\n throw e;\r\n }\r\n\r\n private disableEditorForm() {\r\n this.disableForm.pipe(\r\n takeUntil(this.onDialogDestroying)\r\n ).subscribe(isDisabled => {\r\n if (isDisabled) {\r\n // ({ emitEvent: false }) in order to fix Angular bug related to valueChanges -> disable/enable emits valueChanges\r\n this.editorForm.disable(({ emitEvent: false }));\r\n } else {\r\n this.editorForm.enable(({ emitEvent: false }));\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Don't define ngOnDestroy in derived classes. Use {@link UploadDialogBase#onDialogDestroying} instead.\r\n Using:\r\n ```ts\r\n .pipe(\r\n // ... operators\r\n takeUntil(this.onDialogDestroying)\r\n ).subscribe(...)\r\n ```\r\n or\r\n ```ts\r\n .subscribe(() => {\r\n // free others resources\r\n })\r\n ```\r\n * Private modificator prevents the ngOnDestroy definiting in derived classes to avoid hiding the base class ngOnDestroy.\r\n * Called by angular\r\n */\r\n private [ngOnDestroyMethod]() {\r\n this.uploadResult$.complete();\r\n this.uploadErrorDescription$.complete();\r\n this.uploadProgress$.complete();\r\n this.uploadState$.complete();\r\n this.onDialogDestroying$.next();\r\n this.onDialogDestroying$.complete();\r\n }\r\n}","export enum EQueryTab {\r\n awaiting = 'awaiting',\r\n submitted = 'submitted'\r\n}\r\n","import { UploadConfirmationDialog } from '../base/upload-confirmation-dialog';\r\nimport { MdlDialogReference } from '@angular-mdl/core';\r\nimport { UploadDialogBase, UploadState } from '../base/upload-dialog-base';\r\nimport { UploadStorage } from '../../storages/upload-storage';\r\nimport { GeneralUnreadReportsStorage } from '../../../../general-documents/general-unread-reports-storage';\r\nimport { filter, takeUntil, tap } from 'rxjs/operators';\r\n\r\nexport abstract class GeneralUploadDialogBase extends UploadDialogBase {\r\n\r\n protected constructor(\r\n uploadStorage: UploadStorage,\r\n protected readonly dialog: MdlDialogReference,\r\n private readonly uploadConfirmationDialog: UploadConfirmationDialog,\r\n protected unreadStorage: GeneralUnreadReportsStorage\r\n ) {\r\n super(uploadStorage, dialog);\r\n\r\n this.uploadState.pipe(\r\n takeUntil(this.onDialogDestroying),\r\n filter(us => us === UploadState.SuccessUpload),\r\n tap(() => this.unreadStorage.refreshUnreads())\r\n ).subscribe();\r\n }\r\n\r\n protected async showConfirm(audienceRoles?: string[]): Promise {\r\n this.confirmationDialogOpened = true;\r\n\r\n try {\r\n await this.uploadConfirmationDialog.openDialog(audienceRoles);\r\n return true;\r\n } catch {\r\n return false;\r\n } finally {\r\n this.confirmationDialogOpened = false;\r\n }\r\n }\r\n}","import { MdlDialogReference } from '@angular-mdl/core';\r\nimport { ChangeDetectionStrategy, Component, Inject } from '@angular/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { Settings } from '../../../../core';\r\nimport { FileToLanguage } from '../../../../covance-file-upload/covance-file-upload.component';\r\nimport { FileFormArray } from '../../../../covance-file-upload/file-form-array';\r\nimport { GeneralUnreadReportsStorage } from '../../../../general-documents/general-unread-reports-storage';\r\nimport { UploadedDocumentsStorage } from '../../storages/uploaded-documents-storage';\r\nimport { MethodUploadOptions } from '../base/method-upload-options';\r\nimport { UploadConfirmationDialog } from '../base/upload-confirmation-dialog';\r\nimport { UploadDialogData, UPLOAD_DLG_DATA_TOKEN } from '../base/upload-dialog-data';\r\nimport { GeneralUploadDialogBase } from './general-upload-dialog-base';\r\n\r\n@Component({\r\n selector: 'application-training-upload',\r\n template: require('./application-training-upload.component.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ApplicationTrainingUploadComponent extends GeneralUploadDialogBase {\r\n public readonly titleCtrl: FormControl;\r\n public readonly fileFormArray: FileFormArray;\r\n public readonly audienceCtrl: FormControl;\r\n public readonly allowedFileExtensions: string[];\r\n public selectedFiles: FileToLanguage;\r\n\r\n constructor(\r\n dialog: MdlDialogReference,\r\n uploadConfirmationDialog: UploadConfirmationDialog,\r\n private readonly uploadedDocumentsStorage: UploadedDocumentsStorage,\r\n @Inject(UPLOAD_DLG_DATA_TOKEN) readonly dialogData: UploadDialogData,\r\n readonly settings: Settings,\r\n unreadStorage: GeneralUnreadReportsStorage\r\n ) {\r\n super(uploadedDocumentsStorage, dialog, uploadConfirmationDialog, unreadStorage);\r\n\r\n this.titleCtrl = new FormControl(null, [Validators.required]);\r\n this.fileFormArray = new FileFormArray();\r\n this.audienceCtrl = new FormControl(null, [Validators.required]);\r\n this.editorForm.addControl('audienceRoles', this.audienceCtrl);\r\n this.editorForm.addControl('title', this.titleCtrl);\r\n this.editorForm.addControl('files', this.fileFormArray);\r\n\r\n this.allowedFileExtensions = settings.uploadedFileExtensionsByCategoryId(dialogData.category.categoryId);\r\n }\r\n\r\n public getTextFieldClasses(control: FormControl): string[] {\r\n return control.invalid ? ['is-invalid'] : [];\r\n }\r\n\r\n public onFilesChanged(selectedFiles: FileToLanguage) {\r\n this.selectedFiles = selectedFiles;\r\n }\r\n\r\n public async addFiles() {\r\n const confirmed = await this.showConfirm(this.audienceCtrl.value);\r\n\r\n if (confirmed) {\r\n this.upload(new MethodUploadOptions (\r\n this.dialogData.category.categoryId,\r\n this.selectedFiles,\r\n { \r\n title: this.titleCtrl.value, \r\n audienceRoles: this.audienceCtrl.value\r\n },\r\n () => this.uploadedDocumentsStorage.forceLoadDocuments()\r\n ));\r\n }\r\n }\r\n}","import { Component, ChangeDetectionStrategy, Inject } from '@angular/core';\r\nimport { MdlDialogReference } from '@angular-mdl/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { UploadedDocumentsStorage } from '../../storages/uploaded-documents-storage';\r\nimport { FileToLanguage } from '../../../../covance-file-upload/covance-file-upload.component';\r\nimport { FileFormArray } from '../../../../covance-file-upload/file-form-array';\r\nimport { UploadDialogData, UPLOAD_DLG_DATA_TOKEN } from '../base/upload-dialog-data';\r\nimport { Settings } from '../../../../core';\r\nimport { GeneralUploadDialogBase } from './general-upload-dialog-base';\r\nimport { UploadConfirmationDialog } from '../base/upload-confirmation-dialog';\r\nimport { MethodUploadOptions } from '../base/method-upload-options';\r\nimport { GeneralUnreadReportsStorage } from '../../../../general-documents/general-unread-reports-storage';\r\n\r\n@Component({\r\n selector: 'general-communications-upload',\r\n template: require('./general-communications-upload.component.html'),\r\n styles: [require('./general-communications-upload.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class GeneralCommunicationsUploadComponent extends GeneralUploadDialogBase {\r\n public readonly titleCtrl: FormControl;\r\n public readonly letterNumberCtrl: FormControl;\r\n public readonly fileFormArray: FileFormArray;\r\n public readonly allowedFileExtensions: string[];\r\n public selectedFiles: FileToLanguage;\r\n\r\n constructor(\r\n dialog: MdlDialogReference,\r\n uploadConfirmationDialog: UploadConfirmationDialog,\r\n private readonly uploadedDocumentsStorage: UploadedDocumentsStorage,\r\n @Inject(UPLOAD_DLG_DATA_TOKEN) readonly dialogData: UploadDialogData,\r\n readonly settings: Settings,\r\n unreadStorage: GeneralUnreadReportsStorage\r\n ) {\r\n super(uploadedDocumentsStorage, dialog, uploadConfirmationDialog, unreadStorage);\r\n\r\n this.titleCtrl = new FormControl();\r\n this.letterNumberCtrl = new FormControl();\r\n this.fileFormArray = new FileFormArray();\r\n this.editorForm.addControl('title', this.titleCtrl);\r\n this.editorForm.addControl('letterNumber', this.letterNumberCtrl);\r\n this.editorForm.addControl('files', this.fileFormArray);\r\n\r\n this.allowedFileExtensions = settings.uploadedFileExtensionsByCategoryId(dialogData.category.categoryId);\r\n }\r\n\r\n public onFilesChanged(selectedFiles: FileToLanguage) {\r\n this.selectedFiles = selectedFiles;\r\n }\r\n\r\n public async addFiles() {\r\n const confirmed = await this.showConfirm();\r\n\r\n if (confirmed) {\r\n this.upload(new MethodUploadOptions(\r\n this.dialogData.category.categoryId,\r\n this.selectedFiles,\r\n {\r\n title: this.titleCtrl.value,\r\n letterNumber: this.letterNumberCtrl.value\r\n },\r\n () => this.uploadedDocumentsStorage.forceLoadDocuments()\r\n ));\r\n }\r\n }\r\n}","import { Component, ChangeDetectionStrategy, Inject } from '@angular/core';\r\nimport { MdlDialogReference } from '@angular-mdl/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { FileToLanguage } from '../../../../covance-file-upload/covance-file-upload.component';\r\nimport { FileFormArray } from '../../../../covance-file-upload/file-form-array';\r\nimport { UploadDialogData, UPLOAD_DLG_DATA_TOKEN } from '../base/upload-dialog-data';\r\nimport { Observable } from 'rxjs';\r\nimport { Category } from '../../../../documents';\r\nimport { Settings } from '../../../../core';\r\nimport { GeneralUploadDialogBase } from './general-upload-dialog-base';\r\nimport { UploadConfirmationDialog } from '../base/upload-confirmation-dialog';\r\nimport { MethodUploadOptions } from '../base/method-upload-options';\r\nimport { GeneralUnreadReportsStorage } from '../../../../general-documents/general-unread-reports-storage';\r\nimport { UploadedDocumentsStorage } from '../../storages/uploaded-documents-storage';\r\n\r\n@Component({\r\n selector: 'general-lab-manuals-upload',\r\n template: require('./general-lab-manuals-upload.component.html'),\r\n styles: [require('./general-lab-manuals-upload.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class GeneralLabManualsUploadComponent extends GeneralUploadDialogBase {\r\n public readonly subcategoryCtrl: FormControl;\r\n public readonly titleCtrl: FormControl;\r\n public readonly fileFormArray: FileFormArray;\r\n public readonly allowedFileExtensions: string[];\r\n public readonly subcategories$: Observable;\r\n public selectedFiles: FileToLanguage;\r\n\r\n constructor(\r\n dialog: MdlDialogReference,\r\n uploadConfirmationDialog: UploadConfirmationDialog,\r\n private readonly uploadedDocumentsStorage: UploadedDocumentsStorage,\r\n @Inject(UPLOAD_DLG_DATA_TOKEN) readonly dialogData: UploadDialogData,\r\n readonly settings: Settings,\r\n unreadStorage: GeneralUnreadReportsStorage\r\n ) {\r\n super(uploadedDocumentsStorage, dialog, uploadConfirmationDialog, unreadStorage);\r\n\r\n this.subcategoryCtrl = new FormControl(null, [Validators.required]);\r\n this.titleCtrl = new FormControl(null, [Validators.required]);\r\n this.fileFormArray = new FileFormArray();\r\n this.editorForm.addControl('subcategory', this.subcategoryCtrl);\r\n this.editorForm.addControl('title', this.titleCtrl);\r\n this.editorForm.addControl('files', this.fileFormArray);\r\n \r\n this.allowedFileExtensions = settings.uploadedFileExtensionsByCategoryId(dialogData.category.categoryId);\r\n this.subcategories$ = dialogData.subCategories$;\r\n }\r\n\r\n public onFilesChanged(selectedFiles: FileToLanguage) {\r\n this.selectedFiles = selectedFiles;\r\n }\r\n\r\n public async addFiles() {\r\n const confirmed = await this.showConfirm();\r\n\r\n if (confirmed) {\r\n this.upload(new MethodUploadOptions(\r\n this.subcategoryCtrl.value,\r\n this.selectedFiles,\r\n { \r\n title: this.titleCtrl.value\r\n },\r\n () => this.uploadedDocumentsStorage.forceLoadDocuments()\r\n ));\r\n }\r\n }\r\n}","import { Component, ChangeDetectionStrategy, Inject } from '@angular/core';\r\nimport { Category } from '../../../../documents';\r\nimport { Observable } from 'rxjs';\r\nimport { MdlDialogReference } from '@angular-mdl/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { UploadedDocumentsStorage } from '../../storages/uploaded-documents-storage';\r\nimport { FileToLanguage } from '../../../../covance-file-upload/covance-file-upload.component';\r\nimport { FileFormArray } from '../../../../covance-file-upload/file-form-array';\r\nimport { UPLOAD_DLG_DATA_TOKEN, UploadDialogData } from '../base/upload-dialog-data';\r\nimport { Settings } from '../../../../core';\r\nimport { UploadConfirmationDialog } from '../base/upload-confirmation-dialog';\r\nimport { GeneralUploadDialogBase } from './general-upload-dialog-base';\r\nimport { MethodUploadOptions } from '../base/method-upload-options';\r\nimport { GeneralUnreadReportsStorage } from '../../../../general-documents/general-unread-reports-storage';\r\n\r\n@Component({\r\n selector: 'general-training-materials-upload',\r\n template: require('./general-training-materials-upload.component.html'),\r\n styles: [require('./general-training-materials-upload.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class GeneralTrainingMaterialsUploadComponent extends GeneralUploadDialogBase {\r\n public readonly subcategoryCtrl: FormControl;\r\n public readonly titleCtrl: FormControl;\r\n public readonly fileFormArray: FileFormArray;\r\n public readonly allowedFileExtensions: string[];\r\n public readonly subcategories$: Observable;\r\n public selectedFiles: FileToLanguage;\r\n\r\n constructor(\r\n dialog: MdlDialogReference,\r\n uploadConfirmationDialog: UploadConfirmationDialog,\r\n private readonly uploadedDocumentsStorage: UploadedDocumentsStorage,\r\n @Inject(UPLOAD_DLG_DATA_TOKEN) readonly dialogData: UploadDialogData,\r\n readonly settings: Settings,\r\n unreadStorage: GeneralUnreadReportsStorage\r\n ) {\r\n super(uploadedDocumentsStorage, dialog, uploadConfirmationDialog, unreadStorage);\r\n\r\n this.subcategoryCtrl = new FormControl(null, [Validators.required]);\r\n this.titleCtrl = new FormControl(null, [Validators.required]);\r\n this.fileFormArray = new FileFormArray();\r\n this.editorForm.addControl('subcategory', this.subcategoryCtrl);\r\n this.editorForm.addControl('title', this.titleCtrl);\r\n this.editorForm.addControl('files', this.fileFormArray);\r\n\r\n this.allowedFileExtensions = settings.uploadedFileExtensionsByCategoryId(dialogData.category.categoryId);\r\n this.subcategories$ = dialogData.subCategories$;\r\n }\r\n\r\n public onFilesChanged(selectedFiles: FileToLanguage) {\r\n this.selectedFiles = selectedFiles;\r\n }\r\n\r\n public async addFiles() {\r\n const confirmed = await this.showConfirm();\r\n\r\n if (confirmed) {\r\n this.upload(new MethodUploadOptions(\r\n this.subcategoryCtrl.value,\r\n this.selectedFiles,\r\n { \r\n title: this.titleCtrl.value\r\n },\r\n () => this.uploadedDocumentsStorage.forceLoadDocuments()\r\n ));\r\n }\r\n }\r\n}","import { MdlDialogReference, MdlDialogService } from '@angular-mdl/core';\r\nimport { UploadDialogBase } from '../base/upload-dialog-base';\r\nimport { UploadStorage } from '../../storages/upload-storage';\r\nimport { MethodUploadOptions } from '../base/method-upload-options';\r\nimport { FileToLanguage } from '../../../../covance-file-upload/covance-file-upload.component';\r\nimport { CultureInfo } from '../../../../core/culture-info';\r\nimport { FileFormArray } from '../../../../covance-file-upload/file-form-array';\r\nimport { CategoryNaturalKey } from '../../../../documents';\r\nimport { UploadedDocumentsStorage } from '../../storages/uploaded-documents-storage';\r\n\r\nexport abstract class SiteSpecificUploadDialogBase extends UploadDialogBase {\r\n public fileFormArray: FileFormArray;\r\n protected selectedFiles: FileToLanguage;\r\n\r\n protected constructor(\r\n protected readonly dialog: MdlDialogReference,\r\n protected readonly dialogService: MdlDialogService,\r\n private readonly uploadedDocumentsStorage: UploadedDocumentsStorage,\r\n uploadStorage: UploadStorage\r\n ) { \r\n super(uploadStorage, dialog);\r\n\r\n this.fileFormArray = new FileFormArray();\r\n this.editorForm.addControl('files', this.fileFormArray);\r\n } \r\n\r\n public resetFilesControl() {\r\n this.selectedFiles = null;\r\n this.editorForm.removeControl('files');\r\n this.fileFormArray = new FileFormArray();\r\n this.editorForm.addControl('files', this.fileFormArray);\r\n }\r\n\r\n public onFilesChanged(selectedFiles: Map) {\r\n this.selectedFiles = selectedFiles;\r\n }\r\n\r\n public async addFiles(message: string, categoryId: CategoryNaturalKey, documentMetadata: { [metadataName: string]: any }) {\r\n const confirmed = await this.showConfirm(message);\r\n\r\n if (confirmed) {\r\n this.upload(new MethodUploadOptions(\r\n categoryId,\r\n this.selectedFiles,\r\n documentMetadata,\r\n () => this.uploadedDocumentsStorage.forceLoadDocuments()\r\n ));\r\n }\r\n }\r\n\r\n protected async showConfirm(confirmationMarkup: string): Promise {\r\n this.confirmationDialogOpened = true;\r\n\r\n try {\r\n await this.dialogService.confirm(confirmationMarkup as any, 'No', 'Yes').toPromise();\r\n return true;\r\n } catch {\r\n return false;\r\n } finally {\r\n this.confirmationDialogOpened = false;\r\n }\r\n }\r\n}","import { MdlDialogReference, MdlDialogService } from '@angular-mdl/core';\r\nimport { ChangeDetectionStrategy, Component, Inject } from '@angular/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { isMoment } from 'moment';\r\nimport { Observable } from 'rxjs';\r\nimport { Settings } from '../../../../core';\r\nimport { Category, CategoryNaturalKey, Report } from '../../../../documents';\r\nimport { Project } from '../../../shared';\r\nimport { UploadedDocumentsStorage } from '../../storages/uploaded-documents-storage';\r\nimport { UploadDialogData, UPLOAD_DLG_DATA_TOKEN } from '../base/upload-dialog-data';\r\nimport { SiteSpecificUploadDialogBase } from './site-specific-upload-dialog-base';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-lab-manuals-upload',\r\n template: require('./lab-manuals-upload.component.html'),\r\n styles: [require('./lab-manuals-upload.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LabManualsUploadComponent extends SiteSpecificUploadDialogBase {\r\n public readonly subcategoryCtrl: FormControl;\r\n public readonly projectCtrl: FormControl;\r\n public readonly versionNumberCtrl: FormControl;\r\n public readonly versionDateCtrl: FormControl;\r\n public readonly titleControl: FormControl;\r\n public readonly allowedFileExtensions: string[];\r\n\r\n public readonly subcategories$: Observable;\r\n\r\n public get showVersionNumber() {\r\n return this.editorForm.get('versionNumber') != null;\r\n }\r\n\r\n public get showVersionDate() {\r\n return this.editorForm.get('versionDate') != null;\r\n }\r\n\r\n public get showTitle() {\r\n return this.editorForm.get('title') != null;\r\n }\r\n\r\n public get categoryChangeConfirmationText() {\r\n const controlsWithValue = [];\r\n\r\n if (this.selectedFiles && this.selectedFiles.size > 0) {\r\n controlsWithValue.push('Files');\r\n }\r\n if (this.showVersionNumber && this.versionNumberCtrl.value) {\r\n controlsWithValue.push('Version Number');\r\n }\r\n if (this.showVersionDate && this.versionDateCtrl.value) {\r\n controlsWithValue.push('Version Date');\r\n }\r\n if (this.showTitle && this.titleControl.value) {\r\n controlsWithValue.push('Title');\r\n }\r\n \r\n return controlsWithValue.length > 0 ? `${controlsWithValue.join(' and ')} will be cleared.` : null;\r\n }\r\n\r\n private readonly studyManualsId: CategoryNaturalKey = 'study-manuals';\r\n private readonly synopsisId: CategoryNaturalKey = 'synopsis';\r\n private readonly labManualsOthersId: CategoryNaturalKey = 'lab-manuals-others';\r\n\r\n constructor(\r\n protected readonly dialog: MdlDialogReference,\r\n protected readonly dialogService: MdlDialogService,\r\n @Inject(UPLOAD_DLG_DATA_TOKEN) protected readonly dialogData: UploadDialogData,\r\n uploadedDocumentsStorage: UploadedDocumentsStorage,\r\n protected readonly settings: Settings\r\n ) {\r\n super(dialog, dialogService, uploadedDocumentsStorage, uploadedDocumentsStorage);\r\n\r\n this.subcategoryCtrl = new FormControl();\r\n this.projectCtrl = new FormControl();\r\n this.versionNumberCtrl = new FormControl();\r\n this.versionDateCtrl = new FormControl(null, Validators.required);\r\n this.titleControl = new FormControl();\r\n\r\n this.editorForm.addControl('subcategory', this.subcategoryCtrl);\r\n this.editorForm.addControl('project', this.projectCtrl);\r\n\r\n this.subcategories$ = dialogData.subCategories$;\r\n\r\n this.allowedFileExtensions = settings.uploadedFileExtensionsByCategoryId(dialogData.category.categoryId);\r\n\r\n this.subcategoryCtrl.valueChanges\r\n .pipe(takeUntil(this.onDialogDestroying))\r\n .subscribe((subcategoryId: CategoryNaturalKey) => {\r\n this.versionNumberCtrl.reset();\r\n this.versionDateCtrl.reset();\r\n this.titleControl.reset();\r\n super.resetFilesControl();\r\n\r\n switch (subcategoryId) {\r\n case this.studyManualsId:\r\n this.editorForm.addControl('versionNumber', this.versionNumberCtrl);\r\n this.editorForm.removeControl('versionDate');\r\n this.editorForm.removeControl('title');\r\n break;\r\n\r\n case this.synopsisId:\r\n this.editorForm.removeControl('versionNumber');\r\n this.editorForm.addControl('versionDate', this.versionDateCtrl);\r\n this.editorForm.removeControl('title');\r\n break;\r\n\r\n case this.labManualsOthersId:\r\n this.editorForm.removeControl('versionNumber');\r\n this.editorForm.removeControl('versionDate');\r\n this.editorForm.addControl('title', this.titleControl);\r\n break;\r\n }\r\n });\r\n }\r\n\r\n public async addFiles() {\r\n const project = this.projectCtrl.value[0] as Project;\r\n const message = `The document will be posted to ${project.sponsor} - ${project.protocolNumber} - ${project.zcProjectNumber}. Proceed?`;\r\n\r\n const versionDate = isMoment(this.versionDateCtrl.value) && this.versionDateCtrl.value.isValid()\r\n ? this.versionDateCtrl.value.format('YYYY-MM-DD')\r\n : null;\r\n\r\n const documentMetadata = {\r\n subProtocolId: project.subProtocolId,\r\n zcProjectNumber: project.zcProjectNumber,\r\n protocolNumber: project.protocolNumber,\r\n versionNumber: this.versionNumberCtrl.value,\r\n versionDate: versionDate,\r\n title: this.titleControl.value,\r\n };\r\n\r\n super.addFiles(message, this.subcategoryCtrl.value, documentMetadata);\r\n }\r\n}","import { MdlDialogReference, MdlDialogService } from '@angular-mdl/core';\r\nimport { ChangeDetectionStrategy, Component, Inject } from '@angular/core';\r\nimport { FormControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { isEmpty, isEqual } from 'lodash';\r\nimport * as moment from 'moment';\r\nimport { Observable } from 'rxjs';\r\nimport { distinctUntilChanged, takeUntil } from 'rxjs/operators';\r\nimport { Settings } from '../../../../core';\r\nimport { Report } from '../../../../documents';\r\nimport { Site } from '../../../../sites';\r\nimport { Project } from '../../../shared';\r\nimport { UploadedDocumentsStorage } from '../../storages/uploaded-documents-storage';\r\nimport { UploadDialogData, UPLOAD_DLG_DATA_TOKEN } from '../base/upload-dialog-data';\r\nimport { Accession } from './../../../shared/accession';\r\nimport { Subject } from './../../../shared/subject';\r\nimport { SiteSpecificUploadDialogBase } from './site-specific-upload-dialog-base';\r\n\r\nconst siteControlName = 'site';\r\nconst subjectControlName = 'subject';\r\nconst accessionControlName = 'accession';\r\nconst dateRequiredControlName = 'dateRequired';\r\n\r\n@Component({\r\n selector: 'app-site-actions-upload',\r\n template: require('./site-actions-upload.component.html'),\r\n styles: [require('./site-actions-upload.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SiteActionsUploadComponent extends SiteSpecificUploadDialogBase {\r\n public readonly requireSiteOrAccessionErrorName = 'siteOrAccessionIsRequired';\r\n public readonly requireSiteOrAccessionErrorText = 'An Accession or a Site is required';\r\n\r\n public readonly titleControl: FormControl;\r\n public readonly projectControl: FormControl;\r\n public readonly siteControl: FormControl;\r\n public readonly subjectControl: FormControl;\r\n public readonly accessionControl: FormControl;\r\n public readonly isResponseRequiredControl: FormControl;\r\n public readonly dateRequiredControl: FormControl;\r\n\r\n public selectedProjects$: Observable;\r\n public selectedSites$: Observable;\r\n\r\n public readonly allowedFileExtensions: string[];\r\n public readonly yesterday: moment.Moment;\r\n\r\n constructor(\r\n protected readonly dialog: MdlDialogReference,\r\n protected readonly dialogService: MdlDialogService,\r\n @Inject(UPLOAD_DLG_DATA_TOKEN) protected readonly dialogData: UploadDialogData,\r\n uploadedDocumentsStorage: UploadedDocumentsStorage,\r\n protected readonly settings: Settings\r\n ) {\r\n super(dialog, dialogService, uploadedDocumentsStorage, uploadedDocumentsStorage);\r\n\r\n this.yesterday = moment().subtract(1, 'day');\r\n\r\n this.allowedFileExtensions = settings.uploadedFileExtensionsByCategoryId(dialogData.category.categoryId);\r\n\r\n this.titleControl = new FormControl();\r\n this.projectControl = new FormControl();\r\n this.siteControl = new FormControl([], this.requireSiteOrAccession());\r\n this.subjectControl = new FormControl();\r\n this.accessionControl = new FormControl([], this.requireSiteOrAccession());\r\n this.isResponseRequiredControl = new FormControl(false);\r\n this.dateRequiredControl = new FormControl(null, Validators.required);\r\n\r\n this.editorForm.addControl('title', this.titleControl);\r\n this.editorForm.addControl('project', this.projectControl);\r\n this.editorForm.addControl(siteControlName, this.siteControl);\r\n this.editorForm.addControl(subjectControlName, this.subjectControl);\r\n this.editorForm.addControl(accessionControlName, this.accessionControl);\r\n this.editorForm.addControl('isResponseRequired', this.isResponseRequiredControl);\r\n\r\n this.selectedProjects$ = this.projectControl.valueChanges.pipe(distinctUntilChanged());\r\n this.selectedSites$ = this.siteControl.valueChanges.pipe(distinctUntilChanged());\r\n\r\n this.isResponseRequiredControl.valueChanges\r\n .pipe(takeUntil(this.onDialogDestroying))\r\n .subscribe(isResponseRequired => {\r\n this.dateRequiredControl.reset();\r\n\r\n if (isResponseRequired) {\r\n this.editorForm.addControl(dateRequiredControlName, this.dateRequiredControl);\r\n } else {\r\n this.editorForm.removeControl(dateRequiredControlName);\r\n }\r\n });\r\n\r\n this.siteControl.valueChanges\r\n .pipe(\r\n distinctUntilChanged((x, y) => isEqual(x, y)),\r\n takeUntil(this.onDialogDestroying)\r\n ).subscribe(sites => {\r\n this.subjectControl.setValue([]);\r\n\r\n if (!isEmpty(sites)) {\r\n this.accessionControl.setValue([]);\r\n\r\n this.editorForm.addControl(siteControlName, this.siteControl);\r\n this.editorForm.addControl(subjectControlName, this.subjectControl);\r\n this.editorForm.removeControl(accessionControlName);\r\n }\r\n });\r\n\r\n this.accessionControl.valueChanges\r\n .pipe(\r\n distinctUntilChanged((x, y) => isEqual(x, y)),\r\n takeUntil(this.onDialogDestroying)\r\n ).subscribe(accessions => {\r\n if (!isEmpty(accessions)) {\r\n this.siteControl.setValue([]);\r\n this.subjectControl.setValue([]);\r\n\r\n this.editorForm.addControl(accessionControlName, this.accessionControl);\r\n this.editorForm.removeControl(siteControlName);\r\n this.editorForm.removeControl(subjectControlName);\r\n }\r\n });\r\n }\r\n\r\n public async addFiles() {\r\n const project = (this.projectControl.value as Project[])[0];\r\n const site = this.siteControl.value[0];\r\n const subject = (this.subjectControl.value as Subject[])[0];\r\n const accession = (this.accessionControl.value as Accession[])[0];\r\n\r\n const dateRequired = moment.isMoment(this.dateRequiredControl.value) && this.dateRequiredControl.value.isValid()\r\n ? this.dateRequiredControl.value.format('YYYY-MM-DD')\r\n : null;\r\n\r\n const documentMetadata = {\r\n title: this.titleControl.value,\r\n subprotocolId: project.subProtocolId,\r\n siteId: site ? site.siteId : null, \r\n subjectId: subject ? subject.subjectId : null,\r\n accessionId: accession ? accession.accessionId : null,\r\n isResponseRequired: this.isResponseRequiredControl.value === true,\r\n dateRequired: dateRequired\r\n };\r\n\r\n super.addFiles('Proceed?', this.dialogData.category.categoryId, documentMetadata);\r\n }\r\n\r\n private requireSiteOrAccession(): ValidatorFn {\r\n return (): ValidationErrors | null => {\r\n const siteHasValue = this.siteControl && !isEmpty(this.siteControl.value);\r\n const accessionHasValue = this.accessionControl && !isEmpty(this.accessionControl.value);\r\n \r\n return siteHasValue || accessionHasValue\r\n ? null\r\n : { [this.requireSiteOrAccessionErrorName]: true };\r\n };\r\n }\r\n}\r\n","import { MdlDialogReference, MdlDialogService } from '@angular-mdl/core';\r\nimport { ChangeDetectionStrategy, Component, Inject } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { Settings } from '../../../../core';\r\nimport { Report } from '../../../../documents';\r\nimport { Project } from '../../../shared';\r\nimport { UploadedDocumentsStorage } from '../../storages/uploaded-documents-storage';\r\nimport { UploadDialogData, UPLOAD_DLG_DATA_TOKEN } from '../base/upload-dialog-data';\r\nimport { SitesData } from '../form-fields/sites-select.component';\r\nimport { SiteSpecificUploadDialogBase } from './site-specific-upload-dialog-base';\r\nimport { serializeDateOnly } from '../../../../core/serializers';\r\n\r\n@Component({\r\n selector: 'app-site-communications-upload',\r\n template: require('./site-communications-upload.component.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SiteCommunicationsUploadComponent extends SiteSpecificUploadDialogBase {\r\n public readonly projectControl: FormControl;\r\n public readonly letterNumberControl: FormControl;\r\n public readonly titleControl: FormControl;\r\n public readonly sitesFormGroup: FormGroup;\r\n\r\n public readonly allowedFileExtensions: string[];\r\n public sitesData: SitesData;\r\n\r\n constructor(\r\n protected readonly dialog: MdlDialogReference,\r\n protected readonly dialogService: MdlDialogService,\r\n @Inject(UPLOAD_DLG_DATA_TOKEN) protected readonly dialogData: UploadDialogData,\r\n uploadedDocumentsStorage: UploadedDocumentsStorage,\r\n protected readonly settings: Settings\r\n ) {\r\n super(dialog, dialogService, uploadedDocumentsStorage, uploadedDocumentsStorage);\r\n\r\n this.projectControl = new FormControl();\r\n this.letterNumberControl = new FormControl();\r\n this.titleControl = new FormControl();\r\n this.sitesFormGroup = new FormGroup({});\r\n\r\n this.editorForm.addControl('project', this.projectControl);\r\n this.editorForm.addControl('letterNumber', this.letterNumberControl);\r\n this.editorForm.addControl('title', this.titleControl);\r\n this.editorForm.addControl('sites', this.sitesFormGroup);\r\n\r\n this.allowedFileExtensions = settings.uploadedFileExtensionsByCategoryId(dialogData.category.categoryId);\r\n }\r\n\r\n public onSitesChange(sitesData: SitesData) {\r\n this.sitesData = sitesData;\r\n }\r\n\r\n public async addFiles() {\r\n const project = (this.projectControl.value as Project[])[0];\r\n let message = '';\r\n if (this.sitesData.allSites) {\r\n message = `This communication will be viewable by all investigators at all sites for project ${project.zcProjectNumber}. Proceed?`;\r\n } else {\r\n const sitesDescription = this.sitesData.selectedSites.map(s => `${s.siteNum} - ${s.investigatorFullName}`).join('
');\r\n const sitesDescriptionHtml = `
${sitesDescription}
`;\r\n message = `This communication will be viewable by all investigators at the following site(s) for project ${project.zcProjectNumber}. Proceed?

${sitesDescriptionHtml}`;\r\n }\r\n\r\n const siteLimitdate = serializeDateOnly(this.sitesData.siteLimitDate);\r\n\r\n const documentMetadata = {\r\n subprotocolId: project.subProtocolId,\r\n selectedSites: this.sitesData.selectedSites.map(s => s.siteId),\r\n allSites: this.sitesData.allSites,\r\n siteLimitDate: siteLimitdate,\r\n letterNumber: this.letterNumberControl.value,\r\n title: this.titleControl.value,\r\n };\r\n\r\n super.addFiles(message, this.dialogData.category.categoryId, documentMetadata);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { UploadStorage } from './upload-storage';\r\nimport { HttpEvent } from '@angular/common/http';\r\nimport { Settings } from '../../../core';\r\nimport { UploadedDocumentsRequestCreator } from './uploaded-documents-request-creator';\r\nimport { Category, CategoryNaturalKey } from '../../../documents';\r\nimport { CultureInfo } from '../../../core/culture-info';\r\nimport { Observable } from 'rxjs';\r\nimport { ActivityLogger } from '../../../activities/activity-logger';\r\nimport { isDefined } from '@angular/compiler/src/util';\r\n\r\n@Injectable()\r\nexport class ELearningUploadStorage implements UploadStorage {\r\n\r\n constructor(\r\n private readonly settings: Settings,\r\n private readonly uploadRequestCreator: UploadedDocumentsRequestCreator,\r\n private readonly activityLogger: ActivityLogger,\r\n ) {\r\n }\r\n\r\n public create(categoryId: CategoryNaturalKey, files: Map, documentMetadata: T): Observable> {\r\n this.activityLogger.logUploadActivity(categoryId);\r\n\r\n if (Category.isELearningCategory(categoryId) && !Category.isTrainingMaterialsELearning(categoryId)) {\r\n return this.uploadRequestCreator.createPost(`${this.settings.apiUrl}/admin/e-learning/${categoryId}/upload`, files, documentMetadata);\r\n } else if (Category.isTrainingMaterialsOthers(categoryId)) {\r\n return this.uploadRequestCreator.createPost(`${this.settings.apiUrl}/admin/training-materials/others-upload`, files, documentMetadata);\r\n } else if (Category.isTrainingMaterialsELearning(categoryId)) {\r\n return this.uploadRequestCreator.createPost(`${this.settings.apiUrl}/admin/training-materials/eLearnings-upload`, files, documentMetadata);\r\n } else {\r\n return this.uploadRequestCreator.createPost(`${this.settings.apiUrl}/admin/uploaded-documents/${categoryId}`, files, documentMetadata);\r\n }\r\n }\r\n\r\n public update(categoryId: CategoryNaturalKey, files: Map, documentId: string, auditTrailReason: string): Observable> {\r\n this.activityLogger.logEditFileActivity(documentId);\r\n\r\n return this.uploadRequestCreator.createPut(`${this.settings.apiUrl}/admin/e-learning/${categoryId}/update/${documentId}`, files, auditTrailReason);\r\n }\r\n}","import { Component, ChangeDetectionStrategy, Inject } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MdlDialogService, MdlDialogReference } from '@angular-mdl/core';\r\nimport { ELearningUploadStorage } from '../../storages/e-learning-upload-storage';\r\nimport { Settings } from '../../../../core';\r\nimport { UPLOAD_DLG_DATA_TOKEN, UploadDialogData } from '../base/upload-dialog-data';\r\nimport { SiteSpecificUploadDialogBase } from './site-specific-upload-dialog-base';\r\nimport { Protocol } from '../../../shared/protocol';\r\nimport { Category, CategoryNaturalKey, Report } from '../../../../documents';\r\nimport { Observable } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { UploadedDocumentsStorage } from '../../storages/uploaded-documents-storage';\r\n\r\n@Component({\r\n selector: 'app-sponsor-communications-upload',\r\n template: require('./sponsor-communications-upload.component.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SponsorCommunicationsUploadComponent extends SiteSpecificUploadDialogBase {\r\n public readonly subcategoryControl: FormControl;\r\n public readonly protocolControl: FormControl;\r\n public readonly letterNumberControl: FormControl;\r\n public readonly titleControl: FormControl;\r\n public readonly subcategories$: Observable;\r\n\r\n public allowedFileExtensions: string[];\r\n\r\n public get isDocumentLetterNumberVisible() {\r\n return this.editorForm.get(this.letterNumberControlName) !== null;\r\n }\r\n\r\n public get categoryChangeConfirmationText(): string {\r\n const controlsWithValue = [];\r\n\r\n if (this.selectedFiles && this.selectedFiles.size > 0) {\r\n controlsWithValue.push('Files');\r\n }\r\n if (this.letterNumberControl && this.letterNumberControl.value) {\r\n controlsWithValue.push('Letter Number');\r\n }\r\n \r\n return controlsWithValue.length > 0 ? `${controlsWithValue.join(' and ')} will be cleared.` : null;\r\n }\r\n\r\n private readonly eLearningCategoryId: CategoryNaturalKey = 'sponsor-communications-e-learning';\r\n private readonly mainCategoryId: CategoryNaturalKey = 'sponsor-communications-main';\r\n\r\n private readonly letterNumberControlName: string = 'letterNumber';\r\n\r\n constructor(\r\n protected readonly dialog: MdlDialogReference,\r\n protected readonly dialogService: MdlDialogService,\r\n @Inject(UPLOAD_DLG_DATA_TOKEN) protected readonly dialogData: UploadDialogData,\r\n uploadedDocumentsStorage: UploadedDocumentsStorage,\r\n eLearningUploadStorage: ELearningUploadStorage,\r\n protected readonly settings: Settings\r\n ) {\r\n super(dialog, dialogService, uploadedDocumentsStorage, eLearningUploadStorage);\r\n\r\n this.subcategoryControl = new FormControl();\r\n this.protocolControl = new FormControl();\r\n this.letterNumberControl = new FormControl();\r\n this.titleControl = new FormControl();\r\n this.subcategories$ = dialogData.subCategories$;\r\n\r\n this.editorForm.addControl('subcategoriesControl', this.subcategoryControl);\r\n this.editorForm.addControl('protocol', this.protocolControl);\r\n this.editorForm.addControl('title', this.titleControl);\r\n\r\n this.subcategoryControl.valueChanges\r\n .pipe(takeUntil(this.onDialogDestroying))\r\n .subscribe((subcategoryId: CategoryNaturalKey) => {\r\n this.allowedFileExtensions = settings.uploadedFileExtensionsByCategoryId(subcategoryId);\r\n\r\n this.letterNumberControl.reset();\r\n super.resetFilesControl();\r\n\r\n switch (subcategoryId) {\r\n case this.eLearningCategoryId:\r\n this.editorForm.removeControl(this.letterNumberControlName);\r\n break;\r\n case this.mainCategoryId:\r\n this.editorForm.addControl(this.letterNumberControlName, this.letterNumberControl);\r\n break;\r\n }\r\n });\r\n }\r\n\r\n public async addFiles() {\r\n const protocol = (this.protocolControl.value as Protocol[])[0];\r\n const message = `The document will be posted to ${protocol.toString()}. Proceed?`;\r\n\r\n const documentMetadata = {\r\n protocolId: protocol.id,\r\n letterNumber: this.letterNumberControl.value,\r\n title: this.titleControl.value,\r\n };\r\n\r\n super.addFiles(message, this.subcategoryControl.value, documentMetadata);\r\n }\r\n}","import { MdlDialogReference, MdlDialogService } from '@angular-mdl/core';\r\nimport { ChangeDetectionStrategy, Component, Inject } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { Settings } from '../../../../core';\r\nimport { Category, CategoryNaturalKey, Report } from '../../../../documents';\r\nimport { Project, Protocol } from '../../../shared';\r\nimport { ELearningUploadStorage } from '../../storages/e-learning-upload-storage';\r\nimport { UploadDialogData, UPLOAD_DLG_DATA_TOKEN } from '../base/upload-dialog-data';\r\nimport { SitesData } from '../form-fields/sites-select.component';\r\nimport { SiteSpecificUploadDialogBase } from './site-specific-upload-dialog-base';\r\nimport { takeUntil, distinctUntilChanged } from 'rxjs/operators';\r\nimport { UploadedDocumentsStorage } from '../../storages/uploaded-documents-storage';\r\nimport { isEmpty } from 'lodash';\r\n\r\n@Component({\r\n selector: 'app-study-training-materials-upload',\r\n template: require('./training-materials-upload.component.html'),\r\n styles: [require('./training-materials-upload.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TrainingMaterialsUploadComponent extends SiteSpecificUploadDialogBase {\r\n public readonly subcategoryControl: FormControl;\r\n public readonly protocolControl: FormControl;\r\n public readonly projectsControl: FormControl;\r\n public readonly versionNumberControl: FormControl;\r\n public readonly titleControl: FormControl;\r\n public sitesFormGroup: FormGroup;\r\n public readonly subcategories$: Observable;\r\n\r\n public allowedFileExtensions: string[];\r\n public sitesData: SitesData;\r\n public selectedProtocols$: Observable;\r\n\r\n public get showSitesSelect() {\r\n return this.editorForm.get('sites') != null;\r\n }\r\n\r\n public get categoryChangeConfirmationText(): string {\r\n const controlsWithValue = [];\r\n\r\n if (this.selectedFiles && this.selectedFiles.size > 0) {\r\n controlsWithValue.push('Files');\r\n }\r\n if (this.sitesData && (this.sitesData.allSites || !isEmpty(this.sitesData.selectedSites))) {\r\n controlsWithValue.push('Sites');\r\n }\r\n\r\n return controlsWithValue.length > 0 ? `${controlsWithValue.join(' and ')} will be cleared.` : null;\r\n }\r\n\r\n private readonly trainingMaterialsOthersId: CategoryNaturalKey = 'training-materials-others';\r\n private readonly trainingMaterialsELearningId: CategoryNaturalKey = 'training-materials-e-learning';\r\n\r\n constructor(\r\n protected readonly dialog: MdlDialogReference,\r\n protected readonly dialogService: MdlDialogService,\r\n @Inject(UPLOAD_DLG_DATA_TOKEN) protected readonly dialogData: UploadDialogData,\r\n uploadedDocumentsStorage: UploadedDocumentsStorage,\r\n eLearningUploadStorage: ELearningUploadStorage,\r\n protected readonly settings: Settings\r\n ) {\r\n super(dialog, dialogService, uploadedDocumentsStorage, eLearningUploadStorage);\r\n\r\n this.subcategoryControl = new FormControl();\r\n this.protocolControl = new FormControl();\r\n this.projectsControl = new FormControl();\r\n this.sitesFormGroup = new FormGroup({});\r\n this.titleControl = new FormControl();\r\n this.versionNumberControl = new FormControl();\r\n this.subcategories$ = dialogData.subCategories$;\r\n\r\n this.subcategoryControl.valueChanges\r\n .pipe(takeUntil(this.onDialogDestroying))\r\n .subscribe((subcategoryId: CategoryNaturalKey) => {\r\n this.sitesFormGroup = new FormGroup({});\r\n this.sitesData = null;\r\n super.resetFilesControl();\r\n\r\n switch (subcategoryId) {\r\n case this.trainingMaterialsOthersId:\r\n this.allowedFileExtensions = settings.uploadedFileExtensionsByCategoryId(this.trainingMaterialsOthersId);\r\n this.editorForm.addControl('subcategory', this.subcategoryControl);\r\n this.editorForm.addControl('protocols', this.protocolControl);\r\n this.editorForm.addControl('projects', this.projectsControl);\r\n this.editorForm.addControl('sites', this.sitesFormGroup);\r\n this.editorForm.addControl('title', this.titleControl);\r\n this.editorForm.addControl('versionNumber', this.versionNumberControl);\r\n break;\r\n\r\n case this.trainingMaterialsELearningId:\r\n this.allowedFileExtensions = settings.uploadedFileExtensionsByCategoryId(this.trainingMaterialsELearningId);\r\n this.editorForm.addControl('subcategory', this.subcategoryControl);\r\n this.editorForm.addControl('protocols', this.protocolControl);\r\n this.editorForm.addControl('projects', this.projectsControl);\r\n this.editorForm.removeControl('sites');\r\n this.editorForm.addControl('title', this.titleControl);\r\n this.editorForm.addControl('versionNumber', this.versionNumberControl);\r\n break;\r\n }\r\n });\r\n this.selectedProtocols$ = this.protocolControl.valueChanges.pipe(distinctUntilChanged());\r\n }\r\n\r\n public onSitesChange(sitesData: SitesData) {\r\n this.sitesData = sitesData;\r\n }\r\n\r\n public async addFiles() {\r\n const projects = this.projectsControl.value as Project[];\r\n const projectNumberStr = this.getProjectNumbers(projects);\r\n\r\n const message = `The document will be posted to ${projects[0].sponsor} - ${projects[0].protocolNumber} - ${projectNumberStr}.Proceed?`;\r\n\r\n let documentMetadata: { [key: string]: any };\r\n if (this.subcategoryControl.value === this.trainingMaterialsOthersId) {\r\n documentMetadata = {\r\n projects: projects,\r\n allSites: this.sitesData.allSites,\r\n selectedSites: this.sitesData.selectedSites,\r\n title: this.titleControl.value,\r\n versionNumber: this.versionNumberControl.value\r\n };\r\n } else if (this.subcategoryControl.value === this.trainingMaterialsELearningId) {\r\n documentMetadata = {\r\n projects: projects,\r\n allSites: true,\r\n title: this.titleControl.value,\r\n versionNumber: this.versionNumberControl.value\r\n };\r\n }\r\n\r\n super.addFiles(message, this.subcategoryControl.value, documentMetadata);\r\n }\r\n\r\n private getProjectNumbers(projects: Project[]): string {\r\n let projectStr: string[] = [];\r\n\r\n projects.forEach(project => {\r\n projectStr.push(project.zcProjectNumber);\r\n });\r\n\r\n return projectStr.join(',');\r\n }\r\n}\r\n","import { Injectable, Type } from '@angular/core';\r\nimport { Category, CategoryNaturalKey } from '../../../documents/models/category';\r\nimport { ApplicationTrainingUploadComponent } from './general/application-training-upload.component';\r\nimport { GeneralCommunicationsUploadComponent } from './general/general-communications-upload.component';\r\nimport { GeneralLabManualsUploadComponent } from './general/general-lab-manuals-upload.component';\r\nimport { GeneralTrainingMaterialsUploadComponent } from './general/general-training-materials-upload.component';\r\nimport { LabManualsUploadComponent } from './site-specific/lab-manuals-upload.component';\r\nimport { SiteActionsUploadComponent } from './site-specific/site-actions-upload.component';\r\nimport { SiteCommunicationsUploadComponent } from './site-specific/site-communications-upload.component';\r\nimport { SponsorCommunicationsUploadComponent } from './site-specific/sponsor-communications-upload.component';\r\nimport { TrainingMaterialsUploadComponent } from './site-specific/training-materials-upload.component';\r\nimport { UploadDialogBase } from './base/upload-dialog-base';\r\n\r\n@Injectable()\r\nexport class UploadDialogTypeResolver {\r\n private readonly dialogTypesDictionary: { [key in CategoryNaturalKey]?: Type } = {\r\n 'general-communications': GeneralCommunicationsUploadComponent,\r\n 'general-manuals': GeneralLabManualsUploadComponent,\r\n 'general-training-materials': GeneralTrainingMaterialsUploadComponent,\r\n 'application-training': ApplicationTrainingUploadComponent,\r\n 'lab-manuals': LabManualsUploadComponent,\r\n 'site-communications': SiteCommunicationsUploadComponent,\r\n 'site-actions': SiteActionsUploadComponent,\r\n 'sponsor-communications': SponsorCommunicationsUploadComponent,\r\n 'training-materials': TrainingMaterialsUploadComponent,\r\n };\r\n\r\n public getDialogType(category: Category): Type {\r\n return this.dialogTypesDictionary[category.categoryId];\r\n }\r\n}\r\n","import { MdlDialogReference, MdlDialogService } from '@angular-mdl/core';\r\nimport { UploadDialogBase } from './upload-dialog-base';\r\nimport { UploadStorage } from '../../storages/upload-storage';\r\nimport { CategoryNaturalKey } from '../../../../documents';\r\n\r\nexport abstract class UpdateDocumentDialogBase extends UploadDialogBase {\r\n\r\n public readonly generalDocumentType = 'general-document';\r\n public readonly applicationTrainingType = 'application-training';\r\n public readonly siteCommunicationType = 'site-communications';\r\n public readonly sponsorCommunicationType = 'sponsor-communications';\r\n public readonly studyManualType = 'study-manuals';\r\n public readonly trainingMaterialsType = 'training-materials';\r\n public readonly siteActionsType = 'site-actions';\r\n public readonly documentInfoComponentSelector: string;\r\n\r\n protected constructor(\r\n uploadStorage: UploadStorage,\r\n protected readonly dialog: MdlDialogReference,\r\n protected readonly dialogService: MdlDialogService,\r\n categoryNaturalKey: CategoryNaturalKey\r\n ) { \r\n super(uploadStorage, dialog);\r\n this.documentInfoComponentSelector = this.getDocumentInfoComponentSelector(categoryNaturalKey);\r\n }\r\n\r\n protected getDocumentInfoComponentSelector(categoryNaturalKey: CategoryNaturalKey): string {\r\n switch (categoryNaturalKey) {\r\n case 'general-manuals':\r\n case 'general-communications':\r\n case 'general-training-materials':\r\n return this.generalDocumentType;\r\n case 'application-training':\r\n return this.applicationTrainingType;\r\n case 'lab-manuals':\r\n return this.studyManualType;\r\n case 'site-communications':\r\n return this.siteCommunicationType;\r\n case 'sponsor-communications':\r\n return this.sponsorCommunicationType;\r\n case 'training-materials':\r\n return this.trainingMaterialsType;\r\n case 'site-actions':\r\n return this.siteActionsType;\r\n default:\r\n throw new Error('invalid category');\r\n }\r\n }\r\n\r\n protected async showConfirm(confirmationText: string): Promise {\r\n this.confirmationDialogOpened = true;\r\n\r\n try {\r\n await this.dialogService.confirm(confirmationText, 'No', 'Yes').toPromise();\r\n return true;\r\n } catch {\r\n return false;\r\n } finally {\r\n this.confirmationDialogOpened = false;\r\n }\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Category, Report } from '../../../documents';\r\nimport { Settings } from '../../../core';\r\n\r\n@Injectable()\r\nexport class FileExtensions {\r\n constructor(private readonly settings: Settings) { }\r\n\r\n public getAllowedFileExtensions(report: Report) {\r\n const categoryHasElearningSubcategories = report.category.categoryId === 'training-materials'\r\n || report.category.categoryId === 'sponsor-communications';\r\n\r\n return categoryHasElearningSubcategories\r\n ? this.settings.uploadedFileExtensionsByCategoryId(report.subcategoryId)\r\n : this.settings.uploadedFileExtensionsByCategoryId(report.category.categoryId);\r\n }\r\n}","import { Component, ChangeDetectionStrategy, Inject } from '@angular/core';\r\nimport { MdlDialogReference, MdlDialogService } from '@angular-mdl/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { UploadedDocumentsStorage } from '../../storages/uploaded-documents-storage';\r\nimport { FileToLanguage } from '../../../../covance-file-upload/covance-file-upload.component';\r\nimport { UPLOAD_DLG_DATA_TOKEN, UploadDialogData } from '../base/upload-dialog-data';\r\nimport { UpdateDocumentDialogBase } from '../base/update-document-dialog-base';\r\nimport { CustomMethodUploadOptions } from '../base/method-upload-options';\r\nimport { FileFormArray } from '../../../../covance-file-upload/file-form-array';\r\nimport { GeneralReport, FileLink, Report, Category } from '../../../../documents';\r\nimport { FileExtensions } from '../file-extensions';\r\nimport { ELearningUploadStorage } from '../../storages/e-learning-upload-storage';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpEvent } from '@angular/common/http';\r\n\r\n@Component({\r\n selector: 'file-edit',\r\n template: require('./file-edit.component.html'),\r\n styles: [require('./file-edit.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class FileEditComponent extends UpdateDocumentDialogBase {\r\n public readonly languages: FileLink[] = [];\r\n public readonly subcategory: string;\r\n public readonly allowedFileExtensions: string[];\r\n public readonly isSingleUpload: boolean;\r\n public readonly report: Report;\r\n public readonly fileFormArray: FileFormArray;\r\n public readonly auditTrailReasonControl: FormControl;\r\n public selectedFiles: FileToLanguage;\r\n\r\n constructor(\r\n dialog: MdlDialogReference,\r\n dialogService: MdlDialogService,\r\n private readonly uploadedDocumentsStorage: UploadedDocumentsStorage,\r\n private readonly eLearningUploadStorage: ELearningUploadStorage,\r\n @Inject(UPLOAD_DLG_DATA_TOKEN) readonly dialogData: UploadDialogData,\r\n readonly fileExtensions: FileExtensions,\r\n ) {\r\n super(\r\n uploadedDocumentsStorage,\r\n dialog,\r\n dialogService,\r\n dialogData.report.category.categoryId);\r\n\r\n this.subcategory = dialogData.report.subcategoryTitle;\r\n this.report = dialogData.report;\r\n this.languages = dialogData.report.fileLinks;\r\n this.auditTrailReasonControl = new FormControl('', [Validators.required]);\r\n this.fileFormArray = new FileFormArray();\r\n\r\n this.editorForm.addControl('files', this.fileFormArray);\r\n this.editorForm.addControl('auditTrailReason', this.auditTrailReasonControl);\r\n\r\n this.allowedFileExtensions = fileExtensions.getAllowedFileExtensions(dialogData.report);\r\n this.isSingleUpload = dialogData.category.isSiteActions();\r\n }\r\n\r\n public onFilesChanged(selectedFiles: FileToLanguage) {\r\n this.selectedFiles = selectedFiles;\r\n }\r\n\r\n public async add() {\r\n const title = this.dialogData.report.title ? ` ${this.dialogData.report.title}` : '';\r\n const message = `You are going to replace a document${title}. Proceed?`;\r\n\r\n const confirmed = await this.showConfirm(message);\r\n \r\n if (confirmed) {\r\n let customUploadMethod: () => Observable>;\r\n if (Category.isELearningCategory(this.dialogData.report.fileLinkCategory)) {\r\n customUploadMethod = () => this.eLearningUploadStorage.update(\r\n this.dialogData.report.fileLinkCategory,\r\n this.selectedFiles,\r\n this.dialogData.report.reportId,\r\n this.auditTrailReasonControl.value);\r\n } else {\r\n customUploadMethod = () => this.uploadedDocumentsStorage.update(\r\n this.dialogData.report.fileLinkCategory,\r\n this.selectedFiles,\r\n this.dialogData.report.reportId,\r\n this.auditTrailReasonControl.value);\r\n }\r\n\r\n this.upload(new CustomMethodUploadOptions(customUploadMethod, () => this.uploadedDocumentsStorage.forceLoadDocuments()));\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpEvent, HttpRequest } from '@angular/common/http';\r\nimport { Settings } from '../../../../core/settings';\r\nimport { FileToLanguage } from '../../../../covance-file-upload/covance-file-upload.component';\r\nimport { CultureInfo } from '../../../../core/culture-info';\r\nimport { Observable } from 'rxjs';\r\nimport { Category, CategoryNaturalKey } from '../../../../documents';\r\nimport { ActivityLogger } from '../../../../activities/activity-logger';\r\n\r\n@Injectable()\r\nexport class UploadedTranslationsStorage {\r\n\r\n constructor(\r\n private readonly http: HttpClient,\r\n private readonly settings: Settings,\r\n private readonly activityLogger: ActivityLogger,\r\n ) { }\r\n\r\n public upload(files: FileToLanguage, categoryId: CategoryNaturalKey, documentId: string): Observable> {\r\n this.activityLogger.logAddTranslationsActivity(documentId);\r\n\r\n const languages: CultureInfo[] = [];\r\n const fileContent = files.keys();\r\n\r\n const formData: FormData = new FormData();\r\n\r\n for (let file of fileContent) {\r\n formData.append('file', file, file.name);\r\n languages.push(files.get(file));\r\n }\r\n\r\n formData.append('fileLanguages', JSON.stringify(languages));\r\n formData.append('documentId', documentId);\r\n\r\n const apiPath = Category.isELearningCategory(categoryId) ? 'e-learning' : 'upload-documents';\r\n const url = `${this.settings.apiUrl}/admin/${apiPath}/${categoryId}/upload-translations/${documentId}`;\r\n const request = new HttpRequest('POST', url, formData, { reportProgress: true });\r\n\r\n return this.http.request(request);\r\n }\r\n}","import { MdlDialogReference, MdlDialogService } from '@angular-mdl/core';\r\nimport { ChangeDetectionStrategy, Component, Inject } from '@angular/core';\r\nimport { FileToLanguage } from '../../../../covance-file-upload/covance-file-upload.component';\r\nimport { FileFormArray } from '../../../../covance-file-upload/file-form-array';\r\nimport { FileLink, GeneralReport, Report } from '../../../../documents';\r\nimport { FileExtensions } from '../file-extensions';\r\nimport { UploadedDocumentsStorage } from '../../storages/uploaded-documents-storage';\r\nimport { UploadedTranslationsStorage } from './uploaded-translations-storage';\r\nimport { CustomMethodUploadOptions } from '../base/method-upload-options';\r\nimport { UploadDialogData, UPLOAD_DLG_DATA_TOKEN } from '../base/upload-dialog-data';\r\nimport { UpdateDocumentDialogBase } from './../base/update-document-dialog-base';\r\n\r\n@Component({\r\n selector: 'document-translation-upload',\r\n template: require('./document-translation-upload.component.html'),\r\n styles: [require('./document-translation-upload.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DocumentTranslationUploadComponent extends UpdateDocumentDialogBase {\r\n public readonly languages: FileLink[] = [];\r\n public readonly subcategory: string;\r\n public readonly title: string;\r\n public readonly letterNumber: string;\r\n public readonly fileFormArray: FileFormArray;\r\n public readonly allowedFileExtensions: string[];\r\n public readonly excludeLanguageIds: string[];\r\n public readonly excludeFileNames: string[];\r\n public readonly report: Report;\r\n\r\n public selectedFiles: FileToLanguage;\r\n\r\n constructor(\r\n dialog: MdlDialogReference,\r\n dialogService: MdlDialogService,\r\n private readonly uploadedDocumentsStorage: UploadedDocumentsStorage,\r\n private readonly uploadedTranslationsStorage: UploadedTranslationsStorage,\r\n @Inject(UPLOAD_DLG_DATA_TOKEN) readonly dialogData: UploadDialogData,\r\n readonly fileExtensions: FileExtensions,\r\n ) {\r\n super(\r\n uploadedDocumentsStorage,\r\n dialog,\r\n dialogService,\r\n dialogData.category.categoryId);\r\n\r\n this.subcategory = dialogData.report.subcategoryTitle;\r\n this.title = dialogData.report.title;\r\n this.letterNumber = dialogData.report.letterNumber;\r\n this.report = dialogData.report;\r\n this.languages = dialogData.report.fileLinks;\r\n this.excludeLanguageIds = dialogData.report.fileLinks.map(l => l.languageId);\r\n this.excludeFileNames = dialogData.report.fileLinks.map(l => l.uploadFileName);\r\n this.fileFormArray = new FileFormArray();\r\n \r\n this.editorForm.addControl('files', this.fileFormArray);\r\n\r\n this.allowedFileExtensions = fileExtensions.getAllowedFileExtensions(dialogData.report);\r\n }\r\n\r\n public onFilesChanged(selectedFiles: FileToLanguage) {\r\n this.selectedFiles = selectedFiles;\r\n }\r\n\r\n public async add() {\r\n\r\n const title = this.dialogData.report.title ? ` ${this.dialogData.report.title}` : '';\r\n const message = `You are going to upload translation for a document${title}. Proceed?`;\r\n\r\n const confirmed = await this.showConfirm(message);\r\n \r\n if (confirmed) {\r\n this.upload(new CustomMethodUploadOptions(\r\n () => this.uploadedTranslationsStorage.upload(\r\n this.selectedFiles,\r\n this.dialogData.report.fileLinkCategory,\r\n this.dialogData.report.reportId),\r\n () => this.uploadedDocumentsStorage.forceLoadDocuments()\r\n ));\r\n }\r\n }\r\n}","import { InjectionToken } from '@angular/core';\r\nimport { Report } from '../../documents';\r\n\r\nexport const HIDE_DIALOG_DATA_TOKEN = new InjectionToken('HIDE_DIALOG_DATA');\r\n\r\nexport interface HideDocumentDialogData {\r\n report: Report;\r\n}\r\n","import { Component, Inject, ChangeDetectionStrategy } from '@angular/core';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\nimport { MdlDialogReference, MdlDialogService } from '@angular-mdl/core';\r\nimport { HIDE_DIALOG_DATA_TOKEN, HideDocumentDialogData } from './hide-document-dialog-data';\r\nimport { UploadedDocumentsStorage, VisibilityDocumentRequest } from './storages/uploaded-documents-storage';\r\n\r\n@Component({\r\n selector: 'hide-document',\r\n template: require('./hide-document.component.html'),\r\n styles: [require('./hide-document.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class HideDocumentComponent {\r\n public readonly editorForm: FormGroup;\r\n public readonly reasonControl = new FormControl(null);\r\n public readonly actionTitle: string;\r\n\r\n constructor(\r\n private readonly dialog: MdlDialogReference,\r\n private readonly dialogService: MdlDialogService,\r\n private readonly uploadedDocumentsStorage: UploadedDocumentsStorage,\r\n @Inject(HIDE_DIALOG_DATA_TOKEN) readonly dialogData: HideDocumentDialogData\r\n ) {\r\n this.editorForm = new FormGroup({\r\n 'reason': this.reasonControl\r\n });\r\n this.actionTitle = this.dialogData.report.isHidden ? 'Unhide' : 'Hide';\r\n }\r\n\r\n public async onOk() {\r\n const confirmed = await this.showConfirm(`The document will be ${this.dialogData.report.isHidden ? 'unhidden' : 'hidden'}. Proceed?`);\r\n\r\n if (confirmed) {\r\n const request: VisibilityDocumentRequest = {\r\n documentId: this.dialogData.report.reportId,\r\n isHidden: !this.dialogData.report.isHidden,\r\n reason: this.reasonControl.value,\r\n reportId: null,\r\n };\r\n\r\n if (this.dialogData.report.category.isLabReport()) {\r\n request.reportId = this.dialogData.report.reportId;\r\n request.isHidden = !this.dialogData.report.isHidden;\r\n request.reason = this.reasonControl.value;\r\n request.documentId = '123';\r\n }\r\n\r\n try {\r\n this.editorForm.disable();\r\n\r\n await this.uploadedDocumentsStorage.changeVisibility(this.dialogData.report.category, request);\r\n await this.uploadedDocumentsStorage.forceLoadDocuments();\r\n\r\n this.dialog.hide();\r\n } catch (e) {\r\n this.editorForm.enable();\r\n throw e;\r\n }\r\n }\r\n }\r\n\r\n public onCancel() {\r\n this.dialog.hide();\r\n }\r\n\r\n protected async showConfirm(confirmationText: string): Promise {\r\n try {\r\n await this.dialogService.confirm(confirmationText, 'No', 'Yes').toPromise();\r\n return true;\r\n } catch {\r\n return false;\r\n }\r\n }\r\n}\r\n","import { IMdlCustomDialogConfiguration, MdlDialogService } from '@angular-mdl/core';\r\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { Report } from '../../documents';\r\nimport { ActionsMenuColumn } from '../../shared/grid-columns';\r\nimport { ActionsMenuAgRendererComponent, ActionsMenuItem } from './../../covance-ag-grid/renderers/actions-menu-ag-renderer-base';\r\nimport { UploadDialogData, UPLOAD_DLG_DATA_TOKEN } from './category-upload-dialogs/base/upload-dialog-data';\r\nimport { FileEditComponent } from './category-upload-dialogs/file-edit/file-edit.component';\r\nimport { DocumentTranslationUploadComponent } from './category-upload-dialogs/translations/document-translation-upload.component';\r\nimport { HideDocumentDialogData, HIDE_DIALOG_DATA_TOKEN } from './hide-document-dialog-data';\r\nimport { HideDocumentComponent } from './hide-document.component';\r\n\r\n@Component({\r\n selector: 'upload-actions-menu-ag-renderer',\r\n template: require('../../covance-ag-grid/renderers/actions-menu-ag-renderer-base.html'),\r\n styles: [require('../../covance-ag-grid/renderers/actions-menu-ag-renderer-base.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class UploadActionsMenuAgRendererComponent extends ActionsMenuAgRendererComponent {\r\n\r\n constructor(private dialogService: MdlDialogService) {\r\n super();\r\n }\r\n\r\n public createMenuItems(data: Report, colDef: ActionsMenuColumn): ActionsMenuItem[] {\r\n const menuItems: ActionsMenuItem[] = [];\r\n\r\n const canUploadCategory = colDef.userPermissions && colDef.categoryId && colDef.userPermissions.canUploadCategory(colDef.categoryId);\r\n\r\n if (!data.category.isSiteActions() && canUploadCategory) {\r\n menuItems.push({\r\n title: 'Add Translations',\r\n onClick: () => {\r\n this.uploadTranslations(data);\r\n }\r\n });\r\n }\r\n\r\n if (canUploadCategory) {\r\n menuItems.push({\r\n title: 'Edit File',\r\n onClick: () => {\r\n this.editFile(data);\r\n }\r\n });\r\n }\r\n\r\n if (colDef.userPermissions && colDef.userPermissions.has('HideUnhideDocuments')) {\r\n menuItems.push({\r\n title: data.isHidden ? 'Unhide' : 'Hide',\r\n onClick: () => {\r\n this.hideDocument(data);\r\n }\r\n });\r\n }\r\n\r\n return menuItems;\r\n }\r\n\r\n private uploadTranslations(report: Report) {\r\n const dialogData: UploadDialogData = {\r\n report: report,\r\n category: report.category\r\n };\r\n const configDialog: IMdlCustomDialogConfiguration = {\r\n component: DocumentTranslationUploadComponent,\r\n providers: [{\r\n provide: UPLOAD_DLG_DATA_TOKEN, useValue: dialogData\r\n }],\r\n styles: {\r\n 'overflow': 'auto',\r\n 'max-height': '90vh'\r\n },\r\n isModal: true,\r\n clickOutsideToClose: true\r\n };\r\n\r\n this.dialogService.showCustomDialog(configDialog);\r\n }\r\n\r\n private editFile(report: Report) {\r\n const dialogData: UploadDialogData = {\r\n report: report,\r\n category: report.category\r\n };\r\n const configDialog: IMdlCustomDialogConfiguration = {\r\n component: FileEditComponent,\r\n providers: [{\r\n provide: UPLOAD_DLG_DATA_TOKEN, useValue: dialogData\r\n }],\r\n styles: {\r\n 'overflow': 'auto',\r\n 'max-height': '90vh'\r\n },\r\n isModal: true,\r\n clickOutsideToClose: true\r\n };\r\n\r\n this.dialogService.showCustomDialog(configDialog);\r\n }\r\n\r\n private hideDocument(report: Report) {\r\n const dialogData: HideDocumentDialogData = {\r\n report: report\r\n };\r\n const configDialog: IMdlCustomDialogConfiguration = {\r\n component: HideDocumentComponent,\r\n providers: [{\r\n provide: HIDE_DIALOG_DATA_TOKEN, useValue: dialogData\r\n }],\r\n isModal: true,\r\n clickOutsideToClose: true\r\n };\r\n\r\n this.dialogService.showCustomDialog(configDialog);\r\n }\r\n}","import { UploadActionsMenuAgRendererComponent } from './upload-actions-menu-ag-renderer.component';\r\nimport { Injectable } from '@angular/core';\r\nimport { ColDef } from 'ag-grid-community';\r\nimport { chain, isEmpty } from 'lodash';\r\nimport * as moment from 'moment';\r\nimport { Observable, combineLatest } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport {\r\n categoryColumn, downloadColumn, downloadViewColumn,\r\n isResponseRequiredColumn, letterNumberColumn, responseNeededByColumn,\r\n SiteActionsReportParams, getSiteNumColumn, sitesColumn, titleColumn,\r\n zcProjectNumberColumn, visitColumn, VisitReportRendererParams, trainingMaterialsProjectColumn, reportTypeColumn, visitCollectionDateColumn\r\n} from '../../documents';\r\nimport { Category, CategoryNaturalKey } from '../../documents/models/category';\r\nimport { GeneralReport, Report, LabReport } from '../../documents/models/report';\r\nimport { SubjectTitleRenderer } from '../../renderer/subject-title-renderer';\r\nimport {\r\n BooleanAgFloatingFilterComponent, CovanceGridColumn,\r\n dateTimeComparator, dateTimeRenderer, dateRenderer,\r\n HiddenDocumentAgRendererComponent, BooleanCellRendererParams, yesNoRenderer, BooleanAgFloatingFilterParams\r\n} from '../../covance-ag-grid';\r\nimport { GridColumns } from '../../shared/grid-columns';\r\nimport { UserPermissionsStorage } from '../../user-permissions/user-permissions-storage';\r\nimport { UserPermissions } from '../../user-permissions/user-permissions';\r\nimport { protocolNameColumn, protocolNumberColumn, siteSpecificColumn } from '../../shared';\r\n\r\n@Injectable()\r\nexport class AdminDocumentColumns {\r\n private readonly postedDateTimeColumn: CovanceGridColumn = {\r\n sort: 'desc',\r\n headerName: 'Posted',\r\n field: 'postedDateTime',\r\n comparator: dateTimeComparator,\r\n filter: 'agTextColumnFilter',\r\n valueGetter: (params: { data: Report }) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n return dateTimeRenderer({ value: params.data.postedDateTime });\r\n },\r\n floatingFilterComponentParams: { suppressFilterButton: true }\r\n };\r\n\r\n private readonly versionDateTimeColumn: CovanceGridColumn = {\r\n headerName: 'Version Date',\r\n field: 'versionDate',\r\n comparator: dateTimeComparator,\r\n valueGetter: (params: { data: { versionDate: moment.Moment } }) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n return dateRenderer({ value: params.data.versionDate });\r\n },\r\n filter: 'agTextColumnFilter',\r\n floatingFilterComponentParams: { suppressFilterButton: true },\r\n width: 110\r\n };\r\n\r\n private readonly versionColumn: ColDef = {\r\n headerName: 'Version',\r\n field: 'version',\r\n suppressMenu: true,\r\n filter: 'agTextColumnFilter',\r\n floatingFilterComponentParams: { suppressFilterButton: true },\r\n width: 120\r\n };\r\n\r\n private readonly regionColumn: ColDef = {\r\n headerName: 'Region',\r\n field: 'region',\r\n filter: 'agSetColumnFilter',\r\n width: 75\r\n };\r\n\r\n private readonly fileNameColumn: ColDef = {\r\n headerName: 'File Name',\r\n field: 'fileName',\r\n filter: 'agSetColumnFilter',\r\n valueGetter: (params: { data: Report }) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n if (!params.data.fileLinks) {\r\n return null;\r\n }\r\n const fileNames: string = chain(params.data.fileLinks)\r\n .filter(x => !isEmpty(x.fileName))\r\n .map(x => x.fileName)\r\n .sort()\r\n .value()\r\n .join(', ');\r\n\r\n return fileNames;\r\n },\r\n width: 130\r\n };\r\n\r\n private readonly reportGroupColumn: ColDef = {\r\n headerName: 'Report Group',\r\n field: 'testGroup',\r\n filter: 'agSetColumnFilter',\r\n valueGetter: (params: { data: LabReport }) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n return params.data.testGroup;\r\n },\r\n width: 75\r\n };\r\n\r\n private readonly recipientTypeColumn: ColDef = {\r\n headerName: 'Recipient Type',\r\n field: 'recipientType',\r\n filter: 'agSetColumnFilter',\r\n valueGetter: (params: { data: LabReport }) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n return params.data.recipientType;\r\n },\r\n width: 75\r\n };\r\n\r\n private readonly languageColumn: ColDef = {\r\n headerName: 'Language',\r\n field: 'language',\r\n valueGetter: (params: { data: Report }) => params.data.fileLinks.map(fl => fl.languageCode).join(', '),\r\n filterValueGetter: (params: { data: Report }) => params.data.fileLinks.map(fl => fl.languageCode),\r\n filter: 'agSetColumnFilter'\r\n };\r\n\r\n private readonly audienceRoleColumn: ColDef = this.gridColumns\r\n .multiLineStringColumn({\r\n title: 'Roles',\r\n field: 'roles',\r\n stringsValueGetter: (entity: GeneralReport) => entity.audienceRoles,\r\n tooltipGetter: (role) => [{ content: role }],\r\n useFilter: true\r\n });\r\n\r\n private readonly hiddenColumn: ColDef = {\r\n headerName: 'Hidden?',\r\n field: 'isHidden',\r\n width: 20,\r\n getQuickFilterText: () => { return ''; },\r\n cellRendererFramework: HiddenDocumentAgRendererComponent,\r\n filter: 'agSetColumnFilter',\r\n filterParams: {\r\n cellRenderer: (params: BooleanCellRendererParams) => yesNoRenderer(params.value)\r\n },\r\n floatingFilterComponentFramework: BooleanAgFloatingFilterComponent,\r\n floatingFilterComponentParams: {\r\n booleanValueRenderer: yesNoRenderer\r\n } as BooleanAgFloatingFilterParams\r\n };\r\n\r\n private readonly adminSubjectColumn: ColDef = {\r\n headerName: 'Subject',\r\n field: 'subjectId',\r\n width: 140,\r\n valueGetter: (params: SiteActionsReportParams) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n\r\n if (!params.data.subjectId) {\r\n return '';\r\n }\r\n\r\n const subjectTitle = SubjectTitleRenderer.renderTitle({\r\n data: {\r\n subjectNumber: params.data.subjectNumber,\r\n initials: params.data.subjectInitials,\r\n screeningNumber: params.data.screeningNumber,\r\n zcSubjectId: params.data.zcSubjectId\r\n }\r\n });\r\n\r\n return subjectTitle;\r\n },\r\n floatingFilterComponentParams: { suppressFilterButton: true },\r\n filter: 'agTextColumnFilter'\r\n };\r\n\r\n private readonly adminAccessionNumberColumn: ColDef = {\r\n headerName: 'Accession',\r\n field: 'accessionNumber',\r\n width: 95,\r\n valueGetter: (params: VisitReportRendererParams) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n\r\n const accessionNumbers: string = chain(params.data.visits)\r\n .filter(x => !isEmpty(x.accessionNumber))\r\n .map(x => x.accessionNumber)\r\n .sort()\r\n .value()\r\n .join(', ');\r\n\r\n return accessionNumbers;\r\n },\r\n floatingFilterComponentParams: { suppressFilterButton: true },\r\n filter: 'agTextColumnFilter'\r\n };\r\n\r\n private readonly generalCommunicationColumns = [\r\n titleColumn,\r\n letterNumberColumn,\r\n this.languageColumn,\r\n this.postedDateTimeColumn,\r\n this.hiddenColumn,\r\n downloadColumn\r\n ];\r\n\r\n private readonly generalTrainingMaterialsColumns = [\r\n categoryColumn,\r\n titleColumn,\r\n this.languageColumn,\r\n this.postedDateTimeColumn,\r\n this.hiddenColumn,\r\n downloadColumn\r\n ];\r\n\r\n private readonly generalLabManualsColumns = [\r\n categoryColumn,\r\n titleColumn,\r\n this.languageColumn,\r\n this.postedDateTimeColumn,\r\n this.hiddenColumn,\r\n downloadColumn\r\n ];\r\n\r\n private readonly trainingMaterialsColumns = [\r\n categoryColumn,\r\n protocolNumberColumn,\r\n siteSpecificColumn,\r\n trainingMaterialsProjectColumn,\r\n titleColumn,\r\n this.languageColumn,\r\n this.postedDateTimeColumn,\r\n this.hiddenColumn,\r\n downloadViewColumn\r\n ];\r\n\r\n private readonly labManualsColumns = [\r\n categoryColumn,\r\n zcProjectNumberColumn,\r\n titleColumn,\r\n this.versionColumn,\r\n this.versionDateTimeColumn,\r\n this.languageColumn,\r\n this.postedDateTimeColumn,\r\n this.regionColumn,\r\n this.hiddenColumn,\r\n downloadColumn\r\n ];\r\n\r\n private readonly siteCommunicationsColumns = [\r\n titleColumn,\r\n letterNumberColumn,\r\n zcProjectNumberColumn,\r\n sitesColumn,\r\n this.postedDateTimeColumn,\r\n this.hiddenColumn,\r\n downloadColumn\r\n ];\r\n\r\n private readonly sponsorCommunicationsColumns = [\r\n categoryColumn,\r\n titleColumn,\r\n letterNumberColumn,\r\n this.postedDateTimeColumn,\r\n this.hiddenColumn,\r\n downloadViewColumn\r\n ];\r\n\r\n private readonly applicationTrainingColumns = [\r\n titleColumn,\r\n this.languageColumn,\r\n this.audienceRoleColumn,\r\n this.postedDateTimeColumn,\r\n this.hiddenColumn,\r\n downloadColumn\r\n ];\r\n\r\n private readonly siteActionsColumns = [\r\n titleColumn,\r\n getSiteNumColumn(),\r\n this.adminSubjectColumn,\r\n this.adminAccessionNumberColumn,\r\n visitColumn,\r\n isResponseRequiredColumn,\r\n responseNeededByColumn,\r\n this.postedDateTimeColumn,\r\n this.hiddenColumn,\r\n downloadColumn\r\n ];\r\n\r\n private readonly labReportsColumns = [\r\n this.fileNameColumn,\r\n reportTypeColumn,\r\n this.adminSubjectColumn,\r\n this.adminAccessionNumberColumn,\r\n visitColumn,\r\n visitCollectionDateColumn,\r\n this.reportGroupColumn,\r\n this.recipientTypeColumn,\r\n this.postedDateTimeColumn,\r\n this.hiddenColumn,\r\n downloadColumn\r\n ];\r\n\r\n private readonly columnsDictionary: { [key in CategoryNaturalKey]?: ColDef[] } = {\r\n 'general-communications': this.generalCommunicationColumns,\r\n 'general-manuals': this.generalLabManualsColumns,\r\n 'general-training-materials': this.generalTrainingMaterialsColumns,\r\n 'application-training': this.applicationTrainingColumns,\r\n 'lab-manuals': this.labManualsColumns,\r\n 'site-communications': this.siteCommunicationsColumns,\r\n 'sponsor-communications': this.sponsorCommunicationsColumns,\r\n 'training-materials': this.trainingMaterialsColumns,\r\n 'site-actions': this.siteActionsColumns,\r\n 'lab-reports': this.labReportsColumns\r\n };\r\n\r\n constructor(\r\n private gridColumns: GridColumns,\r\n private permissionsStorage: UserPermissionsStorage,\r\n ) { }\r\n\r\n public getColumnDefinitions(category$: Observable): Observable {\r\n return combineLatest(\r\n category$,\r\n this.permissionsStorage.userPermissions\r\n ).pipe(\r\n map(([category, permissions]) => {\r\n const columns = this.columnsDictionary[category.categoryId];\r\n const editMenuColumn = this.buildEditMenuColumn(category.categoryId, permissions);\r\n\r\n return columns\r\n ? [...columns, editMenuColumn]\r\n : [];\r\n })\r\n );\r\n }\r\n\r\n private buildEditMenuColumn(categoryId: CategoryNaturalKey, permissions: UserPermissions) {\r\n return this.gridColumns.actionsMenuColumn({\r\n cellRendererFramework: UploadActionsMenuAgRendererComponent,\r\n categoryId: categoryId,\r\n userPermissions: permissions\r\n });\r\n }\r\n}\r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { map, switchMap } from 'rxjs/operators';\r\nimport { Settings } from '../../../core/settings';\r\nimport { Category } from '../../../documents';\r\nimport { Observable } from 'rxjs';\r\nimport { deserialize } from 'santee-dcts';\r\nimport { FilterItemsLoader } from '../../../documents/filter-items-loader';\r\nimport { DocumentFilterItemReadModel, DocumentFilterItem } from '../../../documents/document-filter-item';\r\n\r\n@Injectable()\r\nexport class AdminDocumentsFilterItemsStorage implements FilterItemsLoader {\r\n private readonly apiPath = 'admin/documents-filter-items';\r\n\r\n constructor(\r\n private readonly http: HttpClient,\r\n private readonly settings: Settings\r\n ) { }\r\n\r\n public loadFilterItemsByCategory(category: Category, sponsorId$: Observable): Observable {\r\n return sponsorId$\r\n .pipe(\r\n switchMap(sponsorId => this.http.get(`${this.settings.apiUrl}/${this.apiPath}/${category.categoryId}${sponsorId ? `?sponsorId=${sponsorId}` : ''}`)),\r\n map((r) => deserialize(r, DocumentFilterItemReadModel).documentFilterItems)\r\n );\r\n }\r\n}","import { FilterResolver } from './../../../documents/filter-resolver';\r\nimport { sponsorFilter, dateFilter, labReportTypeFilter, protocolFilter, projectFilter, siteFilter, sponsorMasterFilter, subCategoryFilter, protocolMasterFilter } from './../../../documents/document-filter-definitions';\r\nimport { CategoryNaturalKey } from '../../../documents/models/category';\r\nimport { FilterFieldValue, FilterFieldDef } from '../../../covance-filter/covance-filter.models';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class AdminDocumentsFilterResolver implements FilterResolver {\r\n private filterTypesDictionary: { [key in CategoryNaturalKey]?: FilterFieldDef[] };\r\n\r\n constructor() {\r\n this.fillDataFiltersDictionary();\r\n }\r\n\r\n public resolveFilters(categoryKey: CategoryNaturalKey): FilterFieldValue[] {\r\n const filterDefs = this.filterTypesDictionary[categoryKey] || [];\r\n return filterDefs.map(f => ({def: f}));\r\n }\r\n\r\n private fillDataFiltersDictionary() {\r\n\r\n const sponsorCommunicationsFilters = [\r\n sponsorFilter,\r\n dateFilter\r\n ];\r\n\r\n const labReportsFilters = [\r\n protocolMasterFilter,\r\n sponsorMasterFilter,\r\n labReportTypeFilter,\r\n siteFilter,\r\n dateFilter\r\n ];\r\n\r\n const generalCommunicationsFilters = [\r\n dateFilter\r\n ];\r\n\r\n const siteCommunicationsFilters = [\r\n sponsorMasterFilter,\r\n protocolFilter,\r\n projectFilter,\r\n siteFilter,\r\n dateFilter\r\n ];\r\n\r\n const siteActionsFilters = [\r\n sponsorMasterFilter,\r\n protocolFilter,\r\n projectFilter,\r\n siteFilter,\r\n dateFilter\r\n ];\r\n\r\n const labManualsFilters = [\r\n protocolFilter,\r\n subCategoryFilter,\r\n dateFilter\r\n ];\r\n\r\n const trainingMaterialsFilters = [\r\n protocolFilter,\r\n subCategoryFilter,\r\n dateFilter\r\n ];\r\n\r\n this.filterTypesDictionary = {\r\n 'sponsor-communications': sponsorCommunicationsFilters,\r\n 'lab-manuals': labManualsFilters,\r\n 'lab-reports': labReportsFilters,\r\n 'general-communications': generalCommunicationsFilters,\r\n 'site-communications': siteCommunicationsFilters,\r\n 'site-actions': siteActionsFilters,\r\n 'training-materials': trainingMaterialsFilters\r\n };\r\n }\r\n}","'use strict';\r\n\r\nimport { dataMember, required, typedArray } from 'santee-dcts';\r\n\r\nexport class AdminSponsor {\r\n\r\n @dataMember()\r\n @required()\r\n public sponsorId: string;\r\n\r\n @dataMember()\r\n public sponsorTitle: string;\r\n}\r\n\r\nexport class AdminSponsorReadModel {\r\n @dataMember()\r\n @required()\r\n @typedArray(AdminSponsor)\r\n public sponsors: AdminSponsor[];\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { map } from 'rxjs/operators';\r\nimport { Observable } from 'rxjs';\r\nimport { deserialize } from 'santee-dcts';\r\nimport { Settings } from '../../core';\r\nimport { AdminSponsor, AdminSponsorReadModel } from '../shared/sponsor';\r\n\r\n@Injectable()\r\nexport class AdminSponsorsStorage {\r\n private readonly apiPath = 'admin/sponsors';\r\n\r\n constructor(\r\n private readonly http: HttpClient,\r\n private readonly settings: Settings\r\n ) { }\r\n\r\n public getAll(): Observable {\r\n return this.http.get(`${this.settings.apiUrl}/${this.apiPath}`)\r\n .pipe(\r\n map((r) => deserialize(r, AdminSponsorReadModel).sponsors)\r\n );\r\n }\r\n}","import { KeyValuePair } from './../../../documents/document-filter-item';\r\nimport { AdminSponsorsStorage } from './../../sponsor-storage/admin-sponsors-storage';\r\nimport { Injectable } from '@angular/core';\r\nimport { map } from 'rxjs/operators';\r\nimport { Observable } from 'rxjs';\r\nimport { MandatoryFilterItemsLoader } from '../../../documents/mandatory-filter-items-loader';\r\nimport { AdminProtocolsStorage } from '../../shared';\r\n\r\n@Injectable()\r\nexport class AdminDocumentsMandatoryFilterItemsStorage implements MandatoryFilterItemsLoader {\r\n\r\n constructor(\r\n private readonly adminSponsorsStorage: AdminSponsorsStorage,\r\n private readonly adminProtocolsStorage: AdminProtocolsStorage,\r\n ) { }\r\n\r\n public getItemsFilter(): Observable {\r\n return this.adminSponsorsStorage.getAll()\r\n .pipe(\r\n map(sponsors => sponsors.map(sp => {\r\n const sponsorFilterItem = new KeyValuePair();\r\n sponsorFilterItem.key = sp.sponsorId;\r\n sponsorFilterItem.value = sp.sponsorTitle;\r\n return sponsorFilterItem;\r\n })));\r\n }\r\n public getProtocolFilter(): Observable {\r\n return this.adminProtocolsStorage.all\r\n .pipe(\r\n map(protocols => protocols.map(pr => {\r\n const protocolFilterItem = new KeyValuePair();\r\n protocolFilterItem.key = pr.id.toString();\r\n protocolFilterItem.value = pr.protocolName;\r\n return protocolFilterItem;\r\n })));\r\n }\r\n}","import { isEmpty } from 'lodash';\r\nimport { UploadDialogTypeResolver } from './category-upload-dialogs/upload-dialog-type-resolver';\r\nimport { AdminDocumentColumns } from './admin-document-columns';\r\nimport { UserPermissionsStorage } from '../../user-permissions/user-permissions-storage';\r\nimport { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { Category, Report, CategoriesStorage, CategoryNaturalKey } from '../../documents';\r\nimport { Observable } from 'rxjs';\r\nimport { ActivatedRoute, Params, Router } from '@angular/router';\r\nimport { map, flatMap, first, publishReplay, refCount, distinctUntilChanged, switchMap, tap } from 'rxjs/operators';\r\nimport { MdlDialogService, IMdlCustomDialogConfiguration } from '@angular-mdl/core';\r\nimport { ColDef } from 'ag-grid-community';\r\nimport { UrlBuilder } from '../../core/index';\r\nimport { UploadedDocumentsStorage } from './storages/uploaded-documents-storage';\r\nimport { UPLOAD_DLG_DATA_TOKEN, UploadDialogData } from './category-upload-dialogs/base/upload-dialog-data';\r\nimport { AdminDocumentsFilterItemsStorage } from './filter/admin-documents-filter-items-storage';\r\nimport { FILTER_ITEM_LOADER } from '../../documents/filter-items-loader';\r\nimport { DOCUMENTS_STORAGE } from '../../documents/documents-storage';\r\nimport { AdminDocumentsFilterResolver } from './filter/admin-documents-filter-resolver';\r\nimport { routeParams } from '../../shared/route-helpers';\r\nimport { FILTER_RESOLVER } from '../../documents/filter-resolver';\r\nimport { AdminDocumentsMandatoryFilterItemsStorage } from './filter/admin-documents-mandatory-filter-items-storage';\r\nimport { MandatoryFilter } from '../../documents/mandatory-filter';\r\nimport { siteFilter, protocolFilter, projectFilter, sponsorFilter } from '../../documents/document-filter-definitions';\r\nimport { KeyValuePair } from '../../documents/document-filter-item';\r\n\r\n@Component({\r\n selector: 'admin-documents',\r\n template: require('./admin-documents.component.html'),\r\n styles: [require('./admin-documents.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n { provide: FILTER_ITEM_LOADER, useExisting: AdminDocumentsFilterItemsStorage },\r\n { provide: DOCUMENTS_STORAGE, useExisting: UploadedDocumentsStorage },\r\n { provide: FILTER_RESOLVER, useExisting: AdminDocumentsFilterResolver },\r\n ]\r\n})\r\nexport class AdminDocumentsComponent {\r\n\r\n public categories: Observable;\r\n public selectedCategory: Observable;\r\n public selectedCategoryId: Observable;\r\n public subCategories: Observable;\r\n public columns: Observable;\r\n public data: Observable;\r\n public canUploadCategory: Observable;\r\n public readonly sponsorFilter = MandatoryFilter.Sponsor;\r\n public sponsors$: Observable;\r\n public selectedSponsor$: Observable;\r\n public readonly protocolFilter = MandatoryFilter.Protocol;\r\n public protocols$: Observable;\r\n public selectedProtocol$: Observable;\r\n public showProtocolWarning: Observable;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private categoriesStorage: CategoriesStorage,\r\n private permissionsStorage: UserPermissionsStorage,\r\n private mandatoryFilterItemsLoader: AdminDocumentsMandatoryFilterItemsStorage,\r\n private dialogService: MdlDialogService,\r\n private colDefs: AdminDocumentColumns,\r\n private dialogTypeResolver: UploadDialogTypeResolver,\r\n private urlBuilder: UrlBuilder,\r\n private router: Router,\r\n ) { }\r\n\r\n public ngOnInit() {\r\n this.categories = this.categoriesStorage.generalAndSiteSpecific;\r\n\r\n this.selectedCategoryId = this.route.params.pipe(\r\n map(x => x[routeParams.categoryId] as CategoryNaturalKey | undefined),\r\n distinctUntilChanged(),\r\n publishReplay(1),\r\n refCount()\r\n );\r\n\r\n this.selectedCategory = this.selectedCategoryId.pipe(\r\n flatMap(categoryId => this.categoriesStorage.findCategoryById(categoryId as CategoryNaturalKey)),\r\n publishReplay(1),\r\n refCount(),\r\n );\r\n\r\n this.subCategories = this.selectedCategory.pipe(map(c => c && c.children));\r\n this.columns = this.colDefs.getColumnDefinitions(this.selectedCategory);\r\n\r\n this.canUploadCategory = this.selectedCategoryId.pipe(\r\n switchMap(categoryId => this.permissionsStorage.userPermissions\r\n .pipe(map(permissions => permissions.canUploadCategory(categoryId)))\r\n )\r\n );\r\n\r\n this.showProtocolWarning = this.selectedCategory.pipe(map(cat => !isEmpty(cat) && cat.isLabReport()));\r\n\r\n this.sponsors$ = this.mandatoryFilterItemsLoader.getItemsFilter()\r\n .pipe(\r\n publishReplay(1),\r\n refCount()\r\n );\r\n \r\n this.selectedSponsor$ = this.sponsors$\r\n .pipe(\r\n flatMap((sponsorItems) =>\r\n this.route.queryParams\r\n .pipe(\r\n map(p => {\r\n const sponsorId = p[this.sponsorFilter] as string;\r\n if (! sponsorId) {\r\n return null;\r\n }\r\n const sponsorItem = sponsorItems.filter(sp => !!sp).find(sponsor => sponsor.key === sponsorId);\r\n return sponsorItem ? [sponsorItem] : null;\r\n }), \r\n distinctUntilChanged(),\r\n )));\r\n\r\n this.protocols$ = this.mandatoryFilterItemsLoader.getProtocolFilter()\r\n .pipe(\r\n publishReplay(1),\r\n refCount()\r\n );\r\n\r\n this.selectedProtocol$ = this.protocols$\r\n .pipe(\r\n flatMap((protocolItems) =>\r\n this.route.queryParams\r\n .pipe(\r\n map(p => {\r\n const protocolId = p[this.sponsorFilter] as string;\r\n if (!protocolId) {\r\n return null;\r\n }\r\n const protocolItem = protocolItems.filter(sp => !!sp).find(protocol => protocol.key === protocolId);\r\n return protocolItem ? [protocolItem] : null;\r\n }),\r\n distinctUntilChanged(),\r\n )));\r\n }\r\n\r\n public categoryChanged(categoryId: CategoryNaturalKey) {\r\n this.urlBuilder.esa().admin().uploadDocuments(categoryId).navigate();\r\n }\r\n\r\n public addFiles() {\r\n this.selectedCategory.pipe(\r\n flatMap(sc => {\r\n const dialogType = this.dialogTypeResolver.getDialogType(sc);\r\n\r\n const dialogData: UploadDialogData = {\r\n category: sc,\r\n subCategories$: this.subCategories\r\n };\r\n const configDialog: IMdlCustomDialogConfiguration = {\r\n component: dialogType,\r\n providers: [\r\n {\r\n provide: UPLOAD_DLG_DATA_TOKEN,\r\n useValue: dialogData\r\n }\r\n ],\r\n styles: {\r\n 'overflow': 'auto',\r\n 'max-height': '90vh'\r\n },\r\n isModal: true,\r\n clickOutsideToClose: true\r\n };\r\n\r\n return this.dialogService.showCustomDialog(configDialog);\r\n }),\r\n first()).toPromise();\r\n }\r\n\r\n public onFilterItemsSelectorChange (mandatoryFilterItemValue: KeyValuePair[]) {\r\n const queryParam: Params = {};\r\n const sponsorKey = !isEmpty(mandatoryFilterItemValue) ? mandatoryFilterItemValue[0].key : null;\r\n queryParam[this.sponsorFilter] = sponsorKey;\r\n queryParam[siteFilter.queryParam] = null;\r\n queryParam[protocolFilter.queryParam] = null;\r\n queryParam[projectFilter.queryParam] = null;\r\n\r\n this.router.navigate(\r\n [], \r\n {\r\n relativeTo: this.route,\r\n queryParams: queryParam, \r\n queryParamsHandling: 'merge',\r\n });\r\n }\r\n} \r\n","import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { UrlBuilder } from '../core/url-builder/url-builder';\r\nimport { Injectable } from '@angular/core';\r\nimport { first, map } from 'rxjs/operators';\r\nimport { UserStorage } from '../user/user-storage';\r\nimport { AudienceRoleName } from '../authentication/audience-role';\r\n\r\n@Injectable()\r\nexport class AdminGuard implements CanActivate {\r\n\r\n constructor(private userStorage: UserStorage, private urlBuilder: UrlBuilder) {\r\n }\r\n\r\n public async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n\r\n const userRole = await this.userStorage.currentUser\r\n .pipe(\r\n map(u => u.metadata.audienceRole),\r\n first())\r\n .toPromise();\r\n const adminRoles: AudienceRoleName[] = ['Admin', 'Internal', 'System Admin'];\r\n if (adminRoles.indexOf(userRole) === -1) {\r\n this.urlBuilder.esa().navigate();\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}","import { Component } from '@angular/core';\r\n\r\nimport { ActionsMenuAgRendererComponent, ActionsMenuItem } from '../../covance-ag-grid';\r\nimport { UserProfile } from './user-profile';\r\nimport { UrlBuilder } from '../../core/url-builder/url-builder';\r\n\r\n@Component({\r\n selector: 'user-profiles-menu-ag-renderer',\r\n template: require('../../covance-ag-grid/renderers/actions-menu-ag-renderer-base.html'),\r\n styles: [require('../../covance-ag-grid/renderers/actions-menu-ag-renderer-base.scss')],\r\n})\r\nexport class UserProfilesActionsMenuAgRendererComponent extends ActionsMenuAgRendererComponent {\r\n\r\n constructor(\r\n private readonly urlBuilder: UrlBuilder\r\n ) {\r\n super();\r\n }\r\n\r\n public createMenuItems(userProfile: UserProfile): ActionsMenuItem[] {\r\n return [\r\n {\r\n title: `Edit ${userProfile.firstName} ${userProfile.lastName}'s settings`,\r\n onClick: () => this.editUserSettings(userProfile)\r\n }\r\n ];\r\n }\r\n\r\n private editUserSettings(userProfile: UserProfile) {\r\n this.urlBuilder\r\n .esa()\r\n .globalPopup()\r\n .userGeneralSettings(userProfile.userId)\r\n .navigate();\r\n }\r\n}","import { dataMember, required } from 'santee-dcts';\r\n\r\nexport class UserProfile {\r\n @dataMember()\r\n @required()\r\n public userId: number;\r\n\r\n @dataMember()\r\n @required()\r\n public firstName: string;\r\n\r\n @dataMember()\r\n @required()\r\n public lastName: string;\r\n\r\n @dataMember()\r\n @required()\r\n public userName: string;\r\n}","import { UserProfile } from './user-profile';\r\nimport { dataMember, required, typedArray } from 'santee-dcts';\r\n\r\nexport class UserProfilesReadModel {\r\n @dataMember()\r\n @required()\r\n public currentPage: number;\r\n\r\n @dataMember()\r\n @required()\r\n public totalPages: number;\r\n\r\n @dataMember()\r\n @required()\r\n @typedArray(UserProfile)\r\n public users: UserProfile[];\r\n}","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { map } from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\nimport { deserialize } from 'santee-dcts';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { UserProfilesSearchParams } from './user-profiles-search-params';\r\nimport { UserProfilesReadModel } from './user-profiles-readmodel';\r\nimport { Settings } from '../../core';\r\n\r\n@Injectable()\r\nexport class UserProfilesStorage {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settings: Settings\r\n ) { }\r\n\r\n public loadPageOfUsers(searchParams: UserProfilesSearchParams): Observable {\r\n let httpSearchParams = new HttpParams();\r\n httpSearchParams = httpSearchParams.append('FirstName', searchParams.firstName || '');\r\n httpSearchParams = httpSearchParams.append('LastName', searchParams.lastName || '');\r\n httpSearchParams = httpSearchParams.append('UserName', searchParams.userName || '');\r\n httpSearchParams = httpSearchParams.append('Page', searchParams.page.toString());\r\n\r\n return this.http.get(`${this.settings.apiUrl}/admin/user-profiles/search`, { params: httpSearchParams })\r\n .pipe(\r\n map((response) => deserialize(response, UserProfilesReadModel)),\r\n ) as Observable;\r\n }\r\n}","import { debounceTime, distinctUntilChanged, map, flatMap } from 'rxjs/operators';\r\nimport { GridOptions } from 'ag-grid-community/dist/lib/entities/gridOptions';\r\nimport { ReplaySubject, Subscription, combineLatest, merge, of } from 'rxjs';\r\nimport { Component, ChangeDetectorRef } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\n\r\nimport { UserProfilesActionsMenuAgRendererComponent } from './user-profiles-actions-menu-ag-renderer.component';\r\nimport { UserProfilesSearchParams } from './user-profiles-search-params';\r\nimport { UserProfilesReadModel } from './user-profiles-readmodel';\r\nimport { CovanceGridColumn } from '../../covance-ag-grid';\r\nimport { UserProfilesStorage } from './user-profiles-storage';\r\nimport { UserProfile } from './user-profile';\r\nimport { GridColumns } from '../../shared/grid-columns';\r\n\r\n@Component({\r\n selector: 'user-profiles',\r\n template: require('./user-profiles.component.html'),\r\n styles: [require('./user-profiles.component.scss')]\r\n})\r\nexport class UserProfilesComponent {\r\n public results: UserProfile[];\r\n\r\n public firstNameSearchTerm = new FormControl('');\r\n public lastNameSearchTerm = new FormControl('');\r\n public userNameSearchTerm = new FormControl('');\r\n\r\n public currentPage: number;\r\n public totalPages: number;\r\n\r\n public columns: CovanceGridColumn[] = [\r\n {\r\n hide: true,\r\n headerName: 'UserId',\r\n field: 'userId'\r\n },\r\n {\r\n headerName: 'Last name',\r\n field: 'lastName'\r\n },\r\n {\r\n headerName: 'First name',\r\n field: 'firstName'\r\n },\r\n {\r\n headerName: 'Username',\r\n field: 'userName'\r\n },\r\n this.gridColumns.actionsMenuColumn({\r\n cellRendererFramework: UserProfilesActionsMenuAgRendererComponent,\r\n suppressFilter: true,\r\n suppressSorting: true\r\n })\r\n ];\r\n\r\n public gridOptions: GridOptions = {\r\n };\r\n\r\n private page = new ReplaySubject(1);\r\n\r\n private readonly subscription: Subscription;\r\n\r\n constructor(\r\n private changeDetector: ChangeDetectorRef,\r\n private storage: UserProfilesStorage,\r\n private gridColumns: GridColumns) {\r\n\r\n this.subscription = combineLatest(\r\n this.page.asObservable(),\r\n this.getFlow(this.firstNameSearchTerm),\r\n this.getFlow(this.lastNameSearchTerm),\r\n this.getFlow(this.userNameSearchTerm)\r\n ).pipe(\r\n map(([page, firstName, lastName, userName]: [number, string, string, string]) => {\r\n this.showLoadingOverlay();\r\n const searchParams: UserProfilesSearchParams = {\r\n firstName: firstName,\r\n lastName: lastName,\r\n userName: userName,\r\n page: page,\r\n };\r\n\r\n return searchParams;\r\n }),\r\n flatMap(searchParams => this.storage.loadPageOfUsers(searchParams))\r\n ).subscribe((userProfiles: UserProfilesReadModel) => {\r\n this.results = userProfiles.users;\r\n this.currentPage = userProfiles.currentPage;\r\n this.totalPages = userProfiles.totalPages;\r\n this.changeDetector.markForCheck();\r\n });\r\n\r\n this.page.next(1);\r\n }\r\n\r\n public ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n public onFirstPageClicked() {\r\n this.setPage(1);\r\n }\r\n\r\n public onPreviousPageClicked() {\r\n this.setPage(this.currentPage - 1);\r\n }\r\n\r\n public onNextPagClicked() {\r\n this.setPage(this.currentPage + 1);\r\n }\r\n\r\n public onLastPageClicked() {\r\n this.setPage(this.totalPages);\r\n }\r\n\r\n private setPage(pageNum: number) {\r\n this.currentPage = pageNum;\r\n this.page.next(pageNum);\r\n this.showLoadingOverlay();\r\n }\r\n\r\n private showLoadingOverlay() {\r\n if (this.gridOptions && this.gridOptions.api) {\r\n this.gridOptions.api.showLoadingOverlay();\r\n }\r\n }\r\n\r\n private getFlow(term: FormControl) {\r\n return merge(\r\n of(''),\r\n term.valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n distinctUntilChanged()\r\n )\r\n );\r\n }\r\n}","'use strict';\r\n\r\nimport {Component, ChangeDetectionStrategy} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'general-header-title',\r\n template: require('./general-header-title.component.html'),\r\n styles: [require('./general-header-title.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class GeneralHeaderTitleComponent { }","'use strict';\r\n\r\nimport { Component, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { SponsorStudy } from '../sponsor-dashboard/sponsor-study';\r\nimport { routeData } from '../shared/route-helpers';\r\n\r\n@Component({\r\n selector: 'sponsor-header-title',\r\n template: require('./sponsor-header-title.component.html'),\r\n styles: [require('./sponsor-header-title.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SponsorHeaderTitleComponent {\r\n public sponsorName: string;\r\n public protocolName: string;\r\n\r\n private subscription: Subscription;\r\n\r\n constructor(private route: ActivatedRoute, changeDetector: ChangeDetectorRef) {\r\n this.subscription = this.route.data\r\n .pipe(map(x => x[routeData.selectedStudy] as SponsorStudy))\r\n .subscribe(study => {\r\n this.sponsorName = study.sponsorName;\r\n this.protocolName = study.protocolName;\r\n changeDetector.markForCheck();\r\n });\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n}\r\n","'use strict';\r\n\r\nimport { Component, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { Site } from '../sites';\r\nimport { routeData } from '../shared/route-helpers';\r\n\r\n@Component({\r\n selector: 'investigator-header-title',\r\n template: require('./investigator-header-title.component.html'),\r\n styles: [require('./investigator-header-title.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class InvestigatorHeaderTitleComponent {\r\n public sponsor: string;\r\n public clientProtocol: string;\r\n public covanceProjectNumber: string;\r\n public investigator: string;\r\n\r\n private subscription: Subscription;\r\n\r\n constructor(private route: ActivatedRoute, changeDetector: ChangeDetectorRef) {\r\n this.subscription = this.route.data\r\n .pipe(map(x => x[routeData.selectedSite] as Site))\r\n .subscribe(site => {\r\n this.sponsor = site.study.sponsor;\r\n this.clientProtocol = site.study.clientProtocol;\r\n this.covanceProjectNumber = site.study.covanceProjectNumber;\r\n this.investigator = site.investigatorFullName;\r\n changeDetector.markForCheck();\r\n });\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { GeneralHeaderTitleComponent } from './general-header-title.component';\r\nimport { SharedModule } from '../shared';\r\nimport { SponsorHeaderTitleComponent } from './sponsor-header-title.component';\r\nimport { InvestigatorHeaderTitleComponent } from './investigator-header-title.component';\r\n\r\n@NgModule({\r\n imports: [\r\n SharedModule\r\n ],\r\n declarations: [\r\n GeneralHeaderTitleComponent,\r\n SponsorHeaderTitleComponent,\r\n InvestigatorHeaderTitleComponent\r\n ],\r\n exports: [\r\n GeneralHeaderTitleComponent,\r\n SponsorHeaderTitleComponent,\r\n InvestigatorHeaderTitleComponent\r\n ]\r\n})\r\nexport class HeaderTitleModule { }","import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { UrlBuilder } from '../core';\r\nimport { Injectable } from '@angular/core';\r\nimport { first } from 'rxjs/operators';\r\nimport { UserStorage } from '../user';\r\n\r\n@Injectable()\r\nexport class InvestigatorGuard implements CanActivate {\r\n\r\n constructor(private userStorage: UserStorage, private urlBuilder: UrlBuilder) {\r\n }\r\n\r\n public async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n\r\n const user = await this.userStorage.currentUser\r\n .pipe(first())\r\n .toPromise();\r\n if (!user.isInvestigator) {\r\n this.urlBuilder.esa().navigate();\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}","import { Component, Input, ChangeDetectionStrategy, OnChanges, OnInit, ChangeDetectorRef, OnDestroy, Inject } from '@angular/core';\r\nimport { groupingOptions, GroupingOptionItem } from './../grouping-selector/grouping-options';\r\nimport { GridLegendItem } from '../legend';\r\nimport { Subscription } from 'rxjs';\r\nimport { DocumentsCounterBase } from './models/documents-counter';\r\nimport { Category } from './models/category';\r\nimport { UnreadReportsStorage, UNREAD_REPORTS_STORAGE } from './unread-reports-storage';\r\nimport { DocumentsColumns, DOCUMENTS_COLUMNS_TOKEN } from './documents-columns/documents-columns';\r\nimport { Report } from './models/report';\r\n\r\n@Component({\r\n selector: 'documents-grid',\r\n template: require('./documents-grid.component.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n styles: [require('./documents-grid.component.scss')]\r\n})\r\nexport class DocumentsGridComponent implements OnChanges, OnInit, OnDestroy {\r\n @Input()\r\n public allReports: Report[];\r\n\r\n @Input()\r\n public category: Category;\r\n\r\n @Input()\r\n public showExport = false;\r\n\r\n public onlyUnread: boolean;\r\n public reports: Report[];\r\n public groupBy: GroupingOptionItem;\r\n public groupOptions: GroupingOptionItem[] = [];\r\n public groupName = 'group-selector';\r\n public legend: GridLegendItem[] = [];\r\n\r\n private unreadSubscription: Subscription;\r\n\r\n constructor(\r\n @Inject(DOCUMENTS_COLUMNS_TOKEN) private categoriesGridColumns: DocumentsColumns,\r\n @Inject(UNREAD_REPORTS_STORAGE) unreadReportsRegistry: UnreadReportsStorage,\r\n changeDetector: ChangeDetectorRef\r\n ) {\r\n\r\n this.unreadSubscription = unreadReportsRegistry.docsHaveBeenRead.subscribe(() => {\r\n this.createLegend();\r\n changeDetector.markForCheck();\r\n });\r\n }\r\n\r\n public ngOnChanges() {\r\n if (this.category) {\r\n this.groupOptions = this.categoriesGridColumns.getGroupedColumns(this.category.categoryId);\r\n }\r\n \r\n this.reports = this.allReports;\r\n\r\n this.filterReports();\r\n this.createLegend();\r\n }\r\n\r\n public ngOnInit() {\r\n this.groupBy = groupingOptions.none;\r\n }\r\n\r\n public onUnreadSelectorChange(onlyUnread: boolean) {\r\n this.onlyUnread = onlyUnread;\r\n\r\n this.filterReports();\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.unreadSubscription.unsubscribe();\r\n }\r\n\r\n private filterReports() {\r\n if (!this.allReports) {\r\n return;\r\n }\r\n\r\n if (this.onlyUnread) {\r\n this.reports = this.allReports.filter(report => !report.isRead);\r\n } else {\r\n this.reports = this.allReports;\r\n }\r\n }\r\n\r\n private createLegend() {\r\n\r\n this.legend = [];\r\n\r\n if (!this.reports || !this.categoriesGridColumns.hasStatusColumn(this.category.categoryId)) {\r\n return;\r\n }\r\n\r\n const anyRead = this.reports.some(r => r.isRead);\r\n if (anyRead) {\r\n this.legend.push({ icon: 'done', label: 'document has been read' });\r\n }\r\n }\r\n}","import { MdlDialogService } from '@angular-mdl/core';\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, OnDestroy, Output, SimpleChanges, ViewChild, Inject } from '@angular/core';\r\nimport { ColDef, GridOptions } from 'ag-grid-community';\r\nimport { isEmpty } from 'lodash';\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { CovanceAgGridComponent, CovanceAgGridHelper } from '../covance-ag-grid';\r\nimport { GroupingOptionItem, groupingOptions } from './../grouping-selector';\r\nimport { DocumentsCounterBase } from './models/documents-counter';\r\nimport { Category } from './models/category';\r\nimport { defaultReportSort } from './models/default-report-sort';\r\nimport { ReportDownloader } from './report-downloader';\r\nimport { DOCUMENTS_COLUMNS_TOKEN, DocumentsColumns } from './documents-columns/documents-columns';\r\nimport { UnreadReportsStorage, UNREAD_REPORTS_STORAGE } from './unread-reports-storage';\r\nimport { Report } from './models/report';\r\nimport { Settings } from '../core';\r\n\r\n@Component({\r\n selector: 'reports-grid',\r\n template: require('./reports-grid.component.html'),\r\n styles: [require('./reports-grid.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n\r\nexport class ReportsGridComponent implements OnChanges, OnDestroy {\r\n\r\n public gridOptions: GridOptions = {\r\n groupRowRendererParams: {\r\n suppressCount: true,\r\n checkbox: true\r\n },\r\n rowSelection: 'multiple',\r\n rowDeselection: true,\r\n groupSelectsChildren: true,\r\n isRowSelectable: (params: {data: Report}) => params.data.subcategoryId !== 'sponsor-communications-e-learning',\r\n };\r\n\r\n public columns: ColDef[];\r\n\r\n @Input()\r\n public reports: Report[];\r\n\r\n @Input()\r\n public category: Category;\r\n\r\n @Input()\r\n public groupBy: GroupingOptionItem;\r\n\r\n @Input()\r\n public checkBoxValue: boolean;\r\n\r\n @Input()\r\n public showExport = false;\r\n\r\n @Output()\r\n public toggleUnread = new EventEmitter();\r\n\r\n public get showPrint() {\r\n return this.category && this.category.canCombineForPrinting;\r\n }\r\n\r\n public get showSave() {\r\n return this.category && !Category.isELearningCategory(this.category.categoryId);\r\n }\r\n\r\n public rowNodes = new BehaviorSubject([]);\r\n\r\n @ViewChild('grid')\r\n private grid: CovanceAgGridComponent;\r\n\r\n private subscription: Subscription;\r\n private gridSortModel: Object;\r\n\r\n constructor(\r\n @Inject(DOCUMENTS_COLUMNS_TOKEN) private categoriesGridColumns: DocumentsColumns,\r\n private gridHelper: CovanceAgGridHelper,\r\n private reportDownloader: ReportDownloader,\r\n private settings: Settings,\r\n private dialog: MdlDialogService,\r\n @Inject(UNREAD_REPORTS_STORAGE) private readonly unreads: UnreadReportsStorage,\r\n ) {\r\n this.subscription = unreads.allUnread\r\n .subscribe(() => {\r\n if (!isEmpty(this.reports)) {\r\n this.rowNodes.next([...this.reports]);\r\n }\r\n });\r\n\r\n this.gridOptions.getRowClass = this.getRowClass;\r\n }\r\n\r\n public onDisplayedColumnsChanged() {\r\n // restore the current sort after group/ungroup\r\n this.restoreSortModel();\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges) {\r\n const reportsChanges = changes['reports'];\r\n const categoryChanges = changes['category'];\r\n const groupByChanges = changes['groupBy'];\r\n\r\n if (reportsChanges) {\r\n this.reports = reportsChanges.currentValue;\r\n this.rowNodes.next(this.reports);\r\n }\r\n\r\n if (categoryChanges) {\r\n if (this.grid) {\r\n this.grid.resetQuickFilter();\r\n }\r\n\r\n this.category = categoryChanges.currentValue;\r\n }\r\n\r\n if (groupByChanges) {\r\n this.groupBy = groupByChanges.currentValue;\r\n }\r\n\r\n if ((this.category && this.groupBy) && (categoryChanges || groupByChanges)) {\r\n\r\n const columns = this.categoriesGridColumns.getColumnDefinitions(this.category);\r\n const defaultReportSortFn = this.isSortModelEmpty() ? null : defaultReportSort;\r\n const groupResult = this.gridHelper.groupData(this.groupBy.columnTitle, this.reports, columns, null, defaultReportSortFn);\r\n\r\n this.columns = groupResult.columns;\r\n this.reports = groupResult.data as Report[];\r\n\r\n if (this.reports) {\r\n this.restoreDefaultSort();\r\n this.rowNodes.next([...this.reports]);\r\n }\r\n\r\n }\r\n \r\n if (this.category && this.reports) {\r\n this.saveSortModel();\r\n }\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n public async printDocuments(data: Report[]) {\r\n if (!this.validateDownloadableData(data)) {\r\n return;\r\n }\r\n\r\n await this.reportDownloader.printReports(this.filterDownloadableData(data), this.unreads);\r\n this.gridOptions.api.redrawRows();\r\n }\r\n\r\n public switchUnreads(unreadOnly: boolean) {\r\n this.toggleUnread.emit(unreadOnly);\r\n }\r\n\r\n public async saveDocuments(data: Report[]) {\r\n if (!this.validateDownloadableData(data)) {\r\n return;\r\n }\r\n\r\n await this.reportDownloader.saveReports(this.filterDownloadableData(data), this.unreads);\r\n this.gridOptions.api.redrawRows();\r\n }\r\n\r\n private validateDownloadableData(data: Report[]): boolean {\r\n if (data && data.length > this.settings.maxNumberOfDocumentsForDownload) {\r\n this.dialog.alert(`Too many documents have been selected. Max number of documents is ${this.settings.maxNumberOfDocumentsForDownload}`);\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n private filterDownloadableData(data: Report[]) {\r\n return data.filter(r => !Category.isELearningCategory(r.subcategoryId));\r\n }\r\n\r\n private getRowClass = (params: { data: Report }) => {\r\n if (params.data && !params.data.isReadByMe) {\r\n return 'strong-row';\r\n }\r\n return null;\r\n }\r\n\r\n private saveSortModel() {\r\n if (this.gridOptions.api) {\r\n this.gridSortModel = this.gridOptions.api.getSortModel();\r\n }\r\n }\r\n\r\n private restoreSortModel() {\r\n if (this.gridSortModel) {\r\n this.gridOptions.api.setSortModel(this.gridSortModel);\r\n }\r\n }\r\n\r\n private isSortModelEmpty(): boolean {\r\n return !this.gridOptions.api || isEmpty(this.gridOptions.api.getSortModel());\r\n }\r\n\r\n private restoreDefaultSort() {\r\n if (this.groupBy === groupingOptions.none && this.isSortModelEmpty()) {\r\n this.reports = this.reports.sort((a, b) => defaultReportSort(a, b));\r\n }\r\n }\r\n}\r\n","import { CategoryNaturalKey } from './models/category';\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, Output, OnDestroy } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ColDef, GridOptions } from 'ag-grid-community';\r\nimport { BehaviorSubject, combineLatest, merge, Observable, of, Subject, Subscription } from 'rxjs';\r\nimport { distinctUntilChanged, filter, map, publishReplay, refCount, tap, switchMap, takeUntil } from 'rxjs/operators';\r\nimport { CategoriesStorage, Category, Report } from '.';\r\nimport { CovanceFilter, FilterFieldValue, SerializedFilter, FilterFieldType } from '../covance-filter';\r\nimport { DocumentsStorage, DOCUMENTS_STORAGE } from './documents-storage';\r\nimport { FilterItemsLoader, FILTER_ITEM_LOADER } from './filter-items-loader';\r\nimport { routeParams } from '../shared/route-helpers';\r\nimport { FilterResolver, FILTER_RESOLVER } from './filter-resolver';\r\nimport { isEmpty } from 'lodash';\r\nimport { UserStorage, User } from '../user';\r\n\r\nclass FilterFieldsAndCategory {\r\n constructor (public readonly fields: FilterFieldValue[], public readonly category: Category) {\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'filtered-grid',\r\n template: require('./filtered-grid.component.html'),\r\n styles: [require('./filtered-grid.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class FilteredGridComponent implements OnDestroy {\r\n\r\n @Input()\r\n public filterId: string;\r\n\r\n @Input()\r\n public filterProtocolId: number = null;\r\n\r\n @Input()\r\n public warningThreshhold = 0;\r\n\r\n @Input()\r\n public columns: ColDef[];\r\n\r\n @Input()\r\n public categories: Category[];\r\n\r\n @Input()\r\n public mandatoryFilter: string;\r\n\r\n @Input()\r\n public mandatoryFilterValue$: Observable = of(null);\r\n\r\n @Input()\r\n public mandatoryFilterRequired = false;\r\n\r\n @Output()\r\n public categoryChanged = new EventEmitter();\r\n\r\n @Input()\r\n public hideFilterExpandButton = false;\r\n\r\n @Input()\r\n public showExport = this.userStorage.currentUser\r\n .pipe(\r\n map(user => {\r\n\r\n let showExport = false;\r\n\r\n if (user.isAdmin || user.isInternal) {\r\n showExport = true;\r\n }\r\n\r\n return showExport;\r\n }\r\n ));\r\n\r\n @Input()\r\n public set floatingFilter(value: boolean) {\r\n this.gridOptions.floatingFilter = value;\r\n }\r\n \r\n @Input()\r\n public quickFilterText: string;\r\n\r\n public showLargeDataWarning: Observable;\r\n public filterField$: Observable;\r\n public data: Observable;\r\n public selectedCategory: Observable;\r\n public selectedCategoryId: Observable;\r\n public dataSwitch = new Subject();\r\n public showFilters: Observable;\r\n public filtersExportData: Observable;\r\n public quickSearchSubject$: BehaviorSubject = new BehaviorSubject(null);\r\n\r\n public masterFilterItems: Observable<{key: string, value: string}[]>;\r\n public selectedMasterFilterItem$: Observable;\r\n public mandatoryFilterVisible: Observable;\r\n\r\n public readonly gridOptions: GridOptions = {\r\n floatingFilter: true, \r\n enableFilter: false,\r\n floatingFiltersHeight: 32,\r\n rowClassRules: {\r\n 'hidden-document': ({ data }: { data: Report }) => data.isHidden\r\n }\r\n };\r\n\r\n public adminFilterGroup: Observable;\r\n private subscription: Subscription;\r\n\r\n constructor(\r\n @Inject(FILTER_ITEM_LOADER) private filterItemsLoader: FilterItemsLoader,\r\n @Inject(DOCUMENTS_STORAGE) private documentLoader: DocumentsStorage,\r\n @Inject(FILTER_RESOLVER) private filtersResolver: FilterResolver,\r\n private route: ActivatedRoute,\r\n private categoriesStorage: CategoriesStorage,\r\n private filterService: CovanceFilter,\r\n private userStorage: UserStorage) {\r\n\r\n this.selectedCategoryId = this.route.params\r\n .pipe(\r\n map(x => x[routeParams.categoryId] as CategoryNaturalKey | undefined),\r\n filter(categoryNaturalKey => !!categoryNaturalKey),\r\n distinctUntilChanged(),\r\n publishReplay(1),\r\n refCount(),\r\n );\r\n\r\n this.selectedCategory = this.selectedCategoryId\r\n .pipe(\r\n switchMap(categoryId => this.categoriesStorage.findCategoryById(categoryId)),\r\n publishReplay(1),\r\n refCount(),\r\n ); \r\n }\r\n\r\n public ngOnInit() {\r\n const filterFieldAndCategory$ = this.selectedCategory\r\n .pipe(\r\n map(category => {\r\n const fields = this.filtersResolver.resolveFilters(category.categoryId);\r\n return new FilterFieldsAndCategory(fields, category);\r\n }),\r\n publishReplay(1),\r\n refCount(),\r\n );\r\n\r\n this.filterField$ = filterFieldAndCategory$.pipe(map(({fields}) => fields));\r\n this.showFilters = this.filterField$.pipe(map(f => !isEmpty(f)));\r\n this.mandatoryFilterVisible = this.filterField$.pipe(map(f => !!this.findMandatoryFilter(f)));\r\n\r\n const filterFlow$ = filterFieldAndCategory$\r\n .pipe(\r\n switchMap(({category, fields}) => this.filterService.listen(fields)\r\n .pipe(\r\n takeUntil(this.dataSwitch),\r\n map(() => new FilterFieldsAndCategory(fields, category)))),\r\n publishReplay(1),\r\n refCount(),\r\n );\r\n\r\n this.data = filterFlow$\r\n .pipe(\r\n switchMap(({fields, category}) => {\r\n const mandatoryFilter = this.findMandatoryFilter(fields);\r\n const mandatoryFilterIsOk = !this.mandatoryFilterRequired || !mandatoryFilter || mandatoryFilter.value;\r\n return merge(\r\n of(null),\r\n mandatoryFilterIsOk\r\n ? this.documentLoader.loadDocumentsByCategory(category, fields)\r\n : of([]));\r\n }),\r\n publishReplay(1),\r\n refCount()\r\n );\r\n\r\n this.showLargeDataWarning = this.data.pipe(\r\n map((data: any[]) => !isEmpty(data) && this.warningThreshhold > 0 && data.length === this.warningThreshhold)\r\n );\r\n\r\n const masterFilterSelectedItem$: Observable = filterFlow$\r\n .pipe(\r\n map(({fields}) => {\r\n const mandatoryFilterItem = this.findMandatoryFilter(fields);\r\n return mandatoryFilterItem ? mandatoryFilterItem.value : null;\r\n }),\r\n distinctUntilChanged(),\r\n );\r\n\r\n this.subscription = filterFieldAndCategory$\r\n .pipe(\r\n switchMap(({fields, category}) => {\r\n const hasMandatoryFilter = this.findMandatoryFilter(fields);\r\n const reloadFilterItemsSwitch$ = hasMandatoryFilter ?\r\n masterFilterSelectedItem$\r\n .pipe(\r\n tap(() => this.filterService.setFiltersItems([], fields)),\r\n filter(c => !!c),\r\n takeUntil(this.dataSwitch))\r\n : of(null);\r\n return this.filterItemsLoader.loadFilterItemsByCategory(\r\n category,\r\n reloadFilterItemsSwitch$)\r\n .pipe(tap(i => this.filterService.setFiltersItems(i, fields)));\r\n }\r\n ),\r\n ).subscribe();\r\n \r\n this.selectedMasterFilterItem$ = masterFilterSelectedItem$;\r\n\r\n this.filtersExportData = combineLatest([filterFlow$, this.quickSearchSubject$, this.mandatoryFilterValue$])\r\n .pipe(\r\n map(([fieldValues, quickSearchValue, mandatoryFilterValue]) => {\r\n const filtersExportData = this.filterService.serializeFieldValues(fieldValues.fields);\r\n filtersExportData.unshift({ title: 'Search', value: quickSearchValue });\r\n if (mandatoryFilterValue) {\r\n const mandatoryFilterData = filtersExportData.find(fd => fd.title === this.findMandatoryFilter(fieldValues.fields).def.title);\r\n mandatoryFilterData.value = mandatoryFilterValue;\r\n }\r\n return filtersExportData;\r\n }),\r\n );\r\n\r\n this.adminFilterGroup = this.selectedCategory\r\n .pipe(\r\n map(c => `${this.filterId}-${c.categoryId}`),\r\n );\r\n }\r\n\r\n public ngOnDestroy() { \r\n this.subscription.unsubscribe(); \r\n }\r\n\r\n public goToCategory(categoryId: CategoryNaturalKey) {\r\n this.dataSwitch.next(false);\r\n this.categoryChanged.emit(categoryId);\r\n }\r\n\r\n public onQuickSearchChanged(value: string) {\r\n this.quickSearchSubject$.next(value);\r\n }\r\n\r\n private findMandatoryFilter(filterDefs: FilterFieldValue[]) {\r\n return filterDefs.find( fd => fd.def.type === FilterFieldType.External && fd.def.queryParam === this.mandatoryFilter) || null;\r\n }\r\n}\r\n","import { CoreModule } from './../core/core.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CovanceAgGridModule } from '../covance-ag-grid/covance-ag-grid.module';\r\nimport { CovanceFilterModule } from '../covance-filter/covance-filter.module';\r\nimport { GroupingModule } from '../grouping-selector/grouping.module';\r\nimport { LegendModule } from '../legend/legend.module';\r\nimport { SharedModule } from './../shared/shared.module';\r\nimport { CategoriesStorage } from './categories-storage';\r\nimport { DocumentDownloader } from '../shared/document-downloader/document-downloader';\r\nimport { DocumentsGridComponent } from './documents-grid.component';\r\nimport { LanguageLinkAgRendererComponent } from './language-link/language-link-ag-renderer.component';\r\nimport { PlayVideoDialogComponent } from './language-link/play-video-dialog.component';\r\nimport { PreviewDialogComponent } from './language-link/preview-dialog.component';\r\nimport { ReportsGridComponent } from './reports-grid.component';\r\nimport { UserModule } from '../user';\r\nimport { ReportDownloader } from './report-downloader';\r\nimport { FilteredGridComponent } from './filtered-grid.component';\r\nimport { ELearningOpener } from '../e-learning/e-learning-opener';\r\n\r\n@NgModule({\r\n imports: [\r\n SharedModule,\r\n CoreModule,\r\n UserModule,\r\n CovanceAgGridModule,\r\n GroupingModule,\r\n CovanceFilterModule,\r\n LegendModule,\r\n ],\r\n declarations: [\r\n LanguageLinkAgRendererComponent,\r\n PlayVideoDialogComponent,\r\n PreviewDialogComponent,\r\n ReportsGridComponent,\r\n DocumentsGridComponent,\r\n FilteredGridComponent\r\n ],\r\n entryComponents: [\r\n LanguageLinkAgRendererComponent,\r\n PlayVideoDialogComponent,\r\n PreviewDialogComponent,\r\n ],\r\n providers: [\r\n DocumentDownloader,\r\n ReportDownloader,\r\n CategoriesStorage,\r\n ELearningOpener,\r\n ],\r\n exports: [\r\n LanguageLinkAgRendererComponent,\r\n ReportsGridComponent,\r\n DocumentsGridComponent,\r\n SharedModule,\r\n CovanceAgGridModule,\r\n GroupingModule,\r\n CovanceFilterModule,\r\n LegendModule,\r\n FilteredGridComponent,\r\n ]\r\n})\r\nexport class DocumentsModule { }\r\n","import { Component, ChangeDetectionStrategy, Input } from '@angular/core';\r\nimport { NavigationLink } from './navigation-link';\r\nimport { ActivatedRoute, Params } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'covance-side-nav',\r\n template: require('./navigation.component.html'),\r\n styles: [require('./navigation.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class NavigationComponent {\r\n\r\n @Input()\r\n public topLevelMenu: NavigationLink[] = [];\r\n\r\n public queryParams: Observable;\r\n \r\n constructor(route: ActivatedRoute) {\r\n this.queryParams = route.queryParams;\r\n }\r\n}","import {NgModule} from '@angular/core';\r\nimport {NavigationComponent} from './navigation.component';\r\nimport {SharedModule} from '../shared';\r\nimport {RouterModule} from '@angular/router';\r\n\r\n@NgModule({\r\n imports: [\r\n SharedModule,\r\n RouterModule,\r\n ],\r\n declarations: [NavigationComponent],\r\n exports: [NavigationComponent]\r\n})\r\nexport class NavigationModule {}","import { OnInit } from '@angular/core';\r\nimport { chain } from 'lodash';\r\nimport { Observable } from 'rxjs';\r\nimport { UrlBuilder } from '../../core';\r\nimport { Category, TabCategory } from '../../documents';\r\nimport { Site } from '../../sites/site';\r\n\r\nexport abstract class DocumentsTabsCategoriesComponentBase implements OnInit {\r\n public tabsCategories: Observable;\r\n\r\n constructor(\r\n protected readonly urlBuilder: UrlBuilder,\r\n ) {}\r\n\r\n public ngOnInit() {\r\n this.tabsCategories = this.createTabsCategories();\r\n }\r\n\r\n protected abstract createTabsCategories() : Observable;\r\n\r\n protected createTabs(site: Site, category: Category, childCategories: Category[]): TabCategory[] {\r\n const tabs = chain(childCategories)\r\n .map(childCategory => {\r\n const url = this.createTabUrl(site, category, childCategory);\r\n\r\n return { name: childCategory.name, url } as TabCategory;\r\n }).value();\r\n\r\n return tabs;\r\n }\r\n\r\n private createTabUrl(site: Site, category: Category, childCategory: Category): string[] {\r\n const url = this.urlBuilder\r\n .esa()\r\n .site(site)\r\n .documents(category);\r\n\r\n return url.category(childCategory).url();\r\n }\r\n}","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { combineLatest, Observable } from 'rxjs';\r\nimport { map, publishReplay, refCount, switchMap } from 'rxjs/operators';\r\nimport { UrlBuilder } from '../core/url-builder/url-builder';\r\nimport { CategoriesStorage, TabCategory, CategoryNaturalKey } from '../documents';\r\nimport { Site } from '../sites/site';\r\nimport { DocumentsTabsCategoriesComponentBase } from './base/document-tabs-categories-component-base';\r\nimport { routeData, routeParams } from '../shared/route-helpers';\r\n\r\n@Component({\r\n selector: 'documents-tabs-categories',\r\n template: require('./base/documents-tabs-categories-component-base.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DocumentsTabsComponent extends DocumentsTabsCategoriesComponentBase {\r\n constructor(\r\n private route: ActivatedRoute,\r\n urlBuilder: UrlBuilder,\r\n private categoriesStorage: CategoriesStorage,\r\n ) {\r\n super(urlBuilder);\r\n }\r\n\r\n protected createTabsCategories(): Observable {\r\n const site = this.route.parent.data.pipe(map(data => data[routeData.selectedSite] as Site | undefined));\r\n const categoryId = this.route.params.pipe(map(x => x[routeParams.categoryId] as CategoryNaturalKey | undefined));\r\n\r\n const category = categoryId.pipe(switchMap(x => this.categoriesStorage.findCategoryById(x)));\r\n const childCategories = category.pipe(switchMap(x => this.categoriesStorage.getChildCategoriesById(x.categoryId)));\r\n\r\n const tabsSubCategories = combineLatest(\r\n site,\r\n category,\r\n childCategories\r\n ).pipe(\r\n map(([siteValue, categoryValue, childCategoriesValue]) => {\r\n if (!childCategoriesValue) {\r\n return [];\r\n }\r\n\r\n const tabs = super.createTabs(siteValue, categoryValue, childCategoriesValue);\r\n\r\n // Single tabs should not be displayed\r\n if (tabs.length === 1) {\r\n return [];\r\n }\r\n\r\n return tabs;\r\n }),\r\n publishReplay(1),\r\n refCount()\r\n );\r\n\r\n return tabsSubCategories;\r\n }\r\n}","import { OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { filter, publishReplay, refCount, switchMap, map, distinctUntilChanged } from 'rxjs/operators';\r\nimport { UrlBuilder } from '../../core';\r\nimport { CategoriesStorage, Category, Report } from '../../documents';\r\nimport { InvestigatorReportsStorage } from '../investigator-reports-storage';\r\nimport { Site } from '../../sites';\r\nimport { routeData } from '../../shared/route-helpers';\r\n\r\nexport abstract class DocumentsComponentBase implements OnInit {\r\n public selectedCategory: Observable;\r\n public reports: Observable;\r\n\r\n protected constructor(\r\n protected readonly router: Router,\r\n protected readonly route: ActivatedRoute,\r\n protected readonly urlBuilder: UrlBuilder,\r\n protected readonly categoriesStorage: CategoriesStorage,\r\n protected readonly reportsStorage: InvestigatorReportsStorage\r\n ) { }\r\n\r\n public ngOnInit() {\r\n this.selectedCategory = this.createSelectedCategory()\r\n .pipe(\r\n publishReplay(1),\r\n refCount()\r\n );\r\n\r\n const site = this.route.data\r\n .pipe(\r\n map(x => x[routeData.selectedSite] as Site | undefined),\r\n filter(x => !!x),\r\n distinctUntilChanged()\r\n );\r\n\r\n this.reports = this.selectedCategory\r\n .pipe(\r\n filter(x => !!x),\r\n switchMap(x => this.reportsStorage.loadReports(of(x), site))\r\n );\r\n }\r\n\r\n protected abstract createSelectedCategory(): Observable;\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { mergeMap, publishReplay, refCount, scan } from 'rxjs/operators';\r\nimport { Settings } from '../core';\r\nimport { CategoriesStorage, CategoryNaturalKey, Report, ReportsPackage } from '../documents';\r\nimport { InvestigatorDocumentsCounter, InvestigatorDocumentsCounterReadModel } from '../documents/models/documents-counter';\r\nimport { UnreadReportsStorage } from '../documents/unread-reports-storage';\r\nimport { UserStorage } from '../user';\r\n\r\n@Injectable()\r\nexport class InvestigatorUnreadReportsStorage extends UnreadReportsStorage {\r\n constructor(\r\n settings: Settings,\r\n http: HttpClient,\r\n categoriesStorage: CategoriesStorage,\r\n userStorage: UserStorage\r\n ) {\r\n super(settings, http, categoriesStorage, userStorage);\r\n }\r\n\r\n protected getUnreadCounters(): Observable {\r\n\r\n const allCounters$ = this.categoriesStorage.siteSpecificCategories.pipe(\r\n mergeMap(categories => categories.map(category => this.loadUnreadCounters(`investigator/documents-counters/${category.categoryId}`, InvestigatorDocumentsCounterReadModel))),\r\n mergeMap(x => x),\r\n scan(\r\n (result, counters) => {\r\n result.push(...counters);\r\n return result;\r\n },\r\n [] as InvestigatorDocumentsCounter[]\r\n ),\r\n publishReplay(1),\r\n refCount()\r\n );\r\n\r\n return allCounters$;\r\n }\r\n\r\n protected recountOnDocumentsReading(updatedReports: ReportsPackage, unreadCounters: InvestigatorDocumentsCounter[]): InvestigatorDocumentsCounter[] {\r\n const readReports: Report[] = updatedReports.reports;\r\n const currentCategoryId: CategoryNaturalKey = updatedReports.category.categoryId;\r\n const recentlyReadInSite: Report[] = readReports.filter(report => !report.allSites);\r\n\r\n if (recentlyReadInSite[0]) {\r\n const item = unreadCounters.find(r =>\r\n (r.rootCategoryId === currentCategoryId || r.categoryId === currentCategoryId)\r\n && r.siteId === recentlyReadInSite[0].siteId\r\n );\r\n\r\n if (item) {\r\n item.unreadSiteCount -= recentlyReadInSite.length;\r\n }\r\n }\r\n\r\n const recentlyReadInAllSites = readReports.filter(report => report.allSites);\r\n\r\n if (recentlyReadInAllSites.length) {\r\n const allItems = unreadCounters.filter(r =>\r\n (r.rootCategoryId === currentCategoryId || r.categoryId === currentCategoryId)\r\n && r.subProtocolId === recentlyReadInAllSites[0].subProtocolId\r\n );\r\n\r\n for (let allItem of allItems) {\r\n allItem.unreadAllSitesCount -= recentlyReadInAllSites.length;\r\n }\r\n }\r\n\r\n return unreadCounters;\r\n }\r\n\r\n protected recountOnCountersUpdating(updatedReports: ReportsPackage, unreadCounters: InvestigatorDocumentsCounter[]): InvestigatorDocumentsCounter[] {\r\n const unreadReports: Report[] = updatedReports.reports.filter(report => !report.isRead);\r\n const currentCategoryId: CategoryNaturalKey = updatedReports.category.categoryId;\r\n const unreadInSite: Report[] = unreadReports.filter(report => !report.allSites);\r\n\r\n if (unreadInSite[0]) {\r\n const item = unreadCounters.find(r =>\r\n (r.rootCategoryId === currentCategoryId || r.categoryId === currentCategoryId)\r\n && r.siteId === unreadInSite[0].siteId\r\n );\r\n\r\n if (item) {\r\n item.unreadSiteCount = unreadInSite.length;\r\n } else { \r\n const unreadData = new InvestigatorDocumentsCounter();\r\n if (updatedReports.category.parent) {\r\n unreadData.rootCategoryId = updatedReports.category.parent.categoryId;\r\n unreadData.categoryId = updatedReports.category.categoryId;\r\n } else {\r\n unreadData.rootCategoryId = updatedReports.category.categoryId;\r\n }\r\n unreadData.siteId = unreadInSite[0].siteId;\r\n unreadData.subProtocolId = unreadInSite[0].subProtocolId;\r\n unreadData.unreadSiteCount = unreadInSite.length;\r\n unreadData.totalDocs = updatedReports.reports.length;\r\n unreadData.unreadAllSitesCount = 0;\r\n\r\n unreadCounters.push(unreadData);\r\n }\r\n } else {\r\n const firstReport = updatedReports.reports[0];\r\n\r\n if (firstReport) {\r\n const item = unreadCounters.find(r =>\r\n (r.rootCategoryId === currentCategoryId || r.categoryId === currentCategoryId)\r\n && r.siteId === firstReport.siteId\r\n );\r\n\r\n if (item) {\r\n item.unreadSiteCount = 0;\r\n }\r\n }\r\n }\r\n\r\n const unreadInAllSites = unreadReports.filter(report => report.allSites);\r\n\r\n if (unreadInAllSites.length) {\r\n const allItems = unreadCounters.filter(r =>\r\n (r.rootCategoryId === currentCategoryId || r.categoryId === currentCategoryId)\r\n && r.subProtocolId === unreadInAllSites[0].subProtocolId\r\n );\r\n\r\n if (allItems.length) {\r\n for (let allItem of allItems) {\r\n allItem.unreadAllSitesCount = unreadInAllSites.length;\r\n }\r\n }\r\n }\r\n\r\n return unreadCounters;\r\n }\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { keyBy } from 'lodash';\r\nimport { combineLatest, Observable, of } from 'rxjs';\r\nimport { flatMap, map, publishReplay, refCount, switchAll, tap } from 'rxjs/operators';\r\nimport { deserialize, deserializeArray } from 'santee-dcts';\r\nimport { Settings } from '../core';\r\nimport { Category, defaultReportSort, Report, ReportsPackage, ReportsReadModel } from '../documents';\r\nimport { getReportType } from '../documents/document-type-resolver';\r\nimport { Site, InvestigatorSitesStorage } from '../sites';\r\nimport { InvestigatorUnreadReportsStorage } from './investigator-unread-reports-storage';\r\n\r\n@Injectable()\r\nexport class InvestigatorReportsStorage {\r\n\r\n constructor(\r\n protected settings: Settings,\r\n protected http: HttpClient,\r\n private sitesStorage: InvestigatorSitesStorage,\r\n private unreadReportsRegistry: InvestigatorUnreadReportsStorage,\r\n ) { }\r\n\r\n public loadReports(category: Observable, site: Observable): Observable {\r\n let reports = combineLatest(site, category)\r\n .pipe(\r\n map((s: [Site, Category]) => this.getReports(s[0], s[1])),\r\n flatMap((x: Observable) => {\r\n return of(of(null), x);\r\n }),\r\n switchAll(),\r\n tap(r => this.unreadReportsRegistry.updateUnreads(r)),\r\n map(r => this.processNewReportsPackage(r)),\r\n publishReplay(1),\r\n refCount()\r\n );\r\n\r\n return reports;\r\n }\r\n\r\n private processNewReportsPackage(reportsPackage: ReportsPackage) {\r\n if (!reportsPackage) {\r\n return null;\r\n }\r\n let reps = reportsPackage.reports;\r\n reps = reps.sort((a, b) => defaultReportSort(a, b));\r\n return reps;\r\n }\r\n\r\n private getReportsForCategory(response: Object, category: Category, site: Site = null, allSites: Site[] = []): ReportsPackage {\r\n const readModel = deserialize(response, ReportsReadModel);\r\n\r\n const reportType = getReportType(category.categoryId);\r\n const reports = deserializeArray(readModel.reports, reportType);\r\n\r\n const siteById = keyBy(allSites, x => x.siteId);\r\n\r\n reports.forEach((x: Report) => {\r\n x.category = category;\r\n x.site = siteById[x.siteId];\r\n });\r\n return {\r\n category: category,\r\n reports: reports || []\r\n };\r\n }\r\n\r\n private getReports(site: Site, category: Category): Observable {\r\n return this.sitesStorage.loadSites()\r\n .pipe(\r\n flatMap((sites: Site[]) => {\r\n return this.http.get(`${this.settings.apiUrl}/investigator/site/${encodeURI(site.siteId.toString())}/documents/${category.categoryId}`)\r\n .pipe(map((response) => this.getReportsForCategory(response, category, site, sites)));\r\n }));\r\n }\r\n}","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { map, publishReplay, refCount, switchMap } from 'rxjs/operators';\r\nimport { UrlBuilder } from '../core';\r\nimport { CategoriesStorage, Category, CategoryNaturalKey } from '../documents';\r\nimport { DocumentsComponentBase } from './base/documents-component-base';\r\nimport { InvestigatorReportsStorage } from './investigator-reports-storage';\r\nimport { routeParams } from '../shared/route-helpers';\r\n\r\n@Component({\r\n selector: 'documents-with-categories',\r\n template: require('./base/documents-component-base.html'),\r\n styles: [require('./base/documents-component-base.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DocumentsWithChildCategoriesComponent extends DocumentsComponentBase {\r\n constructor(\r\n router: Router,\r\n route: ActivatedRoute,\r\n urlBuilder: UrlBuilder,\r\n categoriesStorage: CategoriesStorage,\r\n reportsStorage: InvestigatorReportsStorage,\r\n ) {\r\n super(router, route, urlBuilder, categoriesStorage, reportsStorage);\r\n }\r\n\r\n public createSelectedCategory(): Observable {\r\n return this.route.params.pipe(\r\n map(x => x[routeParams.childCategoryId] as CategoryNaturalKey),\r\n switchMap(childCategoryId => this.categoriesStorage.findCategoryById(childCategoryId)),\r\n publishReplay(1),\r\n refCount(),\r\n );\r\n }\r\n}\r\n","import { InvestigatorReportsStorage } from './investigator-reports-storage';\r\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { map, switchMap } from 'rxjs/operators';\r\nimport { UrlBuilder } from '../core';\r\nimport { DocumentsComponentBase } from './base/documents-component-base';\r\nimport { CategoriesStorage, Category, CategoryNaturalKey } from '../documents';\r\nimport { routeParams } from '../shared/route-helpers';\r\n\r\n@Component({\r\n selector: 'documents',\r\n template: require('./base/documents-component-base.html'),\r\n styles: [require('./base/documents-component-base.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DocumentsComponent extends DocumentsComponentBase {\r\n\r\n constructor(\r\n router: Router,\r\n route: ActivatedRoute,\r\n urlBuilder: UrlBuilder,\r\n categoriesStorage: CategoriesStorage,\r\n reportsStorage: InvestigatorReportsStorage,\r\n ) {\r\n super(router, route, urlBuilder, categoriesStorage, reportsStorage);\r\n }\r\n\r\n public createSelectedCategory(): Observable {\r\n const categoryId = this.route.parent.params.pipe(map(x => x[routeParams.categoryId] as CategoryNaturalKey | undefined));\r\n return categoryId.pipe(switchMap(x => this.categoriesStorage.findCategoryById(x)));\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { CanActivate, Router, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { map } from 'rxjs/operators';\r\nimport { CategoriesStorage } from '../documents';\r\nimport { routeParams } from '../shared/route-helpers';\r\n\r\n@Injectable()\r\nexport class GeneralDocumentsGuard implements CanActivate {\r\n\r\n constructor(\r\n private router: Router,\r\n private categoriesStorage: CategoriesStorage\r\n ) { }\r\n\r\n public canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n let url: string = state.url;\r\n\r\n return this.categoriesStorage.generalCategories\r\n .pipe(\r\n map(gc => {\r\n const cat = gc.find(c => c.categoryId === route.params[routeParams.childCategoryId]);\r\n if (cat && cat.children.length > 0) {\r\n const sub = cat.children[0].categoryId;\r\n this.router.navigateByUrl(`${url}/${sub}`);\r\n return false;\r\n }\r\n return true;\r\n })\r\n );\r\n }\r\n}","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { chain, find, isEmpty } from 'lodash';\r\nimport { BehaviorSubject, combineLatest, Observable } from 'rxjs';\r\nimport { map, publishReplay, refCount, filter, distinctUntilChanged } from 'rxjs/operators';\r\nimport { CategoriesStorage, Category, LabReport } from '../documents';\r\nimport { InvestigatorReportsStorage } from './investigator-reports-storage';\r\nimport { Site } from '../sites';\r\nimport { routeData } from '../shared/route-helpers';\r\n\r\n@Component({\r\n selector: 'lab-reports',\r\n template: require('./lab-reports.component.html'),\r\n styles: [require('./lab-reports.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LabReportsComponent {\r\n\r\n public reports: Observable;\r\n public readonly selectedCategory: Observable;\r\n public readonly reportsTypes: Observable;\r\n\r\n public selectedReportType: string;\r\n\r\n private readonly allReports: Observable;\r\n private readonly selectedReportTypeSubject = new BehaviorSubject(null);\r\n\r\n constructor(\r\n reportsStorage: InvestigatorReportsStorage,\r\n route: ActivatedRoute,\r\n categoriesStorage: CategoriesStorage,\r\n ) {\r\n this.selectedCategory = categoriesStorage.siteSpecificCategories\r\n .pipe(\r\n map(categories =>\r\n find(categories, category => category.isLabReport())\r\n ));\r\n\r\n const currentSite = route.data\r\n .pipe(\r\n map(x => x[routeData.selectedSite] as Site | undefined),\r\n filter(x => !!x),\r\n distinctUntilChanged()\r\n );\r\n\r\n this.allReports = reportsStorage.loadReports(this.selectedCategory, currentSite)\r\n .pipe(\r\n publishReplay(1),\r\n refCount()\r\n ) as Observable;\r\n\r\n this.reportsTypes = this.allReports\r\n .pipe(\r\n map(reports => {\r\n const uniqReportsTypes = chain(reports)\r\n .map(report => report.type)\r\n .uniq()\r\n .value();\r\n\r\n return uniqReportsTypes;\r\n }));\r\n\r\n this.reports = combineLatest(\r\n this.allReports,\r\n this.selectedReportTypeSubject\r\n )\r\n .pipe(\r\n map(([labReports, selectedReportType]: [LabReport[], string]) => {\r\n if (!selectedReportType) {\r\n return labReports;\r\n }\r\n\r\n return isEmpty(labReports)\r\n ? null\r\n : labReports.filter(report => report.type === selectedReportType);\r\n })\r\n );\r\n }\r\n\r\n public onSelectedReportType(selectedReportType: string) {\r\n this.selectedReportTypeSubject.next(selectedReportType);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { CovanceGridColumn, dateTimeComparator, dateRenderer } from '../../covance-ag-grid';\r\nimport { DetailModalPopupAgRendererComponent } from '../../covance-ag-grid/renderers/detail-modal-popup-renderer.component';\r\nimport { KitInfoGridRowItem } from './kit-grid-row';\r\nimport { FilterFieldValue, FilterFieldType } from '../../covance-filter';\r\nimport { ICellRendererParams } from 'ag-grid-community';\r\nimport { KitDetail } from './kit-detail';\r\nimport { KitExpiration } from '../../sponsor/kit-inventory/kit-expiration-report';\r\nimport * as moment from 'moment';\r\n\r\nexport interface KitDetailGridRowItem extends ICellRendererParams {\r\n data: KitDetail;\r\n}\r\n\r\nexport interface KitExpirationGridRowItem extends ICellRendererParams {\r\n data: KitExpiration;\r\n}\r\n\r\n@Injectable()\r\nexport class KitInventoryColumns {\r\n\r\n public kitType: CovanceGridColumn = {\r\n headerName: 'Kit Type',\r\n field: 'kitType',\r\n colId: 'kitType',\r\n sort: 'asc',\r\n width: 50\r\n };\r\n\r\n public description: CovanceGridColumn = {\r\n headerName: 'Description',\r\n field: 'description',\r\n colId: 'description',\r\n cellRendererFramework: DetailModalPopupAgRendererComponent,\r\n width: 220\r\n };\r\n\r\n public descriptionExpiration: CovanceGridColumn = {\r\n headerName: 'Description',\r\n field: 'description',\r\n colId: 'description',\r\n width: 220\r\n };\r\n\r\n public status: CovanceGridColumn = {\r\n headerName: 'Status',\r\n field: 'status',\r\n colId: 'status',\r\n width: 70,\r\n valueGetter: (params: KitInfoGridRowItem) => {\r\n if (!params.data) {\r\n return null;\r\n } else if (params.data.status === '0') {\r\n return 'Active';\r\n } else if (params.data.status === '1') {\r\n return 'Inactive';\r\n } else if (params.data.status === '2') {\r\n return 'On Hold';\r\n } else {\r\n return null;\r\n }\r\n }\r\n };\r\n\r\n public pending: CovanceGridColumn = {\r\n headerName: 'Pending Shipment',\r\n field: 'pending',\r\n colId: 'pending',\r\n width: 70\r\n };\r\n\r\n public shipped: CovanceGridColumn = {\r\n headerName: 'Shipped to Site',\r\n field: 'shipped',\r\n colId: 'shipped',\r\n width: 70\r\n };\r\n\r\n public received: CovanceGridColumn = {\r\n headerName: 'Received by Lab',\r\n field: 'received',\r\n colId: 'received',\r\n width: 70\r\n };\r\n\r\n public adjusted: CovanceGridColumn = {\r\n headerName: 'Adjusted by Site',\r\n field: 'adjusted',\r\n colId: 'adjusted',\r\n width: 70\r\n };\r\n\r\n public onHand: CovanceGridColumn = {\r\n headerName: 'On Hand',\r\n field: 'onHand',\r\n colId: 'onHand',\r\n width: 90\r\n };\r\n\r\n public lastShipmentQuantity: CovanceGridColumn = {\r\n headerName: 'Last Shipment Quantity',\r\n field: 'lastshipmentQuantity',\r\n colId: 'lastshipmentQuantity',\r\n width: 70\r\n };\r\n\r\n public lastShipmentDate: CovanceGridColumn = {\r\n headerName: 'Last Shipment Date',\r\n field: 'lastShipmentDate',\r\n colId: 'lastShipmentDate',\r\n comparator: dateTimeComparator,\r\n valueGetter: (params: KitInfoGridRowItem) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n if (params.data.lastShipmentDate.isBefore([1000, 1, 1])) {\r\n return 'N/A';\r\n }\r\n return dateRenderer({ value: params.data.lastShipmentDate });\r\n }\r\n };\r\n\r\n public investigatorFullName: CovanceGridColumn = {\r\n headerName: 'Site',\r\n field: 'investigatorFullName',\r\n colId: 'investigatorFullName',\r\n width: 220,\r\n sort: 'asc',\r\n valueGetter: (params: KitExpirationGridRowItem) => {\r\n return params.data.siteNumber + ' - ' + params.data.investigatorFullName;\r\n }\r\n };\r\n\r\n public country: CovanceGridColumn = {\r\n headerName: 'Country',\r\n field: 'country',\r\n colId: 'country',\r\n width: 70,\r\n sort: 'asc'\r\n };\r\n\r\n public region: CovanceGridColumn = {\r\n headerName: 'Region',\r\n field: 'region',\r\n colId: 'region',\r\n width: 70,\r\n sort: 'asc'\r\n };\r\n\r\n public projectNumber: CovanceGridColumn = {\r\n headerName: 'Project No.',\r\n field: 'projectNumber',\r\n colId: 'projectNumber',\r\n width: 90,\r\n sort: 'asc'\r\n };\r\n\r\n public accessionNumber: CovanceGridColumn = {\r\n headerName: 'Accession No.',\r\n field: 'accessionNumber',\r\n colId: 'accessionNumber',\r\n width: 120\r\n };\r\n\r\n public shippedDate: CovanceGridColumn = {\r\n headerName: 'Shipped Date',\r\n field: 'shippedDate',\r\n colId: 'shippedDate',\r\n comparator: dateTimeComparator,\r\n width: 120,\r\n valueGetter: (params: KitExpirationGridRowItem) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n if (params.data.shippedDate.isBefore([1000, 1, 1])) {\r\n return 'N/A';\r\n }\r\n return dateRenderer({ value: params.data.shippedDate });\r\n }\r\n };\r\n\r\n public expirationDate: CovanceGridColumn = {\r\n headerName: 'Expiration Date',\r\n field: 'expirationDate',\r\n colId: 'expirationDate',\r\n comparator: dateTimeComparator,\r\n width: 120,\r\n valueGetter: (params: KitExpirationGridRowItem) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n if (params.data.expirationDate.isBefore([1000, 1, 1])) {\r\n return 'N/A';\r\n }\r\n return dateRenderer({ value: params.data.expirationDate });\r\n }\r\n };\r\n\r\n public daysToexpiration: CovanceGridColumn = {\r\n headerName: 'Days to Expiration',\r\n field: 'daysToExp',\r\n colId: 'daysToExp',\r\n valueGetter: (params: KitExpirationGridRowItem) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n if (params.data.expirationDate.isBefore([1000, 1, 1])) {\r\n return 'N/A';\r\n }\r\n return params.data.expirationDate.diff(moment(), 'days');\r\n },\r\n cellStyle: (params: KitExpirationGridRowItem) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n if (params.data.expirationDate.isBefore([1000, 1, 1])) {\r\n return null;\r\n }\r\n var numberDays = params.data.expirationDate.diff(moment(), 'days');\r\n if ((numberDays > 0) && (numberDays < 30)) {\r\n return { color: 'orange' };\r\n }\r\n if (numberDays <= 0) {\r\n return { color: 'red' };\r\n }\r\n return null;\r\n },\r\n tooltip: (params: KitExpirationGridRowItem) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n if (params.data.expirationDate.isBefore([1000, 1, 1])) {\r\n return params.data.accessionNumber + ' has no expiration date.';\r\n }\r\n var numberDays = params.data.expirationDate.diff(moment(), 'days');\r\n if ((numberDays > 0) && (numberDays < 30)) {\r\n return params.data.accessionNumber + ' is within 30 days of expiration.';\r\n }\r\n if (numberDays <= 0) {\r\n return params.data.accessionNumber + ' is past expiration.';\r\n }\r\n return null;\r\n }\r\n };\r\n\r\n public investigatorColumns: CovanceGridColumn[] = [\r\n this.kitType,\r\n this.description,\r\n this.status,\r\n this.pending,\r\n this.shipped,\r\n this.received,\r\n this.adjusted,\r\n this.onHand,\r\n this.lastShipmentQuantity,\r\n this.lastShipmentDate\r\n ];\r\n\r\n public sponsorColumnsOnHand: CovanceGridColumn[] = [\r\n this.projectNumber,\r\n this.region,\r\n this.country,\r\n this.investigatorFullName,\r\n this.kitType,\r\n this.description,\r\n this.pending,\r\n this.shipped,\r\n this.received,\r\n this.adjusted,\r\n this.onHand,\r\n this.lastShipmentQuantity,\r\n this.lastShipmentDate\r\n ];\r\n\r\n public sponsorColumnsExpiration: CovanceGridColumn[] = [\r\n this.projectNumber,\r\n this.region,\r\n this.country,\r\n this.investigatorFullName,\r\n this.kitType,\r\n this.descriptionExpiration,\r\n this.accessionNumber,\r\n this.shippedDate,\r\n this.expirationDate,\r\n this.daysToexpiration\r\n ];\r\n\r\n public filterDefinitions: FilterFieldValue[] = [\r\n {\r\n def: {\r\n title: 'Kit Type',\r\n queryParam: 'kitType',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.MultiSelect,\r\n }\r\n },\r\n {\r\n def: {\r\n title: 'Description',\r\n queryParam: 'description',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.MultiSelect,\r\n }\r\n },\r\n {\r\n def: {\r\n title: 'Status',\r\n queryParam: 'status',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.MultiSelect\r\n }\r\n }\r\n ];\r\n\r\n public expirationReportfilterDefinitions: FilterFieldValue[] = [\r\n {\r\n def: {\r\n title: 'Site',\r\n queryParam: 'site',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.MultiSelect\r\n }\r\n },\r\n {\r\n def: {\r\n title: 'Expiration Date Range',\r\n queryParam: 'expirationDate',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.DateRange,\r\n }\r\n },\r\n {\r\n def: {\r\n title: 'Shipped Date Range',\r\n queryParam: 'date',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.DateRange,\r\n }\r\n },\r\n {\r\n def: {\r\n title: 'Kit Type',\r\n queryParam: 'kitType',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.MultiSelect,\r\n }\r\n },\r\n {\r\n def: {\r\n title: 'Ignore Record Limit',\r\n queryParam: 'recordLimit',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.Checkbox,\r\n }\r\n }\r\n ];\r\n\r\n public onHandReportfilterDefinitions: FilterFieldValue[] = [\r\n {\r\n def: {\r\n title: 'Site',\r\n queryParam: 'site',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.MultiSelect\r\n }\r\n },\r\n {\r\n def: {\r\n title: 'Last Shipped Date Range',\r\n queryParam: 'date',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.DateRange,\r\n }\r\n },\r\n {\r\n def: {\r\n title: 'Kit Type',\r\n queryParam: 'kitType',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.MultiSelect,\r\n }\r\n }\r\n ];\r\n}","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Observable, BehaviorSubject, combineLatest } from 'rxjs';\r\nimport { publishReplay, refCount, map, switchMap } from 'rxjs/operators';\r\nimport { Site } from '../../sites';\r\nimport { Kit } from './kit';\r\nimport { ColDef, GridOptions } from 'ag-grid-community';\r\nimport { KitInventoryColumns } from './kit-inventory-columns';\r\nimport { KitInventoryStorage } from './kit-inventory-storage';\r\nimport { routeSnapshotExtensions } from '../../shared/route-extensions';\r\nimport { FilterFieldValue, FilterFieldType, CovanceFilter, SerializedFilter } from '../../covance-filter';\r\nimport { MdlDialogService } from '@angular-mdl/core';\r\n\r\n@Component({\r\n selector: 'kit-inventory',\r\n template: require('./kit-inventory.component.html'),\r\n styles: [require('./kit-inventory.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class KitInventoryComponent {\r\n\r\n public kits$: Observable;\r\n public columns: ColDef[];\r\n public siteId: number;\r\n public filterFields$: Observable;\r\n public gridOptions: GridOptions;\r\n public filtersExportData: Observable;\r\n public quickSearchSubject$: BehaviorSubject = new BehaviorSubject(null);\r\n\r\n constructor(\r\n route: ActivatedRoute,\r\n private kitInventoryColumns: KitInventoryColumns,\r\n private kitInventoryStorage: KitInventoryStorage,\r\n private readonly dialogService: MdlDialogService,\r\n private readonly filterService: CovanceFilter\r\n ) {\r\n const site = routeSnapshotExtensions.findData(route.snapshot, 'selectedSite') as Site | null;\r\n this.siteId = site && site.siteId;\r\n\r\n this.columns = this.kitInventoryColumns.investigatorColumns;\r\n\r\n this.filterFields$ = this.kitInventoryStorage.loadFilterItems(this.siteId).pipe(\r\n map(filterItems => {\r\n const filterDefs: FilterFieldValue[] = this.kitInventoryColumns.filterDefinitions;\r\n this.filterService.setFiltersItems(filterItems, filterDefs);\r\n return filterDefs;\r\n }),\r\n publishReplay(1),\r\n refCount());\r\n\r\n const filterFlow$ = this.filterFields$\r\n .pipe(\r\n switchMap(fields => this.filterService.listen(fields).pipe(map(() => fields))),\r\n publishReplay(1),\r\n refCount()\r\n );\r\n\r\n this.kits$ = filterFlow$\r\n .pipe(\r\n switchMap((fields) => {\r\n this.showLoadingOverlay();\r\n return this.kitInventoryStorage.getKits(this.siteId, fields);\r\n }),\r\n publishReplay(1),\r\n refCount()\r\n ) as Observable;\r\n\r\n this.gridOptions = {\r\n rowHeight: 35,\r\n };\r\n\r\n this.filtersExportData = combineLatest([filterFlow$, this.quickSearchSubject$])\r\n .pipe(\r\n map(([fieldValues, quickSearchValue]) => {\r\n const filtersExportData = this.filterService.serializeFieldValues(fieldValues);\r\n filtersExportData.unshift({ title: 'Search', value: quickSearchValue });\r\n\r\n return filtersExportData;\r\n }),\r\n );\r\n }\r\n\r\n public showHelpModal() {\r\n var helpText = this.kitInventoryStorage.getHelpText();\r\n\r\n this.dialogService.alert(helpText, 'Close', 'Column Descriptions');\r\n }\r\n\r\n public onQuickSearchChanged(value: string) {\r\n this.quickSearchSubject$.next(value);\r\n }\r\n\r\n private showLoadingOverlay() {\r\n if (this.gridOptions && this.gridOptions.api) {\r\n this.gridOptions.api.showLoadingOverlay();\r\n }\r\n }\r\n}","import {Observable, of} from 'rxjs';\r\n\r\nexport class NavigationLink {\r\n constructor(\r\n public readonly text: string,\r\n public readonly url: Observable | null,\r\n public readonly icon: string | null = null,\r\n public badgeText: Observable = null,\r\n public children: Observable = of([]),\r\n public readonly disabled: Observable = of(false),\r\n public readonly linkClassName: string = null, \r\n public includeQueryParams?: boolean,\r\n public imgUrl?: string | null,\r\n public openNewTab?: boolean,\r\n ) {}\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\r\nimport { publishReplay, refCount, scan, startWith, switchMap } from 'rxjs/operators';\r\nimport { Settings } from '../core';\r\nimport { EQueryCounter } from './models/e-query-counter';\r\nimport { find } from 'lodash';\r\n\r\nconst enum MutationType {\r\n Add,\r\n Remove\r\n}\r\n\r\ninterface AddMutation {\r\n readonly type: MutationType;\r\n readonly key: number;\r\n readonly eQueryId: number;\r\n}\r\n\r\ninterface RemoveMutation {\r\n readonly type: MutationType;\r\n readonly key: number;\r\n readonly eQueryId: number;\r\n}\r\n\r\ntype Mutation =\r\n | AddMutation\r\n | RemoveMutation\r\n ;\r\n\r\n\r\ninterface UpdateCountersReduceResult {\r\n unresolved: number[];\r\n resolved: number[];\r\n}\r\n\r\nexport abstract class EQueriesCountersStorage {\r\n private readonly currentCounters$ = new BehaviorSubject>(this.loadAllCounters());\r\n private readonly mutations$ = new Subject();\r\n private readonly counters$ = this.currentCounters$.pipe(\r\n switchMap(currentCounters => this.calculateCounters(currentCounters)),\r\n publishReplay(1),\r\n refCount(),\r\n );\r\n\r\n public get counters(): Observable {\r\n return this.counters$;\r\n }\r\n\r\n constructor(\r\n protected readonly settings: Settings,\r\n protected readonly http: HttpClient,\r\n ) { }\r\n\r\n public dispose() {\r\n this.currentCounters$.complete();\r\n }\r\n\r\n public refreshAllCounters(): Observable {\r\n this.currentCounters$.next(this.loadAllCounters());\r\n return this.counters$;\r\n }\r\n\r\n public decreaseCounters(key: number, eQueryIds: number[]) {\r\n this.mutations$.next(this.mapMutations(MutationType.Remove, key, eQueryIds));\r\n }\r\n\r\n public increaseCounters(key: number, eQueryIds: number[]) {\r\n this.mutations$.next(this.mapMutations(MutationType.Add, key, eQueryIds));\r\n }\r\n\r\n public updateCounters(\r\n key: number,\r\n eQueries: T[],\r\n eQueryIdFn: (eQuery: T) => number,\r\n unresolvedFn: (entity: T) => boolean,\r\n ) {\r\n const eQueryIds = eQueries.reduce(\r\n (result, eq) => {\r\n const eQueryId = eQueryIdFn(eq);\r\n if (unresolvedFn(eq)) {\r\n result.unresolved.push(eQueryId);\r\n } else {\r\n result.resolved.push(eQueryId);\r\n }\r\n return result;\r\n },\r\n { unresolved: [], resolved: [] });\r\n\r\n this.increaseCounters(\r\n key,\r\n eQueryIds.unresolved\r\n );\r\n this.decreaseCounters(\r\n key,\r\n eQueryIds.resolved\r\n );\r\n }\r\n\r\n protected abstract loadAllCounters(): Observable;\r\n\r\n // IE: The Set ctor doesn't support passing an initial array, so use forEach + add for filling\r\n protected createSet(initArray: number[] = []): Set {\r\n const s = new Set();\r\n initArray.forEach(x => s.add(x));\r\n return s;\r\n }\r\n\r\n private mapMutations(type: MutationType, key: number, eQueryIds: number[]): Mutation[] {\r\n return eQueryIds.map(eQueryId => ({ type, key, eQueryId }));\r\n }\r\n\r\n private createQueuedMutations(): Observable {\r\n const stack: Mutation[][] = [];\r\n let next: ((items: Mutation[] | undefined) => void) | null = null;\r\n const subscription = this.mutations$.subscribe(x => {\r\n if (next != null) {\r\n next(x);\r\n } else {\r\n stack.push(x);\r\n }\r\n });\r\n return new Observable(subscriber => {\r\n next = x => subscriber.next(x);\r\n while (stack.length > 0) {\r\n const item = stack.shift();\r\n next(item);\r\n }\r\n return () => {\r\n subscription.unsubscribe();\r\n next = null;\r\n };\r\n });\r\n }\r\n\r\n private calculateCounters(currentCounters$: Observable): Observable {\r\n const mutations$ = this.createQueuedMutations();\r\n return currentCounters$.pipe(\r\n switchMap(x =>\r\n mutations$.pipe(\r\n startWith([]),\r\n scan(this.mutateCounters, x),\r\n publishReplay(1),\r\n refCount(),\r\n ),\r\n ),\r\n startWith(null)\r\n );\r\n }\r\n\r\n private mutateCounters = (counters: EQueryCounter[], mutations: Mutation[]): EQueryCounter[] => {\r\n for (const mutation of mutations) {\r\n switch (mutation.type) {\r\n case MutationType.Add: {\r\n this.addCounter(counters, mutation);\r\n break;\r\n }\r\n case MutationType.Remove: {\r\n this.removeCounter(counters, mutation);\r\n break;\r\n }\r\n default:\r\n continue;\r\n }\r\n }\r\n return counters;\r\n }\r\n\r\n private addCounter(counters: EQueryCounter[], mutation: Mutation) {\r\n const counter = find(counters, c => c.key === mutation.key);\r\n if (counter != null) {\r\n counter.totalUnresolved.add(mutation.eQueryId);\r\n } else {\r\n counters.push({\r\n key: mutation.key,\r\n total: 1,\r\n totalUnresolved: this.createSet([mutation.eQueryId]),\r\n });\r\n }\r\n }\r\n\r\n private removeCounter(counters: EQueryCounter[], mutation: Mutation) {\r\n const counter = find(counters, c => c.key === mutation.key);\r\n if (counter != null) {\r\n counter.totalUnresolved.delete(mutation.eQueryId);\r\n }\r\n }\r\n}\r\n","import { required, dataMember, typedArray } from 'santee-dcts';\r\n\r\nexport class InvestigatorEQueryCounter {\r\n @required()\r\n @dataMember()\r\n public siteId: number;\r\n\r\n @required()\r\n @dataMember()\r\n @typedArray(Number)\r\n public totalUnresolved: number[];\r\n\r\n @required()\r\n @dataMember()\r\n public total: number;\r\n}\r\n\r\nexport class InvestigatorEQueryReadModel {\r\n @required()\r\n @dataMember()\r\n @typedArray(InvestigatorEQueryCounter)\r\n public counters: InvestigatorEQueryCounter[];\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, OnDestroy } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map, publishLast, refCount } from 'rxjs/operators';\r\nimport { deserialize } from 'santee-dcts';\r\nimport { Settings } from '../../core/settings';\r\nimport { EQueriesCountersStorage } from '../../e-queries/e-queries-counters-storage';\r\nimport { EQueryCounter } from '../../e-queries/models/e-query-counter';\r\nimport { InvestigatorEQueryReadModel } from './investigator-e-query-counter';\r\n\r\n@Injectable()\r\nexport class InvestigatorEQueriesCountersStorage extends EQueriesCountersStorage implements OnDestroy {\r\n constructor(\r\n settings: Settings,\r\n http: HttpClient,\r\n ) {\r\n super(settings, http);\r\n }\r\n\r\n public ngOnDestroy() {\r\n super.dispose();\r\n }\r\n\r\n protected loadAllCounters(): Observable {\r\n return this.http.get(`${this.settings.apiUrl}/investigator/e-query-counters`).pipe(\r\n map(obj => deserialize(obj, InvestigatorEQueryReadModel)\r\n .counters\r\n .map(c => ({\r\n key: c.siteId,\r\n total: c.total,\r\n totalUnresolved: this.createSet(c.totalUnresolved),\r\n })),\r\n ),\r\n publishLast(),\r\n refCount(),\r\n );\r\n }\r\n}\r\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { ActivatedRoute, Data } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { find, chain } from 'lodash';\r\nimport { NavigationLink } from '../../navigation';\r\nimport { Link, Settings, UrlBuilder } from '../../core';\r\nimport { Site } from '../../sites';\r\nimport { Category } from '../../documents';\r\nimport { InvestigatorUnreadReportsStorage } from '../investigator-unread-reports-storage';\r\nimport { InvestigatorDocumentsCounter } from '../../documents/models/documents-counter';\r\nimport { routeData } from '../../shared/route-helpers';\r\nimport { InvestigatorEQueriesCountersStorage } from '../e-queries/investigator-e-queries-counters-storage';\r\nimport { EQueryCounter } from '../../e-queries/models/e-query-counter';\r\n\r\n@Component({\r\n selector: 'investigator-nav',\r\n template: require('./investigator-navigation.component.html'),\r\n styles: [require('./investigator-navigation.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class InvestigatorNavigationComponent {\r\n\r\n public topLevelMenu: Observable;\r\n public ereqLink: Link;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private settings: Settings,\r\n private unreadReportsRegistry: InvestigatorUnreadReportsStorage,\r\n private eQueriesCountersStorage: InvestigatorEQueriesCountersStorage,\r\n private urlBuilder: UrlBuilder) {\r\n this.topLevelMenu = this.route.data.pipe(map(this.createMenu));\r\n this.ereqLink = this.settings.linksDictionary['erequisition'];\r\n }\r\n\r\n public onSiteSelectionChange(site: Site) {\r\n this.urlBuilder\r\n .esa()\r\n .site(site)\r\n .navigate({ preserveFragments: true });\r\n }\r\n\r\n private createMenu = (data: Data) => {\r\n //add state dependent logic\r\n\r\n const selectedSite: Site = data[routeData.selectedSite];\r\n const siteSpecificCategories: Category[] = data[routeData.siteSpecificCategories];\r\n\r\n const subjectsUrl = this.urlBuilder.esa().site(selectedSite).subject().url();\r\n const subjectsLink = new NavigationLink('Subjects', of(subjectsUrl), 'people');\r\n const labReportsLink = this.getLabReportsLink(selectedSite, siteSpecificCategories);\r\n const documentsLinks = this.getDocumentsLinks(selectedSite, siteSpecificCategories);\r\n const onScreenResultsLinks = this.getOnScreenResultsLinks(selectedSite);\r\n const kitInventoryLink = this.getKitInventoryLink(selectedSite);\r\n const eQueriesLink = this.getEQueriesLink(selectedSite);\r\n const eReqLink = this.getEreqLink(selectedSite);\r\n\r\n return [\r\n labReportsLink,\r\n ...documentsLinks,\r\n ...onScreenResultsLinks,\r\n subjectsLink,\r\n kitInventoryLink,\r\n eQueriesLink,\r\n eReqLink,\r\n ];\r\n }\r\n\r\n private getLabReportsLink(selectedSite: Site, siteSpecificCategories: Category[]): NavigationLink {\r\n const navigationPath = this.urlBuilder.esa().site(selectedSite);\r\n const labReportsUrl = navigationPath.labReports().url();\r\n const labReportsCategory = find(siteSpecificCategories, category => category.isLabReport());\r\n const isDisabled = this.isDocumentLinkDisabled(selectedSite, labReportsCategory);\r\n\r\n const navLink = new NavigationLink('Lab Reports', of(labReportsUrl), labReportsCategory.icon, this.getUnreadCountSource(selectedSite, labReportsCategory), null, isDisabled);\r\n return navLink;\r\n }\r\n\r\n private getDocumentsLinks(selectedSite: Site, siteSpecificCategories: Category[]): NavigationLink[] {\r\n const navigationPath = this.urlBuilder.esa().site(selectedSite);\r\n\r\n const categoryRoutes = siteSpecificCategories\r\n .filter(c => !c.isLabReport())\r\n .map(c => {\r\n const urlDocuments = navigationPath.documents(c);\r\n\r\n const url = urlDocuments.url();\r\n\r\n const isDisabled = this.isDocumentLinkDisabled(selectedSite, c);\r\n\r\n return new NavigationLink(c.name, of(url), c.icon, this.getUnreadCountSource(selectedSite, c), null, isDisabled, c.categoryId);\r\n });\r\n\r\n return categoryRoutes;\r\n }\r\n\r\n private getOnScreenResultsLinks(selectedSite: Site): NavigationLink[] {\r\n const onScreenResults = this.urlBuilder.esa().site(selectedSite).onScreenResults();\r\n const microbiology = onScreenResults.microbiology();\r\n\r\n const osrLinks = [\r\n new NavigationLink('Standard Test Results', of(onScreenResults.standardTestResults().url()), 'multiline_chart'),\r\n new NavigationLink('Microbiology Results', of(microbiology.isolateCultureData().url()), 'blur_circular')\r\n ];\r\n\r\n return osrLinks;\r\n }\r\n\r\n private getKitInventoryLink(selectedSite: Site): NavigationLink {\r\n const kitInventoryUrl = this.urlBuilder.esa().site(selectedSite).kitInventory().url();\r\n\r\n const navLink = new NavigationLink('Kit Inventory', of(kitInventoryUrl), 'card_travel');\r\n return navLink;\r\n }\r\n\r\n private getEreqLink(selectedSite: Site): NavigationLink {\r\n const eReqUrl = of([this.ereqLink.url + 'studies/' + selectedSite.ctSiteId]);\r\n\r\n const navLink = new NavigationLink('eRequisition', eReqUrl, 'open_in_new', null, null, null, null, null, null, true);\r\n return navLink;\r\n }\r\n\r\n private getEQueriesLink(selectedSite: Site): NavigationLink {\r\n const url = this.urlBuilder.esa().site(selectedSite).eQueries().url();\r\n const countersBadge = this.eQueriesCountersStorage.counters.pipe(\r\n map(counters => counters\r\n ? this.getEQueriesCounterBySite(counters, selectedSite)\r\n : '')\r\n );\r\n return new NavigationLink('eQueries', of(url), 'settings_input_antenna', countersBadge, null, of(false), 'e-queries');\r\n }\r\n\r\n private getEQueriesCounterBySite(counters: EQueryCounter[], selectedSite: Site): string {\r\n const counter = find(counters, c => c.key === selectedSite.siteId);\r\n const totalUnresolved = counter ? counter.totalUnresolved.size : 0;\r\n return totalUnresolved\r\n ? totalUnresolved.toString(10)\r\n : '';\r\n }\r\n\r\n private getUnreadCountSource(site: Site, category: Category): Observable {\r\n return this.unreadReportsRegistry\r\n .allUnread\r\n .pipe(\r\n map((reports: InvestigatorDocumentsCounter[]) => {\r\n\r\n const count = chain(reports)\r\n .filter(x => x.siteId === site.siteId && x.rootCategoryId === category.categoryId)\r\n .sumBy(x => x.totalUnread)\r\n .value();\r\n\r\n return count ? `${count.toString(10)}` : '';\r\n })\r\n );\r\n }\r\n\r\n private isDocumentLinkDisabled(site: Site, category: Category): Observable {\r\n return this.unreadReportsRegistry\r\n .allUnread\r\n .pipe(\r\n map((reports: InvestigatorDocumentsCounter[]) => {\r\n\r\n const total = chain(reports)\r\n .filter(x => x.siteId === site.siteId && x.rootCategoryId === category.categoryId)\r\n .sumBy(x => x.totalDocs)\r\n .value();\r\n\r\n return total === 0;\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, Router, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { map } from 'rxjs/operators';\r\nimport { CategoriesStorage } from '../documents';\r\nimport { routeParams } from '../shared/route-helpers';\r\n\r\n@Injectable()\r\nexport class SingleCategoryDocumentsGuard implements CanActivate {\r\n\r\n constructor(\r\n private router: Router,\r\n private categoriesStorage: CategoriesStorage\r\n ) { }\r\n\r\n public canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n let url: string = state.url;\r\n\r\n return this.categoriesStorage.getChildCategoriesById(route.params[routeParams.categoryId])\r\n .pipe(\r\n map(sc => {\r\n if (sc.length > 0) {\r\n const sub = sc[0].categoryId;\r\n this.router.navigateByUrl(`${url}/${sub}`);\r\n return false;\r\n }\r\n return true;\r\n })\r\n );\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { Category, CategoriesStorage } from '../documents';\r\n\r\n@Injectable()\r\nexport class SiteSpecificCategoriesResolver implements Resolve {\r\n constructor(private categoriesStorage: CategoriesStorage) { }\r\n\r\n public resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\r\n return this.categoriesStorage.siteSpecificCategories;\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ColDef, ICellRendererParams } from 'ag-grid-community';\r\nimport { includes } from 'lodash';\r\nimport { UrlBuilder } from '../core';\r\nimport {\r\n Category, CategoryNaturalKey, DocumentsColumns, downloadColumn, isResponseRequiredColumn,\r\n letterNumberColumn, postedColumn, responseNeededByColumn, selectColumn, SiteActionsReport,\r\n statusColumn, titleColumn, versionDateColumn, versionNumberColumn, visitColumn, VisitReport, viewColumn\r\n} from '../documents';\r\nimport { GroupingOptionItem, groupingOptions } from '../grouping-selector';\r\nimport { reportTypeColumn, visitCollectionDateColumn } from '../documents/documents-columns/documents-columns';\r\nimport { GridColumns } from '../shared/grid-columns';\r\n\r\n@Injectable()\r\nexport class InvestigatorDocumentsColumns implements DocumentsColumns {\r\n private subjectColumn: ColDef;\r\n private accessionNumberColumn: ColDef;\r\n private readonly columnsDictionary: Map;\r\n\r\n constructor(private urlBuilder: UrlBuilder, gridColumns: GridColumns) {\r\n const subjectLinkBuilder = (params: SiteActionsReportParams) =>\r\n this.urlBuilder\r\n .esa()\r\n .site(params.data.site)\r\n .subject({ zcSubjectId: params.data.zcSubjectId })\r\n .url();\r\n\r\n this.subjectColumn = gridColumns.subjectColumn(subjectLinkBuilder);\r\n\r\n const testResultsLinkBuilder = (params: VisitReportRendererParams) =>\r\n this.urlBuilder\r\n .esa()\r\n .site(params.data.site)\r\n .onScreenResults()\r\n .standardTestResults()\r\n .testResults()\r\n .url();\r\n\r\n this.accessionNumberColumn = gridColumns.accessionNumberColumn(testResultsLinkBuilder, data => data.accessionNumbers);\r\n\r\n this.columnsDictionary = this.buildColumnsDictionary();\r\n }\r\n\r\n public getColumnDefinitions(category: Category | undefined): ColDef[] {\r\n if (!category) {\r\n return [];\r\n }\r\n\r\n return this.columnsDictionary.get(category.categoryId) || [];\r\n }\r\n\r\n public hasStatusColumn(categoryId: CategoryNaturalKey) {\r\n return includes(this.columnsDictionary.get(categoryId), statusColumn);\r\n }\r\n\r\n public getGroupedColumns(category: string): GroupingOptionItem[] {\r\n if (category === 'site-actions' || category === 'lab-reports') {\r\n return [groupingOptions.none, groupingOptions.subject, groupingOptions.visit];\r\n }\r\n return [];\r\n }\r\n\r\n private buildColumnsDictionary(): Map {\r\n const trainingMaterialsOthersColumns = [\r\n selectColumn,\r\n statusColumn,\r\n titleColumn,\r\n postedColumn,\r\n downloadColumn\r\n ];\r\n\r\n const trainingMaterialsELearningColumns = [\r\n statusColumn,\r\n titleColumn,\r\n postedColumn,\r\n viewColumn\r\n ];\r\n\r\n const siteCommunicationColumns = [\r\n selectColumn,\r\n statusColumn,\r\n titleColumn,\r\n letterNumberColumn,\r\n postedColumn,\r\n downloadColumn\r\n ];\r\n\r\n const studyManualsColumns = [\r\n selectColumn,\r\n statusColumn,\r\n versionNumberColumn,\r\n postedColumn,\r\n downloadColumn\r\n ];\r\n\r\n const synopsisColumns = [\r\n selectColumn,\r\n statusColumn,\r\n versionDateColumn,\r\n postedColumn,\r\n downloadColumn\r\n ];\r\n\r\n const labManualsOthersColumns = [\r\n selectColumn,\r\n statusColumn,\r\n titleColumn,\r\n postedColumn,\r\n downloadColumn\r\n ];\r\n\r\n const labReportsColumns = [\r\n selectColumn,\r\n statusColumn,\r\n this.subjectColumn,\r\n reportTypeColumn,\r\n visitColumn,\r\n visitCollectionDateColumn,\r\n this.accessionNumberColumn,\r\n postedColumn,\r\n downloadColumn\r\n ];\r\n\r\n const siteActionsColumns = [\r\n selectColumn,\r\n statusColumn,\r\n titleColumn,\r\n this.subjectColumn,\r\n this.accessionNumberColumn,\r\n visitColumn,\r\n isResponseRequiredColumn,\r\n responseNeededByColumn,\r\n postedColumn,\r\n downloadColumn\r\n ];\r\n\r\n return new Map([\r\n // lab-manuals:\r\n ['study-manuals', studyManualsColumns],\r\n ['synopsis', synopsisColumns],\r\n ['lab-manuals-others', labManualsOthersColumns],\r\n\r\n // training-materials:\r\n ['training-materials-e-learning', trainingMaterialsELearningColumns],\r\n ['training-materials-others', trainingMaterialsOthersColumns],\r\n\r\n ['lab-reports', labReportsColumns],\r\n\r\n ['site-actions', siteActionsColumns],\r\n\r\n ['site-communications', siteCommunicationColumns],\r\n ]);\r\n }\r\n}\r\n\r\ninterface VisitReportRendererParams extends ICellRendererParams {\r\n data: VisitReport;\r\n}\r\n\r\ntype SiteActionsReportParams = {\r\n data: SiteActionsReport;\r\n};","import { UrlBuilder } from './../core/url-builder/url-builder';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Injectable } from '@angular/core';\r\nimport { LabTestResult } from '../lab-test-results';\r\nimport { Site } from '../sites';\r\nimport { LinkParams } from '../covance-ag-grid';\r\nimport { LabTestResultsLinkBuilder } from '../subjects/lab-test-results-link-builder';\r\nimport { StandardTestResultsItem } from '../on-screen-results/standard-test-results/standard-test-results.component';\r\nimport { findSelectedSite } from '../shared/route-helpers';\r\n\r\n@Injectable()\r\nexport class InvestigatorLabTestResultsLinkBuilder implements LabTestResultsLinkBuilder {\r\n\r\n private readonly currentSite: Site;\r\n\r\n constructor(private urlBuilder: UrlBuilder, route: ActivatedRoute) {\r\n this.currentSite = findSelectedSite(route.snapshot);\r\n }\r\n\r\n public getAccessionNumberLink(lab: LabTestResult): LinkParams {\r\n\r\n return {\r\n routerLink: this.urlBuilder\r\n .esa()\r\n .site(this.currentSite)\r\n .onScreenResults()\r\n .standardTestResults()\r\n .testResults()\r\n .url(),\r\n queryParams: { accessionNumber: `[\"${lab.accessionNumber}\"]` },\r\n text: lab.accessionNumber,\r\n toString: () => lab.accessionNumber || ''\r\n } as LinkParams;\r\n }\r\n\r\n public getTestLink(lab: LabTestResult): LinkParams {\r\n return {\r\n routerLink: this.urlBuilder\r\n .esa()\r\n .site(this.currentSite)\r\n .onScreenResults()\r\n .standardTestResults()\r\n .testResults()\r\n .url(),\r\n text: lab.test,\r\n toString: () => lab.test,\r\n queryParams: { test: `[\"${lab.zcTestCode}\"]` }\r\n } as LinkParams;\r\n }\r\n\r\n public getSubjectLink(params: StandardTestResultsItem) {\r\n const routerLink: any = params.data && params.data.zcSubjectId ?\r\n this.urlBuilder.esa().site(this.currentSite).subject({ zcSubjectId: params.data.zcSubjectId }).url()\r\n : [];\r\n return routerLink;\r\n }\r\n}","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { DOCUMENTS_COLUMNS_TOKEN, UNREAD_REPORTS_STORAGE } from '../documents';\r\nimport { InvestigatorDocumentsColumns } from './investigator-documents-columns';\r\nimport { InvestigatorUnreadReportsStorage } from './investigator-unread-reports-storage';\r\nimport { LabTestsGridColumns } from '../subjects/lab-tests-grid-columns';\r\nimport { LAB_TEST_RESULTS_LINK_BUILDER } from '../subjects/lab-test-results-link-builder';\r\nimport { InvestigatorLabTestResultsLinkBuilder } from './investigator-lab-test-results-link-builder';\r\nimport { SiteRouteDataStorage } from './site-route-data-storage';\r\n\r\n@Component({\r\n selector: 'investigator-level',\r\n template: '',\r\n providers: [\r\n SiteRouteDataStorage,\r\n { provide: DOCUMENTS_COLUMNS_TOKEN, useClass: InvestigatorDocumentsColumns },\r\n { provide: UNREAD_REPORTS_STORAGE, useExisting: InvestigatorUnreadReportsStorage },\r\n { provide: LAB_TEST_RESULTS_LINK_BUILDER, useClass: InvestigatorLabTestResultsLinkBuilder },\r\n LabTestsGridColumns\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class InvestigatorLevelComponent { }\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { LabResultsStorage, LabTestResult, UnitOption } from '../../lab-test-results';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Observable, ConnectableObservable, Subscription, BehaviorSubject, combineLatest } from 'rxjs';\r\nimport { map, filter, publishReplay } from 'rxjs/operators';\r\nimport { chain, LoDashExplicitArrayWrapper, includes } from 'lodash';\r\nimport { Site } from '../../sites/site';\r\nimport { Subject } from '../../subjects/Subject';\r\nimport { SubjectLabTestsDataSource } from '../../subjects/subject-lab-tests-data-source';\r\nimport { routeData } from '../../shared/route-helpers';\r\nimport { UnitStorage } from '../../user/unit-storage';\r\n\r\n@Injectable()\r\nexport class SelectedSubjectLabResultsStorage implements SubjectLabTestsDataSource, OnDestroy {\r\n public readonly showOnlyFlagged = new BehaviorSubject(false);\r\n\r\n private readonly labTestResults$: ConnectableObservable;\r\n private connection: Subscription;\r\n\r\n constructor(\r\n labResultsStorage: LabResultsStorage,\r\n route: ActivatedRoute,\r\n unitStorage: UnitStorage,\r\n ) {\r\n const site = route.parent.parent.data\r\n .pipe(map(x => x[routeData.selectedSite] as Site));\r\n\r\n const ctSubjectId = route.data\r\n .pipe(\r\n map(x => x['selectedSubject'] as Subject | undefined),\r\n filter(x => !!x),\r\n map(x => x.ctSubjectId)\r\n );\r\n\r\n this.labTestResults$ = combineLatest([\r\n this.showOnlyFlagged,\r\n unitStorage.currentUnit,\r\n labResultsStorage.getSubjectLabResults(site, ctSubjectId),\r\n ])\r\n .pipe(\r\n map((data: [boolean, UnitOption, LabTestResult[]]) => {\r\n const [onlyFlagged, unitOption, res] = data;\r\n let result: LabTestResult[] = null; // show spinner\r\n if (res) {\r\n let resultChain = chain(res);\r\n\r\n if (onlyFlagged) {\r\n resultChain = this.filterFlaggedTests(resultChain);\r\n }\r\n\r\n result = resultChain.map(r => {\r\n r.showResultsInSI = unitOption.isSiUnit;\r\n return r;\r\n }).value();\r\n }\r\n\r\n return result;\r\n }),\r\n publishReplay(1)\r\n ) as ConnectableObservable;\r\n\r\n this.connection = this.labTestResults$.connect();\r\n }\r\n\r\n public get labTestResults(): Observable {\r\n return this.labTestResults$;\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.connection.unsubscribe();\r\n }\r\n\r\n private filterFlaggedTests(resChain: LoDashExplicitArrayWrapper): LoDashExplicitArrayWrapper {\r\n const flaggedUniqLabTestsKeys = resChain\r\n .filter(labTestResult => labTestResult.isFlagged)\r\n .map(labTestResult => labTestResult.uniqLabTestIdKey)\r\n .uniq()\r\n .value();\r\n\r\n return resChain.filter(labTestResult => includes(flaggedUniqLabTestsKeys, labTestResult.uniqLabTestIdKey));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Resolve, ActivatedRouteSnapshot } from '@angular/router';\r\nimport { Subject } from '../../subjects/subject';\r\nimport { UrlBuilder } from '../../core';\r\nimport { isEmpty, find } from 'lodash';\r\nimport { findSelectedSite } from '../../shared/route-helpers';\r\n\r\n@Injectable()\r\nexport class SelectedSubjectResolver implements Resolve {\r\n\r\n constructor(private urlBuilder: UrlBuilder) { }\r\n\r\n public resolve(route: ActivatedRouteSnapshot): any {\r\n const selectedSite = findSelectedSite(route);\r\n const subjects = route.parent.data['subjects'] as Subject[];\r\n const zcSubjectId: string = route.params['zcSubjectId'];\r\n\r\n if (isEmpty(subjects)) {\r\n this.urlBuilder.esa().site(selectedSite).subject().navigate();\r\n return false;\r\n }\r\n\r\n const selectedSubject = find(subjects, s => s.zcSubjectId === zcSubjectId);\r\n if (!selectedSubject) {\r\n this.urlBuilder.esa().site(selectedSite).subject({ zcSubjectId: subjects[0].zcSubjectId }).navigate();\r\n return false;\r\n }\r\n\r\n return selectedSubject;\r\n }\r\n}","'use strict';\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Resolve, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { SubjectsStorage } from '../../subjects/subjects-storage';\r\nimport {Observable, of} from 'rxjs';\r\nimport {Subject} from '../../subjects/subject';\r\nimport { findSelectedSite } from '../../shared/route-helpers';\r\n\r\n@Injectable()\r\nexport class SubjectsListResolver implements Resolve> {\r\n\r\n constructor(private subjectsStorage: SubjectsStorage) { }\r\n\r\n public resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\r\n const site = findSelectedSite(route);\r\n\r\n return this.subjectsStorage.getSubjects(of(site));\r\n }\r\n}","import { Component, ChangeDetectionStrategy, OnDestroy } from '@angular/core';\r\nimport {ActivatedRoute} from '@angular/router';\r\nimport {SubjectsStorage} from '../../subjects/subjects-storage';\r\nimport {Subscription, combineLatest} from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport {Subject} from '../../subjects/subject';\r\nimport {Site} from '../../sites/site';\r\nimport {UrlBuilder} from '../../core';\r\nimport { routeData } from '../../shared/route-helpers';\r\n\r\n\r\n@Component({\r\n selector: 'subjects-root',\r\n template: require('./subjects-root.component.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SubjectsRootComponent implements OnDestroy {\r\n public noSubjects = false;\r\n private subscription: Subscription;\r\n\r\n constructor(\r\n private subjectsStorage: SubjectsStorage,\r\n route: ActivatedRoute,\r\n private urlBuilder: UrlBuilder) {\r\n\r\n const subjects = route.data\r\n .pipe(map(x => x['subjects'] as Subject[]));\r\n\r\n const site = route.parent.parent.data\r\n .pipe(map(x => x[routeData.selectedSite] as Site));\r\n\r\n this.subscription = combineLatest(site, subjects)\r\n .subscribe((data: [Site, Subject[]]) => this.onSubjectsLoad(data[0], data[1]));\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n private onSubjectsLoad = (site: Site, subjects: Subject[]) => {\r\n\r\n this.noSubjects = subjects.length === 0;\r\n if (!this.noSubjects) {\r\n const zcSubjectId = this.subjectsStorage.lastVisitedZcSubjectId;\r\n const selectedSubject = subjects.find(s => s.zcSubjectId === zcSubjectId) || subjects[0];\r\n this.urlBuilder.esa().site(site).subject(selectedSubject).navigate({ navigationExtras: { replaceUrl: true } });\r\n }\r\n }\r\n}","import { Component, ChangeDetectionStrategy, OnDestroy, ViewEncapsulation, Self } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Subscription, combineLatest } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { sortBy } from 'lodash';\r\nimport { Subject } from '../../subjects/subject';\r\nimport { Site } from '../../sites';\r\nimport { SubjectTab } from '../../subjects/subject-tab';\r\nimport { UrlBuilder } from '../../core';\r\nimport { SelectedSubjectLabResultsStorage } from './selected-subject-lab-results-storage';\r\nimport { SubjectsStorage } from '../../subjects/subjects-storage';\r\nimport { SubjectTitleRenderer } from '../../renderer/subject-title-renderer';\r\nimport { GridLegendItem } from '../../legend';\r\nimport { DataRevisionIndicator } from '../../shared';\r\nimport { FormControl } from '@angular/forms';\r\nimport { SUBJECT_LAB_TESTS_DATA_SOURCE } from '../../subjects/subject-lab-tests-data-source';\r\nimport { routeData } from '../../shared/route-helpers';\r\n\r\ninterface SubjectLookupItem {\r\n value: string;\r\n subject: Subject;\r\n}\r\n\r\n@Component({\r\n selector: 'subjects-navigation',\r\n template: require('./subjects-navigation.component.html'),\r\n styles: [require('./subjects-navigation.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n SelectedSubjectLabResultsStorage,\r\n { provide: SUBJECT_LAB_TESTS_DATA_SOURCE, useExisting: SelectedSubjectLabResultsStorage }\r\n ]\r\n})\r\nexport class SubjectsNavigationComponent implements OnDestroy {\r\n public subjects: Subject[];\r\n\r\n public selectedSubject: Subject;\r\n\r\n public subjectDataLegend: GridLegendItem[];\r\n\r\n public tabs: SubjectTab[] = [];\r\n\r\n public showOnlyFlagged = new FormControl();\r\n\r\n public selectedSubjects: SubjectLookupItem[];\r\n \r\n private subjectsSubscription: Subscription;\r\n private selectedSite: Site;\r\n private showOnlyFlaggedSubscription: Subscription;\r\n private subjectLookupItems: SubjectLookupItem[];\r\n \r\n constructor(\r\n private urlBuilder: UrlBuilder,\r\n route: ActivatedRoute,\r\n @Self() selectedSubjectLabResultsStorage: SelectedSubjectLabResultsStorage,\r\n private dataRevisionIndicator: DataRevisionIndicator,\r\n private subjectsStorage: SubjectsStorage\r\n ) {\r\n const site = route.parent.parent.data\r\n .pipe(map(x => x[routeData.selectedSite] as Site));\r\n\r\n const subjects = route.parent.data\r\n .pipe(map(x => x['subjects'] as Subject[]));\r\n\r\n const subject = route.data\r\n .pipe(map(x => x['selectedSubject'] as Subject));\r\n\r\n this.subjectsSubscription = combineLatest(\r\n site,\r\n subjects,\r\n subject\r\n ).subscribe((latest: [Site, Subject[], Subject]) => {\r\n [this.selectedSite, this.subjects, this.selectedSubject] = latest;\r\n this.subjects = sortBy(this.subjects, s => this.getSubjectTitle(s));\r\n\r\n this.selectedSubjects = this.selectedSubject ? this.getSubjectLookupItems().filter(s => s.subject.zcSubjectId === this.selectedSubject.zcSubjectId) : [];\r\n \r\n this.subjectsStorage.lastVisitedZcSubjectId = this.selectedSubject.zcSubjectId;\r\n this.createLegend();\r\n this.createTabs();\r\n });\r\n\r\n this.showOnlyFlaggedSubscription = this.showOnlyFlagged.valueChanges.subscribe((x: boolean) => {\r\n selectedSubjectLabResultsStorage.showOnlyFlagged.next(x);\r\n });\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.subjectsSubscription.unsubscribe();\r\n this.showOnlyFlaggedSubscription.unsubscribe();\r\n }\r\n\r\n public getSubjectLookupItems() {\r\n if (!this.subjectLookupItems) {\r\n this.subjectLookupItems = this.subjects.map(s => this.getSubjectLookupItem(s));\r\n }\r\n \r\n return this.subjectLookupItems;\r\n }\r\n\r\n public onSelectionChanged($event: SubjectLookupItem[]) {\r\n this.selectedSubject = $event.length > 0 ? $event[0].subject : null;\r\n this.navigateToSubject();\r\n }\r\n\r\n public getSubjectTitle(subject: Subject): string {\r\n return SubjectTitleRenderer.renderTitle({\r\n data: {\r\n subjectNumber: subject.subjectNumber,\r\n initials: subject.initials,\r\n screeningNumber: subject.screeningNumber,\r\n zcSubjectId: subject.zcSubjectId,\r\n }\r\n });\r\n }\r\n\r\n private navigateToSubject() {\r\n this.urlBuilder\r\n .esa()\r\n .site(this.selectedSite)\r\n .subject(this.selectedSubject)\r\n .navigate({ preserveFragments: true });\r\n }\r\n\r\n private getSubjectLookupItem(subject: Subject): SubjectLookupItem {\r\n return {\r\n subject: subject,\r\n value: this.getSubjectTitle(subject)\r\n };\r\n }\r\n\r\n private createTabs() {\r\n this.tabs = [\r\n { title: 'Table', url: this.createTabUrl('lab-tests-grid') },\r\n { title: 'Chart', url: this.createTabUrl('lab-tests-chart') }\r\n ];\r\n }\r\n\r\n private createTabUrl(path: 'lab-tests-grid' | 'lab-tests-chart'): any[] {\r\n return this.urlBuilder\r\n .esa()\r\n .site(this.selectedSite)\r\n .subject(this.selectedSubject, path)\r\n .url({ preserveFragments: true });\r\n }\r\n\r\n private createLegend() {\r\n if (!this.selectedSubject) {\r\n return;\r\n }\r\n\r\n this.subjectDataLegend = [];\r\n\r\n if (this.selectedSubject.hasSubjectDataRevision) {\r\n this.subjectDataLegend.push({\r\n text: 'R', cssClass: 'revisioned-result', label: this.dataRevisionIndicator.subjectDataRevisionMessage\r\n });\r\n }\r\n }\r\n}\r\n","import {anyArray, dataMember, required, typedArray} from 'santee-dcts';\r\nimport { deserializers } from '../../core';\r\nimport * as moment from 'moment';\r\nimport { Acknowledgement } from '../../view-history';\r\nimport { SubjectNaturalKey } from '../../subjects';\r\nimport { Distance } from '../../shared';\r\nimport { EQueryStatus } from './e-query-status';\r\nimport { AgeInfo } from '../age-info';\r\n\r\nexport abstract class ExternalUserEQuery implements AgeInfo {\r\n @required()\r\n @dataMember()\r\n public accessionNumber: string;\r\n\r\n @required()\r\n @dataMember()\r\n public eQueryId: number;\r\n\r\n @required()\r\n @dataMember()\r\n public eQueryStatus: EQueryStatus;\r\n\r\n @required()\r\n @dataMember()\r\n public eQueryAge: Distance;\r\n\r\n @required()\r\n @dataMember()\r\n public subjectId: number;\r\n\r\n @required({ nullable: true })\r\n @dataMember()\r\n public subjectInitials: string;\r\n\r\n @required({ nullable: true })\r\n @dataMember()\r\n public protocolVisitCode: string;\r\n\r\n @required({ nullable: true })\r\n @dataMember()\r\n public screeningNumber: string;\r\n\r\n @required({ nullable: true })\r\n @dataMember()\r\n public subjectNumber: string;\r\n\r\n @required({ nullable: true })\r\n @dataMember()\r\n public subjectNaturalKey: string;\r\n\r\n @required({ nullable: true })\r\n @dataMember({ customDeserializer: deserializers.deserializeDate })\r\n public visitCollectionDate: moment.Moment;\r\n\r\n @required({ nullable: true })\r\n @dataMember()\r\n public visitName: string;\r\n\r\n @dataMember()\r\n @typedArray(Acknowledgement)\r\n @required()\r\n public viewHistory: Acknowledgement[];\r\n\r\n @dataMember()\r\n @required()\r\n public isRead: boolean;\r\n\r\n @dataMember()\r\n @required()\r\n public isReadByMe: boolean;\r\n\r\n @dataMember()\r\n @required()\r\n public isUnresolved: boolean;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n @anyArray()\r\n public responders: string[];\r\n\r\n @dataMember({ customDeserializer: deserializers.deserializeDate })\r\n @required({ nullable: true })\r\n public responseDateTime: moment.Moment;\r\n\r\n public get zcSubjectId(): string | null {\r\n const result = SubjectNaturalKey.fromString(this.subjectNaturalKey);\r\n\r\n return result\r\n ? result.zcSubjectId\r\n : null;\r\n }\r\n}\r\n","import { dataMember, required, typedArray } from 'santee-dcts';\r\nimport { Readable, Acknowledgement } from '../../../view-history';\r\nimport { SubjectNaturalKey } from '../../../subjects';\r\nimport { ExternalUserEQuery } from '../../../e-queries/models/external-user-e-query';\r\n\r\nexport class InvestigatorEQuery extends ExternalUserEQuery implements Readable {\r\n @dataMember()\r\n @typedArray(Acknowledgement)\r\n @required()\r\n public viewHistory: Acknowledgement[];\r\n\r\n @dataMember()\r\n @required()\r\n public isRead: boolean;\r\n\r\n @dataMember()\r\n @required()\r\n public isReadByMe: boolean;\r\n\r\n public get zcSubjectId(): string | null {\r\n const result = SubjectNaturalKey.fromString(this.subjectNaturalKey);\r\n\r\n return result\r\n ? result.zcSubjectId\r\n : null;\r\n }\r\n}\r\n\r\nexport class InvestigatorEQueryCountersReadModel {\r\n @dataMember()\r\n @typedArray(InvestigatorEQuery)\r\n public eQueries : InvestigatorEQuery[];\r\n}\r\n","import { dataMember, required } from 'santee-dcts';\r\nimport { KeyValuePair } from '../../documents/document-filter-item';\r\nimport { SubjectNaturalKey } from '../../subjects';\r\nimport { SubjectTitleRenderer } from '../../renderer/subject-title-renderer';\r\n\r\nexport class SubjectFilter {\r\n @dataMember()\r\n @required()\r\n public key: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public initials: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public subjectNumber: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public screeningNumber: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public subjectNaturalKey: string;\r\n\r\n public get zcSubjectId(): string {\r\n const result = SubjectNaturalKey.fromString(this.subjectNaturalKey);\r\n return result\r\n ? result.zcSubjectId\r\n : null;\r\n }\r\n\r\n public get value(): string {\r\n return SubjectTitleRenderer.renderSubjectNumberOrScreening(this);\r\n }\r\n\r\n public toString() {\r\n return this.value;\r\n }\r\n}\r\n\r\nexport abstract class ExternalUserEQueriesFilter {\r\n @dataMember()\r\n @required({ nullable: true })\r\n public status: KeyValuePair;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public subject: SubjectFilter;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public visitName: KeyValuePair;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public visitCode: KeyValuePair;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public accessionNumber: KeyValuePair;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public eQueryId: KeyValuePair;\r\n}\r\n","import { dataMember, required, typedArray } from 'santee-dcts';\r\nimport {ExternalUserEQueriesFilter} from '../../../e-queries/models/external-user-e-queries-filter';\r\n\r\nexport class InvestigatorEQueryFilterItem extends ExternalUserEQueriesFilter { }\r\n\r\nexport class InvestigatorEQueryFilterItemsReadModel {\r\n @dataMember()\r\n @required()\r\n @typedArray(InvestigatorEQueryFilterItem)\r\n public filterItems: InvestigatorEQueryFilterItem[];\r\n}\r\n","import { FilterFieldValue } from '../covance-filter';\r\nimport { HttpParams } from '@angular/common/http';\r\nimport * as moment from 'moment';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class ExternalUserFilterUrlParamsPreparer {\r\n public prepareFilterUrlParams(filterParameters: FilterFieldValue[]): HttpParams {\r\n if (!filterParameters) {\r\n return null;\r\n }\r\n\r\n let httpParams = new HttpParams();\r\n filterParameters\r\n .filter(p => p.value)\r\n .forEach((filterParam) => {\r\n const filterValue = filterParam.value;\r\n const paramName = filterParam.def.queryParam;\r\n\r\n if (paramName === 'visitCollectionDate') {\r\n httpParams = httpParams.append('visitCollectionDateFrom', (filterValue.dateBegin) ? moment(filterValue.dateBegin).format('YYYY-MM-DDTHH:mm:ss') : '');\r\n httpParams = httpParams.append('visitCollectionDateTo', (filterValue.dateEnd) ? moment(filterValue.dateEnd).format('YYYY-MM-DDTHH:mm:ss') : '');\r\n return;\r\n }\r\n\r\n if (paramName === 'age') {\r\n let operator: string = (filterValue.operator) ? filterValue.operator : '';\r\n let dayParam: string = (filterValue.day) ? filterValue.day : '';\r\n httpParams = httpParams.append('operator', encodeURIComponent(operator));\r\n httpParams = httpParams.append('day', encodeURIComponent(dayParam));\r\n return;\r\n }\r\n\r\n if (Array.isArray(filterValue)) {\r\n filterValue\r\n .forEach(v => {\r\n let paramValue: string = (v.key) ? v.key : v;\r\n httpParams = httpParams.append(paramName, encodeURIComponent(paramValue));\r\n });\r\n } else {\r\n let paramValue: string = (filterValue.key) ? filterValue.key : filterValue;\r\n httpParams = httpParams.append(paramName, encodeURIComponent(paramValue));\r\n }\r\n });\r\n\r\n return httpParams;\r\n }\r\n}","import { Settings } from '../../core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { FilterFieldValue } from '../../covance-filter';\r\nimport { Observable, BehaviorSubject, combineLatest } from 'rxjs';\r\nimport { InvestigatorEQuery, InvestigatorEQueryCountersReadModel } from './models/investigator-e-query';\r\nimport { Injectable } from '@angular/core';\r\nimport { map, switchMap, tap, startWith } from 'rxjs/operators';\r\nimport { deserialize } from 'santee-dcts';\r\nimport { InvestigatorEQueryFilterItem, InvestigatorEQueryFilterItemsReadModel } from './models/investigator-e-query-filter-item';\r\nimport { ExternalUserFilterUrlParamsPreparer } from '../../e-queries/external-user-filter-url-params-preparer';\r\nimport { EQueryTab } from '../../e-queries/models/e-query-tab.enum';\r\nimport { ExternalUserEQueriesStorage } from '../../e-queries/external-user-e-queries-storage';\r\nimport { InvestigatorEQueriesCountersStorage } from './investigator-e-queries-counters-storage';\r\n\r\n@Injectable()\r\nexport class InvestigatorEQueriesStorage implements ExternalUserEQueriesStorage {\r\n private readonly refresher = new BehaviorSubject(undefined);\r\n\r\n constructor(private readonly settings: Settings,\r\n private readonly http: HttpClient,\r\n private readonly externalFilterUrlParamsPreparer: ExternalUserFilterUrlParamsPreparer,\r\n private readonly investigatorEQueriesCountersStorage: InvestigatorEQueriesCountersStorage) {\r\n }\r\n\r\n public getEQueries(siteId: number, tab: EQueryTab, filterFields: FilterFieldValue[]): Observable {\r\n const params = this.externalFilterUrlParamsPreparer.prepareFilterUrlParams(filterFields);\r\n\r\n return this.refresher.pipe(\r\n switchMap(() =>\r\n this.http.get(\r\n `${this.settings.apiUrl}/investigator/site/${siteId}/e-queries/${tab}`, { params: params }\r\n ).pipe(\r\n map((r) => deserialize(r, InvestigatorEQueryCountersReadModel).eQueries),\r\n tap(eQueries =>\r\n this.investigatorEQueriesCountersStorage.updateCounters(\r\n siteId,\r\n eQueries,\r\n eq => eq.eQueryId,\r\n eq => eq.isUnresolved),\r\n ),\r\n startWith(null),\r\n )\r\n ),\r\n );\r\n }\r\n\r\n public getEQueryFilterItems(data$: Observable<[number, EQueryTab]>): Observable {\r\n return combineLatest([\r\n data$,\r\n this.refresher,\r\n ]).pipe(\r\n switchMap(([[siteId, tab]]) => {\r\n return this.http.get(\r\n `${this.settings.apiUrl}/investigator/site/${siteId}/e-query-filter-items/${tab}`\r\n ).pipe(\r\n map((r) => deserialize(r, InvestigatorEQueryFilterItemsReadModel).filterItems)\r\n );\r\n })\r\n );\r\n }\r\n\r\n public forceLoadEQueries() {\r\n this.refresher.next();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { FilterFieldType, FilterFieldValue } from '../covance-filter';\r\n\r\n@Injectable()\r\nexport class EQueryFilterDefinitions {\r\n public accessionNo(): FilterFieldValue {\r\n return {\r\n def : {\r\n title: 'Accession',\r\n queryParam: 'accessionNumber',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.MultiSelect,\r\n leaveOnlySelectedItems: true\r\n }\r\n };\r\n }\r\n\r\n public visitCollectionDate(): FilterFieldValue {\r\n return {\r\n def: {\r\n title: 'Collected Date',\r\n queryParam: 'visitCollectionDate',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.DateRange,\r\n }\r\n };\r\n }\r\n\r\n public visitName(): FilterFieldValue {\r\n return {\r\n def: {\r\n title: 'Visit',\r\n queryParam: 'visitName',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.MultiSelect,\r\n }\r\n };\r\n }\r\n\r\n public pVc(): FilterFieldValue {\r\n return {\r\n def: {\r\n title: 'PVC',\r\n queryParam: 'visitCode',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.MultiSelect,\r\n }\r\n };\r\n }\r\n\r\n public subject(): FilterFieldValue {\r\n return {\r\n def: {\r\n title: 'Subject',\r\n queryParam: 'subject',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.MultiSelect,\r\n }\r\n };\r\n }\r\n\r\n public eQueryId(): FilterFieldValue {\r\n return {\r\n def: {\r\n title: 'eQueryId',\r\n queryParam: 'eQueryId',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.Number,\r\n width: 80\r\n }\r\n };\r\n }\r\n\r\n public age(): FilterFieldValue {\r\n return {\r\n def: {\r\n title: 'eQuery Age',\r\n queryParam: 'age',\r\n isServerSideFilter: true,\r\n isPinned: true,\r\n type: FilterFieldType.Age,\r\n }\r\n };\r\n }\r\n public site(): FilterFieldValue {\r\n return {\r\n def: {\r\n title: 'Site',\r\n queryParam: 'site',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.MultiSelect,\r\n leaveOnlySelectedItems: true,\r\n isPinned: true\r\n }\r\n };\r\n }\r\n\r\n public protocol(): FilterFieldValue {\r\n return {\r\n def: {\r\n title: 'Protocol',\r\n queryParam: 'protocol',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.MultiSelect,\r\n isPinned: true\r\n }\r\n };\r\n }\r\n\r\n public sponsor(): FilterFieldValue {\r\n return {\r\n def: {\r\n title: 'Sponsor',\r\n queryParam: 'sponsor',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.MultiSelect,\r\n isPinned: true\r\n }\r\n };\r\n }\r\n\r\n public projectNumber(): FilterFieldValue {\r\n return {\r\n def: {\r\n title: 'Project',\r\n queryParam: 'project',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.MultiSelect,\r\n leaveOnlySelectedItems: true,\r\n }\r\n };\r\n }\r\n\r\n public status(): FilterFieldValue {\r\n return {\r\n def: {\r\n title: 'Status',\r\n queryParam: 'status',\r\n isServerSideFilter: true,\r\n type: FilterFieldType.MultiSelect,\r\n isPinned: true,\r\n skipMissingItems: true\r\n }\r\n };\r\n }\r\n}\r\n","import { FilterFieldValue } from '../covance-filter';\r\nimport { Observable } from 'rxjs';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { EQueryTab } from './models/e-query-tab.enum';\r\nimport { ExternalUserEQuery } from './models/external-user-e-query';\r\nimport { ExternalUserEQueriesFilter } from './models/external-user-e-queries-filter';\r\n\r\nexport interface ExternalUserEQueriesStorage {\r\n getEQueryFilterItems(data$: Observable<[number, EQueryTab]>): Observable;\r\n getEQueries(siteId: number, tab: EQueryTab, filterFields: FilterFieldValue[]): Observable;\r\n}\r\n\r\nexport const EQUERIES_STORAGE = new InjectionToken('EQueriesStorage');\r\n","export enum AuditTrailType {\r\n Announcements,\r\n GeneralDocuments,\r\n SiteCommunications,\r\n SiteActions,\r\n SponsorCommunications,\r\n StudyDocuments\r\n}","import { Injectable, EventEmitter } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ExternalUserEQuery } from './models/external-user-e-query';\r\n\r\nexport interface ReadEQueryItem {\r\n readonly eQueryId: number;\r\n readonly afterRead: (eQuery: T) => void;\r\n}\r\n\r\n@Injectable()\r\nexport class ReadEQueryEmitter {\r\n private readonly eQueryIdEmitter = new EventEmitter>();\r\n\r\n public get readEQueryId(): Observable> {\r\n return this.eQueryIdEmitter;\r\n }\r\n\r\n public emit(readItem: ReadEQueryItem) {\r\n this.eQueryIdEmitter.emit(readItem);\r\n }\r\n}\r\n\r\nexport type ExternalUserReadEQueryEmitter = ReadEQueryEmitter;","import { Injectable } from '@angular/core';\r\nimport { EQueryTab } from './models/e-query-tab.enum';\r\nimport { ExternalUserEQuery } from './models/external-user-e-query';\r\nimport { SubjectTitleRenderer } from '../renderer/subject-title-renderer';\r\n\r\ninterface SortInfo {\r\n columns: ((eq: ExternalUserEQuery) => string | number)[];\r\n sortDirection: ('asc' | 'desc')[];\r\n}\r\n\r\ntype GridDefaultSortInfo = {\r\n [key in EQueryTab]: SortInfo;\r\n};\r\n\r\n@Injectable()\r\nexport class ExternalUserEQueriesGridDefaultSort {\r\n private readonly eQuerySortColumns: GridDefaultSortInfo = {\r\n [EQueryTab.awaiting]: {\r\n columns: [\r\n (eq: ExternalUserEQuery) => eq.eQueryAge.ticks\r\n ],\r\n sortDirection: [ 'desc' ],\r\n },\r\n [EQueryTab.submitted]: {\r\n columns: [\r\n (eq: ExternalUserEQuery) => SubjectTitleRenderer.renderSubjectNumberOrScreening(eq),\r\n (eq: ExternalUserEQuery) => eq.visitCollectionDate\r\n ? eq.visitCollectionDate.valueOf()\r\n : null\r\n ],\r\n sortDirection: [ 'asc', 'desc' ],\r\n }\r\n };\r\n\r\n public getByTab(tab: EQueryTab): SortInfo {\r\n const sortingInfo = this.eQuerySortColumns[tab];\r\n\r\n if (!sortingInfo) {\r\n throw new Error(`Unexpected ${tab} tab`);\r\n }\r\n\r\n return sortingInfo;\r\n }\r\n}","import { ChangeDetectionStrategy, Component, Inject, Input } from '@angular/core';\r\nimport { CovanceFilter, FilterFieldValue } from '../../covance-filter';\r\nimport { EQueryFilterDefinitions } from '../e-query-filter-definitions';\r\nimport { EQUERIES_STORAGE, ExternalUserEQueriesStorage } from '../external-user-e-queries-storage';\r\nimport { map, publishReplay, refCount, switchMap, startWith, withLatestFrom } from 'rxjs/operators';\r\nimport { BehaviorSubject, combineLatest, Observable } from 'rxjs';\r\nimport { EQueryTab } from '../models/e-query-tab.enum';\r\nimport { GridOptions } from 'ag-grid-community';\r\nimport { FormControl } from '@angular/forms';\r\nimport { CovanceGridColumn } from '../../covance-ag-grid';\r\nimport { ExternalUserEQuery } from '../models/external-user-e-query';\r\nimport { ReadEQueryItem, ExternalUserReadEQueryEmitter, ReadEQueryEmitter } from '../read-e-query-emitter';\r\nimport { Acknowledgement } from '../../view-history';\r\nimport { UserStorage } from '../../user';\r\nimport { orderBy } from 'lodash';\r\nimport { ExternalUserEQueriesGridDefaultSort } from '../external-user-e-queries-grid-default-sort';\r\n\r\n@Component({\r\n selector: 'external-user-e-queries-grid',\r\n template: require('./external-user-e-queries-grid.component.html'),\r\n styles: [require('./external-user-e-queries-grid.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ExternalUserEQueriesGridComponent {\r\n public readonly gridOptions: GridOptions = {\r\n floatingFilter: false,\r\n enableFilter: false,\r\n floatingFiltersHeight: 32\r\n };\r\n public readonly protocolControl: FormControl;\r\n\r\n @Input()\r\n public filterDefs: FilterFieldValue[];\r\n\r\n @Input()\r\n public columns: CovanceGridColumn[];\r\n\r\n @Input()\r\n public set siteId(val: number) {\r\n this.siteId$.next(val);\r\n }\r\n\r\n @Input()\r\n public set eQueryTab(value: EQueryTab) {\r\n this.eQueryTab$.next(value);\r\n this.groupName = `external-e-query-${value}`;\r\n }\r\n\r\n @Input()\r\n public showReadByMe = true;\r\n\r\n public groupName: string;\r\n public eQueries$: Observable;\r\n public filterFields$: Observable;\r\n private readonly siteId$ = new BehaviorSubject(undefined);\r\n private readonly eQueryTab$ = new BehaviorSubject(EQueryTab.awaiting);\r\n\r\n constructor(\r\n @Inject(EQUERIES_STORAGE) private readonly externalEQueriesStorage: ExternalUserEQueriesStorage,\r\n private readonly filterService: CovanceFilter,\r\n private readonly eQueryFilterResolver: EQueryFilterDefinitions,\r\n @Inject(ReadEQueryEmitter) readEQueryEmitter: ExternalUserReadEQueryEmitter,\r\n private readonly userStorage: UserStorage,\r\n private readonly gridDefaultSort: ExternalUserEQueriesGridDefaultSort,\r\n ) {\r\n\r\n this.gridOptions.getRowClass = this.getRowClass;\r\n\r\n const data$ = combineLatest([\r\n this.siteId$,\r\n this.eQueryTab$,\r\n ]);\r\n this.filterFields$ = this.externalEQueriesStorage\r\n .getEQueryFilterItems(data$).pipe(\r\n map(filterItems => {\r\n this.filterService.setFiltersItems(filterItems, this.filterDefs);\r\n return this.filterDefs;\r\n }),\r\n publishReplay(1),\r\n refCount()\r\n );\r\n\r\n const filterFlow$ = this.filterFields$\r\n .pipe(\r\n switchMap(fields => this.filterService.listen(fields).pipe(map(() => fields))),\r\n publishReplay(1),\r\n refCount()\r\n );\r\n\r\n const eQueries$ = filterFlow$\r\n .pipe(\r\n withLatestFrom(data$),\r\n switchMap(([fields, [siteId, tab]]) =>\r\n this.externalEQueriesStorage.getEQueries(siteId, tab, fields).pipe(\r\n map(this.sortEQueries),\r\n ),\r\n ),\r\n publishReplay(1),\r\n refCount(),\r\n );\r\n\r\n this.eQueries$ = eQueries$.pipe(\r\n switchMap(eQueries => {\r\n return readEQueryEmitter.readEQueryId.pipe(\r\n switchMap(readItem => this.readEQuery(readItem, eQueries)),\r\n startWith(eQueries),\r\n );\r\n }),\r\n publishReplay(1),\r\n refCount(),\r\n );\r\n }\r\n\r\n private getRowClass = (params: { data: any }): string => {\r\n if (!this.showReadByMe) {\r\n return null;\r\n }\r\n\r\n return params.data && !params.data.isReadByMe\r\n ? 'strong-row'\r\n : null;\r\n }\r\n\r\n private readEQuery(readItem: ReadEQueryItem, eQueries: ExternalUserEQuery[]): Observable {\r\n return this.userStorage.currentUser.pipe(\r\n map(user => {\r\n if (!eQueries) {\r\n return null;\r\n }\r\n\r\n const eQuery = eQueries.filter(eq => eq.eQueryId === readItem.eQueryId)[0];\r\n\r\n if (!eQuery) {\r\n return eQueries;\r\n }\r\n\r\n eQuery.isRead = true;\r\n\r\n if (!eQuery.isReadByMe) {\r\n eQuery.isReadByMe = true;\r\n const ackn = new Acknowledgement();\r\n ackn.user = user.metadata;\r\n eQuery.viewHistory.push(ackn);\r\n }\r\n\r\n readItem.afterRead(eQuery);\r\n\r\n return [...eQueries];\r\n }),\r\n publishReplay(1),\r\n refCount(),\r\n );\r\n }\r\n\r\n private sortEQueries = (eQueries: ExternalUserEQuery[]): ExternalUserEQuery[] | null => {\r\n if (!eQueries) {\r\n return null;\r\n }\r\n\r\n const sortInfo = this.gridDefaultSort.getByTab(this.eQueryTab$.value);\r\n\r\n return orderBy(eQueries, sortInfo.columns, sortInfo.sortDirection);\r\n }\r\n}\r\n","import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'simple-text-field',\r\n template: require('./simple-text-field.component.html'),\r\n styles: [require('./simple-text-field.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n })\r\n\r\nexport class SimpleTextFieldComponent {\r\n @Input()\r\n public labelText: string;\r\n\r\n @Input()\r\n public textValue: string;\r\n}","import {NgModule} from '@angular/core';\r\nimport {SimpleTextFieldComponent} from './simple-text-field.component';\r\n\r\n@NgModule({\r\n declarations: [SimpleTextFieldComponent],\r\n imports: [],\r\n exports: [SimpleTextFieldComponent]\r\n })\r\nexport class SimpleTextFieldModule { }","import { Injectable } from '@angular/core';\r\nimport { AgeRendererComponent } from '../covance-ag-grid/renderers/age-renderer/age-renderer.component';\r\nimport { CovanceGridColumn, LinkParams, LinkAgRendererComponent, MulticellTooltip, MulticellItem, MulticellParams, MulticellAgRendererComponent } from '../covance-ag-grid';\r\nimport { comparators } from '../core';\r\nimport { ExternalUserEQuery } from './models/external-user-e-query';\r\n\r\n@Injectable()\r\nexport class EQueriesColumns {\r\n public ageColumn(): CovanceGridColumn {\r\n return {\r\n headerName: 'eQuery Age',\r\n field: 'eQueryAge',\r\n width: 70,\r\n cellRendererFramework: AgeRendererComponent,\r\n comparator: comparators.distanceComparator,\r\n filterValueGetter: (params: { data: ExternalUserEQuery } ) => params.data.eQueryAge.formattedValue\r\n };\r\n }\r\n\r\n public eQueryIdColumn(\r\n buildRouterLink: (params: EQueryNumberRendererParams) => string | any[]\r\n ): CovanceGridColumn {\r\n return {\r\n headerName: 'eQueryId',\r\n field: 'eQueryId',\r\n width: 95,\r\n valueGetter: (params: EQueryNumberRendererParams) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n\r\n const textedEQueryId = params.data.eQueryId ? params.data.eQueryId.toString() : '';\r\n\r\n const routerLink: LinkParams = {\r\n routerLink: buildRouterLink(params),\r\n preserveQueryParams: true,\r\n text: textedEQueryId,\r\n linkIcon: 'search',\r\n toString: () => textedEQueryId\r\n };\r\n\r\n return routerLink;\r\n },\r\n comparator: comparators.linkNumberParamsComparator,\r\n cellRendererFramework: LinkAgRendererComponent,\r\n };\r\n }\r\n\r\n public responders(): CovanceGridColumn {\r\n return {\r\n headerName: 'Responders',\r\n field: 'responders',\r\n width: 70,\r\n comparator: (a, b) => comparators.mixedStringComparator(a, b),\r\n valueGetter: (params: {data: {responders: string[]}}) => {\r\n if (!params.data) {\r\n return '';\r\n }\r\n const tooltips = params.data.responders.map(v => {\r\n return {\r\n content: v\r\n };\r\n });\r\n const items: MulticellItem[] = [{\r\n displayValue: params.data.responders[0],\r\n tooltips: tooltips\r\n }];\r\n return {\r\n alwaysShowTooltip: true,\r\n items: items,\r\n toString: () => items.map(i => i.displayValue).join('\\n')\r\n } as MulticellParams;\r\n },\r\n cellRendererFramework: MulticellAgRendererComponent\r\n };\r\n }\r\n}\r\n\r\ninterface DataWithEQuery {\r\n eQueryId: number;\r\n}\r\n\r\ninterface EQueryNumberRendererParams {\r\n data: TData;\r\n}\r\n","import { CovanceGridColumn, dateRenderer, dateTimeRenderer, dateTimeComparator, ViewHistoryAgRendererComponent, MulticellAgRendererComponent, MulticellParams, MulticellItem, MulticellTooltip } from '../../covance-ag-grid';\r\nimport { comparators } from '../../core';\r\nimport { ExternalUserEQuery } from '../models/external-user-e-query';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class ExternalUserEQueriesColumns {\r\n public viewHistory: CovanceGridColumn = {\r\n headerName: 'Read',\r\n field: 'viewHistory',\r\n width: 75,\r\n cellRendererFramework: ViewHistoryAgRendererComponent,\r\n };\r\n\r\n public eQueryId: CovanceGridColumn = {\r\n headerName: 'eQueryId',\r\n field: 'eQueryId',\r\n width: 90,\r\n comparator: (a, b) => comparators.numberComparator(a, b),\r\n };\r\n\r\n public status: CovanceGridColumn = {\r\n headerName: 'Status',\r\n field: 'eQueryStatus',\r\n width: 70,\r\n comparator: (a, b) => comparators.mixedStringComparator(a, b)\r\n };\r\n\r\n public visitName: CovanceGridColumn = {\r\n headerName: 'Visit',\r\n field: 'visitName',\r\n width: 120,\r\n comparator: (a, b) => comparators.mixedStringComparator(a, b)\r\n };\r\n\r\n public protocolVisitCode: CovanceGridColumn = {\r\n headerName: 'PVC',\r\n field: 'protocolVisitCode',\r\n width: 70,\r\n comparator: (a, b) => comparators.mixedStringComparator(a, b)\r\n };\r\n\r\n public visitCollectionDate: CovanceGridColumn = {\r\n headerName: 'Collected Date',\r\n field: 'visitCollectionDate',\r\n comparator: dateTimeComparator,\r\n valueGetter: (params: { data: ExternalUserEQuery }) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n return dateRenderer({ value: params.data.visitCollectionDate });\r\n },\r\n };\r\n\r\n public responseTime: CovanceGridColumn = {\r\n headerName: 'Response Time',\r\n field: 'responseTime',\r\n width: 100,\r\n comparator: dateTimeComparator,\r\n valueGetter: (params: { data: ExternalUserEQuery }) => {\r\n if (!params.data) {\r\n return null;\r\n }\r\n return dateTimeRenderer({ value: params.data.responseDateTime });\r\n },\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { EQueryFilterDefinitions } from './e-query-filter-definitions';\r\nimport { FilterFieldValue } from '../covance-filter';\r\n\r\n@Injectable()\r\nexport class ExternalUserEQueriesFilterDefinitions {\r\n constructor(private readonly eQueryFilterDefinitions: EQueryFilterDefinitions) {\r\n }\r\n\r\n public getAwaitingFilterDefinitions(): FilterFieldValue[] {\r\n return [\r\n this.eQueryFilterDefinitions.accessionNo(),\r\n this.eQueryFilterDefinitions.visitCollectionDate(),\r\n this.eQueryFilterDefinitions.status(),\r\n this.eQueryFilterDefinitions.visitName(),\r\n this.eQueryFilterDefinitions.pVc(),\r\n this.eQueryFilterDefinitions.subject(),\r\n this.eQueryFilterDefinitions.eQueryId(),\r\n this.eQueryFilterDefinitions.age()];\r\n }\r\n\r\n public getSubmittedFilterDefinitions(): FilterFieldValue[] {\r\n return [\r\n this.eQueryFilterDefinitions.accessionNo(),\r\n this.eQueryFilterDefinitions.visitCollectionDate(),\r\n this.eQueryFilterDefinitions.status(),\r\n this.eQueryFilterDefinitions.visitName(),\r\n this.eQueryFilterDefinitions.pVc(),\r\n this.eQueryFilterDefinitions.subject(),\r\n this.eQueryFilterDefinitions.eQueryId()];\r\n }\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {FormControl} from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'e-queries-free-text-question',\r\n template: require('./e-queries-free-text-question.component.html'),\r\n styles: [require('./e-queries-free-text-question.component.scss')]\r\n})\r\nexport class EQueriesFreeTextQuestionComponent {\r\n @Input()\r\n public questionText: string;\r\n\r\n @Input()\r\n public mask: string;\r\n\r\n @Input()\r\n public maskDescription: string;\r\n\r\n @Input()\r\n public textMaxBytes: number;\r\n\r\n @Input()\r\n public freeTextControl: FormControl;\r\n\r\n constructor() {}\r\n\r\n public meetResponseMask() {\r\n if (!this.mask) { return true; }\r\n const currentText = this.freeTextControl.value;\r\n // if value is null or whitespace\r\n if (!currentText) { return true; }\r\n const currentTextTrimmed = currentText.toString().trim();\r\n const regParts = this.mask.match(/^\\/(.*?)\\/([gim]*)$/);\r\n let mask = undefined;\r\n let isGlobal = true;\r\n if (regParts) {\r\n mask = new RegExp(regParts[1], regParts[2]);\r\n isGlobal = regParts[2] === 'g';\r\n } else {\r\n mask = new RegExp(this.mask, 'g');\r\n }\r\n // Add flag 'g' to avoid entering extra characters\r\n // Returns the first match and remembers the position after it in the mask.lastIndex property\r\n const maskExecResult = mask.exec(currentTextTrimmed);\r\n // If no matches found\r\n if (!maskExecResult) { return false; }\r\n // If a match is found, but there are extra characters at the beginning of the text\r\n if (maskExecResult.index !== 0) {return false; }\r\n // Returns true if a match is found and there are no extra characters at the end of the text\r\n return isGlobal ? mask.lastIndex === currentTextTrimmed.length : true;\r\n }\r\n}\r\n","import { dataMember, required } from 'santee-dcts';\r\nimport { deserializers } from '../../core';\r\nimport * as moment from 'moment';\r\n\r\nexport class ExternalEQueryAccessionInfo {\r\n @dataMember()\r\n @required()\r\n public siteId: number;\r\n\r\n @dataMember()\r\n @required({nullable: true})\r\n public screeningNumber: string;\r\n\r\n @dataMember()\r\n @required({nullable: true})\r\n public subjectNumber: string;\r\n\r\n @dataMember()\r\n @required()\r\n public accessionId: number;\r\n\r\n @dataMember()\r\n @required({nullable: true})\r\n public accessionNumber: string;\r\n\r\n @dataMember()\r\n @required({nullable: true})\r\n public age: number;\r\n\r\n @dataMember()\r\n @required({nullable: true})\r\n public gender: string;\r\n\r\n @dataMember()\r\n @required({nullable: true})\r\n public visitName: string;\r\n\r\n @dataMember()\r\n @required({nullable: true})\r\n public protocolVisitCode: string;\r\n\r\n @dataMember({ customDeserializer: deserializers.deserializeDate })\r\n @required({nullable: true})\r\n public patientDob: moment.Moment;\r\n\r\n @dataMember()\r\n @required({nullable: true})\r\n public patientInitials: string;\r\n\r\n @dataMember({ customDeserializer: deserializers.deserializeDate })\r\n @required({nullable: true})\r\n public visitCollectionDateTime: moment.Moment;\r\n\r\n @dataMember()\r\n @required()\r\n public isAgeProject: boolean;\r\n\r\n @dataMember()\r\n @required({nullable: true})\r\n public protocolId: number;\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { ExternalEQueryAccessionInfo } from './external-e-query-accession-info';\r\nimport { Router } from '@angular/router';\r\nimport { EQueryAccessionInfo } from '../../admin/shared/e-query-accession-info';\r\n\r\n@Component({\r\n selector: 'e-query-accession-info',\r\n template: require('./e-query-accession-info.component.html'),\r\n styles: [require('./e-query-accession-info.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class EQueryAccessionInfoComponent {\r\n @Input()\r\n public isToggled = false;\r\n\r\n @Input()\r\n public accessionInfo: ExternalEQueryAccessionInfo | EQueryAccessionInfo;\r\n\r\n @Input()\r\n public screenResultLinkNeeded = true;\r\n\r\n @Input()\r\n public screenResultUrl: any[];\r\n\r\n @Output()\r\n public onGoToScreenResultClick = new EventEmitter();\r\n\r\n public get isExternalAccessionInfo(): boolean {\r\n return this.accessionInfo instanceof ExternalEQueryAccessionInfo;\r\n }\r\n \r\n constructor(private readonly router: Router) {\r\n }\r\n\r\n public goToScreenResult(): void {\r\n const serializedAccessionNumber = JSON.stringify([this.accessionInfo.accessionNumber]);\r\n const accessionNumberQueryParam = { accessionNumber: serializedAccessionNumber };\r\n const urlTree = this.router.createUrlTree(this.screenResultUrl, {queryParams: accessionNumberQueryParam});\r\n delete urlTree.root.children['global-popup'];\r\n this.router.navigateByUrl(urlTree)\r\n .then(() => this.onGoToScreenResultClick.emit());\r\n }\r\n}\r\n","import {ChangeDetectionStrategy, Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {EQueryAttachment} from '../../models/e-query-attachment';\r\n\r\n@Component({\r\n selector: 'e-query-attachments',\r\n template: require('./e-query-attachments.component.html'),\r\n styles: [require('./e-query-attachments.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class EQueryAttachmentsComponent {\r\n\r\n @Input()\r\n public attachments: EQueryAttachment[];\r\n\r\n @Output()\r\n public downloadAttachmentClick = new EventEmitter();\r\n\r\n @Output()\r\n public previewAttachmentClick = new EventEmitter();\r\n}","import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'e-query-details-text-field',\r\n template: require('./e-query-details-text-field.component.html'),\r\n styles: [require('./e-query-details-text-field.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n\r\nexport class EQueryDetailsTextFieldComponent {\r\n @Input()\r\n public labelText: string;\r\n\r\n @Input()\r\n public textValue: string;\r\n}","import {Injectable} from '@angular/core';\r\nimport {Settings} from '../../core';\r\nimport {MdlDialogService} from '@angular-mdl/core';\r\nimport {EQueryAttachmentDownloadLink} from '../models/e-query-attachment-download-link';\r\nimport {DL_LINKS_TOKEN, DownloadDialogComponent} from '../../shared/document-downloader/download-dialog.component';\r\nimport { ActivityLogger } from '../../activities/activity-logger';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Injectable()\r\nexport class EQueryAttachmentsDownloader {\r\n constructor(\r\n private readonly dialogService: MdlDialogService,\r\n private readonly settings: Settings,\r\n private sanitizer: DomSanitizer,\r\n private readonly activityLogger: ActivityLogger\r\n ) {}\r\n\r\n public async downloadInvestigatorAttachment(attachmentId: number, eQueryId: number): Promise {\r\n this.activityLogger.logActivity('Download Attachment');\r\n\r\n const dlLink = new EQueryAttachmentDownloadLink(false);\r\n return await this.showDownloadingDialog(dlLink, this.createEQueryDownloadAttachmentUrl(attachmentId, eQueryId));\r\n }\r\n\r\n public async previewInvestigatorAttachment(attachmentId: number, eQueryId: number): Promise {\r\n const dlLink = new EQueryAttachmentDownloadLink(true);\r\n return await this.showDownloadingDialog(dlLink, this.createEQueryDownloadAttachmentUrl(attachmentId, eQueryId));\r\n }\r\n\r\n public async downloadSponsorAttachment(attachmentId: number, eQueryId: number): Promise {\r\n this.activityLogger.logActivity('Download Attachment');\r\n\r\n const dlLink = new EQueryAttachmentDownloadLink(false);\r\n return await this.showDownloadingDialog(dlLink, this.createEQueryDownloadAttachmentUrl(attachmentId, eQueryId));\r\n }\r\n\r\n public async previewSponsorAttachment(attachmentId: number, eQueryId: number): Promise {\r\n const dlLink = new EQueryAttachmentDownloadLink(true);\r\n return await this.showDownloadingDialog(dlLink, this.createEQueryDownloadAttachmentUrl(attachmentId, eQueryId));\r\n }\r\n\r\n public async downloadCoordinatorAttachment(attachmentId: number, eQueryId: number): Promise {\r\n const dlLink = new EQueryAttachmentDownloadLink(false);\r\n return await this.showDownloadingDialog(dlLink, this.createEQueryDownloadAttachmentUrl(attachmentId, eQueryId));\r\n }\r\n\r\n public async previewCoordinatorAttachment(attachmentId: number, eQueryId: number): Promise {\r\n const dlLink = new EQueryAttachmentDownloadLink(true);\r\n return await this.showDownloadingDialog(dlLink, this.createEQueryDownloadAttachmentUrl(attachmentId, eQueryId));\r\n }\r\n\r\n public async downloadResponseAttachment(attachmentId: number): Promise {\r\n const dlLink = new EQueryAttachmentDownloadLink(false);\r\n return await this.showDownloadingDialog(dlLink, this.createEQueryDownloadResponseAttachmentUrl(attachmentId));\r\n }\r\n\r\n public async downloadResponseAttachmentWithTracking(attachmentId: number): Promise {\r\n this.activityLogger.logActivity('Download Attachment');\r\n return await this.downloadResponseAttachment(attachmentId);\r\n }\r\n\r\n public async previewResponseAttachment(attachmentId: number): Promise {\r\n\r\n const dlLink = new EQueryAttachmentDownloadLink(true);\r\n return await this.showDownloadingDialog(dlLink, this.createEQueryDownloadResponseAttachmentUrl(attachmentId));\r\n }\r\n\r\n private createEQueryDownloadAttachmentUrl(attachmentId: number, eQueryId: number): string {\r\n return `${this.settings.apiUrl}/e-queries/${eQueryId}/attachments/${attachmentId}`;\r\n }\r\n\r\n private createEQueryDownloadResponseAttachmentUrl(attachmentId: number): string {\r\n return `${this.settings.apiUrl}/e-queries/response-attachments/${attachmentId}`;\r\n }\r\n\r\n private async showDownloadingDialog(dlLink: EQueryAttachmentDownloadLink, url: string) {\r\n const mdlDialogReference = await this.dialogService\r\n .showCustomDialog({\r\n component: DownloadDialogComponent,\r\n providers: [{\r\n provide: DL_LINKS_TOKEN,\r\n useValue: {\r\n url: url,\r\n params: dlLink\r\n }\r\n }],\r\n isModal: true\r\n })\r\n .toPromise();\r\n return await mdlDialogReference.onHide().toPromise();\r\n }\r\n}\r\n","import { FormGroup, FormControl } from '@angular/forms';\r\nimport { LanguageControl } from './file-language-control';\r\nimport { FileNameControl } from './file-name-control';\r\n\r\nexport class FileFormGroup extends FormGroup {\r\n private static readonly fileNameKey = 'fileName';\r\n private static readonly languageKey = 'language';\r\n\r\n constructor(\r\n fileFormControl: FormControl, \r\n languageFormControl: FormControl\r\n ) {\r\n super({\r\n [FileFormGroup.fileNameKey]: fileFormControl,\r\n [FileFormGroup.languageKey]: languageFormControl\r\n });\r\n }\r\n\r\n public get fileNameControl(): FileNameControl {\r\n return this.controls[FileFormGroup.fileNameKey] as FileNameControl;\r\n }\r\n\r\n public get languageControl(): LanguageControl {\r\n return this.controls[FileFormGroup.languageKey] as LanguageControl;\r\n }\r\n}","import { FormControl, Validators, ValidatorFn } from '@angular/forms';\r\nimport { CultureInfo } from '../core/culture-info';\r\nimport { FileFormArray } from './file-form-array';\r\n\r\nexport class LanguageControl extends FormControl {\r\n private static readonly duplicateLanguageError = 'duplicateLanguage';\r\n\r\n constructor(fileFormArray: FileFormArray, isRequired = true) {\r\n super(\r\n null,\r\n isRequired\r\n ? [Validators.required, LanguageControl.duplicateLanguageValidator(fileFormArray)]\r\n : []);\r\n }\r\n\r\n public get hasLanguageDuplicateError(): boolean {\r\n return this.hasError(LanguageControl.duplicateLanguageError);\r\n }\r\n\r\n public get hasRequiredError(): boolean {\r\n return this.hasError('required');\r\n }\r\n\r\n private static duplicateLanguageValidator(fileControls: FileFormArray): ValidatorFn {\r\n return (currentLanguageControl: FormControl) => {\r\n const currentLanguage = currentLanguageControl.value as CultureInfo;\r\n\r\n if (!currentLanguage) {\r\n return null;\r\n }\r\n \r\n for (let control of fileControls.fileFormGroups) {\r\n if (control.languageControl === currentLanguageControl) {\r\n continue;\r\n }\r\n\r\n const language = control.languageControl.value as CultureInfo;\r\n\r\n if (!language) {\r\n continue;\r\n }\r\n\r\n if (language.languageRowId === currentLanguage.languageRowId) {\r\n return { [this.duplicateLanguageError]: true };\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n }\r\n}","import { FormControl, ValidatorFn } from '@angular/forms';\r\nimport { FileFormArray } from './file-form-array';\r\nimport { isEmpty, includes } from 'lodash';\r\n\r\nexport class FileNameControl extends FormControl {\r\n private static readonly invalidFileExtensionError = 'invalidFileExtension';\r\n private static readonly duplicateFileNameError = 'duplicateFileName';\r\n private static readonly invalidFileSizeError = 'invalidFileSize';\r\n\r\n constructor(\r\n private readonly fileName: string,\r\n private readonly fileSize: number,\r\n private allowedFileExtensions: string[],\r\n private maxFileSize: number,\r\n private readonly fileFormArray: FileFormArray,\r\n private readonly excludeFileNames: string[]\r\n ) {\r\n super(fileName, [\r\n FileNameControl.invalidFileExtensionValidator(fileName, allowedFileExtensions),\r\n FileNameControl.duplidateFileValidator(fileFormArray, excludeFileNames),\r\n FileNameControl.invalidFileSizeValidator(fileSize, maxFileSize)\r\n ]);\r\n }\r\n\r\n public get hasInvalidFileExtension(): boolean {\r\n return this.hasError(FileNameControl.invalidFileExtensionError);\r\n }\r\n\r\n public get invalidFileExtensionError(): string {\r\n return this.getError(FileNameControl.invalidFileExtensionError);\r\n }\r\n\r\n public get hasInvalidFileSize(): boolean {\r\n return this.hasError(FileNameControl.invalidFileSizeError);\r\n }\r\n\r\n public get invalidFileSizeError(): string {\r\n return this.getError(FileNameControl.invalidFileSizeError);\r\n }\r\n\r\n public get hasDuplidateFileError(): boolean {\r\n return this.hasError(FileNameControl.duplicateFileNameError);\r\n }\r\n\r\n public updateAllowedFileExtensions(allowedFileExtensions: string[]) {\r\n this.allowedFileExtensions = allowedFileExtensions;\r\n\r\n super.setValidators([\r\n FileNameControl.invalidFileExtensionValidator(this.fileName, this.allowedFileExtensions),\r\n FileNameControl.duplidateFileValidator(this.fileFormArray, this.excludeFileNames),\r\n FileNameControl.invalidFileSizeValidator(this.fileSize, this.maxFileSize)\r\n ]);\r\n \r\n super.updateValueAndValidity();\r\n }\r\n\r\n private static invalidFileExtensionValidator(fileName: string, allowedFileExtensions: string[]): ValidatorFn {\r\n return () => {\r\n if (isEmpty(allowedFileExtensions)) {\r\n return null;\r\n }\r\n\r\n const extension = this.getFileExtension(fileName);\r\n\r\n return allowedFileExtensions.indexOf(extension) === -1\r\n ? { [this.invalidFileExtensionError]: `Invalid file extension: ${extension}` }\r\n : null;\r\n };\r\n }\r\n\r\n private static invalidFileSizeValidator(fileSize: number, maxFileSize: number): ValidatorFn {\r\n return () => {\r\n if (fileSize > maxFileSize) {\r\n return { [this.invalidFileSizeError]: `invalid file size, max size is: ${(maxFileSize / 1024 / 1024).toFixed(1)}Mb` };\r\n }\r\n\r\n return null;\r\n };\r\n }\r\n\r\n private static duplidateFileValidator(fileFormArray: FileFormArray, excludeFileNames: string[]): ValidatorFn {\r\n return (currentControl: FileNameControl) => {\r\n const invalidResult = { [this.duplicateFileNameError]: true };\r\n\r\n for (let group of fileFormArray.fileFormGroups) {\r\n if (!isEmpty(excludeFileNames) && includes(excludeFileNames, currentControl.value)) {\r\n return invalidResult;\r\n }\r\n\r\n if (currentControl === group.fileNameControl) {\r\n continue;\r\n }\r\n\r\n if (group.fileNameControl.value === currentControl.value) {\r\n return invalidResult;\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n }\r\n\r\n private static getFileExtension(fileName: string): string {\r\n const i = fileName.lastIndexOf('.');\r\n\r\n if (i === -1) {\r\n return null;\r\n }\r\n\r\n return fileName.substring(i).toLowerCase();\r\n } \r\n}","import { Settings } from '../core/settings';\r\nimport { Component, ChangeDetectionStrategy, ViewChild, Input, Output, EventEmitter, ElementRef, OnInit } from '@angular/core';\r\nimport { BehaviorSubject, combineLatest, Observable } from 'rxjs';\r\nimport { LanguagesStore } from '../core/languages-store';\r\nimport { CultureInfo } from '../core/culture-info';\r\nimport { FileFormGroup } from './file-form-group';\r\nimport { FileFormArray } from './file-form-array';\r\nimport { LanguageControl } from './file-language-control';\r\nimport { FileNameControl } from './file-name-control';\r\nimport { isEmpty, includes } from 'lodash';\r\nimport { map } from 'rxjs/operators';\r\nimport { UploadedFileResponse } from './uploaded-file-response';\r\n\r\nexport type FileToLanguage = Map;\r\n\r\n@Component({\r\n selector: 'covance-file-upload',\r\n template: require('./covance-file-upload.component.html'),\r\n styles: [require('./covance-file-upload.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CovanceFileUploadComponent implements OnInit {\r\n @Input()\r\n public set fileFormArray(value: FileFormArray) {\r\n this.formArray = value;\r\n this.filesLanguageMap = new Map();\r\n }\r\n\r\n @Input()\r\n public hideLanguageSelector = false;\r\n\r\n @Input()\r\n public singleFileOnly = false;\r\n\r\n public get allowedFileExtensions(): string[] {\r\n return this.fileExtensions;\r\n }\r\n\r\n @Input()\r\n public set allowedFileExtensions(value: string[]) {\r\n this.fileExtensions = value;\r\n\r\n for (let fileGroup of this.formArray.fileFormGroups) {\r\n fileGroup.fileNameControl.updateAllowedFileExtensions(this.allowedFileExtensions);\r\n }\r\n }\r\n\r\n @Input()\r\n public fileResponses: UploadedFileResponse[] = null;\r\n\r\n @Input()\r\n public fileMaxSize: number;\r\n\r\n @Input()\r\n public filesMaxCount: number;\r\n\r\n @Output()\r\n public filesChanged = new EventEmitter();\r\n\r\n @Input()\r\n public excludeLanguageIds: string[] = [];\r\n\r\n public excludeLanguageIds$ = new BehaviorSubject([]);\r\n\r\n @Input()\r\n public excludeFileNames: string[] = null;\r\n\r\n @Input()\r\n public disabled = false;\r\n\r\n public languages: Observable;\r\n \r\n @ViewChild('file')\r\n public fileControl: ElementRef;\r\n\r\n public filesLanguageMap: FileToLanguage = new Map();\r\n\r\n public get areEmptyAllowedFileExtensions(): boolean {\r\n return isEmpty(this.allowedFileExtensions);\r\n }\r\n\r\n public get allowedFileExtensionsText(): string {\r\n return !this.areEmptyAllowedFileExtensions\r\n ? this.allowedFileExtensions.join(' ')\r\n : '';\r\n }\r\n\r\n private formArray = new FileFormArray();\r\n private fileExtensions: string[] = [];\r\n\r\n constructor(\r\n readonly languagesStore: LanguagesStore,\r\n private readonly settings: Settings\r\n ) {\r\n this.languages = combineLatest([languagesStore.allLanguages, this.excludeLanguageIds$])\r\n .pipe(map(([languages, excludeLanguageIds]) => languages.filter(l => !includes(excludeLanguageIds, l.languageRowId))));\r\n }\r\n\r\n public ngOnInit() {\r\n const inputName: keyof CovanceFileUploadComponent = 'fileFormArray';\r\n if (!this.formArray) {\r\n throw new Error(`${inputName} is required input field. Pass an empty formArray instance.`);\r\n }\r\n this.excludeLanguageIds$.next(this.excludeLanguageIds);\r\n\r\n if (this.filesMaxCount > 0) {\r\n this.formArray.setCustomValidators([FileFormArray.maxArrayLengthValidator(this.filesMaxCount)]);\r\n }\r\n }\r\n\r\n public browse() {\r\n this.fileControl.nativeElement.click();\r\n }\r\n\r\n public onFileControlChanges() {\r\n const files: FileList = this.fileControl.nativeElement.files;\r\n this.addFilesToSet(files);\r\n this.fileControl.nativeElement.value = null;\r\n }\r\n\r\n public setFileLanguage(fileIndex: number, file: File, languageInfo: CultureInfo) {\r\n const languageControl = this.formArray.getByIndex(fileIndex).languageControl;\r\n\r\n this.removeLanguageFromExcluded(languageControl.value);\r\n languageControl.setValue(languageInfo);\r\n this.filesLanguageMap.set(file, languageInfo);\r\n this.filesChanged.emit(this.filesLanguageMap);\r\n\r\n this.addLanguageToExcluded(languageInfo);\r\n }\r\n\r\n public preventDefault(e: DragEvent) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n }\r\n\r\n public drop(e: DragEvent) {\r\n this.preventDefault(e);\r\n\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n if (e.dataTransfer.files.length !== 1 && this.singleFileOnly) {\r\n return;\r\n }\r\n const files = e.dataTransfer.files;\r\n this.addFilesToSet(files);\r\n }\r\n\r\n public dragover(e: DragEvent) {\r\n this.preventDefault(e);\r\n if (e.dataTransfer.items.length !== 1 && this.singleFileOnly) {\r\n e.dataTransfer.dropEffect = 'none';\r\n }\r\n }\r\n \r\n public onDeleteFile(fileIndex: number, file: File) {\r\n this.removeLanguageFromExcluded(this.filesLanguageMap.get(file));\r\n\r\n this.formArray.removeAt(fileIndex);\r\n this.filesLanguageMap.delete(file);\r\n this.filesChanged.emit(this.filesLanguageMap);\r\n }\r\n\r\n public get files() {\r\n return Array.from(this.filesLanguageMap.keys());\r\n }\r\n\r\n public isLanguageInvalid(fileIndex: number): boolean {\r\n return this.formArray.getByIndex(fileIndex).invalid;\r\n }\r\n\r\n public isLanguageRequired(fileIndex: number): boolean {\r\n return this.formArray.getByIndex(fileIndex).languageControl.hasRequiredError;\r\n }\r\n\r\n public isLanguageDuplicate(fileIndex: number): boolean {\r\n return this.formArray.getByIndex(fileIndex).languageControl.hasLanguageDuplicateError;\r\n }\r\n\r\n public isInvalidFileExtension(fileIndex: number): boolean {\r\n return this.formArray.getByIndex(fileIndex).fileNameControl.hasInvalidFileExtension;\r\n }\r\n\r\n public getInvalidFileExtension(fileIndex: number): string {\r\n return this.formArray.getByIndex(fileIndex).fileNameControl.invalidFileExtensionError;\r\n }\r\n\r\n public isInvalidFileSize(fileIndex: number): boolean {\r\n return this.formArray.getByIndex(fileIndex).fileNameControl.hasInvalidFileSize;\r\n }\r\n\r\n public isInvalidFilesCount(): boolean {\r\n return this.formArray.hasArrayLengthError;\r\n }\r\n\r\n public getInvalidFileSize(fileIndex: number): string {\r\n return this.formArray.getByIndex(fileIndex).fileNameControl.invalidFileSizeError;\r\n }\r\n\r\n public isDuplicateFile(fileIndex: number): boolean {\r\n return this.formArray.getByIndex(fileIndex).fileNameControl.hasDuplidateFileError;\r\n }\r\n\r\n public getUploadedFileResponse(file: File): UploadedFileResponse | null {\r\n if (isEmpty(this.fileResponses)) {\r\n return null;\r\n }\r\n\r\n const fileResponse = this.fileResponses.find(x => x.fileName === file.name);\r\n return fileResponse;\r\n }\r\n\r\n private addFilesToSet(files: FileList) {\r\n if (this.singleFileOnly) {\r\n this.filesLanguageMap.clear();\r\n this.formArray.removeAt(0);\r\n }\r\n for (let i = 0; i < files.length; i++) {\r\n const file = files.item(i);\r\n this.formArray.push(\r\n new FileFormGroup(\r\n new FileNameControl(file.name, \r\n file.size, \r\n this.allowedFileExtensions, \r\n this.fileMaxSize ? this.fileMaxSize : this.settings.maxSizeOfUploadedDocument , \r\n this.formArray, \r\n this.excludeFileNames),\r\n new LanguageControl(this.formArray, !this.hideLanguageSelector),\r\n )\r\n );\r\n\r\n this.filesLanguageMap.set(file, null);\r\n }\r\n\r\n this.filesChanged.emit(this.filesLanguageMap);\r\n }\r\n\r\n private removeLanguageFromExcluded(language: CultureInfo) {\r\n if (language) {\r\n this.excludeLanguageIds$.next(this.excludeLanguageIds$.value.filter(l => l !== language.languageRowId));\r\n }\r\n }\r\n\r\n private addLanguageToExcluded(language: CultureInfo) {\r\n if (language) {\r\n this.excludeLanguageIds$.next([...this.excludeLanguageIds$.value, language.languageRowId]);\r\n }\r\n }\r\n}","import { Component, Input, ChangeDetectionStrategy } from '@angular/core';\r\nimport { UploadedFileResponse } from './uploaded-file-response';\r\n\r\n@Component({\r\n selector: 'uploaded-file-errors',\r\n template: require('./uploaded-file-errors.component.html'),\r\n styles: [require('./uploaded-file-errors.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class UploadedFileErrorsComponent {\r\n @Input()\r\n public fileResponse: UploadedFileResponse;\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { MyDatePickerModule } from 'mydatepicker';\r\nimport { CovanceFileUploadComponent } from './covance-file-upload.component';\r\nimport { UploadedFileErrorsComponent } from './uploaded-file-errors.component';\r\n\r\n@NgModule({\r\n declarations: [CovanceFileUploadComponent, UploadedFileErrorsComponent],\r\n imports: [SharedModule, MyDatePickerModule],\r\n exports: [CovanceFileUploadComponent]\r\n})\r\nexport class CovanceFileUploadModule { }","import { dataMember, required, typedArray } from 'santee-dcts';\r\nimport { EQueryStatus } from './e-query-status';\r\nimport {EQueryCCQuestion} from '../../admin/e-query/models/e-query-c-c-question';\r\nimport { Distance } from '../../shared';\r\n\r\nexport class EQueryInfo {\r\n @dataMember()\r\n @required()\r\n public eQueryId: number;\r\n\r\n @dataMember()\r\n @required({nullable: true})\r\n public statusName: EQueryStatus;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public eQueryAge: Distance;\r\n\r\n @dataMember()\r\n @required({nullable: true})\r\n public commentText: string;\r\n\r\n @dataMember()\r\n @required()\r\n public shouldBeResponded: boolean;\r\n}\r\n","import {dataMember, required} from 'santee-dcts';\r\n\r\nexport class EQueryAttachmentBase {\r\n @dataMember()\r\n @required()\r\n public attachmentId: number;\r\n\r\n @dataMember()\r\n @required()\r\n public filePath: string;\r\n\r\n @dataMember()\r\n @required()\r\n public physicalFileName: string;\r\n\r\n @dataMember()\r\n @required()\r\n public uploadFileName: string;\r\n}","import {dataMember, required} from 'santee-dcts';\r\nimport {EQueryAttachmentBase} from './e-query-attachment-base';\r\n\r\nexport class EQuerySubmittedResponseAttachment extends EQueryAttachmentBase {\r\n\r\n @dataMember()\r\n @required()\r\n public responseId: number;\r\n}","import {dataMember, required, typedArray} from 'santee-dcts';\r\nimport * as moment from 'moment';\r\nimport {deserializers} from '../../core';\r\nimport {EQuerySubmittedResponseAttachment} from './e-query-submitted-response-attachment';\r\n\r\nexport class EQuerySubmittedResponse {\r\n @dataMember()\r\n @required()\r\n public responseId: number;\r\n\r\n @dataMember()\r\n @required()\r\n public questionId: number;\r\n\r\n @dataMember()\r\n @required({nullable: true})\r\n public responseText: string;\r\n\r\n @dataMember()\r\n @required()\r\n public createdUserName: string;\r\n\r\n @dataMember()\r\n @required()\r\n public createdUserRoles: string;\r\n\r\n @dataMember({ customDeserializer: deserializers.deserializeDate })\r\n @required()\r\n public createdDateTime: moment.Moment;\r\n\r\n @dataMember()\r\n @required({nullable: true})\r\n @typedArray(EQuerySubmittedResponseAttachment)\r\n public responseAttachments: EQuerySubmittedResponseAttachment[];\r\n}","import {dataMember, required} from 'santee-dcts';\r\nimport {EQueryAttachmentBase} from './e-query-attachment-base';\r\n\r\nexport class EQueryAttachment extends EQueryAttachmentBase {\r\n\r\n @dataMember()\r\n @required()\r\n public eQueryId: number;\r\n\r\n @dataMember()\r\n @required({nullable: true})\r\n public description: string;\r\n}","import { dataMember, required } from 'santee-dcts';\r\n\r\nexport class EQueryCCQuestion {\r\n @dataMember()\r\n @required()\r\n public questionId: number; \r\n\r\n @dataMember()\r\n @required()\r\n public issueType: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public issueDescription: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public responseMask: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public responseMaskDescription: string;\r\n\r\n @dataMember()\r\n @required()\r\n public queryText: string;\r\n}\r\n","import { dataMember, required, typedArray } from 'santee-dcts';\r\nimport { EQueryInfo } from './e-query-info';\r\nimport { EQuerySubmittedResponse } from './e-query-submitted-response';\r\nimport { EQueryAttachment } from './e-query-attachment';\r\nimport { EQueryCCQuestion } from '../../admin/e-query/models/e-query-c-c-question';\r\nimport { EQueryAccessionInfo } from '../../admin/shared/e-query-accession-info';\r\nimport {ExternalEQueryAccessionInfo} from '../accession-info/external-e-query-accession-info';\r\n\r\nexport class EQueryDetails {\r\n @dataMember()\r\n @required()\r\n public eQueryData: EQueryInfo;\r\n\r\n @dataMember()\r\n @required()\r\n public accessionData: ExternalEQueryAccessionInfo;\r\n\r\n @dataMember()\r\n @required()\r\n @typedArray(EQueryAttachment)\r\n public attachments: EQueryAttachment[];\r\n\r\n @dataMember()\r\n @required()\r\n @typedArray(EQueryCCQuestion)\r\n public questions: EQueryCCQuestion[];\r\n \r\n @dataMember()\r\n @required()\r\n @typedArray(EQuerySubmittedResponse)\r\n public responseDetails: EQuerySubmittedResponse[];\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { map, publishLast, switchMap, refCount, publishReplay } from 'rxjs/operators';\r\nimport { deserialize } from 'santee-dcts';\r\nimport { EQueryDetails } from '../models/e-query-details';\r\nimport { Settings } from '../../core';\r\nimport { EQueryResponse } from '../models/e-query-response';\r\nimport { ActivityLogger } from '../../activities/activity-logger';\r\n\r\n@Injectable()\r\nexport class EQueryDetailsStorage {\r\n private readonly responseKey = 'eQueryResponsePostRequestKey';\r\n\r\n constructor(\r\n protected readonly settings: Settings,\r\n protected readonly http: HttpClient,\r\n private readonly activityLogger: ActivityLogger,\r\n ) {}\r\n\r\n public getInvestigatorEQueryDetails(eQueryId$: Observable) {\r\n return eQueryId$.pipe(\r\n switchMap(eQueryId => this.loadEQueryDetails(`${this.settings.apiUrl}/investigator/e-queries/${eQueryId}`)),\r\n publishReplay(1),\r\n refCount(),\r\n );\r\n }\r\n\r\n public getSponsorEQueryDetails(eQueryId$: Observable) {\r\n return eQueryId$.pipe(\r\n switchMap(eQueryId => this.loadEQueryDetails(`${this.settings.apiUrl}/sponsor/e-queries/${eQueryId}`)),\r\n publishReplay(1),\r\n refCount(),\r\n );\r\n }\r\n\r\n public createEQueryResponse(eQueryId: number, response: EQueryResponse) {\r\n const formData: FormData = new FormData();\r\n\r\n formData.append(this.responseKey, JSON.stringify(response));\r\n if (response.files) {\r\n const fileContent = response.files.keys();\r\n\r\n for (let file of fileContent) {\r\n formData.append('file', file, file.name);\r\n }\r\n\r\n if (response.files.size > 0) {\r\n this.activityLogger.logActivity('Upload Attachment');\r\n }\r\n }\r\n\r\n return this.http.post(`${this.settings.apiUrl}/external-user/e-queries/${eQueryId}/responses`, formData, {reportProgress: true});\r\n }\r\n\r\n private loadEQueryDetails( url: string): Observable {\r\n return this.http.get(url)\r\n .pipe(\r\n map((response) => {\r\n return deserialize(response, EQueryDetails);\r\n }),\r\n publishLast(),\r\n refCount(),\r\n );\r\n }\r\n}\r\n","import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\r\nimport {EQueryCCQuestion} from '../../../admin/e-query/models/e-query-c-c-question';\r\n\r\n@Component({\r\n selector: 'e-query-c-c-question',\r\n template: require('./e-query-c-c-question.component.html'),\r\n styles: [require('./e-query-c-c-question.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class EQueryCCQuestionComponent {\r\n @Input()\r\n public question: EQueryCCQuestion;\r\n\r\n public get issueTypeDescriptionText(): string {\r\n if (!this.question) {\r\n return '';\r\n }\r\n\r\n if (!this.question.issueDescription) {\r\n return this.question.issueType;\r\n }\r\n\r\n return `${this.question.issueType}/${this.question.issueDescription}`;\r\n }\r\n}","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\r\nimport { EQuerySubmittedResponse } from '../../models/e-query-submitted-response';\r\nimport { EQueryCCQuestion } from '../../../admin/e-query/models/e-query-c-c-question';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { maxLengthInBytes } from '../../../shared/validators';\r\nimport { EQueryResponse, EQueryResponsePerQuestion } from '../../models/e-query-response';\r\nimport { FileToLanguage } from '../../../covance-file-upload/covance-file-upload.component';\r\nimport { Settings } from '../../../core';\r\nimport { FileFormArray } from '../../../covance-file-upload/file-form-array';\r\nimport { EQueryResponseAttachmentsPerQuestion } from '../../models/e-query-response-attachments-per-question';\r\nimport { CultureInfo } from '../../../core/culture-info';\r\nimport { EQueryStatus } from '../../models/e-query-status';\r\nimport { combineLatest, Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'open-questions',\r\n template: require('./open-questions.component.html'),\r\n styles: [require('./open-questions.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n\r\nexport class OpenQuestionsComponent implements OnDestroy {\r\n @Output()\r\n public downloadAttachmentClick = new EventEmitter();\r\n\r\n @Output()\r\n public previewAttachmentClick = new EventEmitter();\r\n\r\n @Input()\r\n public status: string;\r\n\r\n @Input()\r\n public set shouldBeResponded(value: boolean) {\r\n this.shouldBeRespondedValue = value;\r\n this.createQuestionsControls();\r\n }\r\n\r\n public get shouldBeResponded() {\r\n return this.shouldBeRespondedValue;\r\n }\r\n\r\n @Input()\r\n public set questions(value: EQueryCCQuestion[]) {\r\n this.questionsValue = value;\r\n this.createQuestionsControls();\r\n this.createResponseQuestionMap();\r\n }\r\n\r\n public get questions() {\r\n return this.questionsValue;\r\n }\r\n\r\n @Input()\r\n public set responses(value: EQuerySubmittedResponse[]) {\r\n this.responsesValue = value;\r\n this.createResponseQuestionMap();\r\n }\r\n\r\n public get responses() {\r\n return this.responsesValue;\r\n }\r\n\r\n public get wasAtLeastOneResponseAdded() {\r\n let result = false;\r\n this.questionControls.forEach((valueForm, keyQuestion) => {\r\n if (valueForm.value && String(valueForm.value).trim()) {\r\n result = true;\r\n }\r\n });\r\n return result;\r\n }\r\n\r\n public responseQuestionMap: Map = new Map();\r\n public attachmentsQuestionMap: Map = new Map();\r\n public editorForm: FormGroup;\r\n public questionControls: Map;\r\n public questionFileFormArrays: Map;\r\n public readonly allowedExtensions: string[];\r\n public readonly eQueryMaxSizeOfAttachments: number;\r\n public readonly maxFilesCountPerIssue: number;\r\n public textMaxBytes = 2050;\r\n public openStatus = EQueryStatus.Open;\r\n public hasDuplicateFile = false;\r\n public duplicateFileNames = '';\r\n\r\n private selectedFilesMap: Map;\r\n private questionsValue: EQueryCCQuestion[];\r\n private responsesValue: EQuerySubmittedResponse[];\r\n private shouldBeRespondedValue = false;\r\n private subscription: Subscription;\r\n\r\n constructor(\r\n private readonly settings: Settings,\r\n ) {\r\n this.allowedExtensions = settings.eQueryAttachmentsExtensions;\r\n this.eQueryMaxSizeOfAttachments = settings.eQueryMaxSizeOfAttachments;\r\n this.questionControls = new Map();\r\n this.questionFileFormArrays = new Map();\r\n this.attachmentsQuestionMap = new Map();\r\n this.selectedFilesMap = new Map();\r\n this.maxFilesCountPerIssue = settings.eQueryMaxNumberOfAttachmentsPerIssue;\r\n }\r\n\r\n public createResponseQuestionMap(): void {\r\n if (!this.questionsValue || !this.responsesValue) {\r\n this.responseQuestionMap = new Map();\r\n return;\r\n }\r\n this.responses.forEach(response => {\r\n const relatedQuestion = this.questionsValue.find(question => question.questionId === response.questionId);\r\n if (!relatedQuestion) {\r\n return;\r\n }\r\n if (this.responseQuestionMap.has(relatedQuestion)) {\r\n this.responseQuestionMap.get(relatedQuestion).push(response);\r\n } else {\r\n this.responseQuestionMap.set(relatedQuestion, [response]);\r\n }\r\n });\r\n }\r\n\r\n public createEQueryResponse(): EQueryResponse {\r\n const responses: EQueryResponsePerQuestion[] = [];\r\n this.pushQuestionResponses(responses);\r\n const attachments = this.createQuestionAttachmentsArray();\r\n let files: FileToLanguage = new Map();\r\n this.selectedFilesMap.forEach((fileValue, keyNumber) => {\r\n files = new Map([...files, ...fileValue]);\r\n });\r\n return {responses: responses, attachmentsPerQuestionList: attachments, files: files};\r\n }\r\n\r\n public onFilesChanged(selectedFiles: FileToLanguage, question: EQueryCCQuestion) {\r\n if (this.attachmentsQuestionMap.has(question.questionId)) {\r\n this.attachmentsQuestionMap.delete(question.questionId);\r\n }\r\n if (this.selectedFilesMap.has(question.questionId)) {\r\n this.selectedFilesMap.delete(question.questionId);\r\n }\r\n const filesArray = Array.from(selectedFiles.keys());\r\n const fileNamesArray = filesArray.map(file => file.name);\r\n this.attachmentsQuestionMap.set(question.questionId, fileNamesArray);\r\n this.selectedFilesMap.set(question.questionId, selectedFiles);\r\n this.checkHasDuplicateFile();\r\n this.validateFileControls();\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n public createQuestionIssueLabel(question: EQueryCCQuestion): string {\r\n if (!question || (!question.issueType && !question.issueDescription)) {\r\n return '';\r\n }\r\n let resultLabel = '';\r\n if (question.issueType) {\r\n resultLabel = question.issueType;\r\n }\r\n if (question.issueDescription) {\r\n resultLabel = resultLabel ? `${resultLabel}/${question.issueDescription}` : question.issueDescription;\r\n }\r\n\r\n return resultLabel;\r\n }\r\n\r\n private createQuestionsControls(): void {\r\n if (!this.shouldBeRespondedValue || !this.questionsValue) {\r\n return;\r\n }\r\n this.questionsValue.forEach(question => {\r\n const control = new FormControl();\r\n const fileFormArray = new FileFormArray(false);\r\n this.setQuestionControlValidation(control);\r\n this.questionControls.set(question, control);\r\n this.subscription = combineLatest(control.valueChanges).subscribe(() => {\r\n if (!this.editorForm) {\r\n return;\r\n }\r\n this.validateFileControls();\r\n });\r\n this.questionFileFormArrays.set(question, fileFormArray);\r\n if (this.editorForm) {\r\n this.editorForm.addControl(String(question.questionId), control);\r\n } else {\r\n this.editorForm = new FormGroup({\r\n [String(question.questionId)]: control\r\n });\r\n }\r\n this.editorForm.addControl(`files_${question.questionId}`, fileFormArray);\r\n });\r\n if (this.editorForm) {\r\n this.editorForm.updateValueAndValidity({onlySelf: false});\r\n }\r\n }\r\n\r\n private setQuestionControlValidation(control: FormControl) {\r\n control.setValidators([maxLengthInBytes(this.textMaxBytes)]);\r\n control.updateValueAndValidity();\r\n }\r\n\r\n private pushQuestionResponses(responses: EQueryResponsePerQuestion[]): void {\r\n this.questionControls.forEach((formControl, keyQuestion) => {\r\n const wasResponded = (formControl.value && formControl.value.toString().trim())\r\n || this.attachmentsQuestionMap.has(keyQuestion.questionId);\r\n if (wasResponded) {\r\n responses.push({\r\n questionId: keyQuestion.questionId,\r\n responseText: formControl.value ? formControl.value.toString().trim() : ''\r\n });\r\n }\r\n });\r\n }\r\n\r\n private checkHasDuplicateFile() {\r\n this.hasDuplicateFile = false;\r\n this.duplicateFileNames = '';\r\n let duplicateFileNamesSet = new Set();\r\n let fileNamesSet = new Set();\r\n Array.from(this.attachmentsQuestionMap.values())\r\n .map(names => {\r\n names.forEach(name => {\r\n if (fileNamesSet.has(name)) {\r\n duplicateFileNamesSet.add(name);\r\n this.hasDuplicateFile = true;\r\n }\r\n fileNamesSet.add(name);\r\n });\r\n });\r\n this.duplicateFileNames = Array.from(duplicateFileNamesSet.values()).join(', ');\r\n }\r\n\r\n private createQuestionAttachmentsArray(): EQueryResponseAttachmentsPerQuestion[] {\r\n let result: EQueryResponseAttachmentsPerQuestion[] = [];\r\n this.attachmentsQuestionMap.forEach((namesArrayValue, keyQuestionId) => {\r\n result.push({questionId: keyQuestionId, attachmentNames: namesArrayValue});\r\n });\r\n return result;\r\n }\r\n\r\n private validateFileControls() {\r\n const textControls = Object.keys(this.editorForm.controls)\r\n .filter(s => !s.includes('files'))\r\n .map(s => ({key: s, value: this.editorForm.controls[s].value as string}));\r\n\r\n textControls.forEach(textControl => {\r\n const fileControl = this.editorForm.controls[`files_${textControl.key}`];\r\n if ((fileControl.value as File[]).length > 0) {\r\n if (!textControl.value) {\r\n fileControl.setErrors({fileError: true});\r\n } else {\r\n fileControl.setErrors({fileError: false});\r\n fileControl.updateValueAndValidity();\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","import {ChangeDetectionStrategy, Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {EQuerySubmittedResponse} from '../../models/e-query-submitted-response';\r\n\r\n@Component({\r\n selector: 'e-query-c-c-question-response',\r\n template: require('./e-query-c-c-question-response.component.html'),\r\n styles: [require('./e-query-c-c-question-response.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class EQueryCCQuestionResponseComponent {\r\n @Input()\r\n public responses: EQuerySubmittedResponse[];\r\n\r\n @Output()\r\n public downloadAttachmentClick = new EventEmitter();\r\n\r\n @Output()\r\n public previewAttachmentClick = new EventEmitter();\r\n}","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'e-query-comments',\r\n template: require('./e-query-comments.component.html'),\r\n styles: [require('./e-query-comments.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class EQueryCommentsComponent {\r\n @Input()\r\n public commentsText: string;\r\n\r\n @Input()\r\n public additionalComment: boolean;\r\n\r\n @Input()\r\n public readonly eQueryTextCtrl: FormControl;\r\n public readonly modules = {\r\n toolbar: [\r\n ['bold', 'italic', 'underline', 'strike'], // toggled buttons\r\n ['blockquote', 'code-block'],\r\n [{ 'header': 1 }, { 'header': 2 }], // custom button values\r\n [{ 'list': 'ordered' }, { 'list': 'bullet' }],\r\n [{ 'script': 'sub' }, { 'script': 'super' }], // superscript/subscript\r\n [{ 'indent': '-1' }, { 'indent': '+1' }], // outdent/indent\r\n [{ 'direction': 'rtl' }], // text direction\r\n [{ 'size': ['small', false, 'large', 'huge'] }], // custom dropdown\r\n [{ 'header': [1, 2, 3, 4, 5, 6, false] }],\r\n [{ 'color': [] as string[] }, { 'background': [] as string[] }], // dropdown with defaults from theme\r\n [{ 'font': [] as string[] }],\r\n [{ 'align': [] as string[] }],\r\n ['clean'], // remove formatting button\r\n ['link'] // link and image, video\r\n ]\r\n };\r\n\r\n constructor() {\r\n }\r\n public getTextFieldClasses(control: FormControl): string[] {\r\n return control && control.invalid ? ['is-invalid'] : [];\r\n }\r\n\r\n public onEQueryTextChanged($event: { html: string }) {\r\n if (this.eQueryTextCtrl) {\r\n this.eQueryTextCtrl.setValue($event.html);\r\n }\r\n }\r\n}","import { Component, ChangeDetectionStrategy, Input, EventEmitter, Output } from '@angular/core';\r\nimport { EQueryAttachment } from '../models/e-query-attachment';\r\n\r\n@Component({\r\n selector: 'e-query-attachments-list',\r\n template: require('./e-query-attachments-list.component.html'),\r\n styles: [require('./e-query-attachments-list.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class EQueryAttachmentsListComponent {\r\n @Input()\r\n public attachments: EQueryAttachment[];\r\n\r\n @Output()\r\n public downloadAttachmentClick = new EventEmitter();\r\n\r\n @Output()\r\n public previewAttachmentClick = new EventEmitter();\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { EQueryResponse } from '../../models/e-query-response';\r\nimport { EQueryCCQuestion } from '../../../admin/e-query/models/e-query-c-c-question';\r\nimport { EQuerySubmittedResponse } from '../../models/e-query-submitted-response';\r\nimport { EQueryAttachment } from '../../models/e-query-attachment';\r\nimport { OpenQuestionsComponent } from '../open-questions/open-questions.component';\r\nimport { ActivityLogger } from '../../../activities/activity-logger';\r\n\r\n@Component({\r\n selector: 'external-user-e-query-content-block',\r\n template: require('./external-user-e-query-content-block.component.html'),\r\n styles: [require('./external-user-e-query-content-block.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n\r\nexport class ExternalUserEQueryContentBlockComponent {\r\n @ViewChild(OpenQuestionsComponent)\r\n public openQuestionComponent: OpenQuestionsComponent;\r\n\r\n @Output()\r\n public submitResponse = new EventEmitter();\r\n \r\n @Output()\r\n public close = new EventEmitter();\r\n\r\n @Output()\r\n public previewResponseAttachment = new EventEmitter();\r\n @Output()\r\n public downloadResponseAttachment = new EventEmitter();\r\n\r\n @Output()\r\n public downloadAttachment = new EventEmitter();\r\n @Output()\r\n public previewAttachment = new EventEmitter();\r\n \r\n @Input()\r\n public accessionData: any;\r\n @Input()\r\n public screenResultUrl: any;\r\n @Input()\r\n public questions: EQueryCCQuestion[];\r\n @Input()\r\n public submittedResponses: EQuerySubmittedResponse[];\r\n @Input()\r\n public shouldBeResponded: boolean;\r\n @Input()\r\n public attachments: EQueryAttachment[];\r\n @Input()\r\n public comments: string;\r\n @Input()\r\n public status: string;\r\n @Input()\r\n public disableSubmit: boolean;\r\n\r\n public get canSubmit(): boolean {\r\n return !this.disableSubmit\r\n && this.openQuestionComponent.editorForm\r\n && this.openQuestionComponent.editorForm.valid\r\n && this.openQuestionComponent.wasAtLeastOneResponseAdded;\r\n }\r\n\r\n constructor(private readonly activityLogger: ActivityLogger) {}\r\n\r\n public submit() {\r\n const response: EQueryResponse = this.openQuestionComponent.createEQueryResponse();\r\n this.submitResponse.emit(response);\r\n this.sendRespondActivity();\r\n }\r\n\r\n private sendRespondActivity() {\r\n this.activityLogger.logActivity('Site Responds via Free Text');\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'agePipe'\r\n})\r\nexport class AgePipe implements PipeTransform {\r\n public transform(value: number, ...args: any[]): any {\r\n if (!value) {\r\n return '';\r\n }\r\n if (value > 365) {\r\n return `${(value / 365.25).toFixed()} years`;\r\n }\r\n\r\n if (value > 31) {\r\n return `${(value / 30.4167).toFixed()} months`;\r\n }\r\n\r\n return `${value} days`;\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { SharedModule } from '../shared';\r\nimport { UserModule } from '../user';\r\nimport { CovanceAgGridModule } from '../covance-ag-grid/covance-ag-grid.module';\r\nimport { GroupingModule } from '../grouping-selector';\r\nimport { CovanceFilterModule } from '../covance-filter';\r\nimport { LegendModule } from '../legend';\r\nimport { EQueryFilterDefinitions } from './e-query-filter-definitions';\r\nimport { ExternalUserEQueriesGridComponent } from './external-user-e-queries-grid/external-user-e-queries-grid.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SimpleTextFieldModule } from '../simple-text-field/simple-text-field.module';\r\nimport { EQueriesColumns } from './e-queries-columns';\r\nimport { ReadEQueryEmitter } from './read-e-query-emitter';\r\nimport { ExternalUserEQueriesColumns } from './e-queries-columns/external-user-e-queries-columns';\r\nimport {ExternalUserEQueriesFilterDefinitions} from './external-user-e-query-filter-definitions';\r\nimport { ExternalUserEQueriesGridDefaultSort } from './external-user-e-queries-grid-default-sort';\r\nimport {EQueriesFreeTextQuestionComponent} from './e-query-details/e-queries-free-text-question-input/e-queries-free-text-question.component';\r\nimport {ReactiveFormsModule} from '@angular/forms';\r\nimport {CovanceDatePickerModule} from '../covance-date-picker/covance-date-picker.module';\r\nimport {EQueryAccessionInfoComponent} from './accession-info/e-query-accession-info.component';\r\nimport {EQueryAttachmentsComponent} from './e-query-details/attachments/e-query-attachments.component';\r\nimport {EQueryDetailsTextFieldComponent} from './e-query-details/e-query-details-text-field/e-query-details-text-field.component';\r\nimport {EQueryAttachmentsDownloader} from './e-query-details/e-query-attachments-downloader';\r\nimport {CovanceFileUploadModule} from '../covance-file-upload/covance-file-upload.module';\r\nimport {EQueryDetailsStorage} from './e-query-details/e-query-details-storage';\r\nimport {EQueryCCQuestionComponent} from './e-query-details/e-query-cc-question/e-query-c-c-question.component';\r\nimport {OpenQuestionsComponent} from './e-query-details/open-questions/open-questions.component';\r\nimport {EQueryCCQuestionResponseComponent} from './e-query-details/e-query-cc-question-response/e-query-c-c-question-response.component';\r\nimport { EQueryCommentsComponent } from './e-query-details/e-query-comments/e-query-comments.component';\r\nimport { EQueryAttachmentsListComponent } from './e-query-attachments-list/e-query-attachments-list.component';\r\nimport {ExternalUserEQueryContentBlockComponent} from './e-query-details/external-user-e-query-content-block/external-user-e-query-content-block.component';\r\nimport { AgePipe } from './accession-info/accession-age.pipe';\r\nimport { QuillModule } from 'ngx-quill';\r\n\r\n@NgModule({\r\n imports: [\r\n SharedModule,\r\n UserModule,\r\n CovanceAgGridModule,\r\n GroupingModule,\r\n CovanceFilterModule,\r\n LegendModule,\r\n CommonModule,\r\n SimpleTextFieldModule,\r\n ReactiveFormsModule,\r\n CovanceDatePickerModule,\r\n CovanceFileUploadModule,\r\n QuillModule\r\n ],\r\n declarations: [\r\n ExternalUserEQueriesGridComponent,\r\n EQueriesFreeTextQuestionComponent,\r\n EQueryAccessionInfoComponent,\r\n EQueryAttachmentsComponent,\r\n EQueryDetailsTextFieldComponent,\r\n EQueryCCQuestionComponent,\r\n OpenQuestionsComponent,\r\n EQueryCCQuestionResponseComponent,\r\n EQueryCommentsComponent,\r\n EQueryAttachmentsListComponent,\r\n ExternalUserEQueryContentBlockComponent,\r\n AgePipe\r\n ],\r\n entryComponents: [\r\n ],\r\n providers: [\r\n EQueryFilterDefinitions,\r\n EQueriesColumns,\r\n ReadEQueryEmitter,\r\n ExternalUserEQueriesColumns, \r\n ExternalUserEQueriesFilterDefinitions,\r\n ExternalUserEQueriesGridDefaultSort,\r\n EQueryAttachmentsDownloader,\r\n EQueryDetailsStorage\r\n ],\r\n exports: [\r\n ExternalUserEQueriesGridComponent,\r\n EQueriesFreeTextQuestionComponent,\r\n EQueryAccessionInfoComponent,\r\n EQueryAttachmentsComponent,\r\n EQueryDetailsTextFieldComponent,\r\n EQueryCCQuestionComponent,\r\n OpenQuestionsComponent,\r\n EQueryCCQuestionResponseComponent,\r\n EQueryCommentsComponent,\r\n ExternalUserEQueryContentBlockComponent,\r\n EQueryAttachmentsListComponent,\r\n ]\r\n})\r\nexport class EQueriesModule {\r\n}\r\n","import {ChangeDetectionStrategy, Component, ViewChild, Inject} from '@angular/core';\r\nimport {MdlDialogService} from '@angular-mdl/core';\r\nimport {EQueryDetailsStorage} from '../../../../e-queries/e-query-details/e-query-details-storage';\r\nimport {Settings, UrlBuilder} from '../../../../core';\r\nimport {map, publishReplay, refCount, take} from 'rxjs/operators';\r\nimport {BehaviorSubject, combineLatest, Observable} from 'rxjs';\r\nimport {routeParams} from '../../../../shared/route-helpers';\r\nimport {ActivatedRoute} from '@angular/router';\r\nimport {ExternalEQueryAccessionInfo} from '../../../../e-queries/accession-info/external-e-query-accession-info';\r\nimport {EQueryInfo} from '../../../../e-queries/models/e-query-info';\r\nimport {EQueryAttachment} from '../../../../e-queries/models/e-query-attachment';\r\nimport { ExternalUserReadEQueryEmitter, ReadEQueryEmitter } from '../../../../e-queries/read-e-query-emitter';\r\nimport {EQueryResponse} from '../../../../e-queries/models/e-query-response';\r\nimport {InvestigatorSitesStorage} from '../../../../sites';\r\nimport {GlobalPopupComponent} from '../../../../global-popup';\r\nimport { InvestigatorEQueriesStorage } from '../../investigator-e-queries-storage';\r\nimport { InvestigatorEQueriesCountersStorage } from '../../investigator-e-queries-counters-storage';\r\nimport {EQueryAttachmentsDownloader} from '../../../../e-queries/e-query-details/e-query-attachments-downloader';\r\nimport { ActivityLogger } from '../../../../activities/activity-logger';\r\nimport {EQuerySubmittedResponse} from '../../../../e-queries/models/e-query-submitted-response';\r\nimport {EQueryCCQuestion} from '../../../../admin/e-query/models/e-query-c-c-question';\r\nimport { ActivitySiteDetail } from '../../../../activities/activity-data';\r\n\r\n@Component({\r\n selector: 'investigator-e-query-details-dialog',\r\n template: require('./investigator-e-query-details-dialog.component.html'),\r\n styles: [require('./investigator-e-query-details-dialog.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class InvestigatorEQueryDetailsDialogComponent {\r\n public accessionData$: Observable;\r\n public eQueryData$: Observable;\r\n public attachments$: Observable;\r\n public comments$: Observable;\r\n public screenResultUrl$: Observable;\r\n public submittedResponses$: Observable;\r\n public questions$: Observable;\r\n public shouldBeResponded$: Observable;\r\n public status$: Observable;\r\n public age$: Observable;\r\n public isActiveSubmit$ = new BehaviorSubject(false);\r\n\r\n @ViewChild(GlobalPopupComponent)\r\n private popup: GlobalPopupComponent;\r\n private eQueryId: number;\r\n\r\n constructor(\r\n private readonly dialogService: MdlDialogService,\r\n private readonly route: ActivatedRoute,\r\n private readonly storage: EQueryDetailsStorage,\r\n private readonly investigatorSiteStorage: InvestigatorSitesStorage,\r\n private readonly settings: Settings,\r\n @Inject(ReadEQueryEmitter) private readonly readEQueryEmitter: ExternalUserReadEQueryEmitter,\r\n private readonly urlBuilder: UrlBuilder,\r\n private readonly eQueriesStorage: InvestigatorEQueriesStorage,\r\n private readonly eQueriesCountersStorage: InvestigatorEQueriesCountersStorage,\r\n private readonly eQueryAttachmentsDownloader: EQueryAttachmentsDownloader,\r\n readonly activityLogger: ActivityLogger,\r\n ) {\r\n this.eQueryDetailsCreation();\r\n this.logEQueryActivity();\r\n }\r\n\r\n public async downloadAttachment(attachmentId: number): Promise {\r\n return this.eQueryAttachmentsDownloader.downloadInvestigatorAttachment(attachmentId, this.eQueryId);\r\n }\r\n\r\n public async previewAttachment(attachmentId: number): Promise {\r\n return this.eQueryAttachmentsDownloader.previewInvestigatorAttachment(attachmentId, this.eQueryId);\r\n }\r\n\r\n public async downloadResponseAttachment(attachmentId: number): Promise {\r\n return this.eQueryAttachmentsDownloader.downloadResponseAttachmentWithTracking(attachmentId);\r\n }\r\n\r\n public async previewResponseAttachment(attachmentId: number): Promise {\r\n return this.eQueryAttachmentsDownloader.previewResponseAttachment(attachmentId);\r\n }\r\n\r\n public async response(response: EQueryResponse) {\r\n try {\r\n this.isActiveSubmit$.next(true);\r\n await this.storage.createEQueryResponse(this.eQueryId, response).toPromise();\r\n const accessionData = await this.accessionData$.pipe(take(1)).toPromise();\r\n this.eQueriesCountersStorage.decreaseCounters(accessionData.siteId, [this.eQueryId]);\r\n this.eQueriesStorage.forceLoadEQueries();\r\n this.close();\r\n } finally {\r\n this.isActiveSubmit$.next(false);\r\n }\r\n }\r\n\r\n public close() {\r\n this.popup.onBackToPortal();\r\n }\r\n\r\n public onPopupClosing() {\r\n this.readEQuery();\r\n }\r\n\r\n private async logEQueryActivity() {\r\n const accession = await this.accessionData$.pipe(take(1)).toPromise();\r\n this.activityLogger.logAccessEQueryDetailView(new ActivitySiteDetail(accession.siteId));\r\n }\r\n\r\n private eQueryDetailsCreation(): void {\r\n const eQueryId$ = this.route.params.pipe(map(x => {\r\n const eQueryId = x[routeParams.eQueryId] as string | undefined;\r\n return this.eQueryId = parseInt(eQueryId, 10);\r\n }));\r\n const eQueryDetails$ = this.storage.getInvestigatorEQueryDetails(eQueryId$);\r\n\r\n this.eQueryData$ = eQueryDetails$.pipe(map(x => x.eQueryData));\r\n this.accessionData$ = eQueryDetails$.pipe(map(x => x.accessionData));\r\n this.attachments$ = eQueryDetails$.pipe(map(x => x.attachments));\r\n this.comments$ = eQueryDetails$.pipe(map(x => x.eQueryData.commentText));\r\n this.questions$ = eQueryDetails$.pipe(map(x => x.questions));\r\n this.shouldBeResponded$ = eQueryDetails$.pipe(map(x => x.eQueryData.shouldBeResponded));\r\n this.submittedResponses$ = eQueryDetails$.pipe(map(x => x.responseDetails));\r\n this.status$ = eQueryDetails$.pipe(map(x => x.eQueryData.statusName));\r\n this.age$ = eQueryDetails$.pipe(map(x => x.eQueryData.eQueryAge.formattedValue));\r\n\r\n this.screenResultUrl$ = combineLatest([this.investigatorSiteStorage.loadSites(), this.accessionData$]).pipe(\r\n map(([sites, accession]) => {\r\n const site = sites.find(item => item.siteId === accession.siteId);\r\n const url = this.urlBuilder\r\n .esa()\r\n .site(site)\r\n .onScreenResults()\r\n .standardTestResults()\r\n .testResults()\r\n .url();\r\n return url;\r\n }),\r\n publishReplay(1),\r\n refCount());\r\n }\r\n\r\n private async readEQuery() {\r\n const eQueryData = await this.eQueryData$.pipe(take(1)).toPromise();\r\n\r\n this.readEQueryEmitter.emit({\r\n eQueryId: eQueryData.eQueryId,\r\n afterRead: eq => {\r\n if (eq.eQueryStatus !== eQueryData.statusName) {\r\n this.eQueriesStorage.forceLoadEQueries();\r\n }\r\n eq.eQueryStatus = eQueryData.statusName; \r\n },\r\n });\r\n }\r\n}\r\n","import { ExternalUserEQueriesColumns } from '../../../e-queries/e-queries-columns/external-user-e-queries-columns';\r\nimport { map, publishReplay, refCount } from 'rxjs/operators';\r\nimport { ExternalUserEQuery } from '../../../e-queries/models/external-user-e-query';\r\nimport { Observable } from 'rxjs';\r\nimport { CovanceGridColumn } from '../../../covance-ag-grid';\r\nimport { Site } from '../../../sites';\r\nimport { GridColumns } from '../../../shared/grid-columns';\r\nimport { EQueriesColumns } from '../../../e-queries/e-queries-columns';\r\nimport { UrlBuilder } from '../../../core';\r\nimport { Injectable } from '@angular/core';\r\nimport { SubjectTitleRenderer } from '../../../renderer/subject-title-renderer';\r\n\r\n@Injectable()\r\nexport class InvestigatorEQueriesColumns {\r\n constructor(\r\n private readonly gridColumns: GridColumns,\r\n private readonly eQueriesColumns: EQueriesColumns,\r\n private readonly urlBuilder: UrlBuilder,\r\n private readonly externalUserEQueriesColumns: ExternalUserEQueriesColumns\r\n ) {\r\n }\r\n\r\n public getAwaitingColumns(site$: Observable): Observable {\r\n return site$.pipe(\r\n map(site => [\r\n this.externalUserEQueriesColumns.viewHistory,\r\n this.eQueriesColumns.eQueryIdColumn(\r\n params =>\r\n this.urlBuilder\r\n .esa()\r\n .globalPopup()\r\n .investigatorEQueryDetails(params.data.eQueryId)\r\n .url()),\r\n this.externalUserEQueriesColumns.status,\r\n this.eQueriesColumns.ageColumn(),\r\n this.gridColumns.subjectColumn(\r\n params =>\r\n this.urlBuilder\r\n .esa()\r\n .site(site)\r\n .subject({zcSubjectId: params.data.zcSubjectId})\r\n .url(),\r\n data => SubjectTitleRenderer.renderSubjectNumberOrScreening(data)),\r\n this.gridColumns.accessionNumberColumn(\r\n params =>\r\n this.urlBuilder\r\n .esa()\r\n .site(site)\r\n .onScreenResults()\r\n .standardTestResults()\r\n .testResults()\r\n .url(),\r\n data => [data.accessionNumber],\r\n ),\r\n this.externalUserEQueriesColumns.visitCollectionDate,\r\n this.externalUserEQueriesColumns.visitName,\r\n this.externalUserEQueriesColumns.protocolVisitCode,\r\n ]),\r\n publishReplay(1),\r\n refCount(),\r\n );\r\n }\r\n\r\n public getSubmittedColumns(site$: Observable): Observable {\r\n return site$.pipe(\r\n map(site => [\r\n this.eQueriesColumns.eQueryIdColumn(\r\n params =>\r\n this.urlBuilder\r\n .esa()\r\n .globalPopup()\r\n .investigatorEQueryDetails(params.data.eQueryId)\r\n .url()),\r\n this.externalUserEQueriesColumns.status,\r\n this.gridColumns.subjectColumn(\r\n params =>\r\n this.urlBuilder\r\n .esa()\r\n .site(site)\r\n .subject({zcSubjectId: params.data.zcSubjectId})\r\n .url(),\r\n data => SubjectTitleRenderer.renderSubjectNumberOrScreening(data)),\r\n this.gridColumns.accessionNumberColumn(\r\n params =>\r\n this.urlBuilder\r\n .esa()\r\n .site(site)\r\n .onScreenResults()\r\n .standardTestResults()\r\n .testResults()\r\n .url(),\r\n data => [data.accessionNumber],\r\n ),\r\n this.externalUserEQueriesColumns.visitCollectionDate,\r\n this.externalUserEQueriesColumns.visitName,\r\n this.externalUserEQueriesColumns.protocolVisitCode,\r\n this.eQueriesColumns.responders(),\r\n this.externalUserEQueriesColumns.responseTime\r\n ]),\r\n publishReplay(1),\r\n refCount(),\r\n );\r\n }\r\n}\r\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { CovanceGridColumn } from '../../../../covance-ag-grid';\r\nimport { Observable } from 'rxjs';\r\nimport { map, tap } from 'rxjs/operators';\r\nimport { routeData } from '../../../../shared/route-helpers';\r\nimport { Site } from '../../../../sites';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { InvestigatorEQueriesColumns } from '../investigator-e-queries-columns';\r\nimport { EQueryTab } from '../../../../e-queries/models/e-query-tab.enum';\r\nimport { ExternalUserEQueriesFilterDefinitions } from '../../../../e-queries/external-user-e-query-filter-definitions';\r\nimport { FilterFieldValue } from '../../../../covance-filter';\r\nimport { ActivityLogger } from '../../../../activities/activity-logger';\r\n\r\n@Component({\r\n selector: 'investigator-awaiting-e-queries',\r\n template: require('./investigator-awaiting-e-queries.component.html'),\r\n styles: [require('./investigator-awaiting-e-queries.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class InvestigatorAwaitingEQueriesComponent {\r\n public eQueryTab: EQueryTab;\r\n public columns$: Observable;\r\n public filterDefs: FilterFieldValue[];\r\n constructor(investigatorEQueriesColumns: InvestigatorEQueriesColumns,\r\n route: ActivatedRoute,\r\n externalUserEQueriesFilterDef: ExternalUserEQueriesFilterDefinitions,\r\n activityLogger: ActivityLogger,\r\n ) {\r\n this.filterDefs = externalUserEQueriesFilterDef.getAwaitingFilterDefinitions();\r\n const selectedSite = route.parent.parent.data.pipe(\r\n tap(() => this.eQueryTab = EQueryTab.awaiting),\r\n map(d => d[routeData.selectedSite] as Site));\r\n this.columns$ = investigatorEQueriesColumns.getAwaitingColumns(selectedSite);\r\n activityLogger.logActivity('Access a Query List View');\r\n }\r\n}\r\n\r\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport {map, tap} from 'rxjs/operators';\r\nimport {routeData} from '../../../../shared/route-helpers';\r\nimport {Site} from '../../../../sites';\r\nimport {Observable} from 'rxjs';\r\nimport {CovanceGridColumn} from '../../../../covance-ag-grid';\r\nimport {InvestigatorEQueriesColumns} from '../investigator-e-queries-columns';\r\nimport {EQueryTab} from '../../../../e-queries/models/e-query-tab.enum';\r\nimport {ExternalUserEQueriesFilterDefinitions} from '../../../../e-queries/external-user-e-query-filter-definitions';\r\nimport {FilterFieldValue} from '../../../../covance-filter';\r\nimport { ActivityLogger } from '../../../../activities/activity-logger';\r\n\r\n@Component({\r\n selector: 'investigator-submitted-e-queries',\r\n template: require('./investigator-submitted-e-queries.component.html'),\r\n styles: [require('./investigator-submitted-e-queries.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class InvestigatorSubmittedEQueriesComponent {\r\n public eQueryTab: EQueryTab;\r\n public filterDefs: FilterFieldValue[];\r\n public columns$: Observable;\r\n constructor(investigatorEQueriesColumns: InvestigatorEQueriesColumns,\r\n route: ActivatedRoute,\r\n externalUserEQueriesFilterDef: ExternalUserEQueriesFilterDefinitions,\r\n activityLogger: ActivityLogger,\r\n ) {\r\n this.filterDefs = externalUserEQueriesFilterDef.getSubmittedFilterDefinitions();\r\n const selectedSite = route.parent.parent.data.pipe(\r\n tap(() => this.eQueryTab = EQueryTab.submitted),\r\n map(d => d[routeData.selectedSite] as Site));\r\n this.columns$ = investigatorEQueriesColumns.getSubmittedColumns(selectedSite);\r\n activityLogger.logActivity('Access a Query List View');\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { map, publishReplay, refCount } from 'rxjs/operators';\r\nimport { UrlBuilder } from '../../../core';\r\nimport { TabCategory } from '../../../documents';\r\nimport { routeData } from '../../../shared/route-helpers';\r\nimport { Site } from '../../../sites';\r\n\r\n@Component({\r\n selector: 'investigator-tabs',\r\n template: require('./investigator-e-query-tabs.component.html'),\r\n styles: [require('./investigator-e-query-tabs.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class InvestigatorEQueryTabsComponent {\r\n public readonly tabs$: Observable;\r\n\r\n constructor(urlBuilder: UrlBuilder, route: ActivatedRoute) {\r\n const site$ = route.parent.data.pipe(map(d => d[routeData.selectedSite] as Site));\r\n this.tabs$ = site$.pipe(\r\n map(site => {\r\n const tabs: TabCategory[] = [];\r\n\r\n const awaitingResponse = urlBuilder\r\n .esa()\r\n .site(site)\r\n .eQueries()\r\n .awaitingResponse()\r\n .url();\r\n\r\n tabs.push({ name: 'Awaiting Response', url: awaitingResponse });\r\n\r\n const responseSubmittedUrl = urlBuilder\r\n .esa()\r\n .site(site)\r\n .eQueries()\r\n .responseSubmitted()\r\n .url();\r\n\r\n tabs.push({ name: 'Response Submitted', url: responseSubmittedUrl });\r\n\r\n return tabs;\r\n }),\r\n publishReplay(1),\r\n refCount(),\r\n );\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Inject, Input } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { CovanceGridColumn } from '../../../covance-ag-grid';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { routeData } from '../../../shared/route-helpers';\r\nimport { map } from 'rxjs/operators';\r\nimport { Site } from '../../../sites';\r\nimport { EQUERIES_STORAGE } from '../../../e-queries/external-user-e-queries-storage';\r\nimport { InvestigatorEQueriesStorage } from '../investigator-e-queries-storage';\r\nimport {EQueryTab} from '../../../e-queries/models/e-query-tab.enum';\r\nimport {FilterFieldValue} from '../../../covance-filter';\r\n\r\n@Component({\r\n selector: 'investigator-e-query-grid',\r\n template: require('./investigator-e-query-grid.component.html'),\r\n styles: [require('./investigator-e-query-grid.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n { provide: EQUERIES_STORAGE, useExisting: InvestigatorEQueriesStorage }\r\n ],\r\n})\r\nexport class InvestigatorEQueryGridComponent {\r\n @Input()\r\n public showReadByMe = true;\r\n @Input()\r\n public columns: CovanceGridColumn[];\r\n @Input()\r\n public eQueryTab: EQueryTab;\r\n @Input()\r\n public filterDefs: FilterFieldValue[];\r\n @Input()\r\n public siteId$: Observable;\r\n constructor(route: ActivatedRoute) {\r\n const selectedSite = route.parent.parent.data.pipe(map(d => d[routeData.selectedSite] as Site));\r\n this.siteId$ = selectedSite.pipe(map(s => s.siteId));\r\n }\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {InvestigatorEQueryDetailsDialogComponent} from './e-query-details/investigator-e-query-details-dialog.component';\r\nimport {SharedModule} from '../../../shared';\r\nimport {SimpleTextFieldModule} from '../../../simple-text-field/simple-text-field.module';\r\nimport {GlobalPopupModule} from '../../../global-popup';\r\nimport { InvestigatorAwaitingEQueriesComponent } from './awaiting/investigator-awaiting-e-queries.component';\r\nimport { InvestigatorSubmittedEQueriesComponent } from './submitted/investigator-submitted-e-queries.component';\r\nimport { InvestigatorEQueryTabsComponent } from './investigator-e-query-tabs.component';\r\nimport { InvestigatorEQueryGridComponent } from './investigator-e-query-grid.component';\r\nimport { EQueriesModule } from '../../../e-queries/e-queries.module';\r\nimport { InvestigatorEQueriesColumns } from './investigator-e-queries-columns';\r\nimport {ReactiveFormsModule} from '@angular/forms';\r\nimport {CovanceFileUploadModule} from '../../../covance-file-upload/covance-file-upload.module';\r\n\r\nexport const COMPONENTS = [\r\n InvestigatorAwaitingEQueriesComponent,\r\n InvestigatorSubmittedEQueriesComponent,\r\n InvestigatorEQueryTabsComponent,\r\n InvestigatorEQueryGridComponent,\r\n InvestigatorEQueryDetailsDialogComponent\r\n];\r\n\r\n@NgModule({\r\n declarations: [COMPONENTS],\r\n exports: [COMPONENTS],\r\n imports: [\r\n CommonModule,\r\n SharedModule,\r\n SimpleTextFieldModule,\r\n GlobalPopupModule,\r\n ReactiveFormsModule,\r\n GlobalPopupModule,\r\n EQueriesModule,\r\n CovanceFileUploadModule,\r\n ],\r\n entryComponents: [\r\n InvestigatorEQueryDetailsDialogComponent\r\n ],\r\n providers: [\r\n InvestigatorEQueriesColumns\r\n ]\r\n})\r\n\r\nexport class InvestigatorEQueryModule { }\r\n","import { CorporateModule } from './../corporate/corporate.module';\r\nimport { InvestigatorGuard } from './investigator-guard';\r\nimport { NgModule } from '@angular/core';\r\nimport { DocumentsModule } from '../documents/documents.module';\r\nimport { NavigationModule } from '../navigation/navigation.module';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { DocumentsTabsComponent } from './documents-tabs.component';\r\nimport { DocumentsWithChildCategoriesComponent } from './documents-with-child-categories.component';\r\nimport { DocumentsComponent } from './documents.component';\r\nimport { GeneralDocumentsGuard } from './general-documents-guard';\r\nimport { LabReportsComponent } from './lab-reports.component';\r\nimport { KitInventoryComponent } from './kitinventory/kit-inventory.component';\r\nimport { KitInventoryDetailComponent } from './kitinventory/kit-inventory-detail.component';\r\nimport { KitInventoryStorage } from './kitinventory/kit-inventory-storage';\r\nimport { KitInventoryColumns } from './kitinventory/kit-inventory-columns';\r\nimport { InvestigatorNavigationComponent } from './navigation/investigator-navigation.component';\r\nimport { SingleCategoryDocumentsGuard } from './single-category-documents-guard';\r\nimport { SiteSpecificCategoriesResolver } from './site-specific-categories-resolver';\r\nimport { InvestigatorReportsStorage } from './investigator-reports-storage';\r\nimport { InvestigatorUnreadReportsStorage } from './investigator-unread-reports-storage';\r\nimport { InvestigatorLevelComponent } from './investigator-level.component';\r\nimport { InvestigatorMicrobiologyComponent } from './microbiology/investigator-microbiology.component';\r\nimport { MicrobiologyDataModule } from '../on-screen-results';\r\nimport { SelectedSubjectLabResultsStorage } from './subjects/selected-subject-lab-results-storage';\r\nimport { SelectedSubjectResolver } from './subjects/selected-subject-resolver';\r\nimport { SubjectsListResolver } from './subjects/subjects-list-resolver';\r\nimport { SubjectsRootComponent } from './subjects/subjects-root.component';\r\nimport { SubjectsModule } from '../subjects/subjects.module';\r\nimport { SubjectsNavigationComponent } from './subjects/subjects-navigation.component';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { InvestigatorEQueriesCountersStorage } from './e-queries/investigator-e-queries-counters-storage';\r\nimport { InvestigatorEQueriesStorage } from './e-queries/investigator-e-queries-storage';\r\nimport { ExternalUserFilterUrlParamsPreparer } from '../e-queries/external-user-filter-url-params-preparer';\r\nimport { EQueriesModule } from '../e-queries/e-queries.module';\r\nimport { GlobalPopupModule } from '../global-popup';\r\nimport { InvestigatorEQueryModule } from './e-queries/investigator-e-query/investigator-e-query.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n InvestigatorNavigationComponent,\r\n DocumentsComponent,\r\n LabReportsComponent,\r\n KitInventoryComponent,\r\n KitInventoryDetailComponent,\r\n DocumentsTabsComponent,\r\n DocumentsWithChildCategoriesComponent,\r\n InvestigatorLevelComponent,\r\n InvestigatorMicrobiologyComponent,\r\n SubjectsRootComponent,\r\n SubjectsNavigationComponent,\r\n ],\r\n imports: [\r\n SharedModule,\r\n ReactiveFormsModule,\r\n DocumentsModule,\r\n NavigationModule,\r\n MicrobiologyDataModule,\r\n CorporateModule,\r\n SubjectsModule,\r\n EQueriesModule,\r\n InvestigatorEQueryModule,\r\n GlobalPopupModule,\r\n ],\r\n providers: [\r\n InvestigatorReportsStorage,\r\n SiteSpecificCategoriesResolver,\r\n SingleCategoryDocumentsGuard,\r\n GeneralDocumentsGuard,\r\n InvestigatorUnreadReportsStorage,\r\n InvestigatorGuard,\r\n SelectedSubjectLabResultsStorage,\r\n SelectedSubjectResolver,\r\n SubjectsListResolver,\r\n KitInventoryStorage,\r\n KitInventoryColumns,\r\n InvestigatorEQueriesCountersStorage,\r\n ExternalUserFilterUrlParamsPreparer,\r\n InvestigatorEQueriesStorage\r\n ],\r\n entryComponents: [\r\n KitInventoryDetailComponent\r\n ],\r\n})\r\nexport class InvestigatorModule { }\r\n","import { Observable, of } from 'rxjs';\r\nimport { UrlBuilder } from '../core';\r\nimport { Category } from '../documents';\r\n\r\nexport class NotificationBarItem {\r\n public url: string[];\r\n\r\n private totalCounter: Observable;\r\n\r\n public get categoryName(): string { return this.category.name; }\r\n\r\n public get categoryClassName(): string { return this.category.categoryId; }\r\n\r\n public get counter(): Observable { return this.totalCounter; }\r\n\r\n public get icon(): string { return this.category.icon; }\r\n\r\n public get showCounter(): boolean { return !!this.unreadCounter; }\r\n\r\n public get disabled() {\r\n return !this.totalDocs;\r\n }\r\n\r\n constructor(\r\n private category: Category,\r\n private urlBuilder: UrlBuilder,\r\n private totalDocs: number,\r\n private unreadCounter?: number\r\n ) {\r\n this.totalCounter = of(unreadCounter);\r\n\r\n this.url = this.createUrl();\r\n }\r\n\r\n private createUrl(): string[] {\r\n return this.category.children.length\r\n ? this.urlBuilder\r\n .esa()\r\n .globalPopup()\r\n .generalDocuments(this.category)\r\n .category(this.category.children[0])\r\n .url()\r\n : this.urlBuilder\r\n .esa()\r\n .globalPopup()\r\n .generalDocuments(this.category)\r\n .url();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { NotificationBarItem } from './notification-bar-item';\r\nimport { UrlBuilder } from '../core/url-builder/url-builder';\r\nimport { Observable, ConnectableObservable, combineLatest } from 'rxjs';\r\nimport { map, publishReplay } from 'rxjs/operators';\r\nimport { sumBy } from 'lodash';\r\nimport { CategoriesStorage } from '../documents';\r\nimport { GeneralUnreadReportsStorage } from '../general-documents/general-unread-reports-storage';\r\n\r\n@Injectable()\r\nexport class NotificationBarContent {\r\n public get items(): Observable {\r\n\r\n // No need for unsubscribe.\r\n // It's always used. There is at least one layout component (dashboard-level-layout or site-level-layout) subscribed on items.\r\n // Both layout components will be destroyed but only after page closing.\r\n this.allNotificationsBatItems.connect();\r\n\r\n return this.allNotificationsBatItems;\r\n }\r\n\r\n private readonly allNotificationsBatItems: ConnectableObservable;\r\n\r\n constructor(\r\n unreadReportsRegistry: GeneralUnreadReportsStorage,\r\n private categoriesStorage: CategoriesStorage,\r\n private urlBuilder: UrlBuilder\r\n ) {\r\n this.allNotificationsBatItems =\r\n combineLatest(this.categoriesStorage.generalCategories, unreadReportsRegistry.allUnread)\r\n .pipe(\r\n map(([generalCategories, allUnread]) =>\r\n generalCategories.map(c => {\r\n const categories = allUnread.filter(u => u.rootCategoryId === c.categoryId);\r\n const unreadReportCounter = sumBy(categories, r => r.totalUnread);\r\n const totalDocs = sumBy(categories, r => r.totalDocs);\r\n return new NotificationBarItem(c, this.urlBuilder, totalDocs, unreadReportCounter);\r\n })\r\n ),\r\n publishReplay(1)\r\n ) as ConnectableObservable;\r\n }\r\n}","import { Component, Input, ChangeDetectionStrategy } from '@angular/core';\r\nimport { ActivatedRoute, Params } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { noop } from 'lodash';\r\n\r\nexport class NotificationIconTypes {\r\n public static readonly routerLink = 'routerLink';\r\n public static readonly link = 'link';\r\n public static readonly button = 'button';\r\n}\r\n\r\n@Component({\r\n selector: 'notification-icon',\r\n template: require('./notification-icon.component.html'),\r\n styles: [require('./notification-icon.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class NotificationIconComponent {\r\n @Input()\r\n public totalCount: Observable = null;\r\n\r\n @Input()\r\n public icon: string = null;\r\n\r\n @Input()\r\n public iconClassName: string = null;\r\n\r\n @Input()\r\n public onIconClick: (e: Event) => void = noop;\r\n\r\n @Input()\r\n public tooltipText: string;\r\n\r\n @Input()\r\n public url: string[];\r\n\r\n @Input()\r\n public showCounter: boolean;\r\n\r\n @Input()\r\n public hrefUrl: string;\r\n\r\n @Input()\r\n public shouldOpenInNewTab: boolean;\r\n\r\n @Input()\r\n public disabled = true;\r\n\r\n @Input()\r\n public iconType: string = NotificationIconTypes.routerLink;\r\n\r\n public queryParams: Observable;\r\n public notificationIconTypes = NotificationIconTypes;\r\n\r\n constructor(route: ActivatedRoute) {\r\n this.queryParams = route.queryParams;\r\n }\r\n}","'use strict';\r\nimport { Component} from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { NotificationBarContent } from './notification-bar-content';\r\nimport { NotificationBarItem } from './notification-bar-item';\r\nimport { Link } from '../core';\r\nimport { NotificationIconTypes } from './notification-icon.component';\r\n\r\n@Component({\r\n selector: 'notification-bar',\r\n template: require('./notification-bar.component.html')\r\n})\r\nexport class NotificationBarComponent {\r\n public notificationBarItems: Observable;\r\n public helpCenterLink: Link;\r\n public notificationIconTypes = NotificationIconTypes;\r\n\r\n constructor(\r\n private notificationBarContent: NotificationBarContent\r\n ) {\r\n this.notificationBarItems = this.notificationBarContent.items;\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { InvestigatorModule } from '../investigator/investigator.module';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { SitesModule } from '../sites/sites.module';\r\nimport { NotificationBarContent } from './notification-bar-content';\r\nimport { NotificationBarComponent } from './notification-bar.component';\r\nimport { NotificationIconComponent } from './notification-icon.component';\r\n\r\n@NgModule({\r\n declarations: [NotificationBarComponent, NotificationIconComponent],\r\n imports: [SharedModule, InvestigatorModule, SitesModule],\r\n exports: [NotificationBarComponent, NotificationIconComponent],\r\n providers: [NotificationBarContent]\r\n})\r\nexport class NotificationBarModule { }","import { MdlDialogService } from '@angular-mdl/core';\r\nimport { Injectable } from '@angular/core';\r\nimport { map } from 'rxjs/operators';\r\nimport { find, isNil } from 'lodash';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { ActivityLogger } from '../activities/activity-logger';\r\nimport { ToolBarMenuItem } from './toolbar-menu-item';\r\nimport { Settings, UrlBuilder } from '../core';\r\nimport { UserStorage } from '../user';\r\n\r\n@Injectable()\r\nexport class ToolbarMenuContent {\r\n\r\n private static readonly pwmLink = 'forgot-password';\r\n\r\n constructor(\r\n private readonly settings: Settings,\r\n private readonly urlBuilder: UrlBuilder,\r\n private readonly userStorage: UserStorage,\r\n private readonly dialogService: MdlDialogService,\r\n private readonly activityLogger: ActivityLogger,\r\n ) { }\r\n\r\n public getMenuItems(): Observable {\r\n const result = this.userStorage.currentUser.pipe(\r\n map(currentUser => {\r\n const menuItems: ToolBarMenuItem[] = [\r\n {\r\n itemText: 'User Settings',\r\n action: () => {\r\n this.urlBuilder\r\n .esa()\r\n .globalPopup()\r\n .user(currentUser.metadata.userId)\r\n .navigate({ preserveQueryParams: true });\r\n },\r\n needsDivider: true\r\n }\r\n ];\r\n\r\n if (!isNil(this.settings.emulatedUserId)) {\r\n menuItems.push(\r\n {\r\n itemText: 'Stop User Emulation',\r\n action: async () => {\r\n await this.activityLogger.logUserEmulationActivity('EndEmulation', this.settings.emulatedUserId);\r\n this.urlBuilder.esa().reload();\r\n }\r\n }\r\n );\r\n }\r\n\r\n menuItems.push(...[\r\n {\r\n itemText: 'Terms and Conditions',\r\n action: () => {\r\n this.urlBuilder\r\n .esa()\r\n .globalPopup()\r\n .terms()\r\n .navigate({ preserveQueryParams: true });\r\n }\r\n },\r\n {\r\n itemText: 'Password Manager',\r\n action: async () => {\r\n try {\r\n this.settings.linksDictionary[ToolbarMenuContent.pwmLink].navigate();\r\n } catch (e) { }\r\n }\r\n },\r\n {\r\n itemText: 'Logout',\r\n action: async () => {\r\n try {\r\n await this.dialogService.confirm('Are you sure you want to logout?', 'No', 'Yes', 'Logout').toPromise();\r\n await this.activityLogger.refreshUserSession();\r\n this.urlBuilder\r\n .esa()\r\n .logout()\r\n .navigate({ saveReturnUrl: true });\r\n } catch (e) { }\r\n }\r\n }\r\n ]);\r\n\r\n return menuItems;\r\n })\r\n );\r\n\r\n return result;\r\n }\r\n\r\n public getMenuItem(itemText: string): Observable {\r\n return this.getMenuItems()\r\n .pipe(\r\n map(items => {\r\n const item = find(items, i => i.itemText === itemText);\r\n return item;\r\n })\r\n );\r\n }\r\n}\r\n","import { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\nimport { ToolbarMenuContent } from './toolbar-menu-content';\r\nimport { ToolBarMenuItem } from './toolbar-menu-item';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'toolbar-menu',\r\n template: require('./toolbar-menu.component.html'),\r\n styles: [require('./toolbar-menu.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n\r\nexport class ToolbarMenuComponent implements OnInit {\r\n\r\n @Input()\r\n public userName: string;\r\n\r\n @Input()\r\n public emulatedUserFullName: string;\r\n\r\n public menuItems: Observable;\r\n\r\n public logoutText = '';\r\n public logoutAction: () => void = null;\r\n\r\n constructor(private menuItemsService: ToolbarMenuContent) { }\r\n\r\n public ngOnInit(): void {\r\n this.menuItems = this.menuItemsService.getMenuItems();\r\n this.menuItemsService.getMenuItem('Logout').subscribe(menuItem => {\r\n this.logoutText = menuItem.itemText;\r\n this.logoutAction = menuItem.action;\r\n });\r\n }\r\n}","import { NgModule } from '@angular/core';\r\n\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { ToolbarMenuContent } from './toolbar-menu-content';\r\nimport { ToolbarMenuComponent } from './toolbar-menu.component';\r\n\r\n@NgModule({\r\n declarations: [ToolbarMenuComponent],\r\n imports: [SharedModule],\r\n exports: [ToolbarMenuComponent],\r\n providers: [ToolbarMenuContent]\r\n})\r\nexport class ToolbarMenuModule { }","\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { UrlBuilder } from '../../core/url-builder/url-builder';\r\nimport { UserPermissionsStorage } from '../../user-permissions/user-permissions-storage';\r\nimport { User } from '../../user';\r\n\r\n@Injectable()\r\nexport class SampleTrackingOptionResolver {\r\n\r\n constructor(private urlBuilder: UrlBuilder, private permissionsStorage: UserPermissionsStorage) {\r\n\r\n }\r\n\r\n public navigate() {\r\n this.urlBuilder.esa().sampletracking().navigate();\r\n }\r\n\r\n public doesPermissionExists(currentUser: Observable): Observable {\r\n\r\n const isSponsor = currentUser.pipe(map(user => user.isSponsor));\r\n return isSponsor;\r\n }\r\n}","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { isNil } from 'lodash';\r\nimport { Link, Settings, UrlBuilder } from '../core';\r\nimport { UserStorage } from '../user';\r\nimport { SampleTrackingOptionResolver } from './sample-tracking/sample-tracking-option.resolver';\r\n\r\n@Component({\r\n selector: 'header',\r\n template: require('./header.component.html'),\r\n styles: [require('./header.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class HeaderComponent {\r\n\r\n public userName: Observable;\r\n public emulatedUserFullName: Observable;\r\n public isSampleTrackingEnabled$: Observable;\r\n public isSiteShippingEnabled$: Observable;\r\n public ereqLink: Link;\r\n\r\n constructor(userStorage: UserStorage, settings: Settings, private sampleTrackingOption: SampleTrackingOptionResolver,\r\n private urlBuilder: UrlBuilder) {\r\n const currentUser = userStorage.currentUser;\r\n\r\n this.userName = currentUser.pipe(map(user => user.metadata.originalUserFullName));\r\n\r\n if (!isNil(settings.emulatedUserId)) {\r\n this.emulatedUserFullName = currentUser.pipe(map(user => user.metadata.fullName));\r\n }\r\n\r\n this.isSampleTrackingEnabled$ = this.sampleTrackingOption.doesPermissionExists(currentUser);\r\n\r\n this.isSiteShippingEnabled$ = currentUser.pipe(map(user => user.isInvestigator));\r\n\r\n this.ereqLink = settings.linksDictionary['erequisition'];\r\n }\r\n\r\n public navigate() {\r\n this.sampleTrackingOption.navigate();\r\n }\r\n\r\n public openSiteShipping() {\r\n this.urlBuilder.esa().sampleManagement().registeredSamples().navigate();\r\n }\r\n\r\n public openEreq() {\r\n const url = this.ereqLink.url;\r\n window.open(url, '_blank');\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Settings } from '../core';\r\nimport { deserialize } from 'santee-dcts';\r\nimport { AnnouncementsReadModel, Announcement } from './announcement';\r\nimport { Observable } from 'rxjs';\r\nimport { map, publishLast, refCount } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class AnnouncementsStorage {\r\n private readonly announcements: Observable;\r\n\r\n constructor(private http: HttpClient, private settings: Settings) {\r\n this.announcements = this.loadAll()\r\n .pipe(\r\n publishLast(),\r\n refCount()\r\n );\r\n }\r\n\r\n public get all(): Observable {\r\n return this.announcements;\r\n }\r\n\r\n private loadAll() {\r\n return this.http.get(`${this.settings.apiUrl}/announcements/all`)\r\n .pipe(map((response) => deserialize(response, AnnouncementsReadModel).announcements));\r\n }\r\n}","import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\nimport { AnnouncementsStorage } from './announcements-storage';\r\nimport { Announcement } from './announcement';\r\nimport { Observable } from 'rxjs';\r\nimport { MdlDialogService, IMdlCustomDialogConfiguration } from '@angular-mdl/core';\r\nimport { AnnouncementDialogComponent, ANNOUNCEMENT_TOKEN } from './announcement-dialog.component';\r\n\r\n@Component({\r\n selector: 'announcements',\r\n template: require('./announcements.component.html'),\r\n styles: [require('./announcements.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AnnouncementsComponent implements OnInit {\r\n public announcements: Observable;\r\n\r\n constructor(\r\n private announcementsStorage: AnnouncementsStorage,\r\n private dialogServce: MdlDialogService\r\n ) { }\r\n\r\n public ngOnInit() {\r\n this.announcements = this.announcementsStorage.all;\r\n }\r\n\r\n public openDialog( announcement: Announcement) {\r\n const configDialog: IMdlCustomDialogConfiguration = {\r\n component: AnnouncementDialogComponent,\r\n providers: [{\r\n provide: ANNOUNCEMENT_TOKEN, useValue: announcement\r\n }],\r\n isModal: true,\r\n clickOutsideToClose: true,\r\n classes: 'scrollable'\r\n };\r\n\r\n this.dialogServce.showCustomDialog(configDialog);\r\n }\r\n}","import { dataMember, required, typedArray } from 'santee-dcts';\r\n\r\nexport class CommonLink {\r\n @dataMember()\r\n @required()\r\n public linkTitle: string;\r\n\r\n @dataMember()\r\n @required()\r\n public linkUrl: string;\r\n\r\n @dataMember()\r\n @required({ nullable: true })\r\n public linkDescription: string;\r\n}\r\n\r\nexport class CommonLinksRealModel {\r\n @dataMember()\r\n @required()\r\n @typedArray(CommonLink)\r\n public commonLinks: CommonLink[];\r\n}","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map, publishLast, refCount } from 'rxjs/operators';\r\nimport { CommonLink, CommonLinksRealModel } from './common-link';\r\nimport { deserialize } from 'santee-dcts';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Settings } from '../core';\r\n\r\n@Injectable()\r\nexport class CommonLinksStorage {\r\n private readonly commonLinks: Observable;\r\n\r\n constructor(private http: HttpClient, private settings: Settings) {\r\n this.commonLinks = this.loadAll()\r\n .pipe(\r\n publishLast(),\r\n refCount()\r\n );\r\n }\r\n\r\n public get all(): Observable {\r\n return this.commonLinks;\r\n }\r\n\r\n private loadAll(): Observable {\r\n return this.http.get(`${this.settings.apiUrl}/commonLinks`)\r\n .pipe(\r\n map((rawData) => deserialize(rawData, CommonLinksRealModel).commonLinks)\r\n );\r\n }\r\n}","import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { CommonLinksStorage } from './common-links-storage';\r\nimport { CommonLink } from './common-link';\r\n\r\n@Component({\r\n selector: 'common-links',\r\n template: require('./common-links.component.html'),\r\n styles: [require('./common-links.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CommonLinksComponent implements OnInit {\r\n public commonLinks: Observable;\r\n\r\n constructor(private commonLinksStorage: CommonLinksStorage) { }\r\n\r\n public ngOnInit() {\r\n this.commonLinks = this.commonLinksStorage.all;\r\n }\r\n}","import { dataMember, required } from 'santee-dcts';\r\n\r\nexport const drawerBehaviorKey = 'WorkspaceLevel_DrawerBehavior';\r\n\r\nexport class WorkspaceDrawerBehavior {\r\n @dataMember()\r\n @required()\r\n public manualCollapsed: boolean;\r\n}","import { Component, ChangeDetectionStrategy, HostListener, ChangeDetectorRef, ViewChild, ElementRef, AfterViewChecked } from '@angular/core';\r\nimport { debounce, isEmpty } from 'lodash';\r\nimport { UserStorage } from '../user/user-storage';\r\nimport { UserPreferencesStorage } from '../user-preferences/user-preferences-storage';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { WorkspaceDrawerBehavior, drawerBehaviorKey } from './workspace-drawer-behavior';\r\nimport { routeData } from '../shared/route-helpers';\r\n\r\n@Component({\r\n selector: 'workspace-level-layout',\r\n template: require('./workspace-level-layout.component.html'),\r\n styles: [require('./workspace-level-layout.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class WorkspaceLevelLayoutComponent implements AfterViewChecked {\r\n\r\n public get isDrawerCollapsed(): boolean {\r\n return this.collapseDrawer;\r\n }\r\n\r\n @ViewChild('asideDrawer')\r\n public asideDrawer: ElementRef;\r\n\r\n @ViewChild('divSiteLayout')\r\n public divSiteLayout: ElementRef;\r\n\r\n public user$ = this.userStorage.currentUser;\r\n\r\n private readonly debounceCollapseDrawer: () => void;\r\n private readonly screenSizeThreshold = 1200;\r\n\r\n private manualDrawer = false;\r\n private collapseDrawer = false;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private userStorage: UserStorage,\r\n changeDetectorRef: ChangeDetectorRef,\r\n private userPreferencesStorage: UserPreferencesStorage\r\n ) {\r\n this.debounceCollapseDrawer = debounce(\r\n () => {\r\n this.calculateCollapsing();\r\n changeDetectorRef.markForCheck();\r\n },\r\n 200);\r\n\r\n this.restoreDrawerBehavior();\r\n this.calculateCollapsing();\r\n }\r\n\r\n public ngAfterViewChecked() {\r\n this.changeMdlTooltipsParent();\r\n }\r\n\r\n public onCollapseButton() {\r\n this.manualDrawer = true;\r\n this.collapseDrawer = !this.collapseDrawer;\r\n\r\n this.saveDrawerBehavior();\r\n }\r\n\r\n @HostListener('window:resize')\r\n public onWindowResize() {\r\n this.calculateCollapsingOnResize();\r\n }\r\n\r\n private calculateCollapsingOnResize() {\r\n if (this.manualDrawer && this.collapseDrawer) {\r\n return;\r\n }\r\n\r\n this.resetManualCollapse();\r\n this.debounceCollapseDrawer();\r\n }\r\n\r\n private resetManualCollapse() {\r\n if (window.innerWidth > this.screenSizeThreshold) {\r\n this.manualDrawer = false;\r\n }\r\n }\r\n\r\n private calculateCollapsing() {\r\n if (this.manualDrawer) {\r\n return;\r\n }\r\n\r\n this.collapseDrawer = window.innerWidth < this.screenSizeThreshold;\r\n }\r\n\r\n private saveDrawerBehavior() {\r\n const behavior: WorkspaceDrawerBehavior = { manualCollapsed: this.manualDrawer && this.collapseDrawer };\r\n const item = JSON.stringify(behavior);\r\n\r\n this.userPreferencesStorage.set(drawerBehaviorKey, item);\r\n }\r\n\r\n private restoreDrawerBehavior() {\r\n const behavior = this.route.snapshot.data[routeData.drawerBehavior] as WorkspaceDrawerBehavior;\r\n\r\n if (behavior && behavior.manualCollapsed) {\r\n this.manualDrawer = true;\r\n this.collapseDrawer = true;\r\n }\r\n }\r\n\r\n // mdl-tooltips shouldn't be placed within