{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./node_modules/moment/locale sync ^\\.\\/.*$","./src/app/app.module.ts","./src/app/interactive-pricing.component.html","./src/app/interactive-pricing.component.ts","./src/app/login-qualify-link-component.html","./src/app/login-qualify-link-component.ts","./src/app/quick-price-scenario-entry/component.html","./src/app/quick-price-scenario-entry/component.ts","./src/environments/environment.ts","./src/framework/components/SAML-redirect/saml-redirect.component.html","./src/framework/components/SAML-redirect/SAML-redirect.component.ts","./src/framework/components/actions/actions.component.html","./src/framework/components/actions/actions.component.ts","./src/framework/components/actions/actions.models.ts","./src/framework/components/app/app.component.html","./src/framework/components/app/app.component.ts","./src/framework/components/application-guidance/application-guidance.component.html","./src/framework/components/application-guidance/application-guidance.component.ts","./src/framework/components/assessment/assessment.component.html","./src/framework/components/assessment/assessment.component.ts","./src/framework/components/assessment/assessment.models.ts","./src/framework/components/async/async.component.ts.AsyncComponent.html","./src/framework/components/async/async.component.ts.AsyncErrorComponent.html","./src/framework/components/async/async.component.ts","./src/framework/components/attributes/attributes.directive.ts","./src/framework/components/audit-trail/audit-trail.component.html","./src/framework/components/audit-trail/audit-trail.component.ts","./src/framework/components/autosize-grid/autosize-grid.component.html","./src/framework/components/autosize-grid/autosize-grid.component.ts","./src/framework/components/avatar/avatar.component.html","./src/framework/components/avatar/avatar.component.ts","./src/framework/components/card-list/card-list.component.html","./src/framework/components/card-list/card-list.component.ts","./src/framework/components/card-list/card-list.models.ts","./src/framework/components/card/card-field.component.ts","./src/framework/components/card/card.component.html","./src/framework/components/card/card.component.ts","./src/framework/components/card/card.models.ts","./src/framework/components/card/fieldcomponents/comment-card-field.component.ts.CommentCardFieldComponent.html","./src/framework/components/card/fieldcomponents/comment-card-field.component.ts","./src/framework/components/card/fieldcomponents/component-card-field.component.ts.ComponentCardFieldComponent.html","./src/framework/components/card/fieldcomponents/component-card-field.component.ts","./src/framework/components/card/fieldcomponents/highlighted-message-card-field.component.ts.HighlightedMessageCardFieldComponent.html","./src/framework/components/card/fieldcomponents/highlighted-message-card-field.component.ts","./src/framework/components/card/fieldcomponents/icon-card-field.component.ts.IconCardFieldComponent.html","./src/framework/components/card/fieldcomponents/icon-card-field.component.ts","./src/framework/components/card/fieldcomponents/image-card-field.component.ts.ImageCardFieldComponent.html","./src/framework/components/card/fieldcomponents/image-card-field.component.ts","./src/framework/components/card/fieldcomponents/link-card-field.component.ts.LinkCardFieldComponent.html","./src/framework/components/card/fieldcomponents/link-card-field.component.ts","./src/framework/components/card/fieldcomponents/media-box-card-field.component.ts.MediaBoxCardFieldComponent.html","./src/framework/components/card/fieldcomponents/media-box-card-field.component.ts","./src/framework/components/card/fieldcomponents/simple-field.component.ts.SimpleFieldComponent.html","./src/framework/components/card/fieldcomponents/simple-field.component.ts","./src/framework/components/chart/chart.component.html","./src/framework/components/chart/chart.component.ts","./src/framework/components/chart/chart.models.ts","./src/framework/components/chip/chip.component.html","./src/framework/components/chip/chip.component.ts","./src/framework/components/chip/chip.models.ts","./src/framework/components/comment/comment.component.html","./src/framework/components/comment/comment.component.ts","./src/framework/components/component-list/component-list.component.html","./src/framework/components/component-list/component-list.component.ts","./src/framework/components/component/component.directive.ts.ComponentWrapperComponent.html","./src/framework/components/component/component.directive.ts","./src/framework/components/component/component.models.ts","./src/framework/components/confirm/confirm.component.html","./src/framework/components/confirm/confirm.component.ts","./src/framework/components/dialog/ScrollStrategyResolver.ts","./src/framework/components/dialog/md-dialog.component.ts.MDialog.html","./src/framework/components/dialog/md-dialog.component.ts","./src/framework/components/document-viewer/document-control.component.html","./src/framework/components/document-viewer/document-control.component.ts","./src/framework/components/document-viewer/document-overlay.component.html","./src/framework/components/document-viewer/document-overlay.component.ts","./src/framework/components/document-viewer/document-viewer.component.html","./src/framework/components/document-viewer/document-viewer.component.ts","./src/framework/components/editor/editor.component.html","./src/framework/components/editor/editor.component.ts","./src/framework/components/error/error.component.html","./src/framework/components/error/error.component.ts","./src/framework/components/exception-description/exception-description.component.html","./src/framework/components/exception-description/exception-description.component.ts","./src/framework/components/file-upload-preview/file-upload-preview.component.html","./src/framework/components/file-upload-preview/file-upload-preview.component.ts","./src/framework/components/footer/footer.component.html","./src/framework/components/footer/footer.component.ts","./src/framework/components/forgot-password-guidance/forgot-password-guidance.component.html","./src/framework/components/forgot-password-guidance/forgot-password-guidance.component.ts","./src/framework/components/form/field.component.ts","./src/framework/components/form/fieldcomponents/FormControlUtility.ts","./src/framework/components/form/fieldcomponents/FormStateUtility.ts","./src/framework/components/form/fieldcomponents/approximate-date-field.component.html","./src/framework/components/form/fieldcomponents/approximate-date-field.component.ts","./src/framework/components/form/fieldcomponents/approximate-month-field.component.html","./src/framework/components/form/fieldcomponents/approximate-month-field.component.ts","./src/framework/components/form/fieldcomponents/autocomplete-field.component.html","./src/framework/components/form/fieldcomponents/autocomplete-field.component.ts","./src/framework/components/form/fieldcomponents/checkbox-field.component.ts.CheckboxFieldComponent.html","./src/framework/components/form/fieldcomponents/checkbox-field.component.ts","./src/framework/components/form/fieldcomponents/combined-checkbox-field.component.html","./src/framework/components/form/fieldcomponents/combined-checkbox-field.component.ts","./src/framework/components/form/fieldcomponents/datepicker-field.component.html","./src/framework/components/form/fieldcomponents/datepicker-field.component.ts","./src/framework/components/form/fieldcomponents/datetimepicker-field.component.ts","./src/framework/components/form/fieldcomponents/dob-field.component.html","./src/framework/components/form/fieldcomponents/dob-field.component.ts","./src/framework/components/form/fieldcomponents/dropdown-field.component.html","./src/framework/components/form/fieldcomponents/dropdown-field.component.ts","./src/framework/components/form/fieldcomponents/expression-field.component.html","./src/framework/components/form/fieldcomponents/expression-field.component.ts","./src/framework/components/form/fieldcomponents/file-upload-field.component.html","./src/framework/components/form/fieldcomponents/file-upload-field.component.ts","./src/framework/components/form/fieldcomponents/file-upload-stream-field.component.ts","./src/framework/components/form/fieldcomponents/gcm-key-field.component.ts.GCMKeyFieldComponent.html","./src/framework/components/form/fieldcomponents/gcm-key-field.component.ts","./src/framework/components/form/fieldcomponents/hidden-field.component.ts.HiddenFieldComponent.html","./src/framework/components/form/fieldcomponents/hidden-field.component.ts","./src/framework/components/form/fieldcomponents/lookup-field.component/lookup-field.component.html","./src/framework/components/form/fieldcomponents/lookup-field.component/lookup-field.component.ts","./src/framework/components/form/fieldcomponents/maplookup-field.component.html","./src/framework/components/form/fieldcomponents/maplookup-field.component.ts","./src/framework/components/form/fieldcomponents/masked-input-field.component.html","./src/framework/components/form/fieldcomponents/masked-input-field.component.ts","./src/framework/components/form/fieldcomponents/matrix-field.component.ts","./src/framework/components/form/fieldcomponents/multi-checkbox-field.component.html","./src/framework/components/form/fieldcomponents/multi-checkbox-field.component.ts","./src/framework/components/form/fieldcomponents/multi-line-field.component.html","./src/framework/components/form/fieldcomponents/multi-line-field.component.ts","./src/framework/components/form/fieldcomponents/multi-select-field.component.ts.MultiSelectFieldComponent.html","./src/framework/components/form/fieldcomponents/multi-select-field.component.ts","./src/framework/components/form/fieldcomponents/observation-editor-field.component.ts.ObservationEditorFieldComponent.html","./src/framework/components/form/fieldcomponents/observation-editor-field.component.ts","./src/framework/components/form/fieldcomponents/password-field.component.html","./src/framework/components/form/fieldcomponents/password-field.component.ts","./src/framework/components/form/fieldcomponents/places-autocomplete-field.component.html","./src/framework/components/form/fieldcomponents/places-autocomplete-field.component.ts","./src/framework/components/form/fieldcomponents/radio-field.component.html","./src/framework/components/form/fieldcomponents/radio-questionnaire-field.component.html","./src/framework/components/form/fieldcomponents/radio-field.component.ts","./src/framework/components/form/fieldcomponents/range-buckets-field.component.html","./src/framework/components/form/fieldcomponents/range-buckets-field.component.ts.ExpressionEvaluatorFieldComponent.html","./src/framework/components/form/fieldcomponents/range-buckets-field.component.ts","./src/framework/components/form/fieldcomponents/range-definition-field.component.html","./src/framework/components/form/fieldcomponents/range-definition-field.component.ts","./src/framework/components/form/fieldcomponents/signature-field.component.ts.SignatureFieldComponent.html","./src/framework/components/form/fieldcomponents/signature-field.component.ts","./src/framework/components/form/fieldcomponents/slide-toggle-field.component.ts.SlideToggleFieldComponent.html","./src/framework/components/form/fieldcomponents/slide-toggle-field.component.ts","./src/framework/components/form/fieldcomponents/slider-field.component.html","./src/framework/components/form/fieldcomponents/slider-field.component.ts","./src/framework/components/form/fieldcomponents/textarea-field.component.html","./src/framework/components/form/fieldcomponents/textarea-field.component.ts","./src/framework/components/form/fieldcomponents/textbox-field.component.html","./src/framework/components/form/fieldcomponents/textbox-field.component.ts","./src/framework/components/form/fieldcomponents/utc-offset-field.component.ts.UTCOffsetFieldComponent.html","./src/framework/components/form/fieldcomponents/utc-offset-field.component.ts","./src/framework/components/form/form.component.html","./src/framework/components/form/form.component.ts","./src/framework/components/global-notification/global-notification.component.html","./src/framework/components/global-notification/global-notification.component.ts","./src/framework/components/google-map/google-map.component.ts","./src/framework/components/grid/column/column.directive.ts","./src/framework/components/grid/column/columns/simple-column.component.html","./src/framework/components/grid/column/columns/multiline-grid-column.component.html","./src/framework/components/grid/column/columns/percentage-grid-column.component.html","./src/framework/components/grid/column/columns/score-grid-column.component.html","./src/framework/components/grid/column/columns/chip-grid-column.component.html","./src/framework/components/grid/column/columns/rating-grid-column.component.html","./src/framework/components/grid/column/columns/pie-chart-grid-column.component.html","./src/framework/components/grid/column/columns/link-grid-column.component.html","./src/framework/components/grid/column/columns/mediabox-grid-column.component.html","./src/framework/components/grid/column/columns/sparkline-grid-column.component.html","./src/framework/components/grid/column/columns/columns.component.ts","./src/framework/components/grid/grid.component.html","./src/framework/components/grid/grid.component.ts","./src/framework/components/grid/grid.models.ts","./src/framework/components/header-search/header-search.component.html","./src/framework/components/header-search/header-search.component.ts","./src/framework/components/header/header.component.html","./src/framework/components/header/header.component.ts","./src/framework/components/icon/icon.directive.ts","./src/framework/components/kpi/kpi.component.html","./src/framework/components/kpi/kpi.component.ts","./src/framework/components/layout/layout.component.ts.LayoutElement.html","./src/framework/components/layout/layout.component.ts.LayoutComponent.html","./src/framework/components/layout/layout.component.ts.TableLayoutComponent.html","./src/framework/components/layout/layout.component.ts","./src/framework/components/loan-entry-layout/loan-entry-layout.component.ts","./src/framework/components/login-wrapper/login-wrapper.component.html","./src/framework/components/login-wrapper/login-wrapper.component.ts","./src/framework/components/map-list/map-list.component.html","./src/framework/components/map-list/map-list.component.ts","./src/framework/components/map/map.component.html","./src/framework/components/map/map.component.ts","./src/framework/components/matrix-editor-wrapper/matrix-editor-wrapper.component.html","./src/framework/components/matrix-editor-wrapper/matrix-editor-wrapper.component.ts","./src/framework/components/matrix-editor-wrapper/rearrange-axes.component.html","./src/framework/components/matrix-editor-wrapper/rearrange-axes.component.ts","./src/framework/components/matrix/matrix-cell.component.ts.MatrixCellComponent.html","./src/framework/components/matrix/matrix-cell.component.ts","./src/framework/components/matrix/matrix-model.component.html","./src/framework/components/matrix/matrix-model.component.ts","./src/framework/components/matrix/matrix.component.html","./src/framework/components/matrix/matrix.component.ts","./src/framework/components/matrix/matrix.models.ts","./src/framework/components/media-box/media-box.component.html","./src/framework/components/media-box/media-box.component.ts","./src/framework/components/media-box/media-box.models.ts","./src/framework/components/mobile-header/mobile-header.component.html","./src/framework/components/mobile-header/mobile-header.component.ts","./src/framework/components/modal-header-wrapper/modal-header-wrapper.component.html","./src/framework/components/modal-header-wrapper/modal-header-wrapper.component.ts","./src/framework/components/modal-page/modal-page.component.html","./src/framework/components/modal-page/modal-page.component.ts","./src/framework/components/modal-page/modal.component.ts.ModalComponent.html","./src/framework/components/modal-page/modal.component.ts","./src/framework/components/multi-document-listing/multi-document-listing.component.html","./src/framework/components/multi-document-listing/multi-document-listing.component.ts","./src/framework/components/multi-file-upload/multi-file-upload.component.html","./src/framework/components/multi-file-upload/multi-file-upload.component.ts","./src/framework/components/multisection/collapsible-form-wrapper/collapsible-form-wrapper.component.html","./src/framework/components/multisection/collapsible-form-wrapper/collapsible-form-wrapper.component.ts","./src/framework/components/multisection/form-integration-directive/form-integration.directive.ts","./src/framework/components/multisection/multisection-assessment/multisection-assessment.component.html","./src/framework/components/multisection/multisection-assessment/multisection-assessment.component.ts","./src/framework/components/multisection/multisection-editor-wrapper/multisection-editor-wrapper.component.html","./src/framework/components/multisection/multisection-editor-wrapper/multisection-editor-wrapper.component.ts","./src/framework/components/multisection/multisection-question-editor copy/multisection-question-editor.component.html","./src/framework/components/multisection/multisection-question-editor copy/multisection-question-editor.component.ts","./src/framework/components/multisection/multisection.component.html","./src/framework/components/multisection/multisection.component.ts","./src/framework/components/multisection/section.component.html","./src/framework/components/multisection/section.component.ts","./src/framework/components/navmenu/navmenu.component.html","./src/framework/components/navmenu/navmenu.component.ts","./src/framework/components/newsearch/newsearch.component.html","./src/framework/components/newsearch/newsearch.component.ts","./src/framework/components/organize/organize.component.html","./src/framework/components/organize/organize.component.ts","./src/framework/components/page-break/page-break.component.ts","./src/framework/components/page/page.component.html","./src/framework/components/page/page.component.ts","./src/framework/components/page/page.models.ts","./src/framework/components/pagination-wrapper/pagination-wrapper.component.html","./src/framework/components/pagination-wrapper/pagination-wrapper.component.ts","./src/framework/components/password-expiration-guidance/password-expiration-guidance.component.html","./src/framework/components/password-expiration-guidance/password-expiration-guidance.component.ts","./src/framework/components/pdf/pdf.component.ts","./src/framework/components/percentage-circle/percentage-circle.component.html","./src/framework/components/percentage-circle/percentage-circle.component.ts","./src/framework/components/picker/picker.component.html","./src/framework/components/picker/picker.component.ts","./src/framework/components/pie-chart/pie-chart.component.html","./src/framework/components/pie-chart/pie-chart.component.ts","./src/framework/components/placeholder/placeholder.component.ts.PlaceholderComponent.html","./src/framework/components/placeholder/placeholder.component.ts","./src/framework/components/progress/progress-bar.component.html","./src/framework/components/progress/progress-bar.component.ts","./src/framework/components/progress/progress.component.html","./src/framework/components/progress/progress.component.ts","./src/framework/components/registration-guidance/registration-Guidance.component.html","./src/framework/components/registration-guidance/registration-guidance.component.ts","./src/framework/components/registration-polling/registration-polling.component.html","./src/framework/components/registration-polling/registration-polling.component.ts","./src/framework/components/search-edit/search-edit.component.html","./src/framework/components/search-edit/search-edit.component.ts","./src/framework/components/search/search.component.html","./src/framework/components/search/search.component.ts","./src/framework/components/simple/simple.component.html","./src/framework/components/simple/simple.component.ts","./src/framework/components/sparkline/sparkline.component.html","./src/framework/components/sparkline/sparkline.component.ts","./src/framework/components/ssi-base-components/checkbox/checkbox.component.html","./src/framework/components/ssi-base-components/checkbox/checkbox.component.ts","./src/framework/components/tab-spinner/tab-spinner.component.html","./src/framework/components/tab-spinner/tab-spinner.component.ts","./src/framework/components/tab-spinner/tab-spinner.models.ts","./src/framework/components/tab/tab.component.html","./src/framework/components/tab/tab.component.ts","./src/framework/components/test/test.component.html","./src/framework/components/test/test.component.ts","./src/framework/components/timeline/timeline.component.html","./src/framework/components/timeline/timeline.component.ts","./src/framework/components/toast/toast.component.html","./src/framework/components/toast/toast.component.ts","./src/framework/components/tooltip/tooltip.component.html","./src/framework/components/tooltip/tooltip.component.ts","./src/framework/components/two-panel/two-panel.component.html","./src/framework/components/two-panel/two-panel.component.ts","./src/framework/components/two-step-verify-guidance/two-step-verify-guidance.component.ts.TwoStepVerifyGuidanceComponent.html","./src/framework/components/two-step-verify-guidance/two-step-verify-guidance.component.ts","./src/framework/components/usermenu/user-menu.component.html","./src/framework/components/usermenu/user-menu.component.ts","./src/framework/components/verification-directions/verification-directions.component.html","./src/framework/components/verification-directions/verification-directions.component.ts","./src/framework/interceptors/xsrfinterceptor.ts","./src/framework/services/AssessmentService.ts","./src/framework/services/AttributeTranslator.ts","./src/framework/services/ComponentRegistration.ts","./src/framework/services/ConnectionMessagingService.ts","./src/framework/services/CustomizationService.ts","./src/framework/services/DialogService.ts","./src/framework/services/FieldService.ts","./src/framework/services/InfiniteScrollService.ts","./src/framework/services/InteractService.ts","./src/framework/services/LinkService.ts","./src/framework/services/LoadService.ts","./src/framework/services/ModalService.ts","./src/framework/services/NavigationService.ts","./src/framework/services/NewSearchService.ts","./src/framework/services/PaginationWrapperService.ts","./src/framework/services/PresentationService.ts","./src/framework/services/SearchService.ts","./src/framework/services/ToastService.ts","./src/main.ts"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,wE;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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","file":"main-es2015.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-SG\": \"./node_modules/moment/locale/en-SG.js\",\n\t\"./en-SG.js\": \"./node_modules/moment/locale/en-SG.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ku.js\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\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 = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","import { NgModule, APP_INITIALIZER } from '@angular/core';\r\nimport { AppComponent } from 'components/app/app.component';\r\nimport { CustomizationService } from 'framework/services/CustomizationService';\r\nimport { BorrowersListComponent } from \"./borrowers-list.component\";\r\nimport { InteractivePricingComponent } from './interactive-pricing.component';\r\nimport { ClientIdentifierComponent } from './client-identifier.component';\r\nimport { LockConfirmationHeaderComponent } from './lock-confirmation-header.component';\r\nimport { QuickPriceScenarioEntryComponent } from './quick-price-scenario-entry/component';\r\n\r\n\r\n import { frameworkConfig } from 'framework/framework.module.shared';\r\nimport { LoginQualifyLinkComponent } from './login-qualify-link-component';\r\n\r\n@NgModule({\r\n declarations: [\r\n BorrowersListComponent,\r\n InteractivePricingComponent,\r\n ClientIdentifierComponent,\r\n LockConfirmationHeaderComponent,\r\n QuickPriceScenarioEntryComponent,\r\n LoginQualifyLinkComponent,\r\n ...frameworkConfig.declarations,\r\n //LoanEntryLayoutComponent,\r\n //OffsheetPricingEntryComponent\r\n ],\r\n providers: [\r\n ...frameworkConfig.providers,\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: (customizationService: CustomizationService) => {\r\n // debugger;\r\n // var x = BorrowerColumnComponent;\r\n\r\n return () => { \r\n customizationService.RegisterCustomization(\"QuickPriceScenarioEntryComponent\", QuickPriceScenarioEntryComponent);\r\n customizationService.RegisterCustomization(\"LoginQualifyLinkComponent\", LoginQualifyLinkComponent);\r\n customizationService.RegisterCustomization(\"InteractivePricingComponent\", InteractivePricingComponent);\r\n // customizationService.RegisterCustomization(\"OffsheetPricingEntryComponent\", OffsheetPricingEntryComponent);\r\n // customizationService.RegisterCustomization(\"LoanEntryLayoutComponent\", LoanEntryLayoutComponent);\r\n }\r\n },\r\n deps: [CustomizationService],\r\n multi: true\r\n }\r\n ],\r\n entryComponents: [\r\n ...frameworkConfig.entryComponents, \r\n QuickPriceScenarioEntryComponent,\r\n LoginQualifyLinkComponent,\r\n InteractivePricingComponent\r\n ], \r\n imports: [\r\n ...frameworkConfig.imports\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","
\r\n
\r\n
\r\n
Loan Information
\r\n
\r\n \r\n
\r\n
\r\n
\r\n Select \"Qualify\" to see preliminary eligibility results.\r\n
\r\n
\r\n
\r\n
\r\n
Available Programs
\r\n
\r\n
Request More Information
\r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { Component, ElementRef, AfterViewInit, ViewEncapsulation, ViewChild, Injector } from \"@angular/core\";\r\nimport { BaseColumnComponent } from \"framework/components/grid/column/columns/columns.component\";\r\nimport { NavigationService, NavigationType } from \"framework/services/NavigationService\";\r\nimport { ModalService } from \"framework/services/ModalService\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport { ComponentDefinition } from \"framework/components/component/component.models\";\r\nimport * as $ from 'jquery';\r\nimport { Page } from \"framework/components/page/page.models\";\r\nimport { ModalCloseBehavior } from \"framework/components/actions/actions.models\";\r\nimport { FormComponent, FormMessage, FormComponentDefinition } from 'framework/components/form/form.component';\r\nimport { CardListModel } from 'framework/components/card-list/card-list.models';\r\n\r\n@Component({\r\n selector: 'interactive-pricing',\r\n templateUrl: './interactive-pricing.component.html',\r\n styleUrls: ['./quick-price-scenario-entry/component.less'],\r\n})\r\nexport class InteractivePricingComponent implements AfterViewInit {\r\n public ShowPricing: boolean;\r\n public ShowRequestMoreInfo: boolean;\r\n public CompDef: InteractivePricingComponentDefinition;\r\n public _postedData: any;\r\n \r\n constructor(_compDef: ComponentDefinition, \r\n private _elementRef: ElementRef,\r\n private _http: HttpClient,\r\n private _modalService: ModalService) {\r\n this.CompDef = _compDef;\r\n if (this.CompDef.ShowWarning)\r\n this._modalService.Open(\"/Qualify/AcceptWarningModal\", ModalCloseBehavior.None);\r\n this.ShowRequestMoreInfo = !this.CompDef.PricingResults;\r\n this.ShowPricing = !!this.CompDef.PricingResults;\r\n }\r\n\r\n @ViewChild(FormComponent, { static: false }) \r\n public set FormComponent(value: FormComponent) {\r\n if (!value)\r\n return;\r\n\r\n value.AllValueChanges.subscribe(() => {\r\n this.ShowPricing = false;\r\n });\r\n\r\n value.CustomSubmit = (resp: FormMessage) => {\r\n value.GetValidFormData((data) => {\r\n this._postedData = data;\r\n this._http.post(\"/Qualify/RunPricing/\", data).subscribe((urlResp: CardListModel) => {\r\n let compDef = urlResp;\r\n this.CompDef.PricingResults = compDef;\r\n this.ShowPricing = true;\r\n value.IsSubmitting = false;\r\n });\r\n }, ()=> {})\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n $('.ui-form-panel', this._elementRef.nativeElement).on('value-changed', () => {\r\n this.ShowPricing = false;\r\n });\r\n }\r\n\r\n ContactModal() {\r\n this._http.post('/Qualify/RequestInfoModal', this._postedData).subscribe((response:Page) => {\r\n var page = response;\r\n this._modalService.OpenPage(page);\r\n });\r\n\r\n }\r\n\r\n AcceptWarning() {\r\n this.CompDef.ShowWarning = false;\r\n this._http.post(\"/Qualify/AcceptWarning\", {}).subscribe(() => {});\r\n }\r\n}\r\n\r\nexport class InteractivePricingComponentDefinition extends ComponentDefinition {\r\n public FormComponent: FormComponentDefinition;\r\n public ShowWarning: boolean;\r\n public Disclaimer: string;\r\n public PricingResults: ComponentDefinition;\r\n}\r\n","
\r\n Click here to qualify a Loan\r\n
","import { Component } from \"@angular/core\";\r\nimport { ComponentDefinition } from \"framework/components/component/component.models\";\r\nimport { FormComponentDefinition } from 'framework/components/form/form.component';\r\n\r\n@Component({\r\n selector: 'login-qualify',\r\n templateUrl: './login-qualify-link-component.html',\r\n})\r\nexport class LoginQualifyLinkComponent {\r\n constructor() { }\r\n}\r\n","
\r\n
\r\n
\r\n
Loan Information
\r\n
\r\n \r\n
\r\n
\r\n
\r\n Select \"Qualify\" to see preliminary eligibility results.\r\n
\r\n
\r\n
\r\n
\r\n
Eligibility & Pricing Results
\r\n
\r\n
Finish Later
\r\n
Register
\r\n
\r\n
\r\n \r\n
\r\n
","import { ComponentDefinition } from 'framework/components/component/component.models';\r\nimport { FormComponent, FormMessage } from 'framework/components/form/form.component';\r\nimport { CardListModel } from 'framework/components/card-list/card-list.models';\r\n// import { Http, Response } from '@angular/common/http';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { NavigationService } from 'framework/services/NavigationService';\r\nimport { LinkService } from 'framework/services/LinkService';\r\nimport { ModalService } from 'framework/services/ModalService';\r\nimport { Page } from 'framework/components/page/page.models';\r\nimport { Component, ViewChild } from '@angular/core';\r\n\r\ndeclare var jsep: any;\r\n\r\n@Component({\r\n selector: 'quick-price-scenario-entry',\r\n templateUrl: 'component.html',\r\n styleUrls: ['component.less']\r\n})\r\nexport class QuickPriceScenarioEntryComponent {\r\n public compDef: any;\r\n public PricingComponent: any;\r\n public ShowPricing: boolean;\r\n public _postedData: any;\r\n public _submitting: boolean;\r\n\r\n @ViewChild(FormComponent, { static: false }) \r\n public set FormComponent(value: FormComponent) {\r\n if (this.PricingComponent && value) //This is an existing QuickPricing\r\n {\r\n setTimeout(() => this._postedData = value.GetFormData());\r\n }\r\n value.AllValueChanges.subscribe(() => {\r\n this.ShowPricing = false;\r\n })\r\n value.CustomSubmit = (resp: FormMessage) => {\r\n value.GetValidFormData((data) => {\r\n this._postedData = data;\r\n this._http.post(\"/QuickPriceScenario/RunPricing/\", data).subscribe((urlResp: CardListModel) => {\r\n let compDef = urlResp;\r\n this.PricingComponent = compDef;\r\n this.ShowPricing = true;\r\n value.IsSubmitting = false;\r\n });\r\n }, ()=> {})\r\n }\r\n }\r\n\r\n SaveScenario() {\r\n if (this._submitting)\r\n return;\r\n\r\n this._submitting = true;\r\n\r\n this._http.post('/QuickPriceScenario/SaveScenario', this._postedData).subscribe((data: FormMessage) => {\r\n var formMessage = (data);\r\n this._linkService.Go(formMessage.Link);\r\n });\r\n }\r\n\r\n ProceedToRegister() {\r\n this._http.post('/QuickPriceScenario/ProceedToRegister', this._postedData).subscribe((response: Page) => {\r\n var page = response;\r\n this._modalService.OpenPage(page);\r\n // var formMessage = (data.json());\r\n // this._linkService.Go(formMessage.Link);\r\n });\r\n\r\n }\r\n\r\n constructor(def: ComponentDefinition, \r\n private _http: HttpClient, \r\n private _linkService: LinkService,\r\n private _modalService: ModalService) {\r\n this.compDef = def;\r\n this.PricingComponent = (def).PricingResults;\r\n this.ShowPricing = !!this.PricingComponent; \r\n this._modalService.RestoreRenderingInfo\r\n }\r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false\r\n};\r\n\r\n/*\r\n * In development mode, to ignore zone related error stack frames such as\r\n * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can\r\n * import the following file, but please comment it out in production mode\r\n * because it will have performance impact when throw error\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","
\r\n Logging you in. One moment please.\r\n
","import { Component, ElementRef, AfterViewInit, ViewEncapsulation } from \"@angular/core\";\r\nimport { NavigationService, NavigationType } from \"../../services/NavigationService\";\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\nimport * as $ from 'jquery';\r\nimport { CardListModel } from \"../card-list/card-list.models\";\r\nimport { LinkService } from \"../../services/LinkService\";\r\nimport { Link } from \"../actions/actions.models\";\r\n\r\n@Component({\r\n selector: 'saml-redirect',\r\n templateUrl: './saml-redirect.component.html',\r\n styleUrls: ['./saml-redirect.component.less'],\r\n})\r\nexport class SAMLRedirectComponent implements AfterViewInit {\r\n constructor(private _compDef: ComponentDefinition, \r\n private _elementRef: ElementRef,\r\n private _navigationService: NavigationService,\r\n private _linkService: LinkService) {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n var link = new Link();\r\n link.Url = \"/User/SAMLLoginLandingFollowup\";\r\n link.Data = null;\r\n this._linkService.PerformAction(link);\r\n }\r\n}","\r\n {{action.IconName}}\r\n {{action.Text}}\r\n\r\n\r\n\r\n more_vert\r\n \r\n
\r\n
\r\n {{action.IconName}}\r\n {{action.Text}}\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Input, Pipe, PipeTransform, ElementRef, ViewChild, Optional } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NavigationService } from '../../services/NavigationService'\r\nimport { LinkService } from \"../../services/LinkService\";\r\nimport { Link, LinkBehavior } from \"./actions.models\";\r\nimport * as $ from 'jquery';\r\nimport { MDialog } from '../dialog/md-dialog.component';\r\nimport { TooltipModel } from '../tooltip/tooltip.component';\r\nimport { SectionService } from '../../services/LoadService';\r\n\r\n@Component({\r\n selector: 'actions',\r\n templateUrl: './actions.component.html',\r\n styleUrls: ['./actions.component.less']\r\n})\r\nexport class ActionsComponent {\r\n @Input()\r\n public data: Link[];\r\n\r\n @Input()\r\n public dark: boolean;\r\n\r\n @ViewChild('menu', { static: false }) menu: MDialog;\r\n\r\n public get Width() : number {\r\n return $(this._elementRef.nativeElement).width();\r\n }\r\n public set Width(value: number) {\r\n $(this._elementRef.nativeElement).width(value);\r\n }\r\n\r\n public MoreTooltip : TooltipModel;\r\n\r\n constructor(private _linkService: LinkService, \r\n @Optional() private _sectionService: SectionService,\r\n private _elementRef: ElementRef) { //private _componentService: ComponentService\r\n var model = new TooltipModel();\r\n model.Text = \"More Options\";\r\n this.MoreTooltip = model;\r\n }\r\n\r\n public ActionClick(link: Link, $event: any) {\r\n if (this._sectionService)\r\n this._sectionService.OnLinkRequest(link);\r\n else\r\n this._linkService.Go(link);\r\n \r\n if (this.menu)\r\n this.menu.close();\r\n $event.stopPropagation();\r\n // this._linkService.Go(link, () => { //This method is \"OnLinkDone\" or w/e (IE: Modal closed)\r\n // this._componentService.LinkDone(this.callbackData); //This callbackData contains info (IE: Index) needed to rerender a single row\r\n // Each row in the grid/accord would have a \"RerenderUrl\" -> to requery for that individual row.\r\n // });\r\n }\r\n}\r\n\r\n@Pipe({ name: 'PrimaryLinks' })\r\nexport class PrimaryLinksPipe implements PipeTransform {\r\n transform(links : Link[], filterToPrimary: boolean) {\r\n if (links == null)\r\n return [];\r\n return links.filter(l => { return l != null && l.IsPrimary == filterToPrimary; });\r\n }\r\n}","import { MenuBadge } from \"../page/page.models\";\r\nimport { EntityKey, EntityChange } from \"../component/component.models\";\r\nimport { TooltipModel } from '../tooltip/tooltip.component';\r\n\r\n\r\nexport class Link { \r\n public Badge: MenuBadge; //Client-side added\r\n public Text: string;\r\n public Url: string;\r\n public Icon: string;\r\n public Style: string;\r\n public IconName: string;\r\n public Type: LinkBehavior;\r\n public ModalCloseBehavior: ModalCloseBehavior;\r\n public IsPrimary: boolean;\r\n public IsDisabled: boolean;\r\n public Data: any;\r\n public IsProcessing: boolean;\r\n public EntityChanges: EntityChange[];\r\n public Tooltip: TooltipModel;\r\n\r\n constructor(link: Link = null) {\r\n if (link) {\r\n this.Badge = link.Badge;\r\n this.Text = link.Text;\r\n this.Url = link.Url;\r\n this.Icon = link.Icon;\r\n this.Style = link.Style;\r\n this.IconName = link.IconName;\r\n this.Type = link.Type;\r\n this.ModalCloseBehavior = link.ModalCloseBehavior;\r\n this.IsPrimary = link.IsPrimary;\r\n this.IsDisabled = link.IsDisabled;\r\n this.Data = link.Data;\r\n this.IsProcessing = link.IsProcessing;\r\n this.EntityChanges = link.EntityChanges;\r\n this.Tooltip = link.Tooltip;\r\n }\r\n }\r\n}\r\n\r\nexport class MenuItem extends Link {\r\n public SubItems: Link[];\r\n}\r\n\r\nexport enum LinkBehavior {\r\n None,\r\n Navigation,\r\n Back,\r\n Modal,\r\n Tab,\r\n CopyText,\r\n Refresh,\r\n Replace,\r\n Print,\r\n Action,\r\n Refresh_Component,\r\n LinkRedirect\r\n}\r\n\r\n\r\nexport enum ModalCloseBehavior {\r\n None,\r\n Refresh,\r\n RefreshOnSubModalSubmit\r\n}","\r\n\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
","import { Component, ViewContainerRef, ViewEncapsulation, TemplateRef, ViewChild, AfterViewInit, OnDestroy, ElementRef } from '@angular/core';\r\nimport { NavigationService } from '../../services/NavigationService';\r\nimport { ModalService } from '../../services/ModalService';\r\nimport { PresentationService } from '../../services/PresentationService';\r\nimport { ConnectionMessagingService, DefconMessage } from '../../services/ConnectionMessagingService';\r\nimport { InteractService } from '../../services/InteractService';\r\nimport { IndicatorColor } from '../header/header.component';\r\nimport * as $ from 'jquery';\r\n\r\n@Component({\r\n selector: 'app',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.less'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AppComponent implements AfterViewInit, OnDestroy {\r\n ngOnDestroy() {\r\n this.connectionMessaging.UnregisterDefcon(this._defconRegistration);\r\n }\r\n defconMessage: string;\r\n @ViewChild('mobile', { read: TemplateRef, static: true }) mobile: TemplateRef;\r\n @ViewChild('desktop', { read: TemplateRef, static: true}) desktop: TemplateRef;\r\n public Template: TemplateRef;\r\n _defconRegistration: DefconRegistration;\r\n \r\n constructor(viewContainerRef: ViewContainerRef, \r\n modalService: ModalService,\r\n private connectionMessaging: ConnectionMessagingService,\r\n navigationService: NavigationService,\r\n private presentationService: PresentationService) {\r\n modalService.ViewContainerRef = viewContainerRef;\r\n \r\n navigationService.Register(c => {\r\n if (c.Layout == \"Mobile\")\r\n this.Template = this.mobile;\r\n else\r\n this.Template = this.desktop;\r\n }, null);\r\n\r\n this._defconRegistration = new DefconRegistration(d => {\r\n if (d) {\r\n $('app').addClass(`ui-defcon ${IndicatorColor[d.Color]}`);\r\n }\r\n else\r\n {\r\n $('app').removeClass();\r\n }\r\n });\r\n\r\n connectionMessaging.RegisterDefcon(this._defconRegistration)\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.Template = this.desktop;\r\n }\r\n}\r\n\r\nexport class DefconRegistration {\r\n constructor(private cb: (defcon: DefconMessage) => void) {\r\n\r\n }\r\n\r\n updateDefcon(d) {\r\n this.cb(d);\r\n }\r\n}","
\r\n
\r\n

{{data.Title}}

\r\n
{{data.Guidance}}
\r\n
\r\n
\r\n 0 || data.ShowPercent\" [Percent]=\"data.Percent\">\r\n \r\n
\r\n
","import { Component, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NavigationService } from '../../services/NavigationService'\r\nimport { ComponentDefinition } from \"./../component/component.models\";\r\nimport { ApplicationGuidanceModel } from \"./application-guidance.models\";\r\n\r\n@Component({\r\n selector: 'application-guidance',\r\n templateUrl: './application-guidance.component.html',\r\n styleUrls: ['./application-guidance.component.less']\r\n})\r\nexport class ApplicationGuidanceComponent {\r\n public data: ApplicationGuidanceModel;\r\n public SelectedIndex: number = null; \r\n\r\n constructor(compDef: ComponentDefinition) {\r\n this.data = compDef;\r\n }\r\n}\r\n","
\r\n
\r\n
Loading...
\r\n
\r\n
\r\n
Saving...
\r\n
\r\n
\r\n
{{CompDef.State.QuestionSetDescription}}
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n Submit\r\n
\r\n
\r\n Prev\r\n \r\n {{CompDef.State.Progress}}\r\n Finish Later\r\n \r\n Next\r\n
\r\n
\r\n
\r\n \r\n
\r\n Finish\r\n
\r\n
\r\n
","import { Component, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NavigationService, NavigationType } from '../../services/NavigationService'\r\nimport { ModalService } from \"../../services/ModalService\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { Form, FormComponentDefinition, FormComponent, FormMessage, ValidationWrapper } from \"../../components/form/form.component\";\r\nimport { AssessmentService } from \"../../services/AssessmentService\";\r\nimport { AssessmentModel, AssessmentState } from \"./assessment.models\";\r\nimport { ComponentDefinition } from \"../../components/component/component.models\";\r\nimport { forkJoin } from \"rxjs\";\r\n\r\n@Component({\r\n selector: 'assessment',\r\n templateUrl: './assessment.component.html',\r\n styleUrls: ['./assessment.component.less'],\r\n providers: [AssessmentService]\r\n})\r\nexport class AssessmentComponent {\r\n public CompDef: AssessmentModel;\r\n public PageIndex: number;\r\n public State: string;\r\n public IsSinglePage: boolean;\r\n public IsSubmitting: boolean;\r\n public Summary: ComponentDefinition;\r\n private _forms: FormComponent[] = [];\r\n\r\n public readonly STATE_QUESTIONS : string = \"Questions\";\r\n public readonly STATE_LOADING: string = \"Loading\";\r\n public readonly STATE_SAVING: string = \"Saving\";\r\n public readonly STATE_SUMMARY: string = \"Summary\";\r\n\r\n constructor(private _http: HttpClient, \r\n private _navigationService: NavigationService, \r\n compDef: ComponentDefinition, \r\n private _assessmentService: AssessmentService) {\r\n this.CompDef = compDef;\r\n this.PageIndex = this.CompDef.PageIndex;\r\n \r\n // TODO: Pass info in ComponentDefinition to indicate this\r\n this.IsSinglePage = this.CompDef.NumQuestionSets == 1;\r\n\r\n this._assessmentService.RegisterListener((form: FormComponent) =>{ \r\n this._forms.push(form);\r\n });\r\n\r\n // TODO:\r\n //// Remove redundant button panel in mobile:\r\n //$('.ui-modal-bottom-panel').remove();\r\n\r\n this.State = this.STATE_QUESTIONS;\r\n //$scope.PageIndex = $scope.Model.PageIndex;\r\n\r\n //if ($scope.Model.AnswerExplanationTemplate && $scope.Model.AnswerExplanationTemplate.length)\r\n // setAnswerExplanations($scope.Model.AnswerExplanationTemplate);\r\n }\r\n\r\n public FinishLater() {\r\n this.SubmitAnswers(true);\r\n };\r\n\r\n public SubmitAnswers(finishLater: boolean = false) {\r\n this.IsSubmitting = true;\r\n\r\n let visibleForms = this.GetQuestions();\r\n \r\n forkJoin(this._forms.filter((f) => visibleForms.find((v) => v == f.CompDef) != null).map((f) => { return f.AssessmentSubmit(); })) \r\n .subscribe((results : Array<{ ValidationWrapper: ValidationWrapper, ValidatedData: any, StructuredValidatedData: any}>) => {\r\n \r\n if (results.findIndex((r) => r.ValidationWrapper.HasErrors) !== -1) {\r\n // TODO: Scroll to errored form\r\n this.IsSubmitting = false; \r\n return;\r\n }\r\n\r\n this._http.post(\"/Assessment/Save\", {\r\n Name: this.CompDef.Name,\r\n ID: this.CompDef.AssessmentID,\r\n PageIndex: this.PageIndex,\r\n Answers: results.map((r) => r.StructuredValidatedData)\r\n }).subscribe((result : AssessmentState) => {\r\n this.IsSubmitting = false; \r\n let response = result;\r\n \r\n if (response.IsFinished || finishLater) {\r\n if (this.CompDef.RedirectOnFinishUrl)\r\n this._navigationService.Go(this.CompDef.RedirectOnFinishUrl, NavigationType.FullPage);\r\n else\r\n this._navigationService.Go(null, NavigationType.Refresh);\r\n }\r\n else if (response.Summary != null) {\r\n this.Summary = response.Summary;\r\n this.State = this.STATE_SUMMARY;\r\n }\r\n else {\r\n this.CompDef.State = response; \r\n this.PageIndex++;\r\n this._forms = [];\r\n }\r\n // TODO: Handle summary page\r\n });\r\n }, \r\n ((e) => { console.error(e); }), \r\n () => { console.log('completed'); });\r\n };\r\n\r\n public Finish() {\r\n this._navigationService.Go(null, NavigationType.Refresh);\r\n }\r\n\r\n public GetQuestionFormComponents() { \r\n return this.GetQuestions();\r\n }\r\n\r\n public CanGoBack() {\r\n return this.PageIndex > 0;\r\n };\r\n\r\n public GoBack() {\r\n if (this.PageIndex == 0)\r\n return;\r\n\r\n this._forms = [];\r\n this.PageIndex--;\r\n this.State = this.STATE_LOADING;\r\n\r\n this._http.post(\"/Assessment/Get?name=\" + this.CompDef.Name +\"&id=\" + this.CompDef.AssessmentID + \"&pageIndex=\" + this.PageIndex, null)\r\n .subscribe((result: AssessmentState) =>\r\n {\r\n let response = result;\r\n this.State = this.STATE_QUESTIONS;\r\n this.CompDef.State = response;\r\n this.CompDef.ShowInstructions = false;\r\n if (response.AnswerExplanationTemplate && response.AnswerExplanationTemplate.length)\r\n this.SetAnswerExplanations(response.AnswerExplanationTemplate);\r\n // TODO:\r\n //this.$apply();\r\n });\r\n };\r\n\r\n public SetAnswerExplanations(templateName: string) {\r\n // TODO:\r\n //urlUtils.GetTemplate(templateName, function (template) {\r\n // $compile($(template).appendTo($element.find('.ui-assessment-answer-explanations')))($scope);\r\n //});\r\n }\r\n\r\n public GetQuestions() {\r\n let questionFormsToShow: FormComponentDefinition[] = [];\r\n\r\n for (var i = 0; i < this.CompDef.State.QuestionFormComponents.length; i++) {\r\n var questionForm = this.CompDef.State.QuestionFormComponents[i];\r\n\r\n if (!this.IsDependency(questionForm)) {\r\n questionFormsToShow.push(questionForm);\r\n var dependencies = this.GetQualifiedDependencies(questionForm);\r\n for (var j = 0; j < dependencies.length; j++) {\r\n questionFormsToShow.push(dependencies[j]);\r\n }\r\n }\r\n }\r\n\r\n // // HACK: Not sure why the forms aren't available the first time this gets called.\r\n // var allQuestionFormData = this.GetAllQuestionFormData();\r\n // if (allQuestionFormData.length) {\r\n\r\n // }\r\n\r\n // // Clear answers to non-visible questions\r\n // for (var i = 0; i < this.data.QuestionFormComponents.length; i++) {\r\n // var questionForm = this.data.QuestionFormComponents[i];\r\n // var questionFormFound = false;\r\n // for (var j = 0; j < questionFormsToShow.length; j++) {\r\n // // TODO:\r\n // if (questionFormsToShow[j].Form.FieldDefinitions[0].Value == questionForm.Form.FieldDefinitions[0].Value) {\r\n // questionFormFound = true;\r\n // break;\r\n // }\r\n // }\r\n // if (!questionFormFound) {\r\n // // TODO:\r\n // //questionForm.FieldDefinitions[1].Value = null;\r\n // }\r\n // }\r\n\r\n return questionFormsToShow;\r\n };\r\n\r\n public GetQuestionFormClass(questionForm: FormComponentDefinition) {\r\n var classes = \"ui-question-form\";\r\n if (this.IsDependency(questionForm))\r\n classes += \" ui-dependent-question\";\r\n else\r\n classes += \" ui-top-level-question\";\r\n \r\n var questionID = questionForm.Form.FieldDefinitions[0].Value;\r\n var questionDefinition = this.GetQuestionDefinition(questionID);\r\n if (questionDefinition.ShowQuestionAndAnswerOnSameLine)\r\n classes += \" ui-question-answer-same-line\";\r\n return classes;\r\n };\r\n \r\n public IsDependency(questionForm: FormComponentDefinition) {\r\n if (!questionForm || !questionForm.Form.FieldDefinitions)\r\n return;\r\n for (var i = 0; i < this.CompDef.State.QuestionDefinitions.length; i++) {\r\n var questionDefinition = this.CompDef.State.QuestionDefinitions[i];\r\n for (var j = 0; j < questionDefinition.Choices.length; j++) {\r\n for (var k = 0; k < questionDefinition.Choices[j].NextQuestionIDs.length; k++) {\r\n if (questionDefinition.Choices[j].NextQuestionIDs[k] == questionForm.Form.FieldDefinitions[0].Value)\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public GetQualifiedDependencies(questionForm: FormComponentDefinition) {\r\n var dependencies = [];\r\n\r\n var questionID = questionForm.Form.FieldDefinitions[0].Value;\r\n var questionDefnition = this.GetQuestionDefinition(questionID);\r\n\r\n var answer = this.GetQuestionAnswer(questionID);\r\n if (!answer || !answer.length)\r\n return dependencies;\r\n\r\n if (questionDefnition.Choices && questionDefnition.Choices.length) {\r\n for (var j = 0; j < questionDefnition.Choices.length; j++) {\r\n var choice = questionDefnition.Choices[j];\r\n if (choice.Value == answer) {\r\n this.AddToDependencies(dependencies, choice.NextQuestionIDs);\r\n }\r\n }\r\n }\r\n else if (questionDefnition.NumericConditions && questionDefnition.NumericConditions.length) {\r\n var answerAsFloat = parseFloat(answer);\r\n\r\n for (var j = 0; j < questionDefnition.NumericConditions.length; j++) {\r\n var numericCondition = questionDefnition.NumericConditions[j];\r\n\r\n if (numericCondition.SingleComparison) {\r\n var comparisonValueAsFloat = parseFloat(numericCondition.SingleComparison.ComparisonValue);\r\n if (this.CompareValue(answerAsFloat, comparisonValueAsFloat, numericCondition.SingleComparison.ComparisonOperator))\r\n this.AddToDependencies(dependencies, numericCondition.NextQuestionIDs);\r\n }\r\n else if (numericCondition.RangeComparison) {\r\n var comparisonLowerValueAsFloat = parseFloat(numericCondition.RangeComparison.LowerBoundComparisonValue);\r\n var comparisonUpperValueAsFloat = parseFloat(numericCondition.RangeComparison.UpperBoundComparisonValue);\r\n if (this.CompareValue(answerAsFloat, comparisonLowerValueAsFloat, numericCondition.RangeComparison.LowerBoundComparisonOperator) &&\r\n this.CompareValue(answerAsFloat, comparisonUpperValueAsFloat, numericCondition.RangeComparison.UpperBoundComparisonOperator))\r\n this.AddToDependencies(dependencies, numericCondition.NextQuestionIDs);\r\n }\r\n }\r\n }\r\n\r\n return dependencies;\r\n };\r\n\r\n public AddToDependencies(dependencies, nextQuestionIDs) {\r\n for (var i = 0; i < nextQuestionIDs.length; i++) {\r\n var questionForm = this.GetQuestionForm(nextQuestionIDs[i]);\r\n dependencies.push(questionForm);\r\n var childDependencies = this.GetQualifiedDependencies(questionForm);\r\n for (var j = 0; j < childDependencies.length; j++)\r\n dependencies.push(childDependencies[j]);\r\n }\r\n }\r\n\r\n private CompareValue(value, compareToValue, op) {\r\n if (op == \"GT\")\r\n return value > compareToValue;\r\n else if (op == \"GE\")\r\n return value >= compareToValue;\r\n else if (op == \"LT\")\r\n return value < compareToValue;\r\n else if (op == \"LE\")\r\n return value <= compareToValue;\r\n };\r\n\r\n private GetQuestionAnswer(questionID: string) {\r\n var formComponent = this._forms.find(c => c.CompDef.Form.FieldDefinitions.find(f => f.Name == \"QuestionID\" && f.Value == questionID) != null);\r\n if (!formComponent)\r\n return null;\r\n return formComponent.FormGroup.controls[\"Value\"].value;\r\n };\r\n\r\n // private GetAllQuestionFormData() : any[] {\r\n // // TODO:\r\n // //return $($element.find('[ssih-form]')).map(function (i, subform) {\r\n // // var scope = $(subform).children().eq(0).scope();\r\n // // if (!scope)\r\n // // return;\r\n // // return scope.$formData;\r\n // //});\r\n // return [];\r\n // };\r\n\r\n private GetQuestionForm(questionID: string) {\r\n for (var i = 0; i < this.CompDef.State.QuestionFormComponents.length; i++) {\r\n var question = this.CompDef.State.QuestionFormComponents[i];\r\n if (question.Form.FieldDefinitions[0].Value == questionID)\r\n return question;\r\n }\r\n return null;\r\n };\r\n\r\n private GetQuestionDefinition(questionID: string) {\r\n for (var i = 0; i < this.CompDef.State.QuestionDefinitions.length; i++) {\r\n if (this.CompDef.State.QuestionDefinitions[i].ID == questionID)\r\n return this.CompDef.State.QuestionDefinitions[i];\r\n }\r\n };\r\n}\r\n","import { FormComponentDefinition } from \"../../components/form/form.component\";\r\nimport { ComponentDefinition } from \"../../components/component/component.models\";\r\n\r\nexport class AssessmentModel extends ComponentDefinition {\r\n public RedirectOnFinishUrl: string;\r\n public State: AssessmentState;\r\n public NumQuestionSets: number;\r\n public Name: string;\r\n public AssessmentID: number;\r\n public PageIndex: number;\r\n public ShowInstructions: boolean;\r\n}\r\n\r\nexport class AssessmentState {\r\n public IsFinished: boolean;\r\n public Progress: string;\r\n public AnswerExplanationTemplate: string;\r\n public QuestionSetDescription: string;\r\n public QuestionSetInstructions: string;\r\n public QuestionFormComponents: FormComponentDefinition[];\r\n public QuestionDefinitions: Question[]; \r\n public Summary: ComponentDefinition;\r\n}\r\n\r\nexport class Question \r\n{\r\n public ID: string;\r\n public Code: string;\r\n public Label: string;\r\n public Type: AnswerControlType;\r\n public Orientation: AnswerControlTypeOrientation;\r\n public AllowMultiSelect: boolean;\r\n public Choices: QuestionChoice[];\r\n public ShowQuestionAndAnswerOnSameLine: boolean;\r\n public NumericConditions: QuestionNumericCondition[];\r\n public NextQuestionID: string;\r\n public Answer: string;\r\n public IsOptional: boolean;\r\n public HasDefaultedValue: boolean // set on load to know whether answer is default or not\r\n //Set Client Side\r\n public Hidden: any;\r\n public DefaultValue: string\r\n}\r\n\r\nexport class QuestionEvaluation {\r\n public QuestionID: string;\r\n public Hidden: boolean;\r\n public DefaultValue: string;\r\n}\r\n\r\nexport class QuestionChoice {\r\n public Value: string;\r\n public Text: string;\r\n public AdditionalTextOption: AdditionalTextOption;\r\n public NextQuestionIDs: string[];\r\n}\r\n\r\nexport class QuestionNumericCondition {\r\n public SingleComparison: QuestionSingleComparison;\r\n public RangeComparison: QuestionRangeComparison;\r\n public NextQuestionIDs: string[];\r\n}\r\n\r\nexport class QuestionSingleComparison {\r\n public ComparisonOperator: string;\r\n public ComparisonValue: string;\r\n}\r\n\r\nexport class QuestionRangeComparison {\r\n public LowerBoundComparisonValue: string;\r\n public LowerBoundComparisonOperator: string;\r\n public UpperBoundComparisonValue: string;\r\n public UpperBoundComparisonOperator: string;\r\n}\r\n\r\nexport enum AnswerControlType {\r\n None,\r\n Radio,\r\n Dropdown,\r\n YesNo,\r\n PassFail,\r\n Numeric,\r\n Date,\r\n DateTime,\r\n ApproximateMonth,\r\n Text,\r\n TextArea\r\n}\r\n\r\nexport enum AnswerControlTypeOrientation {\r\n None,\r\n Horizontal,\r\n Vertical\r\n}\r\n\r\nexport enum AdditionalTextOption {\r\n None,\r\n Optional,\r\n Required\r\n}","
","\n
\n
An error occurred building this component.
\n
\n Retry\n
\n
\n
\n
\n
{{compDef.Message}}
\n
\n ","import { Component, Input } from '@angular/core';\r\nimport { ComponentDefinition } from \"../../components/component/component.models\";\r\nimport { ConnectionMessagingService } from '../../services/ConnectionMessagingService';\r\n\r\n@Component({\r\n selector: 'async',\r\n template: '
',\r\n})\r\nexport class AsyncComponent {\r\n\r\n constructor(compDef: ComponentDefinition, _connectionMessagingService: ConnectionMessagingService) {\r\n _connectionMessagingService.RequestUpdatedComponent(compDef.ComponentContext);\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'async-error',\r\n template: `\r\n
\r\n
An error occurred building this component.
\r\n
\r\n Retry\r\n
\r\n
\r\n
\r\n
\r\n
{{compDef.Message}}
\r\n
\r\n `,\r\n styleUrls: ['./async-error.component.less']\r\n})\r\nexport class AsyncErrorComponent {\r\n _loading: boolean;\r\n public compDef: AsyncErrorComponentDefinition;\r\n\r\n constructor(public data: ComponentDefinition, private _connectionMessagingService: ConnectionMessagingService) {\r\n this.compDef = data;\r\n }\r\n\r\n retry() {\r\n if (this._loading)\r\n return;\r\n this._loading = true;\r\n\r\n this._connectionMessagingService.RequestUpdatedComponent(this.compDef.ComponentContext);\r\n }\r\n}\r\n\r\n\r\nexport class AsyncErrorComponentDefinition extends ComponentDefinition {\r\n public Message: string;\r\n}","import { Directive, Component, Input, HostBinding, ElementRef } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { StyleAttribute, AttributeTranslator } from \"../../services/AttributeTranslator\";\r\nimport * as $ from 'jquery';\r\n\r\n@Directive({\r\n selector: '[attributes]',\r\n})\r\nexport class AttributesDirective {\r\n\r\n @Input()\r\n public set attributes(att: StyleAttribute[]) {\r\n var results = new AttributeTranslator(att).Results;\r\n $(this._elementRef.nativeElement).css(results.Styles);\r\n if (results.Classes)\r\n results.Classes.forEach(c => { $(this._elementRef.nativeElement).addClass(c) });\r\n\r\n if (results.Actives)\r\n results.Actives.forEach(c => c(this._elementRef));\r\n };\r\n\r\n constructor(private _elementRef: ElementRef) { \r\n }\r\n}","
\r\n
Date: {{data.Data.TimestampFormatted}}
\r\n
\r\n
\r\n
{{detail.Column}}:
\r\n
\r\n
{{detail.OldValue}}
\r\n
\r\n
\r\n
\r\n
\r\n
{{detail.NewValue}}
\r\n
\r\n
","import { Component } from '@angular/core';\r\nimport { AuditTrailDefinition } from \"../../components/audit-trail/audit-trail.models\";\r\nimport { ComponentDefinition } from \"../../components/component/component.models\";\r\n\r\n@Component({\r\n selector: 'audit-trail',\r\n templateUrl: './audit-trail.component.html',\r\n styleUrls: ['./audit-trail.component.less']\r\n})\r\nexport class AuditTrailComponent {\r\n public data: AuditTrailDefinition;\r\n\r\n constructor(compDef: ComponentDefinition) {\r\n this.data = compDef;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
{{data.NoRowsMessage}}
\r\n
\r\n \r\n 0 && Groups.length > 0\" class=\"ui-grid-row ui-grid-header\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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}}
\r\n
{{GetSortIndicatorText(index)}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n","import { Component, \r\n Input, \r\n OnInit,\r\n AfterViewChecked, \r\n ElementRef, \r\n ViewChild, \r\n ViewChildren, \r\n QueryList, \r\n ChangeDetectorRef, \r\n Optional,\r\n OnDestroy\r\n } from '@angular/core';\r\nimport { LinkService } from \"../../services/LinkService\";\r\nimport * as $ from 'jquery';\r\nimport { ActionsComponent } from \"../actions/actions.component\";\r\nimport { InfiniteScrollService } from \"../../services/InfiniteScrollService\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\nimport { Grid, InfiniteScrollResult, GridRow } from \"../grid/grid.models\";\r\nimport { ConnectionMessagingService } from '../../services/ConnectionMessagingService';\r\nimport { PaginationWrapperService } from '../../services/PaginationWrapperService';\r\n\r\n@Component({\r\n selector: 'autosize-grid',\r\n templateUrl: './autosize-grid.component.html',\r\n styleUrls: ['./autosize-grid.component.less'],\r\n})\r\nexport class AutosizeGridComponent implements OnInit, AfterViewChecked, OnDestroy {\r\n public _enableDebugger: boolean;\r\n public data: Grid;\r\n @Input()\r\n public Groups: { Key: string, Rows: any[] }[] = [];\r\n public IsQuerying: boolean;\r\n public SortIndex: number = -1;\r\n public SortReverse: boolean;\r\n private _infiniteID: number;\r\n\r\n @ViewChild('headerAction', { read: ElementRef, static: false }) headerAction : ElementRef;\r\n @ViewChildren(ActionsComponent) actions : QueryList;\r\n\r\n constructor(private _linkService: LinkService, \r\n private _connectionMessagingService: ConnectionMessagingService,\r\n compDef: ComponentDefinition,\r\n @Optional() private _paginationService: PaginationWrapperService,\r\n private _http: HttpClient,\r\n private ChangeDetectorRef : ChangeDetectorRef,\r\n private _elementRef: ElementRef) {\r\n this.data = compDef;\r\n if (this._paginationService && !this._paginationService.UpdateRows)\r\n this._paginationService.UpdateRows = () => {\r\n this.SetGroups();\r\n };\r\n }\r\n\r\n ngOnInit(): void {\r\n this.SetGroups();\r\n if (this.data.UpdateComponent) {\r\n $(this._elementRef.nativeElement).on('grid-item-click', (event, data) => {\r\n this._http.get(data).subscribe((resp: ComponentDefinition) => {\r\n this._connectionMessagingService.UpdateComponent(resp);\r\n })\r\n })\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n let maxWidth = 0;\r\n for(let action of this.actions.toArray())\r\n if (action.Width > maxWidth)\r\n maxWidth = action.Width;\r\n\r\n if (this.headerAction)\r\n $(this.headerAction.nativeElement).width(maxWidth);\r\n\r\n this.actions.forEach(c => c.Width = maxWidth);\r\n }\r\n\r\n public MouseEnter(row: GridRow) {\r\n $(this._elementRef.nativeElement).trigger('grid-item-mouse-enter', row.Model);\r\n }\r\n\r\n public MouseLeave(row: GridRow) {\r\n $(this._elementRef.nativeElement).trigger('grid-item-mouse-leave', row.Model);\r\n }\r\n\r\n public GetHeaderColumnWidth(index: number)\r\n {\r\n var column = this.Groups[0].Rows[0].Columns[index];\r\n if (column.WidthInPixels > 0)\r\n return column.WidthInPixels + \"px\";\r\n return column.Width + \"%\"; \r\n }\r\n\r\n public SortBy(index: number) {\r\n if (this.data.DisableSorting)\r\n return;\r\n this.SortReverse = (index != this.SortIndex) ? false : !this.SortReverse;\r\n this.SortIndex = index;\r\n \r\n if (this._paginationService) {\r\n this._paginationService.OnSortChange(this.data.HeaderRow[index], this.SortReverse);\r\n return;\r\n }\r\n\r\n\r\n this.SortIndex = index;\r\n this.SetGroups();\r\n this.ChangeDetectorRef.detectChanges();\r\n }\r\n\r\n public GetSortIndicatorText(index: number) {\r\n if (index != this.SortIndex)\r\n return \"\";\r\n if (!this.SortReverse)\r\n return \"keyboard_arrow_downward\";\r\n else\r\n return \"keyboard_arrow_upward\";\r\n }\r\n\r\n public SetGroups() {\r\n this.Groups = [];\r\n //var unadded = this.data.Rows.filter(function (row) { return typeof row.$$hashKey === typeof undefined });\r\n //Unadded is used by infinite scroll - the rows list is just appended to - so passing in elements already in the group.\r\n //when infinite scrolsl are autoupdating -- need to loop through the list instead;\r\n // if (unadded == 0)\r\n // unadded = rows;\r\n // for (var i = 0; i < unadded.length; i++) {\r\n // var row = unadded[i];\r\n // var group = getGroup(row, groups);\r\n // group.rows.push(row);\r\n // }\r\n let sortedRows: GridRow[];\r\n if (this.SortIndex == -1 || this._paginationService)\r\n sortedRows = this.data.Rows;\r\n else\r\n sortedRows = this.data.Rows.sort((a, b) => \r\n { \r\n return (this.GetSortableValue(a.Columns[this.SortIndex]) > this.GetSortableValue(b.Columns[this.SortIndex])) ? 1 : \r\n (this.GetSortableValue(b.Columns[this.SortIndex]) > this.GetSortableValue(a.Columns[this.SortIndex])) ? -1 : 0;\r\n });\r\n\r\n if (this.SortReverse && !this._paginationService)\r\n sortedRows = sortedRows.reverse();\r\n\r\n for (var i = 0; i < sortedRows.length; i++) {\r\n var row = sortedRows[i];\r\n var group = this.GetGroup(row);\r\n group.Rows.push(row);\r\n }\r\n\r\n // this.data.Rows = [];\r\n }\r\n\r\n private GetSortableValue(column: any) {\r\n switch(column.Type) {\r\n case \"MediaBoxGridColumn\":\r\n return column.MediaBox.PrimaryText;\r\n case \"PercentageGridColumn\":\r\n return column.Percent;\r\n }\r\n if (column.SortingValue != undefined)\r\n return column.SortingValue\r\n return column.Value;\r\n }\r\n\r\n private GetGroup(row: GridRow) {\r\n for (var i = 0; i < this.Groups.length; i++) {\r\n let groupInner = this.Groups[i];\r\n if (groupInner.Key == row.GroupKey)\r\n return groupInner;\r\n }\r\n\r\n var group = {\r\n Key: row.GroupKey,\r\n Rows: []\r\n }\r\n this.Groups.push(group);\r\n\r\n return group;\r\n }\r\n\r\n public RowClick(row: GridRow) {\r\n if (row.RowAction != null)\r\n this._linkService.Go(row.RowAction);\r\n if (this.data.IndicateSelectable) {\r\n this.data.Rows.map(c => { c.Selected = false; c._CalculatedClasses = null; });\r\n row.Selected = true;\r\n row._CalculatedClasses = null;\r\n }\r\n $(this._elementRef.nativeElement).trigger('grid-row-click', row.Model);\r\n }\r\n\r\n public ShowNoResults() {\r\n return this.data.NoRowsMessage && (!this.Groups.length);\r\n }\r\n\r\n public GetRowClass(row: GridRow) {\r\n if (!row._CalculatedClasses)\r\n row._CalculatedClasses = {\r\n 'pointer': !!row.RowAction || !!row.Model,\r\n 'ui-selectable': this.data.IndicateSelectable,\r\n 'ui-selected': row.Selected,\r\n 'ui-zebra-stripe': this.data.ZebraStripedRows,\r\n };\r\n return row._CalculatedClasses;\r\n }\r\n\r\n public GetHeaderClass(index: number) {\r\n let headerClass = \"ui-column-header\";\r\n let column = this.Groups[0].Rows[0].Columns[index];\r\n if (column.TextAlignRight)\r\n headerClass += \" ui-right-aligned-column\";\r\n return headerClass;\r\n }\r\n}","\r\n","import { Input, ElementRef, AfterViewInit, Component } from \"@angular/core\";\r\nimport { MediaCircle, MediaCircleType, MediaCircleGradient } from \"../media-box/media-box.models\";\r\nimport * as $ from 'jquery';\r\n\r\n@Component({\r\n selector: 'avatar',\r\n templateUrl: 'avatar.component.html',\r\n styleUrls: ['avatar.component.less']\r\n \r\n})\r\nexport class AvatarComponent implements AfterViewInit {\r\n @Input() public mediaCircle: MediaCircle;\r\n\r\n constructor(private _elementRef: ElementRef) { }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.mediaCircle.PieChart)\r\n return;\r\n\r\n var $canvas = $('canvas', this._elementRef.nativeElement);\r\n var context = ($canvas[0]).getContext('2d');\r\n \r\n if (this.mediaCircle.Type == MediaCircleType.Image) {\r\n var image = new Image();\r\n image.addEventListener('load', () => {\r\n context.drawImage(image, 0, 0, 50, 50);\r\n }, false);\r\n image.src = this.mediaCircle.Content;\r\n }\r\n else if (this.mediaCircle.Type == MediaCircleType.Fixed_Background) {\r\n var gradient = context.createLinearGradient(0, 0, 1, 1);\r\n \r\n gradient.addColorStop(0, this.mediaCircle.FixedBackgroundColor);\r\n gradient.addColorStop(1, this.mediaCircle.FixedBackgroundColor);\r\n context.fillStyle = gradient;\r\n \r\n context.beginPath();\r\n context.arc(25, 25, 25, 0, Math.PI * 2, true); // Outer circle\r\n context.fill();\r\n\r\n this.drawContent(context);\r\n }\r\n else if (this.mediaCircle.Type == MediaCircleType.Content_Gradient) {\r\n var gradient = context.createLinearGradient(0, 0, 50, 50);\r\n \r\n if(this.mediaCircle.Gradient == MediaCircleGradient.GreyBlue){\r\n var lowerGradientMinimumSat = 10;\r\n var lowerGradientMaximumSat = 80;\r\n var upperGradientMinimumSat = 50;\r\n var upperGradientMaximumSat = 100; \r\n \r\n var upperGradientValue = ((this.mediaCircle.GradientWeight - upperGradientMinimumSat) / (upperGradientMaximumSat - upperGradientMinimumSat)) * (100)\r\n var lowerGradientValue = ((this.mediaCircle.GradientWeight - lowerGradientMinimumSat) / (lowerGradientMaximumSat - lowerGradientMinimumSat)) * (100)\r\n \r\n gradient.addColorStop(0, \"hsl(200,\"+lowerGradientValue+\"%,70%)\");\r\n gradient.addColorStop(1, \"hsl(200,\"+upperGradientValue+\"%,50%)\");\r\n }\r\n else if(this.mediaCircle.Gradient == MediaCircleGradient.RedYellowGreen){\r\n var gradientHue = ((this.mediaCircle.GradientWeight) / (120)) * (100);\r\n var gradientSaturation = 50;\r\n var gradientLight = 50; \r\n gradient.addColorStop(0, `hsl(${gradientHue},${gradientSaturation}%,${gradientLight}%)`);\r\n gradient.addColorStop(1, `hsl(${gradientHue},${gradientSaturation - 20}%,${gradientLight}%)`);\r\n }\r\n \r\n context.fillStyle = gradient;\r\n context.beginPath();\r\n context.arc(25, 25, 25, 0, Math.PI * 2, true); // Outer circle\r\n context.fill();\r\n\r\n this.drawContent(context);\r\n }\r\n }\r\n\r\n private drawContent(context: CanvasRenderingContext2D) {\r\n if (this.mediaCircle.StructuredContent.length) {\r\n let firstTextBaseLine: CanvasTextBaseline = 'middle';\r\n let firstTextMaxWidth = 25;\r\n if (this.mediaCircle.StructuredContent.length > 1) {\r\n firstTextBaseLine = undefined;\r\n firstTextMaxWidth = 23;\r\n }\r\n\r\n this.drawText(context, this.mediaCircle.StructuredContent[0].Value, firstTextBaseLine, this.mediaCircle.StructuredContent[0].Font, firstTextMaxWidth)\r\n\r\n if (this.mediaCircle.StructuredContent.length > 1)\r\n this.drawText(context, this.mediaCircle.StructuredContent[1].Value, 'top', this.mediaCircle.StructuredContent[1].Font, 30);\r\n }\r\n else if (this.mediaCircle.Content)\r\n this.drawText(context, this.mediaCircle.Content, 'middle');\r\n }\r\n\r\n private drawText(context: CanvasRenderingContext2D, text: string, textBaseLine: CanvasTextBaseline, font?: string, maxWidth?: number) {\r\n context.fillStyle = context.createLinearGradient(0, 0, 1, 1);\r\n context.fillStyle.addColorStop(0, \"white\");\r\n context.fillStyle.addColorStop(1, \"white\");\r\n context.beginPath();\r\n context.font = font || \"bold 24px sans-serif\";\r\n context.textAlign = \"center\";\r\n context.textBaseline = textBaseLine;\r\n\r\n context.fillText(text, 25, maxWidth || 25);\r\n }\r\n}","
\r\n
\r\n
{{CompDef.NoRowsMessage}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Input, ElementRef } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NavigationService } from '../../services/NavigationService'\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\nimport { CardListModel, CardListRow, CardListCardWidth } from \"./card-list.models\";\r\nimport { LinkService } from \"../../services/LinkService\";\r\nimport * as $ from 'jquery';\r\n\r\n@Component({\r\n selector: 'card-list',\r\n templateUrl: './card-list.component.html',\r\n styleUrls: ['./card-list.component.less']\r\n})\r\nexport class CardListComponent {\r\n public CompDef: CardListModel;\r\n public SelectedIndex: number = null; \r\n public IsQuerying: boolean;\r\n\r\n constructor(compDef: ComponentDefinition, \r\n private _linkService: LinkService, \r\n private _elementRef: ElementRef,\r\n private _navigationService: NavigationService) {\r\n this.CompDef = compDef;\r\n }\r\n \r\n public RowClick(row: CardListRow) {\r\n if (row.RowAction != null)\r\n this._linkService.Go(row.RowAction);\r\n\r\n $(this._elementRef.nativeElement).trigger('grid-row-click', row.Model);\r\n }\r\n\r\n public ShowNoResults() {\r\n return this.CompDef.NoRowsMessage && (!this.CompDef.Rows || this.CompDef.Rows.length == 0);\r\n }\r\n\r\n public GetCardListClass() {\r\n switch (this.CompDef.CardWidth) {\r\n case CardListCardWidth._2_Column:\r\n return \"ui-card-list-columns-2\";\r\n case CardListCardWidth._3_Column:\r\n return \"ui-card-list-columns-3\";\r\n case CardListCardWidth._4_Column:\r\n return \"ui-card-list-columns-4\";\r\n case CardListCardWidth._5_Column:\r\n return \"ui-card-list-columns-5\";\r\n case CardListCardWidth.Small:\r\n return \"ui-card-list-small\";\r\n }\r\n }\r\n\r\n public GetRowClass(row: CardListRow) {\r\n if (!row._CalculatedClasses)\r\n row._CalculatedClasses = {\r\n 'card-pointer': !!row.RowAction || !!row.Model\r\n };\r\n return row._CalculatedClasses;\r\n }\r\n}\r\n","\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\nimport { Link } from \"../actions/actions.models\";\r\nimport { StyleAttribute } from \"../../services/AttributeTranslator\";\r\nimport { CardComponent } from \"../card/card.component\";\r\nimport { CardModel } from \"../card/card.models\";\r\n\r\nexport class CardListModel extends ComponentDefinition {\r\n public Rows: CardListRow[];\r\n public CardWidth: CardListCardWidth;\r\n public NoRowsMessage: string;\r\n public UpdateComponent: boolean;\r\n}\r\n\r\nexport enum CardListCardWidth {\r\n None,\r\n _1_Column,\r\n _2_Column,\r\n _3_Column,\r\n _4_Column,\r\n _5_Column,\r\n Small,\r\n}\r\n\r\nexport class CardListRow {\r\n public Card: CardModel;\r\n public Actions: Link[];\r\n public RowAction: Link;\r\n public Model: any;\r\n\r\n public _CalculatedClasses: any;\r\n}\r\n","import { Component, Input, OnInit, Directive, ViewChild, AfterViewInit, ElementRef, ComponentFactoryResolver, ViewContainerRef, Injector, Type, InjectionToken } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators, AbstractControl } from \"@angular/forms\";\r\nimport { CardFieldDefinition } from \"./card.models\";\r\nimport { CustomizationService } from \"../../services/CustomizationService\";\r\nimport { SimpleFieldComponent } from './fieldcomponents/simple-field.component';\r\nimport { CommentCardFieldComponent } from \"./fieldcomponents/comment-card-field.component\";\r\nimport { LinkCardFieldComponent } from \"./fieldcomponents/link-card-field.component\";\r\nimport { ComponentCardFieldComponent } from \"./fieldcomponents/component-card-field.component\";\r\nimport { MediaBoxCardFieldComponent } from \"./fieldcomponents/media-box-card-field.component\";\r\nimport { ImageCardFieldComponent } from \"./fieldcomponents/image-card-field.component\";\r\nimport { IconCardFieldComponent } from \"./fieldcomponents/icon-card-field.component\";\r\nimport { HighlightedMessageCardFieldComponent } from './fieldcomponents/highlighted-message-card-field.component';\r\n\r\nconst fields = {\r\n \"SimpleFieldComponent\": SimpleFieldComponent,\r\n \"CommentCardFieldComponent\": CommentCardFieldComponent,\r\n \"LinkCardFieldComponent\": LinkCardFieldComponent,\r\n \"ComponentCardFieldComponent\": ComponentCardFieldComponent,\r\n \"HighlightedMessageCardFieldComponent\": HighlightedMessageCardFieldComponent,\r\n \"MediaBoxCardFieldComponent\": MediaBoxCardFieldComponent,\r\n \"ImageCardFieldComponent\": ImageCardFieldComponent,\r\n \"IconCardFieldComponent\": IconCardFieldComponent\r\n};\r\n\r\n@Directive({\r\n selector: '[card-field]', \r\n})\r\nexport class CardFieldDirective {\r\n @Input() \r\n set field(value: CardFieldDefinition) {\r\n var type = fields[value.Type+'FieldComponent'];\r\n\r\n if (!type) {\r\n type = this._customizationService.Get(value.Type+'FieldComponent');\r\n }\r\n\r\n if (!type)\r\n {\r\n console.log('Unable to find type: '+value.Type+'FieldComponent');\r\n return;\r\n }\r\n let componentFactory = this._componentFactoryResolver.resolveComponentFactory(type);\r\n var component = this._viewContainerRef.createComponent(componentFactory, null, new DataInjector(this._injector, value));\r\n }\r\n\r\n constructor(private _componentFactoryResolver: ComponentFactoryResolver, \r\n private _viewContainerRef: ViewContainerRef, \r\n private _injector: Injector, \r\n private _customizationService: CustomizationService) { }\r\n}\r\n\r\nclass DataInjector extends Injector {\r\n constructor(private baseInjector: Injector, private _fieldDefinition: CardFieldDefinition) {\r\n super();\r\n }\r\n\r\n get(token: Type | InjectionToken, notFoundValue?: T): T;\r\n get(token: any, notFoundValue?: any);\r\n get(token: any, notFoundValue?: any) {\r\n if (token == CardFieldDefinition)\r\n return this._fieldDefinition;\r\n return this.baseInjector.get(token, notFoundValue);\r\n }\r\n}","
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
{{ShowSubLayout ? 'keyboard_arrow_up' : 'keyboard_arrow_down'}}
\r\n
{{CompDef.Card.SubTitle}}
\r\n \r\n
\r\n","import { Component, Input, HostBinding, ElementRef, AfterViewInit, ChangeDetectorRef, ChangeDetectionStrategy, OnDestroy } from '@angular/core';\r\nimport { NavigationService } from '../../services/NavigationService'\r\nimport { CardModel } from \"./card.models\";\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\nimport { LayoutService, LayoutInstance } from '../layout/layout.component';\r\nimport * as $ from 'jquery';\r\nimport { ComponentRegistration } from '../../services/ComponentRegistration';\r\nimport { ConnectionMessagingService } from '../../services/ConnectionMessagingService';\r\n\r\n@Component({\r\n selector: 'card',\r\n templateUrl: './card.component.html',\r\n styleUrls: ['./card.component.less'],\r\n providers: [LayoutService],\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class CardComponent implements AfterViewInit, OnDestroy {\r\n ShowSubLayout: boolean = false;\r\n\r\n @Input()\r\n public CompDef: CardModel;\r\n _handler: ComponentRegistration;\r\n _isInited: boolean;\r\n\r\n InitializeCard(compDef: ComponentDefinition) {\r\n this.CompDef = compDef;\r\n this.ShowSubLayout = this.CompDef.Card.Expand && !!this.CompDef.Card.SubLayout;\r\n this._layoutService.Layouts = [];\r\n let layout = new LayoutInstance();\r\n this._layoutService.Layouts.push(layout)\r\n layout.cardFields = this.CompDef.Card.Fields;\r\n layout.objectName = this.CompDef.Card.Name;\r\n layout.LayoutDefinition = this.CompDef.Card.Layout;\r\n let layout2 = new LayoutInstance();\r\n this._layoutService.Layouts.push(layout2);\r\n layout2.objectName = this.CompDef.Card.Name;\r\n layout2.cardFields = this.CompDef.Card.Fields;\r\n layout2.LayoutDefinition = this.CompDef.Card.SubLayout;\r\n this._layoutService.OnChange.emit();\r\n if (this._isInited)\r\n this._changeDetector.detectChanges();\r\n this._isInited = true;\r\n }\r\n\r\n constructor(compDef: ComponentDefinition, private _layoutService: LayoutService, private _elementRef: ElementRef, private _connectionMessagingService: ConnectionMessagingService, private _changeDetector: ChangeDetectorRef) {\r\n this.InitializeCard(compDef);\r\n this._handler = new ComponentRegistration(compDef, null, this, null); \r\n this._connectionMessagingService.RegisterComponentHandler(this._handler);\r\n }\r\n \r\n ngAfterViewInit(): void {\r\n // if (this.CompDef.HasMaterialBackground)\r\n // $(this._elementRef.nativeElement).addClass(\"no-background\");\r\n }\r\n\r\n public Click() {\r\n if (this.CompDef.Card.SubLayout)\r\n { \r\n this.ShowSubLayout = !this.ShowSubLayout;\r\n this.CompDef.Card.Expand = !this.CompDef.Card.Expand;\r\n $('.ui-card-secondary',this._elementRef.nativeElement).remove();\r\n }\r\n }\r\n\r\n @HostBinding('class') \r\n public get Class() {\r\n var styles = \"\"\r\n if (this.CompDef && this.CompDef.Card.Primary) \r\n styles = \"ui-primary-background\";\r\n if (this.CompDef.Card.IndicatorColorStyle)\r\n styles += \" \" + this.CompDef.Card.IndicatorColorStyle;\r\n return styles;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._connectionMessagingService.RemoveComponentHandler(this._handler);\r\n }\r\n}\r\n","import { ComponentDefinition } from \"../component/component.models\";\r\nimport { TableLayoutField } from \"../layout/layout.models\";\r\nimport { StyleAttribute } from \"../../services/AttributeTranslator\";\r\nimport { Link } from \"../actions/actions.models\";\r\nimport { TooltipModel } from \"../tooltip/tooltip.component\";\r\n\r\nexport class CardModel extends ComponentDefinition {\r\n public Card: CardDefinition;\r\n public UpdateComponent: boolean;\r\n}\r\n\r\nexport class CardDefinition {\r\n public Name: string;\r\n public SubTitle: string;\r\n public SubTitleTooltip: TooltipModel;\r\n public Layout: TableLayoutField[];\r\n public SubLayout: TableLayoutField[];\r\n public Fields: CardFieldDefinition[];\r\n public Actions: Link[];\r\n public Primary: boolean;\r\n public Expand: boolean;\r\n public IndicatorColorStyle: string;\r\n}\r\n\r\nexport class CardFieldDefinition {\r\n public Type: string;\r\n public Name: string;\r\n public Label: string;\r\n public Tooltip: TooltipModel;\r\n public Value: any;\r\n public Attributes: StyleAttribute[];\r\n}\r\n"," \n
\n
{{field.Label}}
\n \n
\n ","import { Component, ElementRef } from \"@angular/core\";\r\nimport { FieldDefinition } from \"../../form/form.component\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport { CardFieldDefinition } from \"../card.models\";\r\n// import \"./jquery-ui-timepicker-addon\"\r\n\r\n@Component({\r\n template: ` \r\n
\r\n
{{field.Label}}
\r\n \r\n
\r\n `,\r\n styleUrls: ['../card-field.component.less']\r\n\r\n})\r\nexport class CommentCardFieldComponent {\r\n constructor(public field: CardFieldDefinition) {\r\n }\r\n}"," \n
\n
{{field.Label}}
\n \n
\n ","import { Component, ElementRef } from \"@angular/core\";\r\nimport { FieldDefinition } from \"../../form/form.component\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport { CardFieldDefinition } from \"../card.models\";\r\n// import \"./jquery-ui-timepicker-addon\"\r\n\r\n@Component({\r\n template: ` \r\n
\r\n
{{field.Label}}
\r\n \r\n
\r\n `,\r\n styleUrls: ['../card-field.component.less']\r\n\r\n})\r\nexport class ComponentCardFieldComponent {\r\n constructor(public field: CardFieldDefinition) {\r\n }\r\n}"," \n
\n
{{field.Value}}
\n
\n ","import { Component, ElementRef } from \"@angular/core\";\r\nimport { FieldDefinition } from \"../../form/form.component\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport { CardFieldDefinition } from \"../card.models\";\r\n// import \"./jquery-ui-timepicker-addon\"\r\n\r\n@Component({\r\n template: ` \r\n
\r\n
{{field.Value}}
\r\n
\r\n `,\r\n styleUrls: ['../card-field.component.less']\r\n\r\n})\r\nexport class HighlightedMessageCardFieldComponent {\r\n constructor(public field: CardFieldDefinition) {\r\n }\r\n}"," \n
\n {{field.Value}}\n
\n ","import { Component, ElementRef } from \"@angular/core\";\r\nimport { FieldDefinition } from \"../../form/form.component\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport { LinkService } from \"../../../services/LinkService\";\r\nimport { CardFieldDefinition } from \"../card.models\";\r\n// import \"./jquery-ui-timepicker-addon\"\r\n\r\n@Component({\r\n template: ` \r\n
\r\n {{field.Value}}\r\n
\r\n `,\r\n styleUrls: ['../card-field.component.less'],\r\n})\r\nexport class IconCardFieldComponent {\r\n constructor(public field: CardFieldDefinition, private _linkService: LinkService) {\r\n }\r\n}"," \n
\n
{{field.Label}}
\n \n
\n ","import { Component, ElementRef } from \"@angular/core\";\r\nimport { FieldDefinition } from \"../../form/form.component\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport { LinkService } from \"../../../services/LinkService\";\r\nimport { CardFieldDefinition } from \"../card.models\";\r\n// import \"./jquery-ui-timepicker-addon\"\r\n\r\n@Component({\r\n template: ` \r\n
\r\n
{{field.Label}}
\r\n \r\n
\r\n `,\r\n styleUrls: ['../card-field.component.less'],\r\n})\r\nexport class ImageCardFieldComponent {\r\n constructor(public field: CardFieldDefinition, private _linkService: LinkService) {\r\n }\r\n}"," \n
\n
{{field.Label}}
\n
{{field.Value.DisplayText}}
\n
\n ","import { Component, ElementRef } from \"@angular/core\";\r\nimport { FieldDefinition } from \"../../form/form.component\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport { LinkService } from \"../../../services/LinkService\";\r\nimport { CardFieldDefinition } from \"../card.models\";\r\n// import \"./jquery-ui-timepicker-addon\"\r\n\r\n@Component({\r\n template: ` \r\n
\r\n
{{field.Label}}
\r\n
{{field.Value.DisplayText}}
\r\n
\r\n `,\r\n styleUrls: ['../card-field.component.less']\r\n\r\n})\r\nexport class LinkCardFieldComponent {\r\n constructor(public field: CardFieldDefinition, private _linkService: LinkService) {\r\n }\r\n\r\n public LinkClicked() {\r\n this._linkService.Go(this.field.Value.Link);\r\n }\r\n}"," \n
\n
\n
\n ","import { Component, ElementRef } from \"@angular/core\";\r\nimport { FieldDefinition } from \"../../form/form.component\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport { CardFieldDefinition } from \"../card.models\";\r\n// import \"./jquery-ui-timepicker-addon\"\r\n\r\n@Component({\r\n template: ` \r\n
\r\n
\r\n
\r\n `,\r\n styleUrls: ['../card-field.component.less']\r\n\r\n})\r\nexport class MediaBoxCardFieldComponent {\r\n constructor(public field: CardFieldDefinition) {\r\n }\r\n}"," \n
\n
{{field.Label}}
\n
{{field.Value}}
\n
\n ","import { Component } from \"@angular/core\";\r\nimport { CardFieldDefinition } from \"../card.models\";\r\n\r\n@Component({\r\n template: ` \r\n
\r\n
{{field.Label}}
\r\n
{{field.Value}}
\r\n
\r\n `,\r\n styleUrls: ['../card-field.component.less']\r\n\r\n})\r\nexport class SimpleFieldComponent {\r\n constructor(public field: CardFieldDefinition) {\r\n }\r\n}","\r\n\r\n
\r\n
\r\n \r\n {{entry.Name}}\r\n
\r\n
","import { Component, Input, ElementRef, Pipe, PipeTransform, AfterViewInit } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NavigationService } from '../../services/NavigationService';\r\nimport * as $ from 'jquery';\r\ndeclare var d3: any;\r\ndeclare var nv: any;\r\nimport * as moment from 'moment';\r\nimport { ChartDefinition, Chart, ChartType, ChartXAxisOptions, AxisType } from \"./chart.models\";\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\n\r\n@Component({\r\n selector: 'chart',\r\n templateUrl: './chart.component.html',\r\n styleUrls: ['./chart.component.less']\r\n})\r\nexport class ChartComponent implements AfterViewInit {\r\n @Input()\r\n private _selectedChart: Chart;\r\n private _id: any;\r\n public data: ChartDefinition;\r\n\r\n constructor(private _elementRef: ElementRef, data: ComponentDefinition) {\r\n this.data = data;\r\n }\r\n\r\n ngAfterViewInit() {\r\n $(this._elementRef.nativeElement).css('display', 'block');\r\n var width = $(this._elementRef.nativeElement).outerWidth();\r\n var height = 300;\r\n this._selectedChart = this.data.ChartSet.Charts[0];\r\n if(!this._selectedChart) return;\r\n //todo: store selected chart in localstorage\r\n this.Render(); \r\n }\r\n\r\n public ShowOptions() {\r\n return this.data.ChartSet.Charts.length > 1;\r\n }\r\n\r\n public Render() {\r\n $('.nvtooltip').remove();\r\n this._id = \"chart\" + Math.floor(Math.random() * 10000000);\r\n $(this._elementRef.nativeElement).append('');\r\n\r\n nv.addGraph(\r\n () => { \r\n let chart: any;\r\n \r\n switch(this._selectedChart.PrimaryType) {\r\n case ChartType.Bar:\r\n chart = nv.models.multiBarChart().showControls(false);\r\n break;\r\n case ChartType.Line:\r\n chart = nv.models.lineChart();\r\n break;\r\n case ChartType.StackedArea:\r\n chart = nv.models.stackedAreaChart().showControls(false);\r\n break;\r\n case ChartType.None:\r\n case ChartType.StackedBar:\r\n chart = nv.models.multiBarChart().rotateLabels(-45).reduceXTicks(false).showControls(false).groupSpacing(0.1);\r\n chart.multibar.stacked(true);\r\n break;\r\n case ChartType.LineAndBar:\r\n chart = nv.models.linePlusBarChart();\r\n this.SetupXAxis(chart, this._selectedChart.XAxisOptions);\r\n chart.y1Axis.tickFormat(d3.format(\",.0f\"));\r\n chart.y2Axis.tickFormat(d3.format(\".2s\"));\r\n chart.bars.forceY([0]).padData(false);\r\n chart.focusEnable(false);\r\n chart.switchYAxisOrder(true);\r\n window.setTimeout(function () {\r\n var $elt = d3.select(\".nv-linesWrap .nv-line path\");\r\n $elt.style(\"stroke-width\", \"3px\");\r\n $elt.style(\"stroke\", \"hsl(445,20%,20%)\");\r\n });\r\n break;\r\n case ChartType.Scatter:\r\n chart = nv.models.scatterChart();\r\n this.SetupXAxis(chart, this._selectedChart.XAxisOptions);\r\n chart.color(['green', 'red'])\r\n break;\r\n case ChartType.Pie:\r\n chart = nv.models.pieChart();\r\n chart.showTooltipPercent(true);\r\n if (this._selectedChart.Series[0].YAxisOptions.TickFormat)\r\n chart.valueFormat(d3.format(this._selectedChart.Series[0].YAxisOptions.TickFormat));\r\n\r\n if (this._selectedChart.HideLabels)\r\n chart.showLabels(false);\r\n else if (this._selectedChart.LabelsOutside)\r\n chart.labelsOutside(true);\r\n\r\n break;\r\n }\r\n\r\n if (this._selectedChart.Series[0].YAxisOptions.Title) {\r\n chart.yAxis.axisLabel(this._selectedChart.Series[0].YAxisOptions.Title);\r\n window.setTimeout(function () {\r\n var $elt = d3.select(\".nv-y\").select(\"text.nv-axislabel\");\r\n $elt.attr(\"transform\", \"rotate(-90)\");\r\n $elt.attr('y', parseInt($elt.attr('y')) + 15);\r\n });\r\n }\r\n\r\n if (this._selectedChart.Margin) {\r\n chart.margin(this._selectedChart.Margin);\r\n }\r\n\r\n if(this._selectedChart.ShowLegend){\r\n chart.showLegend(true);\r\n //chart.legend.vers('furious');\r\n } //Show the legend, allowing users to turn on/off line series.\r\n \r\n if (chart.yAxis) { //LinePlusBar doesn't have yAxis, but y1Axis and y2Axis, which it handles\r\n if (this._selectedChart.Series[0].YAxisOptions.TickFormat)\r\n chart.yAxis.tickFormat(d3.format(this._selectedChart.Series[0].YAxisOptions.TickFormat))\r\n else\r\n chart.yAxis.tickFormat(d3.format(\",.0f\"))\r\n \r\n chart.showYAxis(true) //Show the y-axis\r\n .showXAxis(true); //Show the x-axis;\r\n\r\n this.SetupXAxis(chart, this._selectedChart.XAxisOptions);\r\n }\r\n\r\n var stackedAreaData: any = this._selectedChart\r\n .Series\r\n .map((series, i) => {\r\n return {\r\n key: series.Name,\r\n bar: i == 0,\r\n values: series.Points.map((chartDataPoint) => {\r\n if (this._selectedChart.XAxisOptions.Type == AxisType.Bucket)\r\n return {\r\n x: chartDataPoint.X,\r\n y: chartDataPoint.Y,\r\n // url: dataInstance.Url\r\n }\r\n else if (this._selectedChart.XAxisOptions.Type == AxisType.Number)\r\n return {\r\n x: chartDataPoint.X,\r\n y: chartDataPoint.Y,\r\n size: chartDataPoint.Size\r\n // url: dataInstance.Url\r\n }\r\n\r\n return {\r\n x: (moment(chartDataPoint.XDate)).valueOf(),\r\n y: chartDataPoint.Y,\r\n // url: dataInstance.Url\r\n };\r\n })\r\n };\r\n });\r\n\r\n if (this._selectedChart.PrimaryType == ChartType.Pie) {\r\n stackedAreaData = stackedAreaData[0].values;\r\n }\r\n\r\n // if (this._selectedChart.Series && this._selectedChart.Series.length && this._selectedChart.Series[0].Color)\r\n // chart.color(this._selectedChart.Series.map(function (e) { return e.Color; }));\r\n \r\n \r\n d3.select('#' + this._id) \r\n .style('height', '300px')\r\n .datum(stackedAreaData) \r\n .call(chart); \r\n\r\n nv.utils.windowResize(function () { chart.update() });\r\n return chart;\r\n },\r\n (chart) => {\r\n d3.selectAll(\".nv-bar\").on('click',\r\n (e) => {\r\n // todo;\r\n console.log('Navigation not implemented')\r\n // if (e.url)\r\n // $scope.$emit('navigation', { url: e.url });\r\n });\r\n if (this._selectedChart.XAxisOptions.Type === AxisType.Bucket)\r\n $(this._elementRef.nativeElement).find('.nv-x .tick text').css('opacity', '1');\r\n });\r\n }\r\n\r\n public SetupXAxis(chart: any, xaxis: ChartXAxisOptions) {\r\n if (xaxis.Type == AxisType.Date) {\r\n chart.xAxis //Chart x-axis settings\r\n .axisLabel('Date')\r\n .tickFormat((d) => {\r\n return moment(d).format(xaxis.TickFormat);\r\n });\r\n }\r\n else if(xaxis.Type == AxisType.String)\r\n return;\r\n else {\r\n chart.xAxis.rotateLabels(-45).showMaxMin(false);\r\n }\r\n\r\n // if (xaxis.TickFormat)\r\n // chart.xAxis.tickFormat(d3.format(xaxis.TickFormat));\r\n\r\n // if (xaxis.Label)\r\n // chart.xAxis.axisLabel(xaxis.Label);\r\n\r\n if (xaxis.ReduceXTicks)\r\n {\r\n chart.reduceXTicks(true);\r\n }\r\n }\r\n\r\n public NewDataSet(dataSet: any, key: any) {\r\n this._selectedChart = dataSet;\r\n // todo:\r\n // if ($scope.$parent.Model)\r\n // localStorage.setItem(\"chart\" + $scope.$parent.Model.Header, key);\r\n $(this._elementRef.nativeElement).find('svg').remove();\r\n this.Render();\r\n };\r\n\r\n public IsSelected(key: any) {\r\n return this._selectedChart ? this._selectedChart.Name == key : false;\r\n }\r\n}\r\n\r\n\r\n\r\n@Pipe({name: 'keys'})\r\nexport class KeysPipe implements PipeTransform {\r\n transform(value) : any {\r\n let keys = [];\r\n for (let key in value) {\r\n if (key == \"$type\" || !value[key])\r\n continue;\r\n keys.push({key: key, value: value[key]});\r\n }\r\n return keys;\r\n }\r\n}\r\n","\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\n\r\nexport class ChartDefinition extends ComponentDefinition {\r\n public ChartSet: ChartSet;\r\n}\r\n\r\nexport class ChartSet {\r\n public Charts: Chart[];\r\n public Name: string;\r\n}\r\n\r\nexport class Chart {\r\n public Name: string;\r\n public Margin: ChartMargin;\r\n public Series: ChartSeries[];\r\n public XAxisOptions: ChartXAxisOptions;\r\n public PrimaryType: ChartType;\r\n public ShowLegend: boolean;\r\n\r\n //Not sure where this best belongs (only used in Pie charts)\r\n public LabelsOutside: boolean;\r\n public HideLabels: boolean; \r\n}\r\n\r\nexport enum ChartType {\r\n None,\r\n Line,\r\n Bar,\r\n StackedBar,\r\n StackedArea,\r\n LineAndBar,\r\n Pie,\r\n Scatter\r\n}\r\n\r\nexport class ChartMargin {\r\n public top: number;\r\n public bottom: number;\r\n public left: number;\r\n public right: number;\r\n}\r\n\r\nexport class ChartSeries {\r\n public Name: string;\r\n public Points: ChartDataPoint[];\r\n public YAxisOptions: ChartYAxisOptions;\r\n}\r\n\r\nexport class ChartXAxisOptions {\r\n public TickFormat: string;\r\n public Type: AxisType;\r\n public ReduceXTicks: boolean;\r\n public Label: string;\r\n}\r\n\r\nexport enum AxisType {\r\n Bucket,\r\n Date,\r\n Number,\r\n String\r\n}\r\n\r\nexport class ChartYAxisOptions {\r\n public Title: string;\r\n public TickFormat: string;\r\n}\r\n\r\nexport class ChartDataPoint {\r\n public X: string;\r\n public XDate: number;\r\n public Y: number;\r\n public Size: number;\r\n}","
\r\n
\r\n
{{Chip.Text}}
\r\n
clear
\r\n
\r\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NavigationService } from '../../services/NavigationService'\r\nimport { ChipDefinition } from \"./chip.models\";\r\nimport { LinkService } from '../../services/LinkService';\r\n\r\n@Component({\r\n selector: 'chip',\r\n templateUrl: './chip.component.html',\r\n styleUrls: ['./chip.component.less'],\r\n})\r\nexport class ChipComponent {\r\n public Chip: ChipDefinition;\r\n @Input('data') \r\n public set chip(_chip: ChipDefinition) { \r\n this.Chip = _chip;\r\n this.Class[this.Chip.Color] = true;\r\n this.Class[\"pointer\"] = !!_chip.Link;\r\n };\r\n\r\n public Class = {};\r\n\r\n @Input() \r\n public click: any;\r\n\r\n HandleClick($event) {\r\n if (this.click) {\r\n this.click(this.Chip);\r\n }\r\n\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n }\r\n\r\n constructor(private _linkService: LinkService) {\r\n }\r\n\r\n Click() {\r\n if (this.Chip.Link)\r\n this._linkService.Go(this.Chip.Link);\r\n }\r\n}\r\n","import { Link } from \"../actions/actions.models\";\r\nimport { TooltipModel } from '../tooltip/tooltip.component';\r\n\r\nexport class ChipDefinition {\r\n public Title: string;\r\n public Text: string;\r\n public Color: string;\r\n public Icon: string;\r\n public Link: Link;\r\n public Tooltip: TooltipModel;\r\n}\r\n","
\r\nAdd\r\n
\r\n
\r\n {{comment.Author}} on {{comment.Timestamp}} - {{comment.Detail}} Edit\r\n
\r\n
\r\n
\r\n","import { Component, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NavigationService } from '../../services/NavigationService'\r\nimport { ModalService } from \"../../services/ModalService\";\r\nimport { CommentListDefinition, CommentDefinition } from \"./comment.models\";\r\n\r\n@Component({\r\n selector: 'comment',\r\n templateUrl: './comment.component.html',\r\n styleUrls: ['./comment.component.less']\r\n})\r\nexport class CommentComponent {\r\n @Input() public commentList : CommentListDefinition;\r\n\r\n constructor(private _modalService: ModalService) {\r\n }\r\n\r\n NewComment() {\r\n this._modalService.Open(this.commentList.NewCommentUrlPrefix);\r\n }\r\n\r\n EditComment(comment: CommentDefinition) {\r\n this._modalService.Open(this.commentList.EditCommentUrlPrefix + \"&id=\" + comment.ID);\r\n }\r\n}","\r\n\r\n\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n {{c.Header}}\r\n
\r\n
\r\n
\r\n\r\n","import { Component, Input, HostBinding, AfterViewInit, ElementRef, HostListener, ViewChildren, QueryList } from '@angular/core';\r\nimport { CommonModule, Location } from '@angular/common';\r\nimport { ComponentListModel } from \"./component-list.models\";\r\nimport { ComponentDefinition } from \"./../component/component.models\";\r\nimport { ComponentWrapperComponent } from '../component/component.directive';\r\nimport * as $ from 'jquery';\r\n\r\n@Component({\r\n selector: 'component-list',\r\n templateUrl: './component-list.component.html',\r\n styleUrls: ['./component-list.component.less']\r\n})\r\nexport class ComponentListComponent implements AfterViewInit {\r\n ngAfterViewInit(): void {\r\n this.highlightLink(this.links.first)\r\n if (this.data.ExpandLastComponent) {\r\n $(this._elementRef.nativeElement).children('component-wrapper').last().css('flex-grow', '1').css('height', '100%');\r\n }\r\n }\r\n public data: ComponentListModel;\r\n\r\n constructor(compDef: ComponentDefinition, private _elementRef: ElementRef, private location: Location) {\r\n this.data = compDef; \r\n }\r\n path = this.location.path(false)\r\n\r\n @HostBinding('style.flex-direction') \r\n public get flexDirection() {\r\n return this.data.NumColumns == 2 ? 'row' : 'column'\r\n }\r\n\r\n @HostBinding('style.flex-wrap') \r\n public get flexWrap() {\r\n return this.data.NumColumns == 2 ? 'wrap' : 'nowrap'\r\n }\r\n\r\n @ViewChildren('components') components: QueryList\r\n @ViewChildren('links') links: QueryList\r\n log = true\r\n\r\n @HostListener(\"window:scroll\")\r\n onScroll() {\r\n if (!this.data.ShowScrollLinks) return;\r\n for (let c of this.components.toArray()) {\r\n if (c.Element.nativeElement.getBoundingClientRect().top > 50) {\r\n let link = this.links.find(x => x.nativeElement.href.includes(c.Element.nativeElement.id))\r\n if(link) this.highlightLink(link)\r\n return\r\n }\r\n }\r\n }\r\n\r\n private highlightLink(setActive: ElementRef) {\r\n this.links.toArray().forEach(x => x.nativeElement.classList.remove('active'))\r\n setActive.nativeElement.classList.add('active')\r\n }\r\n}\r\n","\n
\n
\n {{definition.Header}}\n {{definition.SubHeader}}\n \n
\n
\n
\n
\n {{definition.Header}}\n {{definition.SubHeader}}\n \n
\n \n
\n
\n
\n
\n {{definition.Header}}\n {{definition.SubHeader}}\n \n
\n \n
\n
\n
\n
\n
\n
\n
\n ","import { Directive, Component, Input, ComponentFactoryResolver, ViewContainerRef, Type, Injector, InjectionToken, ElementRef, OnChanges, SimpleChanges, OnDestroy } from '@angular/core';\r\nimport { AttributeTranslator } from '../../services/AttributeTranslator';\r\nimport { CommonModule } from '@angular/common';\r\nimport { GridComponent } from '../grid/grid.component';\r\nimport { PlaceholderComponent } from '../placeholder/placeholder.component';\r\nimport { ConfirmComponent } from \"../confirm/confirm.component\";\r\nimport { KPIComponent } from \"../kpi/kpi.component\";\r\nimport { FormComponent } from \"../form/form.component\";\r\nimport { ChartComponent } from \"../chart/chart.component\";\r\nimport { SimpleComponent } from \"../simple/simple.component\";\r\nimport { OrganizeComponent } from \"../organize/organize.component\";\r\nimport { VerificationDirectionsComponent } from \"../verification-directions/verification-directions.component\";\r\nimport { RegistrationPollingComponent } from \"../registration-polling/registration-polling.component\";\r\nimport { CustomizationService } from \"../../services/CustomizationService\";\r\nimport { SearchComponent } from \"../search/search.component\";\r\nimport * as $ from 'jquery';\r\nimport { CardComponent } from \"../card/card.component\";\r\nimport { AssessmentComponent } from \"../assessment/assessment.component\";\r\nimport { AuditTrailComponent } from \"../audit-trail/audit-trail.component\";\r\nimport { ComponentDefinition, HeaderPosition } from \"./component.models\";\r\nimport { LoginWrapperComponent } from \"../login-wrapper/login-wrapper.component\";\r\nimport { TabSpinnerComponent } from \"../tab-spinner/tab-spinner.component\";\r\nimport { ApplicationGuidanceComponent } from \"../application-guidance/application-guidance.component\";\r\nimport { MapComponent } from \"../map/map.component\";\r\nimport { MapListComponent } from \"../map-list/map-list.component\";\r\nimport { ComponentListComponent } from \"../component-list/component-list.component\";\r\nimport { PieChartComponent } from \"../pie-chart/pie-chart.component\";\r\nimport { TooltipModel, TooltipComponent } from \"../tooltip/tooltip.component\";\r\nimport { TabComponent } from \"../tab/tab.component\";\r\nimport { SearchEditComponent } from '../search-edit/search-edit.component';\r\nimport { FileUploadPreviewComponent } from '../file-upload-preview/file-upload-preview.component';\r\nimport { PickerComponent } from \"../picker/picker.component\";\r\nimport { ModalHeaderWrapperComponent } from \"../modal-header-wrapper/modal-header-wrapper.component\";\r\nimport { CardListComponent } from \"../card-list/card-list.component\";\r\nimport { MediaBoxComponent } from \"../media-box/media-box.component\";\r\nimport { DocumentViewerComponent } from '../document-viewer/document-viewer.component';\r\nimport { DocumentOverlayComponent } from '../document-viewer/document-overlay.component';\r\nimport { ErrorComponent } from '../error/error.component';\r\nimport { PageBreakComponent } from '../page-break/page-break.component';\r\nimport { MatrixComponent } from '../matrix/matrix.component';\r\nimport { TestComponent } from '../test/test.component';\r\nimport { TwoPanelComponent } from '../two-panel/two-panel.component';\r\nimport { MatrixEditorWrapperComponent } from '../matrix-editor-wrapper/matrix-editor-wrapper.component';\r\nimport { EditorComponent } from '../editor/editor.component';\r\nimport { ExceptionDescriptionComponent } from '../exception-description/exception-description.component';\r\nimport { RearrangeAxesComponent } from '../matrix-editor-wrapper/rearrange-axes.component';\r\nimport { NavigationService } from '../../services/NavigationService';\r\nimport { TimelineComponent } from '../timeline/timeline.component';\r\nimport { AsyncComponent, AsyncErrorComponent } from '../async/async.component';\r\nimport { ComponentRegistration } from '../../services/ComponentRegistration';\r\nimport { ConnectionMessagingService } from '../../services/ConnectionMessagingService';\r\nimport { NewSearchComponent } from '../newsearch/newsearch.component';\r\nimport { ProgressComponent } from '../progress/progress.component';\r\nimport { LoanEntryLayoutComponent } from '../loan-entry-layout/loan-entry-layout.component';\r\nimport { RegistrationGuidanceComponent } from '../registration-guidance/registration-guidance.component';\r\nimport { ForgotPasswordGuidanceComponent } from '../forgot-password-guidance/forgot-password-guidance.component';\r\nimport { PasswordExpirationGuidanceComponent } from '../password-expiration-guidance/password-expiration-guidance.component';\r\nimport { TwoStepVerifyGuidanceComponent } from '../two-step-verify-guidance/two-step-verify-guidance.component';\r\nimport { FooterComponent } from '../footer/footer.component';\r\nimport { MultiFileUploadComponent } from '../multi-file-upload/multi-file-upload.component';\r\nimport { MultiSectionComponent } from '../multisection/multisection.component';\r\nimport { MultisectionAssessmentComponent as MultiSectionAssessmentComponent } from '../multisection/multisection-assessment/multisection-assessment.component';\r\nimport { SAMLRedirectComponent } from '../SAML-redirect/SAML-redirect.component';\r\nimport { PaginationWrapperComponent } from '../pagination-wrapper/pagination-wrapper.component';\r\nimport { AutosizeGridComponent } from '../autosize-grid/autosize-grid.component';\r\nimport { MultisectionQuestionEditorComponent } from '../multisection/multisection-question-editor copy/multisection-question-editor.component';\r\nimport { MultisectionEditorWrapperComponent } from '../multisection/multisection-editor-wrapper/multisection-editor-wrapper.component';\r\nimport { MultiDocumentListingComponent } from '../multi-document-listing/multi-document-listing.component'\r\n\r\nconst types = {\r\n \"GridComponent\": GridComponent,\r\n \"TooltipComponent\": TooltipComponent,\r\n \"CardComponent\": CardComponent,\r\n \"FormComponent\": FormComponent,\r\n \"SearchComponent\": SearchComponent,\r\n \"NewSearchComponent\": NewSearchComponent,\r\n \"ChartComponent\": ChartComponent,\r\n \"OrganizeComponent\": OrganizeComponent,\r\n \"ConfirmComponent\": ConfirmComponent,\r\n \"KPIComponent\": KPIComponent,\r\n \"AuditTrailComponent\": AuditTrailComponent,\r\n \"AssessmentComponent\": AssessmentComponent,\r\n \"VerificationDirectionsComponent\": VerificationDirectionsComponent,\r\n \"RegistrationPollingComponent\": RegistrationPollingComponent,\r\n \"LoginWrapperComponent\": LoginWrapperComponent,\r\n \"TabSpinnerComponent\": TabSpinnerComponent,\r\n \"TabComponent\": TabComponent,\r\n \"MapComponent\": MapComponent,\r\n \"MapListComponent\": MapListComponent,\r\n \"CardListComponent\": CardListComponent,\r\n \"ApplicationGuidanceComponent\": ApplicationGuidanceComponent,\r\n \"ComponentListComponent\": ComponentListComponent,\r\n \"PieChartComponent\": PieChartComponent,\r\n \"PickerComponent\": PickerComponent,\r\n \"ModalHeaderWrapperComponent\": ModalHeaderWrapperComponent,\r\n \"MediaBoxComponent\": MediaBoxComponent,\r\n \"SearchEditComponent\": SearchEditComponent,\r\n \"FileUploadWithPreviewComponent\": FileUploadPreviewComponent,\r\n \"DocumentViewerComponent\": DocumentViewerComponent,\r\n \"DocumentOverlayComponent\": DocumentOverlayComponent,\r\n \"ErrorComponent\": ErrorComponent,\r\n \"MatrixComponent\": MatrixComponent,\r\n \"TestComponent\": TestComponent,\r\n \"TwoPanelComponent\": TwoPanelComponent,\r\n \"MatrixEditorWrapperComponent\": MatrixEditorWrapperComponent,\r\n \"EditorComponent\": EditorComponent,\r\n \"ExceptionDescriptionComponent\": ExceptionDescriptionComponent,\r\n \"RearrangeAxesComponent\": RearrangeAxesComponent,\r\n \"TimelineCardListComponent\": TimelineComponent,\r\n \"AsyncComponent\": AsyncComponent,\r\n \"AsyncErrorComponent\": AsyncErrorComponent,\r\n \"PlaceholderComponent\": PlaceholderComponent,\r\n \"ProgressComponent\": ProgressComponent,\r\n \"LoanEntryLayoutComponent\": LoanEntryLayoutComponent,\r\n \"RegistrationGuidanceComponent\": RegistrationGuidanceComponent,\r\n \"ForgotPasswordGuidanceComponent\": ForgotPasswordGuidanceComponent,\r\n \"PasswordExpirationGuidanceComponent\": PasswordExpirationGuidanceComponent,\r\n \"TwoStepVerifyGuidanceComponent\": TwoStepVerifyGuidanceComponent,\r\n \"FooterComponent\": FooterComponent,\r\n \"MultiFileUploadComponent\": MultiFileUploadComponent,\r\n \"MultiSectionAssessmentComponent\": MultiSectionAssessmentComponent,\r\n \"MultiSectionComponent\": MultiSectionComponent,\r\n \"SAMLRedirectComponent\" : SAMLRedirectComponent,\r\n \"PaginationWrapperComponent\" : PaginationWrapperComponent,\r\n \"AutosizeGridComponent\" : AutosizeGridComponent,\r\n \"MultiSectionQuestionEditorComponent\": MultisectionQuestionEditorComponent,\r\n \"MultisectionEditorWrapperComponent\": MultisectionEditorWrapperComponent,\r\n \"MultiDocumentListingComponent\": MultiDocumentListingComponent,\r\n}\r\n\r\nexport class GetComponentType {\r\n static Get(data: ComponentDefinition, customizationService: CustomizationService) : any {\r\n let type = types[data.Type];\r\n\r\n if (data.Type == \"Component\" && data.Expression == \"AsyncComponent\" && !type) {\r\n type = types[\"AsyncComponent\"];\r\n }\r\n\r\n if (!type) {\r\n type = customizationService.Get(data.Type);\r\n }\r\n\r\n if (!type) {\r\n console.error(\"Cannot find custom component type: \" + data.Type + \"Component\");\r\n type = PlaceholderComponent;\r\n }\r\n\r\n return type;\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[component]',\r\n})\r\nexport class ComponentDirective {\r\n _handler: ComponentRegistration;\r\n\r\n @Input()\r\n set definition(data: ComponentDefinition) {\r\n var type = GetComponentType.Get(data, this._customizationService);\r\n let componentFactory = this._componentFactoryResolver.resolveComponentFactory(type);\r\n this._viewContainerRef.clear();\r\n let componentRef = this._viewContainerRef.createComponent(componentFactory, null, new ComponentDataInjector(this._injector, data));\r\n if ((data)._Modal)\r\n {\r\n this._handler = new ComponentRegistration(data, null, null, this);\r\n this._connectionMessagingService.RegisterComponentHandler(this._handler);\r\n }\r\n };\r\n\r\n onDestroy() {\r\n this._connectionMessagingService.RemoveComponentHandler(this._handler);\r\n }\r\n\r\n constructor(private _componentFactoryResolver: ComponentFactoryResolver, \r\n private _viewContainerRef: ViewContainerRef, \r\n private _customizationService: CustomizationService,\r\n private _injector: Injector,\r\n private _connectionMessagingService: ConnectionMessagingService) { }\r\n}\r\n\r\n@Component({\r\n selector: 'component-wrapper',\r\n template: `\r\n
\r\n
\r\n {{definition.Header}}\r\n {{definition.SubHeader}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{definition.Header}}\r\n {{definition.SubHeader}}\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{definition.Header}}\r\n {{definition.SubHeader}}\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n `,\r\n styleUrls: ['./component-wrapper.less']\r\n})\r\n//TODO: Refactor the above template to use ng-templates instead of ngifs\r\nexport class ComponentWrapperComponent implements OnDestroy {\r\n \r\n ngOnDestroy() {\r\n this._connectionMessagingService.RemoveComponentHandler(this._handler);\r\n }\r\n\r\n private _definition: ComponentDefinition;\r\n public ShowHeader: boolean;\r\n _handler: ComponentRegistration;\r\n\r\n public get ShowHeaderInside() : boolean {\r\n return this.ShowHeader && this.definition.HeaderPosition == HeaderPosition.Inside;\r\n }\r\n\r\n public get ShowHeaderOutside() : boolean {\r\n return this.ShowHeader && this.definition.HeaderPosition == HeaderPosition.Outside;\r\n }\r\n\r\n @Input()\r\n public set definition(compDef: ComponentDefinition) {\r\n this._definition = compDef;\r\n if (!compDef)\r\n return; \r\n \r\n if (this._handler)\r\n this._connectionMessagingService.RemoveComponentHandler(this._handler);\r\n this._handler = new ComponentRegistration(this._definition, this, null, null); \r\n this._connectionMessagingService.RegisterComponentHandler(this._handler);\r\n\r\n this.ShowHeader = (!!compDef.Actions && !!compDef.Actions.length) || (!!compDef.Header && !!compDef.Header.length);\r\n };\r\n public get definition() {\r\n return this._definition;\r\n };\r\n\r\n constructor(public Element: ElementRef, private _connectionMessagingService: ConnectionMessagingService) { \r\n }\r\n}\r\n\r\nexport class ComponentDataInjector extends Injector {\r\n constructor(private baseInjector: Injector, \r\n private _component: ComponentDefinition,\r\n private _tooltip: TooltipModel = null) {\r\n super();\r\n }\r\n\r\n reset() {\r\n this._component = null;\r\n this._tooltip = null;\r\n }\r\n\r\n get(token: Type | InjectionToken, notFoundValue?: T): T;\r\n get(token: any, notFoundValue?: any);\r\n get(token: any, notFoundValue?: any) {\r\n if (token == ComponentDefinition)\r\n return this._component;\r\n if (token == TooltipModel)\r\n return this._tooltip;\r\n\r\n return this.baseInjector.get(token, notFoundValue);\r\n }\r\n}","import { Link } from \"../actions/actions.models\";\r\nimport { StyleAttribute } from \"../../services/AttributeTranslator\";\r\n\r\nexport class ComponentDefinition {\r\n constructor(config?: Partial) {\r\n Object.assign(this, config);\r\n }\r\n public Header: string;\r\n public SubHeader: string;\r\n public Type: string;\r\n public Expression: string;\r\n public HasMaterialBackground: boolean;\r\n public HeaderPosition: HeaderPosition;\r\n public Actions: Link[];\r\n public Attributes: StyleAttribute[];\r\n public ComponentContext: ComponentContext;\r\n public IsUpdating: boolean;\r\n public IsHidden: boolean;\r\n}\r\n\r\nexport class ComponentContext {\r\n Name: string;\r\n Parameters: {};\r\n EntityContexts: EntityChange[];\r\n Width: number;\r\n Height: number;\r\n XSRF: string;\r\n\r\n public DoesEntityChangeMatchContext(entityChange: EntityChange) {\r\n let incomingChange = new EntityChange(entityChange);\r\n var contexts = this.EntityContexts.map(c => new EntityChange(c)).filter(entityContext => {\r\n if (incomingChange.ChangeType == EntityChangeType.Custom) {\r\n if (incomingChange.CustomName != entityContext.CustomName)\r\n return false;\r\n\r\n if (entityContext.ReceiveParametersFromSourceEvent) \r\n return true;\r\n\r\n for (var key in entityChange.CustomChangeParameters) {\r\n if (Object.keys(entityContext.CustomChangeParameters).indexOf(key) == -1)\r\n return false;\r\n \r\n if (entityContext.CustomChangeParameters[key] != entityChange.CustomChangeParameters[key])\r\n return false;\r\n }\r\n \r\n return true;\r\n }\r\n else if (incomingChange.ChangeType == entityContext.ChangeType &&\r\n incomingChange.EntityKey != null && entityContext.EntityKey != null) {\r\n \r\n if (incomingChange.EntityKey.Table == entityContext.EntityKey.Table &&\r\n incomingChange.EntityKey.ID == entityContext.EntityKey.ID &&\r\n incomingChange.DetailTable == entityContext.DetailTable)\r\n return true;\r\n }\r\n \r\n return false;\r\n });\r\n\r\n return contexts && contexts.length;\r\n }\r\n}\r\n\r\nexport enum EntityChangeType {\r\n Edit,\r\n Add,\r\n AddDetail,\r\n Delete,\r\n DeleteDetail,\r\n EditDetail,\r\n Custom\r\n}\r\n\r\nexport class EntityChange {\r\n EntityKey: EntityKey;\r\n ChangeType: EntityChangeType;\r\n DetailTable: string;\r\n CustomName: string;\r\n CustomChangeParameters = {};\r\n ReceiveParametersFromSourceEvent = false;\r\n\r\n constructor(c?: Partial) {\r\n Object.assign(this, c)\r\n }\r\n}\r\n\r\nexport class EntityKey {\r\n Table: string;\r\n ID: number;\r\n TimestampAsString: string;\r\n}\r\n\r\nexport enum HeaderPosition{\r\n Inside,\r\n Outside\r\n}","
\r\n
{{compDef.RequestModel.Description}}
\r\n
{{compDef.RequestModel.FormattedText}}
\r\n
{{ErrorMessage}}
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
","import { Component, Input } from '@angular/core';\r\nimport { CommonModule, Location } from '@angular/common';\r\nimport { NavigationService, NavigationType } from '../../services/NavigationService'\r\nimport { BrowserModule } from '@angular/platform-browser'; \r\nimport { HttpClient } from '@angular/common/http';\r\nimport { map } from 'rxjs/operators';\r\nimport { ModalService } from \"../../services/ModalService\";\r\nimport { ConfirmModel, ConfirmOption } from \"../../components/confirm/confirm.models\";\r\nimport { ComponentDefinition } from \"../../components/component/component.models\";\r\nimport { FormMessage, FormComponentDefinition, FormDefinition, ValidationWrapper } from '../form/form.component';\r\nimport { LinkService } from '../../services/LinkService';\r\nimport { FormConnectionService } from '../../services/LoadService';\r\n\r\nexport class ConfirmComponentDefinition extends ComponentDefinition \r\n{\r\n RequestModel: ConfirmModel;\r\n FormComponent: FormComponentDefinition;\r\n DetailComponent: ComponentDefinition;\r\n ShowFormBeforeDetailComponent: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'confirm',\r\n templateUrl: './confirm.component.html',\r\n styleUrls: ['./confirm.component.less'],\r\n providers: [FormConnectionService]\r\n})\r\nexport class ConfirmComponent {\r\n public compDef: ConfirmComponentDefinition;\r\n public YesClicked: boolean;\r\n public ErrorMessage: string;\r\n public IsSubmitting: boolean;\r\n\r\n constructor(private _http: HttpClient, \r\n private _modalService: ModalService, \r\n compDef: ComponentDefinition,\r\n private _linkService: LinkService, \r\n private _navigationService: NavigationService,\r\n private _formConnectionService: FormConnectionService) {\r\n this.compDef = compDef;\r\n\r\n if (this.compDef.RequestModel.AutoConfirm) {\r\n this.OptionClickInternal(this.compDef.RequestModel.Options[0], {});\r\n }\r\n }\r\n\r\n public SelectOption(option: ConfirmOption) {\r\n option.IsSubmitting = true;\r\n if (!option.Submit) {\r\n this.NoClick();\r\n return;\r\n }\r\n \r\n this.IsSubmitting = true;\r\n if (this._formConnectionService.Form)\r\n {\r\n this._formConnectionService.Form.GetValidFormData((d) => {\r\n this.OptionClickInternal(option, d);\r\n }, () => \r\n {\r\n this.YesClicked = false; \r\n this.IsSubmitting = false;\r\n option.IsSubmitting = false;\r\n });\r\n }\r\n else {\r\n var data = this.compDef.RequestModel.Data ? this.compDef.RequestModel.Data : {};\r\n this.OptionClickInternal(option, data);\r\n }\r\n }\r\n\r\n OptionClickInternal(option: ConfirmOption, data: any): any {\r\n this._navigationService.ClearWarning();\r\n this._http.post(option.Url, data).pipe(map((response: FormMessage) => {\r\n var message = response;\r\n if (!message.Success) {\r\n if (this._formConnectionService.Form) {\r\n this._formConnectionService.Form.ApplyValidations({\r\n ValidationWrapper: new ValidationWrapper(message),\r\n StructuredValidatedData: data,\r\n ValidatedData: data\r\n });\r\n }\r\n else {\r\n this.ErrorMessage = \"\";\r\n for (var i = 0; i < message.Validations.Messages.length; i++)\r\n this.ErrorMessage += message.Validations.Messages[i].Description + '\\n';\r\n }\r\n this.YesClicked = false;\r\n this.IsSubmitting = false;\r\n option.IsSubmitting = false;\r\n }\r\n else {\r\n this._navigationService.ClearWarning();\r\n if (message.Link) {\r\n this._linkService.Go(message.Link, message.ToastMessage);\r\n }\r\n else {\r\n this._navigationService.Go(null, NavigationType.Refresh, message.ToastMessage);\r\n }\r\n }\r\n })).subscribe(); \r\n }\r\n\r\n public NoClick() {\r\n this._modalService.Close();\r\n }\r\n}\r\n","import { ElementRef, ViewRef, EmbeddedViewRef } from \"@angular/core\";\r\nimport * as $ from 'jquery';\r\nimport { MDialog } from \"./md-dialog.component\";\r\n\r\nexport class ScrollStrategyResolver {\r\n public Get(context: ScrollingContext) : ScrollStrategy {\r\n if (context.IsFixedPositionTrigger)\r\n return new FixedScrollStrategy(context);\r\n else\r\n return new RelativeScrollStrategy(context);\r\n }\r\n}\r\n\r\nexport class ScrollingContext {\r\n scrollTop: number;\r\n scrollBottom: number;\r\n scrollLeft: number;\r\n scrollRight: number;\r\n elementHeight: number;\r\n triggerElementHeight: number;\r\n elementWidth: number;\r\n triggerElementWidth: number;\r\n cushion: number;\r\n triggerElementTopPosition : number;\r\n triggerElementLeftPosition : number;\r\n PreviousLeft: number = -1000000;\r\n PreviousTop: number = -1000000;\r\n\r\n constructor(public triggerElement: JQuery,\r\n public overlayElement: JQuery,\r\n public positioning: string) {\r\n $(this.overlayElement).css('z-index', '13');\r\n this.cushion = this.positioning == 'centerns' ? 3 : 0;\r\n }\r\n\r\n get IsFixedPositionTrigger(): boolean {\r\n var $ancestors = this.triggerElement.parents();\r\n return $ancestors.filter((i, element) => $(element).css('position') == 'fixed').length > 0;\r\n }\r\n\r\n get TopOfElementBelowTrigger() : number{\r\n return this.triggerElementTopPosition + this.triggerElementHeight + this.cushion;\r\n }\r\n\r\n get ElementWouldNotDisplayBeyondScrollBottom() : boolean {\r\n return this.TopOfElementBelowTrigger + this.elementHeight < this.scrollBottom;\r\n }\r\n\r\n get TopOfElementAboveTrigger() : number{\r\n return this.triggerElementTopPosition - this.elementHeight - this.cushion;\r\n }\r\n\r\n get ElementWouldNotDisplayBeyondScrollTop() : boolean {\r\n return this.TopOfElementAboveTrigger > this.scrollTop;\r\n } \r\n\r\n get ElementDoesNotFitAboveOrBelowTrigger() : boolean {\r\n return !this.ElementWouldNotDisplayBeyondScrollBottom && !this.ElementWouldNotDisplayBeyondScrollTop;\r\n }\r\n\r\n get TopOfElementCenteredBesideTrigger() : number {\r\n let halfOfElementsHeight = this.elementHeight / 2;\r\n let halfOfTriggerElement = this.triggerElementHeight / 2;\r\n return this.triggerElementTopPosition + halfOfTriggerElement - halfOfElementsHeight;\r\n }\r\n\r\n get ElementWouldNotDisplayBeyondScrollRight() : boolean {\r\n return this.triggerElementLeftPosition + this.elementWidth < this.scrollRight;\r\n }\r\n\r\n get LeftOfElementLeftOfTrigger() : number {\r\n return this.triggerElementLeftPosition - this.elementWidth;\r\n }\r\n\r\n get LeftOfElementRightOfTrigger() : number {\r\n return this.triggerElementLeftPosition + this.triggerElementWidth;\r\n }\r\n}\r\n\r\nexport interface ScrollStrategy {\r\n Start(): void;\r\n Stop(): void;\r\n}\r\n\r\nexport class RelativeScrollStrategy implements ScrollStrategy {\r\n constructor(private context: ScrollingContext) {\r\n }\r\n\r\n _timer: number;\r\n \r\n Start() {\r\n $(this.context.overlayElement).css('position', 'absolute');\r\n this.UpdatePosition();\r\n this._timer = window.setInterval(() => this.UpdatePosition(), 500);\r\n }\r\n\r\n Stop() {\r\n window.clearInterval(this._timer);\r\n }\r\n\r\n UpdatePosition() {\r\n this.Position(this.context.overlayElement, this.context.triggerElement);\r\n }\r\n\r\n Position(element: JQuery, triggerElement: JQuery){\r\n this.context.scrollTop = $(window).scrollTop();\r\n this.context.scrollBottom = this.context.scrollTop + $(window).height();\r\n let position = triggerElement.offset();\r\n this.context.triggerElementTopPosition = position.top;\r\n this.context.triggerElementLeftPosition = position.left;\r\n element.css('position', 'absolute');\r\n ScrollPositioner.PositionTop(element, triggerElement, this.context);\r\n ScrollPositioner.PositionLeft(element, triggerElement, this.context);\r\n }\r\n}\r\n\r\nexport class FixedScrollStrategy implements ScrollStrategy {\r\n constructor(private context: ScrollingContext) {\r\n }\r\n\r\n _timer: number;\r\n\r\n Start() {\r\n this.UpdatePosition();\r\n this._timer = window.setInterval(() => this.UpdatePosition(), 500);\r\n }\r\n\r\n Stop() {\r\n window.clearInterval(this._timer);\r\n }\r\n\r\n UpdatePosition() {\r\n this.Position(this.context.overlayElement, this.context.triggerElement);\r\n }\r\n\r\n Position(element: JQuery, triggerElement: JQuery){\r\n this.context.scrollTop = $(window).scrollTop();\r\n this.context.scrollBottom = this.context.scrollTop + $(window).height();\r\n let position = triggerElement.offset();\r\n this.context.triggerElementTopPosition = position.top - this.context.scrollTop;\r\n this.context.triggerElementLeftPosition = position.left;\r\n this.context.cushion = this.context.positioning == 'tooltip' ? 3 : 0;\r\n element.css('position', 'fixed');\r\n ScrollPositioner.PositionTop(element, triggerElement, this.context);\r\n ScrollPositioner.PositionLeft(element, triggerElement, this.context);\r\n }\r\n}\r\n\r\nexport class ScrollPositioner {\r\n static PositionTop(element: JQuery, triggerElement: JQuery, context: ScrollingContext){\r\n context.elementHeight = element.outerHeight();\r\n context.triggerElementHeight = triggerElement.outerHeight();\r\n \r\n if(context.positioning == \"n\"){\r\n this.PositionTopNorth(element, context);\r\n return;\r\n }\r\n if(context.positioning == \"e\" || context.positioning == \"w\"){\r\n this.PositionTopCenteredBeside(element, context);\r\n return;\r\n }\r\n if(context.positioning == \"s\"){\r\n this.PositionTopSouth(element, context);\r\n return;\r\n }\r\n this.PositionTopAuto(element, context);\r\n }\r\n\r\n static PositionTopAuto(element: JQuery, context: ScrollingContext){\r\n if(context.ElementWouldNotDisplayBeyondScrollBottom){\r\n this.PositionTopSouth(element, context);\r\n return;\r\n }\r\n \r\n if(context.ElementWouldNotDisplayBeyondScrollTop){\r\n this.PositionTopNorth(element, context);\r\n return;\r\n }\r\n\r\n this.PositionTopCenteredBeside(element, context);\r\n }\r\n\r\n static PositionTopNorth(element: JQuery, context: ScrollingContext){\r\n this.SetTop(element, context, context.TopOfElementAboveTrigger);\r\n }\r\n\r\n static PositionTopSouth(element: JQuery, context: ScrollingContext){\r\n this.SetTop(element, context, context.TopOfElementBelowTrigger);\r\n }\r\n\r\n static PositionTopCenteredBeside(element: JQuery, context: ScrollingContext){\r\n this.SetTop(element, context, context.TopOfElementCenteredBesideTrigger)\r\n }\r\n\r\n static PositionLeft(element: JQuery, triggerElement: JQuery, context: ScrollingContext){\r\n context.scrollLeft = $(window).scrollLeft();\r\n context.scrollRight = context.scrollLeft + $(window).width();\r\n context.elementWidth = element.outerWidth();\r\n context.triggerElementWidth = triggerElement.outerWidth();\r\n\r\n if(context.positioning == \"e\"){\r\n this.PositionLeftEast(element, context);\r\n return;\r\n }\r\n\r\n if(context.positioning == \"w\"){\r\n this.PositionLeftWest(element, context);\r\n return;\r\n }\r\n\r\n this.PositionLeftAuto(element, context);\r\n }\r\n\r\n static PositionLeftAuto(element: JQuery, context: ScrollingContext){\r\n if(context.positioning == 'centerns'){\r\n let left = context.triggerElementLeftPosition + ScrollPositioner.CalculateCenterPositioningOffset(context);\r\n left = left < 5 ? 5 : left;\r\n this.SetLeft(element, context, left);\r\n return;\r\n }\r\n\r\n if(context.ElementWouldNotDisplayBeyondScrollRight && context.positioning != \"actions\"){\r\n let left = context.ElementDoesNotFitAboveOrBelowTrigger ? context.triggerElementLeftPosition + context.triggerElementWidth : context.triggerElementLeftPosition;\r\n this.SetLeft(element, context, left);\r\n return;\r\n }\r\n\r\n let elementWouldNotDisplayBeyondScrollLeft = context.LeftOfElementLeftOfTrigger > context.scrollLeft;\r\n if(elementWouldNotDisplayBeyondScrollLeft){\r\n let left = context.positioning === 'actions' ? context.LeftOfElementLeftOfTrigger + context.triggerElementWidth : context.LeftOfElementLeftOfTrigger;\r\n this.SetLeft(element, context, left);\r\n return;\r\n }\r\n\r\n this.SetLeft(element, context, context.triggerElementLeftPosition);\r\n }\r\n\r\n static PositionLeftEast(element: JQuery, context: ScrollingContext){\r\n this.SetLeft(element, context, context.LeftOfElementLeftOfTrigger);\r\n }\r\n\r\n static PositionLeftWest(element: JQuery, context: ScrollingContext){\r\n this.SetLeft(element, context, context.LeftOfElementRightOfTrigger);\r\n }\r\n\r\n static SetLeft(element: JQuery, context: ScrollingContext, left: number){\r\n if (Math.abs(context.PreviousLeft - left) > 10) {\r\n context.PreviousLeft = left;\r\n element.css('left', Math.round(left * 10)/10);\r\n }\r\n }\r\n\r\n static SetTop(element: JQuery, context: ScrollingContext, top: number){\r\n if (Math.abs(context.PreviousTop - top) > 10)\r\n {\r\n context.PreviousTop = top;\r\n element.css('top', Math.round(top * 10)/10);\r\n }\r\n }\r\n\r\n static CalculateCenterPositioningOffset(context: ScrollingContext){\r\n if(context.positioning != 'centerns') return 0;\r\n if(context.elementWidth > context.triggerElementWidth){\r\n return -((context.elementWidth - context.triggerElementWidth) / 2)\r\n }\r\n return (context.triggerElementWidth - context.elementWidth)/2;\r\n }\r\n}","\n
\n \n
\n
","import { Component, ViewChild, ElementRef, AfterViewInit, ChangeDetectorRef, Directive, Input, AfterContentInit, OnDestroy, ViewContainerRef, TemplateRef } from \"@angular/core\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport * as $ from 'jquery';\r\nimport { Subject } from \"rxjs\";\r\nimport { ScrollStrategyResolver, ScrollingContext, ScrollStrategy } from \"./ScrollStrategyResolver\";\r\nimport { DialogService } from \"../../services/DialogService\";\r\n\r\n@Component({\r\n selector: 'm-dialog',\r\n template: `\r\n
\r\n \r\n
\r\n
`,\r\n})\r\nexport class MDialog {\r\n @Input()\r\n public positioning: string;\r\n public OnClose: Subject;\r\n\r\n close(): any {\r\n this.OnClose.next();\r\n }\r\n \r\n @ViewChild(TemplateRef, { static: false }) templateRef: TemplateRef;\r\n\r\n constructor() {\r\n this.OnClose = new Subject();\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: `[mdialogtrigger]`,\r\n host: {\r\n '(click)': '_handleClick($event)',\r\n },\r\n })\r\nexport class MDialogTrigger implements AfterContentInit, OnDestroy {\r\n _cb: any;\r\n private _scrollStrategy: ScrollStrategy;\r\n public PaneElement: HTMLDivElement;\r\n private _menuOpen: boolean = false;\r\n private _scrollCheck: number;\r\n\r\n @Input('mdialogtrigger') \r\n menu: MDialog;\r\n\r\n constructor(private _element: ElementRef,\r\n private _viewContainerRef: ViewContainerRef,\r\n private _dialogService: DialogService) {\r\n }\r\n\r\n private _isRegistered: boolean;\r\n ngAfterContentInit() {\r\n this._checkMenu();\r\n\r\n this.menu.OnClose.subscribe(() => {\r\n this.filter = '';\r\n this.updateFilter();\r\n\r\n if (this.PaneElement)\r\n this.PaneElement.remove();\r\n });\r\n this._isRegistered = true;\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._scrollStrategy)\r\n this._scrollStrategy.Stop();\r\n this._scrollStrategy = null;\r\n }\r\n\r\n toggleMenu(): void {\r\n this.filter = '';\r\n this.updateFilter();\r\n return this._menuOpen ? this.closeMenu() : this.openMenu();\r\n }\r\n\r\n setOpenBinding(cb: any) {\r\n this._cb = cb;\r\n }\r\n\r\n openMenu() {\r\n if (!this._menuOpen) {\r\n this.createPanelElement();\r\n this._dialogService.Register(this);\r\n if (this._cb)\r\n this._cb();\r\n\r\n this.PaneElement.classList.add(...[\"m-dialog-wrapper\"]);\r\n\r\n let viewRef = this._viewContainerRef.createEmbeddedView(this.menu.templateRef, null);\r\n \r\n viewRef.detectChanges();\r\n\r\n viewRef.rootNodes.forEach(rootNode => {\r\n this.PaneElement.appendChild(rootNode);\r\n });\r\n\r\n let triggerElement = $(this._element.nativeElement);\r\n let paneElement = $(this.PaneElement);\r\n var triggerWidth = triggerElement.width();\r\n paneElement.css({ \"min-width\": triggerWidth })\r\n\r\n this._scrollStrategy = new ScrollStrategyResolver().Get(new ScrollingContext(triggerElement, paneElement, this.menu.positioning));\r\n this._scrollStrategy.Start();\r\n\r\n if(!this.filter)\r\n $(this.PaneElement).find('.m-dialog-filter').addClass('hidden');\r\n\r\n setTimeout(() => {\r\n $(document).one('click', (e) => {\r\n this.menu.close();\r\n });\r\n });\r\n }\r\n }\r\n\r\n\r\n HandleKeypress(character: string){\r\n if(character.length > 1) return;\r\n this.filter += character;\r\n this.updateFilter();\r\n }\r\n\r\n HandleKeydown(keyCode: number) {\r\n const DOWN_ARROW = 40\r\n const UP_ARROW = 38\r\n const ENTER = 13\r\n const filterModificationKeys = [8];\r\n let $dialogOptions = $(this.PaneElement).find('.m-dialog-option');\r\n let $hoveredElement = $dialogOptions.filter('.hovered');\r\n\r\n if (!$(this.PaneElement).is(\":visible\")) {\r\n return false;\r\n }\r\n\r\n if (keyCode == DOWN_ARROW) {\r\n $hoveredElement.removeClass('hovered')\r\n $hoveredElement = $hoveredElement.next()\r\n if (!$hoveredElement.length)\r\n $hoveredElement = $dialogOptions.first()\r\n $hoveredElement.addClass('hovered');\r\n this.AdjustScroll();\r\n return true;\r\n }\r\n else if (keyCode == UP_ARROW) {\r\n $hoveredElement.removeClass('hovered')\r\n $hoveredElement = $hoveredElement.prev()\r\n if (!$hoveredElement.length)\r\n $hoveredElement = $dialogOptions.last()\r\n $hoveredElement.addClass('hovered');\r\n this.AdjustScroll();\r\n return true;\r\n }\r\n else if (keyCode == ENTER) {\r\n $hoveredElement.click()\r\n this.AdjustScroll();\r\n return true;\r\n }\r\n\r\n else if (filterModificationKeys.indexOf(keyCode) !== -1) {\r\n if (keyCode == 8) {\r\n var currentCharacterCount = this.filter.length;\r\n this.filter = currentCharacterCount <= 1 ? \"\" : this.filter.substr(0, currentCharacterCount - 1);\r\n }\r\n this.updateFilter();\r\n return true;\r\n } \r\n\r\n return false;\r\n }\r\n filter: string = '';\r\n\r\n private updateFilter() {\r\n let f = this.filter.toUpperCase();\r\n $(this.PaneElement).find('.m-dialog-option').addClass('hidden').filter((i, elt) => {\r\n return $(elt).text().toUpperCase().indexOf(f) != -1;\r\n }).removeClass('hidden');\r\n\r\n if (this.filter && this.filter.length) {\r\n $(this.PaneElement).find('.m-dialog-filter').text(this.filter).removeClass('hidden');\r\n }\r\n else {\r\n $(this.PaneElement).find('.m-dialog-filter').addClass('hidden');\r\n }\r\n }\r\n\r\n private AdjustScroll() {\r\n let $hoveredElement = $(this.PaneElement).find('.m-dialog-option.hovered');\r\n let $dialog = $(this.PaneElement).find('.m-dialog');\r\n let hoveredOffsetTop = $hoveredElement.offset().top + $dialog.scrollTop() - $hoveredElement.offsetParent().offset().top;\r\n let bottomOfHoveredElement = hoveredOffsetTop + $hoveredElement.outerHeight();\r\n let topOfHoveredElement = hoveredOffsetTop;\r\n\r\n if (bottomOfHoveredElement > $dialog.height() + $dialog.scrollTop()) {\r\n $dialog.scrollTop(bottomOfHoveredElement - $dialog.height());\r\n }\r\n else if (topOfHoveredElement < $dialog.scrollTop()) {\r\n $dialog.scrollTop(topOfHoveredElement);\r\n }\r\n }\r\n\r\n closeMenu(): void {\r\n this._scrollStrategy.Stop();\r\n $('body').off('keydown');\r\n }\r\n\r\n private _checkMenu() {\r\n if (!this.menu) {\r\n console.error(\"Missing Dialog\");\r\n }\r\n }\r\n\r\n _handleClick(event: MouseEvent): void {\r\n //TODO: determine how to close other dialog menus\r\n this.toggleMenu();\r\n event.stopPropagation();\r\n }\r\n\r\n private createPanelElement() {\r\n this.PaneElement = document.createElement('div');\r\n document.body.appendChild(this.PaneElement);\r\n }\r\n}","
\r\n
1\" (click)=\"PreviousPage()\">arrow_back
\r\n
1\">{{CurrentPageIndex}}/{{TotalPages}}
\r\n
1\" (click)=\"NextPage()\">arrow_forward
\r\n
zoom_in
\r\n
zoom_out
\r\n
1\">\r\n {{SelectedFile ? SelectedFile.Name : \"Choose a File...\"}} 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
","import { Component, ElementRef, ViewChild, AfterViewInit, TemplateRef, ViewEncapsulation, Input, OnDestroy } from \"@angular/core\";\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\nimport { Form, FormComponent, FormComponentDefinition } from \"../form/form.component\";\r\nimport * as $ from 'jquery';\r\nimport { PDFComponent } from \"../pdf/pdf.component\";\r\n// import { PDFJS } from 'pdfjs-dist';\r\nimport { Grid } from \"../grid/grid.models\";\r\nimport { Link } from \"../actions/actions.models\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\ndeclare function unescape(s:string): string;\r\ndeclare var PDFJS;\r\n\r\n@Component({\r\n selector: 'document-control',\r\n templateUrl: './document-control.component.html',\r\n styleUrls: ['./document-control.component.less'],\r\n})\r\nexport class DocumentControlComponent implements AfterViewInit, OnDestroy {\r\n public CurrentPageIndex: number = 0;\r\n public TotalPages: number = 0;\r\n public FileSelected: boolean = false;\r\n public UsePDFTemplate: boolean = false;\r\n public IsLoading: boolean;\r\n private isDestroyed: boolean;\r\n\r\n @ViewChild('pdfcomp', { static: false })\r\n PDFComponent: PDFComponent;\r\n\r\n @ViewChild('img', {static: false})\r\n img: ElementRef;\r\n\r\n @Input() \r\n public url: string;\r\n\r\n @Input() \r\n public data: Uint8Array;\r\n\r\n @Input() \r\n public grid: Grid;\r\n\r\n @Input()\r\n actions: Link[];\r\n\r\n @Input()\r\n public SelectedFile: DocumentControlGridRowModel;\r\n\r\n constructor(private _elementRef: ElementRef, private _http: HttpClient) { \r\n PDFJS.disableWorker = true;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n\r\n $(this._elementRef.nativeElement).on('grid-row-click', (event, data) => {\r\n this.SelectGridOption(data);\r\n });\r\n if (this.grid && this.grid.Rows.length) {\r\n this.SelectGridOption(this.grid.Rows[0].Model);\r\n }\r\n else {\r\n window.setTimeout(() => {\r\n this.UpdateRendering();\r\n }, 1000);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.isDestroyed = true;\r\n if (this._timer) {\r\n window.clearTimeout(this._timer);\r\n }\r\n }\r\n\r\n //This code is copied from the ModalHeaderWrapper - it's our best option for sizing this correctly for now.\r\n private _timer: number;\r\n private Resize() {\r\n if (this.isDestroyed)\r\n return;\r\n let $element = $(this._elementRef.nativeElement);\r\n\r\n let $header = $element.children().eq(0);\r\n $header.css({ 'display': 'flex' });\r\n\r\n let $body = $element.children().eq(1);\r\n $body.css({ 'height': '2000px' });\r\n let originalDisplay = $body.css('display');\r\n $body.css({ 'display': 'block' });\r\n $body.css({ 'overflow-y': 'auto' });\r\n\r\n let scrollTop = $body.scrollTop();\r\n $body.css({ 'max-height': 'initial' });\r\n\r\n let total = $element.parent().parent().parent().outerHeight(true);\r\n let headerHeight = $header.outerHeight(true);\r\n let bodyHeight = total - headerHeight - 57; //This is 7 more than the modal header wrapper, don't really know why. \r\n $body.css({ 'max-height': bodyHeight + 'px' });\r\n $body.css({ 'height': 'auto' });\r\n $body.scrollTop(scrollTop);\r\n $body.css({ 'display': originalDisplay });\r\n this._timer = window.setTimeout(c => this.Resize(), 1000);\r\n };\r\n\r\n private SelectGridOption(data: DocumentControlGridRowModel) {\r\n this.SelectedFile = data; \r\n this.UpdateRendering();\r\n }\r\n\r\n OnViewPortScroll() {\r\n let aboveMid = $('canvas', this._elementRef.nativeElement).toArray()\r\n .map((i, m) => {\r\n return $(i).position().top;\r\n })\r\n .filter((i,m) => {\r\n return m < 200;\r\n }).length;\r\n\r\n this.CurrentPageIndex = aboveMid - 1;\r\n }\r\n\r\n ZoomIn() {\r\n this.PDFComponent.ZoomIn();\r\n\r\n }\r\n\r\n ZoomOut() {\r\n this.PDFComponent.ZoomOut();\r\n }\r\n\r\n PreviousPage() {\r\n if (this.CurrentPageIndex == 1)\r\n return;\r\n this.UpdatePage(this.CurrentPageIndex - 1);\r\n }\r\n\r\n NextPage() {\r\n if (this.CurrentPageIndex == this.TotalPages)\r\n return;\r\n this.UpdatePage(this.CurrentPageIndex + 1);\r\n }\r\n\r\n private UpdatePage(pageIndex: number) {\r\n this.CurrentPageIndex = pageIndex;\r\n this.PDFComponent.page = this.CurrentPageIndex;\r\n }\r\n\r\n private UpdateRendering() {\r\n let updatePDFComponent =(data: any) => {\r\n this.FileSelected = true;\r\n this.IsLoading = false;\r\n this.TotalPages = data.numPages;\r\n this.CurrentPageIndex = 1;\r\n this.PDFComponent.options = { pdfDocument: data };\r\n this.PDFComponent.page = this.CurrentPageIndex;\r\n window.setTimeout(() => {this.Resize()});\r\n };\r\n\r\n let urlPdfRender = (url: string) => {\r\n return this._http.get(url, { responseType: 'blob', reportProgress: true}).subscribe(d =>{\r\n var file = new Blob([d], {type: 'application/pdf'});\r\n var fileURL = URL.createObjectURL(file)\r\n PDFJS.getDocument(fileURL).then(updatePDFComponent);\r\n });\r\n }\r\n \r\n if (this.SelectedFile) {\r\n if (this.SelectedFile.Extension.indexOf(\"pdf\") !== -1) {\r\n this.IsLoading = true;\r\n urlPdfRender(this.SelectedFile.Url);\r\n this.UsePDFTemplate = true;\r\n }\r\n else {\r\n this.FileSelected = true;\r\n this.UsePDFTemplate = false; \r\n this.img.nativeElement.src = this.SelectedFile.Url;\r\n }\r\n }\r\n else if (this.data) {\r\n this.IsLoading = true;\r\n PDFJS.getDocument({ data: this.data }).then(updatePDFComponent); \r\n this.UsePDFTemplate = true;\r\n }\r\n else if (this.url) {\r\n this.IsLoading = true;\r\n urlPdfRender(this.url); \r\n this.UsePDFTemplate = true;\r\n }\r\n }\r\n \r\n private StringToUint(input) \r\n { \r\n var s = btoa(unescape(encodeURIComponent(input))), charList = input.split(''), uintArray = []; \r\n for (var i = 0; i < charList.length; i++) { \r\n uintArray.push(charList[i].charCodeAt(0)); \r\n } \r\n return new Uint8Array(uintArray);\r\n }\r\n}\r\n\r\nexport class FileInfo {\r\n public Data: any;\r\n public Name: string;\r\n public Extension: string;\r\n}\r\n\r\nexport class DocumentControlGridRowModel {\r\n public Url: string;\r\n public Name: string;\r\n public Extension: string;\r\n}","
\r\n \r\n
\r\n
\r\n \r\n
\r\n","import { Component, ElementRef, ViewChild, AfterViewInit, TemplateRef, ViewEncapsulation, HostBinding } from \"@angular/core\";\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\nimport { Form, FormComponent, FormComponentDefinition } from \"../form/form.component\";\r\nimport * as $ from 'jquery';\r\n\r\n@Component({\r\n selector: 'document-overlay',\r\n templateUrl: './document-overlay.component.html',\r\n styleUrls: ['./document-overlay.component.less'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class DocumentOverlayComponent {\r\n public Model: DocumentOverlayComponentDefinition;\r\n\r\n constructor(compDef: ComponentDefinition, private _elementRef: ElementRef) {\r\n this.Model = compDef;\r\n this.ShowRightPanel = true;\r\n }\r\n\r\n ShowRightPanel : boolean;\r\n}\r\n\r\nexport class DocumentOverlayComponentDefinition extends ComponentDefinition {\r\n PrimaryComponents: ComponentDefinition[];\r\n DocumentViewer: ComponentDefinition[];\r\n}","\r\n","import { Component, ElementRef, ViewChild, AfterViewInit, TemplateRef, ViewEncapsulation, HostBinding } from \"@angular/core\";\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\nimport { Form, FormComponent, FormComponentDefinition } from \"../form/form.component\";\r\nimport * as $ from 'jquery';\r\nimport { Grid } from '../grid/grid.models';\r\nimport { Link } from \"../actions/actions.models\";\r\n\r\n@Component({\r\n selector: 'document-viewer',\r\n templateUrl: './document-viewer.component.html',\r\n styleUrls: ['./document-viewer.component.less'],\r\n})\r\nexport class DocumentViewerComponent {\r\n public Model: DocumentViewerComponentDefinition;\r\n\r\n constructor(compDef: ComponentDefinition, private _elementRef: ElementRef) {\r\n this.Model = compDef;\r\n }\r\n}\r\n\r\nexport class DocumentViewerComponentDefinition extends ComponentDefinition {\r\n Grid: Grid\r\n ViewerActions: Link[]\r\n}","
\r\n
\r\n
Custom Section Name
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n Fields\r\n
\r\n
\r\n
{{field.Name}}
\r\n
delete
\r\n
\r\n
\r\n
Save
\r\n","import { Component, Input, ElementRef, AfterViewChecked, AfterViewInit, ViewChild } from '@angular/core';\r\nimport { NavigationService, NavigationType } from '../../services/NavigationService'\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\nimport * as $ from 'jquery';\r\nimport { FormStateUtility } from '../form/fieldcomponents/FormStateUtility';\r\nimport { NgModel } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'editor-comp',\r\n templateUrl: './editor.component.html',\r\n styleUrls: ['./editor.component.less'],\r\n})\r\nexport class EditorComponent implements AfterViewInit {\r\n IsSubmitting: boolean;\r\n Model: EditorComponentDefinition;\r\n get Page() \r\n {\r\n return this.Model.Editor.Pages[0];\r\n }\r\n @ViewChild('field', { static: false })\r\n field: NgModel;\r\n FieldClass: {};\r\n constructor(compDef: ComponentDefinition,\r\n private _elementRef: ElementRef,\r\n private _http: HttpClient,\r\n private _navigationService: NavigationService) {\r\n this.Model = compDef;\r\n }\r\n\r\n ngAfterViewInit() {\r\n var utility = new FormStateUtility(this.field.control);\r\n utility.StateChangeDistinct.subscribe(c => this.FieldClass = c);\r\n\r\n $(this._elementRef.nativeElement).on('grid-row-click', (evt, data) => {\r\n var editorInfo = new EditorFieldInfo();\r\n editorInfo.Name = data;\r\n this.Page.Fields.push(editorInfo);\r\n this.UpdateLayout();\r\n });\r\n }\r\n\r\n UpdateLayout() {\r\n this.Page.Layout = new Array();\r\n this.Page.Fields.map((r, i) => {\r\n var layoutField = new LayoutFieldInfo();\r\n layoutField.Row = i;\r\n layoutField.Name = r.Name;\r\n this.Page.Layout.push(layoutField);\r\n });\r\n }\r\n\r\n Delete(editorField: EditorFieldInfo) {\r\n this.Page.Fields.splice(this.Page.Fields.indexOf(editorField), 1);\r\n this.UpdateLayout();\r\n }\r\n\r\n Save() {\r\n this.IsSubmitting = true;\r\n this._http.post(this.Model.SaveUrl, this.Model.Editor).subscribe(() => {\r\n this._navigationService.Go(null, NavigationType.Refresh);\r\n });\r\n }\r\n}\r\n\r\nclass EditorComponentDefinition extends ComponentDefinition {\r\n Editor: EditorInfo;\r\n SaveUrl: string;\r\n SearchComponent: ComponentDefinition;\r\n}\r\n\r\nclass EditorInfo {\r\n Pages: EditorPage[];\r\n}\r\n\r\nclass EditorPage {\r\n Name: string;\r\n Fields: EditorFieldInfo[];\r\n Layout: LayoutFieldInfo[];\r\n}\r\n\r\nclass EditorFieldInfo {\r\n Name: string;\r\n}\r\n\r\nclass LayoutFieldInfo {\r\n Name: string;\r\n Row: number;\r\n Column: number;\r\n ColumnSpan: number;\r\n}\r\n","
Woops
\r\n
An unexpected error has occurred.
\r\n
\r\n {{data.ExceptionInfo.Message}}\r\n
{{data.ExceptionInfo.StackTrace}}
\r\n
","import { Component } from \"@angular/core\";\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\n\r\n@Component({\r\n selector: 'error',\r\n templateUrl: `error.component.html`,\r\n styleUrls: ['./error.component.less'],\r\n})\r\nexport class ErrorComponent {\r\n data: ErrorComponentDefinition;\r\n constructor(compDef: ComponentDefinition) {\r\n this.data = compDef;\r\n }\r\n}\r\n\r\nexport class ErrorComponentDefinition extends ComponentDefinition {\r\n constructor(public ExceptionInfo: ExceptionInfo = null) {\r\n super();\r\n this.HasMaterialBackground = false;\r\n this.Attributes = [];\r\n this.Type = \"ErrorComponent\";\r\n }\r\n}\r\n\r\nexport class ExceptionInfo {\r\n public ClientIdentifier;\r\n public Environment : string\r\n public Message : string;\r\n public Detail : string;\r\n public StackTrace : string\r\n public ReportingUser : string;\r\n public WebSiteName : string;\r\n public Version : string;\r\n public RequestedUrl : string;\r\n public RequestingUrl : string;\r\n public IPAddress : string;\r\n public UserAgent : string;\r\n public IsClientSide: boolean;\r\n}","
\r\n
{{exception.Text}}
\r\n {{exception.Subtext}}\r\n
","import { Component, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ExceptionDescriptionDefinition } from './exception-description.models';\r\nimport { ComponentDefinition } from '../component/component.models';\r\n\r\n@Component({\r\n selector: 'exception-description',\r\n templateUrl: './exception-description.component.html',\r\n styleUrls: ['./exception-description.component.less']\r\n})\r\nexport class ExceptionDescriptionComponent {\r\n Definition: any;\r\n\r\n constructor(compDef: ComponentDefinition) {\r\n this.Definition = compDef;\r\n }\r\n}\r\n","\r\n
\r\n\r\n\r\n {{NoPreviewMessage}}\r\n\r\n\r\n \r\n\r\n\r\n \r\n\r\n\r\n \r\n","import { Component, ElementRef, ViewChild, AfterViewInit, TemplateRef, ViewEncapsulation, HostBinding } from \"@angular/core\";\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\nimport { Form, FormComponent, FormComponentDefinition } from \"../form/form.component\";\r\nimport * as $ from 'jquery';\r\n\r\n@Component({\r\n selector: 'file-upload-preview',\r\n templateUrl: './file-upload-preview.component.html',\r\n styleUrls: ['./file-upload-preview.component.less'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class FileUploadPreviewComponent implements AfterViewInit {\r\n DocumentData: Uint8Array;\r\n DocumentURL: string;\r\n _inputdata: any;\r\n public Model: FileUploadPreviewComponentDefinition;\r\n public NoPreviewMessage: string;\r\n public static readonly IMAGE_EXTENSIONS = ['jpg', 'jpeg', 'gif', 'png'];\r\n\r\n public PreviewTemplate: TemplateRef;\r\n\r\n @HostBinding('class') public Class: string = \"ui-file-upload-preview\";\r\n\r\n @ViewChild('formcomponent', {read: FormComponent, static: false })\r\n private FormComponent: FormComponent;\r\n\r\n @ViewChild('nopreview', {read: TemplateRef, static: false})\r\n private NoPreviewTemplate: TemplateRef;\r\n\r\n @ViewChild('imgpreview', {read: TemplateRef, static: false})\r\n private ImagePreview: TemplateRef;\r\n\r\n @ViewChild('pdfpreview', {read: TemplateRef, static: false})\r\n private PDFPreview: TemplateRef;\r\n\r\n @ViewChild('pdfdatapreview', {read: TemplateRef, static: false})\r\n private PDFDataPreview: TemplateRef;\r\n\r\n constructor(compDef: ComponentDefinition, private _elementRef: ElementRef) {\r\n this.Model = compDef;\r\n\r\n if (this.Model.Preview) {\r\n window.setTimeout(() => {\r\n this.UpdatePreview({Data: this.Model.Preview.Url, DataFileName: this.Model.Preview.FileName});\r\n });\r\n }\r\n else {\r\n this.NoPreviewMessage = \"Select a file to see a preview\";\r\n this.PreviewTemplate = this.NoPreviewTemplate;\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n $(this._elementRef.nativeElement).on('valid-value-changed', ((event, fileForm: {Data: string, DataFileName: string}) => {\r\n this.UpdatePreview(fileForm);\r\n }));\r\n }\r\n\r\n GetImage() {\r\n return this._inputdata;\r\n }\r\n\r\n private UpdatePreview(fileForm: { Data: string; DataFileName: string; }) {\r\n if (!fileForm.Data) {\r\n this.PreviewTemplate = this.NoPreviewTemplate;\r\n this.NoPreviewMessage = \"Select a file to see preview\";\r\n return;\r\n }\r\n\r\n this._inputdata = fileForm.Data;\r\n let fileNameParts = fileForm.DataFileName.split('.');\r\n\r\n let extension = fileNameParts[fileNameParts.length - 1].toLowerCase();\r\n if (FileUploadPreviewComponent.IMAGE_EXTENSIONS.indexOf(extension) != -1) {\r\n this.PreviewTemplate = this.ImagePreview;\r\n }\r\n else if (extension === 'pdf') {\r\n if (fileForm.Data.indexOf('base64') === -1) {\r\n this.DocumentURL = fileForm.Data;\r\n this.PreviewTemplate = this.PDFPreview;\r\n }\r\n else {\r\n \r\n this.DocumentData = this.ConvertToUint8Array(fileForm.Data);\r\n this.PreviewTemplate = this.PDFDataPreview;\r\n }\r\n }\r\n else {\r\n }\r\n }\r\n\r\n private ConvertToUint8Array(dataUri: string) {\r\n let BASE64_MARKER = ';base64,';\r\n \r\n let base64Index = dataUri.indexOf(BASE64_MARKER) + BASE64_MARKER.length;\r\n let base64 = dataUri.substring(base64Index);\r\n let raw = window.atob(base64);\r\n let rawLength = raw.length;\r\n let array = new Uint8Array(new ArrayBuffer(rawLength));\r\n \r\n for(let i = 0; i < rawLength; i++) \r\n array[i] = raw.charCodeAt(i);\r\n \r\n return array;\r\n }\r\n}\r\n\r\nexport class FileUploadPreviewComponentDefinition extends ComponentDefinition {\r\n public Preview: {Url: string, FileName : string};\r\n public Form: FormComponentDefinition;\r\n public DisableDownload: boolean;\r\n}","\r\n\r\n Powered by SSI\r\n","import { Component, ElementRef, ViewChild, AfterViewInit, TemplateRef, ViewEncapsulation, HostBinding } from \"@angular/core\";\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\nimport { Form, FormComponent, FormComponentDefinition } from \"../form/form.component\";\r\nimport * as $ from 'jquery';\r\n\r\n@Component({\r\n selector: 'footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.less'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class FooterComponent {\r\n}","
\r\n
\r\n
Your Email
\r\n
Verify Your Identity
\r\n
\r\n
\r\n
\r\n
1
\r\n
Your Email
\r\n
\r\n
\r\n
2
\r\n
Verify Your Identity
\r\n
\r\n
\r\n
3
\r\n
Reset Password
\r\n
\r\n
\r\n
","import { Component, Input, ElementRef, AfterViewInit } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { ModalService } from \"../../services/ModalService\";\r\nimport { ComponentDefinition } from \"../../components/component/component.models\";\r\n\r\n@Component({\r\n selector: 'forgot-password-Guidance',\r\n templateUrl: './forgot-password-guidance.component.html',\r\n styleUrls: ['./forgot-password-guidance.component.less']\r\n})\r\nexport class ForgotPasswordGuidanceComponent {\r\n public Model: ForgotPasswordGuidanceDefinition;\r\n\r\n constructor(compDef: ComponentDefinition) {\r\n this.Model = compDef;\r\n }\r\n}\r\n\r\nexport class ForgotPasswordGuidanceDefinition extends ComponentDefinition {\r\n CurrentStep: number;\r\n}","import { Component, Input, OnInit, Directive, ViewChild, AfterViewInit, ElementRef, ComponentFactoryResolver, ViewContainerRef, Injector, Type, InjectionToken, ChangeDetectionStrategy, Injectable } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators, AbstractControl } from \"@angular/forms\";\r\nimport { FieldDefinition, FormComponent } from \"./form.component\";\r\nimport { NavigationService, NavigationType } from \"../../services/NavigationService\";\r\nimport { CustomizationService } from \"../../services/CustomizationService\";\r\nimport { FieldService } from '../../services/FieldService';\r\nimport { MaskedInputFieldComponent } from \"./fieldcomponents/masked-input-field.component\";\r\nimport { DropdownFieldComponent } from \"./fieldcomponents/dropdown-field.component\";\r\nimport { MultiSelectFieldComponent } from \"./fieldcomponents/multi-select-field.component\";\r\nimport { MultiLineFieldComponent } from \"./fieldcomponents/multi-line-field.component\";\r\nimport { TextAreaFieldComponent } from \"./fieldcomponents/textarea-field.component\";\r\nimport { PlacesAutocompleteFieldComponent } from \"./fieldcomponents/places-autocomplete-field.component\";\r\nimport { TextboxFieldComponent } from \"./fieldcomponents/textbox-field.component\";\r\nimport { RadioFieldComponent, RadioQuestionnaireFieldComponent } from \"./fieldcomponents/radio-field.component\";\r\nimport { PasswordFieldComponent } from \"./fieldcomponents/password-field.component\";\r\nimport { UTCOffsetFieldComponent } from \"./fieldcomponents/utc-offset-field.component\";\r\nimport { GCMKeyFieldComponent } from \"./fieldcomponents/gcm-key-field.component\";\r\nimport { AutocompleteFieldComponent } from \"./fieldcomponents/autocomplete-field.component\";\r\nimport { DatePickerFieldComponent } from \"./fieldcomponents/datepicker-field.component\";\r\nimport { DateTimePickerFieldComponent } from \"./fieldcomponents/datetimepicker-field.component\";\r\nimport { ApproximateDateFieldComponent } from \"./fieldcomponents/approximate-date-field.component\";\r\nimport { ApproximateMonthFieldComponent } from \"./fieldcomponents/approximate-month-field.component\";\r\nimport { DOBFieldComponent } from \"./fieldcomponents/dob-field.component\";\r\nimport { CheckboxFieldComponent } from \"./fieldcomponents/checkbox-field.component\";\r\nimport { SlideToggleFieldComponent } from \"./fieldcomponents/slide-toggle-field.component\";\r\nimport { FileUploadFieldComponent } from \"./fieldcomponents/file-upload-field.component\";\r\n// import { HtmlFieldComponent } from \"./fieldcomponents/html-field.component\";\r\nimport { SignatureFieldComponent } from \"./fieldcomponents/signature-field.component\";\r\nimport { MultiCheckboxFieldComponent } from \"./fieldcomponents/multi-checkbox-field.component\";\r\nimport { HiddenFieldComponent } from \"./fieldcomponents/hidden-field.component\";\r\n// import { NotHiddenFieldPipe } from \"../fieldcomponents/form.component\";\r\nimport { CombinedCheckboxFieldComponent } from \"./fieldcomponents/combined-checkbox-field.component\";\r\nimport { ExpressionFieldComponent } from \"./fieldcomponents/expression-field.component\";\r\nimport { FileUploadStreamFieldComponent } from \"./fieldcomponents/file-upload-stream-field.component\";\r\nimport { MapLookupFieldComponent } from \"./fieldcomponents/maplookup-field.component\";\r\nimport { RangeBucketsFieldComponent, ExpressionEvaluatorFieldComponent } from \"./fieldcomponents/range-buckets-field.component\";\r\nimport { LookupFieldComponent } from \"./fieldcomponents/lookup-field.component/lookup-field.component\";\r\nimport { SliderFieldComponent } from \"./fieldcomponents/slider-field.component\";\r\nimport { ObservationEditorFieldComponent } from \"./fieldcomponents/observation-editor-field.component\";\r\nimport { RangeDefinitionFieldComponent } from './fieldcomponents/range-definition-field.component';\r\n\r\nconst fields: {[key: string]: Type} = { \r\n 'TextboxFieldComponent': TextboxFieldComponent,\r\n 'MaskedInputFieldComponent':MaskedInputFieldComponent,\r\n 'DropdownFieldComponent':DropdownFieldComponent,\r\n 'MultiSelectFieldComponent':MultiSelectFieldComponent,\r\n 'MultiLineFieldComponent':MultiLineFieldComponent,\r\n 'TextAreaFieldComponent':TextAreaFieldComponent,\r\n 'PlacesAutocompleteFieldComponent':PlacesAutocompleteFieldComponent,\r\n 'RadioFieldComponent':RadioFieldComponent,\r\n 'PasswordFieldComponent':PasswordFieldComponent,\r\n 'UTCOffsetFieldComponent':UTCOffsetFieldComponent,\r\n 'GCMKeyFieldComponent':GCMKeyFieldComponent,\r\n 'AutocompleteFieldComponent':AutocompleteFieldComponent,\r\n 'DatePickerFieldComponent':DatePickerFieldComponent,\r\n 'DateTimePickerFieldComponent':DateTimePickerFieldComponent,\r\n 'ApproximateDateFieldComponent':ApproximateDateFieldComponent,\r\n 'ApproximateMonthFieldComponent':ApproximateMonthFieldComponent,\r\n 'DOBFieldComponent':DOBFieldComponent,\r\n 'CheckboxFieldComponent':CheckboxFieldComponent,\r\n 'SlideToggleFieldComponent':SlideToggleFieldComponent,\r\n 'FileUploadFieldComponent':FileUploadFieldComponent,\r\n 'SignatureFieldComponent':SignatureFieldComponent,\r\n 'MultiCheckboxFieldComponent':MultiCheckboxFieldComponent,\r\n 'HiddenFieldComponent':HiddenFieldComponent,\r\n 'CombinedCheckboxFieldComponent':CombinedCheckboxFieldComponent,\r\n 'ExpressionFieldComponent':ExpressionFieldComponent,\r\n 'FileUploadStreamFieldComponent':FileUploadStreamFieldComponent,\r\n 'MapLookupFieldComponent':MapLookupFieldComponent,\r\n 'RangeBucketsFieldComponent':RangeBucketsFieldComponent,\r\n 'LookupFieldComponent':LookupFieldComponent,\r\n 'SliderFieldComponent':SliderFieldComponent,\r\n 'ObservationEditorFieldComponent':ObservationEditorFieldComponent,\r\n 'ExpressionEvaluatorFieldComponent': ExpressionEvaluatorFieldComponent,\r\n 'RangeDefinitionFieldComponent': RangeDefinitionFieldComponent\r\n};\r\n\r\n@Component({\r\n selector: 'field',\r\n templateUrl: './field.component.html',\r\n styles: [`\r\n \r\n :host {\r\n position: relative;\r\n display: block;\r\n }\r\n `]\r\n})\r\nexport class FieldComponent {\r\n GetType(name: string) {\r\n var type = fields[name];\r\n if (!type) {\r\n type = this.customizationService.Get(name);\r\n }\r\n return type;\r\n }\r\n\r\n @Input()\r\n public set name(value: string) {\r\n let field = this.fieldService.Fields.filter(r => r.Definition.Name == value)[0];\r\n let type = (field.Definition.Attributes[\"QuestionnaireField\"] && this.GetType(field.Definition.ControlType+'QuestionnaireFieldComponent')) || this.GetType(field.Definition.ControlType+'FieldComponent');\r\n \r\n if (!type)\r\n {\r\n console.error('Unable to find type: '+field.Definition.ControlType+'FieldComponent');\r\n return;\r\n }\r\n var control = field.Form.controls[value];\r\n\r\n let componentFactory = this._componentFactoryResolver.resolveComponentFactory(type);\r\n var component = this._fieldViewContainer.createComponent(componentFactory, null, new DataInjector(this._injector, field.Definition, field.Control, field.Form, field.FormComponent));\r\n }\r\n\r\n constructor(private _fieldViewContainer: ViewContainerRef, \r\n private _componentFactoryResolver: ComponentFactoryResolver, \r\n private _injector: Injector, \r\n private _navigationService: NavigationService, \r\n private customizationService: CustomizationService,\r\n private fieldService: FieldService) { \r\n }\r\n}\r\n\r\n\r\nclass DataInjector extends Injector {\r\n constructor(private baseInjector: Injector, \r\n private _fieldDefinition: FieldDefinition,\r\n private _formControl: AbstractControl,\r\n private _formGroup: FormGroup,\r\n private _formComponent: FormComponent) {\r\n super();\r\n }\r\n\r\n get(token: Type | InjectionToken, notFoundValue?: T): T;\r\n get(token: any, notFoundValue?: any);\r\n get(token: any, notFoundValue?: any) {\r\n if (token == FieldDefinition)\r\n return this._fieldDefinition;\r\n if (token == AbstractControl)\r\n return this._formControl;\r\n if (token == FormGroup)\r\n return this._formGroup;\r\n return this.baseInjector.get(token, notFoundValue);\r\n }\r\n}","import { AbstractControl } from \"@angular/forms\";\r\n\r\nexport class FormControlUtility {\r\n private _hasStoredValue: boolean;\r\n private _storedValue: any;\r\n private _input: any;\r\n private setInputValue: (value: any) => void;\r\n\r\n public Initialize(control: AbstractControl, \r\n input: any, \r\n setInputValue: (value: any) => void = ((value: any) => { input.val(value) }),\r\n setControlValue: (value: any) => void = ((value: any) => { control.setValue(input.val()) })) {\r\n this._input = input;\r\n this.setInputValue = setInputValue;\r\n\r\n control.valueChanges.subscribe(c => {\r\n if (input.is(':focus')) \r\n {\r\n this._storedValue = c;\r\n this._hasStoredValue = true;\r\n return;\r\n }\r\n this._hasStoredValue = false;\r\n setInputValue(c);\r\n });\r\n\r\n input.blur(c => { \r\n this.blur() \r\n })\r\n \r\n input.on('input', c => {\r\n setControlValue(input.val());\r\n })\r\n }\r\n\r\n blur() {\r\n if (this._hasStoredValue) {\r\n this.setInputValue(this._storedValue);\r\n this._hasStoredValue = false;\r\n }\r\n }\r\n}","import { Subject } from \"rxjs\";\r\nimport { Observable } from \"rxjs\";\r\nimport { AbstractControl } from \"@angular/forms\";\r\nimport { ValidationMessage, Severity, FieldDefinition } from \"../form.component\";\r\nimport * as $ from 'jquery';\r\nimport { distinctUntilChanged } from 'rxjs/operators';\r\n\r\nexport class FormStateUtility {\r\n input: any;\r\n public StateChange: Subject<{}>;\r\n public StateChangeDistinct: Observable<{}>;\r\n\r\n constructor(public control: AbstractControl, private fieldDefinition: FieldDefinition = null) {\r\n this.StateChange = new Subject();\r\n this.StateChangeDistinct = this.StateChange.pipe(distinctUntilChanged((x,y) => JSON.stringify(x) == JSON.stringify(y)));\r\n control.valueChanges.subscribe(x => { \r\n this.SendUpdate();\r\n });\r\n control.statusChanges.subscribe(x => { \r\n this.SendUpdate();\r\n });\r\n }\r\n\r\n SetInput(input: any) {\r\n this.input = input;\r\n $(input).focus(x => {\r\n this.SendUpdate();\r\n });\r\n $(input).blur(x => { \r\n this.SendUpdate();\r\n });\r\n $(input).keydown(x => { \r\n this.SendUpdate();\r\n });\r\n }\r\n\r\n SendUpdate() {\r\n this.StateChange.next({\r\n \"error\": !!(this.control.errors && (this.control.errors).filter(r => r.Severity == Severity.Error || r.Severity == Severity.Fatal).length),\r\n \"warning\": !!(this.control.errors && (this.control.errors).filter(r => r.Severity == Severity.Warning).length),\r\n \"idle\": !this.input || !this.input.is(':focus'),\r\n \"focus\": this.input && this.input.is(':focus'),\r\n \"empty\": !this.control.value,\r\n \"filled\": !!this.control.value,\r\n \"disabled\": !!this.fieldDefinition && !!this.fieldDefinition.Attributes && !!this.fieldDefinition.Attributes[\"ReadOnly\"],\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n {{field.Label}}\r\n
\r\n
\r\n
\r\n
{{YearDisplay}}
\r\n
arrow_drop_down
\r\n
\r\n
\r\n
{{MonthDisplay}}
\r\n
arrow_drop_down
\r\n
\r\n
\r\n
{{DayDisplay}}
\r\n
arrow_drop_down
\r\n
\r\n
\r\n
\r\n
{{error.Description}}
\r\n
\r\n
\r\n
{{warning.Description}}
\r\n
\r\n
\r\n\r\n\r\n
{{value.Description}}
\r\n
\r\n\r\n
{{value.Description}}
\r\n
\r\n\r\n
{{value.Description}}
\r\n
\r\n","import { Component, ViewChild, ElementRef, AfterViewInit } from \"@angular/core\";\r\nimport { FieldDefinition, ValidationMessage, Severity } from \"../form.component\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport * as $ from 'jquery';\r\nimport { FormStateUtility } from \"./FormStateUtility\";\r\nimport { MDialog } from \"../../dialog/md-dialog.component\";\r\n\r\n@Component({\r\n templateUrl: './approximate-date-field.component.html',\r\n styleUrls: ['approximate-date-field.component.less']\r\n})\r\nexport class ApproximateDateFieldComponent implements AfterViewInit {\r\n _stateUtil: FormStateUtility;\r\n public Year: string;\r\n public YearDisplay: string;\r\n public Month: string;\r\n public MonthDisplay: string;\r\n public Day: string;\r\n public DayDisplay: string;\r\n \r\n public Years: {Value: string, Description: string}[];\r\n public Days: {Value: string, Description: string}[];\r\n public Months: {Value: string, Description: string}[];\r\n\r\n @ViewChild('yearMenu', {read: MDialog, static: false})\r\n private YearDialog: MDialog;\r\n\r\n @ViewChild('monthMenu', {read: MDialog, static: false})\r\n private MonthDialog: MDialog;\r\n\r\n @ViewChild('dayMenu', {read: MDialog, static: false})\r\n private DayDialog: MDialog;\r\n \r\n constructor(public field: FieldDefinition, \r\n public group: FormGroup, \r\n public control: AbstractControl,\r\n private _elementRef: ElementRef) {\r\n this.Years = this.GetYears(field);\r\n this.Months = this.GetMonths(field);\r\n this.Days = this.GetDays();\r\n this.Day = \"0\";\r\n this.DayDisplay = \"Day\";\r\n this.Month = \"0\";\r\n this.MonthDisplay = \"Month\";\r\n this.Year = \"0\";\r\n this.YearDisplay = \"Year\";\r\n if (field.Value) {\r\n let fieldParts = field.Value.split('/');\r\n if (fieldParts.length == 3) {\r\n this.Day = fieldParts[0];\r\n this.DayDisplay = this.Day;\r\n this.Month = fieldParts[1];\r\n this.MonthDisplay = this.Months.find(m => m.Value == this.Month).Description;\r\n this.Year = fieldParts[2];\r\n this.YearDisplay = this.Year;\r\n }\r\n }\r\n\r\n this._stateUtil = new FormStateUtility(this.control, this.field);\r\n this._stateUtil.StateChangeDistinct.subscribe(c => \r\n {\r\n this.FieldClass = c\r\n });\r\n\r\n this._stateUtil.SendUpdate();\r\n\r\n }\r\n \r\n ngAfterViewInit(): void {\r\n this._stateUtil.SetInput($('.m-dropdown-button', this._elementRef.nativeElement));\r\n }\r\n\r\n public FieldClass: {};\r\n\r\n public GetYearOptionClass(value) {\r\n if (!this.control)\r\n return;\r\n return {\r\n \"selected\": this.Year === value.Value\r\n }\r\n }\r\n\r\n public GetMonthOptionClass(value) {\r\n if (!this.control)\r\n return;\r\n return {\r\n \"selected\": this.Month === value.Value\r\n }\r\n }\r\n \r\n public GetDayOptionClass(value) {\r\n if (!this.control)\r\n return;\r\n return {\r\n \"selected\": this.Day === value.Value\r\n }\r\n }\r\n\r\n public GetDays(): {Value: string, Description: string}[] {\r\n var days;\r\n if (!this.Month)\r\n days = 31;\r\n else\r\n days = new Date(+this.Year, +this.Month, 0).getDate();\r\n\r\n let values = [];\r\n values.push( { Value: \"0\", Description: \"Day\" });\r\n for (var i = 1; i <= days; i++)\r\n values.push( { Value: i.toString(), Description: i.toString() });\r\n\r\n return values;\r\n }\r\n \r\n public GetMonths(field: FieldDefinition): {Value: string, Description: string}[] {\r\n let values = [];\r\n values.push( { Value: \"0\", Description: \"Month\" });\r\n values.push( { Value: \"1\", Description: \"Jan\" });\r\n values.push( { Value: \"2\", Description: \"Feb\" });\r\n values.push( { Value: \"3\", Description: \"Mar\" });\r\n values.push( { Value: \"4\", Description: \"Apr\" });\r\n values.push( { Value: \"5\", Description: \"May\" });\r\n values.push( { Value: \"6\", Description: \"Jun\" });\r\n values.push( { Value: \"7\", Description: \"Jul\" });\r\n values.push( { Value: \"8\", Description: \"Aug\" });\r\n values.push( { Value: \"9\", Description: \"Sep\" });\r\n values.push( { Value: \"10\", Description: \"Oct\" });\r\n values.push( { Value: \"11\", Description: \"Nov\" });\r\n values.push( { Value: \"12\", Description: \"Dec\" });\r\n return values;\r\n }\r\n\r\n public GetYears(field: FieldDefinition): {Value: string, Description: string}[] {\r\n let values = [];\r\n values.push( { Value: \"0\", Description: \"Year\" });\r\n\r\n var firstYear = 1914;\r\n var lastYear = 2045;\r\n var currentYear = new Date().getFullYear();\r\n\r\n if (field.Attributes && field.Attributes[\"ShowPast\"] && field.Attributes[\"ShowFuture\"]) {\r\n for (var i = firstYear; i <= lastYear; i++)\r\n values.push( { Value: i.toString(), Description: i.toString() });\r\n }\r\n else if (field.Attributes && field.Attributes[\"ShowFuture\"]) {\r\n for (var i = currentYear; i <= lastYear; i++)\r\n values.push( { Value: i.toString(), Description: i.toString() });\r\n }\r\n else {\r\n for (var i = currentYear; i >= firstYear; i--)\r\n values.push( { Value: i.toString(), Description: i.toString() });\r\n }\r\n\r\n return values;\r\n }\r\n\r\n public SelectYearOption(option: any) {\r\n this.Year = option.Description;\r\n this.YearDisplay = option.Description;\r\n this.SetValue();\r\n }\r\n\r\n public SelectMonthOption(option: any) {\r\n this.Month = option.Value;\r\n this.MonthDisplay = option.Description;\r\n this.SetValue();\r\n }\r\n\r\n public SelectDayOption(option: any) {\r\n this.Day = option.Description;\r\n this.DayDisplay = option.Description;\r\n this.SetValue();\r\n }\r\n\r\n private SetValue() {\r\n //If Month or Year changed.\r\n this.Days = this.GetDays();\r\n\r\n var zero = \"0\";\r\n if((this.Day !== zero && (this.Month === zero ||this.Year === zero)) ||\r\n (this.Month !== zero && this.Year === zero) )\r\n this.control.setValue(\"\");\r\n else {\r\n this.control.setValue(this.Day + \"/\" + this.Month + \"/\" + this.Year);\r\n }\r\n }\r\n}","
\r\n
\r\n {{field.Label}}\r\n
\r\n
\r\n
\r\n
{{YearDisplay}}
\r\n
arrow_drop_down
\r\n
\r\n
\r\n
{{MonthDisplay}}
\r\n
arrow_drop_down
\r\n
\r\n
\r\n
\r\n
{{error.Description}}
\r\n
\r\n
\r\n
{{warning.Description}}
\r\n
\r\n
\r\n\r\n\r\n
{{value.Description}}
\r\n
\r\n\r\n
{{value.Description}}
\r\n
\r\n","import { Component, ElementRef, ViewChild, AfterViewInit } from \"@angular/core\";\r\nimport { FieldDefinition, ValidationMessage, Severity } from \"../form.component\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport { FormStateUtility } from \"./FormStateUtility\";\r\nimport * as $ from 'jquery';\r\nimport { MDialog } from \"../../dialog/md-dialog.component\";\r\n\r\n@Component({\r\n templateUrl: './approximate-month-field.component.html',\r\n styleUrls: ['approximate-month-field.component.less']\r\n})\r\nexport class ApproximateMonthFieldComponent implements AfterViewInit {\r\n _stateUtil: FormStateUtility;\r\n public Year: string;\r\n public YearDisplay: string;\r\n public Month: string;\r\n public MonthDisplay: string;\r\n \r\n public Years: {Value: string, Description: string}[];\r\n public Months: {Value: string, Description: string}[];\r\n\r\n @ViewChild('yearMenu', {read: MDialog, static: false})\r\n private YearDialog: MDialog;\r\n\r\n @ViewChild('monthMenu', {read: MDialog, static: false})\r\n private MonthDialog: MDialog;\r\n\r\n constructor(public field: FieldDefinition, \r\n public group: FormGroup, \r\n public control: AbstractControl,\r\n private _elementRef: ElementRef) {\r\n this.Years = this.GetYears(field);\r\n this.Months = this.GetMonths(field);\r\n this.Month = \"0\";\r\n this.MonthDisplay = \"Month\";\r\n this.Year = \"0\";\r\n this.YearDisplay = \"Year\";\r\n if (field.Value) {\r\n let fieldParts = field.Value.split('/');\r\n if (fieldParts.length == 3) {\r\n this.Month = fieldParts[1];\r\n this.MonthDisplay = this.Months.find(m => m.Value == this.Month).Description;\r\n this.Year = fieldParts[2];\r\n this.YearDisplay = this.Year;\r\n }\r\n }\r\n\r\n this._stateUtil = new FormStateUtility(this.control, this.field);\r\n this._stateUtil.StateChangeDistinct.subscribe(c => \r\n {\r\n this.FieldClass = c\r\n });\r\n\r\n this._stateUtil.SendUpdate();\r\n\r\n }\r\n \r\n ngAfterViewInit(): void {\r\n this._stateUtil.SetInput($('.m-dropdown-button', this._elementRef.nativeElement));\r\n }\r\n\r\n \r\n public FieldClass: {};\r\n\r\n public GetYearOptionClass(value) {\r\n if (!this.control)\r\n return;\r\n return {\r\n \"selected\": this.Year === value.Value\r\n }\r\n }\r\n\r\n public GetMonthOptionClass(value) {\r\n if (!this.control)\r\n return;\r\n return {\r\n \"selected\": this.Month === value.Value\r\n }\r\n }\r\n\r\n public GetMonths(field: FieldDefinition): {Value: string, Description: string}[] {\r\n let values = [];\r\n values.push( { Value: \"0\", Description: \"Month\" });\r\n values.push( { Value: \"1\", Description: \"Jan\" });\r\n values.push( { Value: \"2\", Description: \"Feb\" });\r\n values.push( { Value: \"3\", Description: \"Mar\" });\r\n values.push( { Value: \"4\", Description: \"Apr\" });\r\n values.push( { Value: \"5\", Description: \"May\" });\r\n values.push( { Value: \"6\", Description: \"Jun\" });\r\n values.push( { Value: \"7\", Description: \"Jul\" });\r\n values.push( { Value: \"8\", Description: \"Aug\" });\r\n values.push( { Value: \"9\", Description: \"Sep\" });\r\n values.push( { Value: \"10\", Description: \"Oct\" });\r\n values.push( { Value: \"11\", Description: \"Nov\" });\r\n values.push( { Value: \"12\", Description: \"Dec\" });\r\n return values;\r\n }\r\n\r\n public GetYears(field: FieldDefinition): {Value: string, Description: string}[] {\r\n let values = [];\r\n values.push( { Value: \"0\", Description: \"Year\" });\r\n\r\n var firstYear = 1914;\r\n var lastYear = 2045;\r\n var currentYear = new Date().getFullYear();\r\n \r\n if (field.Attributes && field.Attributes[\"ShowPast\"] && field.Attributes[\"ShowFuture\"]) {\r\n for (var i = firstYear; i <= lastYear; i++)\r\n values.push( { Value: i.toString(), Description: i.toString() });\r\n }\r\n else if (field.Attributes && field.Attributes[\"ShowFuture\"]) {\r\n for (var i = currentYear; i <= lastYear; i++)\r\n values.push( { Value: i.toString(), Description: i.toString() });\r\n }\r\n else {\r\n for (var i = currentYear; i >= firstYear; i--)\r\n values.push( { Value: i.toString(), Description: i.toString() });\r\n }\r\n\r\n return values;\r\n }\r\n\r\n public SelectYearOption(option: any) {\r\n this.Year = option.Description;\r\n this.YearDisplay = option.Description;\r\n this.SetValue();\r\n }\r\n\r\n public SelectMonthOption(option: any) {\r\n this.Month = option.Value;\r\n this.MonthDisplay = option.Description;\r\n this.SetValue();\r\n }\r\n\r\n private SetValue() {\r\n //If Month or Year changed.\r\n var zero = \"0\";\r\n if((this.Year === zero) ||\r\n (this.Month !== zero && this.Year === zero) )\r\n this.control.setValue(\"\");\r\n else {\r\n this.control.setValue(\"0/\" + this.Month + \"/\" + this.Year);\r\n }\r\n }\r\n}","
\r\n
\r\n
\r\n {{field.Label}}\r\n
\r\n
\r\n
\r\n \r\n \r\n
{{ValueDescription}}
\r\n
\r\n
\r\n
\r\n
\r\n
{{error.Description}}
\r\n
\r\n
\r\n
{{warning.Description}}
\r\n
\r\n
\r\n\r\n\r\n \r\n\r\n\r\n\r\n
\r\n
{{match.label}}
\r\n
{{match.details}}
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
","import { Component, ViewChild, ElementRef, AfterViewInit, TemplateRef, EventEmitter, ViewContainerRef } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { FieldDefinition, ValidationMessage, Severity } from \"../form.component\";\r\nimport { FormGroup, AbstractControl, FormControl, FormGroupDirective, NgForm } from \"@angular/forms\";\r\nimport * as $ from 'jquery';\r\nimport { ComponentDefinition } from \"../../component/component.models\";\r\nimport { FormStateUtility } from \"./FormStateUtility\";\r\nimport { MDialog, MDialogTrigger } from \"../../dialog/md-dialog.component\";\r\nimport { DialogService } from \"../../../services/DialogService\";\r\nimport { map, debounceTime, switchMap } from 'rxjs/operators';\r\n\r\n@Component({\r\n templateUrl: './autocomplete-field.component.html',\r\n styleUrls: [`./autocomplete-field.component.less`]\r\n})\r\nexport class AutocompleteFieldComponent implements AfterViewInit {\r\n _stateUtil: FormStateUtility;\r\n _blurTimeout: number;\r\n _cb: any;\r\n dialogTrigger: MDialogTrigger;\r\n DialogShown: boolean;\r\n\r\n @ViewChild('menu', { static: false }) dialog: MDialog;\r\n @ViewChild('position', { static: false }) positioningTrigger: ElementRef;\r\n @ViewChild('autocompleteResultsTemplate', {read: TemplateRef, static: false}) autocompleteResultsTemplate: TemplateRef;\r\n @ViewChild('componentResultsTemplate', {read: TemplateRef, static: false}) componentResultsTemplate: TemplateRef;\r\n\r\n public autocompleteResults: AutocompleteMatch[];\r\n public componentResults: ComponentDefinition;\r\n\r\n public resultTemplate: TemplateRef;\r\n\r\n public ValueDescription: string;\r\n public Searching: boolean;\r\n\r\n private Search: EventEmitter;\r\n private ValueDescriptionCaches: {} = {};\r\n ShouldClearOnBlur: any;\r\n\r\n constructor(public field: FieldDefinition, \r\n private group: FormGroup, \r\n public control: AbstractControl, \r\n private _http: HttpClient,\r\n private _elementRef: ElementRef,\r\n private _dialogService: DialogService,\r\n private _viewContainerRef: ViewContainerRef) {\r\n\r\n let dynamicValDescriptionProperty = this.field.Attributes[\"DynamicValueDescription\"]\r\n this.ValueDescription = (dynamicValDescriptionProperty && group.controls[dynamicValDescriptionProperty].value)\r\n || this.field.Attributes[\"ValueDescription\"]\r\n || this.field.Value;\r\n\r\n this.Search = new EventEmitter();\r\n \r\n this.Search\r\n .pipe(map(() => {\r\n this.Searching = true;\r\n }))\r\n .pipe(debounceTime(500))\r\n .pipe(switchMap(() => {\r\n let search = $.extend(true, { term: $(this._elementRef.nativeElement).find('input').val() }, { searchData: this.field.Attributes['AutocompleteData']});\r\n\r\n if (search.searchData)\r\n delete search.searchData[\"$type\"];\r\n\r\n if (this.field.Attributes[\"DynamicAutocompleteData\"]) {\r\n var field = this.field.Attributes[\"DynamicAutocompleteData\"];\r\n if (!search.searchData) {\r\n search.searchData = {};\r\n }\r\n search.searchData[field] = group.value[field];\r\n }\r\n\r\n return this._http\r\n .post(this.field.Attributes.SearchUrl, search)\r\n }))\r\n .subscribe((result: any) => {\r\n this.Searching = false;\r\n if (Object.keys(result).indexOf(\"Header\") == -1) {\r\n this.autocompleteResults = result.Matches;\r\n this.resultTemplate = this.autocompleteResultsTemplate;\r\n }\r\n else {\r\n this.componentResults = result;\r\n this.resultTemplate = this.componentResultsTemplate;\r\n }\r\n }, (error: Response) => {\r\n if (error.status == 401) {\r\n var errorMatch = new AutocompleteMatch();\r\n errorMatch.IsDisabled = true;\r\n errorMatch.label = 'Unauthorized for this search';\r\n this.autocompleteResults = [errorMatch];\r\n this.resultTemplate = this.autocompleteResultsTemplate;\r\n }\r\n else {\r\n var errorMatch = new AutocompleteMatch();\r\n errorMatch.IsDisabled = true;\r\n errorMatch.label = 'Error occurred during search';\r\n console.log(error);\r\n this.autocompleteResults = [errorMatch];\r\n this.resultTemplate = this.autocompleteResultsTemplate;\r\n\r\n }\r\n }\r\n );\r\n \r\n this._stateUtil = new FormStateUtility(this.control, this.field);\r\n this._stateUtil.StateChangeDistinct.subscribe(change => {\r\n this.FieldClass = change;\r\n });\r\n\r\n this._stateUtil.SendUpdate();\r\n }\r\n \r\n ngAfterViewInit(): void {\r\n let $inputField = $(this._elementRef.nativeElement).find('input');\r\n this._stateUtil.SetInput($inputField);\r\n\r\n let dynamicValDescriptionProperty = this.field.Attributes[\"DynamicValueDescription\"]\r\n this.ValueDescription = (dynamicValDescriptionProperty && this.group.controls[dynamicValDescriptionProperty].value)\r\n || this.field.Attributes[\"ValueDescription\"]\r\n || this.field.Value;\r\n if (this.ValueDescription)\r\n {\r\n $inputField.val(this.ValueDescription);\r\n this.ValueDescriptionCaches[this.field.Value] = this.ValueDescription;\r\n }\r\n\r\n this.dialogTrigger = new MDialogTrigger(this.positioningTrigger, this._viewContainerRef, this._dialogService);\r\n this.dialogTrigger.menu = this.dialog;\r\n this.dialogTrigger.ngAfterContentInit();\r\n this.dialogTrigger.setOpenBinding(() => {\r\n $(this.dialogTrigger.PaneElement).on('grid-row-click', (event, data) => {\r\n this.SelectMatch(data);\r\n });\r\n })\r\n\r\n this.control.valueChanges.subscribe(r => {\r\n console.log(\"Value set:\" + r);\r\n this.ValueDescription = this.ValueDescriptionCaches[r];\r\n });\r\n }\r\n\r\n keydown(evt: KeyboardEvent) {\r\n if (evt.keyCode == 38 || evt.keyCode == 40 || evt.keyCode == 13) {\r\n this.dialogTrigger.HandleKeydown(evt.keyCode);\r\n evt.preventDefault();\r\n }\r\n if (evt.keyCode == 46) // delete\r\n this.ClearSelection();\r\n }\r\n \r\n get element() {\r\n return $(this._elementRef.nativeElement).find('input');\r\n }\r\n\r\n public FieldClass: {};\r\n\r\n public FocusInput($event) {\r\n this.element.focus();\r\n if (!this.DialogShown) {\r\n this.DialogShown = true;\r\n this.dialogTrigger.openMenu();\r\n }\r\n $event.stopPropagation();\r\n }\r\n\r\n ClearSelection() {\r\n this.ShouldClearOnBlur = true;\r\n this.ValueDescription = null;\r\n $(this._elementRef.nativeElement).find('input').val(null);\r\n $(this._elementRef.nativeElement).find('input').focus();\r\n }\r\n\r\n input($event) {\r\n if (this.Search)\r\n this.Search.emit();\r\n }\r\n\r\n blur($event) {\r\n if ($($event.relatedTarget).is('button') && this.ShouldClearOnBlur)\r\n this.control.setValue(null);\r\n this._blurTimeout = window.setTimeout(() => {\r\n if (this.ShouldClearOnBlur) {\r\n this.control.setValue(null);\r\n }\r\n this.dialog.close();\r\n this.dialogTrigger.closeMenu();\r\n this.DialogShown = false; \r\n $(this._elementRef.nativeElement).find('input').val('');\r\n if (this.control.value) {\r\n this.ValueDescription = this.ValueDescriptionCaches[this.control.value];\r\n }\r\n }, 250);\r\n }\r\n\r\n focus($event) {\r\n if (this._blurTimeout)\r\n window.clearTimeout(this._blurTimeout);\r\n if (this.Search)\r\n this.Search.emit();\r\n\r\n this.FocusInput($event);\r\n }\r\n\r\n SelectMatch(match: AutocompleteMatch) {\r\n if(match.IsDisabled) return;\r\n this.ShouldClearOnBlur = false;\r\n this.control.setValue(match.val);\r\n $(this._elementRef.nativeElement).find('input').val(match.label);\r\n this.ValueDescription = match.label;\r\n this.group.controls[this.field.Name + \"Description\"].setValue(this.ValueDescription);\r\n this.ValueDescriptionCaches[this.control.value] = this.ValueDescription;\r\n this.dialog.close();\r\n this.DialogShown = false; \r\n }\r\n}\r\n\r\nexport class AutocompleteResponse {\r\n Matches: AutocompleteMatch[];\r\n}\r\n\r\nexport class AutocompleteMatch {\r\n val: string;\r\n value: string;\r\n label: string;\r\n details: string;\r\n IsDisabled: boolean;\r\n}","","import { Component, ElementRef } from \"@angular/core\";\r\nimport { AbstractControl } from \"@angular/forms\";\r\n\r\nimport { FieldDefinition } from \"../form.component\";\r\nimport { FormStateUtility } from \"./FormStateUtility\";\r\n\r\n@Component({\r\n template: ``\r\n})\r\nexport class CheckboxFieldComponent {\r\n constructor(public field: FieldDefinition, \r\n public control: AbstractControl,\r\n private _elementRef: ElementRef) {\r\n this.stateUtil.StateChangeDistinct.subscribe(c => this.fieldClass = c)\r\n this.checked = this.control.value === true\r\n }\r\n private stateUtil = new FormStateUtility(this.control, this.field)\r\n\r\n private _checked: boolean;\r\n get checked() { return this._checked }\r\n set checked(val: boolean) {\r\n this._checked = val\r\n if (this.checked != this.control.value)\r\n this.control.setValue(this.checked)\r\n }\r\n\r\n fieldClass: object\r\n}\r\n","
\r\n
\r\n {{field.Label}}\r\n
\r\n
\r\n
\r\n check_box\r\n check_box_outline_blank\r\n
\r\n
{{field.Label}}
\r\n
\r\n
\r\n
{{error.Description}}
\r\n
\r\n
\r\n
{{warning.Description}}
\r\n
\r\n
\r\n","import { Component, AfterViewInit, ElementRef } from \"@angular/core\";\r\nimport { FieldDefinition, ValidationMessage, Severity } from \"../form.component\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport { FormStateUtility } from \"./FormStateUtility\";\r\nimport * as $ from 'jquery';\r\n\r\n@Component({\r\n templateUrl: 'combined-checkbox-field.component.html',\r\n styleUrls: ['combined-checkbox-field.component.less']\r\n})\r\nexport class CombinedCheckboxFieldComponent implements AfterViewInit {\r\n _stateUtil: FormStateUtility;\r\n public IsSelected: boolean;\r\n\r\n public SubFields: FieldDefinition[];\r\n\r\n constructor(public field: FieldDefinition, \r\n public group: FormGroup,\r\n public control: AbstractControl,\r\n private _elementRef: ElementRef) {\r\n this.SubFields = field.Attributes[\"Combined\"];\r\n\r\n this._stateUtil = new FormStateUtility(this.control, this.field);\r\n this._stateUtil.StateChangeDistinct.subscribe(c => \r\n {\r\n this.FieldClass = c\r\n });\r\n this._stateUtil.SendUpdate();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.IsSelected = this.control.value === true;\r\n this._stateUtil.SetInput($('.m-checkbox', this._elementRef.nativeElement));\r\n }\r\n\r\n public FieldClass: {};\r\n\r\n public Toggle(field: FieldDefinition) {\r\n this.group.controls[field.Name].setValue(!(field).IsSelected);\r\n (field).IsSelected = !(field).IsSelected;\r\n }\r\n\r\n public GetCheckboxClass() {\r\n return { \r\n \"ui-highlight\": this.control.value === true,\r\n };\r\n }\r\n}","
\r\n
\r\n
\r\n {{field.Label}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{{error.Description}}
\r\n
\r\n
\r\n
{{warning.Description}}
\r\n
\r\n
","import { Component, ElementRef } from \"@angular/core\";\r\nimport { FieldDefinition, ValidationMessage, Severity } from \"../form.component\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport { FormStateUtility } from \"./FormStateUtility\";\r\n// import * as $ from 'jquery';\r\n// import 'jquery-ui'\r\n\r\n@Component({\r\n templateUrl: './datepicker-field.component.html',\r\n styleUrls: ['./datepicker-field.component.less'] \r\n})\r\nexport class DatePickerFieldComponent {\r\n _stateUtil: FormStateUtility;\r\n _limitedDates: any;\r\n\r\n constructor(public field: FieldDefinition, \r\n public group: FormGroup, \r\n public control: AbstractControl,\r\n private _elementRef: ElementRef) {\r\n\r\n this._stateUtil = new FormStateUtility(this.control, this.field);\r\n this._stateUtil.StateChangeDistinct.subscribe(c => \r\n {\r\n this.FieldClass = c\r\n });\r\n \r\n if(this.field.Attributes[\"LimitedDates\"])\r\n this._limitedDates = this.field.Attributes[\"LimitedDates\"].map(r => new Date(r).toDateString());\r\n\r\n this._stateUtil.SendUpdate();\r\n\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n let input = $(this._elementRef.nativeElement).find('input');\r\n let options = {\r\n changeMonth: true,\r\n changeYear: true,\r\n dateFormat: \"m/dd/yy\",\r\n yearRange: \"-\" + (new Date().getFullYear() - 1900) + \":\" + (new Date().getFullYear() + 40),\r\n onClose: () => {\r\n this.control.setValue(input.val());\r\n },\r\n beforeShow: (input, inst) => {\r\n setTimeout(() => {\r\n var offset = $(input).offset();\r\n offset.top = offset.top + 20;\r\n inst.dpDiv.offset(offset);\r\n var position = $(input).position();\r\n if (inst.dpDiv.height() + position.top > $(window).height()) {\r\n offset.top = offset.top - inst.dpDiv.height() - 20;\r\n inst.dpDiv.offset(offset);\r\n }\r\n if (inst.dpDiv.position().top < 0)\r\n inst.dpDiv.offset({ top: offset.top + (inst.dpDiv.position().top * -1), left: offset.left });\r\n\r\n },1);\r\n }\r\n };\r\n\r\n if (this.field.Attributes[\"LimitedDates\"]) {\r\n options.beforeShowDay = (e) => this.limitDates(e);\r\n }\r\n\r\n (input).datepicker(options);\r\n input.val(this.control.value);\r\n this._stateUtil.SetInput(this.input); \r\n }\r\n limitDates(e: Date): any {\r\n console.log(e);\r\n\r\n return [this._limitedDates.filter(d => d == e.toDateString()).length > 0];\r\n }\r\n\r\n get input() {\r\n return $(this._elementRef.nativeElement).find('input');\r\n }\r\n\r\n public FieldClass: {};\r\n\r\n public FocusInput() {\r\n this.input.focus();\r\n }\r\n}","import { Component, ElementRef, AfterViewInit } from \"@angular/core\";\r\nimport { FieldDefinition, ValidationMessage, Severity } from \"../form.component\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport { FormStateUtility } from \"./FormStateUtility\";\r\n// import * as $ from 'jquery';\r\n// import \"jquery-ui\";\r\n\r\n@Component({\r\n templateUrl: './datepicker-field.component.html',\r\n styleUrls: ['./datepicker-field.component.less']\r\n})\r\nexport class DateTimePickerFieldComponent implements AfterViewInit {\r\n _stateUtil: FormStateUtility;\r\n _limitedDates: any;\r\n\r\n constructor(public field: FieldDefinition, \r\n private group: FormGroup,\r\n public control: AbstractControl,\r\n private _elementRef: ElementRef) {\r\n this._stateUtil = new FormStateUtility(this.control, this.field);\r\n this._stateUtil.StateChangeDistinct.subscribe(c => \r\n {\r\n this.FieldClass = c\r\n });\r\n\r\n this._stateUtil.SendUpdate();\r\n\r\n if(this.field.Attributes[\"LimitedDates\"])\r\n this._limitedDates = this.field.Attributes[\"LimitedDates\"].map(r => new Date(r).toDateString());\r\n \r\n }\r\n\r\n ngAfterViewInit(): void {\r\n let time = new Date();\r\n \r\n if (this.control.value)\r\n time = new Date(Date.parse(this.control.value));\r\n\r\n let options = { \r\n ampm: true, \r\n dateFormat: \"m/dd/yy\", \r\n timeFormat: \"h:mm TT\", \r\n onClose: () => {\r\n this.control.setValue(this.input.val());\r\n }, \r\n hour: time.getHours(), \r\n minute: time.getMinutes(),\r\n beforeShow: (input, inst) => {\r\n setTimeout(() => {\r\n var offset = $(input).offset();\r\n offset.top = offset.top + 20;\r\n inst.dpDiv.offset(offset);\r\n var position = $(input).position();\r\n if (inst.dpDiv.height() + position.top > $(window).height()) {\r\n offset.top = offset.top - inst.dpDiv.height() - 20;\r\n inst.dpDiv.offset(offset);\r\n }\r\n if (inst.dpDiv.position().top < 0)\r\n inst.dpDiv.offset({ top: offset.top + (inst.dpDiv.position().top * -1), left: offset.left });\r\n },1);\r\n }\r\n };\r\n\r\n if (this.field.Attributes[\"LimitedDates\"]) {\r\n options.beforeShowDay = e => this.limitDates(e);\r\n }\r\n\r\n (this.input).datetimepicker(options);\r\n this.input.val(this.control.value);\r\n this._stateUtil.SetInput(this.input);\r\n }\r\n\r\n limitDates(e: Date): any {\r\n console.log(e);\r\n return [this._limitedDates.filter(d => d == e.toDateString()).length > 0];\r\n }\r\n\r\n public FieldClass: {};\r\n\r\n get input() {\r\n return $(this._elementRef.nativeElement).find('input');\r\n }\r\n\r\n public FocusInput() {\r\n this.input.focus();\r\n }\r\n}","
\r\n
\r\n {{field.Label}}\r\n
\r\n
\r\n
\r\n
{{MonthDisplay}}
\r\n
arrow_drop_down
\r\n
\r\n
\r\n
{{DayDisplay}}
\r\n
arrow_drop_down
\r\n
\r\n
\r\n
{{YearDisplay}}
\r\n
arrow_drop_down
\r\n
\r\n
\r\n
\r\n
{{error.Description}}
\r\n
\r\n
\r\n
{{warning.Description}}
\r\n
\r\n
\r\n\r\n\r\n
{{value.Description}}
\r\n
\r\n\r\n
{{value.Description}}
\r\n
\r\n\r\n
{{value.Description}}
\r\n
\r\n","import { Component, AfterViewInit, ViewChild, ElementRef } from \"@angular/core\";\r\nimport { FieldDefinition, ValidationMessage, Severity } from \"../form.component\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport * as $ from 'jquery';\r\nimport { FormStateUtility } from \"./FormStateUtility\";\r\nimport { MDialog } from \"../../dialog/md-dialog.component\";\r\n\r\n@Component({\r\n templateUrl: './dob-field.component.html',\r\n styleUrls: ['dob-field.component.less']\r\n})\r\nexport class DOBFieldComponent implements AfterViewInit {\r\n public Year: string;\r\n public YearDisplay: string;\r\n public Month: string;\r\n public MonthDisplay: string;\r\n public Day: string;\r\n public DayDisplay: string;\r\n\r\n public Years: {Value: string, Description: string}[];\r\n public Days: {Value: string, Description: string}[];\r\n public Months: {Value: string, Description: string}[];\r\n\r\n @ViewChild('monthMenu', {read: MDialog, static: false})\r\n private MonthDialog: MDialog;\r\n\r\n @ViewChild('dayMenu', {read: MDialog, static: false})\r\n private DayDialog: MDialog;\r\n\r\n @ViewChild('yearMenu', {read: MDialog, static: false})\r\n private YearDialog: MDialog;\r\n \r\n constructor(public field: FieldDefinition, \r\n private group: FormGroup,\r\n public control: AbstractControl,\r\n private _elementRef: ElementRef) {\r\n this.Years = this.GetYears(field);\r\n this.Months = this.GetMonths(field);\r\n this.Days = this.GetDays();\r\n this.Day = \"0\";\r\n this.DayDisplay = \"Day\";\r\n this.Month = \"0\";\r\n this.MonthDisplay = \"Month\";\r\n this.Year = \"0\";\r\n this.YearDisplay = \"Year\";\r\n \r\n if (field.Value) {\r\n let fieldParts = field.Value.split('/');\r\n if (fieldParts.length == 3) {\r\n this.Month = fieldParts[0];\r\n this.MonthDisplay = this.Months.find(m => parseInt(m.Value) == parseInt(this.Month)).Description;\r\n this.Day = fieldParts[1];\r\n this.DayDisplay = fieldParts[1];\r\n this.Year = fieldParts[2];\r\n this.YearDisplay = this.Year;\r\n }\r\n }\r\n }\r\n \r\n ngAfterViewInit(): void {\r\n let stateUtil = new FormStateUtility(this.control, this.field);\r\n stateUtil.StateChangeDistinct.subscribe(c => \r\n {\r\n this.FieldClass = c\r\n }); \r\n \r\n stateUtil.SendUpdate();\r\n }\r\n\r\n public FieldClass: {};\r\n\r\n public GetYearOptionClass(value) {\r\n if (!this.control)\r\n return;\r\n return {\r\n \"selected\": this.Year === value.Value\r\n }\r\n }\r\n\r\n public GetMonthOptionClass(value) {\r\n if (!this.control)\r\n return;\r\n return {\r\n \"selected\": this.Month === value.Value\r\n }\r\n }\r\n \r\n public GetDayOptionClass(value) {\r\n if (!this.control)\r\n return;\r\n return {\r\n \"selected\": this.Day === value.Value\r\n }\r\n }\r\n\r\n public GetDays(): {Value: string, Description: string}[] {\r\n var days;\r\n if (!this.Month)\r\n days = 31;\r\n else\r\n days = new Date(+this.Year, +this.Month, 0).getDate();\r\n\r\n let values = [];\r\n values.push( { Value: \"0\", Description: \"Day\" });\r\n for (var i = 1; i <= days; i++)\r\n values.push( { Value: i.toString(), Description: i.toString() });\r\n\r\n return values;\r\n }\r\n \r\n public GetMonths(field: FieldDefinition): {Value: string, Description: string}[] {\r\n let values = [];\r\n values.push( { Value: \"0\", Description: \"Month\" });\r\n values.push( { Value: \"1\", Description: \"Jan\" });\r\n values.push( { Value: \"2\", Description: \"Feb\" });\r\n values.push( { Value: \"3\", Description: \"Mar\" });\r\n values.push( { Value: \"4\", Description: \"Apr\" });\r\n values.push( { Value: \"5\", Description: \"May\" });\r\n values.push( { Value: \"6\", Description: \"Jun\" });\r\n values.push( { Value: \"7\", Description: \"Jul\" });\r\n values.push( { Value: \"8\", Description: \"Aug\" });\r\n values.push( { Value: \"9\", Description: \"Sep\" });\r\n values.push( { Value: \"10\", Description: \"Oct\" });\r\n values.push( { Value: \"11\", Description: \"Nov\" });\r\n values.push( { Value: \"12\", Description: \"Dec\" });\r\n return values;\r\n }\r\n\r\n public GetYears(field: FieldDefinition): {Value: string, Description: string}[] {\r\n let values = [];\r\n values.push( { Value: \"0\", Description: \"Year\" });\r\n\r\n var firstYear = 1914;\r\n var lastYear = 2045;\r\n var currentYear = new Date().getFullYear();\r\n\r\n for (var i = currentYear; i >= firstYear; i--)\r\n values.push( { Value: i.toString(), Description: i.toString() });\r\n\r\n return values;\r\n }\r\n\r\n public SelectYearOption(option: any) {\r\n this.Year = option.Description;\r\n this.YearDisplay = option.Description;\r\n this.SetValue();\r\n }\r\n\r\n public SelectMonthOption(option: any) {\r\n this.Month = option.Value;\r\n this.MonthDisplay = option.Description;\r\n this.SetValue();\r\n }\r\n\r\n public SelectDayOption(option: any) {\r\n this.Day = option.Description;\r\n this.DayDisplay = option.Description;\r\n this.SetValue();\r\n }\r\n\r\n private SetValue() {\r\n //If Month or Year changed.\r\n this.Days = this.GetDays();\r\n\r\n var zero = \"0\";\r\n if (this.Day == zero || this.Month == zero || this.Year == zero)\r\n this.control.setValue(\"\");\r\n else\r\n this.control.setValue(this.Month + \"/\" + this.Day + \"/\" + this.Year);\r\n }\r\n}","
\r\n
\r\n
\r\n {{field.Label}}\r\n
\r\n
\r\n
\r\n
{{(ValueDescription == \"Please Select...\" ? \"\" : ValueDescription)}}
\r\n
arrow_drop_down
\r\n
\r\n
\r\n
{{error.Description}}
\r\n
\r\n
\r\n
{{warning.Description}}
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
{{value.Description}}
\r\n
{{value.DetailLine}}
\r\n
\r\n
","import { Component, ViewChild, ElementRef, AfterViewInit, ChangeDetectorRef, Directive, Input, AfterContentInit, OnDestroy, ViewContainerRef, TemplateRef } from \"@angular/core\";\r\nimport { FieldDefinition, ValidationMessage, Severity, DropdownValue } from \"../form.component\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport * as $ from 'jquery';\r\nimport { FormStateUtility } from \"./FormStateUtility\";\r\nimport { MDialog, MDialogTrigger } from \"../../dialog/md-dialog.component\";\r\n\r\n@Component({\r\n templateUrl: './dropdown-field.component.html',\r\n styleUrls: ['./dropdown-field.component.less'],\r\n})\r\nexport class DropdownFieldComponent implements AfterViewInit {\r\n _stateUtil: FormStateUtility;\r\n public ValueDescription: string;\r\n\r\n @ViewChild('menu', {read: MDialog, static: false})\r\n private dialog: MDialog;\r\n\r\n @ViewChild('trigger', {read: MDialogTrigger, static: false})\r\n private dialogTrigger: MDialogTrigger;\r\n\r\n constructor(public field: FieldDefinition, \r\n private group: FormGroup, \r\n public control: AbstractControl,\r\n private _elementRef: ElementRef,\r\n private ChangeDetectorRef: ChangeDetectorRef) {\r\n\r\n control.valueChanges.subscribe(value => {\r\n this.updateValueClasses(value);\r\n this.dialog.close();\r\n });\r\n this.updateValueClasses(control.value);\r\n \r\n this._stateUtil = new FormStateUtility(this.control, this.field);\r\n this._stateUtil.StateChangeDistinct.subscribe(stateChange => {\r\n this.FieldClass = stateChange;\r\n });\r\n this._stateUtil.SendUpdate();\r\n\r\n if (!this.control.value) {\r\n this.ValueDescription = \"\"; \r\n }\r\n else {\r\n let values = this.GetValues();\r\n let selectedValue = values ? values.find(c => c.Value == this.control.value) : null;\r\n if (selectedValue)\r\n this.ValueDescription = selectedValue.Description; \r\n else\r\n this.ValueDescription = this.control.value;\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this._stateUtil.SetInput($('.m-dropdown-button', this._elementRef.nativeElement));\r\n }\r\n\r\n Keydown($event) {\r\n this.dialogTrigger.HandleKeydown($event.keyCode);\r\n }\r\n\r\n Keypress($event){\r\n this.dialogTrigger.HandleKeypress($event.key);\r\n }\r\n\r\n public GetValues(): any[] {\r\n if(this.field.Attributes[\"DynamicValues\"]){\r\n var otherField = this.field.Attributes[\"DynamicValues\"].Property; \r\n var otherFieldValue = this.group.controls[otherField].value;\r\n var values = >this.field.Attributes[\"DynamicValues\"].Values[otherFieldValue];\r\n \r\n if (this.control.value) {\r\n var selectedExistingValue = values ? values.filter(r => r.Value == this.control.value) : [];\r\n if (!selectedExistingValue.length) {\r\n this.control.setValue(null);\r\n this.ValueDescription = null;\r\n }\r\n }\r\n\r\n return values;\r\n\r\n }\r\n return this.field.Values;\r\n }\r\n\r\n public SelectOption(option: any) {\r\n this.control.setValue(option.Value);\r\n this.ValueDescription = option.Description;\r\n }\r\n\r\n public FieldClass: {};\r\n\r\n public GetOptionClass(value) {\r\n return value._class;\r\n }\r\n\r\n private updateValueClasses(value: any) {\r\n if (!this.field.Values)\r\n return;\r\n\r\n this.field.Values.forEach(v => {\r\n let newValue = this.control.value == \"0\" ? \"\" : this.control.value;\r\n\r\n (v)._class = {\r\n \"selected\": newValue === v.Value\r\n };\r\n\r\n if((v)._class.selected) {\r\n this.ValueDescription = v.Description;\r\n }\r\n });\r\n }\r\n}","
\r\n
\r\n
\r\n
\r\n {{field.Label}}\r\n
\r\n
\r\n
\r\n \r\n
open_in_full
\r\n
\r\n
\r\n
{{error.Description}}
\r\n
\r\n
\r\n
{{warning.Description}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{input.Name}}
\r\n
\r\n
\r\n
play_arrow
\r\n
\r\n
Result: {{GetOutputDisplayText(TesterResults.Output)}}
\r\n
Click to test
\r\n
\r\n
\r\n
{{TesterResults.Error}}
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
{{GetIcon(result.Type)}}
\r\n
{{result.Display}}
\r\n
\r\n
\r\n
\r\n","import { Component, ElementRef, ViewChild, ViewContainerRef, AfterViewInit } from \"@angular/core\";\r\nimport { FieldDefinition, ValidationMessage, Severity } from \"../form.component\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport { FormStateUtility } from \"./FormStateUtility\";\r\nimport { MDialogTrigger, MDialog } from \"../../dialog/md-dialog.component\";\r\nimport { FormControlUtility } from \"./FormControlUtility\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as $ from 'jquery';\r\nimport { DialogService } from \"../../../services/DialogService\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { ModalService } from \"../../../services/ModalService\";\r\nimport { debounceTime, switchMap } from 'rxjs/operators';\r\ndeclare var autosize: any;\r\n\r\n@Component({\r\n templateUrl: './expression-field.component.html',\r\n styleUrls: ['./expression-field.component.less'] \r\n})\r\nexport class ExpressionFieldComponent implements AfterViewInit {\r\n _pendingSearch: Subscription;\r\n _stateUtil: FormStateUtility;\r\n SearchResults: ExpressionSearchResult[];\r\n TesterResults: ExpressionTestResult;\r\n dialogTrigger: MDialogTrigger;\r\n NumRows = 3;\r\n @ViewChild('menu', {static: false}) dialog: MDialog;\r\n @ViewChild('position', {static: false}) positioningElement: ElementRef;\r\n\r\n public IsEvaluating: boolean;\r\n\r\n constructor(public field: FieldDefinition,\r\n private group: FormGroup,\r\n public control: AbstractControl,\r\n private _elementRef: ElementRef,\r\n private _http: HttpClient,\r\n private _dialogService: DialogService,\r\n private _viewContainerRef: ViewContainerRef,\r\n private modalService: ModalService) {\r\n\r\n this._stateUtil = new FormStateUtility(this.control, this.field);\r\n this._stateUtil.StateChangeDistinct.subscribe(c => \r\n {\r\n this.FieldClass = c;\r\n });\r\n\r\n this._stateUtil.SendUpdate();\r\n }\r\n\r\n isExpanded = false;\r\n\r\n ToggleExpand() {\r\n if (this.modalService)\r\n this.modalService.ToggleExpand();\r\n \r\n this.NumRows = this.isExpanded ? 3 : 15;\r\n this.isExpanded = !this.isExpanded;\r\n }\r\n\r\n UpdateValue(value: string) {\r\n if (value == null || value.trim().length == 0) {\r\n this.control.setValue(null);\r\n }\r\n else { \r\n this.control.setValue(value);\r\n }\r\n this.UpdateTester();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n new FormControlUtility().Initialize(this.control, this.input, () => {}, (value) => this.UpdateValue(value));\r\n // autosize(this.input);\r\n this._stateUtil.SetInput(this.input);\r\n this.input.on('input', (e) => {\r\n this.TrySearch();\r\n });\r\n\r\n this.input.on('keydown', evt => {\r\n //TODO: Handle case where you transition word instead of always closing the modal on arrow\r\n //TODO: keyCode is depricated on MDN, so check a different property\r\n //NOTE: keyCodes for Tab-9, Escape 27, Arrow keys 37-40, Home 36, and End 35\r\n if (evt.keyCode == 38 || evt.keyCode == 40 || (evt.keyCode == 13 && !evt.shiftKey))\r\n {\r\n var didHandle = this.dialogTrigger.HandleKeydown(evt.keyCode);\r\n if (didHandle)\r\n {\r\n evt.preventDefault();\r\n return false;\r\n }\r\n return;\r\n }\r\n else if (evt.keyCode == 9 || evt.keyCode == 27 || evt.keyCode >= 35 && evt.keyCode <= 40) {\r\n this._pendingSearch.unsubscribe();\r\n this.dialog.close();\r\n }\r\n //NOTE: ctrl + space\r\n else if (evt.keyCode == 32 && (evt).ctrlKey) {\r\n this.TrySearch(true);\r\n }\r\n });\r\n \r\n if (this.field.Attributes[\"ExpressionTestResult\"] != null) {\r\n var existingTestResults = this.group.controls[this.field.Attributes[\"ExpressionTestResult\"]];\r\n if (existingTestResults != null && existingTestResults.value != null && existingTestResults.value.length)\r\n this.TesterResults = JSON.parse(String(existingTestResults.value)); \r\n else\r\n this.UpdateTester();\r\n }\r\n else if (this.field.Attributes[\"ExpressionTesterName\"] != null) {\r\n this.UpdateTester();\r\n }\r\n\r\n this.dialogTrigger = new MDialogTrigger(this.positioningElement, this._viewContainerRef, this._dialogService);\r\n this.dialogTrigger.menu = this.dialog;\r\n this.dialogTrigger.ngAfterContentInit();\r\n }\r\n\r\n\r\n GetIcon(type: ExpressionSearchResultType) {\r\n switch(type)\r\n {\r\n case ExpressionSearchResultType.Column:\r\n return \"crop_square\";\r\n case ExpressionSearchResultType.Function:\r\n return \"functions\";\r\n }\r\n }\r\n\r\n TrySearch(forceSearch: boolean = false) {\r\n if (this._pendingSearch)\r\n this._pendingSearch.unsubscribe();\r\n\r\n let currentWord = this.GetCurrentWord();\r\n\r\n if (forceSearch || (currentWord.Term && currentWord.Term.length)) {\r\n let data = $.extend(true, { searchData: this.GetAutocompleteData() }, currentWord);\r\n delete data.searchData['$type'];\r\n this._pendingSearch = this._http.post(this.field.Attributes[\"SearchUrl\"], data)\r\n .subscribe((resp : ExpressionSearchResult[]) => {\r\n this.SearchResults = resp;\r\n this.UpdatePosition(currentWord.WordPosition, currentWord.Term.length);\r\n this.dialogTrigger.openMenu();\r\n });\r\n }\r\n else {\r\n this.dialog.close();\r\n }\r\n }\r\n\r\n private GetAutocompleteData() {\r\n var dynamicField = this.field.Attributes[\"DynamicAutocompleteData\"];\r\n return this.field.Attributes[\"AutocompleteData\"] || {\r\n [dynamicField]: this.group.value[dynamicField]\r\n };\r\n }\r\n \r\n UpdateTester() {\r\n if (this.field.Attributes[\"ExpressionTesterName\"] == null)\r\n return;\r\n\r\n let data = {\r\n TesterName: this.field.Attributes[\"ExpressionTesterName\"],\r\n Expression: this.input.val(),\r\n AutocompleteData: this.GetAutocompleteData(),\r\n Inputs: this.TesterResults == null ? null : this.TesterResults.Inputs\r\n };\r\n this._http.post(\"/Expression/GetTestInputs\", data)\r\n .subscribe((results : ExpressionTestResult) => {\r\n this.TesterResults = results;\r\n this.TesterResults.HasBeenTested = false;\r\n let testResultsField = this.group.controls[this.field.Attributes[\"ExpressionTestResult\"]];\r\n if (testResultsField != null) {\r\n testResultsField.setValue(JSON.stringify(results));\r\n }\r\n });\r\n }\r\n\r\n RunTest() {\r\n this.IsEvaluating = true;\r\n let data = {\r\n TesterName: this.field.Attributes[\"ExpressionTesterName\"],\r\n Expression: this.input.val(),\r\n AutocompleteData: this.GetAutocompleteData(),\r\n Inputs: this.TesterResults.Inputs\r\n };\r\n this._http.post(\"/Expression/RunTester\", data)\r\n .pipe(debounceTime(500)).subscribe((results : ExpressionTestResult) => {\r\n this.TesterResults = results;\r\n this.TesterResults.HasBeenTested = true;\r\n let testResultsField = this.group.controls[this.field.Attributes[\"ExpressionTestResult\"]];\r\n if (testResultsField != null) {\r\n testResultsField.setValue(JSON.stringify(results));\r\n }\r\n this.IsEvaluating = false;\r\n });\r\n }\r\n\r\n UpdatePosition(wordPosition: number, wordLength: number) {\r\n this.positionLocator.width(this.input.innerWidth());\r\n let value = this.input.val();\r\n\r\n let beginning = value.slice(0, wordPosition);\r\n let middleText = wordLength == 0 ? \" \" : value.slice(wordPosition, wordPosition + wordLength);\r\n let middle = `${middleText}`;\r\n let end = value.slice(wordPosition + wordLength, value.length);\r\n \r\n this.positionLocator.html(beginning + middle + end);\r\n\r\n let word = this.positionLocator.find('span')\r\n let position = word.position()\r\n\r\n $(this.positioningElement.nativeElement)\r\n .css('left', position.left + word.width())\r\n .css('top', position.top + word.height());\r\n }\r\n\r\n get positionLocator() {\r\n return $(this._elementRef.nativeElement).find('.text-position');\r\n }\r\n\r\n\r\n GetCurrentWord() {\r\n let inputValue = this.input.val();\r\n let caretPosition = (this.input[0]).selectionStart;\r\n \r\n if (inputValue.charAt(caretPosition-1) == \"\\n\") {\r\n return { Term: null, CaretPosition: null, WordPosition: null };\r\n }\r\n\r\n let wordPosition = 0;\r\n let length = 0;\r\n let word = [];\r\n let breakChars = [' ', '\\n', '(', ')', '>', '<', '+', '-', '=']\r\n \r\n for(let i = caretPosition - 1; i >= 0; i--) {\r\n let currentLetter = inputValue.charAt(i);\r\n \r\n if (!currentLetter || breakChars.includes(currentLetter))\r\n {\r\n wordPosition = i + 1;\r\n break;\r\n }\r\n \r\n word.push(currentLetter);\r\n }\r\n\r\n word = word.reverse();\r\n\r\n for(let i = caretPosition; i < inputValue.length; i++) {\r\n let currentLetter = inputValue.charAt(i);\r\n if (!currentLetter || breakChars.includes(currentLetter))\r\n break;\r\n\r\n word.push(currentLetter);\r\n }\r\n return { Term: word.join(''), CaretPosition: caretPosition, WordPosition: wordPosition };\r\n }\r\n\r\n GetOutputDisplayText(output: string) {\r\n if (output == null)\r\n return \"\";\r\n else if (output == \"\")\r\n return \"\"\r\n return output;\r\n }\r\n\r\n Select(result: ExpressionSearchResult) {\r\n let currentWord = this.GetCurrentWord();\r\n let currentValue = (this.input.val()).split('');\r\n currentValue.splice(currentWord.WordPosition, currentWord.Term.length, result.Raw);\r\n this.input.val(currentValue.join(''));\r\n this.input.focus();\r\n\r\n //for some reason selectionStart/End aren't in the typings right now - investigate later\r\n let anyInput = (this.input[0]);\r\n \r\n anyInput.selectionStart = currentWord.WordPosition + result.Raw.length;\r\n \r\n if (result.Type == ExpressionSearchResultType.Function) \r\n anyInput.selectionStart -= 1;\r\n\r\n anyInput.selectionEnd = anyInput.selectionStart;\r\n this.UpdateValue(this.input.val());\r\n }\r\n\r\n get input() {\r\n return $(this._elementRef.nativeElement).find('textarea');\r\n }\r\n\r\n public FieldClass: {};\r\n\r\n public FocusInput() {\r\n this.input.focus();\r\n }\r\n}\r\n\r\nexport class ExpressionSearchResult {\r\n public Display: string;\r\n public Description: string;\r\n public Raw: string;\r\n public Type: ExpressionSearchResultType;\r\n}\r\n\r\nexport enum ExpressionSearchResultType {\r\n Function,\r\n Column\r\n}\r\n\r\nexport class ExpressionTestResult\r\n{\r\n public Inputs: ExpressionTestInput[];\r\n public HasBeenTested: boolean;\r\n public Output: string;\r\n public Error: string;\r\n}\r\n\r\nexport class ExpressionTestInput\r\n{\r\n public Name: string;\r\n public Type: string;\r\n public Value: string;\r\n}","
\r\n
\r\n
\r\n {{field.Label}}\r\n
\r\n
\r\n
\r\n
{{ValueDescription}}
\r\n
file_upload
\r\n \r\n
\r\n
\r\n {{HintMessage}}\r\n
\r\n
\r\n
{{error.Description}}
\r\n
\r\n
\r\n
{{warning.Description}}
\r\n
\r\n
","import { Component, ElementRef, AfterViewInit, ViewChild } from \"@angular/core\";\r\nimport { FieldDefinition, ValidationMessage, Severity } from \"../form.component\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport * as $ from 'jquery';\r\nimport { FormStateUtility } from \"./FormStateUtility\";\r\nimport { FieldService } from \"../../../services/FieldService\";\r\n\r\nexport interface IFileFieldComponent {\r\n FileChange(fileEvent: { target: { files: FileList; }; }) ;\r\n \r\n}\r\n\r\n@Component({\r\n templateUrl: `./file-upload-field.component.html`,\r\n styleUrls: [`./file-upload-field.component.less`]\r\n})\r\nexport class FileUploadFieldComponent implements AfterViewInit, IFileFieldComponent {\r\n private _stateUtil: FormStateUtility;\r\n public HintMessage: string;\r\n\r\n @ViewChild('input', { static: false })\r\n public fileInput: ElementRef;\r\n public ValueDescription: string;\r\n\r\n constructor(public field: FieldDefinition, \r\n public group: FormGroup,\r\n public control: AbstractControl,\r\n private _elementRef: ElementRef,\r\n private fieldService: FieldService) {\r\n \r\n if (!this.field.Attributes || !this.field.Attributes[\"HideGuidanceText\"]) {\r\n this.HintMessage = `Size < ${field.Attributes['MaxSize']} MB - Type: ${field.Attributes[\"Extensions\"]}`;\r\n }\r\n\r\n this._stateUtil = new FormStateUtility(this.control, this.field);\r\n this._stateUtil.StateChangeDistinct.subscribe(c => \r\n {\r\n this.FieldClass = c;\r\n });\r\n this._stateUtil.SendUpdate();\r\n this.fieldService.RegisterControl(this, field);\r\n }\r\n\r\n public FieldClass: {};\r\n\r\n ngAfterViewInit(): void {\r\n if (this.field.Attributes && this.field.Attributes[\"Extensions\"])\r\n this.input.attr('accept', this.field.Attributes.Extensions);\r\n\r\n this._stateUtil.SetInput(this.input);\r\n\r\n if (this.group.controls[this.field.Name + \"FileName\"]) {\r\n this.ValueDescription = this.group.controls[this.field.Name + \"FileName\"].value;\r\n }\r\n\r\n if (this.field.InitializeWithFile != null) {\r\n var files = new Array(); \r\n files.push(this.field.InitializeWithFile);\r\n var fileEvent = {\r\n target: {\r\n files: files\r\n }\r\n };\r\n this.FileChange(fileEvent);\r\n }\r\n }\r\n\r\n get input() {\r\n return $(this._elementRef.nativeElement).find('input');\r\n }\r\n\r\n public ShowDialog() {\r\n this.group.controls[this.field.Name + \"FileName\"].setValue(null);\r\n this.control.setValue(null);\r\n this.ValueDescription = null;\r\n $(this.fileInput.nativeElement).click();\r\n }\r\n\r\n public FileChange(event) {\r\n let fileNameField = this.group.controls[this.field.Name + \"FileName\"];\r\n if (event.target.files.length === 0) {\r\n this.ValueDescription = null;\r\n fileNameField.setValue(null);\r\n this.control.setValue(null);\r\n return;\r\n }\r\n\r\n let fileReader = new FileReader();\r\n fileReader.onload = (x: any) => {\r\n this.control.setValue(fileReader.result);\r\n };\r\n\r\n this.ValueDescription = event.target.files[0].name;\r\n\r\n let hasErrors = false;\r\n if (this.field.Attributes[\"MaxSize\"]) {\r\n var mb = ((event.target.files[0].size / 1024) / 1024); // MB\r\n if (mb >= parseInt(this.field.Attributes[\"MaxSize\"])) {\r\n this.ValueDescription = null;\r\n let vm = new ValidationMessage();\r\n vm.Severity = Severity.Error;\r\n vm.Description = `File too large - max size ${parseInt(this.field.Attributes[\"MaxSize\"])}MB`;\r\n vm.ColumnName = this.field.Name;\r\n this.control.setErrors([vm]);\r\n hasErrors = true;\r\n }\r\n }\r\n if (this.field.Attributes[\"Extensions\"]) {\r\n let extension = /(?:\\.([^.]+))?$/.exec(event.target.files[0].name)[1].toLowerCase();\r\n if (!this.field.Attributes.Extensions.find(f => f == \".\" + extension || f == extension)) {\r\n this.ValueDescription = null;\r\n let vm = new ValidationMessage();\r\n vm.Severity = Severity.Error;\r\n vm.Description = `File type not supported - only ${this.field.Attributes.Extensions.join()} files can be uploaded`;\r\n vm.ColumnName = this.field.Name;\r\n this.control.setErrors([vm]);\r\n hasErrors = true;\r\n }\r\n }\r\n\r\n if (hasErrors)\r\n return;\r\n\r\n fileNameField.setValue(this.ValueDescription);\r\n fileReader.readAsDataURL(event.target.files[0]);\r\n }\r\n}","import { Component, ElementRef, AfterViewInit, ViewChild } from \"@angular/core\";\r\nimport { FieldDefinition, ValidationMessage, Severity } from \"../form.component\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport * as $ from 'jquery';\r\nimport { FormStateUtility } from \"./FormStateUtility\";\r\nimport { IFileFieldComponent } from \"./file-upload-field.component\";\r\nimport { FieldService } from \"../../../services/FieldService\";\r\n\r\n@Component({\r\n templateUrl: `./file-upload-field.component.html`,\r\n styleUrls: [`./file-upload-field.component.less`]\r\n})\r\nexport class FileUploadStreamFieldComponent implements AfterViewInit, IFileFieldComponent {\r\n private _stateUtil: FormStateUtility;\r\n public HintMessage: string;\r\n\r\n @ViewChild('input', { static: false })\r\n public fileInput: ElementRef;\r\n public ValueDescription: string;\r\n\r\n constructor(public field: FieldDefinition, \r\n private group: FormGroup,\r\n public control: AbstractControl,\r\n private _elementRef: ElementRef,\r\n private fieldService: FieldService) {\r\n if (!this.field.Attributes || !this.field.Attributes[\"HideGuidanceText\"]) {\r\n this.HintMessage = `Size < ${field.Attributes['MaxSize']} MB - Type: ${field.Attributes[\"Extensions\"]}`;\r\n }\r\n\r\n this._stateUtil = new FormStateUtility(this.control, this.field);\r\n this._stateUtil.StateChangeDistinct.subscribe(c => \r\n {\r\n this.FieldClass = c;\r\n });\r\n\r\n this._stateUtil.SendUpdate();\r\n this.fieldService.RegisterControl(this, field);\r\n\r\n if (this.field.InitializeWithFile) {\r\n this.ValueDescription = this.field.InitializeWithFile.name;\r\n }\r\n }\r\n\r\n public FieldClass: {};\r\n\r\n ngAfterViewInit(): void {\r\n if (this.field.Attributes && this.field.Attributes[\"Extensions\"])\r\n this.input.attr('accept', this.field.Attributes.Extensions);\r\n\r\n this._stateUtil.SetInput(this.input);\r\n\r\n if (this.group.controls[this.field.Name + \"FileName\"]) {\r\n this.ValueDescription = this.group.controls[this.field.Name + \"FileName\"].value;\r\n }\r\n\r\n if (this.field.InitializeWithFile != null) {\r\n var files = new Array(); \r\n files.push(this.field.InitializeWithFile);\r\n var fileEvent = {\r\n target: {\r\n files: files\r\n }\r\n };\r\n this.FileChange(fileEvent);\r\n }\r\n }\r\n\r\n get input() {\r\n return $(this._elementRef.nativeElement).find('input');\r\n }\r\n\r\n public ShowDialog() {\r\n this.group.controls[this.field.Name + \"FileName\"].setValue(null);\r\n this.control.setValue(null);\r\n this.ValueDescription = null;\r\n $(this.fileInput.nativeElement).click();\r\n }\r\n\r\n public FileChange(event: any) {\r\n let fileNameField = this.group.controls[this.field.Name + \"FileName\"];\r\n if (event.target.files.length === 0) {\r\n this.ValueDescription = null;\r\n fileNameField.setValue(null);\r\n this.control.setValue(null);\r\n (this.field)._Size = null;\r\n (this.field)._FormData = null;\r\n return;\r\n }\r\n\r\n this.ValueDescription = event.target.files[0].name;\r\n (this.field)._FormData = new FormData();\r\n ((this.field)._FormData).append(\"files\", event.target.files[0]);\r\n (this.field)._Size = event.target.files[0].size;\r\n\r\n let hasErrors = false;\r\n if (this.field.Attributes[\"MaxSize\"])\r\n {\r\n var mb = ((event.target.files[0].size/1024)/1024); // MB\r\n if (mb >= parseInt(this.field.Attributes[\"MaxSize\"])) {\r\n this.ValueDescription = null;\r\n let vm = new ValidationMessage();\r\n vm.Severity = Severity.Error;\r\n vm.Description = `File too large - max size ${parseInt(this.field.Attributes[\"MaxSize\"])}MB`;\r\n vm.ColumnName = this.field.Name;\r\n this.control.setErrors([vm]);\r\n hasErrors = true;\r\n }\r\n }\r\n if (this.field.Attributes[\"Extensions\"]) {\r\n let extension = /(?:\\.([^.]+))?$/.exec(event.target.files[0].name)[1].toLowerCase();\r\n if (!this.field.Attributes.Extensions.find(f => f == \".\" + extension || f == extension)) {\r\n this.ValueDescription = null;\r\n let vm = new ValidationMessage();\r\n vm.Severity = Severity.Error;\r\n vm.Description = `File type not supported - only ${this.field.Attributes.Extensions.join()} files can be uploaded`;\r\n vm.ColumnName = this.field.Name;\r\n this.control.setErrors([vm]);\r\n hasErrors = true;\r\n }\r\n } \r\n\r\n if (hasErrors)\r\n return;\r\n\r\n fileNameField.setValue(this.ValueDescription);\r\n this.control.setValue('x');\r\n // fileReader.readAsArrayBuffer(event.target.files[0]);\r\n }\r\n}","\n
\n ","import { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FieldDefinition } from \"../form.component\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\ndeclare var Android: any;\r\n\r\n@Component({\r\n host: {'style.display': 'none'},\r\n template: `\r\n
\r\n `\r\n})\r\nexport class GCMKeyFieldComponent implements OnInit {\r\n constructor(public field: FieldDefinition, private group: FormGroup, public control: AbstractControl) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (typeof Android != typeof undefined) {\r\n this.control.setValue(Android.UpdateGCMRegistration());\r\n }\r\n }\r\n}\r\n","\n \n ","import { Component } from \"@angular/core\";\r\n\r\n@Component({\r\n template: `\r\n \r\n `\r\n})\r\nexport class HiddenFieldComponent {\r\n\r\n}","
\r\n
\r\n {{AllSelected ? \"check_box\" : \"check_box_outline_blank\"}}\r\n Toggle All\r\n
\r\n
\r\n {{lookup.Selected ? \"check_box\" : \"check_box_outline_blank\"}}\r\n {{lookup.Value}}\r\n
\r\n
","import { Component, ElementRef } from \"@angular/core\";\r\nimport { FieldDefinition, ValidationMessage, Severity } from \"../../form.component\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport { FieldService } from \"../../../../services/FieldService\";\r\nimport { SchemaSearchResult, AxisType } from \"../range-buckets-field.component\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport * as $ from 'jquery';\r\n\r\n@Component({\r\n templateUrl: './lookup-field.component.html',\r\n styleUrls: ['./lookup-field.component.less'] \r\n})\r\nexport class LookupFieldComponent {\r\n public FieldClass: {};\r\n public Lookups: Array<{Value: string, Selected: boolean}>;\r\n private _processedValue: any;\r\n\r\n constructor(public field: FieldDefinition, \r\n private group: FormGroup, \r\n public control: AbstractControl,\r\n private http: HttpClient,\r\n private _fieldService: FieldService,\r\n private _elementRef: ElementRef) {\r\n\r\n this.UpdateValues();\r\n group.valueChanges.subscribe(v => {\r\n setTimeout(() => this.UpdateValues(), 250);\r\n });\r\n var lookupValueFieldName = this.field.Attributes[\"LookupValues\"].Field;\r\n this.group.controls[lookupValueFieldName].valueChanges.subscribe(v => {\r\n setTimeout(() => this.UpdateValues(), 250);\r\n });\r\n\r\n }\r\n\r\n Toggle(lookup: {Value: string, Selected: boolean}) {\r\n lookup.Selected = !lookup.Selected;\r\n this.SetValue();\r\n }\r\n\r\n SetValue() {\r\n this.control.setValue(this.Lookups.filter(r => r.Selected).map(c => c.Value).join('\\n'));\r\n }\r\n\r\n get AllSelected() {\r\n if (!this.Lookups)\r\n return false;\r\n var selectedCnt = this.Lookups.filter(r => r.Selected).length;\r\n return selectedCnt == this.Lookups.length;\r\n }\r\n\r\n ToggleAll() {\r\n if (!this.Lookups)\r\n this.UpdateValues();\r\n if (!this.Lookups)\r\n return;\r\n var allSelected = this.AllSelected;\r\n for(let lookup of this.Lookups) {\r\n lookup.Selected = !allSelected;\r\n }\r\n this.SetValue();\r\n }\r\n\r\n private UpdateValues() {\r\n var lookupValueFieldName = this.field.Attributes[\"LookupValues\"].Field;\r\n var value = this.group.value[lookupValueFieldName];\r\n if (value && value != this._processedValue) {\r\n this._processedValue = value;\r\n let dataValues = this._processedValue.split('~');\r\n dataValues.push('Other');\r\n dataValues.push('Empty');\r\n this.Lookups = dataValues.map(value => { \r\n return { Value: value, Selected: this.control.value.split('\\n').indexOf(value) != -1 }; \r\n });\r\n }\r\n }\r\n}","
\r\n
Lookups
\r\n
add
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
delete
\r\n
\r\n
\r\n","import { Component, ViewChild } from \"@angular/core\";\r\nimport { FieldDefinition, DropdownValue } from \"../form.component\";\r\nimport { AbstractControl } from \"@angular/forms\";\r\nimport { MDialog, MDialogTrigger } from \"../../dialog/md-dialog.component\";\r\n\r\nexport class MapLookupControlData {\r\n public Values: Array;\r\n public ControlType: string;\r\n}\r\n\r\n@Component({\r\n templateUrl: './maplookup-field.component.html',\r\n styleUrls: ['./maplookup-field.component.less']\r\n})\r\nexport class MapLookupFieldComponent {\r\n public MapLookups: Array;\r\n public ControlData: MapLookupControlData;\r\n\r\n constructor(field: FieldDefinition,\r\n private control: AbstractControl) {\r\n this.MapLookups = >JSON.parse(field.Value);\r\n if (field.Attributes && field.Attributes[\"MapLookupControlData\"]) {\r\n this.ControlData = field.Attributes[\"MapLookupControlData\"];\r\n }\r\n else {\r\n this.ControlData = new MapLookupControlData();\r\n this.ControlData.ControlType = \"Textbox\";\r\n }\r\n }\r\n\r\n Add() {\r\n this.MapLookups.push(new LookupDescription());\r\n this.UpdateValue();\r\n }\r\n\r\n Delete(index: number) {\r\n this.MapLookups.splice(index, 1);\r\n this.UpdateValue();\r\n }\r\n\r\n UpdateSource(source: string, index: number) {\r\n this.MapLookups[index].Source = source;\r\n this.UpdateValue();\r\n }\r\n\r\n UpdateDestination(destination: string, index: number) {\r\n this.MapLookups[index].Destination = destination;\r\n this.UpdateValue();\r\n }\r\n\r\n UpdateValue() {\r\n this.control.setValue(JSON.stringify(this.MapLookups));\r\n }\r\n\r\n @ViewChild('menu', {read: MDialog, static: false})\r\n private dialog: MDialog;\r\n\r\n @ViewChild('trigger', {read: MDialogTrigger, static: false})\r\n private dialogTrigger: MDialogTrigger;\r\n\r\n public GetValues(): any[] {\r\n if (this.ControlData.ControlType == \"Dropdown\")\r\n return this.ControlData.Values;\r\n return [];\r\n }\r\n\r\n public SelectOption(option: any) {\r\n this.control.setValue(option.Value);\r\n // this.ValueDescription = option.Description;\r\n }\r\n}\r\n\r\nexport class LookupDescription {\r\n public Source: string;\r\n public Destination: string;\r\n}\r\n","
\r\n
\r\n
\r\n {{field.Label}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{{error.Description}}
\r\n
\r\n
\r\n
{{warning.Description}}
\r\n
\r\n
","import { Component, ElementRef, AfterViewInit } from \"@angular/core\";\r\nimport { FieldDefinition } from \"../form.component\";\r\nimport { AbstractControl, FormGroup, FormControl, FormGroupDirective, NgForm } from \"@angular/forms\";\r\nimport * as $ from 'jquery';\r\nimport * as jQuery from 'jquery';\r\nimport \"jquery-ui\";\r\nimport \"jquery-mask-plugin\";\r\nimport { FormControlUtility } from \"./FormControlUtility\";\r\nimport { FormStateUtility } from \"./FormStateUtility\";\r\n\r\n@Component({\r\n templateUrl: `./masked-input-field.component.html`,\r\n styleUrls: [`./masked-input-field.component.less`],\r\n})\r\nexport class MaskedInputFieldComponent implements AfterViewInit {\r\n _stateUtil: FormStateUtility;\r\n\r\n private _mask: string;\r\n private _useCleanVal: boolean = true;\r\n\r\n constructor(public field: FieldDefinition,\r\n private group: FormGroup, \r\n public control: AbstractControl, \r\n private _elementRef: ElementRef) {\r\n this._stateUtil = new FormStateUtility(this.control, this.field);\r\n this._stateUtil.StateChangeDistinct.subscribe(c => \r\n {\r\n this.FieldClass = c\r\n });\r\n this._stateUtil.SendUpdate();\r\n \r\n }\r\n\r\n ngAfterViewInit(): void {\r\n switch (this.field.Attributes[\"Mask\"]) {\r\n case \"Phone\":\r\n this._mask = '(000) 000-0000';\r\n (this.input).mask(this._mask);\r\n break;\r\n case \"SSN\":\r\n this._useCleanVal = true;\r\n this._mask = '000-00-0000';\r\n (this.input).mask(this._mask);\r\n break;\r\n case \"Integer\":\r\n this._mask = 'N0#';\r\n (this.input).mask(this._mask, {\r\n translation: { 'N': { pattern: /[-]/, optional: true } }\r\n });\r\n break;\r\n case \"Money\":\r\n this._mask = '#,##0';\r\n (this.input).mask(this._mask, { reverse: true });\r\n break;\r\n case \"Float\":\r\n this._useCleanVal = false;\r\n this._mask = 'NZZZZZZZZZZZ.ZZZZZZZZZZZ';\r\n (this.input).mask(this._mask, {\r\n translation: {\r\n 'N': { pattern: /[-]/, optional: true },\r\n 'Z': { pattern: /[0-9]/, optional: true }\r\n }\r\n });\r\n break;\r\n case \"TwoDigitFloat\":\r\n this._useCleanVal = false;\r\n this._mask = 'NZZZBZZZBZZZBZZZBZZZ.ZZ'; \r\n (this.input).mask(this._mask, { \r\n translation: { \r\n 'N': { pattern: /[-]/, optional: true },\r\n 'Z': { pattern: /[0-9]/, optional: true },\r\n 'B': { pattern: /[,]/, optional: true }\r\n },\r\n } );\r\n break;\r\n }\r\n\r\n new FormControlUtility().Initialize(this.control, \r\n this.input,\r\n (value: any) => { \r\n this.input.val((this.input).masked(value));\r\n },\r\n (value: any) => {\r\n if (this._useCleanVal)\r\n this.control.setValue((this.input).cleanVal());\r\n else\r\n this.control.setValue(this.input.val()); \r\n });\r\n\r\n this._stateUtil.SetInput(this.input);\r\n this.input.on('paste', (evt) => {\r\n let pastedString = (evt.originalEvent).clipboardData.getData('text');\r\n if (this.field.Attributes[\"Mask\"] == \"Money\") {\r\n pastedString = pastedString.replace(\"$\", \"\").replace(\",\", \"\");\r\n }\r\n if (this.field.Attributes[\"Mask\"] == \"TwoDigitFloat\") {\r\n pastedString = pastedString.replace(\"$\", \"\").replace(\",\", \"\");\r\n }\r\n\r\n if (pastedString != (evt.originalEvent).clipboardData.getData('text')) {\r\n evt.preventDefault();\r\n this.input.val((this.input).masked(pastedString));\r\n this.input.trigger('input');\r\n }\r\n\r\n (evt.originalEvent).clipboardData.setData('text', pastedString);\r\n debugger;\r\n });\r\n }\r\n\r\n focused = false;\r\n get inputType() {\r\n if (this.field.Attributes[\"Mask\"] == \"SSN\" && !this.focused) return 'password'\r\n return 'text'\r\n }\r\n get input() {\r\n return $(this._elementRef.nativeElement).find('input');\r\n }\r\n\r\n public FieldClass: {};\r\n\r\n public GetErrorStateMatcher() {\r\n return (dummyControl: FormControl, form: FormGroupDirective | NgForm) => {\r\n return !!this.control.errors;\r\n };\r\n }\r\n\r\n public FocusInput() {\r\n this.input.focus();\r\n }\r\n}","import { Component, ElementRef, AfterViewInit, Optional } from \"@angular/core\";\r\nimport { FieldDefinition } from \"../form.component\";\r\nimport { AbstractControl, FormGroup, FormControl, FormGroupDirective, NgForm } from \"@angular/forms\";\r\nimport * as $ from 'jquery';\r\nimport * as jQuery from 'jquery';\r\nimport \"jquery-ui\";\r\nimport \"jquery-mask-plugin\";\r\nimport { FormControlUtility } from \"./FormControlUtility\";\r\nimport { FormStateUtility } from \"./FormStateUtility\";\r\nimport { MatrixDefinition, MatrixHeaderCell, MatrixAxis } from \"../../matrix/matrix.models\";\r\nimport { Page } from \"../../page/page.models\";\r\nimport { Area } from \"../../matrix/matrix-model.component\";\r\n\r\nexport class MatrixEditService {\r\n public OpenAxisValueEdit: (matrixHeaderCell: MatrixHeaderCell) => void;\r\n public RerenderMatrix: () => void;\r\n public OpenAxisAdd: (expression: boolean) => void;\r\n public OpenAxisEdit: (axisIdentifier: string) => void;\r\n public DeleteAxis: (axisIdentifier: string) => void;\r\n public CellChange: (columnIndex: number) => void;\r\n public Change;\r\n OpenRearrangeAxes: () => void;\r\n}\r\n","
\r\n
{{field.Label}}
\r\n
\r\n
\r\n check_box\r\n check_box_outline_blank\r\n
\r\n
{{option.Description}}
\r\n
\r\n
\r\n
{{error.Description}}
\r\n
\r\n
\r\n
{{warning.Description}}
\r\n
\r\n
\r\n","import { Component, AfterViewInit, ElementRef } from \"@angular/core\";\r\nimport { FieldDefinition } from \"../form.component\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport { FormStateUtility } from \"./FormStateUtility\";\r\nimport * as $ from 'jquery';\r\n\r\n@Component({\r\n templateUrl: 'multi-checkbox-field.component.html',\r\n styleUrls: ['../../ssi-base-components/checkbox/checkbox.component.less']\r\n})\r\nexport class MultiCheckboxFieldComponent implements AfterViewInit {\r\n public SelectedValue: any;\r\n // TODO: Handle additional text:\r\n // \r\n constructor(public field: FieldDefinition, \r\n public group: FormGroup, \r\n public control: AbstractControl,\r\n private _elementRef: ElementRef) {\r\n \r\n }\r\n \r\n ngAfterViewInit(): void {\r\n let stateUtil = new FormStateUtility(this.control, this.field);\r\n stateUtil.StateChangeDistinct.subscribe(c => \r\n {\r\n this.FieldClass = c\r\n });\r\n\r\n stateUtil.SendUpdate();\r\n }\r\n\r\n public GetOptions(): any[] {\r\n return this.field.Values;\r\n }\r\n\r\n public Toggle() {\r\n let selectedElements = this.field.Values.filter((obj: any, i) => {\r\n return obj.IsSelected;\r\n });\r\n if (selectedElements.length)\r\n this.control.setValue(JSON.stringify(selectedElements));\r\n else\r\n this.control.setValue(null); \r\n }\r\n\r\n public FieldClass: {};\r\n \r\n // $scope.shouldShowTextbox = function (option) {\r\n // return option.IsSelected && (option.AdditionalTextOptionDescription == 'Optional' || option.AdditionalTextOptionDescription == 'Required');\r\n // };\r\n}","
\r\n
\r\n {{field.Label}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n drag_handle\r\n
\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.Description}}
\r\n
\r\n
\r\n
{{warning.Description}}
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, ElementRef } from \"@angular/core\";\r\nimport { FieldDefinition } from \"framework/components/form/form.component\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport * as $ from 'jquery';\r\nimport { FormStateUtility } from \"./FormStateUtility\";\r\n\r\n@Component({\r\n templateUrl: './multi-line-field.component.html',\r\n styleUrls: [ './multi-line-field.component.less' ]\r\n})\r\nexport class MultiLineFieldComponent {\r\n _stateUtil: FormStateUtility;\r\n FieldClass: {};\r\n\r\n public Values: MultiLineValue[];\r\n public ShowOrganize: boolean = false;\r\n public SortableOptions: {};\r\n\r\n constructor(public field: FieldDefinition, public group: FormGroup, public control: AbstractControl, private _elementRef: ElementRef) {\r\n control.valueChanges.subscribe(value => {\r\n this.Values = JSON.parse(value);\r\n });\r\n\r\n if (field.Value)\r\n this.Values = JSON.parse(field.Value);\r\n else\r\n this.Values = [];\r\n \r\n this._stateUtil = new FormStateUtility(this.control, this.field);\r\n this._stateUtil.StateChangeDistinct.subscribe(c => \r\n {\r\n this.FieldClass = c;\r\n });\r\n this._stateUtil.SendUpdate();\r\n\r\n this.SortableOptions = {\r\n onUpdate: () => {\r\n this.OnChange();\r\n }\r\n };\r\n }\r\n\r\n public RemoveIfEmpty() {\r\n for (var i = 0; i < this.Values.length; i++) {\r\n if ((!this.Values[i].Name || !this.Values[i].Name.length)) {\r\n this.Values.splice(i, 1);\r\n return;\r\n }\r\n }\r\n }\r\n\r\n public AddRowAndFocus() {\r\n var highlight = new MultiLineValue();\r\n this.Values.push(highlight);\r\n window.setTimeout(() => {\r\n $(this._elementRef.nativeElement).find('.ui-multi-line-list').last().prev().find('input').focus();\r\n });\r\n }\r\n\r\n public OnChange() {\r\n this.RemoveIfEmpty();\r\n this.control.setValue(JSON.stringify(this.Values));\r\n }\r\n}\r\n\r\nexport class MultiLineValue {\r\n public Name: string;\r\n}\r\n","\n
\n
\n
\n {{field.Label}}\n
\n
\n
\n
\n
\n
{{error.Description}}
\n
\n
\n
{{warning.Description}}
\n
\n
\n \n
\n
{{value.Description}}
\n
\n ","import { Component, AfterViewInit, Pipe, PipeTransform, ChangeDetectorRef, ChangeDetectionStrategy, ElementRef, ViewChild, ViewContainerRef } from \"@angular/core\";\r\nimport { FieldDefinition, DropdownValue } from \"../form.component\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport { ChipDefinition } from \"../../chip/chip.models\";\r\nimport { FormStateUtility } from \"./FormStateUtility\";\r\nimport * as $ from 'jquery';\r\nimport { MDialog, MDialogTrigger } from \"../../dialog/md-dialog.component\";\r\nimport { DialogService } from \"../../../services/DialogService\";\r\nimport { ThrowStmt } from \"@angular/compiler\";\r\n\r\n@Component({\r\n template: `\r\n
\r\n
\r\n
\r\n {{field.Label}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{error.Description}}
\r\n
\r\n
\r\n
{{warning.Description}}
\r\n
\r\n
\r\n \r\n
\r\n
{{value.Description}}
\r\n
\r\n `,\r\n styleUrls: ['multi-select-field.component.less'],\r\n})\r\nexport class MultiSelectFieldComponent {\r\n _stateUtil: FormStateUtility;\r\n _selectedChips: any;\r\n\r\n @ViewChild('dialog', { static: false }) \r\n dialog: MDialog;\r\n \r\n @ViewChild('trigger', {read: MDialogTrigger, static: false})\r\n private dialogTrigger: MDialogTrigger;\r\n \r\n FieldClass: {};\r\n\r\n constructor(public field: FieldDefinition, \r\n private group: FormGroup, \r\n public control: AbstractControl,\r\n private elementRef: ElementRef,\r\n private _dialogService: DialogService,\r\n private _viewContainerRef: ViewContainerRef) {\r\n control.valueChanges.subscribe(value => {\r\n this.SetValues(value); \r\n });\r\n\r\n if(this.field.Attributes[\"DynamicValues\"]){\r\n this.GetDynamicValuesControl().valueChanges.subscribe(value => {\r\n this.UpdateDynamicDropdownValues(value);\r\n });\r\n this.UpdateDynamicDropdownValues(this.GetDynamicValuesControl().value);\r\n }\r\n\r\n this.SetValues(field.Value);\r\n\r\n this._stateUtil = new FormStateUtility(this.control, this.field);\r\n this._stateUtil.StateChangeDistinct.subscribe(c => \r\n {\r\n this.FieldClass = c;\r\n });\r\n this._stateUtil.SendUpdate();\r\n this.Remove = (c) => this.RemoveInternal(c);\r\n }\r\n\r\n private UpdateDynamicDropdownValues(value: any) {\r\n var newValues = >this.field.Attributes[\"DynamicValues\"].Values[value];\r\n newValues.forEach(newValue => {\r\n //Technically substring values would hit this.\r\n newValue.IsSelected = this.control.value.indexOf(newValue.Value) != -1;\r\n });\r\n\r\n this.field.Values = newValues;\r\n this.UpdateFieldValue();\r\n }\r\n\r\n UpdateFieldValue() {\r\n var selectedValues = this.field.Values.filter(r => r.IsSelected);\r\n var stringValue = selectedValues.map(c => c.Value).join(', ');\r\n this.control.setValue(stringValue);\r\n }\r\n\r\n SetValues(fieldValue: string) {\r\n let values = fieldValue.split(',');\r\n values = values.map(v => v.trim());\r\n\r\n this.field.Values.forEach(c => { \r\n c.IsSelected = (values.indexOf(c.Value) !== -1); \r\n });\r\n this._selectedChips = null;\r\n }\r\n\r\n private GetDynamicValuesControl() {\r\n var otherField = this.field.Attributes[\"DynamicValues\"].Property; \r\n return this.group.controls[otherField];\r\n }\r\n\r\n SelectValue(value: DropdownValue) {\r\n value.IsSelected = true;\r\n this.UpdateFieldValue();\r\n }\r\n \r\n ngAfterViewInit(): void { }\r\n\r\n GetSelectedChips() {\r\n if (this._selectedChips != null)\r\n return this._selectedChips;\r\n\r\n this._selectedChips = this.field.Values.filter(l => { return l.IsSelected; }).map(c => { \r\n let chip = new ChipDefinition(); \r\n chip.Text = c.Description;\r\n chip.Icon = \"clear\";\r\n (chip)._value = c.Value;\r\n return chip;\r\n });\r\n return this._selectedChips;\r\n }\r\n\r\n Keydown($event) {\r\n this.dialogTrigger.HandleKeydown($event.keyCode);\r\n $event.stopPropagation();\r\n }\r\n\r\n Keypress($event){\r\n this.dialogTrigger.HandleKeypress($event.key);\r\n $event.stopPropagation();\r\n }\r\n\r\n Remove: any;\r\n RemoveInternal(chip: ChipDefinition) {\r\n this.field.Values.find(c => c.Value == (chip)._value).IsSelected = false;\r\n this.UpdateFieldValue();\r\n }\r\n}\r\n","\n
\n
\n
{{index+1}}
\n \n
\n
\n
*
\n \n
\n
","import { Component, ElementRef } from \"@angular/core\";\r\nimport { FieldDefinition } from \"../form.component\";\r\nimport { FormGroup, AbstractControl, FormControl, FormGroupDirective, NgForm } from \"@angular/forms\";\r\nimport * as $ from 'jquery';\r\n\r\n@Component({\r\n template: `\r\n
\r\n
\r\n
{{index+1}}
\r\n \r\n
\r\n
\r\n
*
\r\n \r\n
\r\n
`,\r\n styleUrls: [ 'observation-editor-field.component.less' ]\r\n})\r\nexport class ObservationEditorFieldComponent {\r\n public Values: any[];\r\n\r\n constructor(public field: FieldDefinition, public group: FormGroup, public control: AbstractControl, private _elementRef: ElementRef) {\r\n if (field.Value)\r\n this.Values = JSON.parse(field.Value);\r\n else\r\n this.Values = [];\r\n }\r\n\r\n public RemoveIfEmpty() {\r\n for (var i = 0; i < this.Values.length; i++) {\r\n if (!this.Values[i].Note || !this.Values[i].Note.length) {\r\n this.Values.splice(i, 1);\r\n return;\r\n }\r\n }\r\n }\r\n\r\n public AddRowAndFocus() {\r\n this.Values.push({});\r\n window.setTimeout(() => {\r\n $(this._elementRef.nativeElement).find('.ui-observation').last().prev().find('textarea').focus();\r\n });\r\n }\r\n\r\n public OnChange() {\r\n this.RemoveIfEmpty();\r\n this.control.setValue(JSON.stringify(this.Values));\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n {{field.Label}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{{error.Description}}
\r\n
\r\n
\r\n
{{warning.Description}}
\r\n
\r\n
\r\n","import { Component, ElementRef, AfterViewInit } from \"@angular/core\";\r\nimport { FieldDefinition, ValidationMessage, Severity } from \"../form.component\";\r\nimport { AbstractControl, FormGroup, FormControl, FormGroupDirective, NgForm } from \"@angular/forms\";\r\nimport * as $ from 'jquery';\r\nimport { FormStateUtility } from \"./FormStateUtility\";\r\nimport { NavigationService, NavigationType } from \"../../../services/NavigationService\";\r\n\r\n@Component({\r\n templateUrl: `./password-field.component.html`,\r\n styleUrls: ['./textbox-field.component.less']\r\n})\r\nexport class PasswordFieldComponent implements AfterViewInit {\r\n _stateUtil: FormStateUtility;\r\n constructor(public field: FieldDefinition, \r\n private group: FormGroup, \r\n public control: AbstractControl, \r\n private _elementRef: ElementRef,\r\n private _navigationService: NavigationService) {\r\n this._stateUtil = new FormStateUtility(this.control, this.field);\r\n this._stateUtil.StateChangeDistinct.subscribe(c => \r\n {\r\n this.FieldClass = c\r\n });\r\n this._stateUtil.SendUpdate();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this._stateUtil.SetInput(this.input);\r\n }\r\n\r\n get input() {\r\n return $(this._elementRef.nativeElement).find('input');\r\n }\r\n\r\n public FieldClass: {};\r\n\r\n public FocusInput() {\r\n this.input.focus();\r\n }\r\n \r\n HelperClick() {\r\n this._navigationService.Go(this.field.Attributes.Helper.Url, NavigationType.Default);\r\n }\r\n}","
\r\n
\r\n
\r\n {{field.Label}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{{error.Description}}
\r\n
\r\n
\r\n
{{warning.Description}}
\r\n
\r\n
","import { Component, AfterViewInit, ElementRef, ChangeDetectorRef, OnDestroy } from \"@angular/core\";\r\nimport { FieldDefinition } from \"../form.component\";\r\nimport { FormGroup, AbstractControl, FormControl, FormGroupDirective, NgForm } from \"@angular/forms\";\r\nimport * as $ from 'jquery';\r\nimport { FormStateUtility } from \"./FormStateUtility\";\r\ndeclare var google: any;\r\n\r\n@Component({\r\n templateUrl: `./places-autocomplete-field.component.html`,\r\n styleUrls: [`./places-autocomplete-field.component.less`]\r\n})\r\nexport class PlacesAutocompleteFieldComponent implements AfterViewInit, OnDestroy {\r\n ngOnDestroy(): void {\r\n this._isDestroyed = true;\r\n }\r\n private _stateUtil: FormStateUtility;\r\n private _isDestroyed: boolean;\r\n\r\n constructor(public field: FieldDefinition, \r\n public group: FormGroup, \r\n public control: AbstractControl, \r\n private _elementRef: ElementRef,\r\n private _changeDetectorRef: ChangeDetectorRef) {\r\n this._stateUtil = new FormStateUtility(this.control, this.field);\r\n this._stateUtil.StateChangeDistinct.subscribe(c => \r\n {\r\n if (this.input.length && (c).empty && (this.input.val()).length) {\r\n (c).empty = false;\r\n (c).filled = true;\r\n }\r\n this.FieldClass = c\r\n });\r\n\r\n this._stateUtil.SendUpdate();\r\n }\r\n\r\n get input() {\r\n return $(this._elementRef.nativeElement).find('input');\r\n }\r\n\r\n public FocusInput() {\r\n this.input.trigger('focus').trigger('click');\r\n }\r\n \r\n getPlaceData(place, includeRawInput) {\r\n var result = {\r\n Coordinates: place.geometry.location,\r\n AddressComponents: place.address_components,\r\n PlaceID: place.place_id,\r\n FormattedAddress: place.formatted_address,\r\n RawInput: includeRawInput ? this.input.val() : null,\r\n Types: place.types\r\n };\r\n \r\n return result;\r\n }\r\n\r\n geoCodePlaceID(placeID, skipSetValue: boolean) {\r\n new google.maps.Geocoder().geocode({ 'placeId': placeID }, (geocodeResults) => {\r\n if (this._isDestroyed)\r\n return;\r\n if (!skipSetValue)\r\n this.control.setValue(JSON.stringify(this.getPlaceData(geocodeResults[0], false)));\r\n this.input.val(geocodeResults[0].formatted_address);\r\n console.log(\"Geocode place ID... likely setting value here\"); \r\n this._stateUtil.SendUpdate();\r\n this._changeDetectorRef.detectChanges();\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this._stateUtil.SetInput(this.input);\r\n let types = ['geocode'];\r\n if (this.field.Attributes['AddressesOnly'])\r\n types = ['address'];\r\n if (this.field.Attributes['RegionOnly'])\r\n types = ['(regions)'];\r\n if (this.field.Attributes[\"GeoCodeAddressAndRegion\"])\r\n types = [];\r\n \r\n if (this.field.Value) {\r\n if (this.field.Value.indexOf('{') !== -1 && this.field.Value.indexOf('PlaceID') !== -1) {\r\n this.input.val(\"Populating...\");\r\n this.geoCodePlaceID(JSON.parse(this.field.Value).PlaceID, true);\r\n }\r\n else {\r\n this.input.val(this.field.Value);\r\n new google.maps.places.AutocompleteService().getPlacePredictions({ input: this.field.Value, types: types },\r\n data => { this.geoCodePlaceID(data[0].place_id, true); });\r\n }\r\n }\r\n\r\n var countries = [\"us\"];\r\n if (this.field.Attributes['IncludeCanada'])\r\n countries.push('ca');\r\n var autocomplete = new google.maps.places.Autocomplete(this.input[0], { types: types, componentRestrictions: { country: countries } });\r\n\r\n this.input.on('blur', () => {\r\n if (!this.input.val() || !(this.input.val()).length)\r\n autocomplete.set('place', null);\r\n\r\n window.setTimeout(() => {\r\n console.log(\"timeout\");\r\n var place = autocomplete.getPlace();\r\n if (place && place.formatted_address && this.input.val() != place.formatted_address)\r\n {\r\n console.log(\"setting formatted addr\");\r\n this.input.val(place.formatted_address);\r\n }\r\n }, 10);\r\n });\r\n\r\n google.maps.event.addListener(autocomplete, 'place_changed', () => {\r\n console.log(\"Place changed event\");\r\n if (!this._changeDetectorRef)\r\n console.log(this);\r\n this._changeDetectorRef.detectChanges();\r\n var place = autocomplete.getPlace();\r\n if (place == null)\r\n {\r\n this.control.setValue(null);\r\n }\r\n else if (Object.keys(place).indexOf('address_components') === -1) {\r\n new google.maps.places.AutocompleteService().getPlacePredictions(\r\n { input: this.input.val(), types: types },\r\n (data) => {\r\n if (!data.length) {\r\n this.control.setValue(null);\r\n this.input.val('');\r\n }\r\n else {\r\n this.geoCodePlaceID(data[0].place_id, false)\r\n }\r\n // self.$elt.trigger('autocomplete-select');\r\n // self.$elt.trigger('value-changed');\r\n // self.input.scope().$emit('form-submit', null);\r\n }\r\n );\r\n return;\r\n }\r\n else if (this.field.Attributes['PlacesName'])\r\n this.control.setValue(this.input.val());\r\n else {\r\n this.control.setValue(JSON.stringify(this.getPlaceData(place, true)));\r\n if (place && place.formatted_address && this.input.val() != place.formatted_address)\r\n {\r\n console.log(\"setting formatted addr 2\");\r\n this.input.val(place.formatted_address);\r\n }\r\n }\r\n });\r\n return;\r\n }\r\n \r\n public FieldClass: {};\r\n}","
\r\n
\r\n {{field.Label}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{value.Description}}
\r\n
\r\n
\r\n
{{error.Description}}
\r\n
\r\n
\r\n
{{warning.Description}}
\r\n
\r\n
\r\n","
\r\n
\r\n {{field.Label}}\r\n
\r\n
{{error.Description}}
\r\n
\r\n
\r\n
{{warning.Description}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{value.Description}}
\r\n
\r\n
\r\n
\r\n","import { Component, TemplateRef, ViewChild, AfterViewInit, HostBinding, ElementRef } from \"@angular/core\";\r\nimport { FieldDefinition, ValidationMessage, Severity, DropdownValue } from \"../form.component\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport * as $ from 'jquery';\r\nimport { FormStateUtility } from \"./FormStateUtility\";\r\nimport { TableLayoutComponent } from \"../../layout/layout.component\";\r\ndeclare var jsep;\r\n\r\n@Component({\r\n templateUrl: './radio-field.component.html',\r\n styleUrls: ['./radio-field.component.less']\r\n})\r\nexport class RadioFieldComponent {\r\n constructor(public field: FieldDefinition, \r\n private group: FormGroup, \r\n public control: AbstractControl,\r\n private _elementRef: ElementRef) {\r\n\r\n let fsu = new FormStateUtility(control, null);\r\n fsu.StateChangeDistinct.subscribe(c => this.FieldClass = c);\r\n fsu.SendUpdate();\r\n\r\n let stateUtil = new FormStateUtility(this.control, this.field);\r\n stateUtil.StateChangeDistinct.subscribe(state => {\r\n this.FieldClass = state;\r\n });\r\n\r\n stateUtil.SendUpdate();\r\n }\r\n\r\n public Select(value: any) {\r\n if (!!this.field.Attributes[\"ReadOnly\"])\r\n return;\r\n\r\n if (!!this.field.Attributes[\"DynamicReadOnly\"]) {\r\n if (TableLayoutComponent.IsTrue(jsep(this.field.Attributes[\"DynamicReadOnly\"]), this.group.value))\r\n return;\r\n }\r\n\r\n\r\n this.control.setValue(value.Value);\r\n }\r\n\r\n public GetValueClass(radioValue: DropdownValue) {\r\n var controlValueString = this.control.value == null ? \"\" : this.control.value.toString();\r\n var radioValueString = !radioValue.Value ? \"\" : radioValue.Value.toString();\r\n\r\n return {\r\n \"ui-highlight\": controlValueString === radioValueString,\r\n \"disabled\": this.FieldClass[\"disabled\"]\r\n };\r\n }\r\n\r\n public FieldClass: {};\r\n}\r\n\r\n@Component({\r\n templateUrl: './radio-questionnaire-field.component.html',\r\n styleUrls: ['./radio-field.component.less']\r\n})\r\nexport class RadioQuestionnaireFieldComponent extends RadioFieldComponent {\r\n\r\n}","
\r\n
\r\n {{field.Label}}\r\n
\r\n
\r\n
{{error.Description}}
\r\n
\r\n
\r\n
{{warning.Description}}
\r\n
\r\n
\r\n
add
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
{{bucket.FloorErrorMessage}}
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{{bucket.CeilingErrorMessage}}
\r\n
\r\n
\r\n
\r\n\r\n
delete
\r\n
\r\n
","","import { Component, ElementRef } from \"@angular/core\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport { FieldDefinition, FormComponent } from \"../form.component\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { FieldService } from \"../../../services/FieldService\";\r\nimport { map } from 'rxjs/operators';\r\nimport { FormStateUtility } from \"./FormStateUtility\";\r\n\r\n@Component({\r\n templateUrl: `./range-buckets-field.component.html`,\r\n styleUrls: [`./range-buckets-field.component.less`],\r\n})\r\nexport class RangeBucketsFieldComponent {\r\n public Buckets: Array;\r\n public PrecisionProperty: string;\r\n private _group: FormGroup;\r\n private _precision: number;\r\n public FieldClass: any;\r\n \r\n constructor(private _elementRef: ElementRef,\r\n public field: FieldDefinition, \r\n private group: FormGroup, \r\n public control: AbstractControl) {\r\n\r\n \r\n let fsu = new FormStateUtility(control, null);\r\n fsu.StateChangeDistinct.subscribe(c => this.FieldClass = c);\r\n fsu.SendUpdate();\r\n\r\n this._group = group;\r\n this.PrecisionProperty = this.field.Attributes[\"Precision\"];\r\n this._precision = parseInt(this._group.controls[this.PrecisionProperty].value);\r\n if (!this._precision)\r\n this._precision = 0;\r\n if (field.Value)\r\n this.Buckets = >JSON.parse(field.Value);\r\n else {\r\n this.Buckets = new Array();\r\n this.Buckets.push(new Bucket({ Floor: 'min', Ceiling: 'max' }));\r\n }\r\n this.Update();\r\n\r\n this._group.controls[this.PrecisionProperty].valueChanges.subscribe(precision => {\r\n let newPrecision = parseInt(precision);\r\n if (!isNaN(newPrecision) && newPrecision >= 0)\r\n this._precision = newPrecision;\r\n \r\n this.Update();\r\n });\r\n\r\n this.control.valueChanges.subscribe((value) => {\r\n this.Buckets = >JSON.parse(value);\r\n });\r\n }\r\n\r\n FocusInput(index: number, isFloor: boolean) {\r\n let bucketIndex = 2 * index;\r\n if (!isFloor)\r\n bucketIndex++;\r\n $('.range-bucket', this._elementRef.nativeElement).eq(bucketIndex).focus();\r\n }\r\n\r\n Add() {\r\n var floor = this.Buckets.length ? '' : 'min';\r\n this.Buckets.push(new Bucket({ Floor: floor, Ceiling: 'max' }));\r\n this.SetRelativeFloor(this.Buckets.length - 1);\r\n this.Update();\r\n }\r\n\r\n Delete(bucket: any) {\r\n let bucketIndex = this.Buckets.indexOf(bucket);\r\n this.Buckets.splice(bucketIndex, 1);\r\n this.SetRelativeFloor(bucketIndex);\r\n this.Update();\r\n }\r\n\r\n Change(bucketIndex: number, isFloor: boolean) {\r\n let side = isFloor ? \"Floor\" : \"Ceiling\";\r\n if (this.Buckets[bucketIndex][side] != 'min' && this.Buckets[bucketIndex][side] != 'max')\r\n this.Buckets[bucketIndex][side] = this.RoundToPrecision(+this.Buckets[bucketIndex][side]);\r\n\r\n if (isFloor)\r\n this.SetRelativeCeiling(bucketIndex - 1);\r\n else\r\n this.SetRelativeFloor(bucketIndex + 1);\r\n\r\n this.Update();\r\n }\r\n\r\n private SetRelativeFloor(bucketIndex) {\r\n if (bucketIndex < 1 || bucketIndex > this.Buckets.length - 1)\r\n return;\r\n\r\n let prevCeilingUnparsed = this.Buckets[bucketIndex - 1].Ceiling;\r\n let prevCeiling = parseFloat(prevCeilingUnparsed);\r\n if (isNaN(prevCeiling)) {\r\n this.Buckets[bucketIndex - 1].Ceiling = null;\r\n this.Buckets[bucketIndex].Floor = null;\r\n }\r\n else {\r\n let delta = 1 / Math.pow(10, this._precision);\r\n if (!isNaN(prevCeiling))\r\n this.Buckets[bucketIndex].Floor = `${this.RoundToPrecision(prevCeiling + delta)}`;\r\n }\r\n }\r\n\r\n private SetRelativeCeiling(bucketIndex) {\r\n if (bucketIndex < 0 || bucketIndex > this.Buckets.length - 2)\r\n return;\r\n\r\n let nextFloor = parseFloat(this.Buckets[bucketIndex + 1].Floor);\r\n if (isNaN(nextFloor))\r\n nextFloor = null;\r\n let delta = 1 / Math.pow(10, this._precision);\r\n if (!isNaN(nextFloor))\r\n this.Buckets[bucketIndex].Ceiling = `${this.RoundToPrecision(nextFloor - delta)}`;\r\n }\r\n\r\n private RoundToPrecision(value: number): string {\r\n if (value == null)\r\n return null;\r\n if (this._precision == 0)\r\n return `${Math.round(value)}`;\r\n\r\n let multiplier = Math.pow(10, this._precision);\r\n let baseString = Math.abs(Math.round(value * multiplier)).toString();\r\n\r\n while (this._precision >= baseString.length)\r\n baseString = `0${baseString}`;\r\n\r\n let resultString = `${baseString.slice(0, -this._precision)}.${baseString.slice(-this._precision)}`;\r\n if (value < 0)\r\n resultString = `-${resultString}`;\r\n\r\n return resultString;\r\n }\r\n\r\n Update() {\r\n this.ConvertBuckets();\r\n this.ValidateBuckets();\r\n this.control.setValue(JSON.stringify(this.Buckets));\r\n }\r\n\r\n private ConvertBuckets() {\r\n for (let bucketIndex = 0; bucketIndex < this.Buckets.length; bucketIndex++) {\r\n let bucket = this.Buckets[bucketIndex];\r\n if (!bucket.HasFloorError && bucket.Floor != 'min') {\r\n let floor = parseFloat(bucket.Floor);\r\n if (isNaN(floor))\r\n floor = null;\r\n bucket.Floor = this.RoundToPrecision(floor);\r\n this.SetRelativeCeiling(bucketIndex - 1);\r\n }\r\n if (bucketIndex == this.Buckets.length - 1 && !bucket.HasCeilingError && bucket.Ceiling != 'max') {\r\n let ceiling = parseFloat(bucket.Ceiling);\r\n bucket.Ceiling = this.RoundToPrecision(ceiling);\r\n }\r\n }\r\n }\r\n\r\n private ValidateBuckets() {\r\n let prevCieling = Number.NEGATIVE_INFINITY;\r\n let delta = 1 / Math.pow(10, this._precision);\r\n let errors = {};\r\n for (let index = 0; index < this.Buckets.length; index++) {\r\n let bucket = this.Buckets[index];\r\n\r\n bucket.HasFloorError = false;\r\n let floor = parseFloat(bucket.Floor);\r\n\r\n let isFloorMin = isNaN(floor) && bucket.Floor.toLowerCase() == 'min';\r\n if (isNaN(floor) && !isFloorMin) {\r\n bucket.HasFloorError = true;\r\n bucket.FloorErrorMessage = `Floor must be a number or 'min'`;\r\n }\r\n if (index > 0 && isFloorMin) {\r\n bucket.HasFloorError = true;\r\n bucket.FloorErrorMessage = `Only the first bucket may have Floor = 'min'`;\r\n }\r\n\r\n bucket.HasCeilingError = false;\r\n let ceiling = parseFloat(bucket.Ceiling);\r\n let isCeilingMax = bucket.Ceiling.toLowerCase() == 'max';\r\n if (isNaN(ceiling) && !isCeilingMax) {\r\n bucket.HasCeilingError = true;\r\n bucket.CeilingErrorMessage = `Ceiling must be a number or 'max'`;\r\n }\r\n if (index < this.Buckets.length - 1 && isCeilingMax) {\r\n bucket.HasCeilingError = true;\r\n bucket.CeilingErrorMessage = `Only the last bucket may have Ceiling = 'max'`;\r\n }\r\n\r\n if (!isNaN(floor) && prevCieling != Number.NEGATIVE_INFINITY && \r\n +this.RoundToPrecision(floor - prevCieling) != delta) {\r\n\r\n bucket.HasFloorError = true;\r\n bucket.FloorErrorMessage = `Adjacent range buckets must have gaps of size ${delta}`;\r\n }\r\n if (!isNaN(floor) && floor <= prevCieling) {\r\n bucket.HasFloorError = true;\r\n bucket.FloorErrorMessage = `Range buckets must not overlap`;\r\n }\r\n if (!isNaN(floor) && !isNaN(ceiling) && ceiling < floor) {\r\n bucket.HasCeilingError = true;\r\n bucket.CeilingErrorMessage = `Ceiling must be greater than Floor`;\r\n }\r\n\r\n if (bucket.HasFloorError) {\r\n errors[`bucket-${index}-floor`] = bucket.FloorErrorMessage;\r\n }\r\n else {\r\n bucket.HasFloorError = false;\r\n delete errors[`bucket-${index}-floor`];\r\n }\r\n if (bucket.HasCeilingError) {\r\n errors[`bucket-${index}-ceiling`] = bucket.CeilingErrorMessage;\r\n }\r\n else {\r\n bucket.HasCeilingError = false;\r\n delete errors[`bucket-${index}-ceiling`];\r\n }\r\n\r\n prevCieling = ceiling;\r\n }\r\n\r\n if (Object.keys(errors).length)\r\n this.control.setErrors(errors);\r\n }\r\n}\r\n\r\nexport class Bucket {\r\n constructor(b?: Partial) {\r\n Object.assign(this, b)\r\n }\r\n\r\n get Min() { return this.Floor === 'min' }\r\n set Min(min: boolean) { this.Floor = min ? 'min' : '' }\r\n\r\n get Max() { return this.Ceiling === 'max' }\r\n set Max(max: boolean) { this.Ceiling = max ? 'max' : ''}\r\n\r\n Floor: string; \r\n HasFloorError: boolean;\r\n FloorErrorMessage: string;\r\n Ceiling: string;\r\n HasCeilingError: boolean;\r\n CeilingErrorMessage: string = '';\r\n Interval: string;\r\n}\r\n\r\n@Component({\r\n template: ``,\r\n styles: [`\r\n `]\r\n})\r\nexport class ExpressionEvaluatorFieldComponent {\r\n \r\n constructor(public field: FieldDefinition, \r\n private group: FormGroup, \r\n private http: HttpClient,\r\n private _fieldService: FieldService,\r\n private _formComponent: FormComponent,\r\n private control: AbstractControl) {\r\n this.group.controls[\"Expression\"].valueChanges.subscribe(expressionValue => {\r\n if (!expressionValue)\r\n return;\r\n\r\n _formComponent.DisableSubmit = true;\r\n\r\n let searchData = this.GetFieldFromService(\"Expression\").Definition.Attributes[\"AutocompleteData\"];\r\n delete searchData[\"$type\"];\r\n\r\n this.http.post('/Program/SchemaInfo', { term: expressionValue, searchData: searchData }).pipe(map((response: SchemaSearchResult) => {\r\n let data = response;\r\n\r\n if (data.ErrorMessage != null) {\r\n alert(data.ErrorMessage);\r\n return;\r\n }\r\n\r\n this.group.controls[\"Type\"].setValue(AxisType[data.Type]);\r\n if (data.Type == AxisType.Range && data.RangeBuckets) {\r\n let rv = this.GetFieldFromService('RangeValues');\r\n rv.Control.setValue(JSON.stringify(data.RangeBuckets.map(bucket =>\r\n new Bucket({ Floor: `${bucket.Floor}`, Ceiling: `${bucket.Ceiling}`})\r\n )));\r\n }\r\n if (data.Type == AxisType.Lookup) {\r\n this.group.controls[\"IsVariable\"].setValue(data.IsVariable);\r\n let lv = this.GetFieldFromService('Values');\r\n lv.Definition.Attributes[\"LookupValues\"] = data.LookupValues.join('\\n');\r\n lv.Control.setValue('');\r\n }\r\n\r\n _formComponent.DisableSubmit = false;\r\n })).subscribe();\r\n });\r\n }\r\n\r\n private GetFieldFromService(name: string) {\r\n return this._fieldService.Fields.filter(r => r.Definition.Name == name)[0];\r\n }\r\n}\r\n\r\nexport class SchemaSearchResult\r\n{\r\n public Name: string;\r\n public Type: AxisType;\r\n public RangeBuckets;\r\n public LookupValues: Array;\r\n public IsVariable: boolean;\r\n public ErrorMessage: string;\r\n}\r\n\r\nexport enum AxisType {\r\n Range,\r\n Lookup,\r\n Expression\r\n}","
\r\n
\r\n {{field.Label}}\r\n
\r\n
\r\n
{{error.Description}}
\r\n
\r\n
\r\n
{{warning.Description}}
\r\n
\r\n
\r\n
add
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{{bucket.FloorErrorMessage}}
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{{bucket.CeilingErrorMessage}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{{bucket.IntervalErrorMessage}}
\r\n
\r\n
\r\n
\r\n\r\n
delete
\r\n
\r\n
\r\n","import { Component, ElementRef } from \"@angular/core\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport { FieldDefinition, FormComponent } from \"../form.component\";\r\nimport { Bucket } from \"./range-buckets-field.component\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { FieldService } from \"../../../services/FieldService\";\r\nimport { map } from 'rxjs/operators';\r\nimport { FormStateUtility } from \"./FormStateUtility\";\r\n\r\n@Component({\r\n templateUrl: `./range-definition-field.component.html`,\r\n styleUrls: [`./range-definition-field.component.less`],\r\n})\r\nexport class RangeDefinitionFieldComponent {\r\n public Buckets: Array;\r\n public FieldClass: any;\r\n public HideInterval = !!this.field.Attributes.HideInterval\r\n \r\n constructor(private _elementRef: ElementRef,\r\n public field: FieldDefinition, \r\n private group: FormGroup, \r\n public control: AbstractControl) {\r\n\r\n let fsu = new FormStateUtility(control, null);\r\n fsu.StateChangeDistinct.subscribe(c => this.FieldClass = c);\r\n fsu.SendUpdate();\r\n\r\n if (field.Value)\r\n this.Buckets = this.ParseBuckets(field.Value);\r\n else {\r\n this.Buckets = new Array();\r\n this.Buckets.push(new Bucket({ Floor: 'min', Ceiling: 'max' }));\r\n }\r\n this.Update();\r\n\r\n //Handles Calculated values if ever necessary.\r\n this.control.valueChanges.subscribe(value => {\r\n this.Buckets = this.ParseBuckets(value)\r\n });\r\n }\r\n\r\n private ParseBuckets(json: string) {\r\n return (>JSON.parse(json)).map(x => new Bucket(x)); // lets you use getters/setters\r\n }\r\n\r\n private get gapBetweenRanges() {\r\n let gap = 0;\r\n if (this.field.Attributes.Precision) {\r\n let precision = this.group.controls[this.field.Attributes.Precision].value;\r\n gap = Math.pow(.1, precision) || 0\r\n }\r\n return gap;\r\n }\r\n\r\n Add() {\r\n let min = 'min';\r\n let interval = '1';\r\n\r\n if (this.Buckets.length > 0) {\r\n let previousBucket = this.Buckets[this.Buckets.length - 1];\r\n if (previousBucket.Ceiling == \"max\") {\r\n previousBucket.Ceiling = ((parseInt(previousBucket.Floor) || 0) + 1).toString();\r\n }\r\n interval = previousBucket.Interval\r\n min = (parseFloat(previousBucket.Ceiling) + this.gapBetweenRanges).toString();\r\n }\r\n\r\n this.Buckets.push(new Bucket({ Floor: min, Ceiling: 'max', Interval: interval }));\r\n this.Update();\r\n }\r\n\r\n Delete(bucket: any) {\r\n let bucketIndex = this.Buckets.indexOf(bucket);\r\n this.Buckets.splice(bucketIndex, 1);\r\n this.Update();\r\n }\r\n\r\n SetMin(bucket: Bucket, min: boolean) {\r\n if (bucket.Min != min) { // avoid valueChanges infinite loop\r\n bucket.Min = min\r\n if(!bucket.Min) bucket.Floor = '0'\r\n this.Update()\r\n }\r\n }\r\n\r\n SetMax(bucket: Bucket, max: boolean) {\r\n if (bucket.Max != max) { // avoid valueChanges infinite loop\r\n bucket.Max = max\r\n if (!bucket.Max && this.IsNumber(bucket.Floor)) {\r\n bucket.Ceiling = (parseInt(bucket.Floor) + 1).toString()\r\n }\r\n this.Update()\r\n }\r\n }\r\n\r\n ValidNum(key: KeyboardEvent, val: string) {\r\n if (this.IsNumber(key.key) || (key.key == \".\" && !val.includes(\".\")))\r\n return;\r\n\r\n event.stopPropagation();\r\n return false;\r\n }\r\n\r\n private IsNumber(val: string) {\r\n return !isNaN(parseInt(val))\r\n }\r\n\r\n // update previous ceiling (if exists) to be floor - gap\r\n AfterUpdateFloor(bucketIndex: number) {\r\n if (bucketIndex >= 1) {\r\n var floor = parseFloat(this.Buckets[bucketIndex].Floor) // will never be min since it's not the first row\r\n this.Buckets[bucketIndex - 1].Ceiling = (floor - this.gapBetweenRanges).toString()\r\n }\r\n this.Update()\r\n }\r\n\r\n // update next floor (if exists) to be ceiling + gap\r\n AfterUpdateCeiling(bucketIndex: number) {\r\n if (this.Buckets.length > bucketIndex + 1) {\r\n var ceiling = parseFloat(this.Buckets[bucketIndex].Ceiling) // will never be max since it's not the last row\r\n this.Buckets[bucketIndex + 1].Floor = (ceiling + this.gapBetweenRanges).toString()\r\n }\r\n this.Update()\r\n }\r\n\r\n Update() {\r\n var sanitizedBuckets = this.Buckets.map(b => {\r\n Floor: b.Floor,\r\n Ceiling: b.Ceiling,\r\n Interval: b.Interval\r\n })\r\n this.control.setValue(JSON.stringify(sanitizedBuckets));\r\n }\r\n}","\n
\n \n
\n
clear
\n
\n
\n ","import { Component, ElementRef, AfterViewInit } from \"@angular/core\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport * as $ from 'jquery';\r\nimport { FieldDefinition } from \"../form.component\";\r\n\r\n@Component({\r\n template: `\r\n
\r\n \r\n
\r\n
clear
\r\n
\r\n
\r\n `,\r\n styleUrls: ['./signature-field.component.less']\r\n})\r\nexport class SignatureFieldComponent implements AfterViewInit {\r\n \r\n private _totalXDifference: number = 0;\r\n private _totalYDifference: number = 0;\r\n private _canvas: any;\r\n private _previousPos: any;\r\n private _minimumXDistance: number;\r\n private _minimumYDistance: number;\r\n private _isLocked: boolean = false;\r\n private _isTracking: boolean = false;\r\n private _drewAnything: boolean = false;\r\n private _isModified: boolean = false;\r\n\r\n public IsSigned: boolean;\r\n\r\n constructor(public field: FieldDefinition, private group: FormGroup, public control: AbstractControl, private _elementRef: ElementRef) {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this._canvas = $(this._elementRef.nativeElement).find('canvas')[0];\r\n this._minimumXDistance = $(this._canvas).width() / 3;\r\n this._minimumYDistance = $(this._canvas).height();\r\n\r\n // Set up events\r\n this._canvas.addEventListener('touchstart', (evt) => this.startevent(evt), false);\r\n this._canvas.addEventListener('touchend', (evt) => this.mouseendevent(evt), false);\r\n this._canvas.addEventListener('mousedown', (evt) => this.mousestartevent(evt), false);\r\n this._canvas.addEventListener('mouseup', (evt) => this.mouseendevent(evt), false);\r\n this._canvas.addEventListener('touchmove', (evt) => this.moveevent(evt), false);\r\n this._canvas.addEventListener('mousemove', (evt) => this.moveevent(evt), false);\r\n }\r\n\r\n private startevent(evt) {\r\n if (this._isLocked)\r\n return;\r\n this._isTracking = true;\r\n this._isModified = true;\r\n\r\n evt.preventDefault();\r\n\r\n this._previousPos = this.getMousePos(this._canvas, evt);\r\n }\r\n\r\n private mousestartevent(evt) {\r\n if (this._isLocked)\r\n return;\r\n\r\n this._isTracking = true;\r\n this._isModified = true;\r\n this._drewAnything = false;\r\n\r\n evt.preventDefault();\r\n\r\n this._previousPos = this.getMousePos(this._canvas, evt);\r\n }\r\n\r\n private mouseendevent(evt) {\r\n this._isTracking = false;\r\n if (this._drewAnything && this._totalXDifference > this._minimumXDistance && this._totalYDifference > this._minimumYDistance) {\r\n this.control.setValue(this.GetData());\r\n console.log('valid value');\r\n }\r\n }\r\n\r\n private moveevent(evt: any) {\r\n if (this._isLocked)\r\n return;\r\n\r\n if (!this._isTracking)\r\n return;\r\n\r\n evt.preventDefault();\r\n\r\n this._drewAnything = true;\r\n\r\n var context = this._canvas.getContext(\"2d\");\r\n var pos = this.getMousePos(this._canvas, evt);\r\n\r\n context.beginPath();\r\n context.moveTo(this._previousPos.x, this._previousPos.y);\r\n context.lineTo(pos.x, pos.y);\r\n\r\n context.strokeStyle = '#000000';\r\n context.lineWidth = 3;\r\n context.stroke();\r\n this._totalXDifference += Math.abs(this._previousPos.x - pos.x);\r\n this._totalYDifference += Math.abs(this._previousPos.y - pos.y);\r\n this._previousPos = pos;\r\n }\r\n\r\n private getMousePos(canvas, evt) {\r\n var rect = canvas.getBoundingClientRect();\r\n if (evt.targetTouches)\r\n return {\r\n x: evt.targetTouches[0].clientX - rect.left,\r\n y: evt.targetTouches[0].clientY - rect.top\r\n };\r\n return {\r\n x: evt.offsetX,\r\n y: evt.offsetY\r\n }\r\n }\r\n\r\n public GetData() {\r\n var data = this._canvas.toDataURL('image/png');\r\n return data;\r\n };\r\n\r\n public Clear() {\r\n this._canvas.getContext('2d').clearRect(0, 0, this._canvas.width, this._canvas.height);\r\n this.control.setValue(null);\r\n this._totalXDifference = 0;\r\n this._totalYDifference = 0; \r\n }\r\n}","\n
\n
\n
\n
\n
\n
{{field.Label}}
\n
\n
\n
{{error.Description}}
\n
\n
\n
{{warning.Description}}
\n
\n
\n\n
\n\n
\n ","import { Component } from \"@angular/core\";\r\nimport { FieldDefinition } from \"../form.component\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport { CheckboxFieldComponent } from \"./checkbox-field.component\";\r\n\r\n@Component({\r\n template: `\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{field.Label}}
\r\n
\r\n
\r\n
{{error.Description}}
\r\n
\r\n
\r\n
{{warning.Description}}
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n `,\r\n styleUrls: [\"./slide-toggle-field.component.less\"]\r\n})\r\nexport class SlideToggleFieldComponent extends CheckboxFieldComponent {\r\n}","
\r\n
\r\n
\r\n {{field.Label}} \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{error.Description}}
\r\n
\r\n
\r\n
{{warning.Description}}
\r\n
\r\n
","import { Component, ElementRef } from \"@angular/core\";\r\nimport { FieldDefinition, ValidationMessage, Severity } from \"../form.component\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport { FormStateUtility } from \"./FormStateUtility\";\r\n\r\n@Component({\r\n templateUrl: './slider-field.component.html',\r\n styleUrls: ['./slider-field.component.less'] \r\n})\r\nexport class SliderFieldComponent {\r\n _stateUtil: FormStateUtility;\r\n _limitedDates: any;\r\n\r\n constructor(public field: FieldDefinition, \r\n public group: FormGroup, \r\n public control: AbstractControl,\r\n private _elementRef: ElementRef) {\r\n\r\n this._stateUtil = new FormStateUtility(this.control, this.field);\r\n this._stateUtil.StateChangeDistinct.subscribe(c => \r\n {\r\n this.FieldClass = c\r\n });\r\n \r\n this._stateUtil.SendUpdate();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n let input = $(this._elementRef.nativeElement).find('.slider');\r\n var attribute = this.field.Attributes[\"SliderRange\"];\r\n $(this._elementRef.nativeElement).find('.display').text(`${this.field.Value}`);\r\n let options = {\r\n value: this.field.Value,\r\n min: attribute.Min,\r\n max: attribute.Max,\r\n step: attribute.Interval,\r\n slide: (event, ui) => {\r\n $(this._elementRef.nativeElement).find('.display').text(`${ui.value}`);\r\n this.control.setValue(ui.value);\r\n }\r\n };\r\n\r\n (input).slider(options);\r\n }\r\n\r\n public FieldClass: {};\r\n\r\n public FocusInput() {\r\n }\r\n}","
\r\n
\r\n
\r\n
\r\n {{field.Label}}\r\n
\r\n
\r\n \r\n
\r\n
{{hint}}
\r\n
\r\n
{{error.Description}}
\r\n
\r\n
\r\n
{{warning.Description}}
\r\n
\r\n
\r\n
\r\n","import { Component, ElementRef, AfterViewInit } from \"@angular/core\";\r\nimport { FieldDefinition, ValidationMessage, Severity } from \"../form.component\";\r\nimport { FormGroup, AbstractControl, FormControl, FormGroupDirective, NgForm } from \"@angular/forms\";\r\nimport * as $ from 'jquery';\r\nimport { FormControlUtility } from \"./FormControlUtility\";\r\nimport { FormStateUtility } from \"./FormStateUtility\";\r\nimport { FieldService } from \"../../../services/FieldService\";\r\ndeclare var autosize: any;\r\n\r\n@Component({\r\n templateUrl: `./textarea-field.component.html`,\r\n styleUrls: ['./textarea-field.component.less']\r\n})\r\nexport class TextAreaFieldComponent implements AfterViewInit {\r\n _stateUtil: FormStateUtility;\r\n public Rows: number;\r\n \r\n constructor(public field: FieldDefinition, \r\n private group: FormGroup, \r\n public control: AbstractControl, \r\n private elementRef: ElementRef,\r\n private fieldService: FieldService) {\r\n if (field.Attributes[\"Rows\"])\r\n this.Rows = parseInt(field.Attributes[\"Rows\"]);\r\n else \r\n this.Rows = 2;\r\n\r\n this._stateUtil = new FormStateUtility(this.control, this.field);\r\n this._stateUtil.StateChangeDistinct.subscribe(c => \r\n {\r\n this.FieldClass = c\r\n });\r\n this._stateUtil.SendUpdate();\r\n }\r\n\r\n handlePaste(evt: ClipboardEvent) {\r\n var files = evt.clipboardData.files;\r\n if (files && files.length && this.field.Attributes[\"FilePaste\"]) {\r\n var field = this.fieldService.Fields.filter(r => r.Definition.Name == this.field.Attributes[\"FilePaste\"]);\r\n if (!field || !field.length) {\r\n console.error(\"Unable to find field for file paste\");\r\n return;\r\n }\r\n var fileEvent = {\r\n target: {\r\n files: evt.clipboardData.files\r\n }\r\n };\r\n field[0].Component.FileChange(fileEvent);\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n new FormControlUtility().Initialize(this.control, this.input);\r\n this._stateUtil.SetInput(this.input);\r\n \r\n if (this.field.Attributes[\"Rows\"])\r\n $(this.elementRef.nativeElement).children().addClass('m-textarea-field-outline'); \r\n else\r\n autosize($('textarea', this.elementRef.nativeElement)[0]);\r\n \r\n $('textarea', this.elementRef.nativeElement).css('resize', 'none');\r\n \r\n if (this.field.Attributes[\"ReadOnly\"]) {\r\n this.input.attr('readonly', 'true');\r\n }\r\n }\r\n\r\n public FieldClass: {};\r\n\r\n get hint() { return this.field.Attributes['Hint']; }\r\n\r\n get input() {\r\n return $(this.elementRef.nativeElement).find('textarea');\r\n }\r\n\r\n public FocusInput() {\r\n this.input.focus();\r\n }\r\n\r\n KeyDown($event) {\r\n if ($event.keyCode == 13) return false;\r\n return true;\r\n }\r\n}\r\n\r\n// @Component({\r\n// templateUrl: './textarea-questionnaire-field.component.html',\r\n// styleUrls: ['./textarea-field.component.less']\r\n// })\r\n// export class XXTextAreaQuestionnaireFieldComponent extends TextAreaFieldComponent {\r\n\r\n// }","
\r\n
\r\n
\r\n {{field.Label}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{hint}}
\r\n
\r\n
{{error.Description}}
\r\n
\r\n
\r\n
{{warning.Description}}
\r\n
\r\n
","import { Component, ElementRef, AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef } from \"@angular/core\";\r\nimport { FieldDefinition, ValidationMessage, Severity } from \"../form.component\";\r\nimport { FormGroup, AbstractControl, FormControl, FormGroupDirective, NgForm } from \"@angular/forms\";\r\nimport { FormStateUtility } from \"./FormStateUtility\";\r\nimport { FormControlUtility } from \"./FormControlUtility\";\r\nimport * as $ from 'jquery';\r\n\r\n@Component({\r\n templateUrl: `./textbox-field.component.html`,\r\n styleUrls: [`./textbox-field.component.less`],\r\n})\r\nexport class TextboxFieldComponent implements AfterViewInit {\r\n _stateUtil: FormStateUtility;\r\n constructor(public field: FieldDefinition, \r\n public group: FormGroup,\r\n public control: AbstractControl,\r\n private _elementRef: ElementRef,\r\n private ChangeDetectorRef: ChangeDetectorRef) { \r\n this._stateUtil = new FormStateUtility(this.control, this.field);\r\n this._stateUtil.StateChangeDistinct.subscribe(c => \r\n {\r\n this.FieldClass = c\r\n });\r\n this._stateUtil.SendUpdate();\r\n \r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.field.Attributes[\"ReadOnly\"]) {\r\n this.input.attr('readonly', 'true');\r\n }\r\n new FormControlUtility().Initialize(this.control, this.input);\r\n this._stateUtil.SetInput(this.input);\r\n }\r\n\r\n get hint() { return this.field.Attributes['Hint']; }\r\n\r\n get input() {\r\n return $(this._elementRef.nativeElement).find('input');\r\n }\r\n\r\n public FieldClass: {};\r\n \r\n public FocusInput() {\r\n if (this.field.Attributes[\"ReadOnly\"]) {\r\n return;\r\n } \r\n this.input.focus();\r\n }\r\n}\r\n\r\n// @Component({\r\n// templateUrl: './textbox-questionnaire-field.component.html',\r\n// styleUrls: ['./textbox-field.component.less']\r\n// })\r\n// export class XXTextboxQuestionnaireFieldComponent extends TextboxFieldComponent {\r\n\r\n// }","\n
\n ","import { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FieldDefinition } from \"../form.component\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\n\r\n@Component({\r\n host: {'style.display': 'none'},\r\n template: `\r\n
\r\n `\r\n})\r\nexport class UTCOffsetFieldComponent implements OnInit {\r\n constructor(public field: FieldDefinition, private group: FormGroup, public control: AbstractControl) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.control.setValue(new Date().getTimezoneOffset());\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
{{(error.ColumnName ? (error.ColumnName + \": \") : \"\") + error.Description}}
\r\n
\r\n
\r\n
{{(error.ColumnName ? (error.ColumnName + \": \") : \"\") + error.Description}}
\r\n
\r\n
\r\n
{{(error.ColumnName ? (error.ColumnName + \": \") : \"\") + error.Description}}
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n {{CompDef.Form.SubForms[0].FriendlyDescription}}\r\n
\r\n
\r\n
\r\n \r\n 1\">delete\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n \r\n add\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n
Back
\r\n \r\n
\r\n
","import { Component, Input, Pipe, PipeTransform, Optional, EventEmitter, ElementRef, ViewChild, Host, Injectable, OnDestroy } from '@angular/core';\r\nimport { NavigationService, NavigationType, ToastMessage } from '../../services/NavigationService'\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { Observable, forkJoin, of, Subject } from \"rxjs\";\r\nimport { FormGroup, AbstractControl, FormBuilder, ValidationErrors } from \"@angular/forms\";\r\nimport { ModalService } from \"../../services/ModalService\";\r\nimport { LinkService } from \"../../services/LinkService\";\r\nimport { AssessmentService } from \"../../services/AssessmentService\";\r\nimport { SearchService } from \"../../services/SearchService\";\r\nimport { ComponentDefinition } from \"../../components/component/component.models\";\r\nimport { Link } from \"../../components/actions/actions.models\";\r\nimport * as $ from 'jquery';\r\nimport { TableLayoutComponent, LayoutService, LayoutInstance } from '../layout/layout.component';\r\nimport { FieldService } from '../../services/FieldService';\r\nimport { FormConnectionService, IValidationReceiver, ValidationProvider } from '../../services/LoadService';\r\nimport { NewSearchService } from '../../services/NewSearchService';\r\nimport { ToastService } from '../../services/ToastService';\r\nimport { debounceTime, switchMap, map } from 'rxjs/operators';\r\nimport { TooltipModel } from '../tooltip/tooltip.component';\r\nimport { ValidationResponse } from '../multisection/multisection.component';\r\ndeclare var jsep: any;\r\n\r\nexport interface IFormIntegrationListener {\r\n FromFormValidationsApplied(validationContext: { ValidationWrapper: ValidationWrapper; ValidatedData: any; StructuredValidatedData: any; }): void;\r\n FromFormValuesChanged(data: {}): void;\r\n FromFormInitialValues(data: {}): void;\r\n}\r\n\r\nexport interface IMultiplexFormIntegrationListener {\r\n FromFormInitialValues(arg0: any[]);\r\n ValuesChanged(data: any[]);\r\n ValidationsHappened(validationContexts: { ValidationWrapper: ValidationWrapper; ValidatedData: any; StructuredValidatedData: any; }[]);\r\n \r\n}\r\n\r\n@Injectable()\r\nexport class FormIntegrationService {\r\n FromFormInitialValues(arg0: {}) {\r\n this._listeners.map(r => r.FromFormInitialValues(arg0));\r\n }\r\n\r\n FormComponent: FormComponent;\r\n _listeners = new Array();\r\n\r\n constructor(@Optional() private multiplexedFormIntegrationService: MultiplexedFormIntegrationService) { \r\n if (multiplexedFormIntegrationService)\r\n multiplexedFormIntegrationService.RegisterFormService(this);\r\n }\r\n\r\n FromWrapperRunValidations() {\r\n this.FormComponent;\r\n }\r\n \r\n FromWrapperApplyValidations(validations: ValidationResponse, sectionData: any) {\r\n var validationContext = new ValidationContext();\r\n validationContext.StructuredValidatedData = sectionData;\r\n validationContext.ValidatedData = sectionData;\r\n validationContext.ValidationWrapper = new ValidationWrapper(validations)\r\n this.FormComponent.ApplyValidations(validationContext);\r\n }\r\n\r\n FromFormValidationsApplied(validationContext: { ValidationWrapper: ValidationWrapper; ValidatedData: any; StructuredValidatedData: any; }) {\r\n this._listeners.forEach(l => l.FromFormValidationsApplied(validationContext))\r\n }\r\n\r\n public RegisterForm(formComponent: FormComponent) {\r\n this.FormComponent = formComponent;\r\n this.FormComponent.AllValueChanges.subscribe((data: {}) => {\r\n this._listeners.forEach(s => s.FromFormValuesChanged(data));\r\n });\r\n }\r\n\r\n public ServiceDestroyed() {\r\n if (this.multiplexedFormIntegrationService)\r\n this.multiplexedFormIntegrationService.UnregisterFormService(this);\r\n }\r\n\r\n public RegisterListener(formListener: IFormIntegrationListener) {\r\n this._listeners.push(formListener);\r\n }\r\n\r\n public GetData(): any {\r\n if (this.FormComponent)\r\n return this.FormComponent.GetFormData();\r\n return null;\r\n }\r\n\r\n DisplayAllValidations(): any {\r\n this.FormComponent.HasAttemptedSubmit = true; \r\n }\r\n\r\n HasErrors(): boolean {\r\n return this.FormComponent.LastAppliedValidations.ValidationWrapper.HasErrors;\r\n }\r\n\r\n LastValidations() {\r\n return this.FormComponent.LastAppliedValidations;\r\n }\r\n}\r\n\r\n@Injectable()\r\nexport class MultiplexedFormIntegrationService implements IFormIntegrationListener {\r\n FromFormInitialValues(data: {}): void {\r\n this._listener.FromFormInitialValues(this.GetAllData());\r\n }\r\n\r\n ExternalRunValidations() {\r\n this._subServices.forEach(s => {\r\n if (s.FormComponent.LastAppliedValidations)\r\n s.FormComponent.ApplyValidations(s.FormComponent.LastAppliedValidations)\r\n });\r\n }\r\n\r\n ExternalAttemptedSubmit() {\r\n this._subServices.forEach(s => s.FormComponent.HasAttemptedSubmit = true);\r\n }\r\n\r\n UnregisterFormService(service: FormIntegrationService) {\r\n var index = this._subServices.findIndex(r => r == service);\r\n this._subServices.splice(index);\r\n this.FromFormValuesChanged(null);\r\n this.FromFormValidationsApplied();\r\n }\r\n\r\n FromFormValuesChanged(data: {}): void {\r\n this._listener.ValuesChanged(this.GetAllData());\r\n }\r\n\r\n FromFormValidationsApplied(): void {\r\n this._listener.ValidationsHappened(this.GetAllValidations()); \r\n }\r\n\r\n GetAllValidations(): { ValidationWrapper: ValidationWrapper; ValidatedData: any; StructuredValidatedData: any; }[] {\r\n return this._subServices.map(s => s.LastValidations());\r\n }\r\n\r\n _subServices = new Array();\r\n _listener: IMultiplexFormIntegrationListener;\r\n\r\n RegisterFormService(formIntegrationService: FormIntegrationService) {\r\n this._subServices.push(formIntegrationService);\r\n formIntegrationService.RegisterListener(this);\r\n }\r\n\r\n RegisterListener(multiplexListener: IMultiplexFormIntegrationListener) {\r\n this._listener = multiplexListener;\r\n }\r\n\r\n //Triggers 'SubmitAttempted' to show required errors\r\n DisplayAllValidations() {\r\n this._subServices.map(r => r.DisplayAllValidations());\r\n }\r\n\r\n ///Won't Run Validations\r\n GetAllData() : any[] {\r\n return this._subServices.map(s => s.GetData());\r\n }\r\n\r\n HasErrors() {\r\n return this._subServices.some(r => r.HasErrors());\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'form-component',\r\n templateUrl: './form.component.html',\r\n styleUrls: ['./form.component.less'], \r\n providers: [LayoutService, FieldService]\r\n})\r\nexport class FormComponent implements IValidationReceiver, OnDestroy {\r\n AllValueChanges: EventEmitter<{}>;\r\n public CompDef: FormComponentDefinition;\r\n public FormGroup: FormGroup;\r\n public HasLayoutDefinition: boolean = false;\r\n public IsSubmitting: boolean;\r\n public HasAttemptedSubmit: boolean;\r\n \r\n private _lastValidationRequestTimestamp: number;\r\n private _validateEvent: EventEmitter;\r\n private _submitEvent: EventEmitter;\r\n public SubmitComplete: EventEmitter;\r\n public CustomSubmit: (resp: FormMessage) => void;\r\n\r\n public ValidValueChanged: EventEmitter;\r\n public SubmitButtons: SubmissionDefinition[];\r\n UploadTotal: number;\r\n UploadCurrent: number;\r\n Uploading: boolean;\r\n public FollowupComponent: ComponentDefinition;\r\n public ShowBackButtonOnFollowupComponent: boolean;\r\n AppendFollowupComponentToForm: boolean;\r\n \r\n @ViewChild('tableLayout', {read: TableLayoutComponent, static: false})\r\n public tableLayout: TableLayoutComponent;\r\n\r\n _initialValidation: boolean;\r\n\r\n public ShowSubForms: boolean;\r\n public LastAppliedValidations: { ValidationWrapper: ValidationWrapper; ValidatedData: any; StructuredValidatedData: any; };\r\n private _temporarilyDisableValidation: boolean;\r\n\r\n constructor(private _http: HttpClient,\r\n private _formBuilder: FormBuilder,\r\n private _linkService: LinkService, \r\n private _navigationService: NavigationService, \r\n private _elementRef: ElementRef,\r\n private _layoutService: LayoutService,\r\n private _fieldService: FieldService,\r\n private _modalService: ModalService,\r\n private _toastService: ToastService,\r\n @Optional() data: ComponentDefinition,\r\n @Optional() private assessmentService: AssessmentService,\r\n @Optional() private searchService: SearchService, //This is not used any more?\r\n @Optional() private newSearchService: NewSearchService,\r\n @Optional() @Host() private newValidationProvider: ValidationProvider, //This is not used?\r\n @Optional() formConnectionService: FormConnectionService,\r\n @Optional() private formIntegrationService: FormIntegrationService) { //Used in file uploads and confirms only?\r\n this._validateEvent = new EventEmitter();\r\n this._submitEvent = new EventEmitter();\r\n this.SubmitComplete = new EventEmitter();\r\n this.ValidValueChanged = new EventEmitter();\r\n this.AllValueChanges = new EventEmitter();\r\n \r\n if (formIntegrationService)\r\n formIntegrationService.RegisterForm(this);\r\n\r\n this.SubmitComplete.subscribe(r => {\r\n console.log(r);\r\n console.log(\"Submit complete triggered on event...\");\r\n });\r\n\r\n this.ValidValueChanged.subscribe(c => {\r\n $(_elementRef.nativeElement).trigger('valid-value-changed', c);\r\n });\r\n\r\n this.AllValueChanges.subscribe(c => {\r\n $(_elementRef.nativeElement).trigger('all-value-changes', c);\r\n });\r\n\r\n if (data) {\r\n this.InitializeComponentDefinition = data;\r\n }\r\n\r\n //This is to prevent searches from interacting with formConnections.\r\n //Multisection Confirms have a Form (for the multisection) \r\n // & sometimes a detail component that's a search (modify showonlydiffs)\r\n if (!this.newSearchService && formConnectionService)\r\n formConnectionService.SetForm(this);\r\n \r\n if (this.newValidationProvider)\r\n newValidationProvider.SetReceiver(this);\r\n\r\n this._initialValidation = true;\r\n this._validateEvent\r\n .pipe(debounceTime(500),\r\n switchMap(() => {\r\n if (this.CompDef.DisableInitialValidation && this._initialValidation)\r\n {\r\n this._initialValidation = false;\r\n return of(null)\r\n }\r\n if (this.newValidationProvider && this.newValidationProvider.SkipClientSideValidations) {\r\n this.newValidationProvider.NotifyValidation();\r\n this.AllValueChanges.emit(this.GetStructuredData(this.FormGroup.value));\r\n this.UpdateShowSubforms(this.GetStructuredData(this.FormGroup.value));\r\n return of(null);\r\n }\r\n console.log(\"Validation event start\");\r\n $(this._elementRef.nativeElement).trigger('value-changed');\r\n if (this.CompDef.Form.Attributes[\"NavigationWarning\"])\r\n this.SetDirty();\r\n return this.RunValidations(this.FormGroup);\r\n }))\r\n .subscribe((result) => {\r\n if (result == null)\r\n return;\r\n console.log(\"Validation event end and populate\");\r\n if (!this.formIntegrationService)\r\n this.ApplyValidations(result);\r\n this.AllValueChanges.emit(result.ValidatedData);\r\n if (!result.ValidationWrapper.HasErrors)\r\n this.ValidValueChanged.emit(result.StructuredValidatedData);\r\n if (searchService)\r\n searchService.Search(result.StructuredValidatedData);\r\n if (newSearchService)\r\n newSearchService.Search(result.StructuredValidatedData);\r\n }, (error: any) => {\r\n console.error(error);\r\n });\r\n\r\n this._submitEvent\r\n .pipe(switchMap(() => {\r\n console.log(\"Submit event start\");\r\n return this.RunValidations(this.FormGroup);\r\n }))\r\n .subscribe((result) => {\r\n console.log(\"Submit event end and populate\");\r\n if (result.ValidationWrapper.HasErrors) {\r\n this.ApplyValidations(result);\r\n this.IsSubmitting = false;\r\n var formMsg = new FormMessage();\r\n formMsg.Success = false;\r\n this.SubmitComplete.next(formMsg);\r\n\r\n }\r\n else {\r\n this.Submit(result);\r\n }\r\n }, (error: any) => {\r\n console.error(error);\r\n });\r\n }\r\n \r\n ngOnDestroy(): void {\r\n if (this.formIntegrationService)\r\n this.formIntegrationService.ServiceDestroyed();\r\n }\r\n\r\n public GetValidFormData(successCallBack: (data: any) => void, errorCallBack: ()=> void) {\r\n $(this._elementRef.nativeElement).trigger('value-changed');\r\n this.HasAttemptedSubmit = true;\r\n if (this.CompDef.Form.Attributes[\"NavigationWarning\"])\r\n this.SetDirty();\r\n this.RunValidations(this.FormGroup).subscribe(result => {\r\n this.ApplyValidations(result);\r\n if (result.ValidationWrapper.HasErrors) {\r\n this.IsSubmitting = false;\r\n errorCallBack();\r\n }\r\n else {\r\n successCallBack(result.StructuredValidatedData);\r\n }\r\n });\r\n }\r\n\r\n public GetValidationContext(successCallBack: (data: ValidationContext) => void) {\r\n $(this._elementRef.nativeElement).trigger('value-changed');\r\n this.HasAttemptedSubmit = true;\r\n if (this.CompDef.Form.Attributes[\"NavigationWarning\"])\r\n this.SetDirty();\r\n this.RunValidations(this.FormGroup).subscribe(result => {\r\n this.ApplyValidations(result);\r\n successCallBack(result);\r\n });\r\n }\r\n\r\n @Input('definition')\r\n public set InitializeComponentDefinition(data: ComponentDefinition) {\r\n if (!data || data.Type != 'FormComponent')\r\n return;\r\n this.CompDef = data;\r\n \r\n this.InitializeFormGroup();\r\n var isMobile = (this._navigationService.Page != null && this._navigationService.Page.Layout === 'Mobile');\r\n this.HasLayoutDefinition = this.CompDef.Form.FormLayoutDefinition.LayoutData != null && !isMobile;\r\n\r\n if (this.HasLayoutDefinition) {\r\n let layoutDef = this.CompDef.Form.FormLayoutDefinition.LayoutData;\r\n this._layoutService.AddLayoutDefinition(layoutDef, this, this.CompDef.Form.FieldDefinitions, this.FormGroup, null);\r\n }\r\n else {\r\n this._layoutService.Layouts.push(null);\r\n }\r\n\r\n for(let subform of this.CompDef.Form.SubForms) {\r\n let subformLayout = subform.FormLayoutDefinition.LayoutData;\r\n this._layoutService.AddLayoutDefinition(subformLayout, this, subform.FieldDefinitions, this.FormGroup, subform.FieldDefinitions[0].Name.split('.')[0]);\r\n }\r\n\r\n this._layoutService.OnChange.next();\r\n\r\n // Don't want to trigger search until keywords have been entered\r\n if (this.CompDef.DisableInitialValidation) {\r\n\r\n }\r\n \r\n else if (!this.searchService)\r\n this.RunValidations(this.FormGroup).subscribe();\r\n else \r\n this.searchService.SetInitialValues(this.GetStructuredData(this.FormGroup.value));\r\n\r\n if (this.newSearchService)\r\n this.newSearchService.SetInitialValues(this.GetStructuredData(this.FormGroup.value));\r\n\r\n if (this.formIntegrationService)\r\n this.formIntegrationService.FromFormInitialValues(this.GetStructuredData(this.FormGroup.value));\r\n\r\n window.setTimeout(() => {\r\n $(this._elementRef.nativeElement).trigger('all-value-changes', this.GetStructuredData(this.FormGroup.value)); \r\n });\r\n\r\n this.UpdateShowSubforms(this.GetStructuredData(this.FormGroup.value));\r\n\r\n if (this.assessmentService)\r\n this.assessmentService.RegisterForm(this);\r\n\r\n this.SubmitButtons = this.CompDef.Form.SubmissionDefinitions;\r\n }\r\n\r\n public SetDirty() {\r\n this._navigationService.SetWarning('There are unsaved changes.');\r\n }\r\n\r\n public ClearDirty() {\r\n this._navigationService.ClearWarning();\r\n }\r\n\r\n //Detail Methods - Add/Delete Detail\r\n public AddDetail() {\r\n let newSubform = JSON.parse(JSON.stringify(this.CompDef.Form.SubForms[0]));\r\n let index = this.CompDef.Form.SubForms.length;\r\n \r\n newSubform.FieldDefinitions.forEach(fieldDef => {\r\n fieldDef.Name = fieldDef.Name.replace('0', index.toString());\r\n\r\n if (fieldDef.Name.endsWith(\".ID\")) {\r\n fieldDef.Value = '0';\r\n }\r\n\r\n //This case is way easier to understand than the negative of it.\r\n else if (fieldDef.Name.endsWith(\"ID\") && fieldDef.ControlType === 'Hidden') {\r\n }\r\n else if (fieldDef.Name.endsWith(\"ID\") && fieldDef.ControlType === 'Dropdown') {\r\n fieldDef.Value = '0'; //HACK: Dropdowns need to have their value defautled to 0 to allow for non-nullable FKs\r\n }\r\n else {\r\n fieldDef.Value = null;\r\n }\r\n\r\n if (fieldDef.Attributes)\r\n fieldDef.Attributes.ValueDescription = null;\r\n });\r\n\r\n this.AddDetailInternal(newSubform, index);\r\n }\r\n\r\n private AddDetailInternal(newSubform: any, index: number) {\r\n\r\n\r\n newSubform.FieldDefinitions.forEach(field => {\r\n let control = this._formBuilder.control(field.Value);\r\n this.FormGroup.addControl(field.Name, control);\r\n this._fieldService.Fields.push({ Control: control, Definition: field, Form: this.FormGroup, FormComponent: this });\r\n });\r\n\r\n let subformLayout = newSubform.FormLayoutDefinition.LayoutData;\r\n let sublayout = new LayoutInstance();\r\n sublayout.LayoutDefinition = subformLayout;\r\n sublayout.fields = newSubform.FieldDefinitions.filter(r => r.ControlType != 'Hidden');\r\n sublayout.FormGroup = this.FormGroup;\r\n sublayout.prefix = newSubform.FieldDefinitions[0].Name.split('.')[0];\r\n var formNameField = this.FindFieldDefinition(\"FormName\");\r\n if (formNameField)\r\n sublayout.objectName = formNameField.Value;\r\n this._layoutService.Layouts.push(sublayout);\r\n\r\n this.CompDef.Form.SubForms.push(newSubform);\r\n }\r\n\r\n public DeleteDetail(form: Form, index: number) {\r\n form.FieldDefinitions.forEach(c => {\r\n this._fieldService.Fields.splice(this._fieldService.Fields.findIndex(y => y.Definition.Name == c.Name), 1);\r\n this.FormGroup.removeControl(c.Name);\r\n });\r\n\r\n \r\n\r\n this._layoutService.Layouts.splice(index, 1);\r\n this.CompDef.Form.SubForms.splice(index-1, 1);\r\n }\r\n\r\n //Validation Pipeline\r\n private RunValidations(formGroup: FormGroup) : Observable {\r\n console.log(\"Run Validations\");\r\n\r\n let data = formGroup.value;\r\n \r\n let validationWrapper = new ValidationWrapper(this.RunClientSideValidations(formGroup));\r\n\r\n let validationContext: ValidationContext = new ValidationContext();\r\n validationContext.ValidationWrapper = validationWrapper;\r\n validationContext.ValidatedData = data;\r\n validationContext.StructuredValidatedData = this.GetStructuredData(data);\r\n\r\n let formValidationPromise = this.GetFormValidator(validationContext)(data);\r\n let fieldValidationPromises = this.GetFieldValidations(formGroup);\r\n let combined: Observable;\r\n\r\n if (!fieldValidationPromises.length)\r\n combined = of(validationContext);\r\n \r\n else\r\n combined = forkJoin(fieldValidationPromises)\r\n .pipe(map(r => {\r\n r.filter(m => !!m).forEach(m => validationContext.ValidationWrapper.AddMessage(m));\r\n return validationContext;\r\n }));\r\n \r\n return forkJoin([formValidationPromise, combined])\r\n .pipe(map((results) => {\r\n return results[0];\r\n }));\r\n }\r\n\r\n private GetFieldValidations(formGroup: FormGroup) {\r\n let validationObservables = new Array>();\r\n\r\n let runValidators = (control: AbstractControl, field: FieldDefinition) => {\r\n if (field.ValidatorDefinitions && field.ValidatorDefinitions.length) {\r\n field.ValidatorDefinitions.forEach(validatorDef => {\r\n if (validatorDef.Url) {\r\n validationObservables.push(this\r\n ._http\r\n .get(`${validatorDef.Url}?fieldname=${field.Name}&value=${control.value}`)\r\n .pipe(map((a: ValidationMessage) => { return a })));\r\n }\r\n });\r\n }\r\n };\r\n\r\n this.CompDef.Form.FieldDefinitions.forEach(field => {\r\n runValidators(formGroup.controls[field.Name], field);\r\n });\r\n\r\n this.CompDef.Form.SubForms.forEach(subform => {\r\n subform.FieldDefinitions.forEach(field => {\r\n runValidators(formGroup.controls[field.Name], field);\r\n });\r\n });\r\n\r\n return validationObservables;\r\n }\r\n\r\n private RunClientSideValidations(formGroup: FormGroup) {\r\n console.log(\"Run client side validations\");\r\n let formMessage = new FormMessage();\r\n formMessage.Validations = new ValidationMessages();\r\n formMessage.Validations.Messages = new Array();\r\n\r\n let runValidators = (group: FormGroup, field: FieldDefinition) => {\r\n if (field.ValidatorDefinitions && field.ValidatorDefinitions.length) {\r\n let value = group.controls[field.Name].value;\r\n field.ValidatorDefinitions.forEach(validatorDef => {\r\n var type = typeof value;\r\n if (validatorDef.Name == \"Required\" && ((type == \"string\" && (!value || !value.length)) || (type == 'object' && value == null) || (type == 'number' && value == null))) {\r\n let message = new ValidationMessage();\r\n message.ColumnName = field.Name;\r\n message.Severity = Severity.Error;\r\n message.Class = ValidationClass.Required;\r\n message.Description = \"This field is required\";\r\n formMessage.Validations.Messages.push(message);\r\n }\r\n if (validatorDef.Name == \"DisallowedValues\") {\r\n let nameList = group.controls[(validatorDef).NameListProperty].value.split(',');\r\n if (nameList.indexOf(value) != -1 && value != field.Value) {\r\n let message = new ValidationMessage();\r\n message.ColumnName = field.Name;\r\n message.Severity = Severity.Error;\r\n message.Class = ValidationClass.None;\r\n message.Description = `This Name is already in use`;\r\n formMessage.Validations.Messages.push(message);\r\n }\r\n }\r\n });\r\n }\r\n };\r\n\r\n this.CompDef.Form.FieldDefinitions.forEach(field => {\r\n runValidators(formGroup, field);\r\n });\r\n\r\n this.CompDef.Form.SubForms.forEach(subform => {\r\n subform.FieldDefinitions.forEach(field => {\r\n runValidators(formGroup, field);\r\n });\r\n });\r\n\r\n return formMessage;\r\n }\r\n\r\n private GetFormValidator(validationContext: ValidationContext) {\r\n if (!this.CompDef.Form.FormDefinition.ValidationDefinitions.length) {\r\n return () => {\r\n let message = new FormMessage();\r\n message.Success = true;\r\n // TODO: Build object beforehand. pass into formValidator and combined observable\r\n let subject = of(validationContext);\r\n return subject;\r\n };\r\n }\r\n\r\n this._lastValidationRequestTimestamp = Date.now();\r\n let validationUrl = this.CompDef.Form.FormDefinition.ValidationDefinitions[0].Url + \"?\" + this._lastValidationRequestTimestamp;\r\n \r\n return (data) => {\r\n let structuredData = this.GetStructuredData(data);\r\n\r\n return this\r\n ._http\r\n .post(validationUrl, { \r\n Data: structuredData,\r\n })\r\n .pipe(map((response: FormMessage) => {\r\n var formMessage = response;\r\n validationContext.ValidationWrapper.AddValidations(formMessage);\r\n return validationContext;\r\n }));\r\n };\r\n }\r\n\r\n public FindFieldDefinition(name: string): FieldDefinition {\r\n let allFields = new Array(...this.CompDef.Form.FieldDefinitions);\r\n this.CompDef.Form.SubForms.forEach(s => allFields = allFields.concat(s.FieldDefinitions));\r\n return allFields.find(c => c.Name == name);\r\n }\r\n\r\n public ApplyValidations(validationContext: { ValidationWrapper: ValidationWrapper, ValidatedData: any, StructuredValidatedData: any}) {\r\n this.LastAppliedValidations = validationContext;\r\n \r\n if (validationContext.ValidationWrapper.ChangedFields) {\r\n for(var change of validationContext.ValidationWrapper.ChangedFields) {\r\n if (this.FindFieldDefinition(change.Name).ControlType !== 'FileUpload')\r\n this.FormGroup.controls[change.Name].setValue(change.Value, {onlySelf: true});\r\n validationContext.ValidatedData[change.Name] = change.Value;\r\n }\r\n }\r\n\r\n if (validationContext.ValidationWrapper.DetailDiffs && validationContext.ValidationWrapper.DetailDiffs.length) {\r\n this._temporarilyDisableValidation = true;\r\n for(var i = this.CompDef.Form.SubForms.length-1; i >= 0; i--) {\r\n var element = this.CompDef.Form.SubForms[i];\r\n var index = this.CompDef.Form.SubForms.indexOf(element);\r\n this.DeleteDetail(element, index+1);\r\n }\r\n \r\n validationContext.ValidationWrapper.DetailDiffs.forEach((detail, index) => {\r\n this.AddDetailInternal(detail, index);\r\n });\r\n this._temporarilyDisableValidation = false;\r\n }\r\n \r\n this.UpdateShowSubforms(validationContext.ValidatedData);\r\n\r\n let formLevelValidations = [];\r\n let fieldValidations: {[key: string]: Array} = {};\r\n\r\n for(let message of validationContext.ValidationWrapper.AllErrors) {\r\n if (!this.HasAttemptedSubmit && message.Class === ValidationClass.Required) {\r\n continue;\r\n }\r\n\r\n let formField = this.FindFieldDefinition(message.ColumnName);\r\n if (formField) {\r\n if (formField.ControlType != \"Hidden\" && \r\n !TableLayoutComponent.IsDynamicHidden(formField, validationContext.StructuredValidatedData) &&\r\n (this.tableLayout == null || this.tableLayout.GetFields().filter(r => r.Name == formField.Name).length > 0)) //Has to exist in layout\r\n {\r\n if (!fieldValidations[message.ColumnName])\r\n fieldValidations[message.ColumnName] = [];\r\n\r\n fieldValidations[message.ColumnName].push(message);\r\n }\r\n else \r\n formLevelValidations.push(message);\r\n }\r\n else {\r\n formLevelValidations.push(message);\r\n }\r\n }\r\n\r\n for (let control in this.FormGroup.controls) {\r\n this.FormGroup.controls[control].setErrors(fieldValidations[control])\r\n }\r\n\r\n if (formLevelValidations.length)\r\n this.FormGroup.setErrors(formLevelValidations);\r\n\r\n if (this.formIntegrationService)\r\n this.formIntegrationService.FromFormValidationsApplied(validationContext);\r\n }\r\n\r\n UpdateShowSubforms(data: any) {\r\n if (this.CompDef.Form.Attributes[\"DynamicDetails\"]) {\r\n var expr = this.CompDef.Form.Attributes[\"DynamicDetails\"];\r\n this.ShowSubForms = TableLayoutComponent.IsTrue(jsep(expr), data);\r\n }\r\n else\r\n this.ShowSubForms = !!this.CompDef.Form.SubForms.length;\r\n }\r\n\r\n public BackFromFollowup() {\r\n this.FollowupComponent = null;\r\n this.IsSubmitting = false;\r\n }\r\n\r\n //Submit Pipeline\r\n private Submit(result: { ValidationWrapper: ValidationWrapper, ValidatedData: any, StructuredValidatedData: any}) {\r\n if (result.ValidationWrapper.ChangedFields) {\r\n for(let changedField of result.ValidationWrapper.ChangedFields) {\r\n result.ValidatedData[changedField.Name] = changedField.Value;\r\n if (this.FindFieldDefinition(changedField.Name).ControlType !== 'FileUpload')\r\n this.FormGroup.controls[changedField.Name].setValue(changedField.Value, {onlySelf: true});\r\n\r\n }\r\n result.StructuredValidatedData = this.GetStructuredData(result.ValidatedData);\r\n }\r\n\r\n console.log(\"Submit called\", this);\r\n \r\n return this._http\r\n .post(this.CompDef.Form.SubmissionDefinitions[0].Url, result.StructuredValidatedData)\r\n .subscribe((response: FormMessage) => {\r\n var message = response;\r\n if (!message.Success) {\r\n result.ValidationWrapper.AddValidations(message);\r\n this.IsSubmitting = false;\r\n this.ApplyValidations(result);\r\n return;\r\n }\r\n this.ClearDirty();\r\n if (this.CompDef.Form.SubmissionDefinitions[0].Type == \"Modal\") {\r\n this.SubmitComplete.emit(null);\r\n this._modalService.CloseWithData(message.Data);\r\n return;\r\n }\r\n //Stream Upload File URL\r\n if (message.UploadFileUrl) {\r\n this.Uploading = true;\r\n let dataField = this.CompDef.Form.FieldDefinitions.filter(r => r.Name == \"Data\")[0];\r\n if (!(dataField)._Size) {\r\n this.handleSubmitResponse(message);\r\n return;\r\n }\r\n\r\n let headers = {\r\n 'X-XSRF-TOKEN': this._navigationService.GetXSRFToken()\r\n };\r\n $.ajax({\r\n headers: headers,\r\n url: message.UploadFileUrl + `&size=${(dataField)._Size}`,\r\n data: (dataField)._FormData,\r\n type: 'POST',\r\n contentType: false, // NEEDED, DON'T OMIT THIS (requires jQuery 1.6+)\r\n processData: false, // NEEDED, DON'T OMIT THIS\r\n success: (formMessage) => {\r\n if (formMessage)\r\n this.handleSubmitResponse(formMessage);\r\n else\r\n this.handleSubmitResponse(message);\r\n },\r\n error: () => {\r\n var msg = new ToastMessage(\"Failed to upload document\", \"Error\");\r\n this._toastService.SetMessage(msg);\r\n this.handleSubmitResponse(message);\r\n },\r\n xhr: () => {\r\n var xhr = new XMLHttpRequest();\r\n xhr.upload.addEventListener('progress', (evt) => {\r\n if (evt.lengthComputable) {\r\n this.UploadTotal = evt.total;\r\n this.UploadCurrent = evt.loaded / evt.total * 100;\r\n }\r\n });\r\n return xhr;\r\n }\r\n });\r\n\r\n }\r\n else this.handleSubmitResponse(message);\r\n }, x => {\r\n var msg = new ValidationMessage({ Severity: Severity.Error, Description: 'Error submitting form' });\r\n result.ValidationWrapper.AddMessage(msg);\r\n console.error(x);\r\n this.IsSubmitting = false;\r\n this.ApplyValidations(result);\r\n });\r\n }\r\n\r\n public DisableSubmit: boolean;\r\n\r\n private handleSubmitResponse(message: FormMessage) {\r\n this.SubmitComplete.emit(message);\r\n this.IsSubmitting = false;\r\n if (message.FollowupComponent) {\r\n \r\n this.FollowupComponent = message.FollowupComponent;\r\n this.ShowBackButtonOnFollowupComponent = message.ShowBackButtonOnFollowupComponent;\r\n this.AppendFollowupComponentToForm = message.AppendFollowupComponentToForm;\r\n }\r\n else if (this.CustomSubmit) {\r\n this.CustomSubmit(message);\r\n }\r\n else if (message.Link) {\r\n this._linkService.Go(message.Link, message.ToastMessage);\r\n this._modalService.Close();\r\n }\r\n else {\r\n //Previously this was \"If Modal - close(modal then used 'RefreshBehavior' to determine what to do)\", otherwise refresh\r\n this._navigationService.Go(null, NavigationType.Refresh);\r\n }\r\n }\r\n\r\n public OnSubmit() {\r\n //This is to allow fields the ability to temporarily disable submit... if there are multiple fields manipulating this they might conflict...\r\n if (this.DisableSubmit) {\r\n return;\r\n }\r\n this.IsSubmitting = true;\r\n this.HasAttemptedSubmit = true;\r\n this.FormGroup.setErrors(null);\r\n this._submitEvent.emit();\r\n }\r\n\r\n public AssessmentSubmit() : Observable {\r\n this.HasAttemptedSubmit = true;\r\n this.FormGroup.setErrors(null);\r\n\r\n var x = this.RunValidations(this.FormGroup)\r\n .pipe(map((result) => {\r\n if (result.ValidationWrapper.HasErrors) {\r\n this.ApplyValidations(result);\r\n }\r\n return result;\r\n }));\r\n return x;\r\n }\r\n\r\n\r\n private InitializeFormGroup() {\r\n let formGroupDef: any = {};\r\n //These are cleared because the form-comp might be re-initialized with a different form-def (quick pricing selector)\r\n this._fieldService.Fields = [];\r\n this._layoutService.Layouts = [];\r\n\r\n this.CompDef.Form.FieldDefinitions.forEach(field => {\r\n let control = formGroupDef[field.Name] = this._formBuilder.control(field.Value);\r\n this._fieldService.Fields.push({ Control: control, Definition: field, Form: null, FormComponent: this });\r\n });\r\n\r\n this.CompDef.Form.SubForms.forEach(subform => {\r\n //TODO: This logic doesn't need prefix because fieldname is adjusted in the form\r\n //Field name is NOT adjusted in the layout... stupid.\r\n // let prefix = subform.FieldDefinitions[0].Name.split('.')[0];\r\n subform.FieldDefinitions.forEach(field => {\r\n let control = formGroupDef[field.Name] = this._formBuilder.control(field.Value);\r\n this._fieldService.Fields.push({ Control: control, Definition: field, Form: null, FormComponent: this });\r\n });\r\n });\r\n\r\n this.FormGroup = this._formBuilder.group(formGroupDef);// { 'asyncValidator': (c: AbstractControl) => this.validate(c) }\r\n this._fieldService.Fields.forEach(c => c.Form = this.FormGroup);\r\n \r\n this.CompDef.Form.FieldDefinitions.forEach(c => {\r\n (c)._style = {};\r\n TableLayoutComponent.AttachDynamicHiddenToStyle(c, this, (c)._style);\r\n });\r\n\r\n this.FormGroup\r\n .valueChanges\r\n .subscribe(() => {\r\n this.FollowupComponent = null;\r\n if (!this._temporarilyDisableValidation)\r\n this._validateEvent.emit();\r\n });\r\n }\r\n\r\n private AssignSubFormData(data, name, value) {\r\n if (name.indexOf('.') === -1)\r\n data[name] = value;\r\n else {\r\n var subForm = this.GetSubFormObject(data, name);\r\n\r\n subForm[name.split('.').slice(-1)[0]] = value;\r\n }\r\n }\r\n\r\n private GetSubFormObject(data, fieldName) {\r\n var path = fieldName.split('.');\r\n var currentFormData = data;\r\n while (path.length > 1) {\r\n if (path[0].indexOf('[') !== -1) {\r\n var index = path[0].match(/\\[(.*?)\\]/)[1];\r\n var pathToArray = path[0].substring(0, path[0].indexOf('['));\r\n //If this path was not initialized yet, make it an array\r\n if (Object.keys(currentFormData).indexOf(pathToArray) == -1)\r\n currentFormData[pathToArray] = [];\r\n //if the array is too short, insert nulls until you get to the index\r\n for (var i = currentFormData[pathToArray].length - 1; i < index; i++) {\r\n currentFormData[pathToArray].push(null);\r\n }\r\n //if the element at the index is null, set it up an empty object.\r\n if (currentFormData[pathToArray][index] == null)\r\n currentFormData[pathToArray][index] = {};\r\n currentFormData = currentFormData[pathToArray][index];\r\n path.splice(0, 1);\r\n continue;\r\n }\r\n if (!currentFormData[path[0]])\r\n currentFormData[path[0]] = {};\r\n\r\n currentFormData = currentFormData[path[0]];\r\n path.splice(0, 1);\r\n }\r\n return currentFormData;\r\n }\r\n\r\n private GetStructuredData(data) {\r\n let structuredData = {};\r\n for(var i in data) { \r\n let fieldDef = this.FindFieldDefinition(i);\r\n if (TableLayoutComponent.IsDynamicHidden(fieldDef, data)) {\r\n continue;\r\n }\r\n this.AssignSubFormData(structuredData, i, data[i]);\r\n }\r\n return structuredData;\r\n }\r\n\r\n public GetFormData() {\r\n return this.GetStructuredData(this.FormGroup.value);\r\n }\r\n}\r\n\r\n@Pipe({ name: 'notHiddenField' })\r\nexport class NotHiddenFieldPipe implements PipeTransform {\r\n transform(links : FieldDefinition[]) {\r\n return links.filter(l => { return l.ControlType != 'Hidden'; });\r\n }\r\n}\r\n\r\n@Pipe({ name: 'notnull' })\r\nexport class NotNullPipe implements PipeTransform {\r\n transform(links : any[]) {\r\n return links.filter(l => { return !!l });\r\n }\r\n}\r\n\r\n\r\nexport class FormComponentDefinition extends ComponentDefinition {\r\n public Form: Form;\r\n public DisableInitialValidation: boolean;\r\n public PermanentValidations: ValidationMessages;\r\n}\r\n\r\nexport class Form {\r\n public FieldDefinitionsObject: any;\r\n public Attributes : {[key: string]: any};\r\n public FriendlyDescription: string;\r\n public FieldDefinitions: FieldDefinition[];\r\n public SubmissionDefinitions: SubmissionDefinition[];\r\n public FormDefinition: FormDefinition;\r\n public FormLayoutDefinition: FormLayoutDefinition;\r\n public SubForms: Form[];\r\n public AccessoryLinks: Link[];\r\n}\r\n\r\nexport class FieldDefinition {\r\n public ValidatorDefinitions: ValidatorDefinition[];\r\n public Name: string;\r\n public Label: string;\r\n public Value: any;\r\n public ControlType: string;\r\n public Values: DropdownValue[];\r\n public Attributes: any;\r\n public InitializeWithFile: File;\r\n public Tooltip: TooltipModel;\r\n}\r\n\r\nexport class DropdownValue {\r\n public Value: string;\r\n public Description: string;\r\n public DetailLine: string;\r\n //Only populated for multiselect.\r\n public IsSelected: boolean;\r\n}\r\n\r\nexport class ValidatorDefinition {\r\n public Url: string;\r\n public Name: string;\r\n}\r\n\r\nexport class SubmissionDefinition {\r\n public Url: string;\r\n public Type: string;\r\n public SubmitText: string;\r\n}\r\n\r\nexport class ValidationContext {\r\n public ValidationWrapper : ValidationWrapper;\r\n public ValidatedData: any;\r\n public StructuredValidatedData: {};\r\n}\r\n\r\nexport class FormDefinition {\r\n public ValidationDefinitions: ValidatorDefinition[];\r\n}\r\n\r\nexport class FormLayoutDefinition {\r\n public Layout: string;\r\n public LayoutData: any;\r\n}\r\n\r\nexport class FormMessage {\r\n public Data: any;\r\n public Success: boolean;\r\n public ToastMessage: ToastMessage;\r\n public ChangedFields: ChangedField[];\r\n public Validations: ValidationMessages;\r\n public Link: Link;\r\n public VerificationRequired: boolean;\r\n public UploadFileUrl: string;\r\n public FollowupComponent: FormComponentDefinition;\r\n public ShowBackButtonOnFollowupComponent: boolean;\r\n public AppendFollowupComponentToForm: boolean;\r\n public DetailDiffs: Form[];\r\n}\r\n\r\nexport class ValidationMessages {\r\n public Messages: ValidationMessage[];\r\n public HasErrors: boolean;\r\n}\r\n\r\nexport class ValidationMessage {\r\n constructor(config?: Partial) {\r\n if (config)\r\n Object.assign(this, config);\r\n }\r\n\r\n public Severity: Severity;\r\n public Description: string;\r\n public ColumnName: string; //TODO: Rename to Field\r\n public Class: ValidationClass;\r\n public TableName: string;\r\n public RecordID: number;\r\n}\r\n\r\nexport class ChangedField {\r\n public Name: string;\r\n public Value: string;\r\n}\r\n\r\nexport enum Severity {\r\n None,\r\n Info,\r\n Warning,\r\n Error,\r\n Fatal,\r\n}\r\n\r\nexport enum ValidationClass {\r\n None,\r\n Required,\r\n}\r\n\r\nexport class ValidationWrapper {\r\n private _messages: ValidationMessage[] = new Array();\r\n public ChangedFields: ChangedField[] = new Array();\r\n public DetailDiffs: Form[] = new Array
();\r\n\r\n constructor(initialMessages: FormMessage) {\r\n this.AddValidations(initialMessages);\r\n }\r\n\r\n public AddValidations(messages: FormMessage) {\r\n if (messages) {\r\n if (messages.Validations)\r\n this._messages = this._messages.concat(messages.Validations.Messages);\r\n if (messages.ChangedFields)\r\n this.ChangedFields = this.ChangedFields.concat(messages.ChangedFields);\r\n if (messages.DetailDiffs)\r\n this.DetailDiffs = this.DetailDiffs.concat(messages.DetailDiffs)\r\n }\r\n }\r\n\r\n public AddMessage(message: ValidationMessage) {\r\n this._messages.push(message);\r\n }\r\n\r\n public get HasErrors() {\r\n return this.AllErrors.findIndex(c => c.Severity == Severity.Error || c.Severity == Severity.Fatal) !== -1;\r\n }\r\n\r\n public get ErrorsOnly() {\r\n return this.AllErrors.filter(c => c.Severity == Severity.Error || c.Severity == Severity.Fatal);\r\n }\r\n\r\n public get AllErrors() : ValidationMessage[] {\r\n return this._messages;\r\n }\r\n}\r\n\r\n\r\n@Pipe({ name: 'errors' })\r\nexport class ErrorsPipe implements PipeTransform {\r\n transform(messages : ValidationErrors, errors: boolean = true) {\r\n if (!messages || !messages.length)\r\n return messages;\r\n if (errors)\r\n return messages.filter(l => { return l.Severity > 2; });\r\n return messages.filter(l => { return l.Severity <= 2; });\r\n }\r\n}\r\n\r\n","
\r\n
notifications
\r\n
\r\n
\r\n
\r\n \r\n
\r\n","import { Component, Input, AfterViewInit, ElementRef, EventEmitter, ViewChild } from '@angular/core';\r\nimport { ComponentDefinition, ComponentContext, EntityChange, EntityChangeType } from '../component/component.models';\r\nimport { AsyncComponent } from '../async/async.component';\r\nimport { InfiniteScrollService } from '../../services/InfiniteScrollService';\r\nimport { ConnectionMessagingService } from '../../services/ConnectionMessagingService';\r\nimport { ComponentWrapperComponent } from '../component/component.directive';\r\nimport { ComponentListModel } from '../component-list/component-list.models';\r\nimport { NavigationService } from '../../services/NavigationService';\r\nimport { Page, Aspect } from '../page/page.models';\r\nimport { Link } from '../actions/actions.models';\r\nimport { CardListComponent } from '../card-list/card-list.component';\r\nimport { CardListModel } from '../card-list/card-list.models';\r\n\r\n@Component({\r\n selector: 'global-notification',\r\n templateUrl: './global-notification.component.html',\r\n styleUrls: ['./global-notification.component.less'],\r\n providers: [InfiniteScrollService]\r\n})\r\nexport class GlobalNotificationPanel implements AfterViewInit\r\n{\r\n public ShowPanel: boolean;\r\n public LRTComponentDefinition: ComponentDefinition;\r\n private _timeout: any;\r\n public comp : ComponentWrapperComponent;\r\n public ShowBadge: boolean;\r\n private _lastCount: number = null;\r\n Actions: Array;\r\n constructor(private _elementRef: ElementRef, \r\n private infiniteScrollService: InfiniteScrollService,\r\n private connectionMessagingService : ConnectionMessagingService,\r\n private navigationService: NavigationService) {\r\n\r\n let compDef = new ComponentDefinition();\r\n compDef.Type = \"AsyncComponent\";\r\n compDef.ComponentContext = new ComponentContext();\r\n compDef.ComponentContext.Parameters = {};\r\n compDef.ComponentContext.EntityContexts = [];\r\n compDef.ComponentContext.EntityContexts.push(new EntityChange({ CustomName: \"GlobalNotification\", EntityKey: null, ChangeType: EntityChangeType.Custom, CustomChangeParameters: null, DetailTable: null }))\r\n compDef.ComponentContext.Name = \"GlobalNotificationComponentBuilder\";\r\n\r\n this.LRTComponentDefinition = compDef;\r\n infiniteScrollService.ScrollElement = $('.ui-global-notification-panel', _elementRef.nativeElement);\r\n\r\n let pollingMethod = () => {\r\n if (!this.ShowPanel)\r\n connectionMessagingService.RequestUpdatedComponent(compDef.ComponentContext);\r\n setTimeout(pollingMethod, 60000);\r\n };\r\n this._timeout = setTimeout(pollingMethod, 60000);\r\n\r\n $(this._elementRef.nativeElement).on('component-update', ($event, data) => {\r\n this.LRTComponentDefinition = data; \r\n this.UpdateBadgeStatus();\r\n });\r\n\r\n var listener = {\r\n onLoadHandler: (page: Page, isAspect: boolean, aspect: Aspect, isRequestingFollowupAspect: boolean) => {\r\n this.Actions = new Array();\r\n this.Actions = [page.NotificationPanelLink];\r\n },\r\n onLoadingHandler: (page: Page) => {}\r\n };\r\n navigationService.RegisterListener(listener);\r\n }\r\n\r\n private UpdateBadgeStatus() {\r\n if (this.LRTComponentDefinition.Type == \"CardListComponent\") {\r\n let cardList = this.LRTComponentDefinition;\r\n if (cardList.Rows.length)\r\n this.ShowBadge = true;\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.comp)\r\n console.log(this.comp);\r\n\r\n $('body').on('click', ($evt) => {\r\n //Checkboxes change out the target before it gets here\r\n //might be checkboxes triggering this so have to ignore\r\n if (!$($evt.target).parent().length)\r\n return;\r\n if (!$($evt.target).closest('global-notification').length) {\r\n this.connectionMessagingService.enableRefresh(\"GlobalNotificationComponentBuilder\");\r\n this.ShowPanel = false; \r\n this.UpdateBadgeStatus();\r\n }\r\n });\r\n\r\n $(this._elementRef.nativeElement).on('progress-complete', () => {\r\n this.ShowBadge = true;\r\n });\r\n }\r\n\r\n Click() {\r\n this.ShowBadge = false;\r\n this.ShowPanel = true;\r\n // this.connectionMessagingService.disableRefresh(\"GlobalNotificationComponentBuilder\");\r\n }\r\n\r\n}\r\n","import { Component, Input, AfterViewInit, ElementRef, EventEmitter } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NavigationService } from '../../services/NavigationService'\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\nimport * as $ from 'jquery';\r\nimport { AddressCoordinates, MapMarker, MapBoundary } from \"./google-map.models\";\r\nimport { MapComponentOptions, MapComponentLegend } from '../map/map.models';\r\nimport * as MarkerClusterer from \"@google/markerclusterer\"\r\ndeclare var google: any;\r\n\r\nconst RED_DOT: string = \"RED_DOT\";\r\n\r\n@Component({\r\n selector: 'google-map',\r\n templateUrl: './google-map.component.html',\r\n styleUrls: ['./google-map.component.less']\r\n})\r\nexport class GoogleMapComponent {\r\n public Map: any;\r\n public CurrentMarker: any;\r\n\r\n public DragStart: EventEmitter;\r\n public DragEnd: EventEmitter;\r\n public Idle: EventEmitter;\r\n public ZoomChanged: EventEmitter;\r\n public MapMoved: EventEmitter;\r\n\r\n private _markers: any[] = [];\r\n private _dragStarted: boolean = false;\r\n private _dragEnded: boolean = false;\r\n private _idled: boolean = false;\r\n\r\n private hslBaseColor: number = 240;\r\n\r\n constructor(private _elementRef: ElementRef) {\r\n this.DragStart = new EventEmitter();\r\n this.DragEnd = new EventEmitter();\r\n this.Idle = new EventEmitter();\r\n this.ZoomChanged = new EventEmitter();\r\n this.MapMoved = new EventEmitter();\r\n }\r\n\r\n public InitializeMap(center: AddressCoordinates, zoom: number = 12, maxZoom: number = 16, options: MapComponentOptions) {\r\n this.Map = new google.maps.Map(this._elementRef.nativeElement, {\r\n mapTypeId: google.maps.MapTypeId.ROADMAP,\r\n zoom: zoom,\r\n maxZoom: maxZoom,\r\n mapTypeControl: options != null ? options.MapTypeControl : true,\r\n zoomControl : options != null ? options.ZoomControl : true,\r\n streetViewControl : options != null ? options.StreetViewControl : true,\r\n rotateControl : options != null ? options.RotateControl : true,\r\n scaleControl : options != null ? options.ScaleControl : true,\r\n fullscreenControl : options != null ? options.FullscreenControl : true,\r\n center: center == null ? null : new google.maps.LatLng(center.Latitude, center.Longitude) \r\n });\r\n\r\n this.Map.addListener('dragstart', () => { \r\n console.log(\"Drag started\");\r\n this._dragStarted = true;\r\n this._dragEnded = false;\r\n this._idled = false;\r\n this.DragStart.emit(); \r\n });\r\n\r\n this.Map.addListener('dragend', () => { \r\n console.log(\"Drag ended\");\r\n this._dragEnded = true;\r\n if (this._idled) {\r\n this.MapMovedEmit();\r\n }\r\n this.DragEnd.emit();\r\n });\r\n\r\n this.Map.addListener('idle', () => { \r\n console.log(\"Idled\");\r\n this._idled = true;\r\n if (this._dragEnded) {\r\n this.MapMovedEmit();\r\n }\r\n this.Idle.emit(); \r\n });\r\n\r\n this.Map.addListener('zoom_changed', () => { \r\n console.log(\"Zoom changed\");\r\n this.MapMovedEmit();\r\n this.ZoomChanged.emit();\r\n });\r\n }\r\n\r\n private MapMovedEmit() {\r\n console.log(\"MapMove Emitted\");\r\n this.MapMoved.emit();\r\n }\r\n\r\n public CreateMarkers(data: MapMarker[]) : Array {\r\n return data.map(m => this.CreateMarker(m));\r\n }\r\n\r\n public CreateMarkerClusters(data: MapMarker[]){\r\n var markers = this.CreateMarkers(data);\r\n var markerCluster = new MarkerClusterer(this.Map, markers,{imagePath: '/Images/MarkerClusters/m'});\r\n }\r\n\r\n public CreateMarker(marker: MapMarker) : any {\r\n if (marker.IconUri == RED_DOT)\r\n marker.IconUri = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAiklEQVR42mNgQIAoIF4NxGegdCCSHAMzEC+NUlH5v9rF5f+ZoCAwHaig8B8oPhOmKC1NU/P//7Q0DByrqgpSGAtSdOCAry9WRXt9fECK9oIUPXwYFYVV0e2ICJCi20SbFAuyG5uiECUlkKIQmOPng3y30d0d7Lt1bm4w301jQAOgcNoIDad1yOEEAFm9fSv/VqtJAAAAAElFTkSuQmCC\";\r\n \r\n let googleMarker = new google.maps.Marker({\r\n map: this.Map,\r\n position: this.GetGoogleLatLng(marker.Location),\r\n icon: new google.maps.MarkerImage(marker.IconUri),\r\n });\r\n\r\n if(marker.InfoWindowHtml){\r\n var infowindow = new google.maps.InfoWindow({\r\n content: marker.InfoWindowHtml\r\n });\r\n\r\n var infoWindowTimeout = null;\r\n\r\n googleMarker.addListener('mouseover', function() {\r\n var m = this.map;\r\n infoWindowTimeout = setTimeout(() => {\r\n infowindow.open(m, googleMarker);\r\n }, 300);\r\n });\r\n\r\n googleMarker.addListener('mouseout', function() {\r\n infowindow.close(this.map, googleMarker);\r\n if(infoWindowTimeout)\r\n infoWindowTimeout.clearTimeout();\r\n });\r\n }\r\n\r\n this._markers.push(googleMarker);\r\n return googleMarker;\r\n }\r\n\r\n public BounceMarker(coordinates: AddressCoordinates) {\r\n var marker = new google.maps.Marker({\r\n map: this.Map,\r\n position: this.GetGoogleLatLng(coordinates),\r\n icon: new google.maps.MarkerImage(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAiCAYAAACwaJKDAAAABmJLR0QA/wD/AP+gvaeTAAADcUlEQVRIia2UX2xTVRzHP7e3G9dGMtaadnHDBLPGiSNNZHEuIcoiaGIiESOJTyYqhPCwEGKUkPhAAGPEB4FoMGIMUR/EYMhmfHCKVSSQrWPZKNBCYfwZnVvZeru1o7vt7T08tM267nbtln1fbu453+/n5pvzO1diYT0HbADqAQtgAGHgPHC1THaeNgG9gFDsTuFobhOuFzYLR3ObUOxOAYjc/iazsGTy/hmS9LHz+Xbpqc3v8HhDI0hzbYnhEPf+/JlIv1cgxGFgX+5D86AS8KWs2Havfe8THM1tZetM+C9w7eSnZGYeHgX25MFygWe3pap6v6fjC2qfWV8WCGBzrWaV20Ok7+yLwsioQE8h9Emg8+k3d1Y517dXBMxLqXUiVytEA76XgJNA3JLb26XYXbaGjVsXBcyr/uWtKI46G7ALsmMCsMXV+hqSbF0SVJKt1LW+CrAlD5WBplVuT8mQer2foc4TxIdDJT01jR6AJkC2AlVAtVLrNDXPTIxy+eu9iIxO+N8ztB06hdW2cp4vl68GqvL1Z4esSNrkBCKjA5DRkugzD019hXkLkAJSWnTUvNaatdRvfAvF7mLNG++j2F3mH8/mU0DKSvY+B2KhQU9tU8t8tyTh3taBe1tHiS5ZxUKDAAHAyNfvGu3pxtD1BYOlJDI6oz3dAF0wO1LHNTWSuO89vSTofe+vaGokARyH2RuVAOKTNwdfr2n0oDjqKgbGbl7m+o+fIwzjQ+DvQihArzAM+4OBc632Z1tYUfNEWWB8OIT/q4/IpLRjwIH8ulzk+0PoaXf0ysV1rpZXkBVbSWB6eoqBI3tIJ2K/ANsL9yxFXgFs1yYn/MGfDoMoNb0QOnUETY3cAD6gaMyLoQBJ4N3otV59rO+sKVANXiJyyQuwg+x5zJEZFGAA+Gao8wSGni7qIrj923cAp4FzZuFSUICDmhpJjvV2z1mMhQaYuhMUFBzMYqAR4IfwP2fmLI781wXZ0fEvBQrwbSJ8i0R4CAA9Oc24/wLA9wuFykH7gRvjg+cBiAZ8GOlUktx1XCoU4Hc12AeAGvABeDE58cVCvfG7QQxdz/+J/ioXqATqM/Q0U7evkhwfAbhYQaYiPWhof1sAOvDYckF9K1e7BXCrEnMl9QHGc9XvLic0qienAeLLCR3LPUeWE/p/7nmnEvMjsfFGBfqXo3YAAAAASUVORK5CYII=\"),\r\n });\r\n\r\n this.CurrentMarker = marker;\r\n this.CurrentMarker.setAnimation(google.maps.Animation.BOUNCE);\r\n };\r\n\r\n public UnbounceMarker() {\r\n if (!this.CurrentMarker)\r\n return;\r\n this.CurrentMarker.setMap(null);\r\n this.CurrentMarker = null;\r\n };\r\n\r\n public ClearMarkers(markers: Array) {\r\n markers.map((m) => { m.setMap(null); });\r\n }\r\n\r\n public ClearAllMarkers() {\r\n this._markers.map((m) => { m.setMap(null); });\r\n this._markers = [];\r\n }\r\n\r\n public GetBounds() {\r\n return this.Map.getBounds();\r\n }\r\n\r\n public AddGeoJson(geoJson: any){\r\n this.Map.data.addGeoJson(geoJson);\r\n\r\n this.Map.data.setStyle((feature) => {\r\n var colorPercentage = feature.getProperty('COLOR_PERCENTAGE') || \"0\";\r\n if(colorPercentage == 0){\r\n return /** @type {!google.maps.Data.StyleOptions} */({\r\n strokeColor: \"gray\",\r\n strokeWeight: 0.2,\r\n fillOpacity: 0\r\n });\r\n }\r\n var fillColor = `hsl(${this.hslBaseColor}, ${colorPercentage}%, 50%)`;\r\n return /** @type {!google.maps.Data.StyleOptions} */({\r\n fillColor: fillColor,\r\n strokeColor: \"gray\",\r\n strokeWeight: 0.2,\r\n fillOpacity: .7\r\n });\r\n });\r\n\r\n var infowindow = new google.maps.InfoWindow({\r\n size: new google.maps.Size(150, 50)\r\n });\r\n\r\n \r\n var infoWindowTimeout = null; \r\n this.Map.data.addListener('mousemove', function(event) {\r\n infowindow.close(); \r\n if(infoWindowTimeout){\r\n clearTimeout(infoWindowTimeout);\r\n }\r\n infoWindowTimeout = setTimeout(() => {\r\n var content = event.feature.getProperty('INFO_WINDOW_HTML');\r\n if(!content) return;\r\n infowindow.setContent(content);\r\n infowindow.setPosition(event.latLng);\r\n infowindow.open(this.map);\r\n }, 250);\r\n });\r\n\r\n\r\n this.Map.data.addListener('mouseout', function(){\r\n infowindow.close(); \r\n if(infoWindowTimeout){\r\n clearTimeout(infoWindowTimeout);\r\n }\r\n });\r\n }\r\n\r\n public AddLegend(legend: MapComponentLegend){\r\n var element = document.getElementById('legend');\r\n if(legend.Header){\r\n var header = document.createElement('div');\r\n header.classList.add('legend-header');\r\n header.innerHTML = legend.Header;\r\n element.appendChild(header);\r\n }\r\n legend.Items.forEach((item) => {\r\n var div = document.createElement('div');\r\n div.classList.add('legend-item')\r\n\r\n div.innerHTML = item.Value != \"0%\" ? \r\n `
${item.Key}`: \r\n `
${item.Key}`;\r\n element.appendChild(div);\r\n })\r\n \r\n this.Map.controls[google.maps.ControlPosition.RIGHT_BOTTOM].push(element);\r\n }\r\n\r\n public ZoomToAnyMarker() {\r\n while (true) {\r\n if (this.Map.getZoom() <= 2)\r\n return;\r\n this.Map.setZoom(this.Map.getZoom() - 2);\r\n var bounds = this.Map.getBounds();\r\n for (var i in this._markers) {\r\n if (bounds.contains(this._markers[i].getPosition()))\r\n return;\r\n }\r\n }\r\n };\r\n\r\n public SetBounds(mapBounds: MapBoundary) {\r\n if (mapBounds.ZoomLevel) {\r\n this.Map.setCenter(this.GetGoogleLatLng(mapBounds.Location))\r\n this.Map.setZoom(mapBounds.ZoomLevel);\r\n }\r\n else \r\n {\r\n let bounds = new google.maps.LatLngBounds();\r\n for (var coord in mapBounds.Bounds) {\r\n var latlng = this.GetGoogleLatLng(mapBounds.Bounds[coord]);\r\n bounds.extend(latlng);\r\n }\r\n this.Map.fitBounds(bounds);\r\n }\r\n }\r\n\r\n public FitMarkers(data: MapMarker[]) {\r\n var bounds = new google.maps.LatLngBounds();\r\n if (data && data.length) {\r\n for (var i = 0; i < data.length; i++) {\r\n bounds.extend(this.GetGoogleLatLng(data[i].Location));\r\n }\r\n }\r\n this.Map.fitBounds(bounds);\r\n }\r\n\r\n public GetGoogleLatLng(location: AddressCoordinates) {\r\n return new google.maps.LatLng(location.Latitude, location.Longitude);\r\n }\r\n\r\n public SetUpPlacesAutocomplete(){\r\n var input = document.getElementById('pac-input');\r\n var searchBox = new google.maps.places.SearchBox(input);\r\n this.Map.controls[google.maps.ControlPosition.TOP_LEFT].push(input);\r\n\r\n this.Map.addListener('bounds_changed', function() {\r\n searchBox.setBounds(this.data.map.getBounds());\r\n });\r\n\r\n var markers = [];\r\n var map = this.Map;\r\n searchBox.addListener('places_changed', function() {\r\n var places = searchBox.getPlaces();\r\n\r\n if (places.length == 0) return;\r\n markers.forEach((marker) => marker.setMap(null));\r\n markers = [];\r\n\r\n var bounds = new google.maps.LatLngBounds();\r\n places.forEach((place) => {\r\n if (!place.geometry) return;\r\n var icon = {\r\n url: place.icon,\r\n size: new google.maps.Size(71, 71),\r\n origin: new google.maps.Point(0, 0),\r\n anchor: new google.maps.Point(17, 34),\r\n scaledSize: new google.maps.Size(25, 25)\r\n };\r\n\r\n markers.push(new google.maps.Marker({\r\n map: map,\r\n icon: icon,\r\n title: place.name,\r\n position: place.geometry.location\r\n }));\r\n\r\n if (place.geometry.viewport)\r\n bounds.union(place.geometry.viewport);\r\n else\r\n bounds.extend(place.geometry.location);\r\n });\r\n map.fitBounds(bounds);\r\n map.setZoom(7);\r\n });\r\n }\r\n}\r\n","import { Directive, Component, Input, ComponentFactoryResolver, ViewContainerRef, Type } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport * as columns from './columns/columns.component'\r\n\r\nimport { GridColumn } from \"../grid.models\";\r\nimport { CustomizationService } from \"../../../services/CustomizationService\";\r\n\r\n@Directive({\r\n selector: '[column]',\r\n})\r\nexport class ColumnDirective {\r\n @Input()\r\n set data(data: GridColumn) {\r\n let type = columns[data.Type + \"Component\"];\r\n \r\n if (!type) {\r\n type = this.customizationService.Get(data.Type + \"Component\");\r\n }\r\n\r\n if (!type) {\r\n console.log(\"Cannot find custom column type: \" + data.Type + \"Component\");\r\n type = columns.SimpleGridColumnComponent;\r\n }\r\n\r\n let componentFactory = this.componentFactoryResolver.resolveComponentFactory(type);\r\n\r\n this.viewContainerRef.clear();\r\n\r\n let componentRef = this.viewContainerRef.createComponent(componentFactory);\r\n\r\n (componentRef.instance).SetData(data);\r\n };\r\n\r\n constructor(private componentFactoryResolver: ComponentFactoryResolver, private viewContainerRef: ViewContainerRef, private customizationService: CustomizationService) {}\r\n}\r\n\r\nexport interface GridColumnDirective {\r\n SetData(gridColumn: GridColumn);\r\n}\r\n","
{{data.Value}}
\r\n
{{data.Value}}
\r\n\r\n","
\r\n
{{value == ' ' ? ' ' : value }}
\r\n
\r\n","\r\n","
{{data.Value}}
","\r\n","
\r\n
\r\n
\r\n","","
\r\n
{{data.Label}}
\r\n
{{data.Action.Text}}\r\n \r\n
\r\n
","
\r\n","
\r\n \r\n
\r\n","import { Component, Input, ComponentFactoryResolver, ElementRef, AfterViewInit, HostBinding, OnDestroy } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { GridColumnDirective } from '../column.directive';\r\nimport { GridColumn } from \"../../grid.models\";\r\nimport { Link } from \"../../../actions/actions.models\";\r\nimport { MediaBox } from \"../../../media-box/media-box.models\";\r\nimport { SparklineData } from \"../../../sparkline/sparkline.models\";\r\nimport { PieChartModel } from \"../../../pie-chart/pie-chart.models\";\r\nimport { PieChartComponent } from \"../../../pie-chart/pie-chart.component\";\r\nimport { LinkService } from '../../../../services/LinkService';\r\nimport { ChipDefinition } from '../../../chip/chip.models';\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { ComponentDefinition } from '../../../component/component.models';\r\nimport { TooltipModel } from '../../../tooltip/tooltip.component';\r\n\r\nexport abstract class BaseColumnComponent implements GridColumnDirective, AfterViewInit {\r\n @Input()\r\n public data: TColumn;\r\n\r\n SetData(gridColumn: GridColumn) {\r\n this.data = gridColumn;\r\n }\r\n\r\n constructor(public elementRef: ElementRef) {\r\n }\r\n\r\n @HostBinding('style.width')\r\n get Width() {\r\n if (this.data.IsAutoSized)\r\n return;\r\n if (this.data.WidthInPixels > 0)\r\n return this.data.WidthInPixels + \"px\";\r\n if (this.data.Width == 7)\r\n return \"7.5%\";\r\n return this.data.Width + \"%\";\r\n }\r\n\r\n @HostBinding('style.text-align')\r\n get TextAlign() {\r\n return this.data.TextAlignRight ? 'right' : 'left';\r\n }\r\n \r\n @HostBinding('style.padding-right')\r\n get Padding() {\r\n if (this.data.IsAutoSized)\r\n return '0';\r\n return this.data.TextAlignRight ? '8px' : '0';\r\n }\r\n \r\n @HostBinding('style.font-weight')\r\n get FontWeight() {\r\n return this.data.Bold ? \"bold\" : \"\";\r\n }\r\n\r\n @HostBinding('style.padding-left')\r\n get Tab() {\r\n return this.data.TabIn ? '8px': '';\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n //this.elementRef.nativeElement.setAttribute('width', this.data.width);\r\n }\r\n}\r\n\r\n@Component({\r\n templateUrl: './simple-column.component.html',\r\n host: {'class': 'ui-simple-grid-column' },\r\n styleUrls: ['./simple-column.component.less']\r\n})\r\nexport class SimpleGridColumnComponent extends BaseColumnComponent {\r\n constructor(public elementRef: ElementRef) {\r\n super(elementRef);\r\n }\r\n}\r\n\r\n@Component({\r\n templateUrl: './multiline-grid-column.component.html',\r\n styleUrls: ['./simple-column.component.less'],\r\n})\r\nexport class MultiLineGridColumnComponent extends BaseColumnComponent {\r\n constructor(public elementRef: ElementRef) {\r\n super(elementRef);\r\n }\r\n}\r\n\r\nexport class MultiLineGridColumn extends GridColumn {\r\n public Values: string[];\r\n}\r\n\r\n@Component({\r\n templateUrl: './percentage-grid-column.component.html',\r\n styleUrls: [ './percentage-grid-column.component.less' ] \r\n})\r\nexport class PercentageGridColumnComponent extends BaseColumnComponent {\r\n constructor(public elementRef: ElementRef) {\r\n super(elementRef);\r\n }\r\n}\r\nexport class PercentageGridColumn extends GridColumn {\r\n public Percent: number;\r\n}\r\n\r\n@Component({\r\n templateUrl: './score-grid-column.component.html',\r\n styleUrls: [ './score-grid-column.component.less' ] \r\n})\r\nexport class ScoreGridColumnComponent extends BaseColumnComponent {\r\n constructor(public elementRef: ElementRef) {\r\n super(elementRef);\r\n }\r\n}\r\nexport class ScoreGridColumn extends GridColumn {\r\n public Color: string;\r\n}\r\n\r\n@Component({\r\n templateUrl: './chip-grid-column.component.html',\r\n styleUrls: ['./chip-grid-column.component.less']\r\n})\r\nexport class ChipGridColumnComponent extends BaseColumnComponent {\r\n constructor(public elementRef: ElementRef) {\r\n super(elementRef);\r\n }\r\n}\r\nexport class ChipGridColumn extends GridColumn {\r\n}\r\n\r\n@Component({\r\n templateUrl: './rating-grid-column.component.html',\r\n styleUrls: ['./rating-grid-column.component.less']\r\n})\r\nexport class RatingGridColumnComponent extends BaseColumnComponent {\r\n constructor(public elementRef: ElementRef) {\r\n super(elementRef);\r\n }\r\n}\r\nexport class RatingGridColumn extends GridColumn {\r\n public Rating: number;\r\n}\r\n\r\n@Component({\r\n templateUrl: './pie-chart-grid-column.component.html',\r\n styleUrls: ['./pie-chart-grid-column.component.less']\r\n})\r\nexport class PieChartGridColumnComponent extends BaseColumnComponent {\r\n constructor(public elementRef: ElementRef) {\r\n super(elementRef);\r\n }\r\n}\r\nexport class PieChartGridColumn extends GridColumn {\r\n public PieChart : PieChartComponent;\r\n}\r\n\r\n@Component({\r\n templateUrl: './link-grid-column.component.html',\r\n styleUrls: ['./link-grid-column.component.less']\r\n})\r\nexport class LinkGridColumnComponent extends BaseColumnComponent {\r\n constructor(public elementRef: ElementRef, private _linkService: LinkService) {\r\n super(elementRef);\r\n }\r\n\r\n public LinkClicked() {\r\n this._linkService.Go(this.data.Action);\r\n } \r\n}\r\nexport class LinkGridColumn extends GridColumn {\r\n public Action : Link;\r\n public Label: string;\r\n}\r\n\r\n@Component({\r\n templateUrl: './mediabox-grid-column.component.html',\r\n styles: [':host { padding: 16px 0; }']\r\n})\r\nexport class MediaBoxGridColumnComponent extends BaseColumnComponent {\r\n constructor(public elementRef: ElementRef) { \r\n super(elementRef);\r\n }\r\n}\r\n\r\nexport class MediaBoxGridColumn extends GridColumn {\r\n public MediaBox: MediaBox;\r\n}\r\n\r\n@Component({\r\n templateUrl: './sparkline-grid-column.component.html',\r\n styleUrls: ['./sparkline-grid-column.component.less']\r\n})\r\nexport class SparklineGridColumnComponent extends BaseColumnComponent {\r\n constructor(public elementRef: ElementRef) {\r\n super(elementRef);\r\n }\r\n}\r\nexport class SparklineGridColumn extends GridColumn {\r\n public Sparkline : SparklineData;\r\n}","
\r\n
\r\n
\r\n
\r\n
\r\n
{{data.NoRowsMessage}}
\r\n
\r\n
0 && Groups.length > 0\" class=\"ui-grid-row ui-grid-header\"> \r\n
\r\n
\r\n
{{header}}
\r\n
{{GetSortIndicatorText(index)}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{{group.Key}}
\r\n
\r\n
\r\n
\r\n
\r\n
{{row.Month}} {{row.Day}} {{row.Year}}
\r\n
{{row.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
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, \r\n Input, \r\n OnInit,\r\n AfterViewChecked, \r\n ElementRef, \r\n ViewChild, \r\n ViewChildren, \r\n QueryList, \r\n ChangeDetectorRef, \r\n Optional,\r\n OnDestroy\r\n } from '@angular/core';\r\nimport { LinkService } from \"../../services/LinkService\";\r\nimport * as $ from 'jquery';\r\nimport { ActionsComponent } from \"../actions/actions.component\";\r\nimport { InfiniteScrollService } from \"../../services/InfiniteScrollService\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\nimport { Grid, InfiniteScrollResult, GridRow } from \"../grid/grid.models\";\r\nimport { ConnectionMessagingService } from '../../services/ConnectionMessagingService';\r\nimport { PaginationWrapperService } from '../../services/PaginationWrapperService';\r\n\r\n@Component({\r\n selector: 'grid',\r\n templateUrl: './grid.component.html',\r\n styleUrls: ['./grid.component.less'],\r\n})\r\nexport class GridComponent implements OnInit, AfterViewChecked, OnDestroy {\r\n public _enableDebugger: boolean;\r\n public data: Grid;\r\n @Input()\r\n public Groups: { Key: string, Rows: any[] }[] = [];\r\n public IsQuerying: boolean;\r\n public SortIndex: number = -1;\r\n public SortReverse: boolean;\r\n private _infiniteID: number;\r\n\r\n @ViewChild('headerAction', { read: ElementRef, static: false }) headerAction : ElementRef;\r\n @ViewChildren(ActionsComponent) actions : QueryList;\r\n\r\n constructor(private _linkService: LinkService, \r\n private _connectionMessagingService: ConnectionMessagingService,\r\n compDef: ComponentDefinition,\r\n @Optional() private _paginationService: PaginationWrapperService,\r\n @Optional() private _infiniteScrollService: InfiniteScrollService,\r\n private _http: HttpClient,\r\n private ChangeDetectorRef : ChangeDetectorRef,\r\n private _elementRef: ElementRef) {\r\n this.data = compDef;\r\n if (this._paginationService && !this._paginationService.UpdateRows)\r\n this._paginationService.UpdateRows = () => {\r\n this.SetGroups();\r\n };\r\n if (this.data.InfiniteScrollUrl) {\r\n this._infiniteID = this._infiniteScrollService.RegisterListener(() => {\r\n if (this.IsQuerying || !this.data.InfiniteScrollLastElementID)\r\n return;\r\n\r\n this.IsQuerying = true;\r\n var url = `${this.data.InfiniteScrollUrl}${(this.data.InfiniteScrollUrl.indexOf('?') == -1 ? '?' : '&')}queryKey=${this.data.InfiniteScrollLastElementID}`;\r\n this._http.post(url, null)\r\n .subscribe((c: InfiniteScrollResult) => {\r\n this.IsQuerying = false; \r\n let result = c; \r\n this.data.InfiniteScrollLastElementID = result.QueryKey;\r\n if (result.Results) {\r\n this.data.Rows = this.data.Rows.concat(result.Results);\r\n this.SetGroups();\r\n }\r\n this.ChangeDetectorRef.detectChanges();\r\n });\r\n });\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.SetGroups();\r\n if (this.data.UpdateComponent) {\r\n $(this._elementRef.nativeElement).on('grid-item-click', (event, data) => {\r\n this._http.get(data).subscribe((resp: ComponentDefinition) => {\r\n this._connectionMessagingService.UpdateComponent(resp);\r\n })\r\n })\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.data.InfiniteScrollUrl) {\r\n this._infiniteScrollService.Remove(this._infiniteID);\r\n }\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n let maxWidth = 0;\r\n for(let action of this.actions.toArray())\r\n if (action.Width > maxWidth)\r\n maxWidth = action.Width;\r\n\r\n if (this.headerAction)\r\n $(this.headerAction.nativeElement).width(maxWidth);\r\n\r\n this.actions.forEach(c => c.Width = maxWidth);\r\n }\r\n\r\n public MouseEnter(row: GridRow) {\r\n $(this._elementRef.nativeElement).trigger('grid-item-mouse-enter', row.Model);\r\n }\r\n\r\n public MouseLeave(row: GridRow) {\r\n $(this._elementRef.nativeElement).trigger('grid-item-mouse-leave', row.Model);\r\n }\r\n\r\n public GetHeaderColumnWidth(index: number)\r\n {\r\n var column = this.Groups[0].Rows[0].Columns[index];\r\n if (column.WidthInPixels > 0)\r\n return column.WidthInPixels + \"px\";\r\n return column.Width + \"%\"; \r\n }\r\n\r\n public SortBy(index: number) {\r\n if (this.data.DisableSorting)\r\n return;\r\n\r\n this.SortReverse = (index != this.SortIndex) ? false : !this.SortReverse;\r\n this.SortIndex = index;\r\n this.SetGroups();\r\n this.ChangeDetectorRef.detectChanges();\r\n }\r\n\r\n public GetSortIndicatorText(index: number) {\r\n if (index != this.SortIndex)\r\n return \"\";\r\n if (!this.SortReverse)\r\n return \"keyboard_arrow_downward\";\r\n else\r\n return \"keyboard_arrow_upward\";\r\n }\r\n\r\n private SetGroups() {\r\n this.Groups = [];\r\n //var unadded = this.data.Rows.filter(function (row) { return typeof row.$$hashKey === typeof undefined });\r\n //Unadded is used by infinite scroll - the rows list is just appended to - so passing in elements already in the group.\r\n //when infinite scrolsl are autoupdating -- need to loop through the list instead;\r\n // if (unadded == 0)\r\n // unadded = rows;\r\n // for (var i = 0; i < unadded.length; i++) {\r\n // var row = unadded[i];\r\n // var group = getGroup(row, groups);\r\n // group.rows.push(row);\r\n // }\r\n let sortedRows: GridRow[];\r\n if (this.SortIndex == -1)\r\n sortedRows = this.data.Rows;\r\n else\r\n sortedRows = this.data.Rows.sort((a, b) => \r\n { \r\n return (this.GetSortableValue(a.Columns[this.SortIndex]) > this.GetSortableValue(b.Columns[this.SortIndex])) ? 1 : \r\n (this.GetSortableValue(b.Columns[this.SortIndex]) > this.GetSortableValue(a.Columns[this.SortIndex])) ? -1 : 0;\r\n });\r\n\r\n if (this.SortReverse)\r\n sortedRows = sortedRows.reverse();\r\n\r\n for (var i = 0; i < sortedRows.length; i++) {\r\n var row = sortedRows[i];\r\n var group = this.GetGroup(row);\r\n group.Rows.push(row);\r\n }\r\n\r\n // this.data.Rows = [];\r\n }\r\n\r\n private GetSortableValue(column: any) {\r\n switch(column.Type) {\r\n case \"MediaBoxGridColumn\":\r\n return column.MediaBox.PrimaryText;\r\n case \"PercentageGridColumn\":\r\n return column.Percent;\r\n }\r\n if (column.SortingValue != undefined)\r\n return column.SortingValue\r\n return column.Value;\r\n }\r\n\r\n private GetGroup(row: GridRow) {\r\n for (var i = 0; i < this.Groups.length; i++) {\r\n let groupInner = this.Groups[i];\r\n if (groupInner.Key == row.GroupKey)\r\n return groupInner;\r\n }\r\n\r\n var group = {\r\n Key: row.GroupKey,\r\n Rows: []\r\n }\r\n this.Groups.push(group);\r\n\r\n return group;\r\n }\r\n\r\n public RowClick(row: GridRow) {\r\n if (row.RowAction != null)\r\n this._linkService.Go(row.RowAction);\r\n if (this.data.IndicateSelectable) {\r\n this.data.Rows.map(c => { c.Selected = false; c._CalculatedClasses = null; });\r\n row.Selected = true;\r\n row._CalculatedClasses = null;\r\n }\r\n $(this._elementRef.nativeElement).trigger('grid-row-click', row.Model);\r\n }\r\n\r\n public ShowNoResults() {\r\n return this.data.NoRowsMessage && (!this.Groups.length);\r\n }\r\n\r\n public GetRowClass(row: GridRow) {\r\n if (!row._CalculatedClasses)\r\n row._CalculatedClasses = {\r\n 'pointer': !!row.RowAction || !!row.Model,\r\n 'ui-selectable': this.data.IndicateSelectable,\r\n 'ui-selected': row.Selected,\r\n 'ui-zebra-stripe-stacked-column': row.ZebraStripedStackedColumns,\r\n };\r\n return row._CalculatedClasses;\r\n }\r\n\r\n private _groupClass: any;\r\n public GetGroupClass() {\r\n var groupClass = this._groupClass ? this._groupClass : (this._groupClass = {\r\n 'ui-grid-group-columns-3': this.data.NumColumns == 3,\r\n 'ui-grid-group-columns-2': this.data.NumColumns == 2,\r\n 'ui-map-indicators': this.data.ShowMapIndicators,\r\n 'ui-zebra-stripe': this.data.ZebraStripedRows,\r\n 'ui-fixed-height': this.data.FixedHeight,\r\n });\r\n\r\n return groupClass;\r\n }\r\n\r\n public GetHeaderClass(index: number) {\r\n let headerClass = \"ui-column-header\";\r\n let column = this.Groups[0].Rows[0].Columns[index];\r\n if (column.TextAlignRight)\r\n headerClass += \" ui-right-aligned-column\";\r\n return headerClass;\r\n }\r\n}","import { Link } from \"../actions/actions.models\";\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\nimport { StyleAttribute } from \"../../services/AttributeTranslator\";\r\nimport { TooltipModel } from \"../tooltip/tooltip.component\";\r\nimport { ElementRef } from \"@angular/core\";\r\nimport { ChipDefinition } from \"../chip/chip.models\";\r\n\r\nexport class Grid extends ComponentDefinition {\r\n public HeaderRow: string[];\r\n public Rows: GridRow[];\r\n public TotalsRow: GridRow;\r\n public InfiniteScrollUrl: string;\r\n public InfiniteScrollLastElementID: any;\r\n public OpenRowClickInNewTab: boolean;\r\n public OpenRowClickInModal: boolean;\r\n public NumColumns: number;\r\n public NoRowsMessage: string;\r\n public ShowActionsOnlyOnHover: boolean;\r\n public DisableSorting: boolean;\r\n public IsTimeline: boolean;\r\n public IndicateSelectable: boolean;\r\n public ShowMapIndicators: boolean;\r\n public UpdateComponent: boolean;\r\n public FixedHeight: boolean;\r\n public ZebraStripedRows: boolean;\r\n}\r\n\r\nexport class GridRow {\r\n public Columns: GridColumn[]; \r\n public Model: any;\r\n public RowAction: Link;\r\n public GroupKey: string;\r\n public Attributes: StyleAttribute[];\r\n public Selected: boolean;\r\n public Actions: Link[];\r\n public Tooltip: TooltipModel;\r\n public _CalculatedClasses: any;\r\n public ZebraStripedStackedColumns: boolean;\r\n}\r\n\r\nexport class GridColumn {\r\n public Value: string;\r\n public SortingValue: any;\r\n public Values: string[];\r\n public Width: number;\r\n public WidthInPixels: number;\r\n public Type: string;\r\n public RichTooltip: TooltipModel;\r\n public TextAlignRight: boolean;\r\n public TextColorClass: string;\r\n public Bold: boolean;\r\n public TabIn: boolean;\r\n public Chips: ChipDefinition[];\r\n public IsAutoSized: boolean;\r\n}\r\n\r\nexport class InfiniteScrollService {\r\n private _scrollElement: ElementRef;\r\n public set ScrollElement(value: ElementRef) {\r\n this._scrollElement = value;\r\n }\r\n\r\n public RegisterListener() {}\r\n}\r\n\r\nexport class InfiniteScrollResult {\r\n QueryKey: any;\r\n Results: any;\r\n}\r\n","\r\n
\r\n \r\n
Type at least 3 characters to search
\r\n
\r\n
\r\n","import { Component, Input, Directive, ElementRef, ViewChild } from '@angular/core';\r\nimport { SearchService } from \"../../services/SearchService\";\r\nimport * as $ from 'jquery';\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\n\r\n@Component({\r\n selector: 'header-search',\r\n templateUrl: './header-search.component.html',\r\n styleUrls: ['./header-search.component.less'],\r\n providers: [SearchService]\r\n})\r\nexport class HeaderSearchComponent {\r\n public results: ComponentDefinition;\r\n public IsSearching: boolean;\r\n public SearchStringTooShort: boolean;\r\n\r\n @ViewChild('overlay', {static: false}) overlay: ElementRef;\r\n\r\n constructor(private _searchService: SearchService, private _elementRef: ElementRef) {\r\n _searchService.SetOptions(\"/Search/Search\", null);\r\n\r\n _searchService.RegisterListener((c: ComponentDefinition) => {\r\n this.IsSearching = false;\r\n this.results = c;\r\n this.ShowOverlay();\r\n }, () => {\r\n this.IsSearching = true;\r\n this.SearchStringTooShort = false;\r\n this.results = null;\r\n this.ShowOverlay();\r\n }, () => {\r\n this.IsSearching = false;\r\n this.SearchStringTooShort = true;\r\n this.results = null;\r\n this.ShowOverlay();\r\n }, () => {\r\n location.href = \"/\";\r\n });\r\n\r\n $(this._elementRef).click($event => {\r\n $event.stopPropagation(); \r\n return false; \r\n });\r\n }\r\n\r\n private ShowOverlay() {\r\n $(this.overlay.nativeElement).show();\r\n $('body').one('click', c => $(this.overlay.nativeElement).hide());\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[headerInput]',\r\n})\r\nexport class HeaderInputComponent {\r\n constructor(private _searchService: SearchService, element: ElementRef) {\r\n $(element.nativeElement).on('input', c => {\r\n this._searchService.Search({ \r\n SearchText: $(element.nativeElement).val()\r\n });\r\n })\r\n }\r\n}\r\n\r\n","\r\n\r\n\r\n
\r\n
{{page.Header}}
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n ","import { Component, Input, ViewChild, TemplateRef, ElementRef, ChangeDetectorRef, OnDestroy } from '@angular/core';\r\nimport { NavigationService } from '../../services/NavigationService'\r\nimport { Page, Aspect } from \"../page/page.models\";\r\nimport { ConnectionMessagingService, DefconMessage } from '../../services/ConnectionMessagingService';\r\nimport * as $ from 'jquery';\r\nimport { DefconRegistration } from '../app/app.component';\r\n\r\n@Component({\r\n selector: 'header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.less']\r\n})\r\nexport class HeaderComponent implements OnDestroy {\r\n ngOnDestroy(): void {\r\n this._connectionMessaging.UnregisterDefcon(this._defcon);\r\n }\r\n @Input() public page: Page;\r\n @ViewChild('Application', { static: false }) ApplicationTemplate : TemplateRef;\r\n @ViewChild('Portal', { static: false }) PortalTemplate : TemplateRef;\r\n @ViewChild('Clean', { static: false }) CleanTemplate : TemplateRef;\r\n\r\n public defconClass: string;\r\n public defconMessage: string;\r\n _defcon: DefconRegistration;\r\n \r\n constructor(private _navigationService: NavigationService,\r\n private _connectionMessaging: ConnectionMessagingService,\r\n elementRef: ElementRef) {\r\n \r\n _navigationService.Register((p: Page, isAspect: boolean, aspect: Aspect, isRequestingFollowupAspect: boolean) => {\r\n this.page = p;\r\n\r\n if (this.page.Layout == \"Portal\")\r\n $(elementRef.nativeElement).addClass('portal');\r\n else\r\n $(elementRef.nativeElement).removeClass('portal');\r\n });\r\n\r\n this._defcon = new DefconRegistration(defcon => { \r\n \r\n if (defcon) {\r\n $('.ui-defcon-message').removeClass('Yellow').removeClass('Red').addClass(`ui-defcon ${IndicatorColor[defcon.Color]}`)\r\n .html(defcon.Message).show();\r\n }\r\n else {\r\n $('.ui-defcon-message').hide().removeClass().addClass('ui-defcon-message');\r\n }\r\n })\r\n\r\n _connectionMessaging.RegisterDefcon(this._defcon);\r\n }\r\n\r\n public GetTemplate() {\r\n var template = this.ApplicationTemplate;\r\n if (this.page) {\r\n if (this.page.Layout == \"Portal\")\r\n template = this.PortalTemplate;\r\n else if (this.page.Layout == \"Clean\")\r\n template = this.CleanTemplate;\r\n }\r\n return template;\r\n }\r\n\r\n public GetAppLogoUrl() {\r\n if (this.page.AppLogoUrlOverride && this.page.AppLogoUrlOverride.length)\r\n return this.page.AppLogoUrlOverride;\r\n return \"/AppLogo\";\r\n }\r\n}\r\n\r\nexport enum IndicatorColor {\r\n None,\r\n Gray,\r\n Red,\r\n LightRed,\r\n Yellow,\r\n LightYellow,\r\n Green,\r\n Blue,\r\n LightBlue,\r\n Purple,\r\n Transparent,\r\n}\r\n","import { Directive, Component, Input, HostBinding } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Directive({\r\n selector: '[icon]',\r\n})\r\nexport class IconDirective {\r\n private _name: string;\r\n private _dark: boolean;\r\n\r\n @Input()\r\n public set name(value: string) {\r\n this._name = value;\r\n };\r\n\r\n @Input()\r\n public set dark(value: boolean) {\r\n this._dark = value;\r\n };\r\n\r\n @HostBinding('style.background-image')\r\n public get backgroundImage() {\r\n return \"url(/images/icons/\"+this._name+(this._dark ? '-dark' : '')+\".png)\";\r\n }\r\n}","
\r\n
\r\n
{{kpi.Name}}
\r\n
\r\n
{{kpi.Value}}
\r\n
\r\n
\r\n
{{child.Name}}
\r\n
\r\n
\r\n
{{child.Value}}
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NavigationService } from '../../services/NavigationService'\r\nimport { KPIComponentDefinition } from \"./kpi.models\";\r\nimport { ComponentDefinition } from \"../../components/component/component.models\";\r\n\r\n@Component({\r\n selector: 'kpi',\r\n templateUrl: './kpi.component.html',\r\n styleUrls: ['./kpi.component.less']\r\n})\r\nexport class KPIComponent {\r\n public data: KPIComponentDefinition;\r\n\r\n constructor(compDef: ComponentDefinition) {\r\n this.data = compDef;\r\n }\r\n}\r\n","","\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
","
\n
\n \n
\n
\n
","import { Component, Input, ViewContainerRef,EventEmitter, ContentChild, Injectable } from '@angular/core';\r\nimport { FieldDefinition, FormComponent } from \"../form/form.component\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport { LayoutDefinition, TableLayoutField } from \"./layout.models\";\r\nimport { ComponentDefinition } from \"../../components/component/component.models\";\r\nimport { CardFieldDefinition } from \"../../components/card/card.models\";\r\nimport { first } from 'rxjs/operators';\r\nimport { stringify } from 'querystring';\r\n\r\ndeclare var jsep: any;\r\n\r\n@Component({\r\n selector: 'layout-element',\r\n template: ''\r\n})\r\nexport class LayoutElement {\r\n private _expression: string;\r\n @Input()\r\n public set expression(value: string){\r\n this._expression = value;\r\n }\r\n public get expression() {\r\n return this._expression;\r\n }\r\n\r\n @ContentChild('content', {read: ViewContainerRef, static: false}) \r\n set elements(value: ViewContainerRef) {\r\n this.Elements = value;\r\n }\r\n public Elements: ViewContainerRef;\r\n\r\n constructor(public ViewContainerRef: ViewContainerRef) {\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'layout',\r\n template: `\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
`,\r\n styles: [\r\n ':host { display: block; }', \r\n '.ui-cell { overflow: hidden; }',\r\n `\r\n .ui-box {\r\n position: absolute;\r\n z-index: 100;\r\n }\r\n `\r\n ],\r\n})\r\nexport class LayoutComponent {\r\n private _definition: LayoutDefinition;\r\n\r\n @Input()\r\n set definition(value: LayoutDefinition) {\r\n this._definition = value;\r\n }\r\n get definition() {\r\n return this._definition;\r\n }\r\n\r\n private _components: ComponentDefinition[];\r\n\r\n @Input()\r\n set components(value: ComponentDefinition[]) {\r\n this._components = value;\r\n }\r\n get components() {\r\n return this._components;\r\n } formComponent: this;\r\n\r\n\r\n public GetComponent(expression: string) {\r\n let comp = this.components.filter(c => c.Expression == expression)[0];\r\n if (!comp) {\r\n }\r\n return comp;\r\n }\r\n\r\n constructor() {\r\n }\r\n}\r\n\r\nexport class TableLayoutRow {\r\n public Cells: TableLayoutCell[];\r\n}\r\n\r\nexport class TableLayoutCell {\r\n public style: {};\r\n public formControl: AbstractControl;\r\n public field: FieldDefinition;\r\n public cardField: CardFieldDefinition;\r\n}\r\n\r\n@Injectable()\r\nexport class LayoutService {\r\n public AddLayoutDefinition(layoutDefinition: any, formComp: FormComponent, fields: FieldDefinition[], formGroup: FormGroup, prefix: string) {\r\n let layout = new LayoutInstance();\r\n layout.formComponent = formComp;\r\n layout.LayoutDefinition = layoutDefinition;\r\n layout.fields = fields;\r\n layout.FormGroup = formGroup;\r\n layout.prefix = prefix;\r\n var formNameField = formComp.FindFieldDefinition(\"FormName\");\r\n if (formNameField)\r\n layout.objectName = formNameField.Name;\r\n this.Layouts.push(layout); \r\n }\r\n\r\n public Layouts: LayoutInstance[] = [];\r\n public OnChange: EventEmitter = new EventEmitter();\r\n}\r\n\r\nexport class LayoutInstance {\r\n public LayoutDefinition: any;\r\n public fields: FieldDefinition[]; \r\n public cardFields: CardFieldDefinition[]; \r\n public FormGroup: FormGroup;\r\n public prefix: string;\r\n public formComponent: FormComponent;\r\n public objectName: string;\r\n}\r\n\r\n@Component({\r\n selector: 'table-layout',\r\n template: `
\r\n
\r\n \r\n
\r\n
\r\n
`,\r\n styles: [`\r\n .ui-row {\r\n display: flex;\r\n align-items: flex-start;\r\n overflow-x: hidden;\r\n }\r\n .ui-cell {\r\n overflow: hidden;\r\n }\r\n `],\r\n})\r\nexport class TableLayoutComponent {\r\n _index: number;\r\n _layoutInstance: LayoutInstance;\r\n\r\n constructor(private layoutService: LayoutService) { \r\n layoutService.OnChange.subscribe(c => {\r\n this.Rerender();\r\n });\r\n jsep.addBinaryOp(\"like\", 10);\r\n jsep.addBinaryOp(\"notlike\", 10);\r\n }\r\n\r\n @Input() \r\n public set index(value: any) {\r\n this._index = parseInt(value);\r\n this.Rerender();\r\n }\r\n\r\n public Rows: {[key: number]: {[key: number]: TableLayoutCell}};\r\n\r\n Prev: number[];\r\n\r\n private Rerender() {\r\n this.Rows = {};\r\n let li = this._layoutInstance = this.layoutService.Layouts[this._index];\r\n let fields = this.GetFields();\r\n\r\n if (fields == null || fields.length == 0) {\r\n \r\n console.error(\"Layout not specified for \" + this._layoutInstance.objectName);\r\n }\r\n\r\n if (this._layoutInstance.LayoutDefinition && this._layoutInstance.LayoutDefinition.ValueFieldName) {\r\n var valueField = this._layoutInstance.LayoutDefinition.ValueFieldName;\r\n li.FormGroup.controls[valueField].valueChanges.pipe(first()).subscribe(()=> {\r\n this.Rerender();\r\n });\r\n }\r\n\r\n for (let i = 0; i < fields.length; i++) {\r\n let field = fields[i];\r\n if (!this.Rows[field.Row])\r\n this.Rows[field.Row] = [];\r\n let row = this.Rows[field.Row];\r\n let tlc = new TableLayoutCell();\r\n tlc.field = this.GetField(field.Name);\r\n tlc.cardField = this.GetCardField(field.Name);\r\n tlc.style = this.GetStyle(field);\r\n row[field.Column] = tlc;\r\n }\r\n }\r\n\r\n public GetFields() {\r\n let li = this._layoutInstance = this.layoutService.Layouts[this._index];\r\n let fields = this._layoutInstance.LayoutDefinition;\r\n \r\n if (this._layoutInstance.LayoutDefinition && this._layoutInstance.LayoutDefinition.ValueFieldName) {\r\n var valueField = this._layoutInstance.LayoutDefinition.ValueFieldName;\r\n fields = li.LayoutDefinition.Definition[li.FormGroup.controls[valueField].value];\r\n if (!fields) {\r\n fields = li.LayoutDefinition.Definition[Object.keys(li.LayoutDefinition.Definition).filter(r => r != \"$type\")[0]];\r\n }\r\n }\r\n return fields;\r\n }\r\n\r\n public GetCellsInRow(rowIndex: number) : TableLayoutField[] {\r\n return this.GetFields().filter(s => s.Row == rowIndex);\r\n }\r\n\r\n public GetStyle(field: TableLayoutField) {\r\n let cellsInRow = this.GetCellsInRow(field.Row);\r\n let totalColSpan = 0;\r\n cellsInRow.map(c => c.ColumnSpan).forEach(c => totalColSpan += c);\r\n let style = {\r\n 'flex': '0 1 ' + ((field.ColumnSpan / totalColSpan) * 100) + '%',\r\n };\r\n\r\n TableLayoutComponent.AttachDynamicHiddenToStyle(this.GetField(field.Name), this._layoutInstance.formComponent, style);\r\n\r\n return style;\r\n }\r\n\r\n public static IsDynamicHidden(fieldDef: FieldDefinition, form: any) {\r\n let attribute = TableLayoutComponent.GetDynamicHiddenAttribute(fieldDef);\r\n if (!attribute)\r\n return false;\r\n if (attribute.Type == \"DynamicHidden\") {\r\n let isHidden = TableLayoutComponent.IsTrue(jsep(attribute.Expression), form);\r\n return isHidden;\r\n }\r\n if (attribute.Type == \"ShowWhenTrue\") {\r\n let isHidden = form[attribute.FieldName] != true;\r\n return isHidden;\r\n }\r\n if (attribute.Type == \"ShowWhenTrueExpression\") {\r\n let isHidden = !TableLayoutComponent.IsTrue(jsep(attribute.Expression), form);\r\n return isHidden;\r\n }\r\n \r\n return false;\r\n } \r\n\r\n public static IsTrue(node: any, form: any) {\r\n if (node.type == 'UnaryExpression') {\r\n if (node.operator == \"!\") {\r\n return !TableLayoutComponent.IsTrue(node.argument, form);\r\n }\r\n }\r\n else if (node.type == 'BinaryExpression') {\r\n var lVal = TableLayoutComponent.GetValue(node.left, form);\r\n var rVal = TableLayoutComponent.GetValue(node.right, form);\r\n if (node.operator == '!=') {\r\n return lVal != rVal;\r\n }\r\n else if (node.operator == '==') {\r\n return lVal == rVal;\r\n }\r\n else if (node.operator == '>') {\r\n return parseFloat(lVal) > parseFloat(rVal);\r\n }\r\n else if (node.operator == '<') {\r\n return parseFloat(lVal) < parseFloat(rVal);\r\n }\r\n else if (node.operator == '>=') {\r\n return parseFloat(lVal) >= parseFloat(rVal);\r\n }\r\n else if (node.operator == '<=') {\r\n return parseFloat(lVal) <= parseFloat(rVal);\r\n }\r\n else if (node.operator.toLowerCase() == 'like') {\r\n if (lVal == null || rVal == null)\r\n return false;\r\n return lVal.toLowerCase().indexOf(rVal.toLowerCase()) >= 0;\r\n }\r\n else if (node.operator.toLowerCase() == 'notlike') {\r\n if (lVal == null || rVal == null)\r\n return true;\r\n return lVal.toLowerCase().indexOf(rVal.toLowerCase()) < 0;\r\n }\r\n else \r\n console.error(\"UNKNOWN OPERATOR: \" + node.operator);\r\n }\r\n else if (node.type == 'LogicalExpression') {\r\n if (node.operator == '||') {\r\n return TableLayoutComponent.IsTrue(node.left, form) || TableLayoutComponent.IsTrue(node.right, form);\r\n }\r\n else if (node.operator == '&&') {\r\n return TableLayoutComponent.IsTrue(node.left, form) && TableLayoutComponent.IsTrue(node.right, form);\r\n }\r\n }\r\n }\r\n\r\n public static GetValue(identifier: any, form: any) {\r\n if (identifier.type == 'Identifier') {\r\n if (Object.keys(form).indexOf(identifier.name) == -1)\r\n console.error(`Unable to find field ${identifier.name} in form`);\r\n var value = form[identifier.name];\r\n if (value === '')\r\n return null;\r\n return value;\r\n }\r\n else if (identifier.type == 'Literal') {\r\n return identifier.value;\r\n }\r\n }\r\n\r\n public static GetDynamicHiddenAttribute(fieldDef: FieldDefinition): any {\r\n if (!fieldDef)\r\n return null;\r\n var attribute;\r\n if (fieldDef && fieldDef.Attributes[\"DynamicHidden\"]) {\r\n attribute = fieldDef.Attributes[\"DynamicHidden\"];\r\n attribute.Type = \"DynamicHidden\";\r\n }\r\n if (fieldDef && fieldDef.Attributes[\"ShowWhenTrue\"]){\r\n attribute = fieldDef.Attributes[\"ShowWhenTrue\"];\r\n attribute.Type = \"ShowWhenTrue\";\r\n }\r\n if (fieldDef && fieldDef.Attributes[\"ShowWhenTrueExpression\"]){\r\n attribute = fieldDef.Attributes[\"ShowWhenTrueExpression\"];\r\n attribute.Type = \"ShowWhenTrueExpression\";\r\n }\r\n\r\n return attribute;\r\n }\r\n\r\n public static AttachDynamicHiddenToStyle(fieldDef: FieldDefinition, formComponent: FormComponent, style: {}) {\r\n let attribute = TableLayoutComponent.GetDynamicHiddenAttribute(fieldDef);\r\n if (attribute) {\r\n let hideStyle = style => {\r\n if (!attribute.PreserveSpace)\r\n style[\"display\"] = \"none\";\r\n else \r\n style[\"visibility\"] = \"hidden\";\r\n };\r\n\r\n let showStyle = style => {\r\n if (!attribute.PreserveSpace)\r\n style[\"display\"] = \"block\";\r\n else \r\n style[\"visibility\"] = \"visible\";\r\n };\r\n\r\n let updateValue = form => {\r\n if (TableLayoutComponent.IsDynamicHidden(fieldDef, form)) {\r\n hideStyle(style);\r\n }\r\n else {\r\n showStyle(style);\r\n }\r\n };\r\n\r\n formComponent.AllValueChanges.subscribe(updateValue);\r\n updateValue(formComponent.FormGroup.value);\r\n }\r\n }\r\n\r\n public GetField(name: string) : FieldDefinition {\r\n if (this._layoutInstance.fields == null)\r\n return null;\r\n\r\n var field = this._layoutInstance.fields.filter(c => c.Name == name || c.Name == `${this._layoutInstance.prefix}.${name}`)[0];\r\n return field;\r\n }\r\n\r\n public GetFormControl(name: string) : AbstractControl {\r\n if (this._layoutInstance.fields == null)\r\n return null;\r\n\r\n var field = this._layoutInstance.FormGroup.controls[name] || this._layoutInstance.FormGroup.controls[`${this._layoutInstance.prefix}.${name}`];\r\n if (field == null)\r\n {\r\n // console.log(`Cannot find field: ${name}`);\r\n }\r\n return field;\r\n }\r\n\r\n public GetCardField(name: string) : CardFieldDefinition {\r\n if (this._layoutInstance.cardFields == null)\r\n return null;\r\n\r\n var field = this._layoutInstance.cardFields.filter(c => c.Name == name)[0];\r\n if (field == null)\r\n console.log(`Cannot find field: ${name}`);\r\n return field;\r\n }\r\n}\r\n","import { Component, ElementRef, AfterViewInit, ViewEncapsulation } from \"@angular/core\";\r\nimport { NavigationService } from \"../../services/NavigationService\";\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\nimport * as $ from 'jquery';\r\nimport { CardListModel } from \"../card-list/card-list.models\";\r\n\r\n@Component({\r\n selector: 'loan-entry-layout-component',\r\n templateUrl: './loan-entry-layout.component.html',\r\n styleUrls: ['./loan-entry-layout.component.less'],\r\n encapsulation: ViewEncapsulation.None\r\n //styleUrls: ['./column.component.less']\r\n})\r\nexport class LoanEntryLayoutComponent implements AfterViewInit {\r\n data: LoanEntryLayoutDefinition;\r\n public IsLoading: boolean;\r\n public ShowRightPanel: boolean = true;\r\n\r\n constructor(private _compDef: ComponentDefinition, \r\n private _elementRef: ElementRef,\r\n private _navigationService: NavigationService) {\r\n this.data = _compDef;\r\n \r\n $(_elementRef.nativeElement).height($(window).height() - 50);\r\n\r\n $(window).resize(()=> {\r\n $(_elementRef.nativeElement).height($(window).height() - 50);\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n $('.ui-left-panel', this._elementRef.nativeElement).on('grid-row-click', (event, data) => {\r\n if (!data)\r\n return;\r\n if (this._navigationService.BypassWarning()) {\r\n this.IsLoading = true;\r\n this.data.LeftMenu.Rows.forEach(c => c.Card.Card.Primary = false);\r\n this.data.LeftMenu.Rows.filter(r => r.Model == data).forEach(c => c.Card.Card.Primary = true);\r\n this._navigationService.RequestPage(data, (response) => {\r\n var results = <{Menu: CardListModel, Content: ComponentDefinition, Header: string}> response;\r\n this.data.LeftMenu = results.Menu;\r\n this.data.RightContent = results.Content;\r\n this._navigationService.Page.Header = results.Header;\r\n this.IsLoading = false;\r\n });\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport class LoanEntryLayoutDefinition extends ComponentDefinition {\r\n public LeftMenu: CardListModel;\r\n public RightContent: ComponentDefinition;\r\n}\r\n","\r\n\r\n
\r\n
Google
\r\n
\r\n\r\n
\r\n
You have logged out of the application. You can close this window.
\r\n
Click here to log back in
\r\n
\r\n\r\n\r\n Powered by SSI\r\n\r\n","import { Component, AfterViewInit } from '@angular/core';\r\nimport { NavigationService, NavigationType, ToastMessage } from '../../services/NavigationService'\r\nimport { ComponentDefinition } from \"../../components/component/component.models\";\r\nimport { FormMessage } from '../form/form.component';\r\nimport { Meta } from '@angular/platform-browser';\r\nimport { ToastService } from '../../services/ToastService';\r\n\r\n@Component({\r\n selector: 'login-wrapper',\r\n templateUrl: './login-wrapper.component.html',\r\n styleUrls: ['./login-wrapper.component.less'],\r\n})\r\nexport class LoginWrapperComponent implements AfterViewInit {\r\n ls: any;\r\n ngAfterViewInit(): void {\r\n if(this.Model.GoogleClientId == null) return;\r\n }\r\n\r\n public Model: {\r\n ReturnUrl: string;\r\n GoogleClientId: string;\r\n Message: string;\r\n CustomComponent: any;\r\n ShowRegistrationLink: any;\r\n BackgroundImageClass: any;\r\n LoginForm: any;\r\n };\r\n\r\n constructor(data: ComponentDefinition, private _navigationService: NavigationService, private meta: Meta, private ts: ToastService) {\r\n sessionStorage.clear();\r\n localStorage.clear();\r\n this.ls = this._navigationService;\r\n this.Model = data;\r\n }\r\n}","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
","import { Component, Input, AfterViewInit, ViewChild, EventEmitter, ElementRef } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NavigationService } from '../../services/NavigationService'\r\nimport { MapListComponentDefinition, MapSearchResult } from \"./map-list.models\";\r\nimport { GoogleMapComponent } from \"../google-map/google-map.component\";\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\nimport { AddressCoordinates } from \"../google-map/google-map.models\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { debounceTime, switchMap } from 'rxjs/operators';\r\n\r\ndeclare var google: any;\r\nimport * as $ from 'jquery';\r\n\r\n@Component({\r\n selector: 'map-list',\r\n templateUrl: './map-list.component.html',\r\n styleUrls: ['./map-list.component.less']\r\n})\r\n\r\nexport class MapListComponent implements AfterViewInit {\r\n primaryMarkers: any[];\r\n public data: MapListComponentDefinition;\r\n\r\n public IsLoading: boolean;\r\n public NoResults: boolean;\r\n \r\n private _search: EventEmitter;\r\n // HACK: this.googleMap.MapMoved.skip(1) didn't work as expected\r\n private _moveCount = 0;\r\n\r\n @ViewChild('map', { read: GoogleMapComponent, static: true }) googleMap: GoogleMapComponent;\r\n\r\n constructor(compDef: ComponentDefinition, private _http: HttpClient, private _elementRef: ElementRef) {\r\n $(this._elementRef.nativeElement).on('grid-item-mouse-enter', (event, data) => {\r\n this.googleMap.BounceMarker(data.Coordinates);\r\n })\r\n $(this._elementRef.nativeElement).on('grid-item-mouse-leave', (event, data) => {\r\n this.googleMap.UnbounceMarker();\r\n })\r\n this.data = compDef;\r\n this._search = new EventEmitter();\r\n this._search\r\n .pipe(debounceTime(500),\r\n switchMap(() => { \r\n var bounds = this.googleMap.GetBounds();\r\n if (bounds === null)\r\n return;\r\n\r\n var northEast = bounds.getNorthEast();\r\n var southWest = bounds.getSouthWest();\r\n northEast = { Latitude: northEast.lat(), Longitude: northEast.lng() };\r\n southWest = { Latitude: southWest.lat(), Longitude: southWest.lng() };\r\n this.IsLoading = true;\r\n \r\n return this._http\r\n .post(this.data.SearchUrl, [northEast, southWest]);\r\n }))\r\n .subscribe((mapSearchResult: MapSearchResult) => {\r\n //console.log('Rendering results');\r\n\r\n this.IsLoading = false;\r\n // TODO:\r\n //$('.tipsy').remove();\r\n this.data.List = mapSearchResult.List;\r\n this.NoResults = mapSearchResult.List.Rows.length == 0;\r\n this.googleMap.ClearMarkers(this.primaryMarkers);\r\n this.primaryMarkers =this.googleMap.CreateMarkers(mapSearchResult.Markers);\r\n });\r\n }\r\n \r\n ngAfterViewInit(): void {\r\n this.NoResults = this.data.List.Rows.length == 0;\r\n\r\n this.googleMap.InitializeMap(null, 12, 17, null); \r\n \r\n this.primaryMarkers = this.googleMap.CreateMarkers(this.data.Markers);\r\n this.googleMap.CreateMarkers(this.data.SecondaryMarkers);\r\n\r\n if (this.data.Bounds)\r\n this.googleMap.SetBounds(this.data.Bounds); \r\n else if (this.data.Markers && this.data.Markers.length)\r\n this.googleMap.FitMarkers(this.data.Markers);\r\n\r\n console.log('Binding mapMoved');\r\n this.googleMap.MapMoved.subscribe(() => { \r\n this._moveCount++;\r\n if (this._moveCount == 1)\r\n return;\r\n console.log('MapMoved');\r\n this.Search(); \r\n });\r\n }\r\n\r\n private ResizeMap() {\r\n // if ($element.closest('.ui-new-modal').length) {\r\n // return;\r\n // }\r\n // $('.js-map').height($(window).height() - 200);\r\n // $element.height($(window).height() - 200);\r\n // $('.tipsy').remove();\r\n }\r\n\r\n public Search() {\r\n //console.log('Emitting search');\r\n this._search.emit(); \r\n }\r\n\r\n /* TODO:\r\n $scope.$on('grid-item-mouseenter', function (e, rowModel) {\r\n $scope.BounceMarker(rowModel.Coordinates);\r\n });\r\n \r\n $scope.$on('grid-item-mouseleave', function (e, rowModel) {\r\n $scope.UnbounceMarker();\r\n });\r\n\r\n window.setTimeout(function () {\r\n initializeMap();\r\n });\r\n\r\n var _timeout;\r\n $(window).on('resize', function () {\r\n if (_timeout)\r\n window.clearTimeout(_timeout);\r\n\r\n _timeout = window.setTimeout(resizeMap, 250);\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","import { Component, Input, AfterViewInit, ViewChild, ElementRef, AfterViewChecked, ViewEncapsulation } from '@angular/core';\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\nimport { GoogleMapComponent } from \"../google-map/google-map.component\";\r\nimport { MapComponentDefinition } from \"./map.models\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { map } from 'rxjs/operators';\r\n\r\ndeclare var google: any;\r\n\r\n@Component({\r\n selector: 'map',\r\n templateUrl: './map.component.html',\r\n styleUrls: ['./map.component.less'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MapComponent implements AfterViewInit {\r\n public data: MapComponentDefinition;\r\n public SelectedSet: any;\r\n public HeatMap: any;\r\n\r\n @ViewChild('map', { read: GoogleMapComponent, static: true }) googleMap: GoogleMapComponent;\r\n\r\n constructor(compDef: ComponentDefinition, private _http: HttpClient) {\r\n this.data = compDef;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.googleMap.InitializeMap(this.data.Center, this.data.Zoom, 16, this.data.Options);\r\n\r\n this.SelectedSet = Object.keys(this.data.PointSets)[0];\r\n var mapData = this.GetPointMapData();\r\n //Hack because Newtonsoft adding this for serialization of interfaces\r\n if (this.SelectedSet == \"$type\")\r\n this.SelectedSet = Object.keys(this.data.PointSets)[1];\r\n \r\n if (this.data.MapType == 'Heat') {\r\n this.HeatMap = new google.maps.visualization.HeatmapLayer({\r\n data: this.GetHeatMapData(),\r\n map: this.googleMap.Map,\r\n radius: 60\r\n });\r\n }\r\n else if(this.data.MapType == 'Geo'){\r\n this._http.post(this.data.GeoJsonUrl, {}).pipe(map((res: any) => {\r\n var json = res;\r\n this.googleMap.AddGeoJson(JSON.parse(json)); \r\n })).subscribe(); \r\n }\r\n\r\n if(this.data.IncludePlacesAutocomplete)\r\n this.googleMap.SetUpPlacesAutocomplete();\r\n\r\n if(this.data.Legend)\r\n this.googleMap.AddLegend(this.data.Legend);\r\n\r\n if(this.data.MarkersUrl){\r\n this.googleMap.ClearAllMarkers();\r\n this._http.get(this.data.MarkersUrl).pipe(map(res =>{\r\n var json = res;\r\n this.googleMap.CreateMarkerClusters(json);\r\n })).subscribe();\r\n }\r\n\r\n // google.maps.event.addListener(map, 'idle', function () {\r\n // localStorage.setItem('heatMapData', JSON.stringify(GetHeatMapData()));\r\n // });\r\n\r\n // if (localStorage.getItem('heatMapData') != null) {\r\n // var heatMapData = JSON.parse(localStorage.getItem('heatMapData'));\r\n // $scope.selectedBlock = heatMapData.selectedBlock;\r\n // $scope.selectBlock(heatMapData.selectedBlock)\r\n // map.setCenter(heatMapData.center);\r\n // map.setZoom(heatMapData.zoom);\r\n // }\r\n\r\n \r\n }\r\n\r\n public SelectSet (set: any) {\r\n this.SelectedSet = set;\r\n\r\n if (this.data.MapType == 'Heat')\r\n this.HeatMap.setData(this.GetHeatMapData());\r\n else {\r\n this.googleMap.CreateMarkers(this.GetPointMapData());\r\n }\r\n \r\n this.googleMap.FitMarkers(this.GetPointMapData());\r\n }\r\n\r\n private GetHeatMapData() {\r\n var selectedSet = this.data.PointSets[this.SelectedSet];\r\n return selectedSet.map(function (d) {\r\n return new google.maps.LatLng(d.Location.Latitude, d.Location.Longitude);\r\n });\r\n }\r\n\r\n private GetPointMapData() { \r\n return this.data.PointSets[this.SelectedSet];\r\n }\r\n}\r\n","
\r\n
\r\n
Add Axis
\r\n
Rearrange Axes
\r\n {{ComponentDefinition.ErrorMessage}}\r\n
\r\n
\r\n
\r\n Default Value\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Save
\r\n
Cancel
\r\n
\r\n
\r\n","import { Component, Input, AfterViewInit, ElementRef, Optional, ViewChild } from \"@angular/core\";\r\nimport { MatrixEditService } from \"../form/fieldcomponents/matrix-field.component\";\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\nimport { MatrixDefinition, MatrixAxis, MatrixHeaderCell, MatrixBodyRow, MatrixBodyCell, AxisOrientation } from \"../matrix/matrix.models\";\r\nimport { Page } from \"../page/page.models\";\r\nimport { ModalService } from \"../../services/ModalService\";\r\nimport { Area } from \"../matrix/matrix-model.component\";\r\nimport { FormComponentDefinition, FormComponent, FormMessage } from \"../form/form.component\";\r\nimport { NavigationService, NavigationType, ToastMessage } from \"../../services/NavigationService\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { AxisType, Bucket } from \"../form/fieldcomponents/range-buckets-field.component\";\r\nimport { ToastService } from \"../../services/ToastService\";\r\nimport * as $ from 'jquery';\r\n\r\n@Component({\r\n selector: 'matrix-editor-wrapper',\r\n templateUrl: './matrix-editor-wrapper.component.html',\r\n styleUrls: ['./matrix-editor-wrapper.component.less'],\r\n providers: [MatrixEditService]\r\n})\r\nexport class MatrixEditorWrapperComponent {\r\n ComponentDefinition: MatrixEditorWrapperModel;\r\n IsSubmitting: boolean = false;\r\n\r\n constructor(compDef: ComponentDefinition, \r\n private _modalService: ModalService,\r\n private _matrixService: MatrixEditService,\r\n private _navigationService: NavigationService,\r\n private _http: HttpClient,\r\n private _toastService: ToastService) {\r\n\r\n this.ComponentDefinition = compDef;\r\n this._matrixService.DeleteAxis = (a) => this.DeleteAxis(a);\r\n this._matrixService.OpenAxisEdit = (a) => this.EditAxis(a);\r\n }\r\n EditAxis(a: string): void {\r\n let axisIdentifier = this.ComponentDefinition.Model.Axes.filter(f => f.Name == a || f.Identifier == a)[0].Identifier;\r\n let addAxisRequest = {\r\n Request: this.ComponentDefinition.Request,\r\n Model: this.ComponentDefinition.Model,\r\n Axis: axisIdentifier,\r\n };\r\n this._modalService.Open('/Matrix/GetEditAxisForm', null, addAxisRequest, (matrix: MatrixDefinition) => {\r\n this.ComponentDefinition.Model = matrix;\r\n setTimeout(()=>this._matrixService.RerenderMatrix());\r\n });\r\n }\r\n\r\n DeleteAxis(axisIdentifier: string) {\r\n //axisidentifier may not be an identifier. \r\n //need to look it up.\r\n axisIdentifier = this.ComponentDefinition.Model.Axes.filter(f => f.Name == axisIdentifier || f.Identifier == axisIdentifier)[0].Identifier;\r\n\r\n let deleteAxisRequest = {\r\n Request: this.ComponentDefinition.Request,\r\n Model: this.ComponentDefinition.Model,\r\n Axis: axisIdentifier\r\n };\r\n this._http.post('/Matrix/DeleteAxis', deleteAxisRequest).subscribe((matrix: FormMessage) => {\r\n if (matrix.Success) {\r\n this.ComponentDefinition.Model = matrix.Data;\r\n setTimeout(()=>this._matrixService.RerenderMatrix());\r\n }\r\n else {\r\n this._toastService.SetMessage(new ToastMessage(matrix.Validations.Messages[0].Description));\r\n }\r\n });\r\n };\r\n\r\n OpenAddAxisModal() {\r\n let addAxisRequest = {\r\n Request: this.ComponentDefinition.Request,\r\n Model: this.ComponentDefinition.Model\r\n };\r\n this._modalService.Open('/Matrix/GetAddAxisForm', null, addAxisRequest, (matrix: MatrixDefinition) => {\r\n this.ComponentDefinition.Model = matrix;\r\n setTimeout(()=>this._matrixService.RerenderMatrix());\r\n });\r\n }\r\n\r\n OpenRearrangeAxesModal() {\r\n let addAxisRequest = {\r\n Request: this.ComponentDefinition.Request,\r\n Model: this.ComponentDefinition.Model\r\n };\r\n this._modalService.Open('/Matrix/GetRearrangeAxis', null, addAxisRequest, (matrix: MatrixDefinition) => {\r\n this.ComponentDefinition.Model = matrix;\r\n setTimeout(()=>this._matrixService.RerenderMatrix());\r\n });\r\n }\r\n\r\n Save() {\r\n this.IsSubmitting = true;\r\n this._http.post(this.ComponentDefinition.SaveURL, this.ComponentDefinition.Model).subscribe((response) => {\r\n var r = response;\r\n this.IsSubmitting = false;\r\n if(r && r.Validations && r.Validations.HasErrors)\r\n this._toastService.SetMessage(new ToastMessage(r.Validations.Messages.map(x => x.Description).join()));\r\n else\r\n this._navigationService.Go(null, NavigationType.Back);\r\n })\r\n }\r\n\r\n Cancel() {\r\n this._navigationService.Go(null, NavigationType.Back);\r\n }\r\n}\r\n\r\nexport class MatrixEditorWrapperModel extends ComponentDefinition {\r\n Model: MatrixDefinition;\r\n Request: any\r\n SaveURL: string;\r\n ErrorMessage: string;\r\n}\r\n\r\nexport class AddAxisResponse {\r\n\r\n}","
\r\n
Row Axes
\r\n
\r\n
\r\n reorder\r\n {{item}}\r\n
\r\n
\r\n
Column Axes
\r\n
\r\n
\r\n reorder\r\n {{item}}\r\n
\r\n
\r\n
\r\n
Save
","import { Component, Input, AfterViewInit, ElementRef, Optional, ViewChild } from \"@angular/core\";\r\nimport { MatrixEditService } from \"../form/fieldcomponents/matrix-field.component\";\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\nimport { MatrixDefinition, MatrixAxis, MatrixHeaderCell, MatrixBodyRow, MatrixBodyCell, AxisOrientation } from \"../matrix/matrix.models\";\r\nimport { Page } from \"../page/page.models\";\r\nimport { ModalService } from \"../../services/ModalService\";\r\nimport { Area } from \"../matrix/matrix-model.component\";\r\nimport { FormComponentDefinition, FormComponent } from \"../form/form.component\";\r\nimport { NavigationService, NavigationType, ToastMessage } from \"../../services/NavigationService\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { AxisType, Bucket } from \"../form/fieldcomponents/range-buckets-field.component\";\r\nimport { ToastService } from \"../../services/ToastService\";\r\n// import { RearrangeAxesComponentDefinition } from \"./matrix-editor-wrapper.component\";\r\nimport { map } from 'rxjs/operators';\r\nimport * as $ from 'jquery';\r\n\r\n@Component({\r\n selector: 'rearrange-axes',\r\n templateUrl: './rearrange-axes.component.html',\r\n styleUrls: ['./rearrange-axes.component.less'],\r\n})\r\nexport class RearrangeAxesComponent {\r\n ComponentDefinition: any;\r\n SortableOptions: {};\r\n\r\n constructor(compDef: ComponentDefinition, private _http: HttpClient, private _modalService: ModalService, private _toastService: ToastService) {\r\n this.ComponentDefinition = compDef;\r\n this.SortableOptions = { group: 'Rearrange' };\r\n }\r\n\r\n Save() {\r\n if (!this.ComponentDefinition.RowAxes || !this.ComponentDefinition.RowAxes.length)\r\n {\r\n this._toastService.SetMessage(new ToastMessage(\"Must have at least one row axis.\", \"Error\"));\r\n return;\r\n }\r\n this._http.post(\"/Matrix/RearrangeAxes\", { Model: this.ComponentDefinition.Model, \r\n RowAxes: this.ComponentDefinition.RowAxes, \r\n ColumnAxes: this.ComponentDefinition.ColumnAxes})\r\n .pipe(map((resp: MatrixDefinition)=> {\r\n this._modalService.CloseWithData(resp);\r\n })).subscribe();\r\n }\r\n}","\n
\n ","import { Component, Input, AfterViewInit, ElementRef, Optional, ViewChild } from \"@angular/core\";\r\nimport { MatrixCell } from \"./matrix.component\";\r\nimport { MatrixEditService } from \"../form/fieldcomponents/matrix-field.component\";\r\nimport * as $ from 'jquery';\r\n\r\n@Component({\r\n selector: '[matrix-cell]',\r\n template: `\r\n
\r\n `,\r\n styles: [':focus {outline: none}']\r\n})\r\nexport class MatrixCellComponent implements AfterViewInit {\r\n @Input('matrix-cell')\r\n public cell: MatrixCell;\r\n\r\n @ViewChild('content', { static: false })\r\n public content: ElementRef;\r\n\r\n private _timeout: number;\r\n \r\n constructor(private _elementRef: ElementRef, @Optional() private matrixService: MatrixEditService) {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n var $contentDiv = $(this.content.nativeElement);\r\n $contentDiv.text(this.cell.Value);\r\n\r\n if (!this.matrixService) {\r\n $contentDiv.removeAttr('contenteditable');\r\n if (this.cell.Value == '')\r\n $contentDiv.html(' ');\r\n return;\r\n }\r\n\r\n $contentDiv.on('input', () => {\r\n window.clearTimeout(this._timeout);\r\n this.cell.BodyCell.Value = this.cell.Value = $contentDiv.text();\r\n let columnClass = parseInt(Object.keys(this.cell.Class).find(c => c.startsWith('column-')).replace('column-', ''));\r\n \r\n this._timeout = window.setTimeout(() => { this.matrixService.CellChange(columnClass); }, 500);\r\n }).on('keydown', (event) => {\r\n if (event.keyCode == 9 || event.keyCode == 27) {\r\n window.getSelection().removeAllRanges();\r\n }\r\n else if (event.keyCode == 13) {\r\n event.preventDefault();\r\n }\r\n else \r\n event.stopPropagation();\r\n });\r\n\r\n // this.cell.SetValue = (value: string) => {\r\n // this.cell.Value = value;\r\n // this.cell.BodyCell.Value = value;\r\n // $contentDiv.text(this.cell.Value);\r\n // };\r\n }\r\n}","\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
{{headerCell.Value}}
\r\n
{{cell.Value}}
\r\n\r\n
\r\n
\r\n
Configuration Error
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
0\" class=\"matrix-text\">\r\n \r\n 0\"> / \r\n {{axisName}}\r\n \r\n
\r\n
{{headerCell.Value}}
\r\n
 
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{ cell.Collapsed ? '+' : '-' }}
\r\n
{{cell.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
Toggle Collapse All
\r\n \r\n
Edit Axis
\r\n
Delete Axis
\r\n
\r\n
\r\n
","import { MatrixRow, MatrixCell, Dimension } from \"./matrix.component\";\r\nimport { MatrixBodyCell, MatrixHeaderCell, MatrixDefinition, MatrixAxis, AxisOrientation } from \"./matrix.models\";\r\nimport { LinkService } from \"../../services/LinkService\";\r\nimport { ElementRef, ViewChild, Input, Component, Optional, ViewContainerRef, Directive, AfterViewChecked, ChangeDetectionStrategy, ChangeDetectorRef } from \"@angular/core\";\r\nimport { MatrixEditService } from \"../form/fieldcomponents/matrix-field.component\";\r\nimport { MDialog, MDialogTrigger } from \"../dialog/md-dialog.component\";\r\nimport { ModalService } from \"../../services/ModalService\";\r\nimport * as $ from 'jquery';\r\nimport { AxisType } from \"../form/fieldcomponents/range-buckets-field.component\";\r\nimport { DialogService } from \"../../services/DialogService\";\r\nimport * as fastdom from 'fastdom';\r\nimport { MultiSectionService, SectionService } from \"../../services/LoadService\";\r\n\r\n@Component({\r\n selector: 'matrix',\r\n templateUrl: './matrix-model.component.html',\r\n styleUrls: ['./matrix-model.component.less'],\r\n})\r\nexport class Matrix {\r\n MatrixAxisEditable: boolean;\r\n MatrixAxisValuesEditable: boolean;\r\n MatrixBodyValuesEditable: boolean;\r\n\r\n dialogCellInfo: { cell: MatrixCell; rowIndex: number; columnIndex: number; area: Area; };\r\n SelectionManager: SelectionManager;\r\n HasError: boolean;\r\n IsAdjusted: boolean;\r\n MatrixStyle: { 'max-height.px': string; };\r\n MatrixVisibility: { 'visibility' : string, 'display': string };\r\n _resizeTimeout: number;\r\n \r\n @ViewChild(\"dialog\", { read: MDialog, static: true })\r\n dialog: MDialog;\r\n dialogTrigger: MDialogTrigger;\r\n IsEditable: boolean;\r\n\r\n @Input('model')\r\n public set model(value: MatrixDefinition) {\r\n this.Model = value;\r\n if (this.Model != null && this.Model.Axes.length && this.Model.Rows.length) {\r\n this.SetColumnHeaders(this.Model);\r\n this.SetMatrixBody(this.Model);\r\n this.ShowCollapseAll = !!this.Model.RowHeaders.length && !!this.Model.RowHeaders[0].Cells.length;\r\n this.SelectionManager = new SelectionManager(this.HeaderRows, this.BodyRows);\r\n }\r\n this.HasError = this.Model != null && this.Model.HasError;\r\n }\r\n\r\n Model: MatrixDefinition;\r\n HeaderRows: MatrixRow[];\r\n BodyRows: MatrixRow[];\r\n TemplateWidth: string;\r\n ShowCollapseAll: boolean;\r\n ShiftKeyPressed: boolean;\r\n\r\n @ViewChild('textarea', { static: false })\r\n textarea: ElementRef;\r\n\r\n constructor(private _elementRef: ElementRef,\r\n private _linkService: LinkService,\r\n private _viewContainerRef: ViewContainerRef,\r\n private _modalService: ModalService,\r\n private _dialogService: DialogService,\r\n @Optional() private _matrixService: MatrixEditService,\r\n @Optional() private _multiSectionService: SectionService) {\r\n this.MatrixVisibility = { 'visibility': 'hidden', 'display': 'none' };\r\n this.IsEditable = !!this._matrixService;\r\n if (this._matrixService) {\r\n this._matrixService.CellChange = (column) => {\r\n this.UpdateMatrix(column);\r\n }\r\n this._matrixService.RerenderMatrix = () => {\r\n console.log(this.Model);\r\n if (this.Model == null || !this.Model.Axes.length || !this.Model.Rows.length) \r\n return;\r\n this.SetColumnHeaders(this.Model);\r\n this.SetMatrixBody(this.Model);\r\n this.ShowCollapseAll = !!this.Model.RowHeaders.length && !!this.Model.RowHeaders[0].Cells.length;\r\n this.IsAdjusted = false;\r\n this.MatrixVisibility = { 'visibility': 'hidden', 'display': 'none' };\r\n this.SelectionManager = new SelectionManager(this.HeaderRows, this.BodyRows);\r\n window.setTimeout(() => { \r\n console.log(\"Adj - Resize Timeout 3\");\r\n this._adjustMatrixWidth(); \r\n });\r\n }\r\n\r\n $('body').on('paste', event => {\r\n if ($(':focus', this._elementRef.nativeElement).length) {\r\n this.PasteMatrix(event);\r\n }\r\n });\r\n }\r\n\r\n this.ShiftKeyPressed = false;\r\n }\r\n\r\n private _timeout: number;\r\n CellValueChange($event, cell) {\r\n window.clearTimeout(this._timeout);\r\n cell.BodyCell.Value = cell.Value = $($event.target).text();\r\n let columnClass = parseInt(Object.keys(cell.Class).find(c => c.startsWith('column-')).replace('column-', ''));\r\n \r\n this._timeout = window.setTimeout(() => { this.AdjustColumn(columnClass); }, 500);\r\n }\r\n\r\n collapsedAll = false;\r\n ToggleCollapseAll() {\r\n this.collapsedAll = !this.collapsedAll;\r\n \r\n for(let rowIndex = 0; rowIndex < this.BodyRows.length; rowIndex++) {\r\n var row = this.BodyRows[rowIndex];\r\n this.CollapseRow(row, 0, this.collapsedAll);\r\n if (!row.Cells[0].Collapsible)\r\n this.BodyRows[rowIndex].Class[\"hidden\"] = this.collapsedAll;\r\n }\r\n }\r\n\r\n CellKeyDown(event) {\r\n if (event.keyCode == 9 || event.keyCode == 27) {\r\n window.getSelection().removeAllRanges();\r\n }\r\n else if (event.keyCode == 13) {\r\n event.preventDefault();\r\n }\r\n else \r\n event.stopPropagation();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n $(window).off(`resize.matrix`);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this._matrixService)\r\n $(this._elementRef).find('.matrix-editable-cell').attr('contenteditable', 'true');\r\n $(window).on(`resize.matrix`, () => {\r\n window.clearTimeout(this._resizeTimeout);\r\n this._resizeTimeout = window.setTimeout(() => {\r\n console.log(\"Adj - Resize Timeout\");\r\n this._adjustMatrixWidth();\r\n }, 100);\r\n });\r\n\r\n window.setTimeout(() => \r\n {\r\n this._adjustMatrixWidth();\r\n });\r\n }\r\n\r\n IsTitleCell(cell: MatrixCell): boolean {\r\n return cell.Class['title-cell'];\r\n }\r\n\r\n _adjustMatrixWidth(adjustedColumn?: number) {\r\n // var x = true;\r\n if (this.Model == null || !this.Model.Axes.length || !this.Model.Rows.length) {\r\n this.IsAdjusted = true;\r\n return;\r\n }\r\n\r\n var normalizedMatrix = this.SelectionManager.Normalized;\r\n let numRowHeaders = this.GetRowHeaders(this.Model)[0].Cells.length;\r\n\r\n for (let rowIndex = 0; rowIndex < normalizedMatrix.length; rowIndex++) {\r\n let row = normalizedMatrix[rowIndex];\r\n \r\n if (rowIndex < this.HeaderRows.length)\r\n row = this.HeaderRows[rowIndex];\r\n\r\n for (let columnIndex = 0; columnIndex < row.Cells.length; columnIndex++) {\r\n let matrixCell = row.Cells[columnIndex];\r\n\r\n let $templateCell = $(`#${matrixCell.ID}-template`, this._elementRef.nativeElement);\r\n let $renderedCell = $(`#${matrixCell.ID}-matrix`, this._elementRef.nativeElement);\r\n\r\n let isLastHeaderRow = rowIndex == (this.HeaderRows.length - 1);\r\n let isRowAxisLabelCell = isLastHeaderRow && columnIndex < numRowHeaders;\r\n let isFirstColumnHeaderInRow = isLastHeaderRow ? columnIndex == numRowHeaders : columnIndex == 1 && rowIndex < this.HeaderRows.length;\r\n let isLastTitleCellInRow = (rowIndex < this.HeaderRows.length - 1 && columnIndex == 0) || \r\n (rowIndex == this.HeaderRows.length - 1 && columnIndex == (numRowHeaders - 1));\r\n let isBodyCell = rowIndex > this.HeaderRows.length - 1 && columnIndex > numRowHeaders - 1;\r\n\r\n let measureContext = {\r\n $templateCell, \r\n $renderedCell, \r\n isBodyCell,\r\n isLastTitleCellInRow, \r\n matrixCell, \r\n isFirstColumnHeaderInRow,\r\n isRowAxisLabelCell,\r\n setBodyRowWrapper: rowIndex == this.HeaderRows.length && columnIndex == numRowHeaders,\r\n $matrix: $(this._elementRef.nativeElement)\r\n };\r\n \r\n fastdom.measure(function() {\r\n let width = this.$templateCell.outerWidth();\r\n let rowAxisLabelCellLeft = 0;\r\n let firstColumnHeaderInRowMarginLeft = 0;\r\n let bodyRowWrapperMarginLeft = 0;\r\n let bodyCellText = null;\r\n\r\n if (this.$renderedCell.hasClass('matrix-body-cell') || this.$renderedCell.hasClass('matrix-column-group-start'))\r\n width = width - 1;\r\n\r\n if (this.isLastTitleCellInRow)\r\n width = width + 1;\r\n\r\n let widths = $templateCell.prevAll().toArray().map(c => $(c).outerWidth());\r\n if (widths.length && (this.isRowAxisLabelCell || this.isFirstColumnHeaderInRow || this.setBodyRowWrapper)) {\r\n let sum = widths.reduce((a, v) => a + v);\r\n rowAxisLabelCellLeft = sum\r\n firstColumnHeaderInRowMarginLeft = sum;\r\n bodyRowWrapperMarginLeft = sum;\r\n }\r\n\r\n if (this.isBodyCell) {\r\n bodyCellText = this.$templateCell.text();\r\n }\r\n\r\n let mutateContext = {\r\n $templateCell: this.$templateCell, \r\n $renderedCell: this.$renderedCell, \r\n isLastTitleCellInRow: this.isLastTitleCellInRow, \r\n matrixCell: this.matrixCell, \r\n isFirstColumnHeaderInRow: this.isFirstColumnHeaderInRow,\r\n isRowAxisLabelCell: this.isRowAxisLabelCell,\r\n setBodyRowWrapper: this.setBodyRowWrapper,\r\n width,\r\n rowAxisLabelCellLeft,\r\n firstColumnHeaderInRowMarginLeft,\r\n bodyRowWrapperMarginLeft,\r\n isBodyCell: this.isBodyCell,\r\n bodyCellText: bodyCellText,\r\n };\r\n\r\n fastdom.mutate(function() {\r\n this.$renderedCell.width(this.width);\r\n \r\n if (this.isLastTitleCellInRow)\r\n (this.matrixCell).Class[\"last-title-cell\"] = true;\r\n if (this.isRowAxisLabelCell)\r\n this.$renderedCell.css('left', this.rowAxisLabelCellLeft);\r\n if (this.isFirstColumnHeaderInRow)\r\n this.$renderedCell.css('margin-left', this.firstColumnHeaderInRowMarginLeft);\r\n if (this.setBodyRowWrapper) \r\n this.$renderedCell.closest('.matrix-body-rows-wrapper').css('margin-left', this.bodyRowWrapperMarginLeft);\r\n if (this.isBodyCell) {\r\n this.$renderedCell.find('div').text(this.bodyCellText)\r\n }\r\n\r\n }, mutateContext);\r\n }, measureContext);\r\n }\r\n }\r\n \r\n this.MatrixVisibility = { 'visibility': 'visible', 'display': 'block' };\r\n this.IsAdjusted = true;\r\n }\r\n\r\n AdjustColumn(columnIndex: number) {\r\n let $cells = $(`.matrix-body-cell.numeric.column-${columnIndex} .matrix-text`, this._elementRef.nativeElement);\r\n \r\n if (!$cells.length)\r\n return;\r\n\r\n $cells = $cells.add($(`.matrix-column-header-leaf.column-${columnIndex} .matrix-text`, this._elementRef.nativeElement));\r\n $cells.css({'margin-left': '0', 'width': 'auto'});\r\n \r\n let widest = 0;\r\n //Calcing widest cell\r\n for(let i = 0; i < $cells.length; i++) {\r\n let cellText = $cells.eq(i);\r\n widest = widest < parseFloat(window.getComputedStyle(cellText[0]).width) ? parseFloat(window.getComputedStyle(cellText[0]).width) : widest;\r\n }\r\n\r\n $cells.width(widest);\r\n let availableWidth = $cells.eq(0).parent().outerWidth();\r\n $cells.css('margin-left', (availableWidth - widest) / 2);\r\n }\r\n\r\n SetColumnHeaders(matrix: MatrixDefinition) {\r\n this.HeaderRows = [];\r\n\r\n for(let cell of matrix.ColumnHeaders)\r\n this.SetColumnHeaderRecursive(cell, 0, true);\r\n\r\n let numRowHeaders = this.GetRowHeaders(matrix)[0].Cells.length;\r\n if (this.HeaderRows.length) {\r\n this.CreateEmptyTitleCells(numRowHeaders);\r\n this.PopulateAxisLabelCells(matrix);\r\n this.SetColumnHeaderClasses(numRowHeaders);\r\n this.SetColumnAxisLabelRow(matrix, numRowHeaders);\r\n }\r\n else {\r\n this.SetHeaderRow(matrix, numRowHeaders);\r\n }\r\n }\r\n\r\n private GenerateID() {\r\n var S4 = function() {\r\n return (((1+Math.random())*0x10000)|0).toString(16).substring(1);\r\n };\r\n return (S4()+S4()+\"-\"+S4()+\"-\"+S4()+\"-\"+S4()+\"-\"+S4()+S4()+S4());\r\n }\r\n\r\n private SetHeaderRow(matrix: MatrixDefinition, numRowHeaders: number) {\r\n let axisLabels: Array = [];\r\n for (let cs = 0; cs < numRowHeaders; cs++) {\r\n var cell = new MatrixCell(this.GenerateID());\r\n cell.ColSpan = 1;\r\n cell.Class = { 'plain': true, 'title-cell': true, 'axis-label': true };\r\n cell.Value = matrix.Axes[cs].Name;\r\n cell.AxisCellList.push(cell.Value);\r\n axisLabels.push(cell);\r\n }\r\n var row = new MatrixRow();\r\n var emptyColumnHeader = new MatrixCell(this.GenerateID());\r\n emptyColumnHeader.ColSpan = 1;\r\n emptyColumnHeader.Class = { 'numeric': true, 'matrix-column-header-leaf': true };\r\n row.Cells = [...axisLabels, emptyColumnHeader];\r\n this.HeaderRows.push(row);\r\n }\r\n\r\n private SetColumnHeaderRecursive(headerCell: MatrixHeaderCell, depth: number, isFirst: boolean) {\r\n if (this.HeaderRows.length == depth)\r\n this.HeaderRows.push(new MatrixRow());\r\n\r\n let columnIndex = this.HeaderRows[depth].Cells.length;\r\n this.HeaderRows[depth].Cells.push(this.ConvertHeaderCell(headerCell, columnIndex, isFirst))\r\n\r\n for (let i = 0; i < headerCell.Cells.length; i++) {\r\n this.SetColumnHeaderRecursive(headerCell.Cells[i], depth + 1, i == 0);\r\n }\r\n }\r\n\r\n private CreateEmptyTitleCells(numRowHeaders: number) {\r\n for (let i = 0; i < this.HeaderRows.length; i++) {\r\n let row = this.HeaderRows[i];\r\n\r\n if (i == this.HeaderRows.length - 1) {\r\n let axisLabels: Array = [];\r\n for (let cs = 0; cs < numRowHeaders; cs++) {\r\n var cell = new MatrixCell(this.GenerateID());\r\n cell.ColSpan = 1;\r\n cell.Class = { 'plain': true, 'title-cell': true, 'axis-label': true };\r\n axisLabels.push(cell);\r\n }\r\n row.Cells = [...axisLabels, ...row.Cells];\r\n }\r\n else {\r\n let cell = new MatrixCell(this.GenerateID());\r\n cell.ColSpan = numRowHeaders;\r\n cell.Class = { 'plain': true, 'title-cell': true };\r\n row.Cells = [cell, ...row.Cells];\r\n }\r\n }\r\n if (this.HeaderRows.length == 1) {\r\n let columnCells = this.HeaderRows[0].Cells.slice(numRowHeaders);\r\n for (var cellIndex = 0; cellIndex < columnCells.length; cellIndex++) {\r\n if (cellIndex > 0)\r\n columnCells[cellIndex].Class['matrix-column-group-start'] = false;\r\n }\r\n }\r\n }\r\n\r\n private PopulateAxisLabelCells(matrix: MatrixDefinition) {\r\n let axisLabelCells = this.HeaderRows[this.HeaderRows.length - 1].Cells;\r\n let firstRowHeaders = this.GetRowHeaders(matrix)[0].Cells;\r\n for (let i = 0; i < firstRowHeaders.length; i++) {\r\n let rowHeader = firstRowHeaders[i].HeaderCell;\r\n let axisIndex = matrix.Axes.findIndex(axis => axis.Identifier == rowHeader.AxisIdentifier);\r\n if (axisIndex != -1) {\r\n let cell = axisLabelCells[i];\r\n cell.Value = matrix.Axes[axisIndex].Name;\r\n cell.AxisCellList.push(cell.Value);\r\n }\r\n }\r\n }\r\n\r\n private SetColumnHeaderClasses(numRowHeaders: number) {\r\n for (let rowIndex = 0; rowIndex < this.HeaderRows.length; rowIndex++) {\r\n var row = this.HeaderRows[rowIndex];\r\n let column = 0;\r\n let nonTitleCells = (rowIndex == this.HeaderRows.length - 1) ?\r\n row.Cells.slice(numRowHeaders) : row.Cells.slice(1);\r\n for (let cell of nonTitleCells) {\r\n for (let i = column; i < column + cell.ColSpan; i++) {\r\n cell.Class[`column-${i}`] = true;\r\n }\r\n column += cell.ColSpan;\r\n }\r\n }\r\n }\r\n\r\n private SetColumnAxisLabelRow(matrix: MatrixDefinition, numRowHeaders: number) {\r\n if (matrix.ColumnHeaders != null) {\r\n var topRow = new MatrixRow();\r\n\r\n var emptyCell = new MatrixCell(this.GenerateID());\r\n emptyCell.ColSpan = numRowHeaders;\r\n emptyCell.Class = { 'plain': true, 'title-cell': true };\r\n topRow.Cells.push(emptyCell);\r\n\r\n var columnLabelCell = new MatrixCell(this.GenerateID());\r\n columnLabelCell.ColSpan = this.HeaderRows[this.HeaderRows.length - 1].Cells.length - numRowHeaders;\r\n columnLabelCell.Class = { 'plain': true, 'axis-label': true };\r\n columnLabelCell.AxisCellList = matrix.Axes\r\n .filter(axis => axis.Orientation == AxisOrientation.Column)\r\n .map(axis => axis.Name);\r\n columnLabelCell.Value = columnLabelCell.AxisCellList.join(' / ');\r\n topRow.Cells.push(columnLabelCell);\r\n\r\n this.HeaderRows.splice(0, 0, topRow);\r\n }\r\n }\r\n\r\n ConvertHeaderCell(headerCell: MatrixHeaderCell, columnIndex: number, isFirst: boolean) {\r\n let cell = new MatrixCell(this.GenerateID());\r\n cell.HeaderCell = headerCell;\r\n let isLeafFn = (headerCell) => !headerCell.Cells || !headerCell.Cells.length;\r\n let countLeafs = (headerCell: MatrixHeaderCell) => { \r\n return isLeafFn(headerCell) ? 1 : headerCell.Cells.map(cell => countLeafs(cell)).reduce((sum, count) => sum + count); \r\n }\r\n cell.ColSpan = countLeafs(headerCell);\r\n cell.Value = headerCell.Label;\r\n\r\n let isLeaf = isLeafFn(headerCell);\r\n let firstBodyCell = this.Model.Rows[0].Cells[columnIndex]; \r\n cell.Class = {\r\n 'matrix-column-header-leaf': isLeaf,\r\n 'plain': !isLeaf || !this.Model.Numeric,\r\n 'numeric': isLeaf && this.Model.Numeric,\r\n 'matrix-column-group-start': !isLeaf || isFirst,\r\n 'bold': headerCell.Bold\r\n };\r\n if (isLeaf)\r\n cell.Class[`column-${columnIndex}`] = true;\r\n\r\n return cell;\r\n }\r\n\r\n EditAxisByName(name: string) {\r\n let axisIdentifier = this.Model.Axes.find(axis => axis.Name == name).Identifier;\r\n this._matrixService.OpenAxisEdit(axisIdentifier);\r\n }\r\n\r\n Collapse(rowIndex: number, columnIndex: number) {\r\n let collapsed = !this.BodyRows[rowIndex].Cells[columnIndex].Collapsed;\r\n\r\n if(this.collapsedAll && !collapsed)\r\n this.collapsedAll = false;\r\n\r\n this.CollapseRow(this.BodyRows[rowIndex], columnIndex, collapsed);\r\n this.UpdateRowHeaderStyle(this.BodyRows, rowIndex, columnIndex, collapsed);\r\n \r\n while(true) {\r\n rowIndex++;\r\n let row = this.BodyRows[rowIndex];\r\n if (!row || row.Cells[columnIndex].Value && row.Cells[columnIndex].Value.length)\r\n break;\r\n\r\n this.CollapseRow(row, columnIndex, collapsed);\r\n this.UpdateRowHeaderStyle(this.BodyRows, rowIndex, columnIndex, collapsed);\r\n row.Class[\"hidden\"] = row.Collapsed;\r\n }\r\n }\r\n\r\n private CollapseRow(row: MatrixRow, columnIndex: number, collapsed: boolean){\r\n for(let i = columnIndex; i < row.Cells.length; i++){\r\n var cell = row.Cells[i];\r\n if(cell.Collapsible === true){\r\n cell.Collapsed = collapsed;\r\n }\r\n }\r\n\r\n var collapsibleCells = row.Cells.filter(c => c.Collapsible == true);\r\n row.Collapsed = collapsibleCells.length > 0 ? collapsibleCells.every(c => c.Collapsed == true) : collapsed;\r\n }\r\n\r\n private UpdateRowHeaderStyle(rows: MatrixRow[], rowIndex: number, columnIndex: number, collapsed: boolean){\r\n var row = rows[rowIndex];\r\n\r\n for(let i = 0; i < row.Cells.length; i++){\r\n var cell = row.Cells[i];\r\n if (cell.Class['row-header']){\r\n if(cell.Collapsible){\r\n cell.Class['row-header-divider'] = cell.Collapsed;\r\n continue;\r\n }\r\n\r\n var previousCells = row.Cells.slice(0, i);\r\n if(previousCells.length > 0){\r\n cell.Class['row-header-divider'] = previousCells.some(x => x.Collapsed);\r\n continue;\r\n }\r\n\r\n var nextRow = rows[rowIndex + 1];\r\n if(nextRow && nextRow.Cells[i].Value && !cell.Value)\r\n cell.Class['row-header-divider'] = true;\r\n }\r\n }\r\n }\r\n\r\n IsCellCollapsible(row: MatrixRow, cell: MatrixCell){\r\n var index = row.Cells.indexOf(cell);\r\n if(index == 0) return cell.Collapsible && row.Collapsible;\r\n\r\n var previousCells = row.Cells.slice(0, index)\r\n return cell.Collapsible && row.Collapsible && !previousCells.some(c => c.Collapsed);\r\n }\r\n\r\n SetMatrixBody(matrix: MatrixDefinition) {\r\n this.BodyRows = [];\r\n this.MatrixStyle = { 'max-height.px': matrix.MaxHeight }\r\n let rowIndex = 0;\r\n let rowHeaders = this.GetRowHeaders(matrix);\r\n let lastHeaderRow = this.HeaderRows[this.HeaderRows.length - 1];\r\n\r\n for (let row of matrix.Rows) {\r\n let bodyRow = new MatrixRow();\r\n bodyRow.Collapsible = true;\r\n\r\n for(let i = 0; i < rowHeaders[rowIndex].Cells.length - 1; i++){\r\n var cell = rowHeaders[rowIndex].Cells[i];\r\n cell.Collapsible = cell.Value != null;\r\n }\r\n\r\n bodyRow.Cells.push(...rowHeaders[rowIndex].Cells);\r\n\r\n for (let i = 0; i < row.Cells.length; i++) {\r\n let cell = row.Cells[i];\r\n let matrixCell = new MatrixCell(this.GenerateID());\r\n matrixCell.Value = cell.Value;\r\n matrixCell.BodyCell = cell;\r\n matrixCell.Tooltip = cell.Tooltip;\r\n matrixCell.Class = { 'matrix-body-cell': true };\r\n matrixCell.Class['numeric'] = this.Model.Numeric;\r\n matrixCell.Class['plain'] = !this.Model.Numeric;\r\n matrixCell.Class[`column-${i}`] = true;\r\n matrixCell.Class['pointer'] = !!cell.Action || !!cell.Model;\r\n matrixCell.Class['row-highlight'] = row.Highlight;\r\n matrixCell.Class['bold'] = cell.Bold\r\n\r\n bodyRow.Cells.push(matrixCell);\r\n }\r\n\r\n this.BodyRows.push(bodyRow);\r\n rowIndex++;\r\n }\r\n }\r\n\r\n GetRowHeaders(matrix: MatrixDefinition): Array {\r\n let results: Array = [];\r\n for (let cell of matrix.RowHeaders)\r\n this.SetRowHeaderRecursive(cell, results, null);\r\n return results;\r\n }\r\n \r\n SetRowHeaderRecursive(headerCell: MatrixHeaderCell, rows: Array, parentValues: Array) {\r\n let cell = new MatrixCell(this.GenerateID());\r\n cell.Value = headerCell.Label;\r\n cell.Class = { 'plain': true, 'row-header': true };\r\n cell.Class[`row-${rows.length}`] = true;\r\n cell.Class['row-highlight'] = headerCell.Highlight;\r\n cell.Class['bold'] = headerCell.Bold;\r\n\r\n cell.HeaderCell = headerCell;\r\n if (headerCell.Cells && headerCell.Cells.length) {\r\n let newParentValues = parentValues ? [...parentValues, cell] : [cell];\r\n for(let child of headerCell.Cells) {\r\n let beginningCount = rows.length;\r\n this.SetRowHeaderRecursive(child, rows, newParentValues);\r\n let endCount = rows.length;\r\n\r\n for (let i = beginningCount; i < endCount; i++)\r\n cell.Class[`row-${i}`] = true;\r\n\r\n //this clears values after the first\r\n newParentValues = newParentValues.map(c => {\r\n let newCell = new MatrixCell(this.GenerateID());\r\n newCell.Class = JSON.parse(JSON.stringify(c.Class));\r\n return newCell;\r\n });\r\n }\r\n\r\n let depth = parentValues && parentValues.length ? parentValues.length : 0;\r\n for(let i = depth; i < rows[rows.length-1].Cells.length; i++) {\r\n rows[rows.length-1].Cells[i].Class[\"matrix-row-group-end\"] = true;\r\n }\r\n }\r\n else {\r\n let matrixRow = new MatrixRow();\r\n cell.Class[\"matrix-row-header-leaf\"] = true;\r\n matrixRow.Cells = [...(parentValues || []), cell];\r\n rows.push(matrixRow);\r\n }\r\n }\r\n\r\n Click(bodyCell: MatrixBodyCell, cell: MatrixCell) {\r\n //Row Header Cells are excluded this way\r\n if (!bodyCell || this.ShiftKeyPressed)\r\n return;\r\n \r\n for(let row of this.BodyRows) {\r\n for (let cell of row.Cells) {\r\n cell.Class[\"selected\"] = false;\r\n }\r\n }\r\n\r\n if (this._multiSectionService)\r\n this._multiSectionService.OnLinkRequest(bodyCell.Action);\r\n else if (bodyCell.Action)\r\n this._linkService.Go(bodyCell.Action);\r\n else\r\n cell.Class[\"selected\"] = true;\r\n\r\n if (cell.BodyCell.Model) {\r\n $(this._elementRef.nativeElement).trigger('grid-row-click', cell.BodyCell.Model);\r\n }\r\n }\r\n\r\n Scroll(event) {\r\n $('.matrix-header', this._elementRef.nativeElement).scrollLeft(event.target.scrollLeft);\r\n $('.matrix-header-rows-wrapper', this._elementRef.nativeElement).css('top', -1 * event.target.scrollTop);\r\n }\r\n\r\n MouseLeave(rowIndex: number) {\r\n $('.highlighted').removeClass('highlighted');\r\n }\r\n\r\n MouseDown(event, area: Area, rowIndex: number, columnIndex: number) {\r\n if (!this.ShiftKeyPressed) {\r\n event.preventDefault();\r\n this.SelectionManager.StartSelect(area, rowIndex, columnIndex);\r\n this.SelectionManager.MoveSelect(area, rowIndex, columnIndex);\r\n }\r\n }\r\n\r\n MouseMove(event, area: Area, rowIndex: number, columnIndex: number) {\r\n this.SelectionManager.MoveSelect(area, rowIndex, columnIndex);\r\n }\r\n\r\n MouseUp(event, area: Area, rowIndex: number, columnIndex: number) {\r\n this.SelectionManager.EndSelect(area, rowIndex, columnIndex);\r\n let scrollTop = $(document).scrollTop();\r\n $('.matrix', this._elementRef.nativeElement).focus();\r\n $(document).scrollTop(scrollTop);\r\n }\r\n\r\n KeyUp(event) {\r\n if (event.keyCode == 16)\r\n this.ShiftKeyPressed = false;\r\n \r\n let $cellText = $('.selected > .matrix-text', this._elementRef.nativeElement);\r\n let selection = this.SelectionManager.GetSelection();\r\n if ($cellText.hasClass('focussed') && (selection.Cells.length > 1 || selection.Cells[0].Cells.length > 1)) {\r\n this.SelectionManager.StartSelect(\r\n selection.StartPosition.Area, \r\n selection.StartPosition.RowIndex, \r\n selection.StartPosition.ColumnIndex);\r\n this.SelectionManager.EndSelect(\r\n selection.StartPosition.Area,\r\n selection.StartPosition.RowIndex,\r\n selection.StartPosition.ColumnIndex);\r\n }\r\n }\r\n\r\n KeyDown(event) {\r\n if (event.keyCode == 27) {\r\n this.SelectionManager.ClearSelection();\r\n }\r\n else if (event.keyCode == 8 || event.keyCode == 46) {\r\n event.preventDefault();\r\n let selection = this.SelectionManager.GetSelection();\r\n for (let row of selection.Cells) {\r\n for (let cell of row.Cells) {\r\n if (cell.BodyCell) {\r\n $(`#${cell.ID}-matrix > .matrix-text`, this._elementRef.nativeElement).text('');\r\n cell.BodyCell.Value = cell.Value = '';\r\n }\r\n }\r\n }\r\n }\r\n else if (event.keyCode == 16) {\r\n this.ShiftKeyPressed = true;\r\n }\r\n else if (event.keyCode == 67 && event.ctrlKey) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n let $input = $(this.textarea.nativeElement);\r\n $input.val(this.SelectionManager.GetCopyText());\r\n $input.removeAttr('disabled');\r\n $input.select();\r\n document.execCommand('copy');\r\n $input.attr('disabled', 'disabled');\r\n $(this.textarea.nativeElement).blur();\r\n }\r\n else if (event.keyCode == 65 && event.ctrlKey) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.SelectionManager.StartSelect('ColumnHeader', 0, 0);\r\n this.SelectionManager.EndSelect(\r\n 'Body', \r\n this.BodyRows.length - 1, \r\n this.BodyRows[0].Cells.length - this.BodyRows[0].Cells.filter(c => c.BodyCell == null).length - 1);\r\n }\r\n else if (event.keyCode == 13) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n let $cellText = $('.selected > .matrix-text', this._elementRef.nativeElement);\r\n if (!$cellText.hasClass('focussed')) {\r\n this.MakeCellEditable($cellText);\r\n }\r\n else {\r\n $cellText.blur();\r\n $('.matrix', this._elementRef.nativeElement).focus();\r\n this.SelectionManager.MoveSelection(Direction.Down, event.shiftKey);\r\n }\r\n }\r\n else if (event.keyCode == 9 || event.keyCode >= 37 && event.keyCode <= 40) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n if (event.keyCode == 37) {\r\n this.SelectionManager.MoveSelection(Direction.Left, event.shiftKey);\r\n }\r\n else if (event.keyCode == 38) {\r\n this.SelectionManager.MoveSelection(Direction.Up, event.shiftKey);\r\n }\r\n else if (event.keyCode == 39) {\r\n this.SelectionManager.MoveSelection(Direction.Right, event.shiftKey);\r\n }\r\n else if (event.keyCode == 40) {\r\n this.SelectionManager.MoveSelection(Direction.Down, event.shiftKey);\r\n }\r\n else if (event.keyCode == 9) {\r\n let $cellText = $('.selected > .matrix-text', this._elementRef.nativeElement);\r\n if (!$cellText.hasClass('focussed')) {\r\n this.SelectionManager.MoveSelection(event.shiftKey ? Direction.Left : Direction.Right, false);\r\n }\r\n else {\r\n $cellText.blur();\r\n $('.matrix', this._elementRef.nativeElement).focus();\r\n this.SelectionManager.MoveSelection(event.shiftKey ? Direction.Left : Direction.Right, false);\r\n }\r\n }\r\n }\r\n else if (!event.ctrlKey) {\r\n let $cellText = $('.selected > .matrix-text', this._elementRef.nativeElement);\r\n this.MakeCellEditable($cellText);\r\n if ($(this._elementRef.nativeElement).closest('matrix-editor-wrapper').length > 0)\r\n $cellText.text('');\r\n }\r\n }\r\n\r\n private MakeCellEditable($cellText) {\r\n if ($(this._elementRef.nativeElement).closest('matrix-editor-wrapper').length == 0)\r\n return;\r\n\r\n $cellText.addClass('focussed');\r\n $cellText.focus();\r\n var node = ($cellText[0]);\r\n if (!node.childNodes || !node.childNodes.length)\r\n node.appendChild(document.createTextNode(\"\"));\r\n window.getSelection().setPosition(($cellText[0]).childNodes[0], $cellText.text().length);\r\n \r\n }\r\n\r\n PasteMatrix(event) {\r\n event.preventDefault();\r\n this.SelectionManager.PasteFromSelection(event.originalEvent.clipboardData.getData('text/plain'));\r\n window.setTimeout(() => this._adjustMatrixWidth(), 200);\r\n }\r\n\r\n public DoubleClickRowHeader(cell: MatrixCell, rowIndex: number, columnIndex: number) {\r\n this.SelectionManager.SelectRow(rowIndex, columnIndex);\r\n }\r\n\r\n public DoubleClickColumnHeader(cell: MatrixCell, rowIndex: number, columnIndex: number) {\r\n this.SelectionManager.SelectColumn(rowIndex, columnIndex);\r\n }\r\n\r\n public DoubleClickBodyCell(cell: MatrixCell, rowIndex: number, columnIndex: number) {\r\n this.SelectionManager.StartSelect('Body', rowIndex, columnIndex);\r\n this.SelectionManager.EndSelect('Body', rowIndex, columnIndex);\r\n let $cellText = $('.selected > .matrix-text', this._elementRef.nativeElement);\r\n this.MakeCellEditable($cellText);\r\n }\r\n\r\n @ViewChild('positioning', { static: false })\r\n public positioningElement: ElementRef;\r\n\r\n public ContextMenuAxis(event, area: Area, cell: MatrixCell, rowIndex: number, columnIndex: number) {\r\n if (!this._matrixService && !this.ShowCollapseAll) {\r\n return;\r\n }\r\n let $cell = $(event.target).closest('.matrix-cell');\r\n let $matrix = $cell.closest('.matrix');\r\n\r\n let offset = { \r\n left: $cell.offset().left - $matrix.offset().left,\r\n top: $cell.offset().top - $matrix.offset().top\r\n };\r\n\r\n this.MatrixAxisEditable = !!cell.HeaderCell || area == \"ColumnHeader\";\r\n\r\n if (this.MatrixAxisEditable && !!cell.HeaderCell) {\r\n let axis = this.Model.Axes.find(c => cell.HeaderCell.AxisIdentifier == c.Identifier);\r\n this.MatrixAxisValuesEditable = !axis.DefinedInData;\r\n }\r\n\r\n $(this.positioningElement.nativeElement).css('top', offset.top + $cell.outerHeight()).css('left', offset.left);\r\n if (!this.dialogTrigger) {\r\n this.dialogTrigger = new MDialogTrigger(this.positioningElement, this._viewContainerRef, this._dialogService);\r\n this.dialogTrigger.menu = this.dialog;\r\n this.dialogTrigger.ngAfterContentInit();\r\n }\r\n \r\n this.dialogTrigger.openMenu();\r\n this.dialogCellInfo = { area, cell, rowIndex, columnIndex };\r\n event.preventDefault();\r\n }\r\n\r\n public EditAxisValues() {\r\n this._matrixService.OpenAxisValueEdit(this.dialogCellInfo.cell.HeaderCell);\r\n }\r\n\r\n public EditAxis() {\r\n let headerCell = this.dialogCellInfo.cell.HeaderCell\r\n if (headerCell) {\r\n let axis = this.Model.Axes.find(axis => axis.Identifier == headerCell.AxisIdentifier);\r\n if (axis && axis.Type == AxisType.Expression)\r\n this._matrixService.OpenAxisAdd(true);\r\n else\r\n this._matrixService.OpenAxisEdit(headerCell.AxisIdentifier);\r\n }\r\n else if (this.dialogCellInfo.area == \"ColumnHeader\") {\r\n this._matrixService.OpenAxisEdit(this.dialogCellInfo.cell.AxisCellList[0]);\r\n }\r\n }\r\n\r\n public AddAxis() {\r\n this._matrixService.OpenAxisAdd(false);\r\n }\r\n\r\n public AddExpressionAxis() {\r\n this._matrixService.OpenAxisAdd(true);\r\n }\r\n\r\n public DeleteAxis() {\r\n if (this.dialogCellInfo.cell.HeaderCell) {\r\n this._matrixService.DeleteAxis(this.dialogCellInfo.cell.HeaderCell.AxisIdentifier);\r\n }\r\n if (this.dialogCellInfo.area == \"ColumnHeader\") {\r\n this._matrixService.DeleteAxis(this.dialogCellInfo.cell.AxisCellList[0]);\r\n }\r\n }\r\n\r\n UpdateMatrix(column?: number) {\r\n console.log(\"Adj - Update Matrix\");\r\n this._adjustMatrixWidth(column);\r\n if (this._matrixService) {\r\n let data = [];\r\n for (let i = 0; i < this.BodyRows.length; i++) {\r\n data.push([]);\r\n for (let j = 0; j < this.BodyRows[0].Cells.length; j++) {\r\n if (this.BodyRows[i].Cells[j].BodyCell == null)\r\n continue;\r\n data[i].push(this.BodyRows[i].Cells[j].Value.trim());\r\n }\r\n }\r\n this._matrixService.Change(JSON.stringify(data));\r\n }\r\n }\r\n}\r\n\r\nexport type Area = 'Body' | 'RowHeader' | 'ColumnHeader' | 'Normalized';\r\n\r\n\r\nclass SelectionManager {\r\n private selectionStart: MatrixPosition;\r\n private selectionEnd: MatrixPosition;\r\n private numRowHeaders = 0;\r\n private isSelecting = false;\r\n \r\n public get Normalized() {\r\n return this.NormalizedHeaderRows.concat(this._bodyRows);\r\n }\r\n\r\n private get NormalizedHeaderRows() {\r\n var projected: Array = [];\r\n for (var row of this._headerRows) {\r\n var headerRow = new MatrixRow();\r\n for (var cell of row.Cells) {\r\n for (var i = 0; i < cell.ColSpan; i++) {\r\n headerRow.Cells.push(cell);\r\n }\r\n }\r\n projected.push(headerRow);\r\n }\r\n return projected;\r\n }\r\n\r\n constructor(private _headerRows: MatrixRow[], private _bodyRows: MatrixRow[]) {\r\n this.numRowHeaders = this._bodyRows[0].Cells.findIndex(c => c.BodyCell != null);\r\n }\r\n\r\n private ClearSelectionStyles() {\r\n for (let row of this.Normalized) {\r\n for (let cell of row.Cells) {\r\n cell.Class[\"selected\"] = false;\r\n cell.Class[\"selection-member\"] = false;\r\n }\r\n }\r\n }\r\n\r\n ClearSelection() {\r\n this.ClearSelectionStyles();\r\n this.selectionStart = null;\r\n this.selectionEnd = null;\r\n }\r\n\r\n StartSelect(area: Area, rowIndex: number, columnIndex: number) {\r\n this.isSelecting = true;\r\n this.selectionStart = new MatrixPosition(area, rowIndex, columnIndex);\r\n }\r\n\r\n MoveSelect(area: Area, rowIndex: number, columnIndex: number) {\r\n if (this.isSelecting) {\r\n this.selectionEnd = new MatrixPosition(area, rowIndex, columnIndex);\r\n this.UpdateSelectionStyles();\r\n }\r\n }\r\n\r\n EndSelect(area: Area, rowIndex: number, columnIndex: number) {\r\n this.isSelecting = false;\r\n this.selectionEnd = new MatrixPosition(area, rowIndex, columnIndex);\r\n this.UpdateSelectionStyles();\r\n }\r\n\r\n SelectColumn(rowIndex, columnIndex) {\r\n this.ClearSelection();\r\n this.selectionStart = new MatrixPosition('ColumnHeader', rowIndex, columnIndex);\r\n var numColumns = this.Normalized[this.Normalized.length - 1].Cells.length;\r\n var normalizedIndex = this.GetNormalizedColumnHeaderIndex(this.selectionStart, numColumns);\r\n this.selectionEnd = new MatrixPosition('Normalized', 10000, normalizedIndex);\r\n this.UpdateSelectionStyles();\r\n }\r\n\r\n SelectRow(rowIndex, columnIndex) {\r\n this.ClearSelection();\r\n this.selectionStart = new MatrixPosition('RowHeader', rowIndex, columnIndex);\r\n this.selectionEnd = new MatrixPosition('Body', rowIndex, 10000);\r\n this.UpdateSelectionStyles();\r\n }\r\n\r\n UpdateSelectionStyles() {\r\n this.ClearSelectionStyles();\r\n \r\n let selection = this.GetSelection();\r\n selection.StartCell.Class[\"selected\"] = true;\r\n for (let row of selection.Cells) {\r\n for (let cell of row.Cells) {\r\n if (selection.Cells.length > 1 || selection.Cells[0].Cells.length > 1)\r\n cell.Class[\"selection-member\"] = true;\r\n }\r\n }\r\n\r\n this.RemoveWindowSelection();\r\n }\r\n\r\n RemoveWindowSelection() {\r\n window.getSelection().removeAllRanges();\r\n }\r\n\r\n private GetSelectionPoints() {\r\n var normalizedStart = this.GetNormalized(this.selectionStart);\r\n var normalizedEnd = this.GetNormalized(this.selectionEnd);\r\n\r\n var topRow = normalizedStart.RowIndex < normalizedEnd.RowIndex ? normalizedStart.RowIndex : normalizedEnd.RowIndex;\r\n var botRow = normalizedStart.RowIndex > normalizedEnd.RowIndex ? normalizedStart.RowIndex : normalizedEnd.RowIndex;\r\n var leftColumn = normalizedStart.ColumnIndex < normalizedEnd.ColumnIndex ? normalizedStart.ColumnIndex : normalizedEnd.ColumnIndex;\r\n var rightColumn = normalizedStart.ColumnIndex > normalizedEnd.ColumnIndex ? normalizedStart.ColumnIndex : normalizedEnd.ColumnIndex;\r\n\r\n if (botRow > this.Normalized.length)\r\n botRow = this.Normalized.length - 1;\r\n if (rightColumn > this.Normalized[botRow].Cells.length)\r\n rightColumn = this.Normalized[botRow].Cells.length - 1;\r\n\r\n return { topRow, botRow, leftColumn, rightColumn };\r\n }\r\n\r\n GetSelection() {\r\n var { topRow, botRow, leftColumn, rightColumn } = this.GetSelectionPoints();\r\n\r\n let result = new Array();\r\n for (var rowIndex = topRow; rowIndex <= botRow; rowIndex++) {\r\n let row = new MatrixRow();\r\n for (var columnIndex = leftColumn; columnIndex <= rightColumn; columnIndex++) {\r\n row.Cells.push(this.Normalized[rowIndex].Cells[columnIndex]);\r\n }\r\n result.push(row);\r\n }\r\n\r\n var normalizedStart = this.GetNormalized(this.selectionStart);\r\n var normalizedEnd = this.GetNormalized(this.selectionEnd);\r\n var startCell = this.Normalized[normalizedStart.RowIndex].Cells[normalizedStart.ColumnIndex];\r\n return {\r\n Cells: result,\r\n NumHeaderRows: Math.min(this.NormalizedHeaderRows.length, botRow) - topRow,\r\n StartCell: startCell,\r\n StartPosition: normalizedStart,\r\n EndPosition: normalizedEnd\r\n };\r\n }\r\n\r\n MoveSelection(direction: Direction, modifySelection: boolean) {\r\n if (!this.selectionStart) {\r\n return;\r\n }\r\n\r\n let selection = this.GetSelection();\r\n let newStartRowIndex = selection.StartPosition.RowIndex;\r\n let newStartColumnIndex = selection.StartPosition.ColumnIndex;\r\n let newEndRowIndex = selection.EndPosition.RowIndex;\r\n let newEndColumnIndex = selection.EndPosition.ColumnIndex;\r\n \r\n switch(direction) {\r\n case Direction.Left: \r\n if (newStartColumnIndex != 0 && !modifySelection)\r\n newStartColumnIndex--;\r\n if (newEndColumnIndex != 0 && modifySelection)\r\n newEndColumnIndex--;\r\n break;\r\n case Direction.Up:\r\n if (newStartRowIndex != 0 && !modifySelection)\r\n newStartRowIndex--;\r\n if (newEndRowIndex != 0 && modifySelection)\r\n newEndRowIndex--;\r\n break;\r\n case Direction.Right:\r\n var lastColumn = this.Normalized[this.Normalized.length - 1].Cells.length - 1;\r\n if (newStartColumnIndex != lastColumn && !modifySelection)\r\n newStartColumnIndex++;\r\n if (newEndColumnIndex != lastColumn && modifySelection)\r\n newEndColumnIndex++;\r\n break;\r\n case Direction.Down:\r\n var lastRow = this.Normalized.length - 1;\r\n if (newStartRowIndex != lastRow && !modifySelection)\r\n newStartRowIndex++;\r\n if (newEndRowIndex != lastRow && modifySelection)\r\n newEndRowIndex++;\r\n break;\r\n }\r\n\r\n this.StartSelect('Normalized', newStartRowIndex, newStartColumnIndex);\r\n\r\n if (modifySelection)\r\n this.EndSelect('Normalized', newEndRowIndex, newEndColumnIndex);\r\n else\r\n this.EndSelect('Normalized', newStartRowIndex, newStartColumnIndex);\r\n }\r\n\r\n PasteFromSelection(data: string) {\r\n let pastedRows = data.split('\\n').map(c => c.split('\\t'));\r\n //Excel seems to copy an extra newline at the end.\r\n if (pastedRows.length >= 2) {\r\n if (pastedRows[0].length >= 2 && pastedRows[pastedRows.length - 1].length == 1 && !pastedRows[pastedRows.length - 1][0]) {\r\n debugger;\r\n pastedRows = pastedRows.slice(0, -1);\r\n }\r\n }\r\n let selectionPoints = this.GetSelectionPoints();\r\n\r\n for(let rowIndex = 0; rowIndex < pastedRows.length; rowIndex++) {\r\n let actualRowIndex = rowIndex + selectionPoints.topRow\r\n if (actualRowIndex > this.Normalized.length) //Accounting for pasting 2 rows into the last row\r\n continue;\r\n let row = pastedRows[rowIndex];\r\n for(let columnIndex = 0; columnIndex < row.length ; columnIndex++) {\r\n let actualColumnIndex = columnIndex + selectionPoints.leftColumn;\r\n if (actualColumnIndex > this.Normalized[rowIndex].Cells.length) \r\n continue;\r\n if (!this.Normalized[actualRowIndex].Cells[actualColumnIndex].BodyCell) \r\n continue;\r\n this.Normalized[actualRowIndex].Cells[actualColumnIndex].Value = row[columnIndex];\r\n if (this.Normalized[actualRowIndex].Cells[actualColumnIndex].BodyCell)\r\n this.Normalized[actualRowIndex].Cells[actualColumnIndex].BodyCell.Value = row[columnIndex];\r\n }\r\n }\r\n }\r\n\r\n private GetNormalizedColumnHeaderIndex(matrixPosition, matrixWidth): number {\r\n var row = this._headerRows[matrixPosition.RowIndex];\r\n var columnIndex = 0;\r\n var column = row.Cells[columnIndex];\r\n var maxIndex = column.ColSpan - 1;\r\n for (var normalizedIndex = 0; normalizedIndex < matrixWidth; normalizedIndex++) {\r\n if (columnIndex == matrixPosition.ColumnIndex)\r\n return normalizedIndex;\r\n if (maxIndex > normalizedIndex)\r\n continue;\r\n else if (maxIndex == normalizedIndex) {\r\n columnIndex++;\r\n if (row.Cells.length == columnIndex)\r\n return normalizedIndex;\r\n\r\n column = row.Cells[columnIndex];\r\n maxIndex += column.ColSpan;\r\n }\r\n }\r\n }\r\n\r\n GetNormalized(matrixPosition: MatrixPosition) {\r\n if (matrixPosition.Area == 'Body') {\r\n return new MatrixPosition('Normalized', matrixPosition.RowIndex + this._headerRows.length, matrixPosition.ColumnIndex + this.numRowHeaders);\r\n }\r\n else if (matrixPosition.Area == 'ColumnHeader') {\r\n var normalizedColumnIndex = this.GetNormalizedColumnHeaderIndex(matrixPosition, this._bodyRows[0].Cells.length);\r\n return new MatrixPosition('Normalized', matrixPosition.RowIndex, normalizedColumnIndex);\r\n }\r\n else if (matrixPosition.Area == 'RowHeader') {\r\n return new MatrixPosition('Normalized', matrixPosition.RowIndex + this._headerRows.length, matrixPosition.ColumnIndex)\r\n }\r\n\r\n return matrixPosition;\r\n }\r\n\r\n GetCopyText() {\r\n let selection = this.GetSelection();\r\n let cells = this.RemoveDuplicateHeaders(selection);\r\n let result = this.getString(cells);\r\n return result;\r\n }\r\n\r\n private RemoveDuplicateHeaders(selection) {\r\n let cells: Array = selection.Cells;\r\n for (var rowIndex = 0; rowIndex < selection.NumHeaderRows; rowIndex++) {\r\n var row = cells[rowIndex];\r\n var index = 0;\r\n for (var column of row.Cells) {\r\n if (column.ColSpan > 1) {\r\n row.Cells.splice(index + 1, column.ColSpan - 1);\r\n }\r\n index++;\r\n }\r\n }\r\n return cells;\r\n }\r\n\r\n private getString(copyCells: Array) {\r\n let result = \"\";\r\n for (let rowIndex = 0; rowIndex < copyCells.length; rowIndex++) {\r\n let row = copyCells[rowIndex];\r\n for (let cellIndex = 0; cellIndex < row.Cells.length; cellIndex++) {\r\n let cell = row.Cells[cellIndex];\r\n result += cell.Value || '';\r\n let colspan = cell.ColSpan || 1;\r\n if (cellIndex == row.Cells.length - 1)\r\n colspan -= 1;\r\n for (let i = 0; i < colspan; i++)\r\n result += '\\t';\r\n }\r\n if (rowIndex != copyCells.length - 1)\r\n result += '\\n';\r\n }\r\n return result;\r\n }\r\n}\r\n\r\nclass MatrixPosition {\r\n constructor(public Area: Area, public RowIndex: number, public ColumnIndex: number) { }\r\n}\r\n\r\n// @Directive({\r\n// selector: '[setWidth]',\r\n \r\n// })\r\n// export class setWidthDirective implements AfterViewChecked {\r\n// ngAfterViewChecked(): void {\r\n// if ((this.cell)._style)\r\n// return;\r\n// (this.cell)._style = { \"width.px\": (this.elementRef.nativeElement).clientWidth };\r\n// // console.log(\"setWidth\");\r\n// }\r\n\r\n// @Input('setWidth')\r\n// public cell : MatrixCell;\r\n\r\n// constructor(private elementRef: ElementRef) {}\r\n// }\r\n\r\n\r\nenum Direction { Left, Up, Right, Down }","","import { Component, Inject, Input, ElementRef, HostBinding, Directive, ViewChild, AfterViewInit, ViewChildren, QueryList, Pipe, PipeTransform } from '@angular/core';\r\nimport { GridComponent } from '../grid/grid.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ModalService } from \"../../services/ModalService\";\r\nimport { Page, ModalStyle } from \"../page/page.models\";\r\nimport { NavigationType } from \"../../services/NavigationService\";\r\nimport * as $ from 'jquery';\r\nimport { ComponentDefinition } from '../component/component.models';\r\nimport { Link } from '../actions/actions.models';\r\nimport { LinkService } from '../../services/LinkService';\r\nimport { OnDestroy } from '@angular/core';\r\nimport { ViewEncapsulation } from '@angular/core';\r\nimport { MatrixDefinition, MatrixHeaderCell, MatrixBodyCell, MatrixComponentDefinition } from './matrix.models';\r\nimport { TooltipModel } from '../tooltip/tooltip.component';\r\n\r\n@Component({\r\n selector: 'matrix-component',\r\n templateUrl: './matrix.component.html',\r\n styleUrls: [],\r\n})\r\nexport class MatrixComponent {\r\n compDef: MatrixComponentDefinition;\r\n\r\n constructor(compDef: ComponentDefinition) {\r\n this.compDef = compDef;\r\n if (this.compDef.Model) {\r\n this.compDef.Model.MaxHeight = this.compDef.MaxHeight;\r\n this.compDef.Model.CenteredOn = this.compDef.CenteredOn;\r\n this.compDef.Model.HasError = this.compDef.HasError;\r\n }\r\n }\r\n}\r\n\r\n@Pipe({ name: 'RowHeader' })\r\nexport class RowHeaderPipe implements PipeTransform {\r\n transform(cells: MatrixCell[], filterToRowHeaders: boolean) {\r\n if (cells == null)\r\n return [];\r\n return cells.filter(c => {\r\n return filterToRowHeaders == !c.Class['matrix-body-cell']; \r\n });\r\n }\r\n}\r\n\r\nexport class MatrixRow {\r\n Cells: MatrixCell[] = [];\r\n Class: {} = {};\r\n Collapsed = false;\r\n Collapsible = false;\r\n}\r\n\r\nexport class MatrixCell {\r\n Class: {} = {};\r\n Value: string;\r\n RowSpan: number;\r\n ColSpan: number;\r\n BodyCell: MatrixBodyCell;\r\n HeaderCell: MatrixHeaderCell;\r\n AxisCellList: Array = [];\r\n Tooltip: TooltipModel;\r\n Collapsible: boolean = false;\r\n Collapsed: boolean = false;\r\n\r\n constructor(public ID: string) {};\r\n}\r\n\r\nexport class Dimension {\r\n Width: number;\r\n Height: number;\r\n}","import { ComponentDefinition } from \"../component/component.models\";\r\nimport { Link } from \"../actions/actions.models\";\r\nimport { AxisType } from \"../form/fieldcomponents/range-buckets-field.component\";\r\nimport { TooltipModel } from \"../tooltip/tooltip.component\";\r\n\r\n\r\nexport class MatrixComponentDefinition extends ComponentDefinition {\r\n public HasError: boolean;\r\n public CenteredOn: number;\r\n public MaxHeight: any;\r\n public Model: MatrixDefinition;\r\n}\r\n\r\nexport class MatrixDefinition {\r\n public AllowCopy: boolean;\r\n public Numeric: boolean;\r\n public RowHeaders: Array;\r\n public ColumnHeaders: Array;\r\n public Rows: Array;\r\n public Axes: Array;\r\n public DefaultValue: string;\r\n public HasError: boolean;\r\n public CenteredOn: number;\r\n public MaxHeight: any;\r\n}\r\n\r\nexport class MatrixAxis {\r\n public Orientation: AxisOrientation;\r\n public Name: string;\r\n public Expression: string;\r\n public Identifier: string;\r\n public Type: AxisType;\r\n public Precision: number;\r\n public Interpolate: boolean;\r\n public IsVariable: boolean;\r\n public DefinedInData: boolean;\r\n}\r\n\r\nexport enum AxisOrientation {\r\n Subtable, //Don't use\r\n Row,\r\n Column\r\n}\r\n\r\nexport class MatrixHeaderCell {\r\n public Label: string;\r\n public Cells: Array = [];\r\n public Value: string;\r\n public AxisIdentifier: string;\r\n public Floor: string; \r\n public Ceiling: string;\r\n public Highlight: boolean;\r\n public Bold: boolean;\r\n}\r\n\r\nexport class MatrixBody {\r\n public Rows: MatrixBodyRow[];\r\n}\r\n\r\nexport class MatrixBodyRow {\r\n public Cells: MatrixBodyCell[] = [];\r\n public Highlight: boolean;\r\n}\r\n\r\nexport class MatrixBodyCell {\r\n public Value: string;\r\n public Action: Link;\r\n public Model: any;\r\n public Selected: boolean;\r\n public Numeric: boolean;\r\n public Bold: boolean;\r\n public Type: string;\r\n public Tooltip: TooltipModel;\r\n public get displayValue() {\r\n return !this.Value ? \" \" : this.Value; //NBSP Over there \r\n }\r\n}","\r\n
\r\n
\r\n
{{data.PrimaryText}}
\r\n
{{data.PrimarySubText}}
\r\n
{{data.SubText}}
\r\n
\r\n \r\n
{{detail}}
\r\n
{{structuredDetail.Text}}
\r\n
{{data.Content}}
\r\n
","import { Component, Input, ElementRef } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NavigationService } from '../../services/NavigationService'\r\nimport { MediaBox } from \"./media-box.models\";\r\nimport * as $ from 'jquery';\r\nimport { LinkService } from '../../services/LinkService';\r\n\r\n@Component({\r\n selector: '[media-box]',\r\n templateUrl: './media-box.component.html',\r\n styleUrls: ['./media-box.component.less']\r\n})\r\nexport class MediaBoxComponent {\r\n private _data: MediaBox;\r\n @Input() \r\n set data(value: MediaBox) {\r\n this._data = value;\r\n if (!this._data.PrimaryText || this._data.PrimaryText.length == 0)\r\n this._data.PrimaryText = \"[Primary text missing]\";\r\n };\r\n get data() {\r\n return this._data;\r\n }\r\n\r\n constructor(private linkService: LinkService) {\r\n }\r\n \r\n ClickPrimaryText() {\r\n if(this.data.PrimaryTextLink != null)\r\n this.linkService.Go(this._data.PrimaryTextLink);\r\n }\r\n\r\n ClickCircle() {\r\n if(this.data.MediaCircleLink == null && this.data.PrimaryTextLink != null)\r\n this.linkService.Go(this._data.PrimaryTextLink);\r\n else if (this.data.MediaCircleLink != null)\r\n this.linkService.Go(this._data.MediaCircleLink);\r\n }\r\n}\r\n","import { TooltipDirective, TooltipModel } from \"../tooltip/tooltip.component\";\r\nimport { Link } from \"../actions/actions.models\";\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\nimport { ChipDefinition } from '../chip/chip.models';\r\nimport { IndicatorColor } from \"../header/header.component\";\r\n\r\nexport class MediaCircle {\r\n public Content: string;\r\n public GradientWeight: number;\r\n public StructuredContent: StructuredString[];\r\n public Type: MediaCircleType;\r\n public FixedBackgroundColor: string;\r\n public Gradient: MediaCircleGradient;\r\n public PieChart: ComponentDefinition;\r\n public Tooltip: TooltipModel;\r\n}\r\n\r\nexport class StructuredString {\r\n public Font: string;\r\n public Value: string;\r\n}\r\n\r\nexport enum MediaCircleType {\r\n Content_Gradient,\r\n Fixed_Background,\r\n Image\r\n}\r\n\r\nexport enum MediaCircleGradient {\r\n GreyBlue,\r\n RedYellowGreen\r\n}\r\n\r\nexport class MediaBox {\r\n public PrimaryText: string;\r\n public PrimaryTextTooltip: string;\r\n public PrimarySubText: string;\r\n public SubText: string;\r\n public Details: string[];\r\n public StructuredDetails: MediaBoxStructuredDetail[];\r\n public Content: string;\r\n public Placeholder: string;\r\n public PrimaryBackground: boolean;\r\n public ImageUrl: string;\r\n public Circle: MediaCircle;\r\n public Tooltip: TooltipModel;\r\n public PrimaryTextLink: Link;\r\n public MediaCircleLink: Link;\r\n public Chips: ChipDefinition[];\r\n}\r\n\r\nexport class MediaBoxStructuredDetail {\r\n public Text: string;\r\n public Tooltip: string;\r\n public IsError: boolean;\r\n}","
\r\n
\r\n\r\n
{{Page.Header}}
\r\n
1 || (Page.Links.length == 1 && !Page.Links[0].IsPrimary))\">more_vert
\r\n
\r\n
{{action.Text}}
\r\n
\r\n
\r\n\r\n","import { Component, Input, Directive, ElementRef, ViewChild } from '@angular/core';\r\nimport { NavigationService } from '../../services/NavigationService'\r\nimport { Page } from \"../page/page.models\";\r\nimport { LinkService } from \"../../services/LinkService\";\r\nimport { Link } from \"../actions/actions.models\";\r\n\r\n@Component({\r\n selector: 'mobile-header',\r\n templateUrl: './mobile-header.component.html',\r\n styleUrls: ['./mobile-header.component.less'],\r\n})\r\nexport class MobileHeaderComponent {\r\n @Input()\r\n public Page: Page;\r\n\r\n public showNavMenu: boolean;\r\n public showPageActionMenu: boolean;\r\n\r\n constructor(private navigationService: NavigationService, \r\n private _linkService: LinkService,\r\n elementRef: ElementRef) {\r\n navigationService.Register((p: Page) => {\r\n this.Page = p;\r\n }, c => {\r\n this.Page.Header = \"Loading...\";\r\n this.showNavMenu = false;\r\n this.showPageActionMenu = false;\r\n });\r\n }\r\n\r\n LinkClick(link: Link) {\r\n this._linkService.Go(link);\r\n this.showNavMenu = false;\r\n this.showPageActionMenu = false;\r\n }\r\n\r\n MenuToggle(event) {\r\n this.showNavMenu = !this.showNavMenu;\r\n if (this.showNavMenu)\r\n this.showPageActionMenu = false;\r\n }\r\n\r\n HideMenu() {\r\n this.showNavMenu = false;\r\n this.showPageActionMenu = false;\r\n }\r\n\r\n TogglePageActions() {\r\n this.showPageActionMenu = !this.showPageActionMenu;\r\n if (this.showPageActionMenu)\r\n this.showNavMenu = false;\r\n }\r\n \r\n HidePageActions() { \r\n this.showPageActionMenu = false; \r\n this.showNavMenu = false; \r\n };\r\n}","\r\n\r\n","import { Component, Input, AfterViewInit, ElementRef, OnDestroy, ViewChild } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NavigationService } from '../../services/NavigationService'\r\nimport { ComponentDefinition } from \"./../component/component.models\";\r\nimport { ModalHeaderWrapperModel } from \"./modal-header-wrapper.models\";\r\nimport * as $ from 'jquery';\r\nimport { ModalService } from '../../services/ModalService';\r\n\r\n@Component({\r\n selector: 'modal-header-wrapper',\r\n templateUrl: './modal-header-wrapper.component.html',\r\n styleUrls: ['./modal-header-wrapper.component.less']\r\n})\r\nexport class ModalHeaderWrapperComponent implements AfterViewInit, OnDestroy {\r\n public CompDef: ModalHeaderWrapperModel;\r\n private _timer: number;\r\n constructor(compDef: ComponentDefinition, private _elementRef: ElementRef, private _modalService: ModalService) {\r\n this.CompDef = compDef;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n $(window).resize(() => { this.Resize(); });\r\n this._timer = window.setTimeout(c => this.Resize(), 1000);\r\n } \r\n\r\n ngOnDestroy(): void {\r\n clearTimeout(this._timer);\r\n }\r\n\r\n private Resize() {\r\n this._modalService.StoreRenderingInfo();\r\n //this.ModalHeaderService.StoreRenderingInfo();\r\n let $element = $(this._elementRef.nativeElement);\r\n\r\n let $header = $element.children().eq(0);\r\n $header.css({ 'display': 'block' });\r\n\r\n let $body = $element.children().eq(1);\r\n $body.css({ 'height': '2000px' });\r\n let originalDisplay = $body.css('display');\r\n $body.css({ 'display': 'block' });\r\n $body.css({ 'overflow-y': 'auto' });\r\n\r\n let scrollTop = $body.scrollTop();\r\n $body.css({ 'max-height': 'initial' });\r\n\r\n let total = $element.parent().parent().outerHeight(true);\r\n let headerHeight = $header.outerHeight(true);\r\n let bodyHeight = total - headerHeight - 50;\r\n $body.css({ 'max-height': bodyHeight + 'px' });\r\n $body.css({ 'height': 'auto' });\r\n $body.scrollTop(scrollTop);\r\n $body.css({ 'display': originalDisplay });\r\n this._modalService.RestoreRenderingInfo();\r\n this._timer = window.setTimeout(c => this.Resize(), 1000);\r\n };\r\n}\r\n","
\r\n
{{page.Header}}
close
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, Inject, Input, ElementRef, HostBinding } from '@angular/core';\r\nimport { GridComponent } from '../grid/grid.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ModalService } from \"../../services/ModalService\";\r\nimport { Page, ModalStyle } from \"../page/page.models\";\r\nimport { NavigationType } from \"../../services/NavigationService\";\r\nimport * as $ from 'jquery';\r\nimport { ConnectionMessagingService } from '../../services/ConnectionMessagingService';\r\n\r\n@Component({\r\n selector: 'modal-page',\r\n templateUrl: './modal-page.component.html',\r\n styleUrls: ['./modal-page.component.less'],\r\n})\r\nexport class ModalPageComponent {\r\n _page: Page;\r\n ContentStyleOverride = {};\r\n private _isExpanded = false;\r\n\r\n public ToggleExpand() {\r\n this._isExpanded = !this._isExpanded;\r\n if (this._isExpanded) {\r\n this.PageStyle[\"width\"] = \"auto\";\r\n this.PageStyle[\"margin\"] = \"50px\";\r\n this.ContentStyleOverride[\"max-height\"]=\"80vh\";\r\n }\r\n else {\r\n this.resetPageStyle();\r\n }\r\n }\r\n\r\n @Input() \r\n public get page() {\r\n return this._page;\r\n }\r\n public set page(value: Page) {\r\n this._page = value;\r\n this.PageStyle = {\r\n };\r\n \r\n this._page.Components.forEach(c => (c)._Modal = true);\r\n\r\n this.resetPageStyle();\r\n }\r\n\r\n public ModalService: ModalService;\r\n \r\n private resetPageStyle() {\r\n delete this.PageStyle[\"margin\"];\r\n delete this.ContentStyleOverride[\"max-height\"];\r\n\r\n switch (this._page.ModalWidth) {\r\n case \"Small\":\r\n this.PageStyle[\"width\"] = \"300px\";\r\n break;\r\n case \"Large\":\r\n this.PageStyle[\"width\"] = \"800px\";\r\n break;\r\n case \"ExtraLarge\":\r\n this.PageStyle[\"width\"] = \"1200px\";\r\n break;\r\n default:\r\n this.PageStyle[\"width\"] = \"500px\";\r\n break;\r\n }\r\n }\r\n\r\n set IsLoading(value: boolean) {\r\n }\r\n\r\n PageStyle: {};\r\n\r\n constructor(private _connectionMessagingService: ConnectionMessagingService) {\r\n this.IsLoading = true;\r\n }\r\n\r\n @HostBinding('class') \r\n public get Class() {\r\n return this.page && this.page.ModalStyle == ModalStyle.Primary ? \"ui-primary\" : \"\";\r\n }\r\n\r\n public Close() {\r\n this.ModalService.Close(null);\r\n }\r\n}\r\n","modal.component.html","import { Component, Inject, Input, ElementRef, HostBinding, TemplateRef, ViewChild, Directive, AfterContentInit, OnDestroy, ViewContainerRef } from '@angular/core';\r\nimport { GridComponent } from '../grid/grid.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ModalService } from \"../../services/ModalService\";\r\nimport { Page, ModalStyle } from \"../page/page.models\";\r\nimport { NavigationType } from \"../../services/NavigationService\";\r\nimport * as $ from 'jquery';\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport { Subject } from \"rxjs\";\r\n\r\n\r\n@Component({\r\n selector: 'modal',\r\n template: `modal.component.html`,\r\n styleUrls: ['modal.component.less']\r\n})\r\nexport class ModalComponent {\r\n @Input()\r\n public positioning: string;\r\n public OnClose: Subject;\r\n\r\n close(): any {\r\n this.OnClose.next();\r\n }\r\n \r\n @ViewChild(TemplateRef, { static: false }) templateRef: TemplateRef;\r\n\r\n constructor() {\r\n this.OnClose = new Subject();\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: `[m-modal-trigger]`,\r\n host: {\r\n '(click)': '_handleClick($event)',\r\n },\r\n })\r\nexport class MModalTrigger implements AfterContentInit, OnDestroy {\r\n _cb: any;\r\n public PaneElement: HTMLDivElement;\r\n private _menuOpen: boolean = false;\r\n private _scrollCheck: number;\r\n\r\n @Input('mdialogtrigger') \r\n menu: ModalComponent;\r\n\r\n constructor(private _element: ElementRef,\r\n private _viewContainerRef: ViewContainerRef) {\r\n }\r\n\r\n ngAfterContentInit() {\r\n this._checkMenu();\r\n this.menu.OnClose.subscribe(() => {\r\n if (this.PaneElement)\r\n this.PaneElement.remove();\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n }\r\n\r\n toggleMenu(): void {\r\n return this._menuOpen ? this.closeMenu() : this.openMenu();\r\n }\r\n\r\n setOpenBinding(cb: any) {\r\n this._cb = cb;\r\n }\r\n\r\n openMenu() {\r\n if (!this._menuOpen) {\r\n this.createPanelElement();\r\n if (this._cb)\r\n this._cb();\r\n this.PaneElement.classList.add(...[\"m-dialog-wrapper\"]);\r\n let viewContainer = this._viewContainerRef;\r\n let viewRef = viewContainer.createEmbeddedView(this.menu.templateRef, null);\r\n \r\n viewRef.detectChanges();\r\n\r\n viewRef.rootNodes.forEach(rootNode => {\r\n this.PaneElement.appendChild(rootNode);\r\n });\r\n\r\n //TODO: If Modal....\r\n setTimeout(() => {\r\n $(document).one('click', (e) => {\r\n this.menu.close();\r\n });\r\n });\r\n }\r\n }\r\n\r\n closeMenu(): void {\r\n }\r\n\r\n private _checkMenu() {\r\n if (!this.menu) {\r\n console.error(\"Missing Dialog\");\r\n }\r\n }\r\n\r\n _handleClick(event: MouseEvent): void {\r\n this.toggleMenu();\r\n event.stopPropagation();\r\n }\r\n\r\n private createPanelElement() {\r\n this.PaneElement = document.createElement('div');\r\n document.body.appendChild(this.PaneElement);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
{{group.Name}}\r\n ({{group.Items.length}})\r\n
\r\n
\r\n
\r\n {{item.Name}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
","import { Component, ElementRef } from '@angular/core'; // , Input, ElementRef, AfterViewInit, OnInit, HostListener, ViewChild\r\nimport { trigger, state, style, animate, transition } from '@angular/animations';\r\nimport { ComponentContext, ComponentDefinition, EntityChange, EntityChangeType } from \"../component/component.models\";\r\nimport { ConnectionMessagingService } from '../../services/ConnectionMessagingService';\r\nimport { FormMessage, FormComponentDefinition, FormComponent, ValidationContext, ValidationMessages } from '../form/form.component';\r\nimport { FormConnectionService } from '../../services/LoadService';\r\nimport { Observable, forkJoin, from, zip as rxZip } from 'rxjs';\r\nimport { finalize } from 'rxjs/operators'\r\n\r\n@Component({\r\n selector: 'multi-document-listing',\r\n templateUrl: './multi-document-listing.component.html',\r\n styleUrls: ['./multi-document-listing.component.less'],\r\n // can't use css transition to animate from 0px to auto height or vice versa. angular animations work great for this tho\r\n animations: [\r\n trigger('openClose', [\r\n transition('open => collapsed', [\r\n animate('.3s ease-in-out')\r\n ]),\r\n transition('collapsed => open', [\r\n animate('.3s ease-in-out')\r\n ]),\r\n state('open', style({\r\n height: '*'\r\n })),\r\n state('collapsed', style({\r\n height: '0'\r\n }))\r\n ])\r\n ]\r\n})\r\nexport class MultiDocumentListingComponent {\r\n constructor(compDef: ComponentDefinition,\r\n private connectionMessagingService: ConnectionMessagingService) {\r\n\r\n this.componentDefinition = compDef\r\n if (this.componentDefinition.Groups.length && this.componentDefinition.Groups[0].Items.length)\r\n this.selectItem(this.componentDefinition.Groups[0].Items[0])\r\n this.componentDefinition.Groups.filter(x => x.Items.length >= 10)\r\n .forEach(g => g.collapsed = true)\r\n }\r\n\r\n componentDefinition: MultiDocumentListingComponentDefinition;\r\n selectedItem: ComponentDefinition;\r\n\r\n selectItem(item: MultiDocumentGroupItem) {\r\n // what to do with item context?\r\n this.componentDefinition.Groups.forEach(g => g.Items.forEach(i => i.selected = false));\r\n item.selected = true;\r\n if (!item.Context)\r\n return;\r\n\r\n this.selectedItem = new ComponentDefinition({ Type: 'AsyncComponent', ComponentContext: item.Context });\r\n this.connectionMessagingService.RequestUpdatedComponent(item.Context)\r\n var selectedItemChange = new EntityChange({\r\n ChangeType: EntityChangeType.Custom,\r\n CustomName: this.componentDefinition.ItemClickEvent,\r\n CustomChangeParameters: item.Context.Parameters,\r\n });\r\n this.connectionMessagingService.NotifyEntityChange([selectedItemChange]);\r\n }\r\n}\r\n\r\nclass MultiDocumentListingComponentDefinition extends ComponentDefinition {\r\n Groups: MultiDocumentGroup[]\r\n ItemClickEvent: string;\r\n}\r\n\r\nclass MultiDocumentGroup {\r\n Name: string;\r\n Items: MultiDocumentGroupItem[];\r\n\r\n collapsed = false;\r\n}\r\n\r\nclass MultiDocumentGroupItem {\r\n Name: string;\r\n Context: ComponentContext;\r\n\r\n selected = false;\r\n}","
\r\n
{{message}}
\r\n\r\n
\r\n
\r\n
\r\n delete\r\n
\r\n\r\n \r\n
\r\n
{{file.name}}
\r\n
\r\n
{{file.message}}
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
{{error}}
\r\n\r\n
Submit
\r\n","import { Component, Input, ElementRef, AfterViewInit, OnInit, HostListener, ViewChild } from '@angular/core';\r\nimport { NavigationService, NavigationType } from '../../services/NavigationService'\r\nimport { ModalService } from \"../../services/ModalService\";\r\nimport { HttpClient } from '@angular/common/http'\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\nimport { FormMessage, FormComponentDefinition, FormComponent, ValidationContext, ValidationMessages } from '../form/form.component';\r\nimport { FormConnectionService } from '../../services/LoadService';\r\nimport { Observable, forkJoin, from, zip as rxZip } from 'rxjs';\r\nimport { finalize } from 'rxjs/operators'\r\nimport { ConnectionMessagingService } from '../../services/ConnectionMessagingService';\r\ndeclare var zip; // added globally by zip-js\r\n\r\n@Component({\r\n selector: 'multi-file-upload',\r\n templateUrl: './multi-file-upload.component.html',\r\n styleUrls: ['./multi-file-upload.component.less'],\r\n providers: [FormConnectionService]\r\n})\r\nexport class MultiFileUploadComponent {\r\n dropping: boolean;\r\n CompDef: MultiFileUploadModel;\r\n private FormComponentReferences: Array = new Array();\r\n\r\n isUploading: boolean;\r\n message = '';\r\n error = '';\r\n Files: FileData[] = [];\r\n IsSubmitting = false;\r\n Results: Array = new Array();\r\n\r\n constructor(private _http: HttpClient, \r\n private _elementRef: ElementRef, \r\n compDef: ComponentDefinition,\r\n private ModalService: ModalService,\r\n private _connectionMessagingService: ConnectionMessagingService,\r\n private formConnectionService: FormConnectionService) {\r\n this.CompDef = compDef;\r\n zip.workerScriptsPath = \"/Scripts-External/\";\r\n formConnectionService.OnFormSet = () => {\r\n let form = this.formConnectionService.Form;\r\n form.CustomSubmit = (a) => {};\r\n this.FormComponentReferences.push(form);\r\n }\r\n }\r\n\r\n Submit() {\r\n if (this.FormComponentReferences.length == 0) {\r\n this.ModalService.Close();\r\n return;\r\n }\r\n\r\n this.IsSubmitting = true;\r\n var submitEvents = new Array>();\r\n this.FormComponentReferences.forEach(c => {\r\n c.OnSubmit();\r\n c.SubmitComplete.subscribe((msg: FormMessage) => {\r\n if (msg.Success) {\r\n let i = this.FormComponentReferences.indexOf(c); // collection will be modified by file uploads completing (in random order) which means we need to recalc index\r\n this.Results.push(msg);\r\n this.Files.splice(i, 1);\r\n this.FormComponentReferences.splice(i, 1);\r\n if (this.Files.filter(f => f.formComponent != null).length == 0) {\r\n var allChanges = [];\r\n this.Results.filter(r => r.Link && r.Link.EntityChanges).forEach(r => r.Link.EntityChanges.forEach(e => {\r\n allChanges.push(e);\r\n }));\r\n if (allChanges.length) {\r\n this._connectionMessagingService.NotifyEntityChange(allChanges);\r\n }\r\n \r\n if (this.CompDef.PostUrl)\r\n {\r\n this.error = '';\r\n this._http.post(this.CompDef.PostUrl, this.Results).subscribe(r => {\r\n this.ModalService.Close();\r\n }, e => {\r\n this.error = e.message;\r\n });\r\n }\r\n else {\r\n this.ModalService.Close(NavigationType.Refresh);\r\n }\r\n }\r\n } \r\n else {\r\n this.IsSubmitting = false;\r\n }\r\n })\r\n });\r\n\r\n forkJoin(submitEvents).subscribe(() => {\r\n console.log('Submits complete fork');\r\n });\r\n\r\n Promise.all(submitEvents).then(() => {\r\n console.log('Submits complete');\r\n });\r\n }\r\n\r\n @HostListener('dragover', ['$event'])\r\n DragStart($event) {\r\n this.dropping = true;\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n }\r\n\r\n \r\n @HostListener('dragleave', ['$event'])\r\n DragEnd($event) {\r\n this.dropping = false;\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n }\r\n\r\n DeleteDetail(file: FileData) {\r\n let i = this.Files.indexOf(file)\r\n this.Files.splice(i, 1);\r\n this.FormComponentReferences.splice(i, 1);\r\n }\r\n\r\n @HostListener('drop', ['$event'])\r\n Drop($event: DragEvent) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n this.uploadFiles(Array.from($event.dataTransfer.files))\r\n }\r\n\r\n uploadFiles(files: File[]) {\r\n this.dropping = false;\r\n zip.useWebWorkers = false;\r\n\r\n for (let file of files) {\r\n if (file.type == 'application/x-zip-compressed' || file.type == 'application/zip')\r\n this.processZipFile(file)\r\n else {\r\n let fileData: FileData = { name: file.name }\r\n this.Files.push(fileData)\r\n\r\n if (this.CompDef.CalculationURL) {\r\n fileData.message = 'Calculating...';\r\n this.getCalculationValues(file.name)\r\n .pipe(finalize(() => fileData.message = ''))\r\n .subscribe(x => fileData.formComponent = this.getFormComponent(file, x))\r\n }\r\n else\r\n fileData.formComponent = this.getFormComponent(file)\r\n }\r\n\r\n };\r\n \r\n return false;\r\n }\r\n\r\n private processZipFile(file: File) {\r\n zip.createReader(new zip.BlobReader(file), (reader) => {\r\n reader.getEntries((entries: any[]) => {\r\n entries = entries\r\n .filter(x => x.filename.indexOf(\"__MACOSX\") < 0) // ignore mac osx files\r\n .filter(x => !x.directory) // ignore directory entries\r\n // remove sub-folders from filenames\r\n for (let entry of entries) {\r\n var filePath = entry.filename.split('/');\r\n entry.filename = filePath[filePath.length - 1];\r\n }\r\n entries = entries.filter(x => x.filename[0] !== '.') // ignore files starting with period (have to do this after removing sub-folders)\r\n\r\n var manifestFiles = entries.filter(r => r.filename.toLowerCase() == 'manifest.csv');\r\n\r\n if (manifestFiles.length) {\r\n var manifest = manifestFiles[0];\r\n this.message = 'Parsing manifest...'\r\n manifest.getData(new zip.BlobWriter(), (blob) => {\r\n var file = this.blobToFile(blob, manifest.filename);\r\n var fr = new FileReader();\r\n fr.onload = ev => {\r\n this._http.post('/Editor/ParseManifest', { TemplateForm: this.CompDef.FormComponentDefinition.Form.FieldDefinitionsObject, Manifest: fr.result }).subscribe((resp: ManifestResult) => {\r\n this.message = '';\r\n this.processEntries(entries.filter(x => x != manifest), resp)\r\n });\r\n };\r\n fr.readAsText(file);\r\n });\r\n }\r\n else\r\n this.processEntries(entries);\r\n });\r\n }, null);\r\n }\r\n\r\n private processEntries(entries: any[], manifest?: ManifestResult) {\r\n entries.forEach(entry => {\r\n var fileData: FileData = { name: entry.filename, percent: 0}\r\n this.Files.push(fileData)\r\n\r\n var manifestRow = manifest && manifest.Manifests.find(r => entry.filename.startsWith(r.Data[\"FileName\"]) || entry.filename.startsWith(r.Data[\"File Name\"]));\r\n let $processEntry = from(new Promise(resolve => {\r\n entry.getData(new zip.BlobWriter(), (blob) => {\r\n resolve(this.blobToFile(blob, entry.filename));\r\n fileData.percent = 100;\r\n }, (currentIndex, size) => fileData.percent = currentIndex * 100.0 / size);\r\n }));\r\n\r\n if (!manifestRow && this.CompDef.CalculationURL) {\r\n fileData.message = 'Processing and calculating...'\r\n rxZip($processEntry, this.getCalculationValues(entry.filename))\r\n .pipe(finalize(() => fileData.message = ''))\r\n .subscribe(([file, calcValues]) => fileData.formComponent = this.getFormComponent(file, calcValues))\r\n }\r\n else {\r\n fileData.message = 'Processing...'\r\n $processEntry\r\n .pipe(finalize(() => fileData.message = ''))\r\n .subscribe(x => fileData.formComponent = this.getFormComponent(x, manifestRow && manifestRow.Data, manifestRow && manifestRow.Validations));\r\n }\r\n });\r\n }\r\n\r\n private getFormComponent(file: File, values?: object, validations?: any) {\r\n let formComp: FormComponentDefinition = $.extend(true, {}, this.CompDef.FormComponentDefinition);\r\n formComp.DisableInitialValidation = true;\r\n\r\n var fileUpload = formComp.Form.FieldDefinitions.filter(r => r.ControlType == 'FileUploadStream' || r.ControlType == 'FileUpload');\r\n fileUpload[0].InitializeWithFile = file;\r\n\r\n if (values)\r\n for (let fieldName of Object.keys(values)) {\r\n var fld = formComp.Form.FieldDefinitions.find(x => x.Name == fieldName)\r\n if (fld)\r\n fld.Value = values[fieldName]\r\n }\r\n\r\n if (validations)\r\n formComp.PermanentValidations = validations;\r\n\r\n return formComp;\r\n }\r\n\r\n private getCalculationValues(fileName: string) {\r\n return this._http.post(this.CompDef.CalculationURL, { Value: fileName })\r\n }\r\n\r\n private blobToFile(theBlob: Blob, fileName:string): File {\r\n var b: any = theBlob;\r\n //A Blob() is almost a File() - it's just missing the two properties below which we will add\r\n b.lastModifiedDate = new Date();\r\n b.name = fileName;\r\n \r\n //Cast to a File() type\r\n return theBlob;\r\n }\r\n}\r\n\r\nexport class MultiFileUploadModel extends ComponentDefinition {\r\n FormComponentDefinition: FormComponentDefinition;\r\n PostUrl: string;\r\n CalculationURL: string;\r\n}\r\n\r\nexport class ManifestResult {\r\n public Manifests: Array;\r\n}\r\n\r\nexport class ManifestResultRow {\r\n public Data: {};\r\n public Validations: ValidationMessages;\r\n}\r\n\r\nclass FileData {\r\n name: string\r\n percent?: number\r\n message?: string\r\n formComponent?: FormComponentDefinition\r\n}\r\n","
\r\n
{{Icon}} {{Text}}
\r\n
\r\n \r\n
\r\n
","import { Component, ElementRef, Input, Optional } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { forkJoin, merge } from \"rxjs\";\r\nimport { tap, first, map } from 'rxjs/operators';\r\nimport { AssessmentService } from '../../../services/AssessmentService';\r\nimport { NavigationService } from '../../../services/NavigationService';\r\nimport { AssessmentModel } from '../../assessment/assessment.models';\r\nimport { ComponentDefinition } from '../../component/component.models';\r\nimport { FormConnectionService, IValidationReceiver, SectionService, ValidationProvider } from '../../../services/LoadService';\r\nimport { FormComponent, ValidationContext, ValidationWrapper, FormComponentDefinition, FormIntegrationService, MultiplexedFormIntegrationService } from '../../form/form.component';\r\nimport * as $ from 'jquery';\r\n\r\n@Component({\r\n selector: 'collapsible-form-wrapper',\r\n templateUrl: './collapsible-form-wrapper.component.html',\r\n styleUrls: ['./collapsible-form-wrapper.component.less'],\r\n})\r\nexport class CollapsibleFormWrapperComponent {\r\n Collapsed: boolean;\r\n Text: string;\r\n Icon: string;\r\n\r\n constructor(private elementRef: ElementRef) {\r\n this.Collapsed = true;\r\n }\r\n\r\n private updateIcon(value: any) {\r\n let icon = null;\r\n\r\n switch (value.AnswerType) {\r\n case \"YesNo\":\r\n case \"YesNoNA\":\r\n case \"PassFail\":\r\n icon = \"swap_vert\";\r\n break;\r\n case \"Radio\":\r\n icon = \"radio_button_checked\";\r\n break;\r\n case \"Dropdown\":\r\n icon = \"arrow_drop_down\";\r\n break;\r\n case \"Numeric\":\r\n icon = \"tag\";\r\n break;\r\n case \"Date\":\r\n case \"DateTime\":\r\n case \"ApproximateMonth\":\r\n icon = \"calendar_today\";\r\n break;\r\n case \"Text\":\r\n case \"TextArea\":\r\n icon = \"create\";\r\n break;\r\n default: \r\n icon = \"help\";\r\n break;\r\n }\r\n this.Icon = icon;\r\n }\r\n\r\n Toggle() {\r\n this.Collapsed = !this.Collapsed;\r\n }\r\n\r\n\r\n}\r\n","import { Component, Directive, ElementRef, Input, Optional } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { forkJoin, merge } from \"rxjs\";\r\nimport { tap, first, map } from 'rxjs/operators';\r\nimport { AssessmentService } from '../../../services/AssessmentService';\r\nimport { NavigationService } from '../../../services/NavigationService';\r\nimport { AssessmentModel } from '../../assessment/assessment.models';\r\nimport { ComponentDefinition } from '../../component/component.models';\r\nimport { FormConnectionService, IValidationReceiver, SectionService, ValidationProvider } from '../../../services/LoadService';\r\nimport { FormComponent, ValidationContext, ValidationWrapper, FormComponentDefinition, FormIntegrationService, MultiplexedFormIntegrationService } from '../../form/form.component';\r\nimport * as $ from 'jquery';\r\n\r\n@Directive({\r\n selector: '[form-integration]',\r\n providers:[FormIntegrationService]\r\n})\r\nexport class FormIntegrationDirective {\r\n constructor() {\r\n }\r\n}\r\n","
\r\n
\r\n
{{CompDef.State.QuestionSetDescription}}
\r\n \r\n
\r\n
\r\n
\r\n \r\n
{{GetQuestionFromForm(questionFormComponent).Code}}
\r\n \r\n
\r\n {{GetQuestionFromForm(questionFormComponent).Label}}\r\n : {{GetDefaultValue(questionFormComponent)}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { forkJoin, merge, pipe, Observable } from \"rxjs\";\r\nimport { tap, first, map, debounceTime, switchMap } from 'rxjs/operators';\r\nimport { AssessmentService } from '../../../services/AssessmentService';\r\nimport { NavigationService } from '../../../services/NavigationService';\r\nimport { AssessmentModel, Question, QuestionEvaluation } from '../../assessment/assessment.models';\r\nimport { ComponentDefinition } from '../../component/component.models';\r\nimport { FormConnectionService, ISectionServiceListener, IValidationReceiver, SectionService, ValidationProvider } from '../../../services/LoadService';\r\nimport { FormComponent, ValidationContext, ValidationWrapper, FormComponentDefinition, MultiplexedFormIntegrationService, IMultiplexFormIntegrationListener } from '../../form/form.component';\r\nimport { ValidationResponse } from '../multisection.component';\r\nimport { EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'multisection-assessment',\r\n templateUrl: './multisection-assessment.component.html',\r\n styleUrls: ['./multisection-assessment.component.less'],\r\n providers: [MultiplexedFormIntegrationService]\r\n})\r\nexport class MultisectionAssessmentComponent implements IMultiplexFormIntegrationListener, ISectionServiceListener {\r\n public CompDef: AssessmentModel;\r\n public PageIndex: number;\r\n public State: string;\r\n public IsSinglePage: boolean;\r\n public IsSubmitting: boolean;\r\n public Summary: ComponentDefinition;\r\n private _forms: FormComponent[] = [];\r\n\r\n public readonly STATE_QUESTIONS : string = \"Questions\";\r\n public readonly STATE_LOADING: string = \"Loading\";\r\n public readonly STATE_SAVING: string = \"Saving\";\r\n public readonly STATE_SUMMARY: string = \"Summary\";\r\n private _lastQuestionsOrdered: any[];\r\n private _lastValidations: ValidationContext[];\r\n private _isInitialized: boolean;\r\n private _requestEvaluation: EventEmitter;\r\n\r\n constructor(private _http: HttpClient, \r\n private _navigationService: NavigationService, \r\n compDef: ComponentDefinition, \r\n private subpageService: SectionService,\r\n private multiplexedFormIntegrationService: MultiplexedFormIntegrationService) {\r\n this.CompDef = compDef;\r\n this.PageIndex = this.CompDef.PageIndex;\r\n \r\n // TODO: Pass info in ComponentDefinition to indicate this\r\n this.IsSinglePage = this.CompDef.NumQuestionSets == 1;\r\n multiplexedFormIntegrationService.RegisterListener(this);\r\n subpageService.RegisterListener(this);\r\n\r\n this._requestEvaluation = new EventEmitter();\r\n this._requestEvaluation.pipe(debounceTime(250), \r\n switchMap(t => {\r\n var promise = new Promise((x) => this.subpageService.RunEvaluation());\r\n return promise;\r\n }))\r\n .subscribe();\r\n\r\n this.State = this.STATE_QUESTIONS;\r\n }\r\n\r\n ReceiveEvaluationResults(evaluationResults: QuestionEvaluation[]) {\r\n evaluationResults.forEach(question => {\r\n var questionDef = this.CompDef.State.QuestionDefinitions.find(r => r.ID == question.QuestionID);\r\n if (!questionDef)\r\n return;\r\n questionDef.Hidden = question.Hidden;\r\n questionDef.DefaultValue = question.DefaultValue\r\n });\r\n }\r\n\r\n FromFormInitialValues(arg0: any[]) {\r\n this.ValuesChangedInternal(arg0, true);\r\n }\r\n\r\n FromSectionRunValidations() {\r\n this.multiplexedFormIntegrationService.ExternalRunValidations();\r\n }\r\n\r\n FromSectionAttemptedSubmit() {\r\n this.multiplexedFormIntegrationService.ExternalAttemptedSubmit();\r\n }\r\n\r\n NotifyValidations(validations: ValidationResponse, sectionData: any) {\r\n }\r\n\r\n ValuesChanged(data: any[]) {\r\n this.ValuesChangedInternal(data, false)\r\n }\r\n\r\n private ValuesChangedInternal(data: any[], initial: boolean) {\r\n this._lastQuestionsOrdered = data;\r\n if (this._lastValidations && this._lastValidations.filter(r => r).filter(r => r.ValidationWrapper.HasErrors).length > 0) {\r\n this.subpageService.SetError(true);\r\n }\r\n else {\r\n this.subpageService.ClearError();\r\n this.subpageService.SetData(data, initial);\r\n if (this._isInitialized)\r\n this._requestEvaluation.emit();\r\n }\r\n }\r\n\r\n //From The front-end\r\n ValidationsHappened(data: ValidationContext[]) {\r\n this._lastValidations = data.filter(r => r);\r\n }\r\n\r\n public GetQuestionFormComponents() { \r\n return this.GetQuestions();\r\n }\r\n\r\n public GetQuestions() {\r\n let questionFormsToShow: FormComponentDefinition[] = [];\r\n\r\n for (var i = 0; i < this.CompDef.State.QuestionFormComponents.length; i++) {\r\n var questionForm = this.CompDef.State.QuestionFormComponents[i];\r\n var questionID = questionForm.Form.FieldDefinitions.filter(r => r.Name == \"QuestionID\")[0].Value;\r\n questionFormsToShow.push(questionForm);\r\n }\r\n\r\n return questionFormsToShow;\r\n };\r\n\r\n public GetDefaultValue(questionForm: FormComponentDefinition) {\r\n var q = this.GetQuestionFromForm(questionForm)\r\n return q.DefaultValue || (q.HasDefaultedValue && q.Answer)\r\n }\r\n\r\n public HasDefaultedValue(questionForm: FormComponentDefinition) {\r\n var q = this.GetQuestionFromForm(questionForm)\r\n return q.DefaultValue || q.HasDefaultedValue\r\n }\r\n \r\n\r\n public GetQuestionFromForm(questionForm: FormComponentDefinition) {\r\n var questionID = questionForm.Form.FieldDefinitions[0].Value;\r\n return this.GetQuestionDefinition(questionID);\r\n }\r\n\r\n public GetQuestionFormClass(questionForm: FormComponentDefinition) {\r\n var classes = \"ui-question-form ui-top-level-question\";\r\n \r\n var questionID = questionForm.Form.FieldDefinitions[0].Value;\r\n var questionDefinition = this.GetQuestionDefinition(questionID);\r\n if (questionDefinition.Hidden)\r\n classes += \" hidden\";\r\n if (questionDefinition.ShowQuestionAndAnswerOnSameLine)\r\n classes += \" ui-question-answer-same-line\";\r\n return classes;\r\n };\r\n\r\n private GetQuestionAnswer(questionID: string) {\r\n if (!this._lastQuestionsOrdered)\r\n return;\r\n var data = this._lastQuestionsOrdered.find(c => c.QuestionID == questionID && c.Value != null);\r\n if (!data)\r\n return null;\r\n return data.Value;\r\n };\r\n\r\n private GetQuestionForm(questionID: string) {\r\n for (var i = 0; i < this.CompDef.State.QuestionFormComponents.length; i++) {\r\n var question = this.CompDef.State.QuestionFormComponents[i];\r\n if (question.Form.FieldDefinitions[0].Value == questionID)\r\n return question;\r\n }\r\n return null;\r\n };\r\n\r\n private GetQuestionDefinition(questionID: string) {\r\n return this.CompDef.State.QuestionDefinitions.find(x => x.ID == questionID);\r\n }\r\n\r\n public ngAfterViewInit() {\r\n this._isInitialized = true;\r\n }\r\n}\r\n","
\r\n \r\n
","import { Component } from '@angular/core';\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { NavigationService } from '../../../services/NavigationService';\r\nimport { ComponentDefinition } from '../../component/component.models';\r\nimport { ISectionServiceListener, SectionService } from '../../../services/LoadService';\r\nimport { ValidationContext, FormComponentDefinition, MultiplexedFormIntegrationService, FormIntegrationService, IFormIntegrationListener, ValidationWrapper } from '../../form/form.component';\r\nimport { MultisectionEditorModel } from './multisection-editor-wrapper.models';\r\nimport { ValidationResponse } from '../multisection.component';\r\n\r\n@Component({\r\n selector: 'multisection-editor-wrapper',\r\n templateUrl: './multisection-editor-wrapper.component.html',\r\n styleUrls: ['./multisection-editor-wrapper.component.less'],\r\n providers: [FormIntegrationService]\r\n})\r\nexport class MultisectionEditorWrapperComponent implements ISectionServiceListener, IFormIntegrationListener {\r\n public CompDef: MultisectionEditorModel;\r\n\r\n constructor(compDef: ComponentDefinition, \r\n private subpageService: SectionService,\r\n private formIntegrationService: FormIntegrationService) {\r\n this.CompDef = compDef;\r\n formIntegrationService.RegisterListener(this);\r\n subpageService.RegisterListener(this);\r\n }\r\n ReceiveEvaluationResults(evaluationResults: any) {\r\n //This isn't used for editor pages.\r\n }\r\n\r\n FromFormInitialValues(data: {}): void {\r\n //Can ignore\r\n }\r\n\r\n NotifyValidations(validations: ValidationResponse, sectionData: any) {\r\n //Should send to client-side.\r\n this.formIntegrationService.FromWrapperApplyValidations(validations, sectionData);\r\n }\r\n\r\n FromFormValidationsApplied(validationContext: { ValidationWrapper: ValidationWrapper; ValidatedData: any; StructuredValidatedData: any; }): void {\r\n //Should be safe to ignore?\r\n //Maybe should update error state?\r\n }\r\n\r\n FromFormValuesChanged(data: {}): void {\r\n this.subpageService.SetData(data, false, true); //does this need to request validation or does setdata do it?\r\n this.subpageService.FromSpecificRunValidations();\r\n }\r\n\r\n FromSectionRunValidations() {\r\n //Trigger validations\r\n this.formIntegrationService.FromWrapperRunValidations();\r\n }\r\n\r\n FromSectionAttemptedSubmit() {\r\n this.formIntegrationService.FormComponent.HasAttemptedSubmit = true;\r\n this.subpageService.SetData(this.formIntegrationService.GetData(), false, true);\r\n }\r\n}\r\n","
\r\n
\r\n
{{CompDef.SectionName}}
\r\n
Edit
\r\n
Delete
\r\n
\r\n\r\n
\r\n
add
\r\n
\r\n \r\n
\r\n
\r\n
reorder
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
","import { Component, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { forkJoin, merge } from \"rxjs\";\r\nimport { tap, first, map } from 'rxjs/operators';\r\nimport { AssessmentService } from '../../../services/AssessmentService';\r\nimport { NavigationService, ToastMessage } from '../../../services/NavigationService';\r\nimport { AssessmentModel } from '../../assessment/assessment.models';\r\nimport { ComponentDefinition } from '../../component/component.models';\r\nimport { FormConnectionService, ISectionServiceListener, IValidationReceiver, SectionService, ValidationProvider } from '../../../services/LoadService';\r\nimport { FormComponent, ValidationContext, ValidationWrapper, FormComponentDefinition, MultiplexedFormIntegrationService, IMultiplexFormIntegrationListener } from '../../form/form.component';\r\nimport { QuestionEditorModel } from './multisection-question-editor.models';\r\nimport { ValidationResponse } from '../multisection.component';\r\nimport { LinkService } from '../../../services/LinkService';\r\nimport { ToastService } from '../../../services/ToastService';\r\n\r\n@Component({\r\n selector: 'multisection-question-editor',\r\n templateUrl: './multisection-question-editor.component.html',\r\n styleUrls: ['./multisection-question-editor.component.less'],\r\n providers: [MultiplexedFormIntegrationService]\r\n})\r\nexport class MultisectionQuestionEditorComponent {\r\n public CompDef: QuestionEditorModel;\r\n private DeletedQuestions: Array = [];\r\n private _lastQuestionsOrdered: {}[];\r\n AllValueChanges: any;\r\n HasAttemptedSubmit: boolean;\r\n SortableOptions: { group: string; onSort: (evt: any) => void; };\r\n\r\n public QuestionForms() {\r\n return this.CompDef.QuestionCards;\r\n }\r\n \r\n constructor(private _http: HttpClient, \r\n private _navigationService: NavigationService, \r\n compDef: ComponentDefinition, \r\n private subpageService: SectionService,\r\n private multiplexedFormIntegrationService: MultiplexedFormIntegrationService,\r\n private _toastService: ToastService,\r\n private _linkService: LinkService) {\r\n this.CompDef = compDef;\r\n // newValidationProvider.SkipClientSideValidations = false;\r\n this._lastQuestionsOrdered = [];\r\n this.SortableOptions = { \r\n group: 'Questions', \r\n onSort: (evt) => {\r\n this._http.post(this.CompDef.ReorderUrl, this.QuestionForms().map(p => p.ComponentContext.EntityContexts[0].EntityKey.ID))\r\n .subscribe(r => {\r\n _toastService.SetMessage(new ToastMessage(\"Order Saved\"));\r\n });\r\n } \r\n };\r\n\r\n }\r\n \r\n EditSection() {\r\n this._linkService.Go(this.CompDef.EditSection);\r\n }\r\n\r\n DeleteSection() {\r\n this._linkService.Go(this.CompDef.DeleteSection);\r\n }\r\n\r\n AddQuestion() {\r\n this._linkService.Go(this.CompDef.AddNewQuestion);\r\n }\r\n\r\n updateName(value) {\r\n this.CompDef.SectionName = value;\r\n //TODO\r\n this.subpageService.SetData({ Name: this.CompDef.SectionName, ID: this.CompDef.SectionID });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
{{link.Text}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
reorder
\r\n
\r\n
{{page.Name}}
\r\n
\r\n
\r\n \r\n
\r\n
{{page.Name}}
\r\n
\r\n
\r\n
\r\n {{template.Name}}\r\n
\r\n
\r\n
{{link.Text}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, Input, ElementRef, AfterViewInit, ViewChildren, Optional } from '@angular/core';\r\nimport { NavigationService, NavigationType, ToastMessage } from '../../services/NavigationService';\r\nimport { LinkService } from \"../../services/LinkService\";\r\nimport { Link, LinkBehavior } from \"../actions/actions.models\";\r\nimport * as $ from 'jquery';\r\nimport { ComponentContext, ComponentDefinition } from '../component/component.models';\r\nimport { ValidationProvider, MultiSectionService, SectionService } from '../../services/LoadService';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ChangedField, ValidationMessages, ValidationMessage, FormMessage, ValidationWrapper, ValidationClass } from '../form/form.component';\r\nimport { MediaBox, MediaBoxStructuredDetail, StructuredString } from '../media-box/media-box.models';\r\nimport { ToastService } from '../../services/ToastService';\r\nimport { SortablejsOptions } from 'ngx-sortablejs';\r\nimport { SectionComponent } from './section.component';\r\n\r\n//Click on Custom page\r\n// - Mark all pages as modified (so they calc/validate)\r\n// - Mark all pages attempted submit (so they show required errors)\r\n\r\n// Click on an action\r\n// - Mark all pages that are modified as attempted submit\r\n// - Send only pages that are modified\r\n\r\n// validate\r\n// - Send only pages that are modified\r\n\r\n// Registration Eligibility Component builder\r\n// - Validate before return results, if validations show error Component\r\n\r\n//Consider doing initial validation w/ all pages... validations would have not not reset until that page is then marked modified...\r\n\r\n@Component({\r\n selector: 'multisection',\r\n templateUrl: './multisection.component.html',\r\n styleUrls: ['multisection.component.less'],\r\n providers: [MultiSectionService]\r\n})\r\nexport class MultiSectionComponent {\r\n public IsLoading: boolean;\r\n public PrimaryAction: Link;\r\n public AllowSort: boolean;\r\n public Pages : Array;\r\n SortableOptions: SortablejsOptions;\r\n DeletedSections: Array = [];\r\n SectionActions: any;\r\n public get Templates() { return this.ComponentDefinition.Context.TemplateSections };\r\n public Links: Array;\r\n public SelectedSection: SectionModel;\r\n public ComponentDefinition: MultiSectionComponentDefinition;\r\n public IsSubmitting: boolean;\r\n private _lastValidation: MultiSectionValidationResponse;\r\n private _lastValidatedData: { Name: string; Data: any; Type: string; }[];\r\n private _latestID: number;\r\n private _validating: boolean;\r\n\r\n constructor(componentDefinition: ComponentDefinition,\r\n private multiSectionService: MultiSectionService,\r\n private _http: HttpClient,\r\n private _linkService: LinkService,\r\n private _navigationService: NavigationService, \r\n private _toastService: ToastService) {\r\n this.ComponentDefinition = componentDefinition;\r\n this.Pages = this.ComponentDefinition.Context.Sections;\r\n var selectedPages = this.Pages.filter(r => r.IsSelected);\r\n this.SelectedSection = selectedPages && selectedPages.length ? selectedPages[0] : this.Pages[0];\r\n this.Links = this.ComponentDefinition.Context.Actions;\r\n this.SectionActions = this.ComponentDefinition.Context.SectionActions;\r\n this.multiSectionService.Register(this);\r\n this.SortableOptions = { \r\n group: 'Sections', \r\n onSort: (evt) => {\r\n this._http.post(this.ComponentDefinition.Context.ReorderURL, this.Pages.map(p => (p).ID)).subscribe(() => {\r\n _toastService.SetMessage(new ToastMessage(\"Order Saved\"));\r\n });\r\n } \r\n };\r\n this.AllowSort = this.ComponentDefinition.Context.AllowReorder;\r\n }\r\n\r\n public Click(link: Link) {\r\n this.OnLinkRequest(link);\r\n }\r\n\r\n OnLinkRequest(link: Link): void {\r\n this.NotifySubmitAttempted();\r\n if (this.Pages.filter(r => r.SectionComponent.error).length > 0)\r\n return;\r\n if (this._lastValidatedData)\r\n this.NotifyValidations(this._lastValidation, this._lastValidatedData);\r\n var linkCopy = new Link(link);\r\n linkCopy.Data = this.GetValidationRequest(true);\r\n this._linkService.Go(linkCopy);\r\n }\r\n\r\n RunEvaluation(): void {\r\n var data = this.GetMultiSectionData(true);\r\n this._http.post('/Multisection/Evaluate', { \r\n SectionData: data, \r\n RequestData: this.ComponentDefinition.Context.RequestData,\r\n }).subscribe((response: MultiSectionEvaluationResponse) => {\r\n for(let key of Object.keys(response.Pages)) {\r\n var page = this.Pages.filter(r => r.Name == key)[0];\r\n if (!page || !page.SectionComponent)\r\n continue;\r\n page.SectionComponent.ReceiveEvaluationResults(response.Pages[key]);\r\n }\r\n });\r\n }\r\n\r\n public AddSectionFromTemplate(template: SectionModel) {\r\n var newSection = $.extend({}, template);\r\n newSection.IsNew = true;\r\n this.Pages.push(newSection);\r\n this.Select(newSection);\r\n }\r\n\r\n public DeleteSection(section: SectionModel) {\r\n const index = this.Pages.findIndex(r => r == section);\r\n if (index > -1) \r\n this.Pages.splice(index, 1);\r\n \r\n if (section.IsNew)\r\n return;\r\n\r\n this.DeletedSections.push(section);\r\n }\r\n\r\n private NotifySubmitAttempted() {\r\n //TODO: If we want the popup modal to block on potential validations\r\n //we should 1 - get all validations from client before running <- might be enough and is easy\r\n //and 2 - make this validation call a promise so it can run async.\r\n this.Pages\r\n .filter(r => r.HasModifiedData)\r\n .forEach(p => { \r\n p.SectionComponent.NotifySubmitAttempted();\r\n p.SectionComponent.RunValidations();\r\n });\r\n }\r\n\r\n private GetValidationRequest(limitToModified: boolean) {\r\n return {\r\n SectionData: this.GetMultiSectionData(limitToModified),\r\n RequestData: this.ComponentDefinition.Context.RequestData,\r\n DeletedSections: this.DeletedSections.map(p => ({ \r\n Name: p.Name, \r\n Data: p.SectionComponent.GetData(),\r\n Type: p.Type\r\n }))\r\n };\r\n }\r\n\r\n public Select(page: SectionModel) {\r\n if (this._validating)\r\n return;\r\n if (page.Type == 'Custom') {\r\n this.Pages.forEach(p => p.HasModifiedData = true);\r\n this.NotifySubmitAttempted();\r\n this.OnValidationRequest(true);\r\n //Mark all as modified\r\n let componentContext = (page).ComponentContext;\r\n let validationData = this.GetMultiSectionData(true);\r\n componentContext.Parameters[\"MultiSection\"] = {\r\n SectionData: validationData,\r\n RequestData: this.ComponentDefinition.Context.RequestData,\r\n ForceValidateAllSections: true,\r\n };\r\n let definition = new ComponentDefinition();\r\n definition.Type = \"AsyncComponent\";\r\n definition.ComponentContext = componentContext;\r\n page.Component = definition;\r\n }\r\n else {\r\n page.SectionComponent.NotifySubmitAttempted()\r\n this.OnValidationRequest(true)\r\n }\r\n this.SelectedSection = page;\r\n }\r\n\r\n public GetMultiSectionData(limitToModified: boolean) : Array<{Name: string, Data: any, Type: string}> {\r\n var validationData = new Array<{Name: string, Data: any, Type: string}>();\r\n this.Pages.filter(r => (r.HasModifiedData && limitToModified) || !limitToModified).forEach(p => {\r\n validationData.push({ \r\n Name: p.Name, \r\n Data: p.SectionComponent.GetData(),\r\n Type: p.Type,\r\n });\r\n });\r\n return validationData;\r\n }\r\n\r\n public OnValidationRequest(forceValidateAllSections: boolean = false) {\r\n if (this.Pages.find(x => x.HasModifiedData))\r\n this._navigationService.SetWarning(\"There are unsaved changes.\")\r\n\r\n let validationData = this.GetMultiSectionData(false);\r\n let _latestID = Math.random(); \r\n this._latestID = _latestID;\r\n this._validating = true;\r\n this._http\r\n .post(\"/MultiSection/Validate\", { \r\n SectionData: validationData, \r\n RequestData: this.ComponentDefinition.Context.RequestData,\r\n ForceValidateAllSections: forceValidateAllSections\r\n })\r\n .subscribe((resp: MultiSectionValidationResponse) => {\r\n if (this._latestID != _latestID)\r\n return;\r\n this._validating = false;\r\n this._lastValidation = resp;\r\n this._lastValidatedData = validationData;\r\n this.NotifyValidations(resp, validationData);\r\n });\r\n }\r\n\r\n private NotifyValidations(resp: MultiSectionValidationResponse, validationData: { Name: string; Data: any; Type: string; }[]) {\r\n var pageNames = this.Pages.map(r => r.Name);\r\n pageNames.forEach(r => {\r\n var page = this.Pages.filter(y => y.Name == r)[0];\r\n\r\n var validatedData = validationData.filter(val => val.Name == r).length > 0 ? validationData.filter(val => val.Name == r)[0] : null;\r\n var validations = resp.Validations[r];\r\n\r\n var respMediaBox = resp.Sections.find(r => r.Name == page.Name);\r\n if (respMediaBox)\r\n page.MediaBox = respMediaBox.MediaBox;\r\n\r\n if (validatedData && !validations) {\r\n page.SectionComponent.NotifyValidations(new ValidationResponse(), validatedData.Data);\r\n return;\r\n }\r\n else if (!validatedData && !validations)\r\n return;\r\n\r\n page.SectionComponent.NotifyValidations(validations, validatedData.Data);\r\n });\r\n }\r\n}\r\n\r\nexport class MultiSectionComponentDefinition extends ComponentDefinition {\r\n Context: MultiSectionInitializationContext;\r\n}\r\n\r\nexport class MultiSectionInitializationContext {\r\n Sections: Array;\r\n Actions: Array;\r\n RequestData: any;\r\n TemplateSections: Array;\r\n AllowReorder: boolean;\r\n SectionActions: any;\r\n ReorderURL: string;\r\n}\r\n\r\nexport class SectionModel {\r\n public Name: string;\r\n public Type: string;\r\n public Component: ComponentDefinition;\r\n public MediaBox: MediaBox;\r\n public IsSelected: boolean;\r\n\r\n //Set Client Side\r\n public SectionComponent: SectionComponent;\r\n public HasModifiedData: boolean;\r\n public HasAttemptedSubmit: boolean;\r\n public IsNew: boolean;\r\n}\r\n\r\nexport class MultiSectionValidationResponse {\r\n public Validations: { [key: string]: ValidationResponse };\r\n public FormMessage: FormMessage;\r\n public UnattributableMessages: ValidationMessage[];\r\n public Sections: SectionModel[];\r\n}\r\n\r\nexport class MultiSectionEvaluationResponse {\r\n Pages: {};\r\n}\r\n\r\nexport class ValidationResponse {\r\n ChangedFields: ChangedField[];\r\n ValidationMessages: ValidationMessage[];\r\n}","
\r\n \r\n
","import { Component, Input, ElementRef, AfterViewInit, ViewChildren, Optional } from '@angular/core';\r\nimport { NavigationService, NavigationType, ToastMessage } from '../../services/NavigationService';\r\nimport { LinkService } from \"../../services/LinkService\";\r\nimport { Link, LinkBehavior } from \"../actions/actions.models\";\r\nimport * as $ from 'jquery';\r\nimport { ComponentContext, ComponentDefinition } from '../component/component.models';\r\nimport { ValidationProvider, MultiSectionService, SectionService } from '../../services/LoadService';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ChangedField, ValidationMessages, ValidationMessage, FormMessage, ValidationWrapper, ValidationClass } from '../form/form.component';\r\nimport { MediaBox, MediaBoxStructuredDetail, StructuredString } from '../media-box/media-box.models';\r\nimport { ToastService } from '../../services/ToastService';\r\nimport { SortablejsOptions } from 'ngx-sortablejs';\r\n\r\n@Component({\r\n selector: 'section',\r\n templateUrl: './section.component.html',\r\n styleUrls: ['section.component.less'],\r\n providers: [SectionService]\r\n})\r\nexport class SectionComponent implements AfterViewInit {\r\n //Set Client Side\r\n @Input('page')\r\n public page: SectionModel;\r\n private sectionData: any; \r\n public error: boolean = false;\r\n\r\n constructor(private MultiSectionService: MultiSectionService,\r\n private _elementRef: ElementRef,\r\n private sectionService: SectionService) {\r\n // validationProvider.OnReceiveValidationNotification = () => {\r\n // this.page.HasModifiedData = true;\r\n // this.MultiSectionService.NotifyValidationRequest();\r\n // };\r\n\r\n sectionService.Register(this);\r\n }\r\n\r\n FromSpecificRunValidation() {\r\n this.MultiSectionService.OnValidationRequest();\r\n }\r\n\r\n ReceiveEvaluationResults(evaluationResults: any) {\r\n this.sectionService.ReceiveEvaluationResults(evaluationResults);\r\n }\r\n\r\n SetCustomSectionData(data: any, initial: boolean = false, forceModification: boolean = false) {\r\n if (forceModification || (this.sectionData != null && !initial && !this.objectsEqual(this.sectionData, data)))\r\n this.page.HasModifiedData = true;\r\n this.sectionData = data; \r\n }\r\n\r\n private objectsEqual(obj1: object, obj2: object) {\r\n if (obj1 == null || obj2 == null)\r\n return;\r\n\r\n return JSON.stringify(obj1) == JSON.stringify(obj2);\r\n }\r\n\r\n RunValidations() {\r\n this.sectionService.FromSectionRunValidations();\r\n }\r\n\r\n RunEvaluation() {\r\n this.MultiSectionService.RunEvaluation();\r\n }\r\n\r\n OnLinkRequest(link: Link): void {\r\n this.sectionData = link.Data;\r\n this.MultiSectionService.OnLinkRequest(link);\r\n }\r\n \r\n SetError(clearData: boolean): void {\r\n if (clearData)\r\n this.sectionData = null;\r\n this.error = true;\r\n }\r\n\r\n ClearError(): void {\r\n this.error = false;\r\n }\r\n\r\n //Validations came from The Multisection where they are being parcelled out.\r\n NotifyValidations(validations: ValidationResponse, sectionData: any) {\r\n // if (this.page.Type == 'Editor'){\r\n // this.validationProvider.SendValidations(validations, sectionData);\r\n // } \r\n this.sectionService.NotifyValidations(validations, sectionData);\r\n var validationWrapper = new ValidationWrapper((validations));\r\n var errorsToDisplay = validationWrapper.ErrorsOnly.filter(r => r.Class != ValidationClass.Required);\r\n if (this.page.HasModifiedData)\r\n errorsToDisplay = validationWrapper.ErrorsOnly;\r\n\r\n if (errorsToDisplay.length) {\r\n var details = new MediaBoxStructuredDetail();\r\n details.Text = `${errorsToDisplay.length} Error${errorsToDisplay.length > 1 ? 's':''}`;\r\n details.Tooltip = validationWrapper.AllErrors.map(m => `${m.ColumnName}: ${m.Description}`).join('\\r\\n');\r\n this.page.MediaBox.StructuredDetails = new Array(details);\r\n }\r\n else {\r\n this.page.MediaBox.StructuredDetails = new Array();\r\n }\r\n }\r\n \r\n NotifySubmitAttempted() {\r\n this.page.HasAttemptedSubmit = true;\r\n this.sectionService.FromSectionAttemptedSubmit();\r\n // this.validationProvider.SendAttemptedSubmit();\r\n }\r\n\r\n GetData(): any {\r\n return this.sectionData;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.page.SectionComponent = this;\r\n\r\n $(this._elementRef.nativeElement).height($(window).height() - 50);\r\n\r\n $(window).on('resize', ()=> {\r\n $(this._elementRef.nativeElement).height($(window).height() - 50);\r\n });\r\n }\r\n}\r\n\r\nexport class MultiSectionComponentDefinition extends ComponentDefinition {\r\n Context: MultiSectionInitializationContext;\r\n}\r\n\r\nexport class MultiSectionInitializationContext {\r\n Sections: Array;\r\n Actions: Array;\r\n RequestData: any;\r\n TemplateSections: Array;\r\n AllowReorder: boolean;\r\n SectionActions: any;\r\n ReorderURL: string;\r\n}\r\n\r\nexport class SectionModel {\r\n public Name: string;\r\n public Type: string;\r\n public Component: ComponentDefinition;\r\n public MediaBox: MediaBox;\r\n public IsSelected: boolean;\r\n\r\n //Set Client Side\r\n public SectionComponent: SectionComponent;\r\n public HasModifiedData: boolean;\r\n public HasAttemptedSubmit: boolean;\r\n public IsNew: boolean;\r\n}\r\n\r\nexport class MultiSectionValidationResponse {\r\n public Validations: { [key: string]: ValidationResponse };\r\n public FormMessage: FormMessage;\r\n public UnattributableMessages: ValidationMessage[];\r\n public Sections: SectionModel[];\r\n}\r\n\r\nexport class ValidationResponse {\r\n ChangedFields: ChangedField[];\r\n ValidationMessages: ValidationMessage[];\r\n}","\r\n","import { Component, Input, ElementRef } from '@angular/core';\r\nimport { NavigationService, NavigationType } from '../../services/NavigationService';\r\nimport { LinkService } from \"../../services/LinkService\";\r\nimport { Link } from \"../actions/actions.models\";\r\nimport { ConnectionMessagingService } from \"../../services/ConnectionMessagingService\";\r\nimport * as $ from 'jquery';\r\n\r\n@Component({\r\n selector: 'nav-menu',\r\n templateUrl: './navmenu.component.html',\r\n styleUrls: ['./navmenu.component.less'],\r\n})\r\nexport class NavMenuComponent {\r\n @Input() public menuItems: Link[];\r\n\r\n constructor(private _elementRef: ElementRef, private _linkService: LinkService, private navigationService: NavigationService, private connectionMessagingService: ConnectionMessagingService) {\r\n connectionMessagingService.RegisterBadgeUpdates(badgeList => {\r\n badgeList.forEach(badge => {\r\n if (!this.menuItems)\r\n return;\r\n let menuItem = this.menuItems.filter(c => badge.Menu == c.Text);\r\n if (menuItem.length != 1)\r\n return;\r\n menuItem[0].Badge = badge;\r\n })\r\n });\r\n\r\n navigationService.Register(p => {\r\n this.menuItems = p.Menu;\r\n if (p.Layout != 'Clean' && p.EnvironmentIndicator != 'None') {\r\n $(this._elementRef.nativeElement).css('border-right', `2px solid ${p.EnvironmentIndicator}`);\r\n } else {\r\n $(this._elementRef.nativeElement).css('border-right', `none`); \r\n }\r\n });\r\n }\r\n\r\n adjustSubmenuHeight(parent: HTMLElement, submenu: HTMLElement) {\r\n submenu.style.setProperty('top', '0');\r\n let parentTop = parent.getBoundingClientRect().top;\r\n if ((parentTop + submenu.offsetHeight) > window.innerHeight) {\r\n let top = window.innerHeight - parentTop - submenu.offsetHeight\r\n submenu.style.setProperty('top', top.toString() + 'px');\r\n }\r\n }\r\n\r\n public MenuItemClick(menuItem: Link) {\r\n this._linkService.Go(menuItem);\r\n }\r\n}\r\n","
\r\n \r\n
Run
update
\r\n
\r\n\r\n
\r\n
Error retrieving results
\r\n
Start typing to search
\r\n
Type at least 3 characters to search
","import { Component, Input, ElementRef, NgZone } from '@angular/core';\r\nimport { NewSearchService } from \"../../services/NewSearchService\";\r\nimport { ComponentDefinition, ComponentContext } from \"../component/component.models\";\r\nimport * as $ from 'jquery';\r\nimport { InteractService } from '../../services/InteractService';\r\n\r\nexport class NewSearchComponentDefinition extends ComponentDefinition {\r\n public SearchFormComponent: ComponentDefinition;\r\n public ShowGuidanceText: boolean;\r\n public ResultContext: ComponentContext;\r\n public IsLive: boolean;\r\n public SkipInitialSearchIfNotLive: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'newsearch',\r\n templateUrl: './newsearch.component.html',\r\n styleUrls: ['./newsearch.component.less'],\r\n providers: [NewSearchService]\r\n})\r\nexport class NewSearchComponent {\r\n public results: ComponentDefinition;\r\n public SearchFormComponent: ComponentDefinition;\r\n public SearchResultComponent: ComponentDefinition;\r\n @Input()\r\n public IsSearching: boolean;\r\n public IsError: boolean;\r\n public InitialState: boolean;\r\n public SearchStringTooShort: boolean;\r\n public ShowSearch: boolean;\r\n private _lastSearch: any;\r\n public searchCompDef: NewSearchComponentDefinition;\r\n private _hasInitiallySearched: any;\r\n ShowUpdate: boolean;\r\n\r\n constructor(private _searchService: NewSearchService, \r\n compDef: ComponentDefinition, \r\n elementRef: ElementRef, \r\n interact: InteractService,\r\n ngZone: NgZone) {\r\n this.searchCompDef = (compDef);\r\n this.InitialState = this.searchCompDef.ShowGuidanceText;\r\n this._hasInitiallySearched = false;\r\n\r\n this._searchService.RegisterListener((data) => {\r\n if (this.searchCompDef.IsLive || (!this._hasInitiallySearched && !this.searchCompDef.SkipInitialSearchIfNotLive)) {\r\n // Need to timeout due to the async nature here. If SearchResultComponent changes in between construction and rendering \r\n // it will throw ExpressionChangedAfterItHasBeenCheckedError and the expression to display the component-wrapper is not instaneous\r\n setTimeout(() => {\r\n this.triggerSearchComponentRefresh(data); \r\n });\r\n }\r\n else {\r\n this.ShowUpdate = true;\r\n this._lastSearch = data;\r\n }\r\n }, () => {\r\n console.log('Unhandled search');\r\n }, (data) => {\r\n if (!this.searchCompDef.IsLive)\r\n this._lastSearch = data;\r\n }); \r\n this.SearchFormComponent = this.searchCompDef.SearchFormComponent;\r\n }\r\n\r\n private triggerSearchComponentRefresh(data: any) {\r\n this._hasInitiallySearched = true;\r\n this.ShowUpdate = false;\r\n var resultContext = $.extend(true, {}, this.searchCompDef.ResultContext);\r\n if (!resultContext.Parameters)\r\n resultContext.Parameters = {};\r\n\r\n resultContext.Parameters[\"SearchForm\"] = data;\r\n let compDef = new ComponentDefinition();\r\n compDef.Type = \"AsyncComponent\";\r\n compDef.ComponentContext = resultContext;\r\n this.SearchResultComponent = compDef;\r\n this._lastSearch = data;\r\n }\r\n\r\n SearchButton() {\r\n this.triggerSearchComponentRefresh(this._lastSearch);\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n
\r\n
0\">\r\n
{{error}}
\r\n
\r\n
\r\n
\r\n reorder\r\n {{item.Description}}\r\n
\r\n
\r\n
","import { Component, Input, ElementRef, AfterViewInit, OnInit } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NavigationService, NavigationType } from '../../services/NavigationService'\r\nimport { ModalService } from \"../../services/ModalService\";\r\nimport { HttpClient } from '@angular/common/http'\r\nimport { OrganizeModel } from \"./organize.models\";\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\nimport { FormMessage } from '../form/form.component';\r\n\r\n@Component({\r\n selector: 'organize',\r\n templateUrl: './organize.component.html',\r\n styleUrls: ['./organize.component.less']\r\n})\r\nexport class OrganizeComponent {\r\n public data: OrganizeModel;\r\n public IsSubmitting: boolean;\r\n public errors: Array;\r\n\r\n constructor(private _http: HttpClient, \r\n private _modalService: ModalService, \r\n private _elementRef: ElementRef, \r\n compDef: ComponentDefinition) {\r\n this.data = compDef;\r\n this.errors = new Array();\r\n }\r\n \r\n public Submit() {\r\n if (this.IsSubmitting) return;\r\n\r\n this.IsSubmitting = true;\r\n\r\n let ids = this.data.Items.map(i => i.ID);\r\n this.errors = new Array();\r\n this._http.post(this.data.Url, ids).subscribe(response => {\r\n var r = response;\r\n this.IsSubmitting = false;\r\n if(r && r.Validations && r.Validations.HasErrors)\r\n this.errors = r.Validations.Messages.map(x => x.Description);\r\n else\r\n this._modalService.Close(NavigationType.Refresh); \r\n });\r\n }\r\n\r\n public Cancel() {\r\n this._modalService.Close();\r\n }1\r\n}\r\n","import { Component, ElementRef, ViewChild, AfterViewInit, TemplateRef, ViewEncapsulation, Input } from \"@angular/core\";\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\nimport { Form, FormComponent, FormComponentDefinition } from \"../form/form.component\";\r\nimport * as $ from 'jquery';\r\ndeclare var PDFJS;\r\n\r\n@Component({\r\n selector: 'page-break',\r\n templateUrl: './page-break.component.html',\r\n styleUrls: ['./page-break.component.less']\r\n})\r\nexport class PageBreakComponent {\r\n constructor(private _elementRef: ElementRef) {\r\n }\r\n}\r\n\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
{{aspect.IconName}}
\r\n
{{aspect.Text}}
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
{{page.PrimaryAction.IconName}}
\r\n
\r\n
\r\n
more_vert
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{page.PollingProgress.AdditionalDetail}}
\r\n
{{page.PollingProgress.LastMessage}}
\r\n
{{page.PollingProgress.Elapsed}}
\r\n
{{page.PollingProgress.ErrorDetail}}
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n \r\n
\r\n
\r\n {{action.Text}}\r\n
\r\n
\r\n
\r\n
","import { Component, Inject, Input, HostBinding, ElementRef, ViewChild } from '@angular/core';\r\nimport { GridComponent } from '../grid/grid.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NavigationService } from '../../services/NavigationService'\r\nimport { StyleAttribute } from \"../../services/AttributeTranslator\";\r\nimport { InfiniteScrollService } from \"../../services/InfiniteScrollService\";\r\nimport * as $ from 'jquery';\r\nimport { Page, Aspect } from \"../../components/page/page.models\";\r\nimport { Link, LinkBehavior } from '../actions/actions.models';\r\nimport { LinkService } from '../../services/LinkService';\r\n\r\n@Component({\r\n selector: 'page',\r\n templateUrl: './page.component.html',\r\n styleUrls: ['./page.component.less'],\r\n providers: [InfiniteScrollService] \r\n})\r\nexport class PageComponent {\r\n @Input() public page: Page;\r\n \r\n @ViewChild('mainPage', { read: ElementRef, static: false }) mainPage: ElementRef;\r\n @ViewChild('sidePanel', { read: ElementRef, static: false }) sidePanel: ElementRef;\r\n\r\n public IsLoading: boolean;\r\n public CollapsedSidePanelWidth: string = \"30px\";\r\n Aspects: Aspect[];\r\n\r\n private _currentSidePanelWidth: string;\r\n get CurrentSidePanelWidth() { return this._currentSidePanelWidth }\r\n set CurrentSidePanelWidth(val: string) {\r\n this._currentSidePanelWidth = val;\r\n this.CurrentPageMarginRight = (val && val.endsWith(\"%\")) ? `calc(${val} + 35px)` : val\r\n }\r\n CurrentPageMarginRight: string;\r\n\r\n @HostBinding('style.padding') get component_style() {\r\n if (!this.page)\r\n return 0;\r\n\r\n return this.page.Layout == \"Portal\" || this.page.Layout == \"Mobile\" ? 0 : \"8px\";\r\n }\r\n\r\n HandleClick(action: Link) {\r\n this.linkService.Go(action);\r\n }\r\n\r\n public SwitchAspect(link: Aspect) {\r\n if(link.Url == null || link.Url.length == 0)\r\n return;\r\n\r\n this.Aspects.forEach(link => {\r\n link.Selected = false;\r\n })\r\n\r\n this._navigationService.RequestAspect(link);\r\n link.Selected = true;\r\n }\r\n\r\n SidePanelCollapse() {\r\n this.page.SidePanelCollapsed = !this.page.SidePanelCollapsed;\r\n this.CurrentSidePanelWidth = this.page.SidePanelCollapsed ? this.CollapsedSidePanelWidth : this.page.SidePanelWidth;\r\n }\r\n\r\n constructor(private _navigationService: NavigationService, \r\n private linkService: LinkService, \r\n private _infiniteScrollService: InfiniteScrollService,\r\n private _elementRef: ElementRef) {\r\n this.IsLoading = true;\r\n this._infiniteScrollService.ScrollElement = $(window);\r\n //Manages aspect related changes\r\n _navigationService.Register((p, isAspect, aspect, isRequestingFollowupAspect) => {\r\n \r\n this.CurrentSidePanelWidth = p.SidePanelCollapsed ? this.CollapsedSidePanelWidth : p.SidePanelWidth;\r\n\r\n if (isAspect) {\r\n this.Aspects.forEach(link => {\r\n link.Selected = false;\r\n if (aspect.Url == link.Url)\r\n link.Selected = true;\r\n });\r\n return;\r\n }\r\n\r\n if (!isAspect)\r\n this.Aspects = p.Aspects;\r\n\r\n if (isRequestingFollowupAspect)\r\n return;\r\n\r\n\r\n if (this.Aspects && this.Aspects.findIndex(i => i.Selected) == -1)\r\n {\r\n (this.Aspects[0]).Selected = true;\r\n }\r\n })\r\n\r\n //Manages page related changes\r\n _navigationService.Register((p: Page, isAspect: boolean, aspect: Aspect, isRequestingFollowupAspect: boolean) => {\r\n if (isRequestingFollowupAspect)\r\n return;\r\n \r\n this.page = p;\r\n document.title = p.Title;\r\n\r\n if (this.page.PollingProgress != null) {\r\n return;\r\n }\r\n this.IsLoading = false;\r\n \r\n if (p.Aspects && p.Aspects.length && !p.Components.length) {\r\n console.log(\"Not implemented yet\")\r\n }\r\n else {\r\n if ((p.Links && p.Links.length) || (p.Aspects && p.Aspects.length) || (isAspect || isRequestingFollowupAspect))\r\n $(_elementRef.nativeElement).addClass('ui-has-page-actions');\r\n else\r\n $(_elementRef.nativeElement).removeClass('ui-has-page-actions');\r\n \r\n if ((window).notifyPrint) {\r\n (window).notifyPrint();\r\n } \r\n if ((window).pageRendered) {\r\n (window).pageRendered(p);\r\n }\r\n\r\n $('tooltip-component').remove();\r\n\r\n $('html').scrollTop(0);\r\n }\r\n\r\n }, (p: Page) => {\r\n this.IsLoading = true;\r\n });\r\n\r\n }\r\n}\r\n","import { Link, MenuItem } from \"../../components/actions/actions.models\";\r\nimport { ComponentDefinition } from \"../../components/component/component.models\";\r\nimport { LayoutDefinition } from \"../../components/layout/layout.models\";\r\nimport { ProgressPollingRequest, ProgressUpdateResponse } from \"../progress/progress.component\";\r\n\r\nexport enum ModalStyle {\r\n Default,\r\n Primary, \r\n}\r\n\r\nexport class Aspect extends Link {\r\n public Selected: boolean;\r\n}\r\n\r\nexport class Page {\r\n public PollingProgress: ProgressUpdateResponse;\r\n \r\n public Aspects: Aspect[];\r\n public UserDisplayName: string;\r\n public Header: string;\r\n public NoPolling: boolean;\r\n public Title: string;\r\n public Menu: MenuItem[];\r\n public UserMenu: Link[];\r\n public Components: ComponentDefinition[]; \r\n public Definition: LayoutDefinition;\r\n public Layout: string;\r\n public Links: Link[];\r\n\r\n public ModalWidth: string;\r\n public ModalStyle: ModalStyle;\r\n\r\n public PrimaryAction: Link;\r\n public PrimaryActions: Link[];\r\n\r\n public EnvironmentIndicator: string;\r\n public PrimaryColor: string;\r\n\r\n public SidePanel: Page;\r\n public SidePanelWidth: string;\r\n public SidePanelCollapsed: boolean;\r\n\r\n public PortalClientLogoUrl: string;\r\n public AppLogoUrlOverride: string;\r\n public PortalClientLogoDimension: string;\r\n public LimitHeightOfPortalLogo: boolean;\r\n public NotificationPanelLink: Link;\r\n\r\n constructor() {\r\n this.Links = [];\r\n this.Components = [];\r\n this.Menu = [];\r\n this.Layout = \"Application\";\r\n }\r\n}\r\n\r\nexport class MenuBadge {\r\n public Menu: string;\r\n public Count: number;\r\n public Tooltip: string;\r\n}","
\r\n
1\" class=\"ui-pagination-bar\">\r\n
navigate_before
\r\n
navigate_next
\r\n {{_page}} / {{totalPages}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
","import { Component, Input, ElementRef, AfterViewInit, OnInit } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NavigationService, NavigationType } from '../../services/NavigationService'\r\nimport { ModalService } from \"../../services/ModalService\";\r\nimport { PaginationWrapperService } from \"../../services/PaginationWrapperService\";\r\nimport { HttpClient } from '@angular/common/http'\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\nimport { FormMessage } from '../form/form.component';\r\nimport { Grid } from '../grid/grid.models';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'pagination-wrapper',\r\n templateUrl: './pagination-wrapper.component.html',\r\n styleUrls: ['./pagination-wrapper.component.less'],\r\n providers: [PaginationWrapperService]\r\n})\r\nexport class PaginationWrapperComponent implements AfterViewInit {\r\n ComponentDefinition: PaginationWrapperComponentDefinition;\r\n Component: Grid;\r\n _page: number;\r\n isLoading: boolean;\r\n totalPages: number;\r\n hasInitialized = false;\r\n private _sort: string;\r\n private _asc: any;\r\n\r\n constructor(private _http: HttpClient, \r\n private _service: PaginationWrapperService,\r\n compDef: ComponentDefinition) {\r\n this.ComponentDefinition = compDef;\r\n this._page = 1;\r\n _service.OnSortChange = (header: string, asc: boolean) => {\r\n this._sort = header;\r\n this._asc = asc;\r\n this.requestPage();\r\n }\r\n }\r\n \r\n ngAfterViewInit(): void {\r\n this.requestPage();\r\n }\r\n\r\n private requestPage() {\r\n if (this.Component)\r\n this.Component.IsUpdating = true;\r\n else\r\n this.isLoading = true;\r\n var requestObject = {\r\n Context: this.ComponentDefinition.Context,\r\n PageRequested: this._page,\r\n Sort: this._sort,\r\n Asc: this._asc\r\n };\r\n this._http.post(\"/Pagination/Get\", requestObject)\r\n .subscribe((paginationResult: PaginationResult) => {\r\n if (this.Component)\r\n this.Component.Rows = (paginationResult.Component).Rows;\r\n else\r\n this.Component = paginationResult.Component;\r\n \r\n if (this._service.UpdateRows)\r\n this._service.UpdateRows();\r\n this.isLoading = false;\r\n this.Component.IsUpdating = false;\r\n this.totalPages = paginationResult.TotalPages;\r\n this.hasInitialized = true;\r\n });\r\n }\r\n\r\n nextPage() {\r\n if (this._page == this.totalPages)\r\n return;\r\n ++this._page\r\n this.requestPage();\r\n }\r\n\r\n prevPage() {\r\n if (this._page == 1)\r\n return;\r\n --this._page\r\n this.requestPage();\r\n }\r\n}\r\n\r\nexport class PaginationResult {\r\n Component: ComponentDefinition;\r\n TotalPages: number;\r\n Page: number;\r\n}\r\n\r\nexport class PaginationWrapperComponentDefinition extends ComponentDefinition {\r\n Context: any;\r\n}","
\r\n
\r\n
Verify Your Identity
\r\n
Change your Password
\r\n
\r\n
\r\n
\r\n
1
\r\n
Verify Your Identity
\r\n
\r\n
\r\n
2
\r\n
Change your password
\r\n
\r\n
\r\n
","import { Component, Input, ElementRef, AfterViewInit } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { ModalService } from \"../../services/ModalService\";\r\nimport { ComponentDefinition } from \"../../components/component/component.models\";\r\n\r\n@Component({\r\n selector: 'password-expiration-Guidance',\r\n templateUrl: './password-expiration-guidance.component.html',\r\n styleUrls: ['./password-expiration-guidance.component.less']\r\n})\r\nexport class PasswordExpirationGuidanceComponent {\r\n public Model: PasswordExpirationGuidanceDefinition;\r\n\r\n constructor(compDef: ComponentDefinition) {\r\n this.Model = compDef;\r\n }\r\n}\r\n\r\nexport class PasswordExpirationGuidanceDefinition extends ComponentDefinition {\r\n CurrentStep: number;\r\n}","import { Component, ElementRef, ViewChild, AfterViewInit, TemplateRef, ViewEncapsulation, Input } from \"@angular/core\";\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\nimport { Form, FormComponent, FormComponentDefinition } from \"../form/form.component\";\r\nimport * as $ from 'jquery';\r\n\r\n@Component({\r\n selector: 'pdf',\r\n templateUrl: './pdf.component.html',\r\n styleUrls: ['./pdf.component.less']\r\n})\r\nexport class PDFComponent {\r\n value: { pdfDocument: any; };\r\n scale: number = 1;\r\n\r\n @Input()\r\n set options(value: { pdfDocument: any }) {\r\n this.value = value;\r\n this.UpdateRender();\r\n }\r\n\r\n _pageIndex = 1;\r\n\r\n @Input()\r\n set page(value: number) {\r\n this._pageIndex = value;\r\n this.UpdateRender();\r\n }\r\n\r\n UpdateRender() {\r\n let pageCount = this.value.pdfDocument.numPages;\r\n $('canvas', this._elementRef.nativeElement).remove();\r\n let canvas = $('').appendTo(this._elementRef.nativeElement);\r\n let width = $(this._elementRef.nativeElement).parent().width();\r\n this.value.pdfDocument.getPage(this._pageIndex).then((page: any) => {\r\n //let view = page.getViewport(this.scale);\r\n let view = page.getViewport(width / page.getViewport(this.scale).width)\r\n canvas[0].setAttribute('height', view.height);\r\n canvas[0].setAttribute('width', view.width);\r\n\r\n let context = (canvas[0]).getContext('2d');\r\n\r\n let renderContext = {\r\n canvasContext: context,\r\n viewport: view\r\n };\r\n\r\n page.render(renderContext);\r\n });\r\n // for (let i = 1; i <= pageCount; i++) {\r\n // let canvas = $('').appendTo(this._elementRef.nativeElement);\r\n // let width = $(this._elementRef.nativeElement).parent().width();\r\n // this.value.pdfDocument.getPage(i).then((page: any) => {\r\n // //let view = page.getViewport(this.scale);\r\n // let view = page.getViewport(width / page.getViewport(this.scale).width)\r\n // canvas[0].setAttribute('height', view.height);\r\n // canvas[0].setAttribute('width', view.width);\r\n\r\n // let context = (canvas[0]).getContext('2d');\r\n\r\n // let renderContext = {\r\n // canvasContext: context,\r\n // viewport: view\r\n // };\r\n\r\n // page.render(renderContext);\r\n // });\r\n // }\r\n }\r\n\r\n ZoomIn() {\r\n this.scale = this.scale - .1;\r\n this.UpdateRender();\r\n }\r\n\r\n ZoomOut() {\r\n this.scale = this.scale + .1; \r\n this.UpdateRender();\r\n }\r\n\r\n constructor(private _elementRef: ElementRef) {\r\n }\r\n}\r\n\r\n","
\r\n
\r\n {{Percent}}%\r\n
\r\n
\r\n
\r\n","import { Component, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NavigationService } from '../../services/NavigationService'\r\n\r\n@Component({\r\n selector: 'percentage-circle',\r\n templateUrl: './percentage-circle.component.html',\r\n styleUrls: ['./percentage-circle.component.less']\r\n})\r\nexport class PercentageCircleComponent {\r\n @Input() public Percent: number;\r\n @Input() public Tooltip: string;\r\n @Input() public Size: string = \"small\";\r\n\r\n constructor() {\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
{{ErrorMessage}}
","import { Component, Input, AfterViewInit, ElementRef } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NavigationService } from '../../services/NavigationService'\r\nimport { ComponentDefinition } from \"./../component/component.models\";\r\nimport { PickerModel, PickerOption } from \"./picker.models\";\r\nimport * as $ from 'jquery';\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { ModalService } from \"../../services/ModalService\";\r\nimport { LinkService } from \"../../services/LinkService\";\r\nimport { Link } from \"../actions/actions.models\";\r\n\r\n@Component({\r\n selector: 'picker',\r\n templateUrl: './picker.component.html',\r\n styleUrls: ['./picker.component.less']\r\n})\r\nexport class PickerComponent {\r\n public CompDef: PickerModel;\r\n public IsLoading: boolean;\r\n public ErrorMessage: string;\r\n public SelectedComponent: ComponentDefinition;\r\n\r\n constructor(compDef: ComponentDefinition, elementRef: ElementRef, http: HttpClient, linkService: LinkService, modalService: ModalService) {\r\n this.CompDef = compDef;\r\n\r\n $(elementRef.nativeElement).on('grid-row-click', (event, data: PickerOption) => {\r\n\r\n if (data.Url && data.Url.length > 0) {\r\n this.IsLoading = true;\r\n http.post(data.Url, null)\r\n .subscribe((response) => {\r\n let result = response;\r\n if (result.IsLink)\r\n linkService.Go(result);\r\n else\r\n this.SelectedComponent = result;\r\n \r\n this.IsLoading = false;\r\n if (modalService && data.ModalTitle)\r\n modalService.SetTitle(data.ModalTitle);\r\n }, (error: any) => {\r\n var exInfoAsJson = error.error;\r\n this.IsLoading = false;\r\n this.ErrorMessage = exInfoAsJson.Message;\r\n });\r\n \r\n event.stopPropagation(); \r\n } \r\n });\r\n }\r\n}\r\n\r\nexport class ExceptionInfo {\r\n Message: string;\r\n}\r\n","
","import { Component, Input, AfterViewInit, ElementRef } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NavigationService } from '../../services/NavigationService'\r\ndeclare var d3: any;\r\ndeclare var nv: any;\r\nimport * as moment from 'moment';\r\nimport { PieChartModel } from \"./pie-chart.models\";\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\n\r\n@Component({\r\n selector: 'pie-chart',\r\n templateUrl: './pie-chart.component.html',\r\n styleUrls: ['./pie-chart.component.less'],\r\n})\r\nexport class PieChartComponent implements AfterViewInit {\r\n public data: PieChartModel;\r\n public chart: any;\r\n\r\n constructor(private _elementRef: ElementRef, compDef: ComponentDefinition) {\r\n this.data = compDef;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n var width = 80,\r\n height = 80,\r\n radius = Math.min(width, height) / 2;\r\n\r\n var arc = d3.svg.arc()\r\n .outerRadius(radius - 10)\r\n .innerRadius(20);\r\n\r\n var labelArc = d3.svg.arc()\r\n .outerRadius(radius - 40)\r\n .innerRadius(radius - 40);\r\n\r\n var pie = d3.layout.pie()\r\n .value((d) => { return d.Percent; });\r\n\r\n var svg = d3.select($('div', this._elementRef.nativeElement)[0]).append(\"svg\")\r\n .attr(\"width\", width)\r\n .attr(\"height\", height)\r\n .append(\"g\")\r\n .attr(\"transform\", \"translate(\" + width / 2 + \",\" + height / 2 + \")\");\r\n\r\n var g = svg.selectAll(\".arc\")\r\n .data(pie(this.data.Segments))\r\n .enter()\r\n .append(\"g\")\r\n .attr(\"class\", \"arc\");\r\n\r\n g.append(\"path\")\r\n .attr(\"d\", arc)\r\n .style(\"fill\", (d) => {\r\n return d.data.Color;\r\n })\r\n .attr('class', 'tooltip')\r\n .append('title')\r\n .text((d) =>\r\n {\r\n return d.data.Description\r\n });\r\n //$(svg).find('path[data-tooltip]').qtip()\r\n \r\n var xOffset = 0;\r\n if (this.data.Total < 10)\r\n xOffset = -4;\r\n else if (this.data.Total < 100)\r\n xOffset = -7;\r\n else\r\n xOffset = -12;\r\n\r\n svg.append(\"text\")\r\n .attr('transform', 'translate(' + xOffset + ', 5)')\r\n .attr('fill', 'hsl(0,0%,50%)')\r\n .attr('style', 'font-weight: bold;')\r\n .text((d) => { return this.data.Total; });\r\n }\r\n}\r\n","
{{data.Text}}
","import { Component, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http'\r\nimport { CommonModule } from '@angular/common';\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\n\r\n@Component({\r\n template: '
{{data.Text}}
',\r\n})\r\nexport class PlaceholderComponent {\r\n public data: any;\r\n\r\n constructor(compDef: ComponentDefinition) {\r\n this.data = compDef;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n","import { Component, Input } from '@angular/core';\r\n@Component({\r\n selector: 'progress-bar',\r\n templateUrl: './progress-bar.component.html',\r\n styleUrls: ['./progress-bar.component.less']\r\n})\r\nexport class ProgressBarComponent {\r\n @Input()\r\n public Current: number;\r\n constructor() {\r\n }\r\n Width() {\r\n if (this.Current)\r\n return this.Current + \"%\";\r\n else\r\n return \"0%\";\r\n }\r\n\r\n public GetStatusClass(status: string) {\r\n if (status == \"Failed\" || status == \"Stale\") {\r\n\r\n return \"ui-error\";\r\n }\r\n return \"\";\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
{{ComponentDefinition.Description}}
\r\n
{{LastStatus.Elapsed}}
\r\n
\r\n \r\n
\r\n
\r\n
{{LastStatus.Link.Text}}
\r\n
{{LastStatus.Status}}
\r\n
{{LastStatus.LastMessage}}
\r\n
{{LastStatus.ErrorDetail}}
\r\n
{{LastStatus.AdditionalDetail}}
\r\n
{{ComponentDefinition.DetailLine}}
\r\n
\r\n
\r\n","import { Component, ElementRef, AfterViewInit } from '@angular/core';\r\nimport { LinkService } from '../../services/LinkService';\r\nimport { ComponentDefinition } from '../component/component.models';\r\nimport { TooltipModel } from '../tooltip/tooltip.component';\r\nimport { Link } from '../actions/actions.models';\r\n\r\nexport class ProgressPollingRequest\r\n{\r\n public Name: string;\r\n public Data: any;\r\n}\r\n\r\n\r\nexport class ProgressComponentDefinition extends ComponentDefinition {\r\n Tooltip: TooltipModel;\r\n PollingUrl: string;\r\n Description: string;\r\n DetailLine: string;\r\n PrimaryAction: Link;\r\n Request: ProgressPollingRequest;\r\n InitialStatus: ProgressUpdateResponse;\r\n}\r\n\r\nexport class ProgressUpdateResponse {\r\n Link: Link;\r\n Current: string;\r\n Status: string;\r\n Name: string;\r\n Data: any;\r\n Elapsed: string;\r\n LastMessage: string;\r\n AdditionalDetail: string;\r\n ErrorDetail: string;\r\n}\r\n\r\n@Component({\r\n templateUrl: './progress.component.html',\r\n styleUrls: ['./progress.component.less']\r\n})\r\nexport class ProgressComponent implements AfterViewInit {\r\n ComponentDefinition: ProgressComponentDefinition;\r\n LastStatus: ProgressUpdateResponse;\r\n\r\n constructor(\r\n componentDefinition: ComponentDefinition,\r\n public elementRef: ElementRef, \r\n private _linkService: LinkService) {\r\n\r\n this.ComponentDefinition = componentDefinition;\r\n this.LastStatus = this.ComponentDefinition.InitialStatus;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.lastStatusIsFinal())\r\n $(this.elementRef.nativeElement).trigger('progress-already-complete');\r\n }\r\n\r\n Click() {\r\n if (this.ComponentDefinition.PrimaryAction)\r\n this._linkService.Go(this.ComponentDefinition.PrimaryAction);\r\n }\r\n\r\n StatusClick() {\r\n if (this.LastStatus.Link) {\r\n this._linkService.Go(this.LastStatus.Link);\r\n }\r\n }\r\n\r\n UpdateStatus(arg0: ProgressUpdateResponse) {\r\n this.LastStatus = arg0;\r\n if (this.lastStatusIsFinal()) {\r\n $(this.elementRef.nativeElement).trigger('progress-complete');\r\n }\r\n } \r\n\r\n\r\n private lastStatusIsFinal() {\r\n return this.LastStatus != null && (this.LastStatus.Status == \"Completed\" || this.LastStatus.Status == \"Failed\" || this.LastStatus.Status == \"Stale\");\r\n }\r\n\r\n public GetStatusClass(status: string) {\r\n if (status == \"Failed\" || status == \"Stale\") {\r\n return \"ui-error\";\r\n }\r\n return \"\";\r\n }\r\n}\r\n","
\r\n
\r\n
Your Details
\r\n
Verify Email
\r\n
Verify Phone
\r\n
Create Account
\r\n
\r\n
\r\n
\r\n
1
\r\n
Your Details
\r\n
\r\n
\r\n
2
\r\n
Verify Email
\r\n
\r\n
\r\n
3
\r\n
Verify Phone
\r\n
\r\n
\r\n
4
\r\n
Create Account
\r\n
\r\n
\r\n
","import { Component, Input, ElementRef, AfterViewInit } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { ModalService } from \"../../services/ModalService\";\r\nimport { ComponentDefinition } from \"../../components/component/component.models\";\r\n\r\n@Component({\r\n selector: 'registration-Guidance',\r\n templateUrl: './registration-Guidance.component.html',\r\n styleUrls: ['./registration-Guidance.component.less']\r\n})\r\nexport class RegistrationGuidanceComponent {\r\n public Model: RegistrationGuidanceDefinition;\r\n\r\n constructor(compDef: ComponentDefinition) {\r\n this.Model = compDef;\r\n }\r\n}\r\n\r\nexport class RegistrationGuidanceDefinition extends ComponentDefinition {\r\n CurrentStep: number;\r\n}","
","import { Component, Input, ElementRef, AfterViewInit } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { ModalService } from \"../../services/ModalService\";\r\nimport { ComponentDefinition } from \"../../components/component/component.models\";\r\n\r\n@Component({\r\n selector: 'registration-polling',\r\n templateUrl: './registration-polling.component.html',\r\n styleUrls: ['./registration-polling.component.less']\r\n})\r\nexport class RegistrationPollingComponent implements AfterViewInit {\r\n public data: ComponentDefinition;\r\n\r\n constructor(private _http: HttpClient, private compDef: ComponentDefinition) {\r\n this.data = compDef;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.Poll();\r\n }\r\n\r\n public Poll() {\r\n this._http.get('/Registration/RegistrationPolling').subscribe((response) => {\r\n let value = (response);\r\n \r\n if (value.Success)\r\n window.setTimeout(this.Poll, 3000);\r\n else\r\n location.href = \"/User/?sessionTimeoutWarning=true\";\r\n }, (error: any) => {\r\n //alert(\"You got logged out\"); \r\n });\r\n }\r\n}\r\n\r\nexport class RegistrationPollingResponse {\r\n public Success: boolean;\r\n}","
\r\n
\r\n
\r\n
\r\n arrow_back Back To Search\r\n
\r\n
","import { Component, Input, ElementRef, ViewChild } from \"@angular/core\";\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport * as $ from 'jquery';\r\nimport { FormComponent, FormComponentDefinition } from \"../form/form.component\";\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'search-edit',\r\n templateUrl: './search-edit.component.html',\r\n styleUrls: ['./search-edit.component.less']\r\n})\r\nexport class SearchEditComponent {\r\n public CompDef: SearchEditComponentDefinition;\r\n public FormComponent: FormComponentDefinition;\r\n \r\n public ShowForm: boolean;\r\n public IsLoading: boolean;\r\n\r\n private _lastSearch: string;\r\n\r\n constructor(compDef: ComponentDefinition,\r\n private _http: HttpClient, \r\n private _elementRef: ElementRef) {\r\n this.CompDef = compDef;\r\n \r\n $(_elementRef.nativeElement).on('search-triggered', (event, data: string) => {\r\n this._lastSearch = data;\r\n });\r\n }\r\n\r\n BackToSearch() {\r\n this.ShowForm = false;\r\n }\r\n}\r\n\r\nexport class SearchEditComponentDefinition extends ComponentDefinition {\r\n FormName: string;\r\n SearchComponent: any;\r\n}","\r\n\r\n
\r\n
Error retrieving results
\r\n
Start typing to search
\r\n
Type at least 3 characters to search
","import { Component, Input, ElementRef } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NavigationService } from '../../services/NavigationService'\r\nimport { SearchService } from \"../../services/SearchService\";\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\nimport { SearchComponentDefinition } from \"../search/search.models\";\r\nimport * as $ from 'jquery';\r\nimport { InteractService } from '../../services/InteractService';\r\n\r\n@Component({\r\n selector: 'search',\r\n templateUrl: './search.component.html',\r\n styleUrls: ['./search.component.less'],\r\n providers: [SearchService]\r\n})\r\nexport class SearchComponent {\r\n public results: ComponentDefinition;\r\n public SearchFormComponent: ComponentDefinition;\r\n @Input()\r\n public IsSearching: boolean;\r\n public IsError: boolean;\r\n public InitialState: boolean;\r\n public SearchStringTooShort: boolean;\r\n\r\n constructor(private _searchService: SearchService, compDef: ComponentDefinition, elementRef: ElementRef, interact: InteractService) {\r\n let searchCompDef = (compDef);\r\n this.InitialState = searchCompDef.ShowGuidanceText;\r\n this._searchService.SetOptions(searchCompDef.SearchUrl, searchCompDef.PrepopulatedUrl);\r\n this._searchService.RegisterListener((c: ComponentDefinition) => {\r\n this.InitialState = false;\r\n this.IsError = false;\r\n this.IsSearching = false;\r\n this.SearchStringTooShort = false;\r\n this.results = c;\r\n interact.NotifyAsyncLoaded(compDef.Expression, [c]);\r\n }, (searchText: string) => {\r\n this.InitialState = false;\r\n this.IsError = false;\r\n this.IsSearching = true;\r\n this.SearchStringTooShort = false;\r\n this.results = null;\r\n $(elementRef.nativeElement).trigger('search-triggered', searchText);\r\n }, () => {\r\n this.InitialState = false;\r\n this.IsError = false;\r\n this.IsSearching = false;\r\n this.SearchStringTooShort = true;\r\n this.results = null;\r\n }, () => {\r\n this.InitialState = false;\r\n this.IsSearching = false;\r\n this.SearchStringTooShort = false;\r\n this.IsError = true;\r\n this.results = null;\r\n });\r\n \r\n this.SearchFormComponent = searchCompDef.SearchFormComponent;\r\n }\r\n}\r\n","
","import { Component, Input, ViewChild, ViewRef, AfterViewInit, OnInit, ComponentFactoryResolver, ViewContainerRef, NgModule, Compiler, Injector } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NavigationService } from '../../services/NavigationService'\r\nimport { ComponentDataInjector } from \"../component/component.directive\";\r\nimport { PercentageCircleComponent } from \"../percentage-circle/percentage-circle.component\";\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\n\r\n@Component({\r\n templateUrl: './simple.component.html',\r\n styleUrls: ['./simple.component.less']\r\n})\r\nexport class SimpleComponent implements AfterViewInit {\r\n public Model: ComponentDefinition;\r\n\r\n ngAfterViewInit() {\r\n let dynamicComponent = this.createContentComponent(this.Model);\r\n let dynamicModule = this.createComponentModule(dynamicComponent);\r\n this._compiler.compileModuleAndAllComponentsAsync(dynamicModule).then(compiledModule => {\r\n var component = this._viewContainerRef.createComponent(compiledModule.componentFactories[0], null, new ComponentDataInjector(this._injector, this.Model));\r\n });\r\n }\r\n\r\n createContentComponent(component) {\r\n var def = {\r\n selector: '',\r\n templateUrl: `/Angular/GetTemplate?template=` + component.Template,\r\n };\r\n @Component(def)\r\n class IncludeContentComponent { \r\n constructor(private Model: ComponentDefinition) {\r\n }\r\n }\r\n return IncludeContentComponent;\r\n }\r\n \r\n createComponentModule(componentType: any) {\r\n @NgModule({\r\n imports: [CommonModule],\r\n declarations: [\r\n componentType\r\n ],\r\n })\r\n class RuntimeComponentModule {\r\n }\r\n // a module for just this Type\r\n return RuntimeComponentModule;\r\n }\r\n\r\n @ViewChild('content', { read: ViewContainerRef, static: false }) content: ViewContainerRef;\r\n\r\n constructor(private _componentResolver: ComponentFactoryResolver, \r\n private _injector: Injector,\r\n private _compiler: Compiler, \r\n private _viewContainerRef: ViewContainerRef, \r\n private compDef: ComponentDefinition) {\r\n this.Model = compDef;\r\n }\r\n}\r\n","
","import { Component, Input, AfterViewInit, ElementRef } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NavigationService } from '../../services/NavigationService'\r\ndeclare var d3: any;\r\ndeclare var nv: any;\r\nimport * as moment from 'moment';\r\nimport { SparklineData } from \"./sparkline.models\";\r\n\r\n@Component({\r\n selector: 'sparkline',\r\n templateUrl: './sparkline.component.html',\r\n styleUrls: ['./sparkline.component.less']\r\n})\r\nexport class SparklineComponent implements AfterViewInit {\r\n @Input() public data: SparklineData;\r\n public chart: any;\r\n \r\n constructor(private _elementRef: ElementRef) {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n var data = this.data.Data;\r\n\r\n data = data.sort((a, b) => { return d3.ascending(a.X, b.X); });\r\n\r\n nv.addGraph({\r\n generate: () => {\r\n var x = d3\r\n .scale\r\n .linear()\r\n .domain(d3.extent(data, (d) => { return d.X; }))\r\n .range([50, 150]);\r\n //var y = d3.scale.linear().domain(d3.extent(data, function (d) { return d.Y; })).range([2, 50 - 2]);\r\n var unit = this.data.Unit ? \"\" + this.data.Unit : \"\"; //The initial \"\"+ is to cast to a string.\r\n var chart = nv.models.sparklinePlus()\r\n .margin({ top: 0, left: 50, right: 50, bottom: 0 })\r\n .width(200)\r\n .height(50)\r\n .x((d) => {\r\n return d.X;\r\n })\r\n .y((d) => {\r\n return d.Y;\r\n })\r\n .showLastValue(false)\r\n .xTickFormat((d, i) => {\r\n return moment(d).format(this.data.DateFormat);\r\n })\r\n .yTickFormat((d) => {\r\n return d + unit;\r\n });\r\n\r\n //chart is set up \r\n \r\n var svg = d3.select(this._elementRef.nativeElement).append('svg');\r\n\r\n if (this.data.PlotBands && this.data.PlotBands.length) {\r\n svg\r\n .selectAll('rect')\r\n .data(this.data.PlotBands)\r\n .enter()\r\n .append('rect')\r\n .attr('x', (d) => {\r\n return x(d.x1);\r\n })\r\n .attr('width', (d) => {\r\n return x(d.x2) - x(d.x1);\r\n })\r\n .attr('y', 25)\r\n .attr('height', 25)\r\n .attr('fill', '#ff4747');\r\n }\r\n svg\r\n .datum(data)\r\n //.transition().duration((attrs.transitionduration === undefined ? 250 : (+attrs.transitionduration)))\r\n .call(chart);\r\n svg.style('height', '50px');\r\n\r\n \r\n nv.utils.windowResize(chart.update);\r\n this.chart = chart;\r\n return chart;\r\n },\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n {{ isChecked ? \"check_box\" : \"check_box_outline_blank\"}}\r\n
\r\n
{{label}}
\r\n
\r\n
\r\n
{{error.Description}}
\r\n
\r\n
\r\n
{{warning.Description}}
\r\n
\r\n
\r\n","import { Component, Input, forwardRef, Provider } from \"@angular/core\";\r\nimport { AbstractControl, ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\n\r\nexport const CHECKBOX_PROVIDER: Provider = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SsiCheckboxComponent),\r\n multi: true\r\n};\r\n@Component({\r\n selector: 'ssi-checkbox',\r\n templateUrl: 'checkbox.component.html',\r\n styleUrls: ['checkbox.component.less'],\r\n providers: [CHECKBOX_PROVIDER]\r\n})\r\nexport class SsiCheckboxComponent implements ControlValueAccessor {\r\n private onChange = (val: boolean) => { }\r\n isChecked: boolean\r\n\r\n @Input() fieldClass: object\r\n @Input() label: string\r\n @Input() fieldControl: AbstractControl\r\n\r\n constructor(public control: AbstractControl) {\r\n\r\n control.valueChanges.subscribe(value => {\r\n this.isChecked = value;\r\n });\r\n }\r\n\r\n\r\n writeValue(obj: any): void {\r\n this.isChecked = !!obj;\r\n this.onChange(this.isChecked);\r\n }\r\n registerOnChange(fn: any): void { this.onChange = fn }\r\n registerOnTouched(fn: any): void { }\r\n setDisabledState?(isDisabled: boolean): void { }\r\n\r\n}","
\r\n
{{PreviousTabName}}
\r\n
{{CurrentTabName}}
\r\n
{{NextTabName}}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NavigationService } from '../../services/NavigationService'\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\nimport { TabSpinner, TabSpinnerPage } from \"./tab-spinner.models\";\r\n\r\n@Component({\r\n selector: 'tab-spinner',\r\n templateUrl: './tab-spinner.component.html',\r\n styleUrls: ['./tab-spinner.component.less']\r\n})\r\nexport class TabSpinnerComponent {\r\n public Data: TabSpinner;\r\n\r\n public PreviousTabName: string;\r\n public CurrentTabName: string;\r\n public NextTabName: string;\r\n public IsLoading: boolean;\r\n\r\n constructor(compDef: ComponentDefinition, private _http: HttpClient) {\r\n this.Data = compDef;\r\n \r\n let selectedTabName: string;\r\n\r\n let previouslySelectedPage = sessionStorage.getItem('tabspinner-' + this.Data.Key);\r\n if (previouslySelectedPage) {\r\n selectedTabName = previouslySelectedPage; \r\n }\r\n else {\r\n let selectedTab = this.Data.Tabs.find((t) => { return t.IsSelected});\r\n if (selectedTab)\r\n selectedTabName = selectedTab.Name;\r\n else\r\n selectedTabName = this.Data.Tabs[0].Name;\r\n }\r\n\r\n this.SelectTab(selectedTabName);\r\n }\r\n\r\n public GoBackward() {\r\n if (this.PreviousTabName)\r\n this.SelectTab(this.PreviousTabName);\r\n }\r\n\r\n public GoForward() {\r\n if (this.NextTabName)\r\n this.SelectTab(this.NextTabName);\r\n }\r\n\r\n private SelectTab(tabName: string) {\r\n sessionStorage.setItem('tabspinner-' + this.Data.Key, tabName);\r\n\r\n for (var i = 0; i < this.Data.Tabs.length; i++)\r\n this.Data.Tabs[i].IsSelected = false;\r\n\r\n for (var i = 0; i < this.Data.Tabs.length; i++) {\r\n var tab = this.Data.Tabs[i];\r\n if (tab.Name == tabName) {\r\n tab.IsSelected = true;\r\n this.CurrentTabName = tab.Name;\r\n this.PreviousTabName = i > 0 ? this.Data.Tabs[i-1].Name : null;\r\n this.NextTabName = i < this.Data.Tabs.length - 1 ? this.Data.Tabs[i+1].Name : null;\r\n if (tab.Component == null) {\r\n this.IsLoading = true;\r\n this._http.get(tab.ComponentUrl).subscribe((value) => {\r\n tab.Component = value as ComponentDefinition;\r\n this.IsLoading = false;\r\n })\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n","import { ComponentDefinition } from \"../component/component.models\";\r\n\r\nexport class TabSpinner extends ComponentDefinition {\r\n public Tabs: TabSpinnerPage[];\r\n public Key: string;\r\n}\r\n\r\nexport class TabSpinnerPage {\r\n public Name: string;\r\n public ComponentUrl: string;\r\n public IsSelected: boolean;\r\n public Component: ComponentDefinition;\r\n}","
\t\t\t \r\n
    \t\t\t\t \r\n
  • \r\n {{tabPage.Caption}}\r\n \r\n
  • \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
","import { Component, Input, ElementRef, AfterViewInit, OnDestroy } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NavigationService } from '../../services/NavigationService'\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\nimport { TabModel, TabPage } from \"./tab.models\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as $ from 'jquery';\r\nimport { InteractService } from '../../services/InteractService';\r\n\r\n@Component({\r\n selector: 'tab',\r\n templateUrl: './tab.component.html',\r\n styleUrls: ['./tab.component.less']\r\n})\r\nexport class TabComponent implements AfterViewInit, OnDestroy {\r\n _interactid: number;\r\n public CompDef: TabModel;\r\n public SelectedTabIndex = 0;\r\n \r\n constructor(private _http: HttpClient, \r\n private _elementRef: ElementRef, \r\n private _interactService: InteractService,\r\n compDef: ComponentDefinition) {\r\n this.CompDef = compDef;\r\n\r\n this.SelectedTabIndex = this.CompDef.Tabs.findIndex(t => t.OverrideSelection);\r\n if (!this.SelectedTabIndex || this.SelectedTabIndex == -1) {\r\n let previouslySelectedPage = sessionStorage.getItem('tab-' + this.CompDef.Key);\r\n if (previouslySelectedPage && parseInt(previouslySelectedPage) < this.CompDef.Tabs.length)\r\n this.SelectedTabIndex = parseInt(previouslySelectedPage);\r\n else\r\n this.SelectedTabIndex = 0;\r\n }\r\n\r\n this._interactid = this._interactService.RegisterTabListener((tabCaption: string) => {\r\n let matching = this.CompDef.Tabs.findIndex(r => r.Caption == tabCaption);\r\n if (matching != -1) {\r\n this.SelectTab(matching);\r\n }\r\n });\r\n\r\n this.SelectTab(this.SelectedTabIndex, false);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.CompDef.Fixed) {\r\n $('.m-tab-holder', this._elementRef.nativeElement).addClass('m-fixed');\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._interactService.UnregisterTabListener(this._interactid);\r\n }\r\n\r\n public SelectTab(index: number, triggerInteract: boolean = true) {\r\n let tab = this.CompDef.Tabs[index];\r\n if (!tab) {\r\n tab = this.CompDef.Tabs[0];\r\n if (!tab)\r\n return;\r\n }\r\n\r\n if (tab.Component) {\r\n window.setTimeout(() => tab.IsLoaded = true, 16); //At least one frame?\r\n if (triggerInteract)\r\n this._interactService.NotifyAsyncLoaded(this.CompDef.Expression, [tab.Component]);\r\n }\r\n else\r\n this.LoadTab(tab, triggerInteract);\r\n\r\n this.SelectedTabIndex = index;\r\n sessionStorage.setItem('tab-' + this.CompDef.Key, this.SelectedTabIndex.toString()); \r\n }\r\n\r\n private LoadTab(tab: TabPage, triggerInteract: boolean = true): any {\r\n this._http.post(tab.Url, null).subscribe((value) => {\r\n tab.Component = value as ComponentDefinition;\r\n tab.IsLoaded = true;\r\n if (triggerInteract)\r\n this._interactService.NotifyAsyncLoaded(this.CompDef.Expression, [tab.Component]);\r\n });\r\n } \r\n}\r\n","\r\n

Upload one or more files using this form:

\r\n \r\n \r\n","import { Component } from \"@angular/core\";\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\n\r\n@Component({\r\n selector: 'test-comp',\r\n templateUrl: `test.component.html`,\r\n styleUrls: ['./test.component.less'],\r\n})\r\nexport class TestComponent {\r\n data: any;\r\n constructor(compDef: ComponentDefinition) {\r\n this.data = compDef;\r\n }\r\n}","
\r\n
\r\n
{{CompDef.NoRowsMessage}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{row.GapRow.FormattedText}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Input, ElementRef } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NavigationService } from '../../services/NavigationService'\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\nimport { TimelineModel, TimelineRow } from \"./timeline.models\";\r\nimport { LinkService } from \"../../services/LinkService\";\r\nimport * as $ from 'jquery';\r\nimport { LinkBehavior } from '../actions/actions.models';\r\n\r\n@Component({\r\n selector: 'timeline',\r\n templateUrl: './timeline.component.html',\r\n styleUrls: ['./timeline.component.less']\r\n})\r\nexport class TimelineComponent {\r\n public CompDef: TimelineModel;\r\n public SelectedIndex: number = null; \r\n public IsQuerying: boolean;\r\n\r\n constructor(compDef: ComponentDefinition, \r\n private _linkService: LinkService, \r\n private _elementRef: ElementRef,\r\n private _navigationService: NavigationService) {\r\n this.CompDef = compDef;\r\n }\r\n \r\n public RowClick(row: TimelineRow) {\r\n // if (row.CardRow.RowAction && row.CardRow.RowAction.Type == LinkBehavior.Refresh_Component) {\r\n // this.CompDef.Rows.forEach(r => { r.CardRow.IsSelected = false; });\r\n // row.CardRow.IsSelected = true;\r\n // }\r\n\r\n if (row.CardRow.RowAction != null)\r\n this._linkService.Go(row.CardRow.RowAction);\r\n\r\n $(this._elementRef.nativeElement).trigger('grid-row-click', row.CardRow.Model);\r\n }\r\n\r\n public ShowNoResults() {\r\n return this.CompDef.NoRowsMessage && (!this.CompDef.Rows || this.CompDef.Rows.length == 0);\r\n }\r\n\r\n public GetRowClass(row: TimelineRow) {\r\n if (!row._CalculatedClasses) {\r\n row._CalculatedClasses = {\r\n 'card-pointer': !!row.CardRow.RowAction || !!row.CardRow.Model,\r\n }; \r\n if (row.Card && row.Card.Card && row.Card.Card.IndicatorColorStyle) \r\n row._CalculatedClasses[row.Card.Card.IndicatorColorStyle] = true;\r\n }\r\n return row._CalculatedClasses;\r\n }\r\n}\r\n","
\r\n
\r\n
{{Message ? Message.Message : null}}
\r\n
close
\r\n
\r\n
","import { Component, Inject, Input, HostBinding, ElementRef } from '@angular/core';\r\nimport { GridComponent } from '../grid/grid.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NavigationService, ToastMessage } from '../../services/NavigationService'\r\nimport { StyleAttribute } from \"../../services/AttributeTranslator\";\r\nimport { InfiniteScrollService } from \"../../services/InfiniteScrollService\";\r\nimport * as $ from 'jquery';\r\nimport { Page } from \"../../components/page/page.models\";\r\nimport { Link } from '../actions/actions.models';\r\nimport { LinkService } from '../../services/LinkService';\r\nimport { ToastService } from '../../services/ToastService';\r\n\r\n@Component({\r\n selector: 'toast',\r\n templateUrl: './toast.component.html',\r\n styleUrls: ['./toast.component.less'],\r\n})\r\nexport class ToastComponent {\r\n public Message: ToastMessage;\r\n public ShowClose: boolean;\r\n public Link: Link;\r\n\r\n constructor(toastService: ToastService, private linkService: LinkService) {\r\n toastService.Register((message: ToastMessage) => {\r\n this.Message = message;\r\n this.ShowClose = message.Severity == \"Error\";\r\n\r\n if (!this.ShowClose)\r\n setTimeout(() => {\r\n this.Message = null;\r\n }, 5000);\r\n });\r\n }\r\n\r\n public Close() {\r\n this.Message = null;\r\n }\r\n\r\n public ToastClick() {\r\n if (this.Message.Link)\r\n this.linkService.Go(this.Message.Link);\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { Directive, Input, ElementRef, ViewContainerRef, Injector, Component, ComponentFactoryResolver, HostListener, SimpleChange, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';\r\nimport * as $ from 'jquery';\r\nimport { ComponentDataInjector } from \"../component/component.directive\";\r\nimport { ComponentDefinition, ComponentContext } from '../component/component.models';\r\nimport { ScrollingContext, ScrollStrategyResolver } from '../dialog/ScrollStrategyResolver';\r\n\r\nexport class TooltipModel {\r\n public Gravity: string;\r\n public Text: string;\r\n public ComponentContext: ComponentContext;\r\n public Component: ComponentDefinition;\r\n\r\n static Create(text: string) : TooltipModel{\r\n let t = new TooltipModel();\r\n t.Text = text;\r\n t.Gravity = 'centerns';\r\n return t;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'tooltip-component',\r\n templateUrl: './tooltip.component.html',\r\n styleUrls: ['./tooltip.component.less']\r\n})\r\nexport class TooltipComponent{\r\n model: TooltipModel;\r\n\r\n constructor(model: TooltipModel){\r\n this.model = model;\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[tooltip]',\r\n})\r\nexport class TooltipDirective implements OnChanges, OnDestroy {\r\n _ref: any;\r\n \r\n ngOnDestroy(): void {\r\n if (this._initialized) { \r\n this.GetTooltipHTMLElement().remove();\r\n this._ref.destroy();\r\n }\r\n }\r\n\r\n private _tooltip: TooltipModel; \r\n private _initialized: boolean = false;\r\n private _hovering: boolean = false;\r\n _scrollStrategy: any;\r\n _component: any;\r\n\r\n @Input() \r\n public set tooltip(value: TooltipModel) {\r\n this._tooltip = value;\r\n if (!value || !value.Text)\r\n return;\r\n\r\n this.initializeTooltipComponent();\r\n }\r\n\r\n private initializeTooltipComponent() {\r\n if(this._initialized === true) return;\r\n this._initialized = true;\r\n let componentFactory = this._componentFactoryResolver.resolveComponentFactory(TooltipComponent);\r\n this._ref = this._viewContainerRef.createComponent(componentFactory, null, new ComponentDataInjector(this._injector, null, this._tooltip));\r\n this.InitializeTooltip();\r\n }\r\n\r\n @HostListener('mouseover') onMouseOver() {\r\n this.MouseOver();\r\n }\r\n\r\n MouseOver(){\r\n this._hovering = true;\r\n if(!this._tooltip) return;\r\n this.ShowTooltip();\r\n var el = this.GetTooltipHTMLElement();\r\n if((!this._tooltip.Component || this._initialized) && el){\r\n this._scrollStrategy = new ScrollStrategyResolver().Get(new ScrollingContext($(this._elementRef.nativeElement), el.find('.ui-tooltip'), this._tooltip.Gravity));\r\n this._scrollStrategy.Start();\r\n } \r\n\r\n if(this._tooltip.Component && !this._initialized){\r\n this.initializeTooltipComponent();\r\n }\r\n }\r\n\r\n ShowTooltip(){\r\n var element = this.GetTooltipHTMLElement();\r\n if(element)\r\n element.css({\"visibility\": \"visible\"});\r\n }\r\n\r\n HideTooltip(){\r\n var element = this.GetTooltipHTMLElement();\r\n if(element)\r\n element.css({\"visibility\": \"hidden\"});\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) { \r\n if(this.TooltipTextChanged(changes))\r\n this.UpdateTooltipText();\r\n }\r\n\r\n TooltipTextChanged(changes: SimpleChanges) {\r\n if(!changes || changes.isFirstChange || !changes['tooltip']) return false; \r\n let t = changes['tooltip'];\r\n let currentText = t.currentValue && t.currentValue.Text || null;\r\n let previousText = t.previousValue && t.previousValue.Text || null;\r\n return currentText != previousText;\r\n }\r\n\r\n UpdateTooltipText(){\r\n let el = this.GetTooltipHTMLElement();\r\n if(!el || !this._tooltip) return;\r\n let textEl = el.find('#tooltip-text');\r\n if(!textEl) return;\r\n textEl.html(this._tooltip.Text);\r\n }\r\n\r\n GetTooltipHTMLElement() : JQuery{\r\n if(!this._component) return null;\r\n return this._component.find('.tooltip');\r\n }\r\n\r\n @HostListener('mouseleave') onMouseLeave() {\r\n this._hovering = false;\r\n \r\n if(this._scrollStrategy)\r\n this._scrollStrategy.Stop();\r\n \r\n this.HideTooltip();\r\n }\r\n\r\n public InitializeTooltip(): any { \r\n this._component = $(this._viewContainerRef.element.nativeElement).next('tooltip-component');\r\n this._component.appendTo(document.body);\r\n\r\n this.HideTooltip();\r\n\r\n if(!this._tooltip.Component || !this._hovering) return;\r\n setTimeout(() => {\r\n if(!this._hovering) return;\r\n this.MouseOver();\r\n }, 100);\r\n }\r\n\r\n constructor(private _elementRef: ElementRef, \r\n private _viewContainerRef: ViewContainerRef,\r\n private _injector: Injector,\r\n private _componentFactoryResolver: ComponentFactoryResolver) {\r\n }\r\n}","
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n","import { Component, ElementRef, AfterViewInit, ViewEncapsulation } from \"@angular/core\";\r\nimport { NavigationService } from \"../../services/NavigationService\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport { ComponentDefinition } from \"../component/component.models\";\r\nimport * as $ from 'jquery';\r\nimport { CardListModel } from \"../card-list/card-list.models\";\r\n\r\n@Component({\r\n selector: 'two-panel-component',\r\n templateUrl: './two-panel.component.html',\r\n styleUrls: ['./two-panel.component.less'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class TwoPanelComponent implements AfterViewInit {\r\n data: TwoPanelDefinition;\r\n public IsLoading: boolean;\r\n public ShowRightPanel: boolean = true;\r\n\r\n constructor(private _compDef: ComponentDefinition, \r\n private _elementRef: ElementRef,\r\n private _navigationService: NavigationService) {\r\n this.data = _compDef;\r\n \r\n $(_elementRef.nativeElement).height($(window).height() - 50);\r\n\r\n $(window).resize(()=> {\r\n $(_elementRef.nativeElement).height($(window).height() - 50);\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n $('.ui-left-panel', this._elementRef.nativeElement).on('grid-row-click', (event, data) => {\r\n if (!data)\r\n return;\r\n this.IsLoading = true;\r\n this.data.LeftMenu.Rows.forEach(c => c.Card.Card.Primary = false);\r\n this.data.LeftMenu.Rows.filter(r => r.Model == data).forEach(c => c.Card.Card.Primary = true);\r\n this._navigationService.RequestPage(data, (response) => {\r\n this.data.RightContent = response;\r\n this.IsLoading = false;\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport class TwoPanelDefinition extends ComponentDefinition {\r\n public LeftMenu: CardListModel;\r\n public RightContent: ComponentDefinition;\r\n}\r\n","
\n
\n
Verify Your Phone
\n
\n
","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'verification-directions',\r\n template: `
\r\n
\r\n
Verify Your Phone
\r\n
\r\n
`,\r\n})\r\nexport class TwoStepVerifyGuidanceComponent {\r\n constructor() {\r\n }\r\n}\r\n","
\r\n
\r\n {{page.UserDisplayName}}\r\n \"\"\r\n
\r\n
\r\n \r\n
\r\n
","import { Component, Input } from '@angular/core';\r\nimport { NavigationService, NavigationType } from '../../services/NavigationService';\r\nimport { LinkService } from \"../../services/LinkService\";\r\nimport { Page } from \"../page/page.models\";\r\nimport { Link } from \"../actions/actions.models\";\r\n\r\n@Component({\r\n selector: 'user-menu',\r\n templateUrl: './user-menu.component.html',\r\n styleUrls: ['./user-menu.component.less'],\r\n})\r\nexport class UserMenuComponent {\r\n @Input() public page: Page;\r\n\r\n constructor(private _linkService: LinkService, private navigationService: NavigationService) {\r\n navigationService.Register(p => {\r\n this.page = p\r\n });\r\n }\r\n\r\n public MenuItemClick(menuItem: Link) {\r\n this._linkService.Go(menuItem);\r\n }\r\n}\r\n","
\r\n
{{data.Directions}}
\r\n
\r\n Haven't received a code yet? Send another code\r\n
\r\n
\r\n
\r\n
{{option.Text}}
\r\n
\r\n
\r\n
\r\n","import { Component, Input, ElementRef, AfterViewInit } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { ModalService } from \"../../services/ModalService\";\r\nimport * as $ from 'jquery';\r\nimport { ComponentDefinition } from \"../../components/component/component.models\";\r\nimport { Link, LinkBehavior } from \"../../components/actions/actions.models\";\r\n\r\n@Component({\r\n selector: 'verification-directions',\r\n templateUrl: './verification-directions.component.html',\r\n styleUrls: ['./verification-directions.component.less']\r\n})\r\nexport class VerificationDirectionsComponent implements AfterViewInit {\r\n public data: VerificationDirectionsModel;\r\n\r\n constructor(private _modalService: ModalService, private _http: HttpClient, private _elementRef: ElementRef, compDef: ComponentDefinition) {\r\n this.data = compDef;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.SetHelpTimer(15);\r\n }\r\n\r\n public Click(link: Link) {\r\n if (link.Type == LinkBehavior.Modal) {\r\n this._modalService.Open(link.Url);\r\n }\r\n else {\r\n this._http.post(link.Url, null).subscribe((response) => {\r\n let value = (response);\r\n if (value == \"SessionTimedOut\") {\r\n location.href = \"/Registration/Verify?timeout=true\";\r\n return;\r\n }\r\n if (value) {\r\n $('input:visible').val(value);\r\n $('input:visible').trigger('input');\r\n }\r\n });\r\n\r\n this.data.ShowHelper = false;\r\n this.data.ShowHelperPanel = false;\r\n this.SetHelpTimer(30);\r\n }\r\n }\r\n\r\n private SetHelpTimer(seconds) {\r\n window.setTimeout(() => {\r\n this.data.ShowHelper = true;\r\n }, seconds * 1000);\r\n }\r\n}\r\n\r\nexport class VerificationDirectionsModel extends ComponentDefinition {\r\n public Directions: string;\r\n public DisplayPhoneHelperPanel: boolean;\r\n public ShowHelper: boolean;\r\n public ShowHelperPanel: boolean;\r\n public VerificationOptions: Link[];\r\n //public TestCode: string;\r\n}\r\n\r\n","import { Injectable, Inject, InjectionToken } from '@angular/core';\r\nimport { HttpInterceptor, HttpXsrfTokenExtractor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class CamHttpXsrfInterceptor implements HttpInterceptor {\r\n constructor(\r\n private tokenService: HttpXsrfTokenExtractor) {}\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n const token = this.tokenService.getToken();\r\n\r\n // Be careful not to overwrite an existing header of the same name.\r\n if (token !== null && !req.headers.has('X-XSRF-TOKEN')) {\r\n req = req.clone({headers: req.headers.set('X-XSRF-TOKEN', token)});\r\n }\r\n if (!req.headers.has('utc-offset')) {\r\n req = req.clone({headers: req.headers.set('utc-offset', new Date().getTimezoneOffset().toString())});\r\n }\r\n return next.handle(req);\r\n }\r\n}","import { Injectable, Inject } from '@angular/core';\r\nimport { FormComponent, FormComponentDefinition } from \"../components/form/form.component\";\r\nimport { AssessmentModel } from \"../components/assessment/assessment.models\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\n\r\n@Injectable()\r\nexport class AssessmentService {\r\n private _listener: (formComponent: FormComponent) => void;\r\n\r\n constructor() {\r\n }\r\n\r\n public RegisterForm(formComponent: FormComponent) {\r\n this._listener(formComponent);\r\n }\r\n \r\n public RegisterListener(listener: (formComponent: FormComponent) => void) {\r\n this._listener = listener;\r\n }\r\n}","// TODO: Consider porting to a pipe\r\nimport { ElementRef } from \"@angular/core\";\r\nimport * as $ from 'jquery';\r\n\r\nexport class AttributeTranslator {\r\n\r\n constructor(attributes: StyleAttribute[]) {\r\n this.Results = { Styles: {}, Classes: [], Actives: new Array<(elementRef: ElementRef) => void>() };\r\n if(!attributes) return;\r\n for(let attribute of attributes) {\r\n switch(attribute.Name) {\r\n case \"Height\":\r\n this.Results.Styles[\"height\"] = attribute.Value;\r\n break;\r\n case \"Width\":\r\n this.Results.Styles[\"width\"] = attribute.Value;\r\n break;\r\n case \"Center\":\r\n this.Results.Styles[\"margin-left\"] = \"auto\";\r\n this.Results.Styles[\"margin-right\"] = \"auto\";\r\n break;\r\n case \"PageBreakAfter\":\r\n this.Results.Styles[\"page-break-after\"] = \"always\";\r\n case \"GridColor\":\r\n this.Results.Classes.push(\"ui-grid-row-\" + attribute.Value);\r\n break; \r\n case \"AccordionColor\":\r\n this.Results.Classes.push(\"ui-accordion-row-\" + attribute.Value);\r\n break; \r\n case \"FormattedText\":\r\n this.Results.Styles[\"white-space\"] = \"pre-wrap\";\r\n this.Results.Styles[\"word-break\"] = \"break-word\";\r\n this.Results.Styles[\"overflow\"] = \"visible\";\r\n break; \r\n case \"ErrorText\":\r\n this.Results.Styles[\"color\"] = \"#ef5350\";\r\n break; \r\n case \"SearchSizing\":\r\n this.Results.Actives.push((elementRef: ElementRef) => {\r\n let resize = () => { \r\n if ($(elementRef.nativeElement).length == 0) {\r\n clearInterval(interval)\r\n return;\r\n }\r\n var $componentWrapper = $(elementRef.nativeElement).closest('component-wrapper');\r\n var $searchHeader = $componentWrapper.prev();\r\n $componentWrapper.height($(window).innerHeight() - $searchHeader.height() - 80);\r\n $componentWrapper.css({'overflow': 'hidden'});\r\n };\r\n\r\n var interval = setInterval(resize, 100);\r\n });\r\n break;\r\n\r\n }\r\n }\r\n }\r\n\r\n public Results: { Styles: { }, Classes: string[], Actives: ((elementRef: ElementRef) => void)[] };\r\n}\r\n\r\nexport class StyleAttribute {\r\n public Name: string;\r\n public Value: any;\r\n}","import { ComponentDefinition, ComponentContext, EntityChange, EntityKey } from \"../components/component/component.models\";\r\nimport { ComponentWrapperComponent, ComponentDirective } from \"../components/component/component.directive\";\r\nimport { CardComponent } from \"../components/card/card.component\";\r\n\r\nexport class ComponentRegistration {\r\n _isRequesting = false;\r\n public IsStale: boolean = false;\r\n\r\n constructor(public Definition: ComponentDefinition, \r\n public ComponentWrapper: ComponentWrapperComponent,\r\n public CardComponent: CardComponent,\r\n public ComponentDirective: ComponentDirective) \r\n { }\r\n\r\n public UpdateIfNecessary(newDefinition: ComponentDefinition) {\r\n let doUpdate = false;\r\n\r\n if (newDefinition.ComponentContext && this.Definition.ComponentContext) {\r\n doUpdate = this.MatchesComponentContext(newDefinition.ComponentContext);\r\n // doUpdate = this.MatchesEntityChange(new EntityChange(EntityChange)) && this.Definition.ComponentContext.Name == newDefinition.ComponentContext.Name;\r\n }\r\n\r\n // else if (newDefinition.ComponentContext && this.Definition.ComponentContext)\r\n // doUpdate = newDefinition.ComponentContext.EntityKey.Table == this.Definition.ComponentContext.EntityKey.Table &&\r\n // newDefinition.ComponentContext.EntityKey.ID == this.Definition.ComponentContext.EntityKey.ID &&\r\n // new Date(newDefinition.ComponentContext.EntityKey.TimestampAsString) > new Date(this.Definition.ComponentContext.EntityKey.TimestampAsString) &&\r\n // newDefinition.ComponentContext.Name == this.Definition.ComponentContext.Name;\r\n\r\n if (doUpdate) {\r\n this._isRequesting = false;\r\n console.log(`Updating component {0} with component {1}`,this.Definition, newDefinition)\r\n this.Definition = newDefinition;\r\n if (this.ComponentWrapper)\r\n this.ComponentWrapper.definition = newDefinition;\r\n else if (this.CardComponent)\r\n this.CardComponent.InitializeCard(newDefinition);\r\n else if (this.ComponentDirective)\r\n this.ComponentDirective.definition = newDefinition;\r\n \r\n if (this.ComponentWrapper)\r\n $(this.ComponentWrapper.Element.nativeElement).trigger('component-update', newDefinition);\r\n\r\n }\r\n\r\n return doUpdate;\r\n\r\n }\r\n \r\n EntityKeyMatches(ek1: EntityKey, ek2: EntityKey) {\r\n if (ek1 != null && ek2 != null) {\r\n return ek1.ID == ek2.ID && \r\n ek1.Table == ek2.Table;\r\n }\r\n return !ek1 == !ek2;\r\n }\r\n\r\n CustomChangeParametersMatch(param1: {}, param2: {}) {\r\n return true;\r\n }\r\n\r\n MatchesComponentContext(componentContext: ComponentContext): boolean {\r\n if(componentContext.Name != this.Definition.ComponentContext.Name)\r\n return false; \r\n \r\n for (var key in componentContext.Parameters) {\r\n if (Object.keys(this.Definition.ComponentContext.Parameters).indexOf(key) != -1)\r\n {\r\n if (typeof this.Definition.ComponentContext.Parameters[key] != \"object\" && this.Definition.ComponentContext.Parameters[key] != componentContext.Parameters[key])\r\n {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n if (componentContext.EntityContexts.length && this.Definition.ComponentContext.EntityContexts.length) {\r\n componentContext.EntityContexts.forEach(newEntityContext => {\r\n var matchingContext = this.Definition.ComponentContext.EntityContexts.find(r => {\r\n return r.ChangeType == newEntityContext.ChangeType &&\r\n r.CustomName == newEntityContext.CustomName &&\r\n this.EntityKeyMatches(r.EntityKey,newEntityContext.EntityKey) &&\r\n this.CustomChangeParametersMatch(r.CustomChangeParameters, newEntityContext.CustomChangeParameters);\r\n });\r\n if (matchingContext == null) {\r\n console.log(\"Non-match on {0} in {1}\", newEntityContext, componentContext.EntityContexts);\r\n return false;\r\n }\r\n });\r\n var firstExisting = this.Definition.ComponentContext.EntityContexts[0];\r\n var firstIncoming = componentContext.EntityContexts[0];\r\n if (firstIncoming.EntityKey || firstExisting.EntityKey) {\r\n if (!!firstIncoming.EntityKey != !!firstExisting.EntityKey)\r\n return false;\r\n\r\n return firstIncoming.EntityKey.Table == firstExisting.EntityKey.Table && \r\n firstIncoming.EntityKey.ID == firstExisting.EntityKey.ID\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n MatchesEntityChange(entityChange: EntityChange) {\r\n if (!this.Definition.ComponentContext)\r\n return false;\r\n \r\n var typedContext = $.extend(new ComponentContext(), this.Definition.ComponentContext);\r\n return typedContext.DoesEntityChangeMatchContext(entityChange);\r\n }\r\n\r\n // MatchesEK(ek: EntityKey): any {\r\n // if (this.Definition.ComponentContext)\r\n // {\r\n // let element = this.Definition.ComponentContext.EntityChange.EntityKey;\r\n // if (!this._isRequesting && element.Table == ek.Table && element.ID == ek.ID && new Date(element.TimestampAsString) <= new Date(ek.TimestampAsString)) {\r\n // this._isRequesting = true;\r\n // return true;\r\n // }\r\n // }\r\n // return false;\r\n // }\r\n}","import { Injectable, NgZone, HostListener, Renderer, RendererFactory2 } from \"@angular/core\";\r\nimport { NavigationService, NavigationType, ToastMessage } from \"./NavigationService\";\r\nimport { Page, MenuBadge } from \"../components/page/page.models\";\r\nimport { IndicatorColor } from \"../components/header/header.component\";\r\nimport { EntityChange, ComponentDefinition, ComponentContext } from \"../components/component/component.models\";\r\nimport { DefconRegistration } from \"../components/app/app.component\";\r\nimport { ComponentRegistration } from \"./ComponentRegistration\";\r\nimport { ToastService } from \"./ToastService\";\r\nimport * as $ from 'jquery';\r\nimport { ProgressPollingRequest, ProgressUpdateResponse } from \"../components/progress/progress.component\";\r\n\r\nenum MessageType {\r\n PollingCheck,\r\n ReceiveUpdatedComponent,\r\n}\r\ntype Message = {\r\n type: MessageType;\r\n data: any;\r\n}\r\n\r\n@Injectable()\r\nexport class ConnectionMessagingService {\r\n constructor(private _navigationService: NavigationService, \r\n ngZone: NgZone, \r\n private toastService: ToastService) {\r\n \r\n this._navigationService.ConnectionMessagingService = this;\r\n _navigationService.Register((page: Page) => {\r\n this._page = page;\r\n });\r\n\r\n document.addEventListener(\"visibilitychange\", () => {\r\n if (document.hidden)\r\n return;\r\n\r\n this.pollingCheck();\r\n ngZone.run(() => {\r\n this._componentUpdateHandlers.filter(r => r.IsStale).forEach(r => this.TriggerRequestForUpdatedComponent(r));\r\n \r\n if(this.isLoggedIn === true)\r\n this.UpdateLoggedIn(this.isLoggedIn)\r\n })\r\n });\r\n\r\n if ('BroadcastChannel' in window) {\r\n this.channel = new BroadcastChannel(\"connectionMessagingChannel\");\r\n this.channel.onmessage = evt => ngZone.run(() => this.onMessage(evt.data));\r\n }\r\n\r\n window.addEventListener(\"beforeunload\", () => this.channel && this.channel.close())\r\n\r\n setInterval(() => this.pollingCheck(), 30000)\r\n }\r\n private _disabledContext = null;\r\n disableRefresh(contextName: string) {\r\n this._disabledContext = contextName;\r\n }\r\n //TODO: If we ever need more make stuff. \r\n enableRefresh(contextName: string) {\r\n this._disabledContext = null;\r\n }\r\n\r\n private _page: Page;\r\n private _badgeListeners: ((menuItems: MenuBadge[]) => void)[] = [];\r\n private _defconListeners: DefconRegistration[] = [];\r\n private _componentUpdateHandlers: ComponentRegistration[] = [];\r\n private isLoggedIn: boolean;\r\n private channel: BroadcastChannel\r\n\r\n RequestUpdatedComponent(context) {\r\n context.Width = $(window).width();\r\n context.Height = $(window).height();\r\n context.XSRF = this._navigationService.GetXSRFToken();\r\n //TODO: Http Request\r\n fetch('/Component/Component', {\r\n method: 'post',\r\n body: JSON.stringify(context),\r\n headers: { 'Content-Type': \"application/json\", 'X-XSRF-TOKEN': context.XSRF }\r\n })\r\n .then(c => {\r\n try {\r\n return c.json();\r\n } catch {\r\n var comp = {};\r\n comp.Type = \"AsyncErrorComponent\";\r\n comp.HasMaterialBackground = true;\r\n comp.Attributes = [];\r\n comp.ComponentContext = context;\r\n return comp;\r\n }\r\n }, (err) => {\r\n var comp = {};\r\n comp.Type = \"AsyncErrorComponent\";\r\n comp.HasMaterialBackground = true;\r\n comp.Attributes = [];\r\n comp.ComponentContext = context;\r\n return comp;\r\n })\r\n .then(comp => this.postMessage(MessageType.ReceiveUpdatedComponent, comp))\r\n };\r\n\r\n private pollingCheck() {\r\n if ((this._page && this._page.NoPolling) || document.hidden)\r\n return\r\n\r\n fetch('/Polling/Check', { method: 'POST', })\r\n .then(response => response.json())\r\n .then(json => this.postMessage(MessageType.PollingCheck, json));\r\n }\r\n\r\n private postMessage(type: MessageType, data: any) {\r\n var msg = { type: type, data: data };\r\n this.channel && this.channel.postMessage(msg) // post to channel first. If we handled this tab first it could redirect to login and wouldn't post message to others\r\n this.onMessage(msg); // broadcast channels do not receive messages posted from the same BroadcastChannel instance.\r\n }\r\n\r\n private onMessage(message: Message) {\r\n if (message.type == MessageType.PollingCheck)\r\n this.UpdateStatus(message.data);\r\n else if (message.type == MessageType.ReceiveUpdatedComponent) {\r\n this.UpdateComponent(message.data);\r\n }\r\n }\r\n\r\n private UpdateStatus(data: PollingCheckResponse): any {\r\n this.UpdateDefcon(data.Defcon);\r\n\r\n this.isLoggedIn = data.IsLoggedIn;\r\n let isLoggingInAndDocumentIsNotHidden = !document.hidden && this.isLoggedIn === true;\r\n if(isLoggingInAndDocumentIsNotHidden || this.isLoggedIn === false)\r\n this.UpdateLoggedIn(data.IsLoggedIn);\r\n\r\n if (data.MenuBadges)\r\n this.UpdateBadges(data.MenuBadges);\r\n }\r\n \r\n RegisterDefcon(defcon: DefconRegistration) {\r\n this._defconListeners.push(defcon);\r\n }\r\n\r\n UnregisterDefcon(_defconRegistration: DefconRegistration) {\r\n this._defconListeners = this._defconListeners.filter(r => r != _defconRegistration);\r\n }\r\n\r\n private UpdateDefcon(defcon: DefconMessage) {\r\n this._defconListeners.forEach(f => f.updateDefcon(defcon));\r\n }\r\n\r\n RegisterBadgeUpdates(func: ((menuItems: MenuBadge[])=> void)) {\r\n this._badgeListeners.push(func);\r\n }\r\n \r\n private UpdateBadges(badges: MenuBadge[]) {\r\n this._badgeListeners.forEach(c => c(badges));\r\n }\r\n\r\n private UpdateLoggedIn(isLoggedIn: boolean) {\r\n const areOnLoginPage = this._page && this._page.Components.findIndex(c => c.Type === \"LoginWrapperComponent\") !== -1;\r\n const noPageOrErrorPage = !this._page || this._page.Header == \"Error\";\r\n if (isLoggedIn && areOnLoginPage) {\r\n this._navigationService.ClearWarning();\r\n this._navigationService.Go('/', NavigationType.Default);\r\n }\r\n else if (!this._page || this._page.NoPolling) //Login page is NoPolling = true... \r\n return;\r\n else if (noPageOrErrorPage) \r\n return;\r\n else if (!isLoggedIn) {\r\n this._navigationService.ClearWarning();\r\n this._navigationService.Go(`/?returnUrl=${this.b64EncodeUnicode(location.pathname + location.search)}`, NavigationType.FullPage);\r\n }\r\n }\r\n\r\n private b64EncodeUnicode(str) : string {\r\n // first we use encodeURIComponent to get percent-encoded UTF-8,\r\n // then we convert the percent encodings into raw bytes which\r\n // can be fed into btoa.\r\n return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g,\r\n function toSolidBytes(match, p1) {\r\n var x: any;\r\n x = '0x' + p1;\r\n return String.fromCharCode(x);\r\n }));\r\n }\r\n\r\n NotifyEntityChange(entityChanges: EntityChange[]) {\r\n if (!entityChanges)\r\n return;\r\n\r\n for (let entityChange of entityChanges) {\r\n for (let h of this._componentUpdateHandlers.filter(r => r.MatchesEntityChange(entityChange))) {\r\n h.IsStale = true;\r\n if (!document.hidden) {\r\n // if any component entity changes need info from source event, add them to component parameters\r\n if (h.Definition.ComponentContext.EntityContexts.find(x => x.ReceiveParametersFromSourceEvent))\r\n Object.assign(h.Definition.ComponentContext.Parameters, entityChange.CustomChangeParameters);\r\n\r\n this.TriggerRequestForUpdatedComponent(h); \r\n }\r\n }\r\n }\r\n }\r\n\r\n private TriggerRequestForUpdatedComponent(r: ComponentRegistration){\r\n r.Definition.IsUpdating = true;\r\n var context = r.Definition.ComponentContext;\r\n this.RequestUpdatedComponent(context);\r\n }\r\n\r\n UpdateComponent(compdef: ComponentDefinition) {\r\n if (compdef.ComponentContext.Name == this._disabledContext)\r\n return;\r\n\r\n this._componentUpdateHandlers.forEach(c => {\r\n let update = c.UpdateIfNecessary(compdef);\r\n if(update)\r\n c.IsStale = false;\r\n });\r\n }\r\n\r\n RegisterComponentHandler(registration: ComponentRegistration) {\r\n this._componentUpdateHandlers.push(registration);\r\n }\r\n\r\n RemoveComponentHandler(registration: ComponentRegistration) {\r\n if (this._componentUpdateHandlers.indexOf(registration) !== -1) {\r\n this._componentUpdateHandlers.splice(this._componentUpdateHandlers.indexOf(registration), 1);\r\n }\r\n }\r\n}\r\n\r\nclass PollingCheckResponse {\r\n IsLoggedIn: boolean;\r\n Defcon: DefconMessage;\r\n MenuBadges: MenuBadge[];\r\n Notifications: NotificationMessage[];\r\n}\r\n\r\nexport class DefconMessage {\r\n public Message: string;\r\n public Color: IndicatorColor;\r\n}\r\n\r\nexport class NotificationMessage {\r\n public Message: string;\r\n public MessageID: string;\r\n public Url: string;\r\n public DesktopUrl: string;\r\n public Title: string;\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class CustomizationService {\r\n private _types: { [ key: string] : any } = {};\r\n\r\n public RegisterCustomization(name: string, type: any) {\r\n this._types[name] = type;\r\n }\r\n\r\n public Get(name: string) {\r\n return this._types[name];\r\n }\r\n}","import { MDialogTrigger } from '../components/dialog/md-dialog.component';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class DialogService {\r\n\r\n private _dialogTrigger: MDialogTrigger;\r\n\r\n Register(dialogTrigger: MDialogTrigger): void {\r\n if (this._dialogTrigger && this._dialogTrigger !== dialogTrigger)\r\n this._dialogTrigger.menu.close();\r\n this._dialogTrigger = dialogTrigger;\r\n }\r\n}\r\n","import { Injectable, Injector, InjectionToken, Type } from \"@angular/core\";\r\nimport { FieldDefinition, FormComponent } from \"../components/form/form.component\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport { FileUploadFieldComponent, IFileFieldComponent } from \"../components/form/fieldcomponents/file-upload-field.component\";\r\n\r\n\r\n@Injectable()\r\nexport class FieldService {\r\n RegisterControl(fileupload: IFileFieldComponent, field: FieldDefinition) {\r\n var fieldDefinition = this.Fields.find(r => r.Definition.Name == field.Name);\r\n fieldDefinition.Component = fileupload;\r\n }\r\n \r\n Fields: { \r\n Definition: FieldDefinition, \r\n Form: FormGroup, \r\n Control: AbstractControl, \r\n FormComponent: FormComponent \r\n Component?: IFileFieldComponent\r\n }[] = new Array<{Definition: FieldDefinition, Form: FormGroup, Control: AbstractControl, FormComponent: FormComponent, Component: FileUploadFieldComponent }>();\r\n}\r\n","import { Injectable, ElementRef } from \"@angular/core\";\r\nimport * as $ from 'jquery';\r\n\r\n@Injectable()\r\nexport class InfiniteScrollService {\r\n _element: any;\r\n _bind: (element: any) => void;\r\n _unbind: (element: any) => void;\r\n\r\n public set ScrollElement(element: any) {\r\n this._element = element;\r\n }\r\n\r\n constructor() {\r\n this._bind = (element) => {\r\n element.on('scroll', c => {\r\n // let x = 1;\r\n // if (x = 1)\r\n // return;\r\n let scrollHeight = document.documentElement.scrollHeight;\r\n let scrollTop = document.documentElement.scrollTop;\r\n let scrollTargetHeight = element.height();\r\n\r\n //Fall-back for Chrome 60 and prior\r\n if (!scrollHeight) {\r\n scrollHeight = $('body')[0].scrollHeight;\r\n scrollTop = $('body').scrollTop();\r\n }\r\n if(scrollHeight - (scrollTop + scrollTargetHeight) <= 300)\r\n {\r\n this._listeners.filter(r => r != null).forEach(c => c());\r\n }\r\n });\r\n }\r\n\r\n this._unbind = (element) => {\r\n element.off('scroll');\r\n }\r\n }\r\n\r\n private _listeners = new Array<()=> void>();\r\n\r\n public RegisterListener(listener: ()=> void) : number {\r\n this._listeners.push(listener);\r\n this._bind(this._element);\r\n return this._listeners.length - 1;\r\n }\r\n\r\n public Remove(id: number) {\r\n this._listeners[id] = null;\r\n if (this._listeners.every(c => c == null))\r\n this._unbind(this._element);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ComponentDefinition } from '../components/component/component.models';\r\n\r\n@Injectable()\r\nexport class InteractService {\r\n TabListeners: any[] = [];\r\n \r\n NotifyAsyncLoaded(compNameSource: string, compList: ComponentDefinition[]): any {\r\n if ((window).asyncCompLoad)\r\n (window).asyncCompLoad(compNameSource, compList);\r\n }\r\n\r\n constructor() {\r\n (window).Interact = this;\r\n } \r\n \r\n LoadTab(caption: string) {\r\n this.TabListeners.filter(cb => cb != null).forEach(cb => cb(caption));\r\n }\r\n \r\n RegisterTabListener(callBack: any): number {\r\n this.TabListeners.push(callBack);\r\n return this.TabListeners.length - 1;\r\n }\r\n\r\n UnregisterTabListener(id: number) {\r\n this.TabListeners[id] = null;\r\n }\r\n\r\n\r\n\r\n \r\n}","import { Injectable, Inject } from '@angular/core';\r\nimport { Location, PopStateEvent } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { NavigationService, NavigationType, ToastMessage } from \"./NavigationService\";\r\nimport { ModalService } from \"./ModalService\";\r\nimport { Link, LinkBehavior } from \"../components/actions/actions.models\";\r\nimport { FormMessage } from '../components/form/form.component';\r\nimport { ToastService } from './ToastService';\r\nimport { ConnectionMessagingService } from './ConnectionMessagingService';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class LinkService {\r\n constructor(private _http: HttpClient, \r\n private _modalService: ModalService,\r\n private _toastService: ToastService,\r\n private _navigationService: NavigationService,\r\n private _connectionMessagingService: ConnectionMessagingService) {\r\n (window).navigateService = (url) => {\r\n let link = new Link();\r\n link.Type = LinkBehavior.Navigation;\r\n link.Url = url;\r\n this.Go(link);\r\n }\r\n }\r\n\r\n public Go(link: Link, toastMessage: ToastMessage = null) {\r\n if (link.IsProcessing)\r\n return;\r\n\r\n link.IsProcessing = true;\r\n\r\n if (link.Type == LinkBehavior.Print) \r\n window.print();\r\n else if (link.Type == LinkBehavior.Action) \r\n this.PerformAction(link);\r\n else if (link.Type == LinkBehavior.Back)\r\n this._navigationService.Go(\"\", NavigationType.Back);\r\n else if (link.Type == LinkBehavior.Modal)\r\n this._modalService.Open(link.Url, link.ModalCloseBehavior, link.Data);\r\n else if (link.Type == LinkBehavior.Navigation)\r\n this._navigationService.Go(link.Url, NavigationType.Default, toastMessage);\r\n else if (link.Type == LinkBehavior.Tab) {\r\n this._navigationService.Go(link.Url, NavigationType.NewTab);\r\n this._modalService.Close(null);\r\n }\r\n else if (link.Type == LinkBehavior.LinkRedirect) {\r\n this._http.post(link.Url, link.Data).pipe(map((link:Link) => {\r\n this.Go(link);\r\n })).subscribe();\r\n }\r\n else if (link.Type == LinkBehavior.Refresh)\r\n this._navigationService.Go(null, NavigationType.Refresh);\r\n else if (link.Type == LinkBehavior.Refresh_Component) {\r\n if (toastMessage)\r\n this._toastService.SetMessage(toastMessage);\r\n this._modalService.CloseWithData({});//This is to trigger 'RefreshOnSubModalSubmit'\r\n if (link.EntityChanges) {\r\n this._connectionMessagingService.NotifyEntityChange(link.EntityChanges);\r\n }\r\n }\r\n else if (link.Type == LinkBehavior.CopyText) {\r\n let $input = $(document.createElement('textarea'));\r\n document.querySelector('body').appendChild($input[0]);\r\n $input.val(link.Data);\r\n $input.select();\r\n document.execCommand('copy');\r\n document.querySelector('body').removeChild($input[0]);\r\n var msg = new ToastMessage(\"Value copied\"); \r\n this._toastService.SetMessage(msg);\r\n }\r\n else if (link.Type == LinkBehavior.Replace) \r\n this._navigationService.Go(link.Url, NavigationType.Refresh);\r\n else {\r\n var err = new ToastMessage();\r\n err.Message = \"Error opening link\";\r\n if (link.Tooltip && link.Tooltip.Text)\r\n err.Message += \" - \" + link.Tooltip.Text;\r\n else\r\n err.Message += \"- LinkType not handled\";\r\n\r\n err.Severity = \"Error\";\r\n this._toastService.SetMessage(err);\r\n }\r\n\r\n if (link.Type != LinkBehavior.Action)\r\n window.setTimeout(() => {\r\n link.IsProcessing = false;\r\n }, 5000);\r\n }\r\n\r\n PerformAction(link: Link) {\r\n var data = link.Data ? link.Data : {};\r\n this._http.post(link.Url, data).pipe(map((response:FormMessage) => {\r\n var message = response;\r\n \r\n if (!message.Success) {\r\n var errorMessage = \"\";\r\n for (var i = 0; i < message.Validations.Messages.length; i++)\r\n errorMessage += message.Validations.Messages[i].Description + '\\n';\r\n this._toastService.SetMessage(new ToastMessage(errorMessage, \"Error\"));\r\n }\r\n else {\r\n this._navigationService.ClearWarning();\r\n if (message.Link) {\r\n this.Go(message.Link, message.ToastMessage);\r\n }\r\n else {\r\n this._navigationService.Go(null, NavigationType.Refresh, message.ToastMessage);\r\n }\r\n }\r\n\r\n link.IsProcessing = false;\r\n })).subscribe();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Link } from \"../components/actions/actions.models\";\r\nimport { FormComponent, ValidationContext, ValidationWrapper, FormMessage } from '../components/form/form.component';\r\nimport { MultiSectionComponent, ValidationResponse } from '../components/multisection/multisection.component';\r\nimport { SectionComponent } from '../components/multisection/section.component';\r\n\r\n@Injectable()\r\nexport class FormConnectionService { \r\n public Form: FormComponent;\r\n public OnFormSet: any;\r\n\r\n SetForm(formComp: FormComponent): any {\r\n this.Form = formComp;\r\n if (this.OnFormSet)\r\n this.OnFormSet(formComp);\r\n }\r\n \r\n // Submit(loadForm: any) {\r\n // this.LoadComponent.Submit(loadForm);\r\n // }\r\n\r\n}\r\n\r\nexport interface IValidationReceiver {\r\n AllValueChanges: any;\r\n HasAttemptedSubmit: boolean;\r\n ApplyValidations(arg0: { ValidationWrapper: ValidationWrapper; StructuredValidatedData: any; ValidatedData: any; });\r\n GetFormData(): any;\r\n\r\n}\r\n\r\n@Injectable()\r\nexport class ValidationProvider {\r\n _validationReceiver: IValidationReceiver;\r\n public SkipClientSideValidations: boolean = true;\r\n \r\n GetData() : any {\r\n return this._validationReceiver.GetFormData();\r\n }\r\n \r\n OnReceiveValidationNotification: () => void;\r\n \r\n SetReceiver(receiver: IValidationReceiver) {\r\n this._validationReceiver = receiver;\r\n }\r\n\r\n NotifyValidation() {\r\n this.OnReceiveValidationNotification();\r\n }\r\n\r\n SendValidations(validationResponse: ValidationResponse, data: any) {\r\n this._validationReceiver.ApplyValidations({\r\n ValidationWrapper: new ValidationWrapper((validationResponse)),\r\n StructuredValidatedData: data,\r\n ValidatedData: data\r\n });\r\n\r\n if (this._validationReceiver.AllValueChanges)\r\n this._validationReceiver.AllValueChanges.emit(data); \r\n }\r\n\r\n SendAttemptedSubmit() {\r\n if (this._validationReceiver)\r\n this._validationReceiver.HasAttemptedSubmit = true;\r\n }\r\n}\r\n\r\n@Injectable()\r\nexport class MultiSectionService {\r\n RunEvaluation: () => void;\r\n OnValidationRequest: () => void;\r\n OnLinkRequest: (link: Link) => void;\r\n Register(component: MultiSectionComponent) {\r\n //Do binding in here\r\n this.OnValidationRequest = () => component.OnValidationRequest();\r\n this.OnLinkRequest = (link: Link) => component.OnLinkRequest(link);\r\n this.RunEvaluation = () => component.RunEvaluation();\r\n }\r\n \r\n NotifyValidationRequest() {\r\n this.OnValidationRequest();\r\n }\r\n\r\n\r\n}\r\n\r\nexport interface ISectionServiceListener {\r\n ReceiveEvaluationResults(evaluationResults: any);\r\n FromSectionRunValidations();\r\n FromSectionAttemptedSubmit();\r\n NotifyValidations(validations: ValidationResponse, sectionData: any);\r\n}\r\n\r\n@Injectable()\r\nexport class SectionService {\r\n private _specificInstance: ISectionServiceListener;\r\n \r\n ReceiveEvaluationResults(evaluationResults: any) {\r\n this._specificInstance.ReceiveEvaluationResults(evaluationResults);\r\n }\r\n FromSectionRunValidations() {\r\n if (this._specificInstance)\r\n this._specificInstance.FromSectionRunValidations();\r\n }\r\n \r\n FromSectionAttemptedSubmit() {\r\n if (this._specificInstance)\r\n this._specificInstance.FromSectionAttemptedSubmit();\r\n }\r\n\r\n NotifyValidations(validations: ValidationResponse, sectionData: any) {\r\n if (this._specificInstance)\r\n this._specificInstance.NotifyValidations(validations, sectionData);\r\n }\r\n\r\n RegisterListener(specificSectionInstance: ISectionServiceListener) {\r\n this._specificInstance = specificSectionInstance;\r\n }\r\n\r\n SetError: (clearData: boolean) => void;\r\n ClearError: () => void;\r\n SetData: (answers: any, initial?: boolean, forceModification?: boolean) => void;\r\n OnLinkRequest: (link: Link) => void;\r\n FromSpecificRunValidations : () => void;\r\n RunEvaluation: () => void;\r\n Register(component: SectionComponent) {\r\n //Do binding in here\r\n this.OnLinkRequest = (link: Link) => component.OnLinkRequest(link);\r\n this.SetData = (data, initial, forceModification) => component.SetCustomSectionData(data, initial, forceModification);\r\n this.ClearError = () => component.ClearError();\r\n this.SetError = (clearData: boolean) => component.SetError(clearData);\r\n this.FromSpecificRunValidations = () => component.FromSpecificRunValidation();\r\n this.RunEvaluation = () => component.RunEvaluation();\r\n }\r\n}","import { Injectable, Inject, ViewContainerRef, ComponentFactoryResolver, ComponentRef } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ModalPageComponent } from \"../components/modal-page/modal-page.component\";\r\nimport { NavigationService, NavigationType } from \"./NavigationService\";\r\nimport { Page, ModalStyle } from \"../components/page/page.models\";\r\nimport { Link, ModalCloseBehavior, LinkBehavior } from \"../components/actions/actions.models\";\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class ModalService {\r\n ToggleExpand() {\r\n this.componentRefs[0].instance.ToggleExpand();\r\n }\r\n\r\n onClose: (data: any) => void;\r\n componentRefs: Array> = [];\r\n closeBehaviors: Array = [];\r\n private _page: Page;\r\n private _nextListenerID: number;\r\n public ViewContainerRef: ViewContainerRef;\r\n \r\n private _renderingListeners: {Store: () => void, Restore: () => void}[]\r\n private _currentStackSubmittedData: boolean;\r\n \r\n constructor(private _http: HttpClient, \r\n private _navigationService: NavigationService,\r\n private _componentFactoryResolver: ComponentFactoryResolver) {\r\n _navigationService.ModalService = this;\r\n this._renderingListeners = [];\r\n _navigationService.Register((p) => { \r\n if (this.componentRefs.length) {\r\n this.componentRefs.forEach(c => c.destroy()); \r\n }\r\n });\r\n }\r\n\r\n Open(url: string, modalCloseBehavior: ModalCloseBehavior = ModalCloseBehavior.None, data: {} = {}, onClose: (data) => void = null) {\r\n this.closeBehaviors.push(modalCloseBehavior);\r\n this.setupModalState();\r\n let renderPage = (value: Page) => {\r\n let page = value as Page;\r\n this.componentRefs[this.componentRefs.length - 1].instance.page = page;\r\n // this.componentRef.instance.page = page;\r\n //This is for test client so it knows the modal is done\r\n if ((window).modalRendered)\r\n (window).modalRendered(page);\r\n };\r\n\r\n if (data == null)\r\n data = {};\r\n if (onClose != null)\r\n this.onClose = onClose;\r\n this._http.post(url, data).subscribe(renderPage);\r\n }\r\n\r\n private setupModalState() {\r\n let componentFactory = this._componentFactoryResolver.resolveComponentFactory(ModalPageComponent);\r\n let componentRef = this.ViewContainerRef.createComponent(componentFactory, null);\r\n componentRef.instance.ModalService = this;\r\n this.componentRefs.push(componentRef);\r\n }\r\n\r\n OpenPage(page: Page, onClose: (data) => void = null) {\r\n this.setupModalState();\r\n this.componentRefs[this.componentRefs.length - 1].instance.page = page;\r\n // this.componentRef.instance.page = page;\r\n this.onClose = onClose;\r\n }\r\n\r\n public SetTitle(header: string) {\r\n this.componentRefs[this.componentRefs.length - 1].instance.page.Header = header;\r\n }\r\n\r\n public Close(navigationType: NavigationType = null, data: any = null, isForcedNavigation: boolean = false) {\r\n if (!this._navigationService.BypassWarning())\r\n return;\r\n \r\n if (this.componentRefs.length) {\r\n this.componentRefs.pop().destroy();\r\n var closeBehavior = this.closeBehaviors.pop();\r\n this._currentStackSubmittedData = this._currentStackSubmittedData || !!data;\r\n if (closeBehavior == ModalCloseBehavior.Refresh && !isForcedNavigation)\r\n this._navigationService.Go(null, NavigationType.Refresh);\r\n\r\n if (this.componentRefs.length == 0 && \r\n closeBehavior == ModalCloseBehavior.RefreshOnSubModalSubmit &&\r\n this._currentStackSubmittedData) \r\n {\r\n this._navigationService.Go(null, NavigationType.Refresh);\r\n return;\r\n }\r\n\r\n if (this.componentRefs.length == 0) {\r\n this._currentStackSubmittedData = false;\r\n this.onClose = null;\r\n }\r\n }\r\n\r\n if (navigationType != null) {\r\n this.componentRefs.forEach(r => r.destroy());\r\n this._navigationService.Go(null, navigationType);\r\n }\r\n }\r\n\r\n CloseWithData(data: any) {\r\n if (this.onClose != null)\r\n this.onClose(data);\r\n \r\n this.Close(null, data);\r\n }\r\n\r\n public CloseWithLink(link: Link) {\r\n // this._dialogRef.close();\r\n this._navigationService.Go(link.Url, NavigationType.Default);\r\n\r\n if (link.Type == LinkBehavior.Refresh)\r\n history.back();\r\n }\r\n\r\n public AddRenderingListener(listener: {Store: () => void, Restore: () => void}) {\r\n this._renderingListeners.push(listener);\r\n return this._renderingListeners.length - 1;\r\n }\r\n\r\n public RemoveRenderingListener(listenerID: number) {\r\n this._renderingListeners[listenerID] = null;\r\n }\r\n\r\n public StoreRenderingInfo() {\r\n this._renderingListeners.filter(r => r != null).forEach(c => c.Store());\r\n }\r\n\r\n public RestoreRenderingInfo() {\r\n this._renderingListeners.filter(r => r != null).forEach(c => c.Restore());\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders, HttpResponse } from '@angular/common/http';\r\nimport { Page, Aspect } from \"../components/page/page.models\";\r\nimport { ModalService } from \"./ModalService\";\r\nimport { ErrorComponentDefinition, ExceptionInfo } from '../components/error/error.component';\r\nimport { ToastService } from './ToastService';\r\nimport { ConnectionMessagingService } from './ConnectionMessagingService';\r\nimport * as $ from 'jquery';\r\nimport { Link } from '../components/actions/actions.models';\r\nimport { Subscription, timer } from 'rxjs';\r\n\r\nexport interface NavigationServiceListener {\r\n onLoadHandler: (page: Page, isAspect: boolean, aspect: Aspect, isRequestingFollowupAspect: boolean) => void;\r\n onLoadingHandler: (page: Page) => void;\r\n}\r\n\r\nexport class SharedWorkerPolyfill {\r\n constructor() {\r\n this.port = new Port();\r\n }\r\n\r\n port: Port;\r\n}\r\n\r\nexport class Port {\r\n onmessage: any;\r\n start() { }\r\n postMessage() {\r\n \r\n }\r\n}\r\n\r\n@Injectable()\r\nexport class NavigationService {\r\n public Page: Page;\r\n public ConnectionMessagingService: ConnectionMessagingService;\r\n public ModalService: ModalService;\r\n\r\n private _listeners: Array;\r\n private _warning: string;\r\n private _loadedAspects: { [link: string]: Page };\r\n private _subscription: Subscription\r\n\r\n constructor(private _http: HttpClient, location: Location, private toastService: ToastService) {\r\n this._listeners = new Array();\r\n location.subscribe(popState => this.ListenPopState(popState));\r\n this.Go(null, NavigationType.Refresh);\r\n }\r\n\r\n public SetWarning(warning) {\r\n this._warning = warning;\r\n window.addEventListener(\"beforeunload\", this._handle, true);\r\n }\r\n\r\n public ClearWarning() {\r\n this._warning = null;\r\n window.removeEventListener('beforeunload', this._handle, true);\r\n }\r\n\r\n public BypassWarning() {\r\n if (!!this._warning && window.confirm(this._warning)) {\r\n this.ClearWarning();\r\n return true;\r\n } else if (!!this._warning) { \r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public _handle(e) {\r\n var confirmationMessage = this._warning;\r\n \r\n (e || window.event).returnValue = confirmationMessage; //Gecko + IE\r\n return confirmationMessage; //Gecko + Webkit, Safari, Chrome etc.\r\n }\r\n\r\n public Register(onLoadHandler: (page: Page, isAspect: boolean, aspect: Aspect, isRequestingFollowupAspect: boolean) => void, \r\n onLoadingHandler: (page: Page) => void = null, \r\n onAspectLoadHandler: (page: Page) => void = null) {\r\n var navigationListener = {};\r\n navigationListener.onLoadHandler = onLoadHandler;\r\n navigationListener.onLoadingHandler = onLoadingHandler;\r\n this.RegisterListener(navigationListener);\r\n }\r\n\r\n public RegisterListener(listener: NavigationServiceListener) {\r\n this._listeners.push(listener);\r\n if (this.Page)\r\n listener.onLoadHandler(this.Page, false, null, false);\r\n }\r\n\r\n public Go(url: string, navigationType: NavigationType, toastMessage: ToastMessage = null) {\r\n this.clearPolling();\r\n if (!this.BypassWarning()) {\r\n return;\r\n }\r\n\r\n if (this.ModalService && navigationType != NavigationType.NewTab)\r\n this.ModalService.Close(null, null, navigationType == NavigationType.Default);\r\n \r\n if (navigationType == NavigationType.NewTab) {\r\n window.open(url);\r\n return;\r\n }\r\n\r\n if (toastMessage)\r\n this.toastService.SetMessage(toastMessage);\r\n\r\n if (navigationType == NavigationType.FullPage) {\r\n location.href = url;\r\n return;\r\n }\r\n\r\n this._loadedAspects = {};\r\n this.NotifyOnLoadingListeners();\r\n\r\n if (navigationType == NavigationType.Back) \r\n {\r\n if (history.length == 1)\r\n location.reload();\r\n\r\n history.back();\r\n return;\r\n }\r\n\r\n if (navigationType == NavigationType.Refresh && !url) {\r\n url = location.pathname.replace('//', '/') + location.search;\r\n }\r\n\r\n this.GoInternal(url, navigationType);\r\n }\r\n \r\n public RequestAspect(link: Aspect) {\r\n this.SetSessionAspect(link);\r\n\r\n const isLoaded = Object.keys(this._loadedAspects).indexOf(link.Url) != -1;\r\n if (isLoaded) {\r\n this.NotifyOnAspectLoadListeners(link, this._loadedAspects[link.Url]);\r\n return;\r\n }\r\n\r\n this.NotifyOnLoadingListeners();\r\n \r\n this.RequestPage(link.Url, (_, page) => {\r\n this._loadedAspects[link.Url] = page;\r\n this.NotifyOnAspectLoadListeners(link, page);\r\n })\r\n }\r\n\r\n public RequestPage(url: string, callBack: (resp: any, page: Page) => void) {\r\n var height = $(window).height();\r\n var width = $(window).width();\r\n let headers = new HttpHeaders({ \r\n 'Pragma': 'no-cache', \r\n 'Cache-Control': 'no-cache', \r\n 'Vary': 'Accept', \r\n 'Accept': 'application/json',\r\n 'x-resolution-height': height.toString(),\r\n 'x-resolution-width': width.toString(),\r\n });\r\n if (url.indexOf(\"?\") > 0) {\r\n url = url + \"&ajax=1\";\r\n }\r\n else \r\n url = url + \"?ajax=1\";\r\n \r\n this.clearPolling();\r\n this._subscription = this._http.get(url, { headers: headers, observe: 'response' })\r\n .subscribe(\r\n (response: HttpResponse) => callBack(response, response.body),\r\n (error: HttpErrorResponse) => callBack(error, this.GetErrorPage(error.error)));\r\n }\r\n\r\n private GoInternal(url: string, navigationType: NavigationType) {\r\n this.RequestPage(url, (response: Response, page: Page) => {\r\n //This is Response.URL because the Requested URL may not be the Response URL in the case of HTTP 302 \"Redirect(\"/\")\" response\r\n //IE: Request URL=\"/User/Logout\" - Response URL = \"/User\"\r\n let responseUrl = response.url.replace('&ajax=1', \"\");\r\n responseUrl = responseUrl.replace('?ajax=1', \"\");\r\n\r\n if (navigationType == NavigationType.Default)\r\n history.pushState({ url: responseUrl, page: page }, page.Title, responseUrl);\r\n else if (navigationType == NavigationType.Refresh)\r\n history.replaceState({ url: responseUrl, page: page }, page ? page.Title : '', responseUrl);\r\n else if (navigationType == NavigationType.PollingRefresh)\r\n history.replaceState({ url: responseUrl, page: page }, page ? page.Title : '', responseUrl);\r\n\r\n this.UpdatePage(page, responseUrl);\r\n });\r\n }\r\n\r\n private UpdatePage(page: Page, url: string) {\r\n this.Page = page;\r\n let isRequestingFollowupAspect = false;\r\n\r\n if (this.Page.PollingProgress) {\r\n this._subscription = timer(1000)\r\n .subscribe(() => this.GoInternal(url, NavigationType.PollingRefresh));\r\n }\r\n\r\n if (this.Page.Aspects) {\r\n if (!this.Page.Aspects.filter(r => r.Selected).length) {\r\n var _sessionAspect = this.GetSessionAspect();\r\n if (_sessionAspect != null && this.Page.Aspects.filter(r => r.Url == _sessionAspect.Url).length) {\r\n this.RequestAspect(_sessionAspect);\r\n isRequestingFollowupAspect = true;\r\n }\r\n }\r\n }\r\n\r\n this.NotifyOnLoadListeners(isRequestingFollowupAspect, this.Page);\r\n }\r\n\r\n public GetErrorPage(response = null) {\r\n let page = new Page();\r\n page.Header = \"Error\";\r\n \r\n if (response.status == 401) {\r\n \r\n let roles = [];\r\n\r\n if (response.error && response.error.Error ) {\r\n roles = response.error.Error.split(',');\r\n }\r\n\r\n let authException = new ExceptionInfo();\r\n authException.Message = \"You are not authorized\" + (roles.length > 0 ? `. You must have one of the following roles: ${roles}` : '');\r\n authException.IsClientSide = true;\r\n page.Title = \"Not authorized\";\r\n page.Components.push(new ErrorComponentDefinition(authException));\r\n }\r\n else if (response) {\r\n page.Components.push(new ErrorComponentDefinition(response));\r\n }\r\n else \r\n page.Components.push(new ErrorComponentDefinition());\r\n \r\n if (this.Page) {\r\n page.PrimaryColor = this.Page.PrimaryColor;\r\n page.Menu = this.Page.Menu;\r\n page.UserMenu = this.Page.UserMenu;\r\n page.Layout = this.Page.Layout;\r\n page.UserDisplayName = this.Page.UserDisplayName;\r\n }\r\n else {\r\n page.PrimaryColor = \"blue\";\r\n }\r\n\r\n return page;\r\n }\r\n\r\n public GetXSRFToken() {\r\n var name = \"XSRF-TOKEN\" + \"=\";\r\n var decodedCookie = decodeURIComponent(document.cookie);\r\n var ca = decodedCookie.split(';');\r\n for(var i = 0; i JSON.parse(json);\r\n }\r\n\r\n private SetSessionAspect(aspect: Aspect) {\r\n sessionStorage.setItem(location.href, JSON.stringify(aspect));\r\n }\r\n\r\n tokenExpirationTimeout = null;\r\n private NotifyOnLoadListeners(isRequestingFollowupAspect: boolean, page: Page) {\r\n for (let listener of this._listeners) {\r\n if (listener.onLoadHandler)\r\n listener.onLoadHandler(this.Page, false, null, isRequestingFollowupAspect);\r\n }\r\n }\r\n\r\n private NotifyOnAspectLoadListeners(link: Aspect, page: Page) {\r\n for (let listener of this._listeners) {\r\n if (listener.onLoadHandler)\r\n listener.onLoadHandler(page, true, link, false);\r\n }\r\n }\r\n\r\n private NotifyOnLoadingListeners() {\r\n for (let listener of this._listeners) {\r\n if (listener.onLoadingHandler)\r\n listener.onLoadingHandler(this.Page);\r\n }\r\n }\r\n\r\n private clearPolling() {\r\n if (this._subscription)\r\n this._subscription.unsubscribe();\r\n }\r\n}\r\n\r\nexport class ToastMessage {\r\n constructor(public Message: string = null, public Severity: string = null, public Link: Link = null) {\r\n\r\n } \r\n}\r\n\r\nexport enum NavigationType {\r\n Default,\r\n FullPage,\r\n NewTab,\r\n Refresh,\r\n Back,\r\n PollingRefresh\r\n}\r\n\r\n","import { Injectable, Inject, ViewContainerRef, EventEmitter } from '@angular/core';\r\nimport { debounceTime, switchMap, tap } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class NewSearchService {\r\n private _searchListeners: ((data: any) => void)[];\r\n private _invalidSearchListeners: (() => void)[];\r\n private _prepopulatedResults: any;\r\n private _lastSearchKeywords: string;\r\n private _lastSearchData: any;\r\n private _isSearching: boolean;\r\n private _searchEvent: EventEmitter;\r\n private _initialFormValues: any;\r\n private _searchDataListeners: ((data: any) => void)[];\r\n\r\n constructor() {\r\n this._searchListeners = new Array<(data: any) => void>();\r\n this._searchDataListeners = new Array<(data: any) => void>();\r\n this._invalidSearchListeners = new Array<() => void>();\r\n\r\n this._searchEvent = new EventEmitter();\r\n this._searchEvent.pipe(\r\n tap(x => this.NotifyListenersData(x)),\r\n debounceTime(500),\r\n switchMap((data) => {\r\n var promise = new Promise((x) => x(data));\r\n return promise;\r\n }))\r\n .subscribe((data) => {\r\n this.NotifyListeners(data);\r\n });\r\n } \r\n\r\n NotifyListenersData(x: any): void {\r\n this._searchDataListeners.forEach(c => c(x));\r\n }\r\n \r\n public SetInitialValues(initialFormValues: any) {\r\n this._initialFormValues = initialFormValues;\r\n this._initialFormValues.IsInitialRequest = true;\r\n this.NotifyListeners(initialFormValues);\r\n }\r\n\r\n //Called by Form to trigger search\r\n public Search(data: any) {\r\n if (data) {\r\n this._lastSearchKeywords = data.Keywords;\r\n if (this._lastSearchKeywords == undefined)\r\n this._lastSearchKeywords = data.SearchText;\r\n if (this._lastSearchKeywords != undefined && this._lastSearchKeywords != null) {\r\n\r\n // SUSPECT: When the form goes back to its initial state, a search request is not triggered and it remains in its previous state.\r\n\r\n // if (JSON.stringify(data) == JSON.stringify(this._initialFormValues)) {\r\n // // this.SearchPrepopulated();\r\n // console.log(\"Unhandled Prepopulated case\");\r\n // return;\r\n // }\r\n\r\n if (this._lastSearchKeywords.length > 0 && this._lastSearchKeywords.length < 3) {\r\n this._invalidSearchListeners.forEach(c => c());\r\n return;\r\n }\r\n }\r\n }\r\n\r\n this._isSearching = true;\r\n\r\n // this._searchingListeners.forEach(c => c(this._lastSearchKeywords));\r\n console.log('Emitting search');\r\n this._searchEvent.emit(data);\r\n }\r\n\r\n private NotifyListeners(data: any) {\r\n console.log(\"Search Recieved\", data);\r\n this._isSearching = false;\r\n if (this._searchListeners)\r\n this._searchListeners.forEach(c => c(data));\r\n }\r\n\r\n public RegisterListener(\r\n searchListener: ((data: any)=> void), \r\n invalidSearchListener: (()=> void) = null,\r\n searchDataListener: (data: any)=>void = null) {\r\n\r\n this._searchListeners.push(searchListener);\r\n\r\n // if (searchingListener)\r\n // this._searchingListeners.push(searchingListener);\r\n if (searchDataListener)\r\n this._searchDataListeners.push(searchDataListener);\r\n \r\n if (invalidSearchListener)\r\n this._invalidSearchListeners.push(invalidSearchListener);\r\n\r\n // if (errorHandler)\r\n // this._errorHandlers.push(errorHandler);\r\n\r\n if (this._lastSearchData)\r\n searchListener(this._lastSearchData);\r\n else if (this._prepopulatedResults)\r\n searchListener(this._prepopulatedResults);\r\n else if (this._isSearching)\r\n console.log(\"Unhandled 'IsSearching' Case\");\r\n }\r\n}\r\n","import { Injectable, Injector, InjectionToken, Type } from \"@angular/core\";\r\nimport { FieldDefinition, FormComponent } from \"../components/form/form.component\";\r\nimport { FormGroup, AbstractControl } from \"@angular/forms\";\r\nimport { FileUploadFieldComponent, IFileFieldComponent } from \"../components/form/fieldcomponents/file-upload-field.component\";\r\n\r\n\r\n@Injectable()\r\nexport class PaginationWrapperService {\r\n OnSortChange: (header: string, asc: boolean) => void;\r\n UpdateRows: () => void;\r\n}\r\n","import { Injectable, Inject, ViewContainerRef } from '@angular/core';\r\nimport { NavigationService, NavigationType } from \"./NavigationService\";\r\nimport * as $ from 'jquery';\r\n\r\n@Injectable()\r\nexport class PresentationService {\r\n private previousLayout: string;\r\n private _versionStr: string;\r\n constructor(private _navigationService: NavigationService) {\r\n this._versionStr = `v=${Math.random().toString(36).substring(7)}`;\r\n \r\n _navigationService.Register(c => {\r\n $('link.color-override:not(.'+c.PrimaryColor+')').remove();\r\n\r\n if (!$('link.color-override.'+c.PrimaryColor).length) {\r\n $('head').append(``);\r\n }\r\n \r\n if (this.previousLayout == c.Layout)\r\n return;\r\n\r\n this.previousLayout = c.Layout;\r\n\r\n $('link.layout-style').remove();\r\n\r\n if (c.Layout != 'Clean')\r\n $('head').append(``);\r\n });\r\n }\r\n}\r\n","import { Injectable, Inject, ViewContainerRef, EventEmitter } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ModalPageComponent } from \"../components/modal-page/modal-page.component\";\r\nimport { NavigationService, NavigationType } from \"./NavigationService\";\r\nimport { ComponentDefinition } from \"../components/component/component.models\";\r\nimport { debounceTime, switchMap, map } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class SearchService {\r\n private _url: string;\r\n private _prepopulatedUrl: string;\r\n \r\n private _searchCompleteListeners: ((data: any) => void)[];\r\n private _searchingListeners: ((searchText: string) => void)[];\r\n private _invalidSearchListeners: (() => void)[];\r\n private _errorHandlers: (() => void)[];\r\n private _prepopulatedResults: any;\r\n private _lastSearchKeywords: string;\r\n private _lastResults: any;\r\n private _isSearching: boolean;\r\n private _searchEvent: EventEmitter;\r\n private _initialFormValues: any;\r\n\r\n constructor(private _http: HttpClient) {\r\n this._searchCompleteListeners = new Array<(data: any) => void>();\r\n this._searchingListeners = new Array<() => void>();\r\n this._invalidSearchListeners = new Array<() => void>();\r\n this._errorHandlers = new Array<() => void>();\r\n\r\n this._searchEvent = new EventEmitter();\r\n this._searchEvent.pipe(\r\n debounceTime(500),\r\n switchMap((data) => {\r\n console.log('Triggered search', data);\r\n return this._http\r\n .post(this._url, data)\r\n .pipe(map((response) => {\r\n return {\r\n Data: data,\r\n Comp: response\r\n }\r\n }));\r\n }))\r\n .subscribe((result) => {\r\n console.log('Rendering results', result.Data);\r\n this._lastResults = result.Comp;\r\n this.NotifyListeners(this._lastResults);\r\n }, (error: any) => {\r\n this._errorHandlers.forEach(c => c());\r\n })\r\n } \r\n \r\n public SetOptions(url: string, prepopulatedUrl: string) {\r\n this._url = url;\r\n this._prepopulatedUrl = prepopulatedUrl;\r\n if (this._prepopulatedUrl)\r\n this.SearchPrepopulated();\r\n }\r\n\r\n public SetInitialValues(initialFormValues: any) {\r\n this._initialFormValues = initialFormValues;\r\n }\r\n\r\n private SearchPrepopulated() {\r\n this._searchingListeners.forEach(c => c(null));\r\n this._isSearching = true;\r\n this._http\r\n .post(this._prepopulatedUrl, null)\r\n .subscribe((c) => {\r\n this._prepopulatedResults = c;\r\n return this.NotifyListeners(this._prepopulatedResults)\r\n },(error: any) => {\r\n this._errorHandlers.forEach(c => c());\r\n });\r\n }\r\n\r\n public Search(data: any) {\r\n if (data) {\r\n this._lastSearchKeywords = data.Keywords;\r\n if (this._lastSearchKeywords == undefined)\r\n this._lastSearchKeywords = data.SearchText;\r\n if (this._lastSearchKeywords != undefined && this._lastSearchKeywords != null) {\r\n if (this._prepopulatedUrl && JSON.stringify(data) == JSON.stringify(this._initialFormValues)) {\r\n this.SearchPrepopulated();\r\n return;\r\n }\r\n else if (this._lastSearchKeywords.length > 0 && this._lastSearchKeywords.length < 3) {\r\n this._invalidSearchListeners.forEach(c => c());\r\n return;\r\n }\r\n }\r\n }\r\n\r\n this._isSearching = true;\r\n\r\n this._searchingListeners.forEach(c => c(this._lastSearchKeywords));\r\n console.log('Emitting search');\r\n this._searchEvent.emit(data);\r\n }\r\n\r\n private NotifyListeners(data: any) {\r\n this._isSearching = false;\r\n for(let listener of this._searchCompleteListeners) {\r\n listener(data);\r\n }\r\n }\r\n\r\n public RegisterListener(\r\n searchCompleteListener: ((data: ComponentDefinition)=> void), \r\n searchingListener: ((searchText: string)=> void) = null, \r\n invalidSearchListener: (()=> void) = null,\r\n errorHandler: (()=> void) = null) {\r\n\r\n this._searchCompleteListeners.push(searchCompleteListener);\r\n\r\n if (searchingListener)\r\n this._searchingListeners.push(searchingListener);\r\n\r\n if (invalidSearchListener)\r\n this._invalidSearchListeners.push(invalidSearchListener);\r\n\r\n if (errorHandler)\r\n this._errorHandlers.push(errorHandler);\r\n\r\n if (this._lastResults)\r\n searchCompleteListener(this._lastResults);\r\n else if (this._prepopulatedResults)\r\n searchCompleteListener(this._prepopulatedResults);\r\n else if (this._isSearching)\r\n searchingListener(this._lastSearchKeywords);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ToastMessage } from \"./NavigationService\";\r\n\r\n@Injectable()\r\nexport class ToastService { \r\n public Message: ToastMessage;\r\n private _cb: any;\r\n\r\n constructor() { }\r\n\r\n SetMessage(message: ToastMessage) {\r\n if (!message.Message) \r\n return;\r\n this.Message = message;\r\n this._cb(this.Message);\r\n }\r\n\r\n ClearMessage() { \r\n this.Message = null;\r\n this._cb(this.Message);\r\n }\r\n\r\n Register(cb) {\r\n this._cb = cb;\r\n }\r\n}\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nexport function getBaseUrl() {\r\n return document.getElementsByTagName('base')[0].href;\r\n}\r\n\r\nconst providers = [\r\n { provide: 'BASE_URL', useFactory: getBaseUrl, deps: [] }\r\n];\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic(providers).bootstrapModule(AppModule)\r\n .catch(err => console.log(err));\r\n"],"sourceRoot":"webpack:///"}