{"version":3,"sources":["webpack:///app.1f1fbdaeb38cf0b6089d.js","webpack:///./src/main.ts","webpack:///./src/app/app.module.ts","webpack:///./~/@angular/platform-browser/bundles/platform-browser-animations.umd.js","webpack:///./~/@angular/animations/bundles/animations-browser.umd.js","webpack:///./~/ng2-dragula/index.js","webpack:///./~/ng2-dragula/components/dragula.class.js","webpack:///./~/dragula/dragula.js","webpack:///./~/contra/emitter.js","webpack:///./~/atoa/atoa.js","webpack:///./~/contra/debounce.js","webpack:///./~/ticky/ticky-browser.js","webpack:///./~/crossvent/src/crossvent.js","webpack:///./~/custom-event/index.js","webpack:///./~/crossvent/src/eventmap.js","webpack:///./~/dragula/classes.js","webpack:///./~/ng2-dragula/components/dragula.directive.js","webpack:///./~/ng2-dragula/components/dragula.provider.js","webpack:///./~/ng2-dragula/components/dragular.module.js","webpack:///./src/gantt/index.ts","webpack:///./src/gantt/gantt.module.ts","webpack:///./src/gantt/gantt.component.ts","webpack:///./src/gantt/shared/services/gantt.service.ts","webpack:///./src/gantt/shared/services/gantt-config.service.ts","webpack:///./src/gantt/shared/pipes/groupBy.pipe.ts","webpack:///./src/gantt/header/gantt-header.component.ts","webpack:///./src/gantt/footer/gantt-footer.component.ts","webpack:///./src/gantt/activity/gantt-activity.module.ts","webpack:///./src/gantt/activity/gantt-activity.component.ts","webpack:///./src/gantt/shared/interfaces.ts","webpack:///./src/gantt/activity/time-scale/gantt-time-scale.component.ts","webpack:///./src/gantt/activity/background/activity-background.component.ts","webpack:///./src/gantt/activity/bars/activity-bars.component.ts","webpack:///./~/mydatepicker/bundles/mydatepicker.umd.js","webpack:///./src/app/app.component.ts","webpack:///./src/app/auth/auth.service.ts","webpack:///./src/app/shared/services/config.service.ts","webpack:///./src/app/sites/conversions/_services/conversion-hub.service.ts","webpack:///./src/app/shared/interfaces.ts","webpack:///./src/app/cloudview/cloudview-hub.service.ts","webpack:///./~/ng2-toastr/ng2-toastr.js","webpack:///./~/ng2-toastr/src/toast.js","webpack:///./~/ng2-toastr/src/toast-manager.js","webpack:///./~/ng2-toastr/src/toast-container.component.js","webpack:///./~/ng2-toastr/src/toast-options.js","webpack:///./~/ng2-toastr/src/toast.module.js","webpack:///./src/app/azure/app-insights.service.ts","webpack:///./~/applicationinsights-js/bundle/ai.module.js","webpack:///./src/app/app.component.html","webpack:///./src/app/app.routing.ts","webpack:///./src/app/auth/auth-guard.service.ts","webpack:///./src/app/auth/login.component.ts","webpack:///./src/app/dom-events.ts","webpack:///./src/app/auth/login.html","webpack:///./src/app/auth/redirect.component.ts","webpack:///./src/app/users/users-view/users.component.ts","webpack:///./src/app/users/_services/users.service.ts","webpack:///./src/app/shared/services/pager.service.ts","webpack:///./src/app/users/users-view/users.pipe.ts","webpack:///./src/app/users/user/user-edit/user-edit.dialog.ts","webpack:///./src/app/users/user/user-edit/user-edit.dialog.css","webpack:///./src/app/users/user/user-edit/user-edit.dialog.html","webpack:///./src/app/users/users-view/users.component.html","webpack:///./src/app/users/users-view/users.component.css","webpack:///./src/app/users/user/user-sites/user-sites.component.ts","webpack:///./src/app/users/user/user-sites/user-sites.component.css","webpack:///./src/app/users/user/user-sites/user-sites.component.html","webpack:///./src/app/users/user/user-permissions/user-permissions.component.ts","webpack:///./src/app/users/user/user-permissions/user-permissions.component.html","webpack:///./src/app/users/user/user-provisions/user-provisions.component.ts","webpack:///./src/app/users/user/user-provisions/user-provisions.component.css","webpack:///./src/app/users/user/user-provisions/user-provisions.component.html","webpack:///./src/app/applications/applications.component.ts","webpack:///./src/app/applications/application.service.ts","webpack:///./src/app/applications/applications.component.html","webpack:///./src/app/sites/reports/reports.component.ts","webpack:///./src/app/sites/reports/reports.service.ts","webpack:///./src/app/sites/reports/reports.component.css","webpack:///./src/app/sites/reports/reports.component.html","webpack:///./src/app/account/account.component.ts","webpack:///./src/app/account/account.service.ts","webpack:///./src/app/account/account.component.html","webpack:///./src/app/account/security/password/account-forgot-password.component.ts","webpack:///./src/app/account/security/password/account-forgot-password.html","webpack:///./src/app/account/register/account-provision.component.ts","webpack:///./src/app/account/register/account-provision.html","webpack:///./src/app/account/security/password/account-reset-password.component.ts","webpack:///./src/app/account/security/password/account-reset-password.html","webpack:///./src/app/account/provision/user-provision.component.ts","webpack:///./src/app/shared/pipes/string.pipe.ts","webpack:///./src/app/account/provision/user-provision.html","webpack:///./src/app/users/user/user-create/user-create.component.ts","webpack:///./src/app/sites/core/sites.service.ts","webpack:///./src/app/shared/pipes/url.pipe.ts","webpack:///./src/app/users/user/user-create/user-create.component.html","webpack:///./src/app/home.component.ts","webpack:///./src/app/shared/dialogs/application-dialog.ts","webpack:///./src/app/shared/dialogs/application-dialog.html","webpack:///./src/app/shared/services/upgradeguide.service.ts","webpack:///./src/app/sites/conversions/_services/conversions.service.ts","webpack:///./src/app/shared/dialogs/applicationdoc-dialog.ts","webpack:///./src/app/shared/dialogs/applicationdoc-dialog.css","webpack:///./src/app/shared/dialogs/applicationdoc-dialog.html","webpack:///./src/app/shared/dialogs/upgradeguide-dialog.ts","webpack:///./src/app/shared/dialogs/upgradeguide-dialog.css","webpack:///./src/app/shared/dialogs/upgradeguide-dialog.html","webpack:///./src/app/home.component.html","webpack:///./src/app/sites/core/sites.component.ts","webpack:///./src/app/sites/core/sites.component.css","webpack:///./src/app/sites/core/sites.component.html","webpack:///./src/app/sites/core/site.component.ts","webpack:///./src/app/storage-accounts/storage-account.service.ts","webpack:///./src/app/shared/services/region.service.ts","webpack:///./src/app/sites/conversions/_interfaces/conversions.interface.ts","webpack:///./src/app/cloudview/cloudview.service.ts","webpack:///./src/app/shared/services/zone.service.ts","webpack:///./src/app/sites/core/site.component.html","webpack:///./src/app/sites/core/site.component.css","webpack:///./src/app/sites/core/file-shares/site-file-shares.component.ts","webpack:///./src/app/sites/core/file-shares/site-file-shares.component.html","webpack:///./src/app/sites/core/file-shares/site-file-share-add.dialog.html","webpack:///./src/app/sites/core/detail/site-detail.component.ts","webpack:///./src/app/sites/core/detail/site-detail.component.html","webpack:///./src/app/sites/core/site-users/site-users.component.ts","webpack:///./src/app/sites/core/site-users/site-users.component.html","webpack:///./src/app/sites/core/reports/site-reports.component.ts","webpack:///./src/app/sites/core/reports/site-reports.component.html","webpack:///./src/app/sites/core/conversions/site-conversions.component.ts","webpack:///./src/app/sites/core/conversions/site-conversions.component.html","webpack:///./src/app/sites/core/cloud-view/site-cloud-view.component.ts","webpack:///./src/app/sites/core/cloud-view/site-cloud-view.component.html","webpack:///./src/app/sites/core/privacy-and-security/site-privacy-and-security.component.ts","webpack:///./src/app/sites/core/privacy-and-security/site-privacy-and-security.component.html","webpack:///./src/app/sites/core/privacy-and-security/manage-cloud-transfer-tool-users/site-manage-cloud-transfer-tool-users.component.ts","webpack:///./src/app/sites/core/privacy-and-security/manage-cloud-transfer-tool-users/site-manage-cloud-transfer-tool-users.component.html","webpack:///./src/app/sites/core/privacy-and-security/manage-cloud-view-instance-view-users/site-manage-cloud-view-instance-view-users.component.ts","webpack:///./src/app/sites/core/privacy-and-security/manage-cloud-view-instance-view-users/site-manage-cloud-view-instance-view-users.component.html","webpack:///./src/app/sites/core/privacy-and-security/manage-conversion-monitor-connect-users/site-manage-conversion-monitor-connect-users.component.ts","webpack:///./src/app/sites/core/privacy-and-security/manage-conversion-monitor-connect-users/site-manage-conversion-monitor-connect-users.component.html","webpack:///./src/app/sites/core/privacy-and-security/manage-users/site-manage-users.component.ts","webpack:///./src/app/sites/core/privacy-and-security/manage-users/site-manage-users.component.html","webpack:///./src/app/sites/core/privacy-and-security/security-history/site-security-history.component.ts","webpack:///./src/app/sites/core/privacy-and-security/security-history/site-security-history.component.html","webpack:///./src/app/sites/core/reports/manage-reports/site-manage-reports.component.ts","webpack:///./src/app/sites/core/reports/manage-reports/site-manage-reports.component.html","webpack:///./src/app/sites/core/site-create/site-creation.component.ts","webpack:///./src/app/sites/core/site-create/site-creation.component.html","webpack:///./src/app/sites/analysis/analysis-report.component.ts","webpack:///./src/app/sites/analysis/analysis-report.pipe.ts","webpack:///./src/app/sites/analysis/analysis-report.html","webpack:///./src/app/sites/analysis/analysis-report.css","webpack:///./src/app/sites/analysis/companies/static-data.component.ts","webpack:///./src/app/sites/analysis/companies/static-data.html","webpack:///./src/app/sites/analysis/companies/transaction-overview.component.ts","webpack:///./src/app/sites/analysis/companies/transaction-overview.html","webpack:///./src/app/sites/analysis/companies/companies.component.ts","webpack:///./src/app/sites/analysis/companies/companies.html","webpack:///./src/app/sites/analysis/companies/companies.css","webpack:///./src/app/sites/analysis/custom/apmObjects/apmObjects.component.ts","webpack:///./src/app/sites/analysis/custom/apmObjects/apmObjects.pipe.ts","webpack:///./src/app/sites/analysis/complexity-type.service.ts","webpack:///./src/app/sites/reports/reports.component.service.ts","webpack:///./src/app/sites/analysis/custom/bpms.search.pipe.ts","webpack:///./src/app/sites/analysis/custom/baqs.modaldialog.ts","webpack:///./src/app/sites/analysis/custom/menus/menus.dialog.ts","webpack:///./src/app/sites/analysis/custom/udforms/udforms.modaldialog.ts","webpack:///./src/app/sites/analysis/custom/bankInterfaces/bankInterfaces.modaldialog.ts","webpack:///./src/app/sites/analysis/custom/changelogs/changelogs.modaldialog.ts","webpack:///./src/app/sites/analysis/custom/apmObjects/apmObjects.modaldialog.ts","webpack:///./src/app/sites/analysis/custom/UserDefinedTables/userDefinedTables.modaldialog.ts","webpack:///./src/app/sites/analysis/custom/triggers/customTriggers.modaldialog.ts","webpack:///./src/app/sites/analysis/custom/sql.modaldialog.ts","webpack:///./src/app/sites/analysis/custom/apmObjects/apmObjects.html","webpack:///./src/app/sites/analysis/custom/configurators/configurators.component.ts","webpack:///./src/app/code/code-dialog.component.ts","webpack:///./src/app/code/prism.js","webpack:///./src/app/code/code-dialog.component.html","webpack:///./src/app/code/code-dialog.component.css","webpack:///./src/app/sites/analysis/custom/configurators/configurators.pipe.ts","webpack:///./src/app/sites/analysis/custom/configurators/configurators.html","webpack:///./src/app/sites/analysis/custom/customisations/customisations.component.ts","webpack:///./src/app/sites/analysis/custom/customisations/customisations.pipe.ts","webpack:///./src/app/sites/analysis/custom/customisations/customisations.html","webpack:///./src/app/sites/analysis/custom/customisations/customisations.css","webpack:///./src/app/sites/analysis/custom/kineticUX/kineticUXs.component.ts","webpack:///./src/app/sites/analysis/custom/kineticUX/kineticUXs.pipe.ts","webpack:///./src/app/sites/analysis/custom/kineticUX/kineticUXs.html","webpack:///./src/app/sites/analysis/custom/functions/functions.component.ts","webpack:///./src/app/sites/analysis/custom/functions/functions.pipe.ts","webpack:///./src/app/sites/analysis/custom/functions/functions.html","webpack:///./src/app/sites/analysis/custom/processCalls/processCalls.component.ts","webpack:///./src/app/sites/analysis/custom/processCalls/processCalls.pipe.ts","webpack:///./src/app/sites/analysis/custom/processCalls/processCalls.html","webpack:///./src/app/sites/analysis/custom/bpms/bpms.component.ts","webpack:///./src/app/sites/analysis/custom/bpms/bpms.pipe.ts","webpack:///./src/app/sites/analysis/custom/bpms.modaldialog.ts","webpack:///./src/app/sites/analysis/custom/bpms/bpms.html","webpack:///./src/app/sites/analysis/incompatibilities.component.ts","webpack:///./src/app/sites/analysis/incompatibilities.component.html","webpack:///./src/app/sites/analysis/incompatibilities.component.css","webpack:///./src/app/sites/analysis/custom/changelogs/changelogs.component.ts","webpack:///./src/app/sites/analysis/custom/changelogs/changelogs.html","webpack:///./src/app/sites/analysis/custom/bankInterfaces/bankInterfaces.component.ts","webpack:///./src/app/sites/analysis/custom/bankInterfaces/bankInterfaces.pipe.ts","webpack:///./src/app/sites/analysis/custom/bankInterfaces/bankInterfaces.html","webpack:///./src/app/sites/analysis/custom/dataDirectives/dataDirectives.component.ts","webpack:///./src/app/sites/analysis/custom/dataDirectives/dataDirectives.pipe.ts","webpack:///./src/app/sites/analysis/custom/dataDirectives/dataDirectives.html","webpack:///./src/app/sites/analysis/custom/sqlViews/sqlViews.component.ts","webpack:///./src/app/sites/analysis/custom/sqlViews/sqlViews.pipe.ts","webpack:///./src/app/sites/analysis/custom/sqlViews/sqlViews.html","webpack:///./src/app/sites/analysis/custom/sqlStoredProcedures/sqlStoredProcedures.component.ts","webpack:///./src/app/sites/analysis/custom/sqlStoredProcedures/sqlStoredProcedures.pipe.ts","webpack:///./src/app/sites/analysis/custom/sqlStoredProcedures/sqlStoredProcedures.html","webpack:///./src/app/sites/analysis/custom/customReports/customReports.component.ts","webpack:///./src/app/sites/analysis/custom/customReports/customReports.pipe.ts","webpack:///./src/app/sites/analysis/custom/customReports/customReports.html","webpack:///./src/app/sites/analysis/custom/baqReports/baqReports.component.ts","webpack:///./src/app/sites/analysis/analysis-report.interface.ts","webpack:///./src/app/sites/analysis/custom/baqReports/baqReports.pipe.ts","webpack:///./src/app/sites/analysis/custom/baqReports/baqReports.html","webpack:///./src/app/sites/analysis/custom/externalReports/externalReports.component.ts","webpack:///./src/app/sites/analysis/custom/externalReports/externalReports.pipe.ts","webpack:///./src/app/sites/analysis/custom/externalReports/externalReports.modaldialog.ts","webpack:///./src/app/sites/analysis/custom/externalReports/externalReports.html","webpack:///./src/app/sites/analysis/custom/menus/menus.component.ts","webpack:///./src/app/sites/analysis/custom/menus/menus.pipe.ts","webpack:///./src/app/sites/analysis/custom/menus/menus.html","webpack:///./src/app/sites/analysis/custom/udforms/udforms.component.ts","webpack:///./src/app/sites/analysis/custom/udforms/udforms.html","webpack:///./src/app/sites/analysis/custom/sdk/sdk.component.ts","webpack:///./src/app/sites/analysis/custom/sdk/sdk.modaldialog.ts","webpack:///./src/app/sites/analysis/custom/sdk/sdk.html","webpack:///./src/app/sites/analysis/custom/customTables/customTables.component.ts","webpack:///./src/app/sites/analysis/custom/customTables/customTables.html","webpack:///./src/app/sites/analysis/custom/dashboards/dashboards.component.ts","webpack:///./src/app/sites/analysis/custom/dashboards/dashboards.pipe.ts","webpack:///./src/app/sites/analysis/custom/dashboards/dashboards.component.html","webpack:///./src/app/sites/analysis/custom/updatableBAQs/updatableBAQs.component.ts","webpack:///./src/app/sites/analysis/custom/updatableBAQs/updatableBAQ.pipe.ts","webpack:///./src/app/sites/analysis/custom/updatableBAQs/updatableBAQs.component.html","webpack:///./src/app/sites/analysis/custom/baqMethodDirectives/baqMethodDirectives.component.ts","webpack:///./src/app/sites/analysis/custom/baqMethodDirectives/baqMethodDirectives.pipe.ts","webpack:///./src/app/sites/analysis/custom/baqMethodDirectives/baqMethodDirectives.component.html","webpack:///./src/app/sites/analysis/custom/nonUpdatableBAQs/nonUpdatableBAQs.component.ts","webpack:///./src/app/sites/analysis/custom/nonUpdatableBAQs/nonUpdatableBAQs.pipe.ts","webpack:///./src/app/sites/analysis/custom/nonUpdatableBAQs/nonUpdatableBAQs.component.html","webpack:///./src/app/sites/analysis/custom/triggers/customTriggers.component.ts","webpack:///./src/app/sites/analysis/custom/triggers/customTriggers.pipe.ts","webpack:///./src/app/sites/analysis/custom/triggers/customTriggers.html","webpack:///./src/app/sites/analysis/custom/sqlFunctions/sqlFunctions.component.ts","webpack:///./src/app/sites/analysis/custom/sqlFunctions/sqlFunctions.pipe.ts","webpack:///./src/app/sites/analysis/custom/sqlFunctions/sqlFunctions.html","webpack:///./src/app/sites/analysis/custom/userDefinedTables/userDefinedTables.component.ts","webpack:///./src/app/sites/analysis/custom/userDefinedTables/userDefinedTables.html","webpack:///./src/app/sites/analysis/environment/software-and-platform/software-and-platform.component.ts","webpack:///./src/app/sites/analysis/environment/software-and-platform/software-and-platform.html","webpack:///./src/app/sites/analysis/environment/connectivity/connectivity.component.ts","webpack:///./src/app/sites/analysis/environment/connectivity/connectivity.html","webpack:///./src/app/sites/analysis/licenses/licenses.component.ts","webpack:///./src/app/sites/analysis/licenses/licenses.html","webpack:///./src/app/sites/analysis/other/preUpgrade/preUpgrade.component.ts","webpack:///./src/app/sites/analysis/other/preUpgrade/preUpgrade.html","webpack:///./src/app/sites/analysis/other/healthChecks/healthChecks.component.ts","webpack:///./src/app/sites/analysis/other/healthChecks/healthChecks.html","webpack:///./src/app/sites/analysis/other/conversions/data-conversions.component.ts","webpack:///./src/app/sites/analysis/other/conversions/data-conversions.html","webpack:///./src/app/sites/analysis/other/nonupgradable/nonupgradable.component.ts","webpack:///./src/app/sites/analysis/other/nonupgradable/nonupgradable.component.html","webpack:///./src/app/sites/analysis/other/thirdPartyModules/thirdPartyModules.component.ts","webpack:///./src/app/sites/analysis/other/thirdPartyModules/thirdPartyModules.html","webpack:///./src/app/sites/conversions/conversion/create-conversion.component.ts","webpack:///./src/app/sites/conversions/conversion/conversion-form.component.ts","webpack:///./src/app/shared/services/product.service.ts","webpack:///./src/app/sites/conversions/_dialogs/conversion-configuration-dialog.ts","webpack:///./src/app/sites/conversions/_dialogs/conversion-configuration-dialog.html","webpack:///./src/app/sites/conversions/_dialogs/conversion-configuration-dialog.css","webpack:///./src/app/sites/conversions/conversion/timezone.ts","webpack:///./src/app/sites/conversions/conversion/mock-timezones.ts","webpack:///./src/app/sites/conversions/conversion/conversion-form.component.html","webpack:///./src/app/sites/conversions/conversion/conversion-form.component.css","webpack:///./src/app/sites/conversions/conversion/create-conversion.component.html","webpack:///./src/app/sites/conversions/conversion/edit-conversion.component.ts","webpack:///./src/app/sites/conversions/conversion/edit-conversion.component.html","webpack:///./src/app/sites/conversions/pass/conversion-pass.component.ts","webpack:///./src/app/sites/conversions/_pipes/conversions.pipe.ts","webpack:///./src/app/shared/services/remote-desktop.service.ts","webpack:///./src/app/sites/conversions/_dialogs/conversion-pass-tasks-dialog.ts","webpack:///./src/app/sites/conversions/_dialogs/conversion-pass-tasks-dialog.html","webpack:///./src/app/sites/conversions/_dialogs/incident-dialog.ts","webpack:///./src/app/sites/conversions/_dialogs/incident-dialog.html","webpack:///./src/app/sites/conversions/_dialogs/time-to-live-dialog.ts","webpack:///./src/app/sites/conversions/_dialogs/time-to-live-dialog.html","webpack:///./src/app/sites/conversions/_dialogs/conversion-status-dialog.ts","webpack:///./src/app/sites/conversions/_dialogs/conversion-status-dialog.html","webpack:///./src/app/sites/conversions/_dialogs/add-ip-address-to-nsg-dialog.ts","webpack:///./src/app/sites/conversions/_dialogs/add-ip-address-to-nsg-dialog.html","webpack:///./src/app/sites/conversions/pass/conversion-pass.component.html","webpack:///./src/app/sites/conversions/pass/conversion-pass.component.css","webpack:///./src/app/sites/conversions/conversions.component.ts","webpack:///./src/app/shared/pipes/date.pipe.ts","webpack:///./src/app/shared/services/date.service.ts","webpack:///./~/util/util.js","webpack:///./~/util/support/isBufferBrowser.js","webpack:///./~/util/~/inherits/inherits_browser.js","webpack:///./src/app/sites/conversions/conversions.component.html","webpack:///./src/app/sites/conversions/conversions.component.css","webpack:///./src/app/sites/conversions/conversions-responsive-table.css","webpack:///./src/app/sites/conversions/conversion/conversion.component.ts","webpack:///./src/app/sites/conversions/conversion/conversion.component.html","webpack:///./src/app/sites/conversions/schedule/conversion-schedule.component.ts","webpack:///./src/app/sites/conversions/schedule/conversion-schedule.component.html","webpack:///./src/app/sites/conversions/schedule/conversion-schedule.component.css","webpack:///./src/app/sites/conversions/schedule/conversion-schedule-menu.component.ts","webpack:///./src/app/sites/conversions/schedule/conversion-schedule-menu.component.html","webpack:///./src/app/sites/conversions/passes/conversion-passes.component.ts","webpack:///./src/app/sites/conversions/passes/conversion-passes.component.html","webpack:///./src/app/sites/conversions/passes/conversion-passes.component.css","webpack:///./src/app/golivereport/golive-passes-menu.component.ts","webpack:///./src/app/golivereport/golive-passes-menu.component.html","webpack:///./src/app/sites/conversions/passes/conversion-passes-menu.component.ts","webpack:///./src/app/sites/conversions/passes/conversion-passes-menu.component.html","webpack:///./src/app/cloudview/cloudview.component.ts","webpack:///./src/app/cloudview/cloudview-host-dialog.ts","webpack:///./src/app/cloudview/cloudview-host-dialog.html","webpack:///./src/app/cloudview/cloudview-instance-dialog.ts","webpack:///./src/app/cloudview/cloudview-instance-dialog.html","webpack:///./src/app/cloudview/cloudview-command-dialog.ts","webpack:///./src/app/cloudview/cloudview-command-dialog.html","webpack:///./src/app/shared/dialogs/cloudviewdoc-dialog.ts","webpack:///./src/app/shared/dialogs/cloudviewdoc-dialog.html","webpack:///./src/app/cloudview/cloudview.component.html","webpack:///./src/app/cloudview/cloudview.css","webpack:///./src/app/cloudview/cloudview-instances-table.css","webpack:///./src/app/cloudview/cloudview-host.component.ts","webpack:///./src/app/cloudview/cloudview-host.component.html","webpack:///./src/app/cloudview/cloudview-host-instances.component.ts","webpack:///./src/app/cloudview/cloudview-host-instances.component.html","webpack:///./src/app/cloudview/cloudview-instance.component.ts","webpack:///./src/app/cloudview/cloudview-instance.component.html","webpack:///./src/app/cloudview/cloudview-host-statistics.component.ts","webpack:///./src/app/cloudview/cloudview-host-statistics.component.html","webpack:///./src/app/cloudview/create-site-cloudview-config.component.ts","webpack:///./src/app/cloudview/cloudview-config-form.component.ts","webpack:///./src/app/cloudview/cloudview-config-form.component.html","webpack:///./src/app/cloudview/create-site-cloudview-config.component.html","webpack:///./src/app/cloudview/edit-site-cloudview-config.component.ts","webpack:///./src/app/cloudview/edit-site-cloudview-config.component.html","webpack:///./src/app/cloudview/cloudview-host-performance.component.ts","webpack:///./src/app/cloudview/cloudview-host-performance.component.html","webpack:///./src/app/shared/services/deactivate-guard.service.ts","webpack:///./src/app/zones/zones.component.ts","webpack:///./src/app/zones/zones.component.html","webpack:///./src/app/zones/zones.component.css","webpack:///./src/app/zones/zone/zone.component.ts","webpack:///./src/app/zones/zone/zone.component.html","webpack:///./src/app/zones/zone-create/zone-create.component.ts","webpack:///./src/app/zones/zone-create/zone-create.component.html","webpack:///./src/app/new-features/new-features.component.ts","webpack:///./src/app/new-features/_dialogs/new-features-editor-dialog.ts","webpack:///./src/app/new-features/new-features.service.ts","webpack:///./src/app/new-features/_dialogs/new-features-editor-dialog.html","webpack:///./src/app/new-features/_dialogs/new-features-editor-dialog.css","webpack:///./src/app/new-features/_dialogs/notification-dialog.ts","webpack:///./src/app/new-features/_dialogs/notification-dialog.html","webpack:///./src/app/new-features/new-features.component.html","webpack:///./src/app/new-features/new-features.component.css","webpack:///./src/app/configurations/configurations.component.ts","webpack:///./src/app/configurations/configurations.service.ts","webpack:///./src/app/configurations/configurations.component.html","webpack:///./src/app/configurations/configurations.component.css","webpack:///./src/app/conversion-assesment/conversion-assesment.component.ts","webpack:///./src/app/conversion-assesment/conversion-assesment.service.ts","webpack:///./src/app/conversion-assesment/conversion-assesment.component.html","webpack:///./src/app/conversion-assesment/conversion-assesment.component.css","webpack:///./src/app/golivereport/golive-report.component.ts","webpack:///./src/app/golivereport/golive-report.component.html","webpack:///./src/app/golivereport/golive-report.component.css","webpack:///./src/app/app.pipes.ts","webpack:///./src/app/account/provision/user-provision.pipe.ts","webpack:///./src/app/sites/reports/reports.pipe.ts","webpack:///./src/app/sites/analysis/custom/customTables/customTables.pipe.ts","webpack:///./src/app/sites/analysis/licenses/licenses.pipe.ts","webpack:///./src/app/shared/pipes/number.pipe.ts","webpack:///./src/app/sites/reports/reportorderby.pipe.ts","webpack:///./src/app/sites/reports/reportgroupby.pipe.ts","webpack:///./src/app/sites/reports/reportfilter.pipe.ts","webpack:///./src/app/sites/analysis/custom/baqs.search.pipe.ts","webpack:///./src/app/sites/analysis/custom/menus/menus.search.pipe.ts","webpack:///./src/app/sites/analysis/custom/udforms/udforms.search.pipe.ts","webpack:///./src/app/sites/analysis/custom/sdk/sdk.search.pipe.ts","webpack:///./src/app/sites/analysis/custom/UserDefinedTables/userDefinedTables.search.pipe.ts","webpack:///./src/app/sites/analysis/custom/triggers/customTriggers.search.pipe.ts","webpack:///./src/app/sites/analysis/custom/bankInterfaces/bankInterfaces.search.pipe.ts","webpack:///./src/app/sites/analysis/custom/externalReports/externalReports.search.pipe.ts","webpack:///./src/app/sites/analysis/custom/changelogs/changelogs.search.pipe.ts","webpack:///./src/app/sites/analysis/custom/apmObjects/apmObjects.search.pipe.ts","webpack:///./src/app/shared/dialogs/help-dialog.component.ts","webpack:///./src/app/shared/dialogs/help-dialog.component.html","webpack:///./src/app/shared/dialogs/help-dialog.component.css","webpack:///./src/app/sites/conversions/_dialogs/conversion-schedule-edit-dialog.ts","webpack:///./src/app/sites/conversions/_dialogs/conversion-schedule-edit-dialog.html","webpack:///./src/app/shared/toasts-manager-options.ts","webpack:///./src/app/shared/components/settings-page.component.ts","webpack:///./src/app/reconciliation-reports/index.ts","webpack:///./src/app/reconciliation-reports/reconciliation-reports.module.ts","webpack:///./src/app/reconciliation-reports/reconciliation-reports.component.ts","webpack:///./src/app/reconciliation-reports/faq-dialog.ts","webpack:///./src/app/reconciliation-reports/faq-dialog.html","webpack:///./src/app/reconciliation-reports/instructions-dialog.ts","webpack:///./src/app/reconciliation-reports/instructions-dialog.html","webpack:///./src/app/reconciliation-reports/reconciliation-reports.component.css","webpack:///./src/app/reconciliation-reports/reconciliation-reports.component.html","webpack:///./src/app/reconciliation-reports/reconciliation-reports-heatmap-bar/reconciliation-reports-heatmap-bar.component.ts","webpack:///./src/app/reconciliation-reports/reconciliation-reports-heatmap-bar/reconciliation-reports-heatmap-bar.service.ts","webpack:///./src/app/reconciliation-reports/reconciliation-reports-heatmap-bar/reconciliation-reports-heatmap-bar.component.html"],"names":["webpackJsonp","module","exports","__webpack_require__","Object","defineProperty","value","platform_browser_dynamic_1","core_1","app_module_1","enableProdMode","platformBrowserDynamic","bootstrapModule","AppModule","err","console","log","__decorate","this","decorators","target","key","desc","d","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","common_1","platform_browser_1","animations_1","forms_1","http_1","material_1","ng2_charts_1","ng2_dragula_1","gantt_1","angular2_jwt_1","mydatepicker_1","app_component_1","app_routing_1","auth_service_1","auth_guard_service_1","app_pipes_1","dom_events_1","deactivate_guard_service_1","conversion_form_component_1","code_dialog_component_1","application_dialog_1","applicationdoc_dialog_1","upgradeguide_dialog_1","bpms_component_1","help_dialog_component_1","conversion_configuration_dialog_1","conversion_pass_tasks_dialog_1","incident_dialog_1","time_to_live_dialog_1","conversion_status_dialog_1","add_ip_address_to_nsg_dialog_1","cloudview_host_dialog_1","cloudview_instance_dialog_1","cloudview_command_dialog_1","conversion_schedule_edit_dialog_1","site_file_shares_component_1","new_features_editor_dialog_1","notification_dialog_1","ng2_toastr_1","toasts_manager_options_1","menus_dialog_1","udforms_modaldialog_1","sdk_modaldialog_1","baqs_modaldialog_1","bpms_modaldialog_1","reports_component_service_1","conversion_form_component_2","conversion_form_component_3","conversion_form_component_4","cloudview_instance_component_1","bankInterfaces_modaldialog_1","externalReports_modaldialog_1","changelogs_modaldialog_1","apmObjects_modaldialog_1","user_edit_dialog_1","userDefinedTables_modaldialog_1","customTriggers_modaldialog_1","settings_page_component_1","reconciliation_reports_1","faq_dialog_1","instructions_dialog_1","cloudviewdoc_dialog_1","NgModule","imports","BrowserModule","BrowserAnimationsModule","FormsModule","ReactiveFormsModule","HttpModule","CommonModule","routing","MaterialModule","ChartsModule","GanttModule","MyDatePickerModule","DragulaModule","ToastModule","forRoot","MdNativeDateModule","ReconciliationReportsModule","declarations","AppComponent","routedComponents","CodeDialog","ApplicationDialog","ApplicationDocDialog","UpgradeGuideDialog","CloudViewDocDialog","WizardDialog","HelpDialog","ConversionConfigurationDialog","ConversionPassTasksDialog","IncidentDialog","TimeToLiveDialog","AddIPAddressToNSGDialog","ConversionStatusDialog","CloudViewHostDialog","CloudViewInstanceDialog","CloudViewCommandDialog","ConversionFormComponent","AppPipes","MenusReportDialog","UDTablesReportDialog","SdkReportDialog","BAQsReportDialog","BPMsReportDialog","BankInterfaceReportDialog","ExternalReportDialog","ChangeLogsReportDialog","APMObjectReportDialog","ErrorMessageDialog","AlertMessageDialog","ConfigurationMessageDialog","UomMappingChangeConfirmationDialog","RestartServiceDialog","ConversionScheduleEditDialog","UserEditDialog","SettingsPageComponent","SettingsSectionComponent","SettingsBoxComponent","SiteFileShareAddDialog","faqdialog","instructionsdialog","NewFeaturesEditorDialog","NotificationDialog","UserDefinedTablesReportDialog","CustomTriggerDialog","providers","AuthHttp","provideAuth","headerName","headerPrefix","tokenName","tokenGetter","localStorage","getItem","globalHeaders","Content-Type","noJwtError","AuthService","AuthGuard","provide","LocationStrategy","useClass","HashLocationStrategy","DOMEvents","ToastOptions","ToastsManagerOptions","DeactivateGuardService","entryComponents","bootstrap","global","factory","_angular_core","_angular_platformBrowser","_angular_animations","_angular_animations_browser","__extends","b","__","constructor","extendStatics","prototype","create","issueAnimationCommand","renderer","element","id","command","args","setProperty","resolveElementFromTarget","document","body","window","parseTriggerCallbackName","triggerName","dotIndex","indexOf","trigger","substring","phase","substr","instantiateSupportedAnimationDriver","ɵsupportsWebAnimations","ɵWebAnimationsDriver","ɵNoopAnimationDriver","instantiateDefaultStyleNormalizer","ɵWebAnimationsStyleNormalizer","instantiateRendererFactory","engine","zone","AnimationRendererFactory","setPrototypeOf","__proto__","Array","p","hasOwnProperty","BrowserAnimationBuilder","_super","rootRenderer","doc","_this","call","_nextAnimationId","typeData","encapsulation","ViewEncapsulation","None","styles","data","animation","_renderer","createRenderer","build","toString","entry","isArray","sequence","BrowserAnimationFactory","type","Injectable","ctorParameters","RendererFactory2","undefined","Inject","DOCUMENT","AnimationBuilder","_id","options","RendererAnimationPlayer","AnimationFactory","parentPlayer","_started","totalTime","_command","_listen","eventName","callback","listen","_i","onDone","fn","onStart","onDestroy","init","hasStarted","play","pause","restart","finish","destroy","reset","setPosition","getPosition","ANIMATION_PREFIX","DISABLE_ANIMATIONS_FLAG","delegate","_zone","_currentId","_microtaskId","_animationCallbacksBuffer","_rendererCache","Map","_cdRecurDepth","onRemovalComplete","parentNode","removeChild","hostElement","EMPTY_NAMESPACE_ID","get","BaseAnimationRenderer","set","componentId","namespaceId","register","animationTriggers","forEach","registerTrigger","name","AnimationRenderer","begin","_scheduleCountTask","Zone","current","scheduleMicroTask","scheduleListenerCallback","count","run","Promise","resolve","then","tuple","push","end","runOutsideAngular","flush","whenRenderingDone","ɵAnimationEngine","NgZone","destroyNode","n","enumerable","configurable","createElement","namespace","createComment","createText","appendChild","parent","newChild","onInsert","insertBefore","refChild","oldChild","onRemove","selectRootElement","selectorOrNode","node","nextSibling","setAttribute","el","removeAttribute","addClass","removeClass","setStyle","style","flags","removeStyle","charAt","disableAnimations","setValue","process","name_1","_a","event","countId","InjectableAnimationEngine","driver","normalizer","AnimationDriver","ɵAnimationStyleNormalizer","SHARED_ANIMATION_PROVIDERS","useFactory","deps","ɵDomRendererFactory2","BROWSER_ANIMATIONS_PROVIDERS","concat","BROWSER_NOOP_ANIMATIONS_PROVIDERS","NoopAnimationsModule","ɵBrowserAnimationBuilder","ɵBrowserAnimationFactory","ɵAnimationRenderer","ɵAnimationRendererFactory","ɵa","ɵf","ɵg","ɵb","ɵd","ɵe","ɵc","optimizeGroupPlayer","players","NoopAnimationPlayer","ɵAnimationGroupPlayer","normalizeKeyframes","keyframes","preStyles","postStyles","errors","normalizedKeyframes","previousOffset","previousKeyframe","kf","offset","isSameOffset","normalizedKeyframe","keys","prop","normalizedProp","normalizedValue","normalizePropertyName","ɵPRE_STYLE","AUTO_STYLE","normalizeStyleValue","LINE_START","Error","join","listenOnPlayer","player","copyAnimationEvent","e","phaseName","makeAnimationEvent","fromState","toState","getOrSetAsInMap","map","defaultValue","parseTimelineCommand","separatorPos","action","validateStyleProperty","_CACHED_BODY","getBodyNode","resolveTimingValue","matches","match","_convertTimeValueToMS","parseFloat","unit","ONE_SECOND","resolveTiming","timings","allowNegativeValues","parseTimeExpression","exp","duration","regex","delay","easing","delayMatch","Math","floor","easingVal","containsErrors","startIndex","splice","copyObj","obj","destination","normalizeStyles","normalizedStyles","copyStyles","readPrototype","setStyles","camelProp","dashCaseToCamelCase","eraseStyles","normalizeAnimationEntry","steps","validateStyleParams","params","extractStyleParams","varName","val","PARAM_REGEX","exec","lastIndex","interpolateParams","original","str","replace","_","localVal","iteratorToArray","iterator","arr","item","next","done","input","DASH_CASE_REGEXP","m","toUpperCase","allowPreviousPlayerStylesMerge","visitDslNode","visitor","context","visitTrigger","visitState","visitTransition","visitSequence","visitGroup","visitAnimate","visitKeyframes","visitStyle","visitReference","visitAnimateChild","visitAnimateRef","visitQuery","visitStagger","parseTransitionExpr","transitionValue","expressions","split","parseInnerTransitionStr","eventStr","result","parseAnimationAlias","separator","makeLambdaFromStates","isFullAnyStateExpr","ANY_STATE","alias","lhs","rhs","LHS_MATCH_BOOLEAN","TRUE_BOOLEAN_VALUES","has","FALSE_BOOLEAN_VALUES","RHS_MATCH_BOOLEAN","lhsMatch","rhsMatch","buildAnimationAst","metadata","AnimationAstBuilderVisitor","normalizeSelector","selector","hasAmpersand","find","token","SELF_TOKEN","SELF_TOKEN_REGEX","ENTER_TOKEN_REGEX","ENTER_SELECTOR","LEAVE_TOKEN_REGEX","LEAVE_SELECTOR","NG_TRIGGER_SELECTOR","NG_ANIMATING_SELECTOR","normalizeParams","consumeOffset","styleTuple","isObject","constructTimingAst","makeTimingAst","strValue","isDynamic","some","v","ast","dynamic","normalizeAnimationOptions","createTimelineInstruction","preStyleProps","postStyleProps","subTimeline","buildAnimationTimelines","rootElement","startingStyles","finalStyles","subInstructions","AnimationTimelineBuilderVisitor","buildKeyframes","roundOffset","decimalPoints","mult","pow","round","flattenStyles","allStyles","allProperties","makeBooleanMap","createTransitionInstruction","isRemovalTransition","fromStyles","toStyles","timelines","queriedElements","oneOrMoreTransitionsMatch","matchFns","currentState","nextState","buildTrigger","AnimationTrigger","createFallbackTransition","states","matchers","transition","queryCount","depCount","AnimationTransitionFactory","balanceProperties","key1","key2","deleteOrUnsetInMap","currentValues","index","normalizeTriggerValue","isElementNode","isTriggerEventValid","cloakElement","oldValue","display","cloakAndComputeStyles","elements","elementPropsMap","defaultStyle","cloakVals","valuesMap","failedElements","props","computeStyle","REMOVAL_FLAG","NULL_REMOVED_QUERIED_STATE","createIsRootFilterFn","nodes","isRoot","nodeSet","Set","knownRootContainer","add","className","classList","classes","CLASSES_CACHE_KEY","remove","removeNodesAfterAnimationDone","processLeaveNode","flattenGroupPlayers","finalPlayers","_flattenGroupPlayersRecur","objEquals","a","k1","k2","replacePostStylesAsPre","allPreStyleElements","allPostStyleElements","postEntry","preEntry","_computeStyle","getComputedStyle","supportsWebAnimations","Element","__assign","assign","t","s","_contains","elm1","elm2","_matches","_query","multi","contains","proto","fn_1","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","apply","results","querySelectorAll","elm","querySelector","matchesElement","containsElement","invokeQuery","NoopAnimationDriver","query","animate","previousPlayers","NOOP","SUBSTITUTION_EXPR_START","SUBSTITUTION_EXPR_END","ENTER_CLASSNAME","LEAVE_CLASSNAME","NG_TRIGGER_CLASSNAME","NG_ANIMATING_CLASSNAME","RegExp","LEAVE_TOKEN","ENTER_TOKEN","ROOT_SELECTOR","_driver","AnimationAstBuilderContext","_resetContextStyleTimingState","currentQuerySelector","collectedStyles","currentTime","transitions","definitions","def","stateDef_1","styleAst","astParams","containsDynamicStyles","missingSubs_1","params_1","stylesObj_1","sub","size","missingSubsArr","values","expr","furthestTime","step","innerAst","max","timingAst","currentAnimateTimings","styleMetadata","styleMetadata_1","isEmpty","newStyleData","_styleAst","isEmptyStep","_makeStyleAst","_validateStyleAst","collectedEasing","styleData","styleMap","endTime","startTime","collectedEntry","updateCollectedStyle","MAX_KEYFRAME_OFFSET","totalKeyframesWithOffsets","offsets","offsetsOutOfOrder","keyframesOutOfRange","style$$1","offsetVal","generatedOffset","limit","animateDuration","durationUpToThisFrame","parentSelector","currentQuery","includeSelf","optional","originalSelector","currentTransition","ElementInstructionMap","_map","consume","instructions","append","existingInstructions","clear","ONE_FRAME_IN_MILLISECONDS","AnimationTimelineContext","currentTimeline","filter","timeline","containsAnimation","tl","allowOnlyTimelineStyles","elementInstructions","innerContext","createSubContext","_visitSubInstructions","transformIntoNewTimeline","previousNode","instruction","instructionTimings","appendInstructionToTimeline","updateOptions","subContextCount","ctx","snapshotCurrentStyles","DEFAULT_NOOP_PREVIOUS_NODE","delayNextStep","applyStylesToKeyframe","innerTimelines","mergeTimelineCollectedStyles","_visitTiming","timingValue","incrementTime","getCurrentStyleProperties","forwardFrame","applyEmptyStep","innerTimeline","forwardTime","elms","currentQueryTotal","sameElementTimeline","currentQueryIndex","parentContext","abs","maxTime","staggerTransformer","currentStaggerTime","startingTime","initialTimeline","TimelineBuilder","skipIfExists","newOptions","optionsToUpdate","newParams","paramsToUpdate_1","_copyOptions","oldParams_1","newTime","fork","updatedTimings","builder","SubTimelineBuilder","stretchStartingKeyframe","time","slice","_elementTimelineStylesLookup","_previousKeyframe","_currentKeyframe","_keyframes","_styleSummary","_pendingStyles","_backFill","_currentEmptyStepKeyframe","_localTimelineStyles","_globalTimelineStyles","_loadKeyframe","hasPreStyleStep","_updateStyle","getFinalKeyframe","properties","details0","details1","finalKeyframes","keyframe","finalKeyframe","preProps","postProps","kf0","kf1","_stretchStartingKeyframe","newKeyframes","startingGap","newFirstKeyframe","oldFirstKeyframe","oldOffset","timeAtKeyframe","Animation","errorMessage","_animationAst","buildTimelines","destinationStyles","start","dest","AnimationStyleNormalizer","NoopAnimationStyleNormalizer","propertyName","userProvidedProperty","normalizedProperty","WebAnimationsStyleNormalizer","strVal","trim","DIMENSIONAL_PROP_MAP","valAndSuffixMatch","EMPTY_OBJECT","_triggerName","_stateStyles","buildStyles","stateName","backupStateStyler","stateStyler","backupStyles","currentOptions","nextOptions","transitionAnimationParams","currentAnimationParams","currentStateStyles","nextAnimationParams","nextStateStyles","preStyleMap","postStyleMap","isRemoval","animationOptions","queriedElementsList","AnimationStateStyles","defaultParams","combinedParams","styleObj_1","transitionFactories","fallbackTransition","matchTransition","f","matchStyles","EMPTY_INSTRUCTION_MAP","TimelineAnimationEngine","_normalizer","_animations","_playersById","_buildPlayer","autoStylesMap","inst","_getPlayer","baseEvent","QUEUED_CLASSNAME","QUEUED_SELECTOR","DISABLED_CLASSNAME","DISABLED_SELECTOR","EMPTY_PLAYER_ARRAY","NULL_REMOVAL_STATE","setForRemoval","hasAnimation","removedBeforeQueried","StateValue","isObj","absorbOptions","VOID_VALUE","DEFAULT_STATE_VALUE","DELETED_STATE_VALUE","AnimationTransitionNamespace","_engine","_triggers","_queue","_elementListeners","_hostClassName","listeners","triggersWithStates","statesByElement","afterFlush","_getTrigger","defaultToFallback","TransitionAnimationPlayer","playersOnElement","playersByElement","queued","isFallbackTransition","totalQueuedPlayers","index_1","fromStyles_1","toStyles_1","reportError","deregister","stateMap","clearElementCache","elementPlayers","_signalRemovalForInnerTriggers","namespaces","fetchNamespacesByElement","ns","triggerLeaveAnimation","destroyAfterComplete","triggerStates","players_1","markElementAsRemoved","prepareLeaveAnimationListeners","visitedTriggers_1","listener","elementStates","removeNode","childElementCount","containsPotentialParentTransition","totalAnimations","currentPlayers","playersByQueriedElement","parent_1","triggers","destroyInnerAnimations","_onRemovalComplete","insertNode","drainQueuedTransitions","microtaskId","destroyed","markedForDestroy","sort","d0","d1","elementContainsData","containsData","TransitionAnimationEngine","newHostElements","disabledNodes","_namespaceLookup","_namespaceList","_flushFns","_whenQuietFns","namespacesByHostElement","collectedEnterElements","collectedLeaveElements","createNamespace","_balanceNamespaceList","collectEnterElement","found","nextNamespace","_fetchNamespace","afterFlushAnimationsDone","nsId","details","markElementAsDisabled","_buildInstruction","subTimelines","containerElement","destroyActiveAnimationsForElement","finishActiveQueriedAnimationOnElement","cleanupFns","_flushAnimations","quietFns_1","skippedPlayers","skippedPlayersMap","queuedInstructions","disabledElementsSet","nodesThatAreDisabled","bodyNode","allEnterNodes","allLeaveNodes","leaveNodesWithoutAnimations","allPlayers","erroneousTransitions","stringMap","setVal_1","setVal","errors_1","error","enterNodesWithoutAnimations","allPreviousPlayersMap","sortedParentElements","unshift","_beforeAnimationBuild","_getPreviousPlayers","prevPlayer","replaceNodes","postStylesMap","allLeaveQueriedNodes","preStylesMap","post","pre","rootPlayers","subPlayers","innerPlayer","_buildAnimation","setRealPlayer","parentHasPriority","parent_2","parentPlayers","playersForElement","queriedPlayerResults","queriedInnerElements","j","queriedPlayers","activePlayers","isQueriedElement","toStateValue","queriedElementPlayers","isRemovalAnimation_1","targetNameSpaceId","targetTriggerName","timelineInstruction","realPlayer","getRealPlayer","beforeDestroy","allQueriedPlayers","allConsumedElements","allSubElements","allNewPlayers","pp","wrappedPlayer","_player","_containsRealPlayer","_queuedCallbacks","_queueEvent","AnimationEngine","_triggerCache","_transitionEngine","_timelineEngine","cacheKey","disable","property","eventPhase","WebAnimationsPlayer","_onDoneFns","_onStartFns","_onDestroyFns","_initialized","_finished","_destroyed","previousStyles","currentSnapshot","_duration","_delay","_onFinish","_preparePlayerBeforeStart","previousStyleProps","startingKeyframe_1","missingStyleProps_1","self_1","_loop_1","domPlayer","_triggerWebAnimation","_finalKeyframe","addEventListener","_resetDomPlayerState","cancel","WebAnimationsDriver","fill","playerOptions","previousWebAnimationPlayers","ɵAnimation","ɵNoopAnimationStyleNormalizer","ɵWebAnimationsPlayer","dragula_class_1","dragula","dragula_directive_1","DragulaDirective","dragula_provider_1","DragulaService","dragular_module_1","dragulaExpt","initialContainers","isContainer","drake","containers","o","events","op","touchy","documentElement","grab","release","eventualMovements","startBecauseMouseMoved","movements","crossvent","preventGrabbed","_grabbed","preventDefault","_moveX","clientX","_moveY","clientY","ignore","whichMouseButton","metaKey","ctrlKey","canStart","isInput","focus","ignoreInputTextSelection","getCoord","elementBehindCursor","elementFromPoint","grabbed","getOffset","_item","_offsetX","left","_offsetY","top","_copy","renderMirrorImage","drag","dragging","_mirror","handle","getParent","invalid","source","movable","moves","nextEl","canMove","manualStart","isCopy","cloneNode","emit","_source","_initialSibling","_currentSibling","invalidTarget","drop","ungrab","getElementBehindPoint","dropTarget","findDropTarget","copySortSource","removeOnSpill","isInitialPlacement","cleanup","revert","reverts","revertOnSpill","initial","removeMirrorImage","rm","_renderTimer","clearTimeout","_lastDropTarget","sibling","accepted","droppable","immediate","getImmediateChild","reference","getReference","accepts","moved","over","changed","out","x","y","spillOver","spillOut","rect","getBoundingClientRect","width","getRectWidth","height","getRectHeight","mirrorContainer","outside","len","children","horizontal","inside","after","direction","container","copy","always","never","emitter","on","touch","mouseup","mousedown","mousemove","pointers","microsoft","navigator","pointerEnabled","msPointerEnabled","touches","which","buttons","button","getScroll","scrollProp","offsetProp","clientHeight","point","state","right","bottom","tagName","isEditable","contentEditable","manually","nodeType","nextElementSibling","getEventHost","targetTouches","changedTouches","coord","host","missMap","pageX","pageY","atoa","debounce","thing","opts","evt","once","_once","off","et","emitterSnapshot","shift","async","ticky","setImmediate","tick","si","setTimeout","addEventEasy","capturing","addEventHard","attachEvent","wrap","removeEventEasy","removeEventListener","removeEventHard","unwrap","detachEvent","fabricateEvent","model","makeClassicEvent","createEvent","initEvent","createEventObject","makeCustomEvent","customEvent","detail","eventmap","dispatchEvent","fireEvent","wrapperFactory","originalEvent","srcElement","returnValue","stopPropagation","cancelBubble","keyCode","wrapper","hardCache","addEvent","removeEvent","fabricate","useNative","NativeCustomEvent","foo","CustomEvent","initCustomEvent","bubbles","cancelable","Boolean","eventname","ron","test","lookupClass","cached","cache","rmClass","__metadata","k","dragulaService","nativeElement","ngOnInit","bag","checkModel","dragulaModel","models","dragulaOptions","ngOnChanges","changes","modelIndex","previousValue","currentValue","Input","String","Directive","ElementRef","EventEmitter","cloned","dragend","shadow","dropModel","removeModel","bags","handleModels","initEvents","setupEvents","setOptions","dragElm","dragIndex","dropIndex","sourceModel","domIndexOf","dropElm","notCopy","targetModel","dropElmModel","JSON","parse","stringify","that","replicate","child","__export","gantt_component_1","gantt_header_component_1","gantt_footer_component_1","gantt_service_1","gantt_activity_module_1","groupBy_pipe_1","GanttActivityModule","GanttComponent","GanttHeaderComponent","GanttFooterComponent","GroupByPipe","GanttService","ganttService","onGridRowClick","_project","project","setDefaultProject","_options","scale","setDefaultOptions","setSizes","ganttContainerWidth","calculateContainerWidth","calculateGridScale","tasks","startDate","previousSuccessPassNumber","gridRowClicked","task","onResize","$event","Output","Component","template","gantt_config_service_1","moment","rowHeight","hourCellWidth","hoursCellWidth","cellWidth","windowInnerWidth","activityHeight","barHeight","barLineHeight","barTop","barMoveable","gridWidth","barStyles","status","backgroundColor","border","progressBackgroundColor","_ganttConfig","GanttConfig","calculateBarWidth","hours","Date","days","calculateDiffDays","calculateBarLeft","hoursInDay","getDate","calculateBarLeftDelta","calculateGanttHeight","TASK_CACHE","minutesInHour","secondsInHour","startHours","getHours","getMinutes","getSeconds","isParent","treePath","depth","isChild","calculateBar","barStyle","getBarStyle","line-height","background-color","taskStatus","toLowerCase","getBarProgressStyle","calculateBarProgress","percent","progress","oneDay","diffDays","getTime","calculateDuration","totalHours","endDate","diff","asHours","minutes","calculateTotalDuration","taskDates","startDates","date","endDates","minimumDate","min","maximumDate","calculateTotalPercentage","totalPercent","isNaN","percentComplete","ceil","calculateParentTotalPercentage","parentId","calculateScale","addDays","isDayWeekend","day","getDay","setDate","removeDays","dates","cols","attribute","parseInt","defaultView","innerWidth","containerWidth","calculateActivityContainerDimensions","scrollWidth","scrollTop","verticalScrollElem","ganttGridElem","ganttActivityAreaElem","verticalScrollTop","scroll","setScrollTop","groupData","merged","groups","transform","transformData","output","chain","currentNode","wantedNode","lastNode","newNode","doTaskCheck","treeExpanded","cachedTaskIds","itemsToCache","setIdPrefix","array","group","Pipe","gantt_activity_component_1","gantt_time_scale_component_1","activity_background_component_1","activity_bars_component_1","GanttActivityComponent","GanttTimeScaleComponent","GanttActivityBackgroundComponent","GanttActivityBarsComponent","interfaces_1","elem","upTriangle","downTriangle","zoom","activityActions","expanded","expandedIcon","zoomLevel","Zooming","dimensions","previousData","gridColumns","TIME_SCALE","zooming","containerHeight","calculateContainerHeight","activityContainerSizes","setScale","setDimensions","expand","ngDoCheck","tasksAdded","onVerticalScroll","verticalScroll","ganttGrid","ganttActivityArea","toggleChildren","rowElem","getAttribute","parentId_1","childrenIds","removedIndex","childrenTasks","toggleAllChildren","childrenIds_1","ganttActivityHeight","ganttActivityWidth","setGridRowStyle","font-weight","cursor","zoomTasks","level","scrollLeft","force","getStatusIcon","checkMarkIcon","upBlackPointer","crossMarkIcon","getStatusIconColor","setGridScaleStyle","changeDetection","ChangeDetectionStrategy","Default","subscribe","setTimescaleStyle","setTimescaleLineStyle","borderTop","position","border-top","setTimescaleCellStyle","hourSeperatorPixels","timeScale","rows","cells","drawGrid","setRowStyle","setCellStyle","ViewChild","expandLeft","bar","doDrag","barWidth","startBarWidth","startX","startBarLeft","addMouseEventListeners","expandRight","move","barLeft","drawBar","drawProgress","dragFn","stopFn","_angular_forms","_angular_common","CalToggle","LocaleService","locales","en","dayLabels","su","mo","tu","we","th","fr","sa","monthLabels","1","2","3","4","5","6","7","8","9","10","11","12","dateFormat","todayBtnTxt","firstDayOfWeek","sunHighlight","he","ja","fi","es","hu","sv","nl","ru","uk","no","tr","pt-br","de","it","it-ch","pl","my","sk","sl","zh-cn","ro","ca","en-au","am-et","cs","kk","ko-kr","da","lt","vi","bn","bg","hr","ar","getLocaleOptions","locale","M","MM","MMM","DD","YYYY","UtilService","isDateValid","dateStr","minYear","maxYear","disableUntil","disableSince","disableWeekends","disableDays","disableDateRanges","enableDays","returnDate","month","year","daysInMonth","isMonthStr","separators","getDateFormatSeparators","parseDatePartMonthName","parseDatePartNumber","changeDateFormat","lastIndexOf","isDisabledDay","mp","isMonthLabelValid","monthLabel","isYearLabelValid","yearLabel","dateString","datePart","pos","getDatePartIndex","parseDefaultMonth","monthString","monthTxt","monthNbr","enableDays_1","dateMs","getTimeInMilliseconds","isInitializedDate","dn","getDayNumber","disableDays_1","_b","disableDateRanges_1","isMarkedDate","markedDates","markWeekends","markedDates_1","md","marked","color","dayNbr","isHighlightedDate","satHighlight","highlightDates","highlightDates_1","getWeekNumber","getFullYear","isMonthDisabledByDisableUntil","isMonthDisabledByDisableSince","isSameDate","d2","FocusDirective","ngAfterViewInit","invokeElementMethod","Renderer","propDecorators","MYDP_VALUE_ACCESSOR","NG_VALUE_ACCESSOR","useExisting","forwardRef","MyDatePicker","Year","InputFocusBlur","KeyCode","MonthId","MM$1","MMM$1","DD$1","YYYY$1","cdr","localeService","utilService","dateChanged","inputFieldChanged","calendarViewChanged","calendarToggle","inputFocusBlur","onChangeCb","onTouchedCb","showSelector","visibleMonth","selectedMonth","selectedDate","weekDays","months","years","selectionDayTxt","invalidDate","disableTodayBtn","dayIdx","weekDayOpts","selectMonth","selectYear","prevMonthDisabled","nextMonthDisabled","prevYearDisabled","nextYearDisabled","prevYearsDisabled","nextYearsDisabled","prevMonthId","prev","currMonthId","curr","nextMonthId","showTodayBtn","markCurrentDay","markCurrentMonth","markCurrentYear","markDates","showWeekNumbers","selectionTxtFontSize","selectorHeight","selectorWidth","allowDeselectDate","inline","showClearDateBtn","showDecreaseDateBtn","showIncreaseDateBtn","alignSelectorRight","openSelectorTopOfInput","indicateInvalidDate","editableDateField","monthSelector","yearSelector","disableHeaderButtons","componentDisabled","showSelectorArrow","showInputField","openSelectorOnInputClick","ariaLabelInputField","ariaLabelClearDate","ariaLabelDecreaseDate","ariaLabelIncreaseDate","ariaLabelOpenCalendar","ariaLabelPrevMonth","ariaLabelNextMonth","ariaLabelPrevYear","ariaLabelNextYear","setLocaleOptions","listenGlobal","CloseByOutClick","resetMonthYearSelect","disabled","getSelectorTopPosition","offsetHeight","onSelectMonthClicked","detectChanges","today","getToday","row","nbr","currMonth","selected","onMonthCellClicked","cell","mc","monthText","generateCalendar","selectorEl","onMonthCellKeyDown","enter","space","onSelectYearClicked","generateYears","onYearCellClicked","yc","onYearCellKeyDown","onPrevYears","onNextYears","minMax","currYear","onUserDateInput","clearDate","selectDate","CloseByDateSel","valid","onFocusInput","reason","onBlurInput","blur","onCloseSelector","esc","CloseByEsc","isTodayDisabled","parseOptions","idx","writeValue","parseSelectedDate","jsDateToMyDate","cvc","updateDateValue","setDisabledState","registerOnChange","registerOnTouched","openBtnClicked","placeholder","dm","parseSelectedMonth","sd","getDateModel","isFirstChange","setVisibleMonth","removeBtnClicked","CloseByCalBtn","onDecreaseBtnClicked","decreaseIncreaseDate","onIncreaseBtnClicked","Open","onPrevMonth","setMonth","getMonth","onNextMonth","onPrevYear","onNextYear","onTodayClicked","onCellClicked","cmo","dateObj","onCellKeyDown","jsdate","formatted","epoc","decrease","closeReason","dateModel","formatDate","preZero","monthStartIdx","setFullYear","sundayIdx","daysInPrevMonth","isCurrDay","getWeekday","notifyChange","monthStart","dInThisM","dInPrevM","week","pm","currDay","markedDate","highlight","daysLeft","weekNbr","setHeaderBtnDisabledState","first","number","weekday","last","selDate","df","ms","dpm","dpy","dnm","dny","exportAs","ChangeDetectorRef","defaultMonth","router_1","conversion_hub_service_1","cloudview_hub_service_1","app_insights_service_1","router","auth","conversionHubService","cloudViewHubService","toastr","appInsightsService","vRef","debugSignalRHub","Role","Permission","setRootViewContainerRef","NavigationEnd","closeSideNav","logPageView","loginSubscription","onLoggedInEmitter","user","logoutSubscription","onLoggedOutEmitter","subscribeToConversionHub","openNavMenu","navMenuOpen","closeNavMenu","account","navigate","logout","sideNav","close","ngOnDestroy","unsubscribe","debug","browserNotSupportedMessage","isIE","ua","userAgent","msie","trident","edge","MdSidenav","ConversionHubService","CloudViewHubService","AppInsightsService","Router","ToastsManager","ViewContainerRef","Observable_1","config_service_1","CredentialsModel","http","location","serviceBase","ConfigService","getApiHost","tokenEndpoint","resource","scope","onLogin","onLogout","onUnauthorized","jwtHelper","JwtHelper","login","credentials","username","encodeURIComponent","password","creds","headers","Headers","res","json","removeItem","unauthorized","response","loggedIn","tokenNotExpired","setUser","getTokenExpirationDate","valueOf","now","timer","Observable","reload","saveJwt","jwt","setItem","access_token","replaceState","redirectUrl","navigateByUrl","getUser","hasRole","role","roles","hasPermission","permission","permissions","hasPermissions","onUnauthorizedEmitter","createRestrictedSitePermissionClaimValue","siteId","decodeToken","sites","setUserSites","setUserRoles","setUserPermissions","Http","Location","Environments","_localhostAPIURI","_stagingAPIURI","_productionAPIURI","_apiURI","setAPIURI","env","getApiURI","Subject_1","SignalRConnectionStatus","Disconnected","connectionStateSubject","Subject","setConnectionIdSubject","addPassLogEntrydSubject","addTasksEntrySubject","updateTaskEntrySubject","addConversionPassEntrySubject","updateConversionPassEntrySubject","addConversionPassIncidentEntrySubject","connectionState","asObservable","setConnectionId","addPassLogEntry","addTasksEntry","updateTaskEntry","addConversionPassEntry","updateConversionPassEntry","addConversionPassIncidentEntry","_baseUrl","$","connection","hub","logging","url","conversionHub","conversionBroadcaster","server","client","onSetConnectionId","onAddPassLogEntry","onAddTasksEntry","onUpdateTaskEntry","conversionPass","onAddConversionPassEntry","onUpdateConversionPassEntry","incident","onAddConversionPassIncidentEntry","setConnectionState","Connected","fail","subscribeToFeed","conversionId","unsubscribeFromFeed","ConversionStatus","ConversionPassLogType","DocumentState","currentDate","addCloudViewLogEntrySubject","addCloudViewLogEntry","cloudViewHub","cloudViewBroadcaster","onAddCloudViewLogEntry","subscribeToCloudViewHub","groupId","unsubscribeFromCloudViewHub","toast_1","Toast","toast_manager_1","toast_container_component_1","ToastContainer","toast_options_1","toast_module_1","message","title","config","dismiss","enableHTML","titleClass","messageClass","toastLife","showCloseButton","componentFactoryResolver","ngZone","appRef","toastClicked","_rootViewContainerRef","onClickToast","show","toast","reject","vcRef","ReflectiveInjector","useValue","toastFactory","resolveComponentFactory","childInjector","fromResolvedProviders","parentInjector","createComponent","instance","onToastClicked","_onToastClicked","onExit","dispose","setupToast","createTimeout","clearToast","customConfig","timeoutId","addToast","dismissToast","removeToast","clearAllToasts","removeAllToasts","info","success","warning","custom","ComponentFactoryResolver","ApplicationRef","sanitizer","toasts","_fresh","_onEnter","_onExit","onEnter","positionClass","newestOnTop","maxShown","complete","clicked","anyToast","findToast","toastId","onAnimationEnd","_ngExit","onMicrotaskEmpty","animations","opacity","DomSanitizer","ngModule","applicationinsights_js_1","instrumentationKey","AppInsights","downloadAndSetup","measurements","trackPageView","logEvent","trackEvent","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","Microsoft","ApplicationInsights","Telemetry","Base","Envelope","ver","sampleRate","tags","Context","AI","SeverityLevel","UtilHelpers","newId","base64chars","random","char","require","AppInsightsModule","_createLazyMethod","aiObject","appInsightsName","originalArguments","queue","_defineLazyMethods","cookie","method","pop","_download","aiConfig","getAppInsightsInstance","scriptElement","src","head","disableExceptionTracking","method_1","originalOnError","lineNumber","columnNumber","handled","appInsightsInitialized","_staticInit","defineProp","login_component_1","redirect_component_1","users_component_1","user_sites_component_1","user_permissions_component_1","user_provisions_component_1","applications_component_1","reports_component_1","account_component_1","account_forgot_password_component_1","account_provision_component_1","account_reset_password_component_1","user_provision_component_1","user_create_component_1","home_component_1","sites_component_1","site_component_1","site_detail_component_1","site_users_component_1","site_reports_component_1","site_conversions_component_1","site_cloud_view_component_1","site_privacy_and_security_component_1","site_manage_cloud_transfer_tool_users_component_1","site_manage_cloud_view_instance_view_users_component_1","site_manage_conversion_monitor_connect_users_component_1","site_manage_users_component_1","site_security_history_component_1","site_manage_reports_component_1","site_creation_component_1","analysis_report_component_1","static_data_component_1","transaction_overview_component_1","companies_component_1","apmObjects_component_1","configurators_component_1","customisations_component_1","kineticUXs_component_1","functions_component_1","processCalls_component_1","incompatibilities_component_1","changelogs_component_1","bankInterfaces_component_1","dataDirectives_component_1","sqlViews_component_1","sqlStoredProcedures_component_1","customReports_component_1","baqReports_component_1","externalReports_component_1","menus_component_1","udforms_component_1","sdk_component_1","customTables_component_1","dashboards_component_1","updatableBAQs_component_1","baqMethodDirectives_component_1","nonUpdatableBAQs_component_1","customTriggers_component_1","sqlFunctions_component_1","userDefinedTables_component_1","software_and_platform_component_1","connectivity_component_1","licenses_component_1","preUpgrade_component_1","healthChecks_component_1","data_conversions_component_1","nonupgradable_component_1","thirdPartyModules_component_1","create_conversion_component_1","edit_conversion_component_1","conversion_pass_component_1","conversions_component_1","conversion_component_1","conversion_schedule_component_1","conversion_schedule_menu_component_1","conversion_passes_component_1","golive_passes_menu_component_1","conversion_passes_menu_component_1","cloudview_component_1","cloudview_host_component_1","cloudview_host_instances_component_1","cloudview_host_statistics_component_1","create_site_cloudview_config_component_1","edit_site_cloudview_config_component_1","cloudview_config_form_component_1","cloudview_host_performance_component_1","zones_component_1","zone_component_1","zone_create_component_1","new_features_component_1","configurations_component_1","conversion_assesment_component_1","golive_report_component_1","appRoutes","path","component","LoginComponent","RedirectComponent","AccountComponent","canActivate","AccountForgotPasswordComponent","AccountProvisionComponent","AccountResetPasswordComponent","UserProvisionComponent","ApplicationsComponent","ReportsComponent","UsersComponent","UserCreateComponent","HomeComponent","SitesComponent","SiteCreationComponent","SiteComponent","AnalysisReportComponent","canDeactivate","ConversionComponent","CreateConversionComponent","CreateSiteCloudViewConfigComponent","EditSiteCloudViewConfigComponent","ConversionsComponent","EditConversionComponent","ConversionPassComponent","CloudViewComponent","CloudViewInstanceComponent","ZonesComponent","ZoneCreateComponent","ZoneComponent","NewFeaturesComponent","ConfigurationsComponent","ConversionAssesmentComponent","GoLiveReportComponent","redirectTo","pathMatch","RouterModule","UserSitesComponent","UserPermissionsComponent","UserProvisionsComponent","SiteDetailComponent","SiteUsersComponent","SiteReportsComponent","SiteConversionsComponent","SiteCloudViewComponent","SiteFileSharesComponent","SitePrivacyAndSecurityComponent","SiteManageCloudTransferToolUsersComponent","SiteManageCloudViewInstanceViewUsersComponent","SiteManageConversionMonitorConnectUsersComponent","SiteManageUsersComponent","SiteSecurityHistoryComponent","SiteManageReportsComponent","CompaniesComponent","SoftwareAndPlatformComponent","ConnectivityComponent","ConfiguratorsComponent","CustomisationsComponent","FunctionsComponent","ProcessCallComponent","StaticDataComponent","TransactionOverviewComponent","LicensesComponent","BpmsComponent","ChangeLogsComponent","BankInterfacesComponent","DataDirectivesComponent","SqlViewsComponent","SQLStoredProceduresComponent","CustomReportsComponent","BaqReportsComponent","MenusComponent","ExternalReportsComponent","PreUpgradeComponent","ThirdPartyModuleComponent","UDFormsComponent","SdkComponent","CustomTablesComponent","HealthChecksComponent","DataConversionsComponent","DashboardsComponent","ConversionScheduleComponent","ConversionScheduleMenuComponent","ConversionScheduleNextPassNumberComponent","ConversionScheduleRemainingPassesComponent","ConversionPassesComponent","GoLiveConversionPassesMenuComponent","ConversionPassesMenuComponent","CloudViewHostComponent","CloudViewHostInstancesComponent","CloudViewHostStatisticsComponent","CloudViewConfigFormComponent","CloudViewHostPerformanceComponent","NonupgradableComponent","UpdatableBAQsComponent","BAQMethodDirectives","NonUpdatableBAQs","IncompatibilitiesComponent","APMObjectsComponent","CustomTriggersComponent","SQLFunctionsComponent","UserDefinedTableComponent","KineticUXComponent","authService","route","domEvents","isLoading","isLoggedIn","onSubmit","loginFailed","_body","startsWith","loginFailedDescription","error_description","triggerOnDocument","__param","paramIndex","decorator","core_2","eventType","triggerOnElement","pages","analyserReports","subscription","queryParams","queryParam","page","version","accessToken","ActivatedRoute","users_service_1","pager_service_1","users_pipe_1","dialog","snackBar","pagerService","users","changeDetected","search","searchUserSites","userCreating","creatingProvision","pager","totalItems","currentPage","totalPages","filterUserPipe","FilterUserPipe","getUsers","filterUser","setPage","filtered","getPager","pagedItems","endIndex","openEditUserDialog","open","deleteUser","confirm","emailAddress","SetStatus","alert","userAccessAudit","changedBy","active","changedOn","UpdateUserAccessStatus","createUser","createProvision","createUserProvision","provision","UsersService","PagerService","MdDialog","MdSnackBar","authHttp","usersAPI","extractData","getRoles","getUserByEmail","getUserSiteAccess","getUsersInRoles","addRoleToUser","userRole","put","removeRoleFromUser","updateUserRole","addSiteToUser","userSite","removeSiteFromUser","usersite","updateUser","getUserProvisions","deleteUserProvision","getUserEmailAddresses","addPermission","restrictedSite","removePermission","getUsersInPermission","getRestrictedSiteUsersInPermission","getEndUsersInSite","handleError","pageSize","startPage","endPage","range","reportTab","components","reviewed","keep","reportID","reportStyles","rs","cloudComplexity","external","company","companyID","u","fullName","sitefound","site","usersService","dialogRef","sitesSelected","userPermissionsSelected","userEnvironmentSelected","environments","loadingSites","loggedInUser","getPermissions","getEnvironment","getSites","isEpicorEmployee","update","mapUserPermissions","permissionKeys","mapUserEnvironment","environmentsKeys","epicWebUser","MD_DIALOG_DATA","MdDialogRef","provisions","addProvision","deleteProvision","getProvisionUrl","selectAllText","setSelectionRange","copyProvisionUrlToClipboard","execCommand","application_service_1","applicationService","applications","getApplications","download","selectedIndex","uri","ApplicationService","applicationsAPI","downloadDoc","applicationName","fileName","uploadDoc","formFile","Authorization","RequestOptions","uploadcloudviewDoc","reports_service_1","reportsService","reports","reportsCount","pageIndex","continuationTokens","searchText","myReports","hasMoreResults","showAll","firstLoad","getReportsCount","showAllReports","getReports","getMyReports","getReportsSummary","searchCount","requestContinuation","filterReports","searchTimeout","getReportHref","updateReportHref","siteReportsElement","getElementsByTagName","lastCell","href","deleteReport","reportSelection","deleteReports","previous","hasDeletePermission","admin","AnalyserReportAdmin","getModifiedERPProductVersion","productVersion","minor","patch","versionString","ReportsService","reportsAPI","customizationAPI","q","updateReport","report","refreshReport","reportId","createSitePreference","sitePreference","getSitePreference","getReportExportToken","getReportExportDownloadUrl","reportSection","exportType","getOwningCompanies","account_service_1","security","currentPassword","newPassword","confirmNewPassword","changePasswordVisible","toggleChangePassword","changePassword","AccountService","accountAPI","userRegister","forgotPassword","addPassword","userProvision","getProvisionData","provisionData","resetPassword","userPassword","provisionUser","verifyUser","verify","EmailTemplate","accountService","submitted","browserDetails","captureBrowserDetails","redirect","errorDescription","code","description","browsers","chrome","safari","firefox","ie","confirmPassword","formLoaded","isProvisionValid","isProvisionActive","isEmailRegistered","provisionId","getProvisionAccount","provisionEmail","provisionResult","errorCode","provisionAccountActions","resetToken","userPasswordReset","string_pipe_1","isVerifying","isSubmitting","messages","verified","allSitesChecked","notificationEmails","camUsers","psaUsers","umUsers","camPartnerUsers","searchCAMText","searchPSAText","searchUMText","searchPCAMText","ERPAnalyzer","cam","psa","upgradeManager","partnerCAM","removeWhiteSpace","RemoveWhiteSpacePipe","epicorEmployee","allRoles","partner","loading","verifyResult","setUserDetails","externalUser","epicWebRoles","access","custType","defaultEpicorEmployee","EndUser_ERPAnalyzer","notVerified","selectedSites","conf","allSites","checked","onRoleChange","PartnerWelcome","getNotificationEmailsCount","validateNotificationEmails","filterUsers","userType","getusers","sites_service_1","userService","sitesService","SitesService","url_pipe_1","forkJoin_1","sitesAPI","queryStringPipe","QueryStringPipe","createSite","deleteSite","getSitesDTO","getSitesIds","getSite","updateSite","getAnalyserReport","getSiteAndLatestReport","siteUrl","reportUrl","siteRequest","of","reportRequest","forkJoin","getReportAndSiteDetails","getSiteAnalyserReportsSummary","getAnalyserReportSection","queryString","getAnalyserReportSectionDocumentCount","getAnalyserReportSectionDocumentKeepCount","getAnalyserReportSectionDocumentReviewedCount","getAnalyserReportCountStatistics","updateAnalyserReportSectionDocument","docId","actionValue","updateAnalyserReportSectionDocuments","getLatestAnalyserReport","getLocalAnalyserReport","getFileShareReadFileSas","getFile","getFileName","splitPath","refreshChildSites","getSitesCount","getSiteSecurityLogs","getSiteUsers","upgradeguide_service_1","conversions_service_1","viewContainerRef","upgradeGuideService","conversionsService","upgradeGuides","isLoadingGuides","allowedToGuides","Administrator","EpicorEmployee","hasActiveConversions","getUpgradeGuides","guides","downloadApplication","application","MdDialogConfig","componentInstance","setApplicationName","downloadApplicationDocs","uploadApplicationDocs","applicationDocument","docDialogRef","afterClosed","downloadGuide","guide","uploadUpgradeGuide","guideDialogRef","enableEdit","deleteUpgradeGuide","deleteGuide","EndUser","Partner","hasActiveConversion","UpgradeGuideService","ConversionsService","agreed","upgradeguidesAPI","upgradeGuide","uploadGuide","guideForm","updateGuide","conversionsAPI","createConversion","conversion","updateConversion","updateConversionStatus","deleteConversion","getConversions","getSiteConversions","getConversion","getConversionPass","passNumber","getConversionPassToolingVersion","getConversionPassReconciliationReports","conversionPassId","companyId","category","difference","getConversionPassReconciliationReportsCount","deleteConversionPass","getConversionPasses","getLatestConversionPass","getAllConversionPasses","getConversionPassSummaries","sortColumn","sortAsc","docState","getConversionPassSummariesCount","getConversionLivePassSummariesCount","getConversionPassesByStatus","getConversionPassLogs","logType","getAllConversionPassLogs","getEffectiveTimeConversionPass","getConversionPassLogsCount","getConversionDescription","configuration","fromProduct","fromVersion","toProduct","toVersion","getConversionPassRDPPassword","getConversionPassProductPassword","logConversionPassIncident","resubmitConversionPass","deleteConversionPassTasks","parentIds","getConversionPassTTL","updateConversionPassTTL","ttl","updateConversionPassStatus","getConversionPassesLimitDefault","getConversionSchedule","completed","completedQueryParam","livePassFilter","livePassQueryParam","plannedDateFilter","plannedDateQueryParam","columnName","getPreviousSuccessConversionPass","getConversionGoLive","fromDate","toDate","goliveConversionStatus","testConversionStatus","getGoLiveCount","updateConversionSchedule","getRemainingPasses","getNextPassNumber","getNextPassNumberSchedule","startVM","escalateConversionPassToDevelopment","addIPAddressToNSG","ipAddress","archiveConversionPass","unarchiveConversionPass","getVMStatusClass","vmStatus","vmStatusClass","VirtualMachineStatus","ONLINE","SHUTDOWN","DELETED","getVMStatusText","vmStatusText","getCustomerSpecificDetails","region","checkUnitOfMeasuresFileExists","createUnitOfMeasureDownloadToken","exists","downloadUnitOfMeasures","sas","getConversionProcessTypes","getConversionTypes","getConversionDeploymentTypes","getConversionProjectTypes","getCloudConverterToolingVersions","getVMSizes","getDiskSizes","getConversionByStatus","docStatus","livePassFilterParam","verifyUOMExists","validateUomMappingFile","fileNameLbl","fileAccept","onChange","files","file","submit","fileToUpload","formData","FormData","fileUri","isUpdate","tokens","sitesCount","searchTerm","filterSite","SiteCreate","openSiteInNewTab","origin","viewSite","storage_account_service_1","region_service_1","conversions_interface_1","cloudview_service_1","zone_service_1","regionService","zoneServices","storageAccount","cloudviewService","editing","editingSites","conversions","regions","zones","storageAccountRegions","cloudViewSiteInstances","InstanceStatus","advancedSettingsVisible","getStorageAccountRegions","getRegions","originDescr","getZoneRegions","zoneId","refreshZoneAndRegions","getSiteZoneRegions","getZones","storageAccounts","toggleAdvanced","RegionService","StorageAccountService","CloudViewService","ZoneService","storageAccountsAPI","getStorageAccounts","getStorageAccount","accountName","getStorageAccountShares","getStorageAccountShare","shareName","createFileShare","deleteFileShare","addDBPackerQueueMessage","messageText","regionAPI","getCountryCodes","cloudviewAPI","getHosts","deleteHost","hostId","getAppHosts","getAppHostsCount","getDbHosts","getDbHostsCount","getHostInstances","getUnallocatedInstances","getUnallocatedInstancesCount","getInstanceStatusClass","statusClass","Running","Offline","Provisioning","Deallocated","Deleting","Deleted","Warning","runCommandsOnHost","hostid","HostId","Script","beautifyScript","getSiteConfig","createSiteConfig","updateSiteConfig","deleteSiteConfig","getLogs","typeUID","severity","getLogsCount","getAllSiteInstances","hasInstanceLimitExceeded","getLogSeverityClass","logSeverityClass","LogSeverity","ERROR","WARN","getHostHeartbeat","pollHostHeartbeat","interval","concatMap","createHost","createInstance","getInstances","product","sortorder","sortCol","so","sc","getInstance","instanceid","getInstancesBySiteId","getInstanceAccessToken","instanceId","refreshInstanceAccessToken","deleteInstance","getHostInstanceCollection","unallocatedInstance","setAppServer","appServer","appserver","setDbServer","dbServer","setInstanceTTL","deleteOn","getHelp","link","click","LogType","HostType","zoneAPI","getZone","getZonesDetails","addZone","deleteZone","updateZone","sharesVisible","openAddDialog","shares","fileShares","share","msg","toggleShares","Number","isCreating","fileShare","zoneService","partnerSitesVisible","syncing","searchPMText","countryCodes","pmUsers","pcamUsers","countryCode","cc","country","togglePartnerSites","refreshPartnerSites","childSites","removePartnerSiteFromList","isFieldDisabled","SiteAdmin","SiteEdit","siteUsers","visible","toggle","siteusers","viewReports","conversionsVisible","toggleConversions","viewConversionsSite","viewConversions","openConversionInNewTab","editConversion","totalPassesRan","markAsComplete","markAsIncomplete","cloudViewInstancesVisible","cloudview","instances","dataRegion","deleteAfterHours","toggleCloudViewInstances","RestrictedSiteAdmin","convService","refreshRegion","refreshSite","securityHistoryVisible","restrictedZone","ignoredFirstEvent","getEndUsers","restricted","endUsers","toggleSecurityHistory","toggleRestricted","customerAdmin","toggleSiteRestricted","CloudTransferTool","selectedUser","CloudViewInstanceView","ConversionMonitorConnect","logs","pagedResult","reportsSummary","versions","openReportInNewTab","reportVersion","analysis_report_pipe_1","tabs","freezeInput","analysis","analysisCache","selectedTab","showReviewed","totalReviewedPercent","isDirty","platform","statusList","companyList","defaultFilterItem","filterCustom","mergeReportPagePipe","MergeReportPagePipe","onFilterCustom","onAnalysisRefresh","debugReport","getLocalReport","getReportByVersion","getLatestReport","getReport","onSelect","tab","selectedTabData","reviewedPercent","setReviewedPercent","total","filter_1","properties_1","percentage","lastSavedDate","reportLastSavedDate","filterCustomItems","exportCustom","downloadUrl","isCloud","analyserReport","showDatabaseWarning","getReadFileSas","companies","getCompaniesFilterList","readFileSas","read","scrollIntoView","behavior","block","confirmationMessage","formatDataSize","sizeInMB","environment","softwareAndPlatform","databaseTotalSizeMB","formattedSize","databaseWarningMessage","getConvertedProductVersion","unloadNotification","HostListener","Function","reportPage","lic","_c","comp","_d","_e","otherChildProp","_f","_g","otherChildValue","_h","_j","custChildProp","_k","_l","custChildValue","barChartData","barChartOptions","scaleShowVerticalLines","responsive","barChartLabels","barChartType","barChartLegend","barChartColors","pointBackgroundColor","pointBorderColor","pointHoverBackgroundColor","pointHoverBorderColor","chartClicked","chartHovered","lineChartData","lineChartLabels","lineChartOptions","lineChartColors","lineChartLegend","lineChartType","convertKeysToCamelCase","newObj","each","_companies","opened","icon","toggleChild","expandLess","expandMore","openedChild","expandLessChild","expandMoreChild","openGoogleMaps","address1","city","zip","apmObjects_pipe_1","complexity_type_service_1","complexityService","reportComponentService","_apmObjects","freezeInputs","selectedFilter","filterAPMObjectPipe","FilterAPMObjectPipe","finalAPMObjectList","isDesc","column","checkedAll","hidePagination","setFilterColorColumn","clickedOutside","apmObjects","setAPMObjectFilter","filterAPMObjects","apmObject","countReviewed","countKeep","keepAll","reviewedAll","ngAPMInitFlag","openDialog","colElem","menusDialogInput","selectedColumn","apmObjectRef","render","selectedItems","setFilterColorDocumentID","setFilterColorDocumentType","setFilterColorDocuments","setFilterColorProperties","setFilterColorRoutings","setFilterColorRecipients","ComplexityService","ReportComponentService","apm","documentId","documentType","getComplexity","complexity","complexityType","ComplexityType","Unknown","bpms_search_pipe_1","rowIndex","filterBlueColor","filterDefaultColor","ngInitBPMsFlag","items","isChecked","customMethod","businessObject","methodCode","customComplexity","ngBAQsInitFlag","ngMenusInitFlag","ngUdFormsInitFlag","ngSdkInitFlag","ngInitBankInterfaceFlag","ngInitChangeLogsFlag","ngExternalReportInitFlag","ngSQLInitFlag","setFilterColorGroup","finalBPMsList","BPMsFilterColumnName","Group","setFilterColorName","Name","setFilterColorTableName","CustomTriggersFilterColumnName","setFilterColorComplexity","Complexity","setFilterColorMethod","Method","setFilterColorLOC","LOC","setFilterColorCompany","finalBAQsList","BAQsFilterColumnName","Company","setFilterColorQueryId","QueryId","setFilterColorDesc","Description","setFilterColorAuthor","finalUpdatableBAQsList","Author","setFilterColorCompatible","Compatible","setFilterColorShared","Shared","setFilterColorTables","Tables","setFilterColorExternal","External","setFilterColorID","finalMenusList","MenusFilterColumnName","ID","setFilterColorProgram","Program","setFilterColorArguments","Arguments","setFilterColorRows","finalUDTablesList","UDFormsFilterColumnName","Rows","setFilterColorRowCount","UserDefinedTablesFilterColumnName","RowCount","setFilterColorCompanies","finalBankInterfaceList","BankInterfaceFilterColumnName","Companies","setFilterColorType","Type","setFilterColorTable","finalChangeLogsList","ChangeLogsFilterColumnName","Table","APMObjectFilterColumnName","DocumentID","DocumentType","Documents","Properties","Routings","Recipients","BPMsSearchPipe","Search","errorChangeDetectorRef","elementRef","columnDisplayName","selectedColumnGroupBy","baqsReportType","BAQsList","disableApplyButton","tempList","baqsDetails","getGroupByColumnName","maxHeight","overflow","applyModal","showErrorMessage","checkboxFieldChange","checkboxFieldChangedProcess","toggleAll","setToggleValue","companyFieldProcess","queryIdFieldProcess","descFieldProcess","complexityFieldProcess","authorFieldProcess","compatibleFieldProcess","sharedFieldProcess","tablesFieldProcess","externalFieldProcess","getRowDetails","queryID","author","compatible","shared","tables","toggleFlag","errorDialogRef","onClick","clickedOutsideDialog","(document:click)","BAQsReportType","menusList","menusDetails","tempMenusList","idFieldProcess","nameFieldProcess","programsFieldProcess","argumentsFieldProcess","menuID","menuDesc","program","argument","clickedComponent","udTableList","udFormsDetails","rowsFieldProcess","udFormName","parentCount","bankInterfaceList","bankInterfaceDetails","interfaceTypeProcess","interfaceNameFieldProcess","locProcess","interfaceType","interfaceName","linesOfCode","changeLogsList","changeLogsDetails","tableProcess","locFieldProcess","tableName","apmObjectList","doucmentIdFieldProcess","documentTypeProcess","documentsFieldProcess","propertiesFieldProcess","routingsProcess","recipientsProcess","documentID","documents","routings","recipients","customTableList","finalUserDefinedTablesList","rowCount","sql_modaldialog_1","sqlReportType","sqlList","sqlReportDetails","finalSQLList","getDisplayName","SQLReportType","Trigger","TableName","tableNameFieldProcess","SQLReportDialog","Views","SQLFilterColumnName","configurators_pipe_1","_configurators","filterConfiguratorPipe","FilterConfiguratorPipe","configurators","setConfiguratorFilter","filterConfigurator","configurator","previewCode","language","preview","text","codeDialogRef","previewCodeDisabled","sourceFilename","cloudFilename","previewCodeIcon","Prism","setLanguage","html","languages","warn","elClass","linesCount","lineNumbersHTML","getLinesHTML","prismjs","innerHTML","lang","lines","outerHTML","_self","WorkerGlobalScope","self","uniqueId","util","encode","Token","content","objId","clone","extend","redef","before","insert","root","grammar","newToken","ret","DFS","visited","plugins","highlightAll","hooks","highlightElement","nodeName","textContent","Worker","worker","filename","onmessage","highlightedCode","postMessage","immediateClose","tokenize","strarr","rest","tokenloop","patterns","pattern","lookbehind","greedy","lookbehindLength","matchedStr","delNum","from","to","wrapped","all","callbacks","tag","attributes","aliases","script","currentScript","hasAttribute","readyState","requestAnimationFrame","markup","comment","prolog","doctype","cdata","punctuation","attr-value","attr-name","entity","xml","mathml","svg","css","atrule","rule","string","important","function","style-attr","clike","class-name","keyword","boolean","operator","javascript","template-string","interpolation","interpolation-punctuation","js","csharp","generic-method","preprocessor","directive","markdown","blockquote","list","url-reference","variable","bold","italic","sql","vb","ablKeyWords","abl","clsReg","lineNumbersWrapper","linesNum","counterReset","partNum","customisations_pipe_1","_customisations","_customisationsCC","kineticAllFlag","filterCustomisationPipe","FilterCustomisationPipe","uiCustomizations","cloudComplexityType","cloudComplexityDescription","checkKineticFlag","customisations","setCustomisationFilter","filterCustomisation","customisation","kineticAll","kineticAvailable","kinetic","kineticCount","countKinetic","customizationSourceCode","KeepCheckBoxEnabled","showKineticCompatible","formName","toLocaleLowerCase","endsWith","kineticCompatible","showKineticComplexity","kineticComplexity","KineticComplexity","NotSet","showCustomEventsUnconvertible","customEvents","customEventsConvertible","showCustomRowRulesUnconvertible","customRowRules","customRowRulesConvertible","showCustomLayoutUnconvertible","customLayout","customLayoutConvertible","showCustomCode","customCode","KineticCompatibility","CloudComplexityType","customizationKey","kineticUXs_pipe_1","_kineticUXs","isFileSystemEnabled","FilterKineticPipe","keepAllEnabled","kineticUXs","isKineticFileSystemEnabled","kineticUxDetails","disableKeepAllCheckbox","kineticCustoms","kineticCustomization","showFileName","getKineticUxType","KineticUXType","functions_pipe_1","_functions","filterFunctionsPipe","FilterFunctionsPipe","functions","funs","setFunctionsFilter","groupReferencesArray","filterFunctions","func","functionFileAsset","filterResult","libraryID","functionID","searchResult","filteredList","libraryReference","lib","referenceID","libRef","processCalls_pipe_1","_processCalls","filterProcessCallsPipe","FilterProcessCallsPipe","processCalls","setProcessCallsFilter","filterProcessCalls","pc","productID","assemblyReferences","assembly","assemblyName","processKey","bpms_pipe_1","bpms_modaldialog_2","_methodDirectives","toggleFlagPagination","filterBPMPipe","FilterBPMPipe","methodDirectives","bpms","setBPMFilter","filterBPM","sourceFiles","openWizardDialog","wizardDialogRef","disableClose","bpmsDialogInput","bpmsReportType","BPMsReportType","BPMs","reportBPMsRef","actionText","condition","conditionText","bpmsList","bpmsDetails","BPMsDataDirective","BPMsUpdatableBAQs","groupFieldProcess","methodFieldProcess","customMethod_1","businessObject_1","incompatibilities","_changeLogs","_changeLogsAll","changeLogsABLCode","setChangeLogfilter","filterChangeLog","toggleDetails","cl","moreDetails","sortItems","sortby","alertProgram","ChangeLogsDialogInput","dialogChangeLogsRef","bankInterfaces_pipe_1","_bankInterfaces","filterBankInterfacePipe","FilterBankInterfacePipe","electronicBankInterfaces","bankInterfaces","setBankInterfaceFilter","filterBankInterface","BankInerfaceDialogInput","dialogBankInterfaceRef","bi","dataDirectives_pipe_1","_dataDirectives","filterDataDirectivePipe","FilterDataDirectivePipe","finalBPMsDDList","dataDirectives","setDataDirectiveFilter","filterDataDirective","BPMsDialogInput","dialogBPMsDDRef","dd","sqlViews_pipe_1","sql_modaldialog_2","_sqlViews","filterSqlViewPipe","FilterSqlViewPipe","sqlViews","setSqlViewFilter","filterSqlView","definition","sqlViewsDialogInput","sqlViewsDialogRef","sqlStoredProcedures_pipe_1","_sqlStoredProcedures","filterSqlStoredProcedurePipe","FilterSqlStoredProcedurePipe","sqlStoredProcedures","setSqlStoredProcedureFilter","filterSqlStoredProcedure","sqlStoredProcedure","SqlSprocDialogInput","StoredProcedure","sqlSprocDialogRef","ssp","customReports_pipe_1","_reports","fileAssetPath","filterCustomReportPipe","FilterCustomReportPipe","setParentRptCheckbox","setParentRvwCheckbox","childReportRptID","childReviewRptID","countReportStyles","customReports","customReports_1","subreport","setCustomReportFilter","filterCustomReport","stylesCount","countCloudWarningReport","countReports","reportFileAssets","setParentReportCheckbox","setParentReviewCheckbox","cr","reportDescription","analysis_report_interface_1","baqReports_pipe_1","filterBaqReportPipe","FilterBaqReportPipe","AnalyserReportTab","Custom","AnalyserReportSection","Report","AnalyserReportDocAction","objReport","countData","filterBaq","baqReports","setBaqReportFilter","filterBaqReport","updateCustomReport","customReport","docAction","updateCustomReports","externalReports_pipe_1","_externalReports","filterExternalReportPipe","FilterExternalReportPipe","finalExternalReportList","externalReports","setExternalReportFilter","filterExternalReport","dataItem","ExternalReportDialogInput","dialogExternalReportRef","er","externalReportList","externalReportDetails","ExternalReportsFilterColumnName","idTypeProcess","reportTypeFieldProcess","reportType","menus_pipe_1","_menus","filterMenuPipe","FilterMenuPipe","selectedMenusCount","selectedMenus","menus","setMenuFilter","filterMenu","dialogMenusRef","_udforms","selectedUdTablesCount","userDefinedForms","udForms","setUDFormsFilter","udTablesDialogInput","udTablesdialogRef","_sdk","finalFilterList","sdkModifications","sdk","setSDKFilter","FilterInput","FilterDialogRef","filterList","SdkFilterColumnName","ClassName","ClassType","classNameFieldProcess","classTypeFieldProcess","field","classType","_customTables","customTables","customTbls","setcustomTblsFilter","dashboards_pipe_1","_dashboards","filterDashboardPipe","FilterDashboardPipe","dashboards","setDashboardFilter","filterDashboard","dashboard","definitionID","updatableBAQ_pipe_1","baqs_modaldialog_2","_updatableBAQs","filterUpdatableBAQPipe","FilterUpdatableBAQ","updatableBAQs","setUpdatableBAQFilter","filterUpdatableBAQ","updatableBAQ","UpdatableBAQs","BAQsRef","ubaq","baqMethodDirectives_pipe_1","_baqMethodDirectives","filterBAQMethodDirectivePipe","FilterBAQMethodDirectivePipe","baqMethodDirectives","setBAQMethodDirectiveFilter","filterBAQMethodDirective","baqMethodDirective","BPMsDdDialogInput","bpmsReprtType","baqmd","nonUpdatableBAQs_pipe_1","_nonUpdatableBAQs","filterNonUpdatableBAQPipe","FilterNonUpdatableBAQPipe","nonUpdatableBAQs","setNonUpdatableBAQFilter","filterNonUpdatableBAQ","nonUpdatableBAQ","nonUpdatableBAQsDialogInput","BAQs","dialogNonBAQRef","nubaq","customTriggers_pipe_1","_customTriggers","filteCustomTriggersPipe","FilterTriggersPipe","customTriggers","setCustomTriggerFilter","filterCustomTrigger","customTriggerDialogInput","customTriggersDialogRef","strg","sqlFunctions_pipe_1","_sqlFunctions","filterSqlFunctionsPipe","FiltersqlFunctionsPipe","sqlFunctions","setsqlFunctionsFilter","filterSqlFunctions","sqlFunc","sqlFunctionDialogRef","_userDefinedTables","userDefinedTables","setUserDefinedTblsFilter","customTable","userDefinedTablesDialogInput","customTabledialogRef","_isCloud","_isMultiTenant","_sas","isMultiTenant","collation","tableCollation","getTenancyType","hideTenancyType","connectivity","_licenses","companiesList","tempCompaniesList","assignedCompanies","colCount","license","getLicensedIcon","enabled","getLicensedIconColour","getInUseIcon","inUse","detectedUse","showInUseTooltip","getInUseIconColour","getIconColour","hideInUse","_preUpgrade","preUpgrade","_healthChecks","healthChecks","_conversions","conversionsRunLast12Months","_nonupgradable","nonupgradable","_thirdPartyModules","thirdPartyModules","conversionFormAction","ConversionFormAction","submitting","conversionData","product_service_1","timezone_1","mock_timezones_1","productService","myDatePickerOptions","doesCustomerSpecificFileExist","loadingCSF","csfUOMAvailable","csfScriptAvailable","proceedSubmit","isNotificationEmailsValid","initFromProduct","initFromVersion","initToProduct","initToVersion","regionDisable","siteName","live","conversionProcess","conversionType","deployment","goLiveDate","enableDbPacker","enableCloudView","enableSendToSupport","dbBackupLocation","passesLimit","advanced","toolingVersion","vmSize","diskSize","historicalTransactionDays","UOMTemplate","shutdownAfter","deleteAfter","projectCode","plannedDate","plannedTimezone","goLivePass","assignedUser","projectType","csfs","sendEmail","databaseVerification","owningCompanyID","owningCompanyName","uom","Xml","Spreadsheet","productNames","fromVersions","toVersions","gaVersions","toolingVersions","displayUOMFiles","uomFiles","verifyingUOMFiles","regionChanged","initRegionValue","currentRegionValue","remainingPasses","txtremainingPasses","hideDatabaseVerification","currentMappingType","selectedMappingType","previouslySelectedMappingType","editUOMMapping","confirmMapping","validatingUOMFile","uomFileValid","uomFileValidationMessage","timezones","TIMEZONES","planTimeZone","Timezone","planDate","planTime","zoneRegions","toVersionsFiltered","companyDisable","owningCompanyDisable","goLiveUsers","getProducts","Edit","Create","goLivePassSelected","setTotalPassesRan","companyDetails","CompanyID","products","getPassesLimit","getProductFromReport","setFromVersions","setToVersions","setProductName","initConversionInfo","currentProduct","dateFieldChanged","editConversionOnLoad","sessionStorage","toolbarTitle","setDatabaseVerificationFlag","onFileChange","reader","FileReader","file_1","readAsDataURL","onload","fileType","setZoneRegions","onRegionChange","initRegion","currentRegion","tempInitRegion","tempCurrentRegion","warningDialogRef","customerSpecificInfo","submitFlag","fieldChanged","openAdvancedConfiguration","vmSizes","diskSizes","sourceVersion","sourceVersionParts","sourceVersionMajor","sourceVersionMinor","versionParts","major","lastModifiedDate","getLocalDateString","downloadUOMFile","selectMappingType","uomMappingChangeConfirmationDialogRef","toggleUOMMapping","versionFound","gaVersionList","toV","gaV","compareProductVersions","DatabaseVerification","siteZone","validateEmails","clearPlannedDate","plannedDateTime","isNullOrEmpty","fileInputSpreadsheet","fileInputXml","ValidateNotificationEmails","validateTestPass","conversionPasses_1","validPass","conversionPasses_2","conv","currentConversionInfo","submitConfiguration","emailValid","re","emails","mail","productName","selectedTime","selectedZone","gmtAdjustment","selectedPlannedDate","savedPlannedDate","h","timezone_2","includes","savedTimezone","vtime","isVantage","configDialogRef","conversionPasses","conversionPasses_3","owningCompanyFieldChanged","initConversion","initalConversion","currentConversion","splitProductVersion","maj","rev","revision","fv","tv","NgForm","ProductService","parentElement","ok","childNodes","productsAPI","getProduct","clickOutsideWindow","timeZoneId","isDirtyAdvanced","conversions_pipe_1","remote_desktop_service_1","interfaces_2","conversionPassTaskDialog","incidentDialog","timeToLiveDialog","conversionStatusDialog","addIPAddressToNSGDialog","remoteDesktopService","storageAccountService","displayGantt","resubmitting","logsContainer","filterLogByType","FilterConvesionPassLogByType","loadAllSelected","logsLoader","loadMoreLogsToken","logsHasMoreResult","errorsCount","warningsCount","informationCount","incidentsCount","isProduction","uomFileExists","enableRDP","enableLongStackTrace","resubmitSubcription","listenForConnection","toggleTab","updateTaskProgress","ganttProject","previousPassDetails","foundPreviousPassDetals","ganttPreviousSuccessTask","tempTask","taskIndex","findIndex","successTasks","setSubscription","checkUOMFileExists","getConversionPassRDPToken","ganttOptions","goLive","getVMStatus","getReconciliationReports","getReconciliationReportsCount","Information","Incident","taskId","loadMoreLogs","filterLogByTypeSelected","loadAllLogs","subscribed","groupName","updateSubscription","connectionId","toggleContainer","filterLogs","pagedLogResult","rcToken","getLogsTypeCount","getTypeIcon","getTypeIconClass","getLoadAllCount","passId","refreshLogs","downloadRDP","validMultiDownload","getConversionPassRDPDownloadUrl","newWindow","showPassword","timeout","rdp","rdpPassword","showProductPassword","productUserPassword","openEditTasksDialog","parentTasks","conversionPassTaskDialogRef","deleteTasks","resubmitPass","conversionPassUri","openIncidentDialog","incidentDialogRef","openChangeStatusDialog","conversionStatusDialogRef","conversionPassStatus","openTimeToLiveDialog","timeToLiveDialogRef","ids","copyToClipboard","copied","shutdownOn","escalateToDevelopment","openConversionPassInStaging","openConfiguration","addIPToNSG","addIPAddressToNSGDialogRef","reconciliationReports","reconciliationReportsCount","reconciliationReportsChanged","filters","showUOMTemplate","downloadUOM","showToolingVersion","lbl","uomMapping","RemoteDesktopService","LogEntry","ConversionPassTask","FilterConversionPassLog","l","FilterConversionPassByStatus","cp","pure","remoteDesktopAPI","multiDownload","getCloudViewInstanceRDPDownloadUrl","cloudviewInstanceId","getCloudViewInstanceRDPToken","createAnother","createIncident","form","ipAddressCtrl","controls","setErrors","invalidFormat","date_pipe_1","date_service_1","util_1","dateService","conversionPassesLoader","timeSpan","TimeSpanPipe","stoppedCount","inProgressCount","completedCount","archiveCount","scheduleVisible","isUndefined","setSelectedTab","siteFilter","unfilterSiteConversions","getConversionPassesCount","statusFilter","InProgress","isFirstLoad","filterSiteConversions","isAdmin","updateIndex","getConversionPassesCompletedOrArchived","Stopped","Completed","Archived","filterConversionPasses","openSchedule","previousPassesPage","nextPassesPage","nextCompletedPassesPage","previousCompletedPassesPage","sorting","refreshPasses","onRefresh","onUpdateConversionsCount","selectedStatus","selectedDocState","selectedSchedule","DateService","diffHours","MS_IN_HOUR","getTimeSpan","inspect","seen","stylize","stylizeNoColor","colors","isBoolean","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styleType","arrayToHash","hash","recurseTimes","isFunction","isString","primitive","formatPrimitive","visibleKeys","getOwnPropertyNames","isError","formatError","isRegExp","isDate","base","braces","toUTCString","formatArray","formatProperty","reduceToSingleString","simple","isNumber","isNull","line","numLinesEst","reduce","cur","arg","isNullOrUndefined","isSymbol","objectToString","isPrimitive","pad","timestamp","formatRegExp","format","objects","deprecate","deprecated","warned","throwDeprecation","traceDeprecation","trace","noDeprecation","debugEnviron","debugs","debuglog","ENV","NODE_DEBUG","pid","underline","inverse","white","grey","black","blue","cyan","green","magenta","red","yellow","special","null","regexp","isBuffer","inherits","readUInt8","ctor","superCtor","super_","writable","TempCtor","datePipe","configurationContainer","passesContainer","editConfiguration","getConversionStatus","getConversionSubtitle","viewConversionPass","toISOString","getTimeSpanFromNow","modifiedDate","goLiveDateConversion","convertedDate","back","history","DatePipe","loaded","schedule","scheduleLoader","completedFilter","pageSizes","viewValue","sortColName","loadSchedule","showAllSchedule","getSchedule","filterSchedule","previousSchedulePage","nextSchedulePage","refreshSchedule","filterScheduleDetails","viewConversionConfiguration","onMenuRefresh","onPageSizeChange","getDSTVal","jan","jul","getTimezoneOffset","getDSTTime","dstTime","rhours","rminutes","setHours","plannedDateConversion","selectedColumnName","columnCount","columnDetails","unfilterSearchConversion","remaining","nextPassNumber","editDialog","refresh","openInNewTab","onPreviousPage","onNextPage","onSorting","onCompletedNextPage","onCompletedPreviousPage","onCountConversionsSummaries","initialLoad","filterForShowAll","docStateFilter","filterConversionDetails","previousPage","nextPage","initComponentWhenShowAll","showAllConversions","isSiteFilterActive","tempSortAsc","setSortingIcons","isResubmitting","isDeleting","docStates","Undefined","isEpicorEmployeeAndConversionMonitor","ConversionMonitor","resubmit","archive","unarchive","hostDialog","instanceDialog","commandDialog","cloudviewHubService","hostsDisplay","appHostsLoader","appHosts","appHostsCount","dbHostsLoader","dbHosts","dbHostsCount","unallocatedInstancesLoader","unallocatedInstances","unallocatedAppInstances","unallocatedDbInstances","unallocatedIntancesCount","logsPageIndex","logsContinuationTokens","logsCount","logFilter","hostinstancesLoaded","settingsMenuOpen","commandsMenuOpen","HostAction","InstanceAction","hostRegion","creatingHost","instanceDetailShow","instancesLoader","sortRefresh","instanceStates","ViewMode","instancesFilter","bagName","onDrop","CloudViewDashboardView","CloudViewAdmin","snapshot","queryParamMap","sentViewMode","selectedViewMode","Dashboard","Instances","hosts","appInstance","APP","dbInstance","DB","showAllInstances","filterInstances","SetIcons","setCloudView","deletionDate","clearContinuationTokens","getHostLogs","RefreshLogs","getHostLogsCount","previousLogsPage","nextLogsPage","allInstances","hostInstances","openHostDialog","updateSubScription","toggleSettings","hostType","cloudViewHostDialogRef","created","openInstanceDialog","cloudViewInstanceDialogRef","openCommandDialog","cloudViewCommandDialogRef","viewInstance","setViewMode","viewMode","logUpdater","Hosts","updateInstanceTTL","updateTTL","onHostDelete","updateAppServer","updateDbServer","refreshDashboard","refreshHosts","runCommand","toggleCommandMenu","dataset","containerId","viewProviders","cloudViewService","cpuCores","memoryGiB","localSSDGiB","creating","vmSizeOverview","getProductVersions","productVersions","uniqueVersions","onVMSizeChange","vm","buttonText","instanceLimitExceeded","dbPath","vanilla","siteExists","configExists","validateDBPath","executing","Execute","hostHeartbeatSubscription","instancesViewModel","slots","getContainerDisplayName","domSantizer","iframeLoader","stagingSuffix","getAccessToken","sentText","paramMap","load","suffix","srcURL","srcValue","bypassSecurityTrustResourceUrl","showAccessToken","refreshAccessToken","restartCloudViewWorker","alertDialogRef","downloadHelp","stats","cpu","utilisation","speed","memory","available","commited","disk","usedSpace","freeSpace","capacity","CloudViewConfigAction","submitButtonText","getConfig","getCPUInfo","getMemoryInfo","getDiskInfo","utilization","performance","disks","precision","multiplier","zonesLoader","showZoneDetail","filterZone","reg","edit","viewZone","subscriptionId","defaultStorage","selectedRegions","selectRegion","isSelected","selectedRegion","new_features_service_1","newFeaturesService","isNewRelease","isLoadingRel","isLoadingTBR","todayDate","pagerToBeReleased","getReleases","getToBeReleased","openReleasesEditor","NewFeaturesEditorDialogRef","snackBarMessage","NotificationDialogRef","updatePosition","releases","getPagerForReleases","toBeReleasedDocs","filterToBeReleasedDocs","getPagerForToBeReleased","getFeaturesFromDescription","deleteRelease","releaseId","pagedItemsToBeReleased","setPageForToBeReleased","releaseDate","NewFeaturesService","releaseDescription","releaseToEdit","areFieldsValid","updateRelease","registerRelease","newRelease","createdDate","releaseUpdated","getColorForMessage","configurations_service_1","configServices","sectionSiteHide","sectionConversionHide","sectionUserHide","disableCAM","getLatestJobDetails","toggleSection","section","UpdateLatestChildSites","executePartnerChildSync","UpdateCAMDetails","camUpdateDetails","jobs","disableCAMUpdate","ConfigurationService","conversion_assesment_service_1","conversionAssesmentService","sitesPageIndex","tokensSites","sitesHasMoreResults","isLoadingScreen","isLoadingConfig","noPasses","noConfig","showUOM","sitesLoader","currentSiteConfig","totalConversions","totalLiveConversions","getElapsedTime","msToTime","fixNumberTwoDecimals","num","toFixed","filterConversions","beforeloadingPasses","effectiveTime","hasErrors","numErrors","goLiveCount","noGoLiveCount","getSiteLatestConfig","PassNum","StartDate","CompletedDate","searchTimeoutSites","previousSite","nextSite","convertTimeZone","timeZone","FormatDeployment","IsUOMValid","ConversionAssesmentService","selectedToDate","selectedFromDate","downloadFile","arrHeader","csvData","ConvertToCSV","blob","Blob","dwldLink","URL","createObjectURL","isSafariBrowser","visibility","objArray","headerList","newHeaders","strRep","header","newData","golivestatus","teststatus","getGoLive","token_1","exportAsCsv","durationDate","durationStartDate","durationEndDate","fyear","fmonth","fday","tyear","tmonth","tday","filterConversion","user_provision_pipe_1","reports_pipe_1","customTables_pipe_1","licenses_pipe_1","number_pipe_1","reportorderby_pipe_1","reportgroupby_pipe_1","reportfilter_pipe_1","baqs_search_pipe_1","menus_search_pipe_1","udforms_search_pipe_1","sdk_search_pipe_1","userDefinedTables_search_pipe_1","customTriggers_search_pipe_1","bankInterfaces_search_pipe_1","externalReports_search_pipe_1","changelogs_search_pipe_1","apmObjects_search_pipe_1","FilterProvisionSitesPipe","FilterReportsPipe","FilterCustomTablePipe","FilterLicensesPipe","RoundNumberPipe","ReportOrderByPipe","ReportGroupByPipe","ReportFilterPipe","BAQsSearchPipe","MenusSearchPipe","UDFormSearchPipe","SdkSearchPipe","BankInterfaceSearchPipe","ExternalReportSearchPipe","ChangeLogsSearchPipe","APMObjectSearchPipe","UserDefinedTablesSearchPipe","CustomTriggerSearchPipe","orgName","licenses","records","groupedObj","searchField","splitIDs","navigateTo","innerHeight","overflowY","jump","resize","userRoles","assignedUserCtrl","FormControl","filteredUsers","valueChanges","startWith","onFieldChange","ts","seconds","diffSeconds","reconciliation_reports_component_1","reconciliation_reports_heatmap_bar_component_1","ReconciliationReportsComponent","ReconciliationReportsHeatmapBarComponent","heatmapBarOptions","totalCount","categories","matchingCount","reviewCount","sumDifference","countDifference","getCategories","getCompanies","toggleDifferences","isMatching","getType","iconToolTip","hasError","sourceReportError","targetreportError","sourceHasError","targetHasError","getHTMLTablefromJson","reportParam","table","getParameterValue","getJsonFromString","jsonString","isJsonStringValid","getKeys","getErrorMessage","Message","targetReportError","getErrorDescription","change","openfaqDialog","faqDialogRef","openinstructionsDialog","instructionsDialogRef","reconciliation_reports_heatmap_bar_service_1","heatmapBarService","createHeatmap","generateHeatmapZones","ReconciliationReportsHeatmapBarService","itemPercent","flex","calculateFlex","fractionDigits"],"mappings":"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AKE,UAAUje,EAAEoO,GAE7ByY,GAAOe,GAASf,EAAOe,OACvBf,EAAOe,GAAO3rC,KAAKmyB,KAEdpmC,OAAOqZ,KAAKwlC,GAAQpkC,IAAI,SAACmlC,GAC5B,MAAOf,GAAOe,MAVX5I,YAAWn2C,GADvBT,EAAAy/C,MAAM1sC,KAAM,aACA6jC,eAAAl3C,GAAAk3C,exB8/RJ,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CAEH,SAASn3C,EAAQC,EAASC,GAE/B,YACA,IAAIc,GAAcC,MAAQA,KAAKD,YAAe,SAAUE,EAAYC,EAAQC,EAAKC,GAC7E,GAA2HC,GAAvHC,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIJ,EAAkB,OAATE,EAAgBA,EAAOlB,OAAOwB,yBAAyBR,EAAQC,GAAOC,CACrH,IAAuB,gBAAZO,UAAoD,kBAArBA,SAAQC,SAAyBH,EAAIE,QAAQC,SAASX,EAAYC,EAAQC,EAAKC,OACpH,KAAK,GAAIS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","file":"app.1f1fbdaeb38cf0b6089d.js","sourcesContent":["webpackJsonp([0],[\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar platform_browser_dynamic_1 = __webpack_require__(1);\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar app_module_1 = __webpack_require__(46);\r\n\tif (true) {\r\n\t core_1.enableProdMode();\r\n\t}\r\n\tplatform_browser_dynamic_1.platformBrowserDynamic().bootstrapModule(app_module_1.AppModule)\r\n\t .catch(function (err) { return console.log(err); });\r\n\n\n/***/ },\n/* 1 */,\n/* 2 */,\n/* 3 */,\n/* 4 */,\n/* 5 */,\n/* 6 */,\n/* 7 */,\n/* 8 */,\n/* 9 */,\n/* 10 */,\n/* 11 */,\n/* 12 */,\n/* 13 */,\n/* 14 */,\n/* 15 */,\n/* 16 */,\n/* 17 */,\n/* 18 */,\n/* 19 */,\n/* 20 */,\n/* 21 */,\n/* 22 */,\n/* 23 */,\n/* 24 */,\n/* 25 */,\n/* 26 */,\n/* 27 */,\n/* 28 */,\n/* 29 */,\n/* 30 */,\n/* 31 */,\n/* 32 */,\n/* 33 */,\n/* 34 */,\n/* 35 */,\n/* 36 */,\n/* 37 */,\n/* 38 */,\n/* 39 */,\n/* 40 */,\n/* 41 */,\n/* 42 */,\n/* 43 */,\n/* 44 */,\n/* 45 */,\n/* 46 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar common_1 = __webpack_require__(44);\r\n\tvar platform_browser_1 = __webpack_require__(45);\r\n\tvar animations_1 = __webpack_require__(47);\r\n\tvar forms_1 = __webpack_require__(50);\r\n\tvar http_1 = __webpack_require__(57);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar ng2_charts_1 = __webpack_require__(105);\r\n\tvar ng2_dragula_1 = __webpack_require__(108);\r\n\tvar gantt_1 = __webpack_require__(124);\r\n\tvar angular2_jwt_1 = __webpack_require__(278);\r\n\tvar mydatepicker_1 = __webpack_require__(282);\r\n\tvar app_component_1 = __webpack_require__(283);\r\n\tvar app_routing_1 = __webpack_require__(326);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar auth_guard_service_1 = __webpack_require__(327);\r\n\tvar app_pipes_1 = __webpack_require__(661);\r\n\tvar dom_events_1 = __webpack_require__(329);\r\n\tvar deactivate_guard_service_1 = __webpack_require__(632);\r\n\tvar conversion_form_component_1 = __webpack_require__(554);\r\n\tvar code_dialog_component_1 = __webpack_require__(454);\r\n\tvar application_dialog_1 = __webpack_require__(375);\r\n\tvar applicationdoc_dialog_1 = __webpack_require__(379);\r\n\tvar upgradeguide_dialog_1 = __webpack_require__(382);\r\n\tvar bpms_component_1 = __webpack_require__(474);\r\n\tvar help_dialog_component_1 = __webpack_require__(680);\r\n\tvar conversion_configuration_dialog_1 = __webpack_require__(556);\r\n\tvar conversion_pass_tasks_dialog_1 = __webpack_require__(569);\r\n\tvar incident_dialog_1 = __webpack_require__(571);\r\n\tvar time_to_live_dialog_1 = __webpack_require__(573);\r\n\tvar conversion_status_dialog_1 = __webpack_require__(575);\r\n\tvar add_ip_address_to_nsg_dialog_1 = __webpack_require__(577);\r\n\tvar cloudview_host_dialog_1 = __webpack_require__(605);\r\n\tvar cloudview_instance_dialog_1 = __webpack_require__(607);\r\n\tvar cloudview_command_dialog_1 = __webpack_require__(609);\r\n\tvar conversion_schedule_edit_dialog_1 = __webpack_require__(683);\r\n\tvar site_file_shares_component_1 = __webpack_require__(397);\r\n\tvar new_features_editor_dialog_1 = __webpack_require__(642);\r\n\tvar notification_dialog_1 = __webpack_require__(646);\r\n\tvar ng2_toastr_1 = __webpack_require__(306);\r\n\tvar toasts_manager_options_1 = __webpack_require__(685);\r\n\tvar menus_dialog_1 = __webpack_require__(444);\r\n\tvar udforms_modaldialog_1 = __webpack_require__(445);\r\n\tvar sdk_modaldialog_1 = __webpack_require__(512);\r\n\tvar baqs_modaldialog_1 = __webpack_require__(443);\r\n\tvar bpms_modaldialog_1 = __webpack_require__(476);\r\n\tvar reports_component_service_1 = __webpack_require__(441);\r\n\tvar conversion_form_component_2 = __webpack_require__(554);\r\n\tvar conversion_form_component_3 = __webpack_require__(554);\r\n\tvar conversion_form_component_4 = __webpack_require__(554);\r\n\tvar cloudview_instance_component_1 = __webpack_require__(620);\r\n\tvar bankInterfaces_modaldialog_1 = __webpack_require__(446);\r\n\tvar externalReports_modaldialog_1 = __webpack_require__(504);\r\n\tvar changelogs_modaldialog_1 = __webpack_require__(447);\r\n\tvar apmObjects_modaldialog_1 = __webpack_require__(448);\r\n\tvar user_edit_dialog_1 = __webpack_require__(337);\r\n\tvar userDefinedTables_modaldialog_1 = __webpack_require__(535);\r\n\tvar customTriggers_modaldialog_1 = __webpack_require__(450);\r\n\tvar settings_page_component_1 = __webpack_require__(686);\r\n\tvar reconciliation_reports_1 = __webpack_require__(687);\r\n\tvar faq_dialog_1 = __webpack_require__(690);\r\n\tvar instructions_dialog_1 = __webpack_require__(692);\r\n\tvar cloudviewdoc_dialog_1 = __webpack_require__(611);\r\n\tvar AppModule = (function () {\r\n\t function AppModule() {\r\n\t }\r\n\t AppModule = __decorate([\r\n\t core_1.NgModule({\r\n\t imports: [\r\n\t platform_browser_1.BrowserModule,\r\n\t animations_1.BrowserAnimationsModule,\r\n\t forms_1.FormsModule,\r\n\t forms_1.ReactiveFormsModule,\r\n\t http_1.HttpModule,\r\n\t common_1.CommonModule,\r\n\t app_routing_1.routing,\r\n\t material_1.MaterialModule,\r\n\t ng2_charts_1.ChartsModule,\r\n\t gantt_1.GanttModule,\r\n\t mydatepicker_1.MyDatePickerModule,\r\n\t ng2_dragula_1.DragulaModule,\r\n\t ng2_toastr_1.ToastModule.forRoot(),\r\n\t material_1.MdNativeDateModule,\r\n\t reconciliation_reports_1.ReconciliationReportsModule\r\n\t ],\r\n\t declarations: [\r\n\t app_component_1.AppComponent,\r\n\t app_routing_1.routedComponents,\r\n\t code_dialog_component_1.CodeDialog,\r\n\t application_dialog_1.ApplicationDialog,\r\n\t applicationdoc_dialog_1.ApplicationDocDialog,\r\n\t upgradeguide_dialog_1.UpgradeGuideDialog,\r\n\t cloudviewdoc_dialog_1.CloudViewDocDialog,\r\n\t bpms_component_1.WizardDialog,\r\n\t help_dialog_component_1.HelpDialog,\r\n\t conversion_configuration_dialog_1.ConversionConfigurationDialog,\r\n\t conversion_pass_tasks_dialog_1.ConversionPassTasksDialog,\r\n\t incident_dialog_1.IncidentDialog,\r\n\t time_to_live_dialog_1.TimeToLiveDialog,\r\n\t add_ip_address_to_nsg_dialog_1.AddIPAddressToNSGDialog,\r\n\t conversion_status_dialog_1.ConversionStatusDialog,\r\n\t cloudview_host_dialog_1.CloudViewHostDialog,\r\n\t cloudview_instance_dialog_1.CloudViewInstanceDialog,\r\n\t cloudview_command_dialog_1.CloudViewCommandDialog,\r\n\t conversion_form_component_1.ConversionFormComponent,\r\n\t app_pipes_1.AppPipes,\r\n\t menus_dialog_1.MenusReportDialog,\r\n\t udforms_modaldialog_1.UDTablesReportDialog,\r\n\t sdk_modaldialog_1.SdkReportDialog,\r\n\t baqs_modaldialog_1.BAQsReportDialog,\r\n\t bpms_modaldialog_1.BPMsReportDialog,\r\n\t bankInterfaces_modaldialog_1.BankInterfaceReportDialog,\r\n\t externalReports_modaldialog_1.ExternalReportDialog,\r\n\t changelogs_modaldialog_1.ChangeLogsReportDialog,\r\n\t apmObjects_modaldialog_1.APMObjectReportDialog,\r\n\t reports_component_service_1.ErrorMessageDialog,\r\n\t conversion_form_component_2.AlertMessageDialog,\r\n\t conversion_form_component_3.ConfigurationMessageDialog,\r\n\t conversion_form_component_4.UomMappingChangeConfirmationDialog,\r\n\t cloudview_instance_component_1.RestartServiceDialog,\r\n\t conversion_schedule_edit_dialog_1.ConversionScheduleEditDialog,\r\n\t user_edit_dialog_1.UserEditDialog,\r\n\t settings_page_component_1.SettingsPageComponent,\r\n\t settings_page_component_1.SettingsSectionComponent,\r\n\t settings_page_component_1.SettingsBoxComponent,\r\n\t site_file_shares_component_1.SiteFileShareAddDialog,\r\n\t faq_dialog_1.faqdialog,\r\n\t instructions_dialog_1.instructionsdialog,\r\n\t new_features_editor_dialog_1.NewFeaturesEditorDialog,\r\n\t notification_dialog_1.NotificationDialog,\r\n\t userDefinedTables_modaldialog_1.UserDefinedTablesReportDialog,\r\n\t customTriggers_modaldialog_1.CustomTriggerDialog\r\n\t ],\r\n\t providers: [\r\n\t angular2_jwt_1.AuthHttp,\r\n\t angular2_jwt_1.provideAuth({\r\n\t headerName: 'Authorization',\r\n\t headerPrefix: 'Bearer',\r\n\t tokenName: 'access_token',\r\n\t tokenGetter: (function () { return localStorage.getItem('access_token'); }),\r\n\t globalHeaders: [{ 'Content-Type': 'application/json' }],\r\n\t noJwtError: true\r\n\t }),\r\n\t auth_service_1.AuthService,\r\n\t auth_guard_service_1.AuthGuard,\r\n\t { provide: common_1.LocationStrategy, useClass: common_1.HashLocationStrategy },\r\n\t dom_events_1.DOMEvents,\r\n\t { provide: ng2_toastr_1.ToastOptions, useClass: toasts_manager_options_1.ToastsManagerOptions },\r\n\t deactivate_guard_service_1.DeactivateGuardService\r\n\t ],\r\n\t entryComponents: [\r\n\t code_dialog_component_1.CodeDialog,\r\n\t application_dialog_1.ApplicationDialog,\r\n\t applicationdoc_dialog_1.ApplicationDocDialog,\r\n\t upgradeguide_dialog_1.UpgradeGuideDialog,\r\n\t cloudviewdoc_dialog_1.CloudViewDocDialog,\r\n\t bpms_component_1.WizardDialog,\r\n\t help_dialog_component_1.HelpDialog,\r\n\t conversion_configuration_dialog_1.ConversionConfigurationDialog,\r\n\t conversion_pass_tasks_dialog_1.ConversionPassTasksDialog,\r\n\t incident_dialog_1.IncidentDialog,\r\n\t time_to_live_dialog_1.TimeToLiveDialog,\r\n\t add_ip_address_to_nsg_dialog_1.AddIPAddressToNSGDialog,\r\n\t conversion_status_dialog_1.ConversionStatusDialog,\r\n\t cloudview_host_dialog_1.CloudViewHostDialog,\r\n\t cloudview_instance_dialog_1.CloudViewInstanceDialog,\r\n\t cloudview_command_dialog_1.CloudViewCommandDialog,\r\n\t menus_dialog_1.MenusReportDialog,\r\n\t udforms_modaldialog_1.UDTablesReportDialog,\r\n\t sdk_modaldialog_1.SdkReportDialog,\r\n\t baqs_modaldialog_1.BAQsReportDialog,\r\n\t cloudview_instance_component_1.RestartServiceDialog,\r\n\t bpms_modaldialog_1.BPMsReportDialog,\r\n\t bankInterfaces_modaldialog_1.BankInterfaceReportDialog,\r\n\t externalReports_modaldialog_1.ExternalReportDialog,\r\n\t changelogs_modaldialog_1.ChangeLogsReportDialog,\r\n\t apmObjects_modaldialog_1.APMObjectReportDialog,\r\n\t reports_component_service_1.ErrorMessageDialog,\r\n\t conversion_form_component_2.AlertMessageDialog,\r\n\t conversion_form_component_3.ConfigurationMessageDialog,\r\n\t conversion_form_component_4.UomMappingChangeConfirmationDialog,\r\n\t conversion_schedule_edit_dialog_1.ConversionScheduleEditDialog,\r\n\t site_file_shares_component_1.SiteFileShareAddDialog,\r\n\t user_edit_dialog_1.UserEditDialog,\r\n\t faq_dialog_1.faqdialog,\r\n\t instructions_dialog_1.instructionsdialog,\r\n\t new_features_editor_dialog_1.NewFeaturesEditorDialog,\r\n\t notification_dialog_1.NotificationDialog,\r\n\t userDefinedTables_modaldialog_1.UserDefinedTablesReportDialog,\r\n\t customTriggers_modaldialog_1.CustomTriggerDialog\r\n\t ],\r\n\t bootstrap: [app_component_1.AppComponent]\r\n\t })\r\n\t ], AppModule);\r\n\t return AppModule;\r\n\t}());\r\n\texports.AppModule = AppModule;\r\n\n\n/***/ },\n/* 47 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * @license Angular v5.0.0\n\t * (c) 2010-2017 Google, Inc. https://angular.io/\n\t * License: MIT\n\t */\n\t(function (global, factory) {\n\t\t true ? factory(exports, __webpack_require__(3), __webpack_require__(45), __webpack_require__(48), __webpack_require__(49)) :\n\t\ttypeof define === 'function' && define.amd ? define('@angular/platform-browser/animations', ['exports', '@angular/core', '@angular/platform-browser', '@angular/animations', '@angular/animations/browser'], factory) :\n\t\t(factory((global.ng = global.ng || {}, global.ng.platformBrowser = global.ng.platformBrowser || {}, global.ng.platformBrowser.animations = {}),global.ng.core,global.ng.platformBrowser,global.ng.animations,global.ng.animations.browser));\n\t}(this, (function (exports,_angular_core,_angular_platformBrowser,_angular_animations,_angular_animations_browser) { 'use strict';\n\t\n\t/*! *****************************************************************************\r\n\tCopyright (c) Microsoft Corporation. All rights reserved.\r\n\tLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\n\tthis file except in compliance with the License. You may obtain a copy of the\r\n\tLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\t\r\n\tTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n\tKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\n\tWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\n\tMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\t\r\n\tSee the Apache Version 2.0 License for specific language governing permissions\r\n\tand limitations under the License.\r\n\t***************************************************************************** */\r\n\t/* global Reflect, Promise */\r\n\t\r\n\tvar extendStatics = Object.setPrototypeOf ||\r\n\t ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n\t function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\t\r\n\tfunction __extends(d, b) {\r\n\t extendStatics(d, b);\r\n\t function __() { this.constructor = d; }\r\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n\t}\n\t\n\t/**\n\t * @license Angular v5.0.0\n\t * (c) 2010-2017 Google, Inc. https://angular.io/\n\t * License: MIT\n\t */\n\t/**\n\t * @fileoverview added by tsickle\n\t * @suppress {checkTypes} checked by tsc\n\t */\n\t/**\n\t * @license\n\t * Copyright Google Inc. All Rights Reserved.\n\t *\n\t * Use of this source code is governed by an MIT-style license that can be\n\t * found in the LICENSE file at https://angular.io/license\n\t */\n\tvar BrowserAnimationBuilder = (function (_super) {\n\t __extends(BrowserAnimationBuilder, _super);\n\t function BrowserAnimationBuilder(rootRenderer, doc) {\n\t var _this = _super.call(this) || this;\n\t _this._nextAnimationId = 0;\n\t var /** @type {?} */ typeData = /** @type {?} */ ({\n\t id: '0',\n\t encapsulation: _angular_core.ViewEncapsulation.None,\n\t styles: [],\n\t data: { animation: [] }\n\t });\n\t _this._renderer = /** @type {?} */ (rootRenderer.createRenderer(doc.body, typeData));\n\t return _this;\n\t }\n\t /**\n\t * @param {?} animation\n\t * @return {?}\n\t */\n\t BrowserAnimationBuilder.prototype.build = /**\n\t * @param {?} animation\n\t * @return {?}\n\t */\n\t function (animation) {\n\t var /** @type {?} */ id = this._nextAnimationId.toString();\n\t this._nextAnimationId++;\n\t var /** @type {?} */ entry = Array.isArray(animation) ? _angular_animations.sequence(animation) : animation;\n\t issueAnimationCommand(this._renderer, null, id, 'register', [entry]);\n\t return new BrowserAnimationFactory(id, this._renderer);\n\t };\n\t BrowserAnimationBuilder.decorators = [\n\t { type: _angular_core.Injectable },\n\t ];\n\t /** @nocollapse */\n\t BrowserAnimationBuilder.ctorParameters = function () { return [\n\t { type: _angular_core.RendererFactory2, },\n\t { type: undefined, decorators: [{ type: _angular_core.Inject, args: [_angular_platformBrowser.DOCUMENT,] },] },\n\t ]; };\n\t return BrowserAnimationBuilder;\n\t}(_angular_animations.AnimationBuilder));\n\tvar BrowserAnimationFactory = (function (_super) {\n\t __extends(BrowserAnimationFactory, _super);\n\t function BrowserAnimationFactory(_id, _renderer) {\n\t var _this = _super.call(this) || this;\n\t _this._id = _id;\n\t _this._renderer = _renderer;\n\t return _this;\n\t }\n\t /**\n\t * @param {?} element\n\t * @param {?=} options\n\t * @return {?}\n\t */\n\t BrowserAnimationFactory.prototype.create = /**\n\t * @param {?} element\n\t * @param {?=} options\n\t * @return {?}\n\t */\n\t function (element, options) {\n\t return new RendererAnimationPlayer(this._id, element, options || {}, this._renderer);\n\t };\n\t return BrowserAnimationFactory;\n\t}(_angular_animations.AnimationFactory));\n\tvar RendererAnimationPlayer = (function () {\n\t function RendererAnimationPlayer(id, element, options, _renderer) {\n\t this.id = id;\n\t this.element = element;\n\t this._renderer = _renderer;\n\t this.parentPlayer = null;\n\t this._started = false;\n\t this.totalTime = 0;\n\t this._command('create', options);\n\t }\n\t /**\n\t * @param {?} eventName\n\t * @param {?} callback\n\t * @return {?}\n\t */\n\t RendererAnimationPlayer.prototype._listen = /**\n\t * @param {?} eventName\n\t * @param {?} callback\n\t * @return {?}\n\t */\n\t function (eventName, callback) {\n\t return this._renderer.listen(this.element, \"@@\" + this.id + \":\" + eventName, callback);\n\t };\n\t /**\n\t * @param {?} command\n\t * @param {...?} args\n\t * @return {?}\n\t */\n\t RendererAnimationPlayer.prototype._command = /**\n\t * @param {?} command\n\t * @param {...?} args\n\t * @return {?}\n\t */\n\t function (command) {\n\t var args = [];\n\t for (var _i = 1; _i < arguments.length; _i++) {\n\t args[_i - 1] = arguments[_i];\n\t }\n\t return issueAnimationCommand(this._renderer, this.element, this.id, command, args);\n\t };\n\t /**\n\t * @param {?} fn\n\t * @return {?}\n\t */\n\t RendererAnimationPlayer.prototype.onDone = /**\n\t * @param {?} fn\n\t * @return {?}\n\t */\n\t function (fn) { this._listen('done', fn); };\n\t /**\n\t * @param {?} fn\n\t * @return {?}\n\t */\n\t RendererAnimationPlayer.prototype.onStart = /**\n\t * @param {?} fn\n\t * @return {?}\n\t */\n\t function (fn) { this._listen('start', fn); };\n\t /**\n\t * @param {?} fn\n\t * @return {?}\n\t */\n\t RendererAnimationPlayer.prototype.onDestroy = /**\n\t * @param {?} fn\n\t * @return {?}\n\t */\n\t function (fn) { this._listen('destroy', fn); };\n\t /**\n\t * @return {?}\n\t */\n\t RendererAnimationPlayer.prototype.init = /**\n\t * @return {?}\n\t */\n\t function () { this._command('init'); };\n\t /**\n\t * @return {?}\n\t */\n\t RendererAnimationPlayer.prototype.hasStarted = /**\n\t * @return {?}\n\t */\n\t function () { return this._started; };\n\t /**\n\t * @return {?}\n\t */\n\t RendererAnimationPlayer.prototype.play = /**\n\t * @return {?}\n\t */\n\t function () {\n\t this._command('play');\n\t this._started = true;\n\t };\n\t /**\n\t * @return {?}\n\t */\n\t RendererAnimationPlayer.prototype.pause = /**\n\t * @return {?}\n\t */\n\t function () { this._command('pause'); };\n\t /**\n\t * @return {?}\n\t */\n\t RendererAnimationPlayer.prototype.restart = /**\n\t * @return {?}\n\t */\n\t function () { this._command('restart'); };\n\t /**\n\t * @return {?}\n\t */\n\t RendererAnimationPlayer.prototype.finish = /**\n\t * @return {?}\n\t */\n\t function () { this._command('finish'); };\n\t /**\n\t * @return {?}\n\t */\n\t RendererAnimationPlayer.prototype.destroy = /**\n\t * @return {?}\n\t */\n\t function () { this._command('destroy'); };\n\t /**\n\t * @return {?}\n\t */\n\t RendererAnimationPlayer.prototype.reset = /**\n\t * @return {?}\n\t */\n\t function () { this._command('reset'); };\n\t /**\n\t * @param {?} p\n\t * @return {?}\n\t */\n\t RendererAnimationPlayer.prototype.setPosition = /**\n\t * @param {?} p\n\t * @return {?}\n\t */\n\t function (p) { this._command('setPosition', p); };\n\t /**\n\t * @return {?}\n\t */\n\t RendererAnimationPlayer.prototype.getPosition = /**\n\t * @return {?}\n\t */\n\t function () { return 0; };\n\t return RendererAnimationPlayer;\n\t}());\n\t/**\n\t * @param {?} renderer\n\t * @param {?} element\n\t * @param {?} id\n\t * @param {?} command\n\t * @param {?} args\n\t * @return {?}\n\t */\n\tfunction issueAnimationCommand(renderer, element, id, command, args) {\n\t return renderer.setProperty(element, \"@@\" + id + \":\" + command, args);\n\t}\n\t\n\t/**\n\t * @fileoverview added by tsickle\n\t * @suppress {checkTypes} checked by tsc\n\t */\n\tvar ANIMATION_PREFIX = '@';\n\tvar DISABLE_ANIMATIONS_FLAG = '@.disabled';\n\tvar AnimationRendererFactory = (function () {\n\t function AnimationRendererFactory(delegate, engine, _zone) {\n\t this.delegate = delegate;\n\t this.engine = engine;\n\t this._zone = _zone;\n\t this._currentId = 0;\n\t this._microtaskId = 1;\n\t this._animationCallbacksBuffer = [];\n\t this._rendererCache = new Map();\n\t this._cdRecurDepth = 0;\n\t engine.onRemovalComplete = function (element, delegate) {\n\t // Note: if an component element has a leave animation, and the component\n\t // a host leave animation, the view engine will call `removeChild` for the parent\n\t // component renderer as well as for the child component renderer.\n\t // Therefore, we need to check if we already removed the element.\n\t if (delegate && delegate.parentNode(element)) {\n\t delegate.removeChild(element.parentNode, element);\n\t }\n\t };\n\t }\n\t /**\n\t * @param {?} hostElement\n\t * @param {?} type\n\t * @return {?}\n\t */\n\t AnimationRendererFactory.prototype.createRenderer = /**\n\t * @param {?} hostElement\n\t * @param {?} type\n\t * @return {?}\n\t */\n\t function (hostElement, type) {\n\t var _this = this;\n\t var /** @type {?} */ EMPTY_NAMESPACE_ID = '';\n\t // cache the delegates to find out which cached delegate can\n\t // be used by which cached renderer\n\t var /** @type {?} */ delegate = this.delegate.createRenderer(hostElement, type);\n\t if (!hostElement || !type || !type.data || !type.data['animation']) {\n\t var /** @type {?} */ renderer = this._rendererCache.get(delegate);\n\t if (!renderer) {\n\t renderer = new BaseAnimationRenderer(EMPTY_NAMESPACE_ID, delegate, this.engine);\n\t // only cache this result when the base renderer is used\n\t this._rendererCache.set(delegate, renderer);\n\t }\n\t return renderer;\n\t }\n\t var /** @type {?} */ componentId = type.id;\n\t var /** @type {?} */ namespaceId = type.id + '-' + this._currentId;\n\t this._currentId++;\n\t this.engine.register(namespaceId, hostElement);\n\t var /** @type {?} */ animationTriggers = /** @type {?} */ (type.data['animation']);\n\t animationTriggers.forEach(function (trigger) {\n\t return _this.engine.registerTrigger(componentId, namespaceId, hostElement, trigger.name, trigger);\n\t });\n\t return new AnimationRenderer(this, namespaceId, delegate, this.engine);\n\t };\n\t /**\n\t * @return {?}\n\t */\n\t AnimationRendererFactory.prototype.begin = /**\n\t * @return {?}\n\t */\n\t function () {\n\t this._cdRecurDepth++;\n\t if (this.delegate.begin) {\n\t this.delegate.begin();\n\t }\n\t };\n\t /**\n\t * @return {?}\n\t */\n\t AnimationRendererFactory.prototype._scheduleCountTask = /**\n\t * @return {?}\n\t */\n\t function () {\n\t var _this = this;\n\t Zone.current.scheduleMicroTask('incremenet the animation microtask', function () { return _this._microtaskId++; });\n\t };\n\t /* @internal */\n\t /**\n\t * @param {?} count\n\t * @param {?} fn\n\t * @param {?} data\n\t * @return {?}\n\t */\n\t AnimationRendererFactory.prototype.scheduleListenerCallback = /**\n\t * @param {?} count\n\t * @param {?} fn\n\t * @param {?} data\n\t * @return {?}\n\t */\n\t function (count, fn, data) {\n\t var _this = this;\n\t if (count >= 0 && count < this._microtaskId) {\n\t this._zone.run(function () { return fn(data); });\n\t return;\n\t }\n\t if (this._animationCallbacksBuffer.length == 0) {\n\t Promise.resolve(null).then(function () {\n\t _this._zone.run(function () {\n\t _this._animationCallbacksBuffer.forEach(function (tuple) {\n\t var fn = tuple[0], data = tuple[1];\n\t fn(data);\n\t });\n\t _this._animationCallbacksBuffer = [];\n\t });\n\t });\n\t }\n\t this._animationCallbacksBuffer.push([fn, data]);\n\t };\n\t /**\n\t * @return {?}\n\t */\n\t AnimationRendererFactory.prototype.end = /**\n\t * @return {?}\n\t */\n\t function () {\n\t var _this = this;\n\t this._cdRecurDepth--;\n\t // this is to prevent animations from running twice when an inner\n\t // component does CD when a parent component insted has inserted it\n\t if (this._cdRecurDepth == 0) {\n\t this._zone.runOutsideAngular(function () {\n\t _this._scheduleCountTask();\n\t _this.engine.flush(_this._microtaskId);\n\t });\n\t }\n\t if (this.delegate.end) {\n\t this.delegate.end();\n\t }\n\t };\n\t /**\n\t * @return {?}\n\t */\n\t AnimationRendererFactory.prototype.whenRenderingDone = /**\n\t * @return {?}\n\t */\n\t function () { return this.engine.whenRenderingDone(); };\n\t AnimationRendererFactory.decorators = [\n\t { type: _angular_core.Injectable },\n\t ];\n\t /** @nocollapse */\n\t AnimationRendererFactory.ctorParameters = function () { return [\n\t { type: _angular_core.RendererFactory2, },\n\t { type: _angular_animations_browser.ɵAnimationEngine, },\n\t { type: _angular_core.NgZone, },\n\t ]; };\n\t return AnimationRendererFactory;\n\t}());\n\tvar BaseAnimationRenderer = (function () {\n\t function BaseAnimationRenderer(namespaceId, delegate, engine) {\n\t this.namespaceId = namespaceId;\n\t this.delegate = delegate;\n\t this.engine = engine;\n\t this.destroyNode = this.delegate.destroyNode ? function (n) { return /** @type {?} */ ((delegate.destroyNode))(n); } : null;\n\t }\n\t Object.defineProperty(BaseAnimationRenderer.prototype, \"data\", {\n\t get: /**\n\t * @return {?}\n\t */\n\t function () { return this.delegate.data; },\n\t enumerable: true,\n\t configurable: true\n\t });\n\t /**\n\t * @return {?}\n\t */\n\t BaseAnimationRenderer.prototype.destroy = /**\n\t * @return {?}\n\t */\n\t function () {\n\t this.engine.destroy(this.namespaceId, this.delegate);\n\t this.delegate.destroy();\n\t };\n\t /**\n\t * @param {?} name\n\t * @param {?=} namespace\n\t * @return {?}\n\t */\n\t BaseAnimationRenderer.prototype.createElement = /**\n\t * @param {?} name\n\t * @param {?=} namespace\n\t * @return {?}\n\t */\n\t function (name, namespace) {\n\t return this.delegate.createElement(name, namespace);\n\t };\n\t /**\n\t * @param {?} value\n\t * @return {?}\n\t */\n\t BaseAnimationRenderer.prototype.createComment = /**\n\t * @param {?} value\n\t * @return {?}\n\t */\n\t function (value) { return this.delegate.createComment(value); };\n\t /**\n\t * @param {?} value\n\t * @return {?}\n\t */\n\t BaseAnimationRenderer.prototype.createText = /**\n\t * @param {?} value\n\t * @return {?}\n\t */\n\t function (value) { return this.delegate.createText(value); };\n\t /**\n\t * @param {?} parent\n\t * @param {?} newChild\n\t * @return {?}\n\t */\n\t BaseAnimationRenderer.prototype.appendChild = /**\n\t * @param {?} parent\n\t * @param {?} newChild\n\t * @return {?}\n\t */\n\t function (parent, newChild) {\n\t this.delegate.appendChild(parent, newChild);\n\t this.engine.onInsert(this.namespaceId, newChild, parent, false);\n\t };\n\t /**\n\t * @param {?} parent\n\t * @param {?} newChild\n\t * @param {?} refChild\n\t * @return {?}\n\t */\n\t BaseAnimationRenderer.prototype.insertBefore = /**\n\t * @param {?} parent\n\t * @param {?} newChild\n\t * @param {?} refChild\n\t * @return {?}\n\t */\n\t function (parent, newChild, refChild) {\n\t this.delegate.insertBefore(parent, newChild, refChild);\n\t this.engine.onInsert(this.namespaceId, newChild, parent, true);\n\t };\n\t /**\n\t * @param {?} parent\n\t * @param {?} oldChild\n\t * @return {?}\n\t */\n\t BaseAnimationRenderer.prototype.removeChild = /**\n\t * @param {?} parent\n\t * @param {?} oldChild\n\t * @return {?}\n\t */\n\t function (parent, oldChild) {\n\t this.engine.onRemove(this.namespaceId, oldChild, this.delegate);\n\t };\n\t /**\n\t * @param {?} selectorOrNode\n\t * @return {?}\n\t */\n\t BaseAnimationRenderer.prototype.selectRootElement = /**\n\t * @param {?} selectorOrNode\n\t * @return {?}\n\t */\n\t function (selectorOrNode) { return this.delegate.selectRootElement(selectorOrNode); };\n\t /**\n\t * @param {?} node\n\t * @return {?}\n\t */\n\t BaseAnimationRenderer.prototype.parentNode = /**\n\t * @param {?} node\n\t * @return {?}\n\t */\n\t function (node) { return this.delegate.parentNode(node); };\n\t /**\n\t * @param {?} node\n\t * @return {?}\n\t */\n\t BaseAnimationRenderer.prototype.nextSibling = /**\n\t * @param {?} node\n\t * @return {?}\n\t */\n\t function (node) { return this.delegate.nextSibling(node); };\n\t /**\n\t * @param {?} el\n\t * @param {?} name\n\t * @param {?} value\n\t * @param {?=} namespace\n\t * @return {?}\n\t */\n\t BaseAnimationRenderer.prototype.setAttribute = /**\n\t * @param {?} el\n\t * @param {?} name\n\t * @param {?} value\n\t * @param {?=} namespace\n\t * @return {?}\n\t */\n\t function (el, name, value, namespace) {\n\t this.delegate.setAttribute(el, name, value, namespace);\n\t };\n\t /**\n\t * @param {?} el\n\t * @param {?} name\n\t * @param {?=} namespace\n\t * @return {?}\n\t */\n\t BaseAnimationRenderer.prototype.removeAttribute = /**\n\t * @param {?} el\n\t * @param {?} name\n\t * @param {?=} namespace\n\t * @return {?}\n\t */\n\t function (el, name, namespace) {\n\t this.delegate.removeAttribute(el, name, namespace);\n\t };\n\t /**\n\t * @param {?} el\n\t * @param {?} name\n\t * @return {?}\n\t */\n\t BaseAnimationRenderer.prototype.addClass = /**\n\t * @param {?} el\n\t * @param {?} name\n\t * @return {?}\n\t */\n\t function (el, name) { this.delegate.addClass(el, name); };\n\t /**\n\t * @param {?} el\n\t * @param {?} name\n\t * @return {?}\n\t */\n\t BaseAnimationRenderer.prototype.removeClass = /**\n\t * @param {?} el\n\t * @param {?} name\n\t * @return {?}\n\t */\n\t function (el, name) { this.delegate.removeClass(el, name); };\n\t /**\n\t * @param {?} el\n\t * @param {?} style\n\t * @param {?} value\n\t * @param {?=} flags\n\t * @return {?}\n\t */\n\t BaseAnimationRenderer.prototype.setStyle = /**\n\t * @param {?} el\n\t * @param {?} style\n\t * @param {?} value\n\t * @param {?=} flags\n\t * @return {?}\n\t */\n\t function (el, style, value, flags) {\n\t this.delegate.setStyle(el, style, value, flags);\n\t };\n\t /**\n\t * @param {?} el\n\t * @param {?} style\n\t * @param {?=} flags\n\t * @return {?}\n\t */\n\t BaseAnimationRenderer.prototype.removeStyle = /**\n\t * @param {?} el\n\t * @param {?} style\n\t * @param {?=} flags\n\t * @return {?}\n\t */\n\t function (el, style, flags) {\n\t this.delegate.removeStyle(el, style, flags);\n\t };\n\t /**\n\t * @param {?} el\n\t * @param {?} name\n\t * @param {?} value\n\t * @return {?}\n\t */\n\t BaseAnimationRenderer.prototype.setProperty = /**\n\t * @param {?} el\n\t * @param {?} name\n\t * @param {?} value\n\t * @return {?}\n\t */\n\t function (el, name, value) {\n\t if (name.charAt(0) == ANIMATION_PREFIX && name == DISABLE_ANIMATIONS_FLAG) {\n\t this.disableAnimations(el, !!value);\n\t }\n\t else {\n\t this.delegate.setProperty(el, name, value);\n\t }\n\t };\n\t /**\n\t * @param {?} node\n\t * @param {?} value\n\t * @return {?}\n\t */\n\t BaseAnimationRenderer.prototype.setValue = /**\n\t * @param {?} node\n\t * @param {?} value\n\t * @return {?}\n\t */\n\t function (node, value) { this.delegate.setValue(node, value); };\n\t /**\n\t * @param {?} target\n\t * @param {?} eventName\n\t * @param {?} callback\n\t * @return {?}\n\t */\n\t BaseAnimationRenderer.prototype.listen = /**\n\t * @param {?} target\n\t * @param {?} eventName\n\t * @param {?} callback\n\t * @return {?}\n\t */\n\t function (target, eventName, callback) {\n\t return this.delegate.listen(target, eventName, callback);\n\t };\n\t /**\n\t * @param {?} element\n\t * @param {?} value\n\t * @return {?}\n\t */\n\t BaseAnimationRenderer.prototype.disableAnimations = /**\n\t * @param {?} element\n\t * @param {?} value\n\t * @return {?}\n\t */\n\t function (element, value) {\n\t this.engine.disableAnimations(element, value);\n\t };\n\t return BaseAnimationRenderer;\n\t}());\n\tvar AnimationRenderer = (function (_super) {\n\t __extends(AnimationRenderer, _super);\n\t function AnimationRenderer(factory, namespaceId, delegate, engine) {\n\t var _this = _super.call(this, namespaceId, delegate, engine) || this;\n\t _this.factory = factory;\n\t _this.namespaceId = namespaceId;\n\t return _this;\n\t }\n\t /**\n\t * @param {?} el\n\t * @param {?} name\n\t * @param {?} value\n\t * @return {?}\n\t */\n\t AnimationRenderer.prototype.setProperty = /**\n\t * @param {?} el\n\t * @param {?} name\n\t * @param {?} value\n\t * @return {?}\n\t */\n\t function (el, name, value) {\n\t if (name.charAt(0) == ANIMATION_PREFIX) {\n\t if (name.charAt(1) == '.' && name == DISABLE_ANIMATIONS_FLAG) {\n\t value = value === undefined ? true : !!value;\n\t this.disableAnimations(el, /** @type {?} */ (value));\n\t }\n\t else {\n\t this.engine.process(this.namespaceId, el, name.substr(1), value);\n\t }\n\t }\n\t else {\n\t this.delegate.setProperty(el, name, value);\n\t }\n\t };\n\t /**\n\t * @param {?} target\n\t * @param {?} eventName\n\t * @param {?} callback\n\t * @return {?}\n\t */\n\t AnimationRenderer.prototype.listen = /**\n\t * @param {?} target\n\t * @param {?} eventName\n\t * @param {?} callback\n\t * @return {?}\n\t */\n\t function (target, eventName, callback) {\n\t var _this = this;\n\t if (eventName.charAt(0) == ANIMATION_PREFIX) {\n\t var /** @type {?} */ element = resolveElementFromTarget(target);\n\t var /** @type {?} */ name_1 = eventName.substr(1);\n\t var /** @type {?} */ phase = '';\n\t // @listener.phase is for trigger animation callbacks\n\t // @@listener is for animation builder callbacks\n\t if (name_1.charAt(0) != ANIMATION_PREFIX) {\n\t _a = parseTriggerCallbackName(name_1), name_1 = _a[0], phase = _a[1];\n\t }\n\t return this.engine.listen(this.namespaceId, element, name_1, phase, function (event) {\n\t var /** @type {?} */ countId = (/** @type {?} */ (event))['_data'] || -1;\n\t _this.factory.scheduleListenerCallback(countId, callback, event);\n\t });\n\t }\n\t return this.delegate.listen(target, eventName, callback);\n\t var _a;\n\t };\n\t return AnimationRenderer;\n\t}(BaseAnimationRenderer));\n\t/**\n\t * @param {?} target\n\t * @return {?}\n\t */\n\tfunction resolveElementFromTarget(target) {\n\t switch (target) {\n\t case 'body':\n\t return document.body;\n\t case 'document':\n\t return document;\n\t case 'window':\n\t return window;\n\t default:\n\t return target;\n\t }\n\t}\n\t/**\n\t * @param {?} triggerName\n\t * @return {?}\n\t */\n\tfunction parseTriggerCallbackName(triggerName) {\n\t var /** @type {?} */ dotIndex = triggerName.indexOf('.');\n\t var /** @type {?} */ trigger = triggerName.substring(0, dotIndex);\n\t var /** @type {?} */ phase = triggerName.substr(dotIndex + 1);\n\t return [trigger, phase];\n\t}\n\t\n\t/**\n\t * @fileoverview added by tsickle\n\t * @suppress {checkTypes} checked by tsc\n\t */\n\t/**\n\t * @license\n\t * Copyright Google Inc. All Rights Reserved.\n\t *\n\t * Use of this source code is governed by an MIT-style license that can be\n\t * found in the LICENSE file at https://angular.io/license\n\t */\n\tvar InjectableAnimationEngine = (function (_super) {\n\t __extends(InjectableAnimationEngine, _super);\n\t function InjectableAnimationEngine(driver, normalizer) {\n\t return _super.call(this, driver, normalizer) || this;\n\t }\n\t InjectableAnimationEngine.decorators = [\n\t { type: _angular_core.Injectable },\n\t ];\n\t /** @nocollapse */\n\t InjectableAnimationEngine.ctorParameters = function () { return [\n\t { type: _angular_animations_browser.AnimationDriver, },\n\t { type: _angular_animations_browser.ɵAnimationStyleNormalizer, },\n\t ]; };\n\t return InjectableAnimationEngine;\n\t}(_angular_animations_browser.ɵAnimationEngine));\n\t/**\n\t * @return {?}\n\t */\n\tfunction instantiateSupportedAnimationDriver() {\n\t if (_angular_animations_browser.ɵsupportsWebAnimations()) {\n\t return new _angular_animations_browser.ɵWebAnimationsDriver();\n\t }\n\t return new _angular_animations_browser.ɵNoopAnimationDriver();\n\t}\n\t/**\n\t * @return {?}\n\t */\n\tfunction instantiateDefaultStyleNormalizer() {\n\t return new _angular_animations_browser.ɵWebAnimationsStyleNormalizer();\n\t}\n\t/**\n\t * @param {?} renderer\n\t * @param {?} engine\n\t * @param {?} zone\n\t * @return {?}\n\t */\n\tfunction instantiateRendererFactory(renderer, engine, zone) {\n\t return new AnimationRendererFactory(renderer, engine, zone);\n\t}\n\tvar SHARED_ANIMATION_PROVIDERS = [\n\t { provide: _angular_animations.AnimationBuilder, useClass: BrowserAnimationBuilder },\n\t { provide: _angular_animations_browser.ɵAnimationStyleNormalizer, useFactory: instantiateDefaultStyleNormalizer },\n\t { provide: _angular_animations_browser.ɵAnimationEngine, useClass: InjectableAnimationEngine }, {\n\t provide: _angular_core.RendererFactory2,\n\t useFactory: instantiateRendererFactory,\n\t deps: [_angular_platformBrowser.ɵDomRendererFactory2, _angular_animations_browser.ɵAnimationEngine, _angular_core.NgZone]\n\t }\n\t];\n\t/**\n\t * Separate providers from the actual module so that we can do a local modification in Google3 to\n\t * include them in the BrowserModule.\n\t */\n\tvar BROWSER_ANIMATIONS_PROVIDERS = [\n\t { provide: _angular_animations_browser.AnimationDriver, useFactory: instantiateSupportedAnimationDriver }\n\t].concat(SHARED_ANIMATION_PROVIDERS);\n\t/**\n\t * Separate providers from the actual module so that we can do a local modification in Google3 to\n\t * include them in the BrowserTestingModule.\n\t */\n\tvar BROWSER_NOOP_ANIMATIONS_PROVIDERS = [{ provide: _angular_animations_browser.AnimationDriver, useClass: _angular_animations_browser.ɵNoopAnimationDriver }].concat(SHARED_ANIMATION_PROVIDERS);\n\t\n\t/**\n\t * @fileoverview added by tsickle\n\t * @suppress {checkTypes} checked by tsc\n\t */\n\t/**\n\t * @license\n\t * Copyright Google Inc. All Rights Reserved.\n\t *\n\t * Use of this source code is governed by an MIT-style license that can be\n\t * found in the LICENSE file at https://angular.io/license\n\t */\n\t/**\n\t * \\@experimental Animation support is experimental.\n\t */\n\tvar BrowserAnimationsModule = (function () {\n\t function BrowserAnimationsModule() {\n\t }\n\t BrowserAnimationsModule.decorators = [\n\t { type: _angular_core.NgModule, args: [{\n\t exports: [_angular_platformBrowser.BrowserModule],\n\t providers: BROWSER_ANIMATIONS_PROVIDERS,\n\t },] },\n\t ];\n\t /** @nocollapse */\n\t BrowserAnimationsModule.ctorParameters = function () { return []; };\n\t return BrowserAnimationsModule;\n\t}());\n\t/**\n\t * \\@experimental Animation support is experimental.\n\t */\n\tvar NoopAnimationsModule = (function () {\n\t function NoopAnimationsModule() {\n\t }\n\t NoopAnimationsModule.decorators = [\n\t { type: _angular_core.NgModule, args: [{\n\t exports: [_angular_platformBrowser.BrowserModule],\n\t providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS,\n\t },] },\n\t ];\n\t /** @nocollapse */\n\t NoopAnimationsModule.ctorParameters = function () { return []; };\n\t return NoopAnimationsModule;\n\t}());\n\t\n\texports.BrowserAnimationsModule = BrowserAnimationsModule;\n\texports.NoopAnimationsModule = NoopAnimationsModule;\n\texports.ɵBrowserAnimationBuilder = BrowserAnimationBuilder;\n\texports.ɵBrowserAnimationFactory = BrowserAnimationFactory;\n\texports.ɵAnimationRenderer = AnimationRenderer;\n\texports.ɵAnimationRendererFactory = AnimationRendererFactory;\n\texports.ɵa = BaseAnimationRenderer;\n\texports.ɵf = BROWSER_ANIMATIONS_PROVIDERS;\n\texports.ɵg = BROWSER_NOOP_ANIMATIONS_PROVIDERS;\n\texports.ɵb = InjectableAnimationEngine;\n\texports.ɵd = instantiateDefaultStyleNormalizer;\n\texports.ɵe = instantiateRendererFactory;\n\texports.ɵc = instantiateSupportedAnimationDriver;\n\t\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\t\n\t})));\n\t//# sourceMappingURL=platform-browser-animations.umd.js.map\n\n\n/***/ },\n/* 48 */,\n/* 49 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * @license Angular v5.0.0\n\t * (c) 2010-2017 Google, Inc. https://angular.io/\n\t * License: MIT\n\t */\n\t(function (global, factory) {\n\t\t true ? factory(exports, __webpack_require__(48)) :\n\t\ttypeof define === 'function' && define.amd ? define('@angular/animations/browser', ['exports', '@angular/animations'], factory) :\n\t\t(factory((global.ng = global.ng || {}, global.ng.animations = global.ng.animations || {}, global.ng.animations.browser = {}),global.ng.animations));\n\t}(this, (function (exports,_angular_animations) { 'use strict';\n\t\n\t/*! *****************************************************************************\r\n\tCopyright (c) Microsoft Corporation. All rights reserved.\r\n\tLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\n\tthis file except in compliance with the License. You may obtain a copy of the\r\n\tLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\t\r\n\tTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n\tKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\n\tWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\n\tMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\t\r\n\tSee the Apache Version 2.0 License for specific language governing permissions\r\n\tand limitations under the License.\r\n\t***************************************************************************** */\r\n\t/* global Reflect, Promise */\r\n\t\r\n\tvar extendStatics = Object.setPrototypeOf ||\r\n\t ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n\t function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\t\r\n\tfunction __extends(d, b) {\r\n\t extendStatics(d, b);\r\n\t function __() { this.constructor = d; }\r\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n\t}\r\n\t\r\n\tvar __assign = Object.assign || function __assign(t) {\r\n\t for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n\t s = arguments[i];\r\n\t for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n\t }\r\n\t return t;\r\n\t};\n\t\n\t/**\n\t * @license Angular v5.0.0\n\t * (c) 2010-2017 Google, Inc. https://angular.io/\n\t * License: MIT\n\t */\n\t/**\n\t * @fileoverview added by tsickle\n\t * @suppress {checkTypes} checked by tsc\n\t */\n\t/**\n\t * @license\n\t * Copyright Google Inc. All Rights Reserved.\n\t *\n\t * Use of this source code is governed by an MIT-style license that can be\n\t * found in the LICENSE file at https://angular.io/license\n\t */\n\t/**\n\t * @param {?} players\n\t * @return {?}\n\t */\n\tfunction optimizeGroupPlayer(players) {\n\t switch (players.length) {\n\t case 0:\n\t return new _angular_animations.NoopAnimationPlayer();\n\t case 1:\n\t return players[0];\n\t default:\n\t return new _angular_animations.ɵAnimationGroupPlayer(players);\n\t }\n\t}\n\t/**\n\t * @param {?} driver\n\t * @param {?} normalizer\n\t * @param {?} element\n\t * @param {?} keyframes\n\t * @param {?=} preStyles\n\t * @param {?=} postStyles\n\t * @return {?}\n\t */\n\tfunction normalizeKeyframes(driver, normalizer, element, keyframes, preStyles, postStyles) {\n\t if (preStyles === void 0) { preStyles = {}; }\n\t if (postStyles === void 0) { postStyles = {}; }\n\t var /** @type {?} */ errors = [];\n\t var /** @type {?} */ normalizedKeyframes = [];\n\t var /** @type {?} */ previousOffset = -1;\n\t var /** @type {?} */ previousKeyframe = null;\n\t keyframes.forEach(function (kf) {\n\t var /** @type {?} */ offset = /** @type {?} */ (kf['offset']);\n\t var /** @type {?} */ isSameOffset = offset == previousOffset;\n\t var /** @type {?} */ normalizedKeyframe = (isSameOffset && previousKeyframe) || {};\n\t Object.keys(kf).forEach(function (prop) {\n\t var /** @type {?} */ normalizedProp = prop;\n\t var /** @type {?} */ normalizedValue = kf[prop];\n\t if (prop !== 'offset') {\n\t normalizedProp = normalizer.normalizePropertyName(normalizedProp, errors);\n\t switch (normalizedValue) {\n\t case _angular_animations.ɵPRE_STYLE:\n\t normalizedValue = preStyles[prop];\n\t break;\n\t case _angular_animations.AUTO_STYLE:\n\t normalizedValue = postStyles[prop];\n\t break;\n\t default:\n\t normalizedValue =\n\t normalizer.normalizeStyleValue(prop, normalizedProp, normalizedValue, errors);\n\t break;\n\t }\n\t }\n\t normalizedKeyframe[normalizedProp] = normalizedValue;\n\t });\n\t if (!isSameOffset) {\n\t normalizedKeyframes.push(normalizedKeyframe);\n\t }\n\t previousKeyframe = normalizedKeyframe;\n\t previousOffset = offset;\n\t });\n\t if (errors.length) {\n\t var /** @type {?} */ LINE_START = '\\n - ';\n\t throw new Error(\"Unable to animate due to the following errors:\" + LINE_START + errors.join(LINE_START));\n\t }\n\t return normalizedKeyframes;\n\t}\n\t/**\n\t * @param {?} player\n\t * @param {?} eventName\n\t * @param {?} event\n\t * @param {?} callback\n\t * @return {?}\n\t */\n\tfunction listenOnPlayer(player, eventName, event, callback) {\n\t switch (eventName) {\n\t case 'start':\n\t player.onStart(function () { return callback(event && copyAnimationEvent(event, 'start', player.totalTime)); });\n\t break;\n\t case 'done':\n\t player.onDone(function () { return callback(event && copyAnimationEvent(event, 'done', player.totalTime)); });\n\t break;\n\t case 'destroy':\n\t player.onDestroy(function () { return callback(event && copyAnimationEvent(event, 'destroy', player.totalTime)); });\n\t break;\n\t }\n\t}\n\t/**\n\t * @param {?} e\n\t * @param {?=} phaseName\n\t * @param {?=} totalTime\n\t * @return {?}\n\t */\n\tfunction copyAnimationEvent(e, phaseName, totalTime) {\n\t var /** @type {?} */ event = makeAnimationEvent(e.element, e.triggerName, e.fromState, e.toState, phaseName || e.phaseName, totalTime == undefined ? e.totalTime : totalTime);\n\t var /** @type {?} */ data = (/** @type {?} */ (e))['_data'];\n\t if (data != null) {\n\t (/** @type {?} */ (event))['_data'] = data;\n\t }\n\t return event;\n\t}\n\t/**\n\t * @param {?} element\n\t * @param {?} triggerName\n\t * @param {?} fromState\n\t * @param {?} toState\n\t * @param {?=} phaseName\n\t * @param {?=} totalTime\n\t * @return {?}\n\t */\n\tfunction makeAnimationEvent(element, triggerName, fromState, toState, phaseName, totalTime) {\n\t if (phaseName === void 0) { phaseName = ''; }\n\t if (totalTime === void 0) { totalTime = 0; }\n\t return { element: element, triggerName: triggerName, fromState: fromState, toState: toState, phaseName: phaseName, totalTime: totalTime };\n\t}\n\t/**\n\t * @param {?} map\n\t * @param {?} key\n\t * @param {?} defaultValue\n\t * @return {?}\n\t */\n\tfunction getOrSetAsInMap(map, key, defaultValue) {\n\t var /** @type {?} */ value;\n\t if (map instanceof Map) {\n\t value = map.get(key);\n\t if (!value) {\n\t map.set(key, value = defaultValue);\n\t }\n\t }\n\t else {\n\t value = map[key];\n\t if (!value) {\n\t value = map[key] = defaultValue;\n\t }\n\t }\n\t return value;\n\t}\n\t/**\n\t * @param {?} command\n\t * @return {?}\n\t */\n\tfunction parseTimelineCommand(command) {\n\t var /** @type {?} */ separatorPos = command.indexOf(':');\n\t var /** @type {?} */ id = command.substring(1, separatorPos);\n\t var /** @type {?} */ action = command.substr(separatorPos + 1);\n\t return [id, action];\n\t}\n\tvar _contains = function (elm1, elm2) { return false; };\n\tvar _matches = function (element, selector) {\n\t return false;\n\t};\n\tvar _query = function (element, selector, multi) {\n\t return [];\n\t};\n\tif (typeof Element != 'undefined') {\n\t // this is well supported in all browsers\n\t _contains = function (elm1, elm2) { return /** @type {?} */ (elm1.contains(elm2)); };\n\t if (Element.prototype.matches) {\n\t _matches = function (element, selector) { return element.matches(selector); };\n\t }\n\t else {\n\t var /** @type {?} */ proto = /** @type {?} */ (Element.prototype);\n\t var /** @type {?} */ fn_1 = proto.matchesSelector || proto.mozMatchesSelector || proto.msMatchesSelector ||\n\t proto.oMatchesSelector || proto.webkitMatchesSelector;\n\t if (fn_1) {\n\t _matches = function (element, selector) { return fn_1.apply(element, [selector]); };\n\t }\n\t }\n\t _query = function (element, selector, multi) {\n\t var /** @type {?} */ results = [];\n\t if (multi) {\n\t results.push.apply(results, element.querySelectorAll(selector));\n\t }\n\t else {\n\t var /** @type {?} */ elm = element.querySelector(selector);\n\t if (elm) {\n\t results.push(elm);\n\t }\n\t }\n\t return results;\n\t };\n\t}\n\tvar _CACHED_BODY = null;\n\t/**\n\t * @param {?} prop\n\t * @return {?}\n\t */\n\tfunction validateStyleProperty(prop) {\n\t if (!_CACHED_BODY) {\n\t _CACHED_BODY = getBodyNode() || {};\n\t }\n\t return /** @type {?} */ ((_CACHED_BODY)).style ? prop in /** @type {?} */ ((_CACHED_BODY)).style : true;\n\t}\n\t/**\n\t * @return {?}\n\t */\n\tfunction getBodyNode() {\n\t if (typeof document != 'undefined') {\n\t return document.body;\n\t }\n\t return null;\n\t}\n\tvar matchesElement = _matches;\n\tvar containsElement = _contains;\n\tvar invokeQuery = _query;\n\t\n\t/**\n\t * @fileoverview added by tsickle\n\t * @suppress {checkTypes} checked by tsc\n\t */\n\t/**\n\t * @license\n\t * Copyright Google Inc. All Rights Reserved.\n\t *\n\t * Use of this source code is governed by an MIT-style license that can be\n\t * found in the LICENSE file at https://angular.io/license\n\t */\n\t/**\n\t * \\@experimental\n\t */\n\tvar NoopAnimationDriver = (function () {\n\t function NoopAnimationDriver() {\n\t }\n\t /**\n\t * @param {?} prop\n\t * @return {?}\n\t */\n\t NoopAnimationDriver.prototype.validateStyleProperty = /**\n\t * @param {?} prop\n\t * @return {?}\n\t */\n\t function (prop) { return validateStyleProperty(prop); };\n\t /**\n\t * @param {?} element\n\t * @param {?} selector\n\t * @return {?}\n\t */\n\t NoopAnimationDriver.prototype.matchesElement = /**\n\t * @param {?} element\n\t * @param {?} selector\n\t * @return {?}\n\t */\n\t function (element, selector) {\n\t return matchesElement(element, selector);\n\t };\n\t /**\n\t * @param {?} elm1\n\t * @param {?} elm2\n\t * @return {?}\n\t */\n\t NoopAnimationDriver.prototype.containsElement = /**\n\t * @param {?} elm1\n\t * @param {?} elm2\n\t * @return {?}\n\t */\n\t function (elm1, elm2) { return containsElement(elm1, elm2); };\n\t /**\n\t * @param {?} element\n\t * @param {?} selector\n\t * @param {?} multi\n\t * @return {?}\n\t */\n\t NoopAnimationDriver.prototype.query = /**\n\t * @param {?} element\n\t * @param {?} selector\n\t * @param {?} multi\n\t * @return {?}\n\t */\n\t function (element, selector, multi) {\n\t return invokeQuery(element, selector, multi);\n\t };\n\t /**\n\t * @param {?} element\n\t * @param {?} prop\n\t * @param {?=} defaultValue\n\t * @return {?}\n\t */\n\t NoopAnimationDriver.prototype.computeStyle = /**\n\t * @param {?} element\n\t * @param {?} prop\n\t * @param {?=} defaultValue\n\t * @return {?}\n\t */\n\t function (element, prop, defaultValue) {\n\t return defaultValue || '';\n\t };\n\t /**\n\t * @param {?} element\n\t * @param {?} keyframes\n\t * @param {?} duration\n\t * @param {?} delay\n\t * @param {?} easing\n\t * @param {?=} previousPlayers\n\t * @return {?}\n\t */\n\t NoopAnimationDriver.prototype.animate = /**\n\t * @param {?} element\n\t * @param {?} keyframes\n\t * @param {?} duration\n\t * @param {?} delay\n\t * @param {?} easing\n\t * @param {?=} previousPlayers\n\t * @return {?}\n\t */\n\t function (element, keyframes, duration, delay, easing, previousPlayers) {\n\t if (previousPlayers === void 0) { previousPlayers = []; }\n\t return new _angular_animations.NoopAnimationPlayer();\n\t };\n\t return NoopAnimationDriver;\n\t}());\n\t/**\n\t * \\@experimental\n\t * @abstract\n\t */\n\tvar AnimationDriver = (function () {\n\t function AnimationDriver() {\n\t }\n\t AnimationDriver.NOOP = new NoopAnimationDriver();\n\t return AnimationDriver;\n\t}());\n\t\n\t/**\n\t * @fileoverview added by tsickle\n\t * @suppress {checkTypes} checked by tsc\n\t */\n\t/**\n\t * @license\n\t * Copyright Google Inc. All Rights Reserved.\n\t *\n\t * Use of this source code is governed by an MIT-style license that can be\n\t * found in the LICENSE file at https://angular.io/license\n\t */\n\tvar ONE_SECOND = 1000;\n\tvar SUBSTITUTION_EXPR_START = '{{';\n\tvar SUBSTITUTION_EXPR_END = '}}';\n\tvar ENTER_CLASSNAME = 'ng-enter';\n\tvar LEAVE_CLASSNAME = 'ng-leave';\n\tvar ENTER_SELECTOR = '.ng-enter';\n\tvar LEAVE_SELECTOR = '.ng-leave';\n\tvar NG_TRIGGER_CLASSNAME = 'ng-trigger';\n\tvar NG_TRIGGER_SELECTOR = '.ng-trigger';\n\tvar NG_ANIMATING_CLASSNAME = 'ng-animating';\n\tvar NG_ANIMATING_SELECTOR = '.ng-animating';\n\t/**\n\t * @param {?} value\n\t * @return {?}\n\t */\n\tfunction resolveTimingValue(value) {\n\t if (typeof value == 'number')\n\t return value;\n\t var /** @type {?} */ matches = (/** @type {?} */ (value)).match(/^(-?[\\.\\d]+)(m?s)/);\n\t if (!matches || matches.length < 2)\n\t return 0;\n\t return _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n\t}\n\t/**\n\t * @param {?} value\n\t * @param {?} unit\n\t * @return {?}\n\t */\n\tfunction _convertTimeValueToMS(value, unit) {\n\t switch (unit) {\n\t case 's':\n\t return value * ONE_SECOND;\n\t default:\n\t // ms or something else\n\t return value;\n\t }\n\t}\n\t/**\n\t * @param {?} timings\n\t * @param {?} errors\n\t * @param {?=} allowNegativeValues\n\t * @return {?}\n\t */\n\tfunction resolveTiming(timings, errors, allowNegativeValues) {\n\t return timings.hasOwnProperty('duration') ? /** @type {?} */ (timings) :\n\t parseTimeExpression(/** @type {?} */ (timings), errors, allowNegativeValues);\n\t}\n\t/**\n\t * @param {?} exp\n\t * @param {?} errors\n\t * @param {?=} allowNegativeValues\n\t * @return {?}\n\t */\n\tfunction parseTimeExpression(exp, errors, allowNegativeValues) {\n\t var /** @type {?} */ regex = /^(-?[\\.\\d]+)(m?s)(?:\\s+(-?[\\.\\d]+)(m?s))?(?:\\s+([-a-z]+(?:\\(.+?\\))?))?$/i;\n\t var /** @type {?} */ duration;\n\t var /** @type {?} */ delay = 0;\n\t var /** @type {?} */ easing = '';\n\t if (typeof exp === 'string') {\n\t var /** @type {?} */ matches = exp.match(regex);\n\t if (matches === null) {\n\t errors.push(\"The provided timing value \\\"\" + exp + \"\\\" is invalid.\");\n\t return { duration: 0, delay: 0, easing: '' };\n\t }\n\t duration = _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n\t var /** @type {?} */ delayMatch = matches[3];\n\t if (delayMatch != null) {\n\t delay = _convertTimeValueToMS(Math.floor(parseFloat(delayMatch)), matches[4]);\n\t }\n\t var /** @type {?} */ easingVal = matches[5];\n\t if (easingVal) {\n\t easing = easingVal;\n\t }\n\t }\n\t else {\n\t duration = /** @type {?} */ (exp);\n\t }\n\t if (!allowNegativeValues) {\n\t var /** @type {?} */ containsErrors = false;\n\t var /** @type {?} */ startIndex = errors.length;\n\t if (duration < 0) {\n\t errors.push(\"Duration values below 0 are not allowed for this animation step.\");\n\t containsErrors = true;\n\t }\n\t if (delay < 0) {\n\t errors.push(\"Delay values below 0 are not allowed for this animation step.\");\n\t containsErrors = true;\n\t }\n\t if (containsErrors) {\n\t errors.splice(startIndex, 0, \"The provided timing value \\\"\" + exp + \"\\\" is invalid.\");\n\t }\n\t }\n\t return { duration: duration, delay: delay, easing: easing };\n\t}\n\t/**\n\t * @param {?} obj\n\t * @param {?=} destination\n\t * @return {?}\n\t */\n\tfunction copyObj(obj, destination) {\n\t if (destination === void 0) { destination = {}; }\n\t Object.keys(obj).forEach(function (prop) { destination[prop] = obj[prop]; });\n\t return destination;\n\t}\n\t/**\n\t * @param {?} styles\n\t * @return {?}\n\t */\n\tfunction normalizeStyles(styles) {\n\t var /** @type {?} */ normalizedStyles = {};\n\t if (Array.isArray(styles)) {\n\t styles.forEach(function (data) { return copyStyles(data, false, normalizedStyles); });\n\t }\n\t else {\n\t copyStyles(styles, false, normalizedStyles);\n\t }\n\t return normalizedStyles;\n\t}\n\t/**\n\t * @param {?} styles\n\t * @param {?} readPrototype\n\t * @param {?=} destination\n\t * @return {?}\n\t */\n\tfunction copyStyles(styles, readPrototype, destination) {\n\t if (destination === void 0) { destination = {}; }\n\t if (readPrototype) {\n\t // we make use of a for-in loop so that the\n\t // prototypically inherited properties are\n\t // revealed from the backFill map\n\t for (var /** @type {?} */ prop in styles) {\n\t destination[prop] = styles[prop];\n\t }\n\t }\n\t else {\n\t copyObj(styles, destination);\n\t }\n\t return destination;\n\t}\n\t/**\n\t * @param {?} element\n\t * @param {?} styles\n\t * @return {?}\n\t */\n\tfunction setStyles(element, styles) {\n\t if (element['style']) {\n\t Object.keys(styles).forEach(function (prop) {\n\t var /** @type {?} */ camelProp = dashCaseToCamelCase(prop);\n\t element.style[camelProp] = styles[prop];\n\t });\n\t }\n\t}\n\t/**\n\t * @param {?} element\n\t * @param {?} styles\n\t * @return {?}\n\t */\n\tfunction eraseStyles(element, styles) {\n\t if (element['style']) {\n\t Object.keys(styles).forEach(function (prop) {\n\t var /** @type {?} */ camelProp = dashCaseToCamelCase(prop);\n\t element.style[camelProp] = '';\n\t });\n\t }\n\t}\n\t/**\n\t * @param {?} steps\n\t * @return {?}\n\t */\n\tfunction normalizeAnimationEntry(steps) {\n\t if (Array.isArray(steps)) {\n\t if (steps.length == 1)\n\t return steps[0];\n\t return _angular_animations.sequence(steps);\n\t }\n\t return /** @type {?} */ (steps);\n\t}\n\t/**\n\t * @param {?} value\n\t * @param {?} options\n\t * @param {?} errors\n\t * @return {?}\n\t */\n\tfunction validateStyleParams(value, options, errors) {\n\t var /** @type {?} */ params = options.params || {};\n\t var /** @type {?} */ matches = extractStyleParams(value);\n\t if (matches.length) {\n\t matches.forEach(function (varName) {\n\t if (!params.hasOwnProperty(varName)) {\n\t errors.push(\"Unable to resolve the local animation param \" + varName + \" in the given list of values\");\n\t }\n\t });\n\t }\n\t}\n\tvar PARAM_REGEX = new RegExp(SUBSTITUTION_EXPR_START + \"\\\\s*(.+?)\\\\s*\" + SUBSTITUTION_EXPR_END, 'g');\n\t/**\n\t * @param {?} value\n\t * @return {?}\n\t */\n\tfunction extractStyleParams(value) {\n\t var /** @type {?} */ params = [];\n\t if (typeof value === 'string') {\n\t var /** @type {?} */ val = value.toString();\n\t var /** @type {?} */ match = void 0;\n\t while (match = PARAM_REGEX.exec(val)) {\n\t params.push(/** @type {?} */ (match[1]));\n\t }\n\t PARAM_REGEX.lastIndex = 0;\n\t }\n\t return params;\n\t}\n\t/**\n\t * @param {?} value\n\t * @param {?} params\n\t * @param {?} errors\n\t * @return {?}\n\t */\n\tfunction interpolateParams(value, params, errors) {\n\t var /** @type {?} */ original = value.toString();\n\t var /** @type {?} */ str = original.replace(PARAM_REGEX, function (_, varName) {\n\t var /** @type {?} */ localVal = params[varName];\n\t // this means that the value was never overidden by the data passed in by the user\n\t if (!params.hasOwnProperty(varName)) {\n\t errors.push(\"Please provide a value for the animation param \" + varName);\n\t localVal = '';\n\t }\n\t return localVal.toString();\n\t });\n\t // we do this to assert that numeric values stay as they are\n\t return str == original ? value : str;\n\t}\n\t/**\n\t * @param {?} iterator\n\t * @return {?}\n\t */\n\tfunction iteratorToArray(iterator) {\n\t var /** @type {?} */ arr = [];\n\t var /** @type {?} */ item = iterator.next();\n\t while (!item.done) {\n\t arr.push(item.value);\n\t item = iterator.next();\n\t }\n\t return arr;\n\t}\n\t/**\n\t * @param {?} source\n\t * @param {?} destination\n\t * @return {?}\n\t */\n\t\n\tvar DASH_CASE_REGEXP = /-+([a-z0-9])/g;\n\t/**\n\t * @param {?} input\n\t * @return {?}\n\t */\n\tfunction dashCaseToCamelCase(input) {\n\t return input.replace(DASH_CASE_REGEXP, function () {\n\t var m = [];\n\t for (var _i = 0; _i < arguments.length; _i++) {\n\t m[_i] = arguments[_i];\n\t }\n\t return m[1].toUpperCase();\n\t });\n\t}\n\t/**\n\t * @param {?} duration\n\t * @param {?} delay\n\t * @return {?}\n\t */\n\tfunction allowPreviousPlayerStylesMerge(duration, delay) {\n\t return duration === 0 || delay === 0;\n\t}\n\t/**\n\t * @param {?} visitor\n\t * @param {?} node\n\t * @param {?} context\n\t * @return {?}\n\t */\n\tfunction visitDslNode(visitor, node, context) {\n\t switch (node.type) {\n\t case 7 /* Trigger */:\n\t return visitor.visitTrigger(node, context);\n\t case 0 /* State */:\n\t return visitor.visitState(node, context);\n\t case 1 /* Transition */:\n\t return visitor.visitTransition(node, context);\n\t case 2 /* Sequence */:\n\t return visitor.visitSequence(node, context);\n\t case 3 /* Group */:\n\t return visitor.visitGroup(node, context);\n\t case 4 /* Animate */:\n\t return visitor.visitAnimate(node, context);\n\t case 5 /* Keyframes */:\n\t return visitor.visitKeyframes(node, context);\n\t case 6 /* Style */:\n\t return visitor.visitStyle(node, context);\n\t case 8 /* Reference */:\n\t return visitor.visitReference(node, context);\n\t case 9 /* AnimateChild */:\n\t return visitor.visitAnimateChild(node, context);\n\t case 10 /* AnimateRef */:\n\t return visitor.visitAnimateRef(node, context);\n\t case 11 /* Query */:\n\t return visitor.visitQuery(node, context);\n\t case 12 /* Stagger */:\n\t return visitor.visitStagger(node, context);\n\t default:\n\t throw new Error(\"Unable to resolve animation metadata node #\" + node.type);\n\t }\n\t}\n\t\n\t/**\n\t * @fileoverview added by tsickle\n\t * @suppress {checkTypes} checked by tsc\n\t */\n\t/**\n\t * @license\n\t * Copyright Google Inc. All Rights Reserved.\n\t *\n\t * Use of this source code is governed by an MIT-style license that can be\n\t * found in the LICENSE file at https://angular.io/license\n\t */\n\tvar ANY_STATE = '*';\n\t/**\n\t * @param {?} transitionValue\n\t * @param {?} errors\n\t * @return {?}\n\t */\n\tfunction parseTransitionExpr(transitionValue, errors) {\n\t var /** @type {?} */ expressions = [];\n\t if (typeof transitionValue == 'string') {\n\t (/** @type {?} */ (transitionValue))\n\t .split(/\\s*,\\s*/)\n\t .forEach(function (str) { return parseInnerTransitionStr(str, expressions, errors); });\n\t }\n\t else {\n\t expressions.push(/** @type {?} */ (transitionValue));\n\t }\n\t return expressions;\n\t}\n\t/**\n\t * @param {?} eventStr\n\t * @param {?} expressions\n\t * @param {?} errors\n\t * @return {?}\n\t */\n\tfunction parseInnerTransitionStr(eventStr, expressions, errors) {\n\t if (eventStr[0] == ':') {\n\t var /** @type {?} */ result = parseAnimationAlias(eventStr, errors);\n\t if (typeof result == 'function') {\n\t expressions.push(result);\n\t return;\n\t }\n\t eventStr = /** @type {?} */ (result);\n\t }\n\t var /** @type {?} */ match = eventStr.match(/^(\\*|[-\\w]+)\\s*()\\s*(\\*|[-\\w]+)$/);\n\t if (match == null || match.length < 4) {\n\t errors.push(\"The provided transition expression \\\"\" + eventStr + \"\\\" is not supported\");\n\t return expressions;\n\t }\n\t var /** @type {?} */ fromState = match[1];\n\t var /** @type {?} */ separator = match[2];\n\t var /** @type {?} */ toState = match[3];\n\t expressions.push(makeLambdaFromStates(fromState, toState));\n\t var /** @type {?} */ isFullAnyStateExpr = fromState == ANY_STATE && toState == ANY_STATE;\n\t if (separator[0] == '<' && !isFullAnyStateExpr) {\n\t expressions.push(makeLambdaFromStates(toState, fromState));\n\t }\n\t}\n\t/**\n\t * @param {?} alias\n\t * @param {?} errors\n\t * @return {?}\n\t */\n\tfunction parseAnimationAlias(alias, errors) {\n\t switch (alias) {\n\t case ':enter':\n\t return 'void => *';\n\t case ':leave':\n\t return '* => void';\n\t case ':increment':\n\t return function (fromState, toState) { return parseFloat(toState) > parseFloat(fromState); };\n\t case ':decrement':\n\t return function (fromState, toState) { return parseFloat(toState) < parseFloat(fromState); };\n\t default:\n\t errors.push(\"The transition alias value \\\"\" + alias + \"\\\" is not supported\");\n\t return '* => *';\n\t }\n\t}\n\tvar TRUE_BOOLEAN_VALUES = new Set();\n\tTRUE_BOOLEAN_VALUES.add('true');\n\tTRUE_BOOLEAN_VALUES.add('1');\n\tvar FALSE_BOOLEAN_VALUES = new Set();\n\tFALSE_BOOLEAN_VALUES.add('false');\n\tFALSE_BOOLEAN_VALUES.add('0');\n\t/**\n\t * @param {?} lhs\n\t * @param {?} rhs\n\t * @return {?}\n\t */\n\tfunction makeLambdaFromStates(lhs, rhs) {\n\t var /** @type {?} */ LHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(lhs) || FALSE_BOOLEAN_VALUES.has(lhs);\n\t var /** @type {?} */ RHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(rhs) || FALSE_BOOLEAN_VALUES.has(rhs);\n\t return function (fromState, toState) {\n\t var /** @type {?} */ lhsMatch = lhs == ANY_STATE || lhs == fromState;\n\t var /** @type {?} */ rhsMatch = rhs == ANY_STATE || rhs == toState;\n\t if (!lhsMatch && LHS_MATCH_BOOLEAN && typeof fromState === 'boolean') {\n\t lhsMatch = fromState ? TRUE_BOOLEAN_VALUES.has(lhs) : FALSE_BOOLEAN_VALUES.has(lhs);\n\t }\n\t if (!rhsMatch && RHS_MATCH_BOOLEAN && typeof toState === 'boolean') {\n\t rhsMatch = toState ? TRUE_BOOLEAN_VALUES.has(rhs) : FALSE_BOOLEAN_VALUES.has(rhs);\n\t }\n\t return lhsMatch && rhsMatch;\n\t };\n\t}\n\t\n\t/**\n\t * @fileoverview added by tsickle\n\t * @suppress {checkTypes} checked by tsc\n\t */\n\t/**\n\t * @license\n\t * Copyright Google Inc. All Rights Reserved.\n\t *\n\t * Use of this source code is governed by an MIT-style license that can be\n\t * found in the LICENSE file at https://angular.io/license\n\t */\n\tvar SELF_TOKEN = ':self';\n\tvar SELF_TOKEN_REGEX = new RegExp(\"s*\" + SELF_TOKEN + \"s*,?\", 'g');\n\t/**\n\t * @param {?} driver\n\t * @param {?} metadata\n\t * @param {?} errors\n\t * @return {?}\n\t */\n\tfunction buildAnimationAst(driver, metadata, errors) {\n\t return new AnimationAstBuilderVisitor(driver).build(metadata, errors);\n\t}\n\tvar LEAVE_TOKEN = ':leave';\n\tvar LEAVE_TOKEN_REGEX = new RegExp(LEAVE_TOKEN, 'g');\n\tvar ENTER_TOKEN = ':enter';\n\tvar ENTER_TOKEN_REGEX = new RegExp(ENTER_TOKEN, 'g');\n\tvar ROOT_SELECTOR = '';\n\tvar AnimationAstBuilderVisitor = (function () {\n\t function AnimationAstBuilderVisitor(_driver) {\n\t this._driver = _driver;\n\t }\n\t /**\n\t * @param {?} metadata\n\t * @param {?} errors\n\t * @return {?}\n\t */\n\t AnimationAstBuilderVisitor.prototype.build = /**\n\t * @param {?} metadata\n\t * @param {?} errors\n\t * @return {?}\n\t */\n\t function (metadata, errors) {\n\t var /** @type {?} */ context = new AnimationAstBuilderContext(errors);\n\t this._resetContextStyleTimingState(context);\n\t return /** @type {?} */ (visitDslNode(this, normalizeAnimationEntry(metadata), context));\n\t };\n\t /**\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationAstBuilderVisitor.prototype._resetContextStyleTimingState = /**\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (context) {\n\t context.currentQuerySelector = ROOT_SELECTOR;\n\t context.collectedStyles = {};\n\t context.collectedStyles[ROOT_SELECTOR] = {};\n\t context.currentTime = 0;\n\t };\n\t /**\n\t * @param {?} metadata\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationAstBuilderVisitor.prototype.visitTrigger = /**\n\t * @param {?} metadata\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (metadata, context) {\n\t var _this = this;\n\t var /** @type {?} */ queryCount = context.queryCount = 0;\n\t var /** @type {?} */ depCount = context.depCount = 0;\n\t var /** @type {?} */ states = [];\n\t var /** @type {?} */ transitions = [];\n\t metadata.definitions.forEach(function (def) {\n\t _this._resetContextStyleTimingState(context);\n\t if (def.type == 0 /* State */) {\n\t var /** @type {?} */ stateDef_1 = /** @type {?} */ (def);\n\t var /** @type {?} */ name_1 = stateDef_1.name;\n\t name_1.split(/\\s*,\\s*/).forEach(function (n) {\n\t stateDef_1.name = n;\n\t states.push(_this.visitState(stateDef_1, context));\n\t });\n\t stateDef_1.name = name_1;\n\t }\n\t else if (def.type == 1 /* Transition */) {\n\t var /** @type {?} */ transition = _this.visitTransition(/** @type {?} */ (def), context);\n\t queryCount += transition.queryCount;\n\t depCount += transition.depCount;\n\t transitions.push(transition);\n\t }\n\t else {\n\t context.errors.push('only state() and transition() definitions can sit inside of a trigger()');\n\t }\n\t });\n\t return {\n\t type: 7 /* Trigger */,\n\t name: metadata.name, states: states, transitions: transitions, queryCount: queryCount, depCount: depCount,\n\t options: null\n\t };\n\t };\n\t /**\n\t * @param {?} metadata\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationAstBuilderVisitor.prototype.visitState = /**\n\t * @param {?} metadata\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (metadata, context) {\n\t var /** @type {?} */ styleAst = this.visitStyle(metadata.styles, context);\n\t var /** @type {?} */ astParams = (metadata.options && metadata.options.params) || null;\n\t if (styleAst.containsDynamicStyles) {\n\t var /** @type {?} */ missingSubs_1 = new Set();\n\t var /** @type {?} */ params_1 = astParams || {};\n\t styleAst.styles.forEach(function (value) {\n\t if (isObject(value)) {\n\t var /** @type {?} */ stylesObj_1 = /** @type {?} */ (value);\n\t Object.keys(stylesObj_1).forEach(function (prop) {\n\t extractStyleParams(stylesObj_1[prop]).forEach(function (sub) {\n\t if (!params_1.hasOwnProperty(sub)) {\n\t missingSubs_1.add(sub);\n\t }\n\t });\n\t });\n\t }\n\t });\n\t if (missingSubs_1.size) {\n\t var /** @type {?} */ missingSubsArr = iteratorToArray(missingSubs_1.values());\n\t context.errors.push(\"state(\\\"\" + metadata.name + \"\\\", ...) must define default values for all the following style substitutions: \" + missingSubsArr.join(', '));\n\t }\n\t }\n\t return {\n\t type: 0 /* State */,\n\t name: metadata.name,\n\t style: styleAst,\n\t options: astParams ? { params: astParams } : null\n\t };\n\t };\n\t /**\n\t * @param {?} metadata\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationAstBuilderVisitor.prototype.visitTransition = /**\n\t * @param {?} metadata\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (metadata, context) {\n\t context.queryCount = 0;\n\t context.depCount = 0;\n\t var /** @type {?} */ animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n\t var /** @type {?} */ matchers = parseTransitionExpr(metadata.expr, context.errors);\n\t return {\n\t type: 1 /* Transition */,\n\t matchers: matchers,\n\t animation: animation,\n\t queryCount: context.queryCount,\n\t depCount: context.depCount,\n\t options: normalizeAnimationOptions(metadata.options)\n\t };\n\t };\n\t /**\n\t * @param {?} metadata\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationAstBuilderVisitor.prototype.visitSequence = /**\n\t * @param {?} metadata\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (metadata, context) {\n\t var _this = this;\n\t return {\n\t type: 2 /* Sequence */,\n\t steps: metadata.steps.map(function (s) { return visitDslNode(_this, s, context); }),\n\t options: normalizeAnimationOptions(metadata.options)\n\t };\n\t };\n\t /**\n\t * @param {?} metadata\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationAstBuilderVisitor.prototype.visitGroup = /**\n\t * @param {?} metadata\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (metadata, context) {\n\t var _this = this;\n\t var /** @type {?} */ currentTime = context.currentTime;\n\t var /** @type {?} */ furthestTime = 0;\n\t var /** @type {?} */ steps = metadata.steps.map(function (step) {\n\t context.currentTime = currentTime;\n\t var /** @type {?} */ innerAst = visitDslNode(_this, step, context);\n\t furthestTime = Math.max(furthestTime, context.currentTime);\n\t return innerAst;\n\t });\n\t context.currentTime = furthestTime;\n\t return {\n\t type: 3 /* Group */,\n\t steps: steps,\n\t options: normalizeAnimationOptions(metadata.options)\n\t };\n\t };\n\t /**\n\t * @param {?} metadata\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationAstBuilderVisitor.prototype.visitAnimate = /**\n\t * @param {?} metadata\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (metadata, context) {\n\t var /** @type {?} */ timingAst = constructTimingAst(metadata.timings, context.errors);\n\t context.currentAnimateTimings = timingAst;\n\t var /** @type {?} */ styleAst;\n\t var /** @type {?} */ styleMetadata = metadata.styles ? metadata.styles : _angular_animations.style({});\n\t if (styleMetadata.type == 5 /* Keyframes */) {\n\t styleAst = this.visitKeyframes(/** @type {?} */ (styleMetadata), context);\n\t }\n\t else {\n\t var /** @type {?} */ styleMetadata_1 = /** @type {?} */ (metadata.styles);\n\t var /** @type {?} */ isEmpty = false;\n\t if (!styleMetadata_1) {\n\t isEmpty = true;\n\t var /** @type {?} */ newStyleData = {};\n\t if (timingAst.easing) {\n\t newStyleData['easing'] = timingAst.easing;\n\t }\n\t styleMetadata_1 = _angular_animations.style(newStyleData);\n\t }\n\t context.currentTime += timingAst.duration + timingAst.delay;\n\t var /** @type {?} */ _styleAst = this.visitStyle(styleMetadata_1, context);\n\t _styleAst.isEmptyStep = isEmpty;\n\t styleAst = _styleAst;\n\t }\n\t context.currentAnimateTimings = null;\n\t return {\n\t type: 4 /* Animate */,\n\t timings: timingAst,\n\t style: styleAst,\n\t options: null\n\t };\n\t };\n\t /**\n\t * @param {?} metadata\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationAstBuilderVisitor.prototype.visitStyle = /**\n\t * @param {?} metadata\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (metadata, context) {\n\t var /** @type {?} */ ast = this._makeStyleAst(metadata, context);\n\t this._validateStyleAst(ast, context);\n\t return ast;\n\t };\n\t /**\n\t * @param {?} metadata\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationAstBuilderVisitor.prototype._makeStyleAst = /**\n\t * @param {?} metadata\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (metadata, context) {\n\t var /** @type {?} */ styles = [];\n\t if (Array.isArray(metadata.styles)) {\n\t (/** @type {?} */ (metadata.styles)).forEach(function (styleTuple) {\n\t if (typeof styleTuple == 'string') {\n\t if (styleTuple == _angular_animations.AUTO_STYLE) {\n\t styles.push(/** @type {?} */ (styleTuple));\n\t }\n\t else {\n\t context.errors.push(\"The provided style string value \" + styleTuple + \" is not allowed.\");\n\t }\n\t }\n\t else {\n\t styles.push(/** @type {?} */ (styleTuple));\n\t }\n\t });\n\t }\n\t else {\n\t styles.push(metadata.styles);\n\t }\n\t var /** @type {?} */ containsDynamicStyles = false;\n\t var /** @type {?} */ collectedEasing = null;\n\t styles.forEach(function (styleData) {\n\t if (isObject(styleData)) {\n\t var /** @type {?} */ styleMap = /** @type {?} */ (styleData);\n\t var /** @type {?} */ easing = styleMap['easing'];\n\t if (easing) {\n\t collectedEasing = /** @type {?} */ (easing);\n\t delete styleMap['easing'];\n\t }\n\t if (!containsDynamicStyles) {\n\t for (var /** @type {?} */ prop in styleMap) {\n\t var /** @type {?} */ value = styleMap[prop];\n\t if (value.toString().indexOf(SUBSTITUTION_EXPR_START) >= 0) {\n\t containsDynamicStyles = true;\n\t break;\n\t }\n\t }\n\t }\n\t }\n\t });\n\t return {\n\t type: 6 /* Style */,\n\t styles: styles,\n\t easing: collectedEasing,\n\t offset: metadata.offset, containsDynamicStyles: containsDynamicStyles,\n\t options: null\n\t };\n\t };\n\t /**\n\t * @param {?} ast\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationAstBuilderVisitor.prototype._validateStyleAst = /**\n\t * @param {?} ast\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (ast, context) {\n\t var _this = this;\n\t var /** @type {?} */ timings = context.currentAnimateTimings;\n\t var /** @type {?} */ endTime = context.currentTime;\n\t var /** @type {?} */ startTime = context.currentTime;\n\t if (timings && startTime > 0) {\n\t startTime -= timings.duration + timings.delay;\n\t }\n\t ast.styles.forEach(function (tuple) {\n\t if (typeof tuple == 'string')\n\t return;\n\t Object.keys(tuple).forEach(function (prop) {\n\t if (!_this._driver.validateStyleProperty(prop)) {\n\t context.errors.push(\"The provided animation property \\\"\" + prop + \"\\\" is not a supported CSS property for animations\");\n\t return;\n\t }\n\t var /** @type {?} */ collectedStyles = context.collectedStyles[/** @type {?} */ ((context.currentQuerySelector))];\n\t var /** @type {?} */ collectedEntry = collectedStyles[prop];\n\t var /** @type {?} */ updateCollectedStyle = true;\n\t if (collectedEntry) {\n\t if (startTime != endTime && startTime >= collectedEntry.startTime &&\n\t endTime <= collectedEntry.endTime) {\n\t context.errors.push(\"The CSS property \\\"\" + prop + \"\\\" that exists between the times of \\\"\" + collectedEntry.startTime + \"ms\\\" and \\\"\" + collectedEntry.endTime + \"ms\\\" is also being animated in a parallel animation between the times of \\\"\" + startTime + \"ms\\\" and \\\"\" + endTime + \"ms\\\"\");\n\t updateCollectedStyle = false;\n\t }\n\t // we always choose the smaller start time value since we\n\t // want to have a record of the entire animation window where\n\t // the style property is being animated in between\n\t startTime = collectedEntry.startTime;\n\t }\n\t if (updateCollectedStyle) {\n\t collectedStyles[prop] = { startTime: startTime, endTime: endTime };\n\t }\n\t if (context.options) {\n\t validateStyleParams(tuple[prop], context.options, context.errors);\n\t }\n\t });\n\t });\n\t };\n\t /**\n\t * @param {?} metadata\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationAstBuilderVisitor.prototype.visitKeyframes = /**\n\t * @param {?} metadata\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (metadata, context) {\n\t var _this = this;\n\t var /** @type {?} */ ast = { type: 5 /* Keyframes */, styles: [], options: null };\n\t if (!context.currentAnimateTimings) {\n\t context.errors.push(\"keyframes() must be placed inside of a call to animate()\");\n\t return ast;\n\t }\n\t var /** @type {?} */ MAX_KEYFRAME_OFFSET = 1;\n\t var /** @type {?} */ totalKeyframesWithOffsets = 0;\n\t var /** @type {?} */ offsets = [];\n\t var /** @type {?} */ offsetsOutOfOrder = false;\n\t var /** @type {?} */ keyframesOutOfRange = false;\n\t var /** @type {?} */ previousOffset = 0;\n\t var /** @type {?} */ keyframes = metadata.steps.map(function (styles) {\n\t var /** @type {?} */ style$$1 = _this._makeStyleAst(styles, context);\n\t var /** @type {?} */ offsetVal = style$$1.offset != null ? style$$1.offset : consumeOffset(style$$1.styles);\n\t var /** @type {?} */ offset = 0;\n\t if (offsetVal != null) {\n\t totalKeyframesWithOffsets++;\n\t offset = style$$1.offset = offsetVal;\n\t }\n\t keyframesOutOfRange = keyframesOutOfRange || offset < 0 || offset > 1;\n\t offsetsOutOfOrder = offsetsOutOfOrder || offset < previousOffset;\n\t previousOffset = offset;\n\t offsets.push(offset);\n\t return style$$1;\n\t });\n\t if (keyframesOutOfRange) {\n\t context.errors.push(\"Please ensure that all keyframe offsets are between 0 and 1\");\n\t }\n\t if (offsetsOutOfOrder) {\n\t context.errors.push(\"Please ensure that all keyframe offsets are in order\");\n\t }\n\t var /** @type {?} */ length = metadata.steps.length;\n\t var /** @type {?} */ generatedOffset = 0;\n\t if (totalKeyframesWithOffsets > 0 && totalKeyframesWithOffsets < length) {\n\t context.errors.push(\"Not all style() steps within the declared keyframes() contain offsets\");\n\t }\n\t else if (totalKeyframesWithOffsets == 0) {\n\t generatedOffset = MAX_KEYFRAME_OFFSET / (length - 1);\n\t }\n\t var /** @type {?} */ limit = length - 1;\n\t var /** @type {?} */ currentTime = context.currentTime;\n\t var /** @type {?} */ currentAnimateTimings = /** @type {?} */ ((context.currentAnimateTimings));\n\t var /** @type {?} */ animateDuration = currentAnimateTimings.duration;\n\t keyframes.forEach(function (kf, i) {\n\t var /** @type {?} */ offset = generatedOffset > 0 ? (i == limit ? 1 : (generatedOffset * i)) : offsets[i];\n\t var /** @type {?} */ durationUpToThisFrame = offset * animateDuration;\n\t context.currentTime = currentTime + currentAnimateTimings.delay + durationUpToThisFrame;\n\t currentAnimateTimings.duration = durationUpToThisFrame;\n\t _this._validateStyleAst(kf, context);\n\t kf.offset = offset;\n\t ast.styles.push(kf);\n\t });\n\t return ast;\n\t };\n\t /**\n\t * @param {?} metadata\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationAstBuilderVisitor.prototype.visitReference = /**\n\t * @param {?} metadata\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (metadata, context) {\n\t return {\n\t type: 8 /* Reference */,\n\t animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n\t options: normalizeAnimationOptions(metadata.options)\n\t };\n\t };\n\t /**\n\t * @param {?} metadata\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationAstBuilderVisitor.prototype.visitAnimateChild = /**\n\t * @param {?} metadata\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (metadata, context) {\n\t context.depCount++;\n\t return {\n\t type: 9 /* AnimateChild */,\n\t options: normalizeAnimationOptions(metadata.options)\n\t };\n\t };\n\t /**\n\t * @param {?} metadata\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationAstBuilderVisitor.prototype.visitAnimateRef = /**\n\t * @param {?} metadata\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (metadata, context) {\n\t return {\n\t type: 10 /* AnimateRef */,\n\t animation: this.visitReference(metadata.animation, context),\n\t options: normalizeAnimationOptions(metadata.options)\n\t };\n\t };\n\t /**\n\t * @param {?} metadata\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationAstBuilderVisitor.prototype.visitQuery = /**\n\t * @param {?} metadata\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (metadata, context) {\n\t var /** @type {?} */ parentSelector = /** @type {?} */ ((context.currentQuerySelector));\n\t var /** @type {?} */ options = /** @type {?} */ ((metadata.options || {}));\n\t context.queryCount++;\n\t context.currentQuery = metadata;\n\t var _a = normalizeSelector(metadata.selector), selector = _a[0], includeSelf = _a[1];\n\t context.currentQuerySelector =\n\t parentSelector.length ? (parentSelector + ' ' + selector) : selector;\n\t getOrSetAsInMap(context.collectedStyles, context.currentQuerySelector, {});\n\t var /** @type {?} */ animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n\t context.currentQuery = null;\n\t context.currentQuerySelector = parentSelector;\n\t return {\n\t type: 11 /* Query */,\n\t selector: selector,\n\t limit: options.limit || 0,\n\t optional: !!options.optional, includeSelf: includeSelf, animation: animation,\n\t originalSelector: metadata.selector,\n\t options: normalizeAnimationOptions(metadata.options)\n\t };\n\t };\n\t /**\n\t * @param {?} metadata\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationAstBuilderVisitor.prototype.visitStagger = /**\n\t * @param {?} metadata\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (metadata, context) {\n\t if (!context.currentQuery) {\n\t context.errors.push(\"stagger() can only be used inside of query()\");\n\t }\n\t var /** @type {?} */ timings = metadata.timings === 'full' ?\n\t { duration: 0, delay: 0, easing: 'full' } :\n\t resolveTiming(metadata.timings, context.errors, true);\n\t return {\n\t type: 12 /* Stagger */,\n\t animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context), timings: timings,\n\t options: null\n\t };\n\t };\n\t return AnimationAstBuilderVisitor;\n\t}());\n\t/**\n\t * @param {?} selector\n\t * @return {?}\n\t */\n\tfunction normalizeSelector(selector) {\n\t var /** @type {?} */ hasAmpersand = selector.split(/\\s*,\\s*/).find(function (token) { return token == SELF_TOKEN; }) ? true : false;\n\t if (hasAmpersand) {\n\t selector = selector.replace(SELF_TOKEN_REGEX, '');\n\t }\n\t selector = selector.replace(ENTER_TOKEN_REGEX, ENTER_SELECTOR)\n\t .replace(LEAVE_TOKEN_REGEX, LEAVE_SELECTOR)\n\t .replace(/@\\*/g, NG_TRIGGER_SELECTOR)\n\t .replace(/@\\w+/g, function (match) { return NG_TRIGGER_SELECTOR + '-' + match.substr(1); })\n\t .replace(/:animating/g, NG_ANIMATING_SELECTOR);\n\t return [selector, hasAmpersand];\n\t}\n\t/**\n\t * @param {?} obj\n\t * @return {?}\n\t */\n\tfunction normalizeParams(obj) {\n\t return obj ? copyObj(obj) : null;\n\t}\n\tvar AnimationAstBuilderContext = (function () {\n\t function AnimationAstBuilderContext(errors) {\n\t this.errors = errors;\n\t this.queryCount = 0;\n\t this.depCount = 0;\n\t this.currentTransition = null;\n\t this.currentQuery = null;\n\t this.currentQuerySelector = null;\n\t this.currentAnimateTimings = null;\n\t this.currentTime = 0;\n\t this.collectedStyles = {};\n\t this.options = null;\n\t }\n\t return AnimationAstBuilderContext;\n\t}());\n\t/**\n\t * @param {?} styles\n\t * @return {?}\n\t */\n\tfunction consumeOffset(styles) {\n\t if (typeof styles == 'string')\n\t return null;\n\t var /** @type {?} */ offset = null;\n\t if (Array.isArray(styles)) {\n\t styles.forEach(function (styleTuple) {\n\t if (isObject(styleTuple) && styleTuple.hasOwnProperty('offset')) {\n\t var /** @type {?} */ obj = /** @type {?} */ (styleTuple);\n\t offset = parseFloat(/** @type {?} */ (obj['offset']));\n\t delete obj['offset'];\n\t }\n\t });\n\t }\n\t else if (isObject(styles) && styles.hasOwnProperty('offset')) {\n\t var /** @type {?} */ obj = /** @type {?} */ (styles);\n\t offset = parseFloat(/** @type {?} */ (obj['offset']));\n\t delete obj['offset'];\n\t }\n\t return offset;\n\t}\n\t/**\n\t * @param {?} value\n\t * @return {?}\n\t */\n\tfunction isObject(value) {\n\t return !Array.isArray(value) && typeof value == 'object';\n\t}\n\t/**\n\t * @param {?} value\n\t * @param {?} errors\n\t * @return {?}\n\t */\n\tfunction constructTimingAst(value, errors) {\n\t var /** @type {?} */ timings = null;\n\t if (value.hasOwnProperty('duration')) {\n\t timings = /** @type {?} */ (value);\n\t }\n\t else if (typeof value == 'number') {\n\t var /** @type {?} */ duration = resolveTiming(/** @type {?} */ (value), errors).duration;\n\t return makeTimingAst(/** @type {?} */ (duration), 0, '');\n\t }\n\t var /** @type {?} */ strValue = /** @type {?} */ (value);\n\t var /** @type {?} */ isDynamic = strValue.split(/\\s+/).some(function (v) { return v.charAt(0) == '{' && v.charAt(1) == '{'; });\n\t if (isDynamic) {\n\t var /** @type {?} */ ast = /** @type {?} */ (makeTimingAst(0, 0, ''));\n\t ast.dynamic = true;\n\t ast.strValue = strValue;\n\t return /** @type {?} */ (ast);\n\t }\n\t timings = timings || resolveTiming(strValue, errors);\n\t return makeTimingAst(timings.duration, timings.delay, timings.easing);\n\t}\n\t/**\n\t * @param {?} options\n\t * @return {?}\n\t */\n\tfunction normalizeAnimationOptions(options) {\n\t if (options) {\n\t options = copyObj(options);\n\t if (options['params']) {\n\t options['params'] = /** @type {?} */ ((normalizeParams(options['params'])));\n\t }\n\t }\n\t else {\n\t options = {};\n\t }\n\t return options;\n\t}\n\t/**\n\t * @param {?} duration\n\t * @param {?} delay\n\t * @param {?} easing\n\t * @return {?}\n\t */\n\tfunction makeTimingAst(duration, delay, easing) {\n\t return { duration: duration, delay: delay, easing: easing };\n\t}\n\t\n\t/**\n\t * @fileoverview added by tsickle\n\t * @suppress {checkTypes} checked by tsc\n\t */\n\t/**\n\t * @record\n\t */\n\t\n\t/**\n\t * @param {?} element\n\t * @param {?} keyframes\n\t * @param {?} preStyleProps\n\t * @param {?} postStyleProps\n\t * @param {?} duration\n\t * @param {?} delay\n\t * @param {?=} easing\n\t * @param {?=} subTimeline\n\t * @return {?}\n\t */\n\tfunction createTimelineInstruction(element, keyframes, preStyleProps, postStyleProps, duration, delay, easing, subTimeline) {\n\t if (easing === void 0) { easing = null; }\n\t if (subTimeline === void 0) { subTimeline = false; }\n\t return {\n\t type: 1 /* TimelineAnimation */,\n\t element: element,\n\t keyframes: keyframes,\n\t preStyleProps: preStyleProps,\n\t postStyleProps: postStyleProps,\n\t duration: duration,\n\t delay: delay,\n\t totalTime: duration + delay, easing: easing, subTimeline: subTimeline\n\t };\n\t}\n\t\n\t/**\n\t * @fileoverview added by tsickle\n\t * @suppress {checkTypes} checked by tsc\n\t */\n\tvar ElementInstructionMap = (function () {\n\t function ElementInstructionMap() {\n\t this._map = new Map();\n\t }\n\t /**\n\t * @param {?} element\n\t * @return {?}\n\t */\n\t ElementInstructionMap.prototype.consume = /**\n\t * @param {?} element\n\t * @return {?}\n\t */\n\t function (element) {\n\t var /** @type {?} */ instructions = this._map.get(element);\n\t if (instructions) {\n\t this._map.delete(element);\n\t }\n\t else {\n\t instructions = [];\n\t }\n\t return instructions;\n\t };\n\t /**\n\t * @param {?} element\n\t * @param {?} instructions\n\t * @return {?}\n\t */\n\t ElementInstructionMap.prototype.append = /**\n\t * @param {?} element\n\t * @param {?} instructions\n\t * @return {?}\n\t */\n\t function (element, instructions) {\n\t var /** @type {?} */ existingInstructions = this._map.get(element);\n\t if (!existingInstructions) {\n\t this._map.set(element, existingInstructions = []);\n\t }\n\t existingInstructions.push.apply(existingInstructions, instructions);\n\t };\n\t /**\n\t * @param {?} element\n\t * @return {?}\n\t */\n\t ElementInstructionMap.prototype.has = /**\n\t * @param {?} element\n\t * @return {?}\n\t */\n\t function (element) { return this._map.has(element); };\n\t /**\n\t * @return {?}\n\t */\n\t ElementInstructionMap.prototype.clear = /**\n\t * @return {?}\n\t */\n\t function () { this._map.clear(); };\n\t return ElementInstructionMap;\n\t}());\n\t\n\t/**\n\t * @fileoverview added by tsickle\n\t * @suppress {checkTypes} checked by tsc\n\t */\n\t/**\n\t * @license\n\t * Copyright Google Inc. All Rights Reserved.\n\t *\n\t * Use of this source code is governed by an MIT-style license that can be\n\t * found in the LICENSE file at https://angular.io/license\n\t */\n\tvar ONE_FRAME_IN_MILLISECONDS = 1;\n\t/**\n\t * @param {?} driver\n\t * @param {?} rootElement\n\t * @param {?} ast\n\t * @param {?=} startingStyles\n\t * @param {?=} finalStyles\n\t * @param {?=} options\n\t * @param {?=} subInstructions\n\t * @param {?=} errors\n\t * @return {?}\n\t */\n\tfunction buildAnimationTimelines(driver, rootElement, ast, startingStyles, finalStyles, options, subInstructions, errors) {\n\t if (startingStyles === void 0) { startingStyles = {}; }\n\t if (finalStyles === void 0) { finalStyles = {}; }\n\t if (errors === void 0) { errors = []; }\n\t return new AnimationTimelineBuilderVisitor().buildKeyframes(driver, rootElement, ast, startingStyles, finalStyles, options, subInstructions, errors);\n\t}\n\tvar AnimationTimelineBuilderVisitor = (function () {\n\t function AnimationTimelineBuilderVisitor() {\n\t }\n\t /**\n\t * @param {?} driver\n\t * @param {?} rootElement\n\t * @param {?} ast\n\t * @param {?} startingStyles\n\t * @param {?} finalStyles\n\t * @param {?} options\n\t * @param {?=} subInstructions\n\t * @param {?=} errors\n\t * @return {?}\n\t */\n\t AnimationTimelineBuilderVisitor.prototype.buildKeyframes = /**\n\t * @param {?} driver\n\t * @param {?} rootElement\n\t * @param {?} ast\n\t * @param {?} startingStyles\n\t * @param {?} finalStyles\n\t * @param {?} options\n\t * @param {?=} subInstructions\n\t * @param {?=} errors\n\t * @return {?}\n\t */\n\t function (driver, rootElement, ast, startingStyles, finalStyles, options, subInstructions, errors) {\n\t if (errors === void 0) { errors = []; }\n\t subInstructions = subInstructions || new ElementInstructionMap();\n\t var /** @type {?} */ context = new AnimationTimelineContext(driver, rootElement, subInstructions, errors, []);\n\t context.options = options;\n\t context.currentTimeline.setStyles([startingStyles], null, context.errors, options);\n\t visitDslNode(this, ast, context);\n\t // this checks to see if an actual animation happened\n\t var /** @type {?} */ timelines = context.timelines.filter(function (timeline) { return timeline.containsAnimation(); });\n\t if (timelines.length && Object.keys(finalStyles).length) {\n\t var /** @type {?} */ tl = timelines[timelines.length - 1];\n\t if (!tl.allowOnlyTimelineStyles()) {\n\t tl.setStyles([finalStyles], null, context.errors, options);\n\t }\n\t }\n\t return timelines.length ? timelines.map(function (timeline) { return timeline.buildKeyframes(); }) :\n\t [createTimelineInstruction(rootElement, [], [], [], 0, 0, '', false)];\n\t };\n\t /**\n\t * @param {?} ast\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationTimelineBuilderVisitor.prototype.visitTrigger = /**\n\t * @param {?} ast\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (ast, context) {\n\t // these values are not visited in this AST\n\t };\n\t /**\n\t * @param {?} ast\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationTimelineBuilderVisitor.prototype.visitState = /**\n\t * @param {?} ast\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (ast, context) {\n\t // these values are not visited in this AST\n\t };\n\t /**\n\t * @param {?} ast\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationTimelineBuilderVisitor.prototype.visitTransition = /**\n\t * @param {?} ast\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (ast, context) {\n\t // these values are not visited in this AST\n\t };\n\t /**\n\t * @param {?} ast\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationTimelineBuilderVisitor.prototype.visitAnimateChild = /**\n\t * @param {?} ast\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (ast, context) {\n\t var /** @type {?} */ elementInstructions = context.subInstructions.consume(context.element);\n\t if (elementInstructions) {\n\t var /** @type {?} */ innerContext = context.createSubContext(ast.options);\n\t var /** @type {?} */ startTime = context.currentTimeline.currentTime;\n\t var /** @type {?} */ endTime = this._visitSubInstructions(elementInstructions, innerContext, /** @type {?} */ (innerContext.options));\n\t if (startTime != endTime) {\n\t // we do this on the upper context because we created a sub context for\n\t // the sub child animations\n\t context.transformIntoNewTimeline(endTime);\n\t }\n\t }\n\t context.previousNode = ast;\n\t };\n\t /**\n\t * @param {?} ast\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationTimelineBuilderVisitor.prototype.visitAnimateRef = /**\n\t * @param {?} ast\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (ast, context) {\n\t var /** @type {?} */ innerContext = context.createSubContext(ast.options);\n\t innerContext.transformIntoNewTimeline();\n\t this.visitReference(ast.animation, innerContext);\n\t context.transformIntoNewTimeline(innerContext.currentTimeline.currentTime);\n\t context.previousNode = ast;\n\t };\n\t /**\n\t * @param {?} instructions\n\t * @param {?} context\n\t * @param {?} options\n\t * @return {?}\n\t */\n\t AnimationTimelineBuilderVisitor.prototype._visitSubInstructions = /**\n\t * @param {?} instructions\n\t * @param {?} context\n\t * @param {?} options\n\t * @return {?}\n\t */\n\t function (instructions, context, options) {\n\t var /** @type {?} */ startTime = context.currentTimeline.currentTime;\n\t var /** @type {?} */ furthestTime = startTime;\n\t // this is a special-case for when a user wants to skip a sub\n\t // animation from being fired entirely.\n\t var /** @type {?} */ duration = options.duration != null ? resolveTimingValue(options.duration) : null;\n\t var /** @type {?} */ delay = options.delay != null ? resolveTimingValue(options.delay) : null;\n\t if (duration !== 0) {\n\t instructions.forEach(function (instruction) {\n\t var /** @type {?} */ instructionTimings = context.appendInstructionToTimeline(instruction, duration, delay);\n\t furthestTime =\n\t Math.max(furthestTime, instructionTimings.duration + instructionTimings.delay);\n\t });\n\t }\n\t return furthestTime;\n\t };\n\t /**\n\t * @param {?} ast\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationTimelineBuilderVisitor.prototype.visitReference = /**\n\t * @param {?} ast\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (ast, context) {\n\t context.updateOptions(ast.options, true);\n\t visitDslNode(this, ast.animation, context);\n\t context.previousNode = ast;\n\t };\n\t /**\n\t * @param {?} ast\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationTimelineBuilderVisitor.prototype.visitSequence = /**\n\t * @param {?} ast\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (ast, context) {\n\t var _this = this;\n\t var /** @type {?} */ subContextCount = context.subContextCount;\n\t var /** @type {?} */ ctx = context;\n\t var /** @type {?} */ options = ast.options;\n\t if (options && (options.params || options.delay)) {\n\t ctx = context.createSubContext(options);\n\t ctx.transformIntoNewTimeline();\n\t if (options.delay != null) {\n\t if (ctx.previousNode.type == 6 /* Style */) {\n\t ctx.currentTimeline.snapshotCurrentStyles();\n\t ctx.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n\t }\n\t var /** @type {?} */ delay = resolveTimingValue(options.delay);\n\t ctx.delayNextStep(delay);\n\t }\n\t }\n\t if (ast.steps.length) {\n\t ast.steps.forEach(function (s) { return visitDslNode(_this, s, ctx); });\n\t // this is here just incase the inner steps only contain or end with a style() call\n\t ctx.currentTimeline.applyStylesToKeyframe();\n\t // this means that some animation function within the sequence\n\t // ended up creating a sub timeline (which means the current\n\t // timeline cannot overlap with the contents of the sequence)\n\t if (ctx.subContextCount > subContextCount) {\n\t ctx.transformIntoNewTimeline();\n\t }\n\t }\n\t context.previousNode = ast;\n\t };\n\t /**\n\t * @param {?} ast\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationTimelineBuilderVisitor.prototype.visitGroup = /**\n\t * @param {?} ast\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (ast, context) {\n\t var _this = this;\n\t var /** @type {?} */ innerTimelines = [];\n\t var /** @type {?} */ furthestTime = context.currentTimeline.currentTime;\n\t var /** @type {?} */ delay = ast.options && ast.options.delay ? resolveTimingValue(ast.options.delay) : 0;\n\t ast.steps.forEach(function (s) {\n\t var /** @type {?} */ innerContext = context.createSubContext(ast.options);\n\t if (delay) {\n\t innerContext.delayNextStep(delay);\n\t }\n\t visitDslNode(_this, s, innerContext);\n\t furthestTime = Math.max(furthestTime, innerContext.currentTimeline.currentTime);\n\t innerTimelines.push(innerContext.currentTimeline);\n\t });\n\t // this operation is run after the AST loop because otherwise\n\t // if the parent timeline's collected styles were updated then\n\t // it would pass in invalid data into the new-to-be forked items\n\t innerTimelines.forEach(function (timeline) { return context.currentTimeline.mergeTimelineCollectedStyles(timeline); });\n\t context.transformIntoNewTimeline(furthestTime);\n\t context.previousNode = ast;\n\t };\n\t /**\n\t * @param {?} ast\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationTimelineBuilderVisitor.prototype._visitTiming = /**\n\t * @param {?} ast\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (ast, context) {\n\t if ((/** @type {?} */ (ast)).dynamic) {\n\t var /** @type {?} */ strValue = (/** @type {?} */ (ast)).strValue;\n\t var /** @type {?} */ timingValue = context.params ? interpolateParams(strValue, context.params, context.errors) : strValue;\n\t return resolveTiming(timingValue, context.errors);\n\t }\n\t else {\n\t return { duration: ast.duration, delay: ast.delay, easing: ast.easing };\n\t }\n\t };\n\t /**\n\t * @param {?} ast\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationTimelineBuilderVisitor.prototype.visitAnimate = /**\n\t * @param {?} ast\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (ast, context) {\n\t var /** @type {?} */ timings = context.currentAnimateTimings = this._visitTiming(ast.timings, context);\n\t var /** @type {?} */ timeline = context.currentTimeline;\n\t if (timings.delay) {\n\t context.incrementTime(timings.delay);\n\t timeline.snapshotCurrentStyles();\n\t }\n\t var /** @type {?} */ style$$1 = ast.style;\n\t if (style$$1.type == 5 /* Keyframes */) {\n\t this.visitKeyframes(style$$1, context);\n\t }\n\t else {\n\t context.incrementTime(timings.duration);\n\t this.visitStyle(/** @type {?} */ (style$$1), context);\n\t timeline.applyStylesToKeyframe();\n\t }\n\t context.currentAnimateTimings = null;\n\t context.previousNode = ast;\n\t };\n\t /**\n\t * @param {?} ast\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationTimelineBuilderVisitor.prototype.visitStyle = /**\n\t * @param {?} ast\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (ast, context) {\n\t var /** @type {?} */ timeline = context.currentTimeline;\n\t var /** @type {?} */ timings = /** @type {?} */ ((context.currentAnimateTimings));\n\t // this is a special case for when a style() call\n\t // directly follows an animate() call (but not inside of an animate() call)\n\t if (!timings && timeline.getCurrentStyleProperties().length) {\n\t timeline.forwardFrame();\n\t }\n\t var /** @type {?} */ easing = (timings && timings.easing) || ast.easing;\n\t if (ast.isEmptyStep) {\n\t timeline.applyEmptyStep(easing);\n\t }\n\t else {\n\t timeline.setStyles(ast.styles, easing, context.errors, context.options);\n\t }\n\t context.previousNode = ast;\n\t };\n\t /**\n\t * @param {?} ast\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationTimelineBuilderVisitor.prototype.visitKeyframes = /**\n\t * @param {?} ast\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (ast, context) {\n\t var /** @type {?} */ currentAnimateTimings = /** @type {?} */ ((context.currentAnimateTimings));\n\t var /** @type {?} */ startTime = (/** @type {?} */ ((context.currentTimeline))).duration;\n\t var /** @type {?} */ duration = currentAnimateTimings.duration;\n\t var /** @type {?} */ innerContext = context.createSubContext();\n\t var /** @type {?} */ innerTimeline = innerContext.currentTimeline;\n\t innerTimeline.easing = currentAnimateTimings.easing;\n\t ast.styles.forEach(function (step) {\n\t var /** @type {?} */ offset = step.offset || 0;\n\t innerTimeline.forwardTime(offset * duration);\n\t innerTimeline.setStyles(step.styles, step.easing, context.errors, context.options);\n\t innerTimeline.applyStylesToKeyframe();\n\t });\n\t // this will ensure that the parent timeline gets all the styles from\n\t // the child even if the new timeline below is not used\n\t context.currentTimeline.mergeTimelineCollectedStyles(innerTimeline);\n\t // we do this because the window between this timeline and the sub timeline\n\t // should ensure that the styles within are exactly the same as they were before\n\t context.transformIntoNewTimeline(startTime + duration);\n\t context.previousNode = ast;\n\t };\n\t /**\n\t * @param {?} ast\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationTimelineBuilderVisitor.prototype.visitQuery = /**\n\t * @param {?} ast\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (ast, context) {\n\t var _this = this;\n\t // in the event that the first step before this is a style step we need\n\t // to ensure the styles are applied before the children are animated\n\t var /** @type {?} */ startTime = context.currentTimeline.currentTime;\n\t var /** @type {?} */ options = /** @type {?} */ ((ast.options || {}));\n\t var /** @type {?} */ delay = options.delay ? resolveTimingValue(options.delay) : 0;\n\t if (delay && (context.previousNode.type === 6 /* Style */ ||\n\t (startTime == 0 && context.currentTimeline.getCurrentStyleProperties().length))) {\n\t context.currentTimeline.snapshotCurrentStyles();\n\t context.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n\t }\n\t var /** @type {?} */ furthestTime = startTime;\n\t var /** @type {?} */ elms = context.invokeQuery(ast.selector, ast.originalSelector, ast.limit, ast.includeSelf, options.optional ? true : false, context.errors);\n\t context.currentQueryTotal = elms.length;\n\t var /** @type {?} */ sameElementTimeline = null;\n\t elms.forEach(function (element, i) {\n\t context.currentQueryIndex = i;\n\t var /** @type {?} */ innerContext = context.createSubContext(ast.options, element);\n\t if (delay) {\n\t innerContext.delayNextStep(delay);\n\t }\n\t if (element === context.element) {\n\t sameElementTimeline = innerContext.currentTimeline;\n\t }\n\t visitDslNode(_this, ast.animation, innerContext);\n\t // this is here just incase the inner steps only contain or end\n\t // with a style() call (which is here to signal that this is a preparatory\n\t // call to style an element before it is animated again)\n\t innerContext.currentTimeline.applyStylesToKeyframe();\n\t var /** @type {?} */ endTime = innerContext.currentTimeline.currentTime;\n\t furthestTime = Math.max(furthestTime, endTime);\n\t });\n\t context.currentQueryIndex = 0;\n\t context.currentQueryTotal = 0;\n\t context.transformIntoNewTimeline(furthestTime);\n\t if (sameElementTimeline) {\n\t context.currentTimeline.mergeTimelineCollectedStyles(sameElementTimeline);\n\t context.currentTimeline.snapshotCurrentStyles();\n\t }\n\t context.previousNode = ast;\n\t };\n\t /**\n\t * @param {?} ast\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationTimelineBuilderVisitor.prototype.visitStagger = /**\n\t * @param {?} ast\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (ast, context) {\n\t var /** @type {?} */ parentContext = /** @type {?} */ ((context.parentContext));\n\t var /** @type {?} */ tl = context.currentTimeline;\n\t var /** @type {?} */ timings = ast.timings;\n\t var /** @type {?} */ duration = Math.abs(timings.duration);\n\t var /** @type {?} */ maxTime = duration * (context.currentQueryTotal - 1);\n\t var /** @type {?} */ delay = duration * context.currentQueryIndex;\n\t var /** @type {?} */ staggerTransformer = timings.duration < 0 ? 'reverse' : timings.easing;\n\t switch (staggerTransformer) {\n\t case 'reverse':\n\t delay = maxTime - delay;\n\t break;\n\t case 'full':\n\t delay = parentContext.currentStaggerTime;\n\t break;\n\t }\n\t var /** @type {?} */ timeline = context.currentTimeline;\n\t if (delay) {\n\t timeline.delayNextStep(delay);\n\t }\n\t var /** @type {?} */ startingTime = timeline.currentTime;\n\t visitDslNode(this, ast.animation, context);\n\t context.previousNode = ast;\n\t // time = duration + delay\n\t // the reason why this computation is so complex is because\n\t // the inner timeline may either have a delay value or a stretched\n\t // keyframe depending on if a subtimeline is not used or is used.\n\t parentContext.currentStaggerTime =\n\t (tl.currentTime - startingTime) + (tl.startTime - parentContext.currentTimeline.startTime);\n\t };\n\t return AnimationTimelineBuilderVisitor;\n\t}());\n\tvar DEFAULT_NOOP_PREVIOUS_NODE = /** @type {?} */ ({});\n\tvar AnimationTimelineContext = (function () {\n\t function AnimationTimelineContext(_driver, element, subInstructions, errors, timelines, initialTimeline) {\n\t this._driver = _driver;\n\t this.element = element;\n\t this.subInstructions = subInstructions;\n\t this.errors = errors;\n\t this.timelines = timelines;\n\t this.parentContext = null;\n\t this.currentAnimateTimings = null;\n\t this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n\t this.subContextCount = 0;\n\t this.options = {};\n\t this.currentQueryIndex = 0;\n\t this.currentQueryTotal = 0;\n\t this.currentStaggerTime = 0;\n\t this.currentTimeline = initialTimeline || new TimelineBuilder(this._driver, element, 0);\n\t timelines.push(this.currentTimeline);\n\t }\n\t Object.defineProperty(AnimationTimelineContext.prototype, \"params\", {\n\t get: /**\n\t * @return {?}\n\t */\n\t function () { return this.options.params; },\n\t enumerable: true,\n\t configurable: true\n\t });\n\t /**\n\t * @param {?} options\n\t * @param {?=} skipIfExists\n\t * @return {?}\n\t */\n\t AnimationTimelineContext.prototype.updateOptions = /**\n\t * @param {?} options\n\t * @param {?=} skipIfExists\n\t * @return {?}\n\t */\n\t function (options, skipIfExists) {\n\t var _this = this;\n\t if (!options)\n\t return;\n\t var /** @type {?} */ newOptions = /** @type {?} */ (options);\n\t var /** @type {?} */ optionsToUpdate = this.options;\n\t // NOTE: this will get patched up when other animation methods support duration overrides\n\t if (newOptions.duration != null) {\n\t (/** @type {?} */ (optionsToUpdate)).duration = resolveTimingValue(newOptions.duration);\n\t }\n\t if (newOptions.delay != null) {\n\t optionsToUpdate.delay = resolveTimingValue(newOptions.delay);\n\t }\n\t var /** @type {?} */ newParams = newOptions.params;\n\t if (newParams) {\n\t var /** @type {?} */ paramsToUpdate_1 = /** @type {?} */ ((optionsToUpdate.params));\n\t if (!paramsToUpdate_1) {\n\t paramsToUpdate_1 = this.options.params = {};\n\t }\n\t Object.keys(newParams).forEach(function (name) {\n\t if (!skipIfExists || !paramsToUpdate_1.hasOwnProperty(name)) {\n\t paramsToUpdate_1[name] = interpolateParams(newParams[name], paramsToUpdate_1, _this.errors);\n\t }\n\t });\n\t }\n\t };\n\t /**\n\t * @return {?}\n\t */\n\t AnimationTimelineContext.prototype._copyOptions = /**\n\t * @return {?}\n\t */\n\t function () {\n\t var /** @type {?} */ options = {};\n\t if (this.options) {\n\t var /** @type {?} */ oldParams_1 = this.options.params;\n\t if (oldParams_1) {\n\t var /** @type {?} */ params_1 = options['params'] = {};\n\t Object.keys(oldParams_1).forEach(function (name) { params_1[name] = oldParams_1[name]; });\n\t }\n\t }\n\t return options;\n\t };\n\t /**\n\t * @param {?=} options\n\t * @param {?=} element\n\t * @param {?=} newTime\n\t * @return {?}\n\t */\n\t AnimationTimelineContext.prototype.createSubContext = /**\n\t * @param {?=} options\n\t * @param {?=} element\n\t * @param {?=} newTime\n\t * @return {?}\n\t */\n\t function (options, element, newTime) {\n\t if (options === void 0) { options = null; }\n\t var /** @type {?} */ target = element || this.element;\n\t var /** @type {?} */ context = new AnimationTimelineContext(this._driver, target, this.subInstructions, this.errors, this.timelines, this.currentTimeline.fork(target, newTime || 0));\n\t context.previousNode = this.previousNode;\n\t context.currentAnimateTimings = this.currentAnimateTimings;\n\t context.options = this._copyOptions();\n\t context.updateOptions(options);\n\t context.currentQueryIndex = this.currentQueryIndex;\n\t context.currentQueryTotal = this.currentQueryTotal;\n\t context.parentContext = this;\n\t this.subContextCount++;\n\t return context;\n\t };\n\t /**\n\t * @param {?=} newTime\n\t * @return {?}\n\t */\n\t AnimationTimelineContext.prototype.transformIntoNewTimeline = /**\n\t * @param {?=} newTime\n\t * @return {?}\n\t */\n\t function (newTime) {\n\t this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n\t this.currentTimeline = this.currentTimeline.fork(this.element, newTime);\n\t this.timelines.push(this.currentTimeline);\n\t return this.currentTimeline;\n\t };\n\t /**\n\t * @param {?} instruction\n\t * @param {?} duration\n\t * @param {?} delay\n\t * @return {?}\n\t */\n\t AnimationTimelineContext.prototype.appendInstructionToTimeline = /**\n\t * @param {?} instruction\n\t * @param {?} duration\n\t * @param {?} delay\n\t * @return {?}\n\t */\n\t function (instruction, duration, delay) {\n\t var /** @type {?} */ updatedTimings = {\n\t duration: duration != null ? duration : instruction.duration,\n\t delay: this.currentTimeline.currentTime + (delay != null ? delay : 0) + instruction.delay,\n\t easing: ''\n\t };\n\t var /** @type {?} */ builder = new SubTimelineBuilder(this._driver, instruction.element, instruction.keyframes, instruction.preStyleProps, instruction.postStyleProps, updatedTimings, instruction.stretchStartingKeyframe);\n\t this.timelines.push(builder);\n\t return updatedTimings;\n\t };\n\t /**\n\t * @param {?} time\n\t * @return {?}\n\t */\n\t AnimationTimelineContext.prototype.incrementTime = /**\n\t * @param {?} time\n\t * @return {?}\n\t */\n\t function (time) {\n\t this.currentTimeline.forwardTime(this.currentTimeline.duration + time);\n\t };\n\t /**\n\t * @param {?} delay\n\t * @return {?}\n\t */\n\t AnimationTimelineContext.prototype.delayNextStep = /**\n\t * @param {?} delay\n\t * @return {?}\n\t */\n\t function (delay) {\n\t // negative delays are not yet supported\n\t if (delay > 0) {\n\t this.currentTimeline.delayNextStep(delay);\n\t }\n\t };\n\t /**\n\t * @param {?} selector\n\t * @param {?} originalSelector\n\t * @param {?} limit\n\t * @param {?} includeSelf\n\t * @param {?} optional\n\t * @param {?} errors\n\t * @return {?}\n\t */\n\t AnimationTimelineContext.prototype.invokeQuery = /**\n\t * @param {?} selector\n\t * @param {?} originalSelector\n\t * @param {?} limit\n\t * @param {?} includeSelf\n\t * @param {?} optional\n\t * @param {?} errors\n\t * @return {?}\n\t */\n\t function (selector, originalSelector, limit, includeSelf, optional, errors) {\n\t var /** @type {?} */ results = [];\n\t if (includeSelf) {\n\t results.push(this.element);\n\t }\n\t if (selector.length > 0) {\n\t // if :self is only used then the selector is empty\n\t var /** @type {?} */ multi = limit != 1;\n\t var /** @type {?} */ elements = this._driver.query(this.element, selector, multi);\n\t if (limit !== 0) {\n\t elements = limit < 0 ? elements.slice(elements.length + limit, elements.length) :\n\t elements.slice(0, limit);\n\t }\n\t results.push.apply(results, elements);\n\t }\n\t if (!optional && results.length == 0) {\n\t errors.push(\"`query(\\\"\" + originalSelector + \"\\\")` returned zero elements. (Use `query(\\\"\" + originalSelector + \"\\\", { optional: true })` if you wish to allow this.)\");\n\t }\n\t return results;\n\t };\n\t return AnimationTimelineContext;\n\t}());\n\tvar TimelineBuilder = (function () {\n\t function TimelineBuilder(_driver, element, startTime, _elementTimelineStylesLookup) {\n\t this._driver = _driver;\n\t this.element = element;\n\t this.startTime = startTime;\n\t this._elementTimelineStylesLookup = _elementTimelineStylesLookup;\n\t this.duration = 0;\n\t this._previousKeyframe = {};\n\t this._currentKeyframe = {};\n\t this._keyframes = new Map();\n\t this._styleSummary = {};\n\t this._pendingStyles = {};\n\t this._backFill = {};\n\t this._currentEmptyStepKeyframe = null;\n\t if (!this._elementTimelineStylesLookup) {\n\t this._elementTimelineStylesLookup = new Map();\n\t }\n\t this._localTimelineStyles = Object.create(this._backFill, {});\n\t this._globalTimelineStyles = /** @type {?} */ ((this._elementTimelineStylesLookup.get(element)));\n\t if (!this._globalTimelineStyles) {\n\t this._globalTimelineStyles = this._localTimelineStyles;\n\t this._elementTimelineStylesLookup.set(element, this._localTimelineStyles);\n\t }\n\t this._loadKeyframe();\n\t }\n\t /**\n\t * @return {?}\n\t */\n\t TimelineBuilder.prototype.containsAnimation = /**\n\t * @return {?}\n\t */\n\t function () {\n\t switch (this._keyframes.size) {\n\t case 0:\n\t return false;\n\t case 1:\n\t return this.getCurrentStyleProperties().length > 0;\n\t default:\n\t return true;\n\t }\n\t };\n\t /**\n\t * @return {?}\n\t */\n\t TimelineBuilder.prototype.getCurrentStyleProperties = /**\n\t * @return {?}\n\t */\n\t function () { return Object.keys(this._currentKeyframe); };\n\t Object.defineProperty(TimelineBuilder.prototype, \"currentTime\", {\n\t get: /**\n\t * @return {?}\n\t */\n\t function () { return this.startTime + this.duration; },\n\t enumerable: true,\n\t configurable: true\n\t });\n\t /**\n\t * @param {?} delay\n\t * @return {?}\n\t */\n\t TimelineBuilder.prototype.delayNextStep = /**\n\t * @param {?} delay\n\t * @return {?}\n\t */\n\t function (delay) {\n\t // in the event that a style() step is placed right before a stagger()\n\t // and that style() step is the very first style() value in the animation\n\t // then we need to make a copy of the keyframe [0, copy, 1] so that the delay\n\t // properly applies the style() values to work with the stagger...\n\t var /** @type {?} */ hasPreStyleStep = this._keyframes.size == 1 && Object.keys(this._pendingStyles).length;\n\t if (this.duration || hasPreStyleStep) {\n\t this.forwardTime(this.currentTime + delay);\n\t if (hasPreStyleStep) {\n\t this.snapshotCurrentStyles();\n\t }\n\t }\n\t else {\n\t this.startTime += delay;\n\t }\n\t };\n\t /**\n\t * @param {?} element\n\t * @param {?=} currentTime\n\t * @return {?}\n\t */\n\t TimelineBuilder.prototype.fork = /**\n\t * @param {?} element\n\t * @param {?=} currentTime\n\t * @return {?}\n\t */\n\t function (element, currentTime) {\n\t this.applyStylesToKeyframe();\n\t return new TimelineBuilder(this._driver, element, currentTime || this.currentTime, this._elementTimelineStylesLookup);\n\t };\n\t /**\n\t * @return {?}\n\t */\n\t TimelineBuilder.prototype._loadKeyframe = /**\n\t * @return {?}\n\t */\n\t function () {\n\t if (this._currentKeyframe) {\n\t this._previousKeyframe = this._currentKeyframe;\n\t }\n\t this._currentKeyframe = /** @type {?} */ ((this._keyframes.get(this.duration)));\n\t if (!this._currentKeyframe) {\n\t this._currentKeyframe = Object.create(this._backFill, {});\n\t this._keyframes.set(this.duration, this._currentKeyframe);\n\t }\n\t };\n\t /**\n\t * @return {?}\n\t */\n\t TimelineBuilder.prototype.forwardFrame = /**\n\t * @return {?}\n\t */\n\t function () {\n\t this.duration += ONE_FRAME_IN_MILLISECONDS;\n\t this._loadKeyframe();\n\t };\n\t /**\n\t * @param {?} time\n\t * @return {?}\n\t */\n\t TimelineBuilder.prototype.forwardTime = /**\n\t * @param {?} time\n\t * @return {?}\n\t */\n\t function (time) {\n\t this.applyStylesToKeyframe();\n\t this.duration = time;\n\t this._loadKeyframe();\n\t };\n\t /**\n\t * @param {?} prop\n\t * @param {?} value\n\t * @return {?}\n\t */\n\t TimelineBuilder.prototype._updateStyle = /**\n\t * @param {?} prop\n\t * @param {?} value\n\t * @return {?}\n\t */\n\t function (prop, value) {\n\t this._localTimelineStyles[prop] = value;\n\t this._globalTimelineStyles[prop] = value;\n\t this._styleSummary[prop] = { time: this.currentTime, value: value };\n\t };\n\t /**\n\t * @return {?}\n\t */\n\t TimelineBuilder.prototype.allowOnlyTimelineStyles = /**\n\t * @return {?}\n\t */\n\t function () { return this._currentEmptyStepKeyframe !== this._currentKeyframe; };\n\t /**\n\t * @param {?} easing\n\t * @return {?}\n\t */\n\t TimelineBuilder.prototype.applyEmptyStep = /**\n\t * @param {?} easing\n\t * @return {?}\n\t */\n\t function (easing) {\n\t var _this = this;\n\t if (easing) {\n\t this._previousKeyframe['easing'] = easing;\n\t }\n\t // special case for animate(duration):\n\t // all missing styles are filled with a `*` value then\n\t // if any destination styles are filled in later on the same\n\t // keyframe then they will override the overridden styles\n\t // We use `_globalTimelineStyles` here because there may be\n\t // styles in previous keyframes that are not present in this timeline\n\t Object.keys(this._globalTimelineStyles).forEach(function (prop) {\n\t _this._backFill[prop] = _this._globalTimelineStyles[prop] || _angular_animations.AUTO_STYLE;\n\t _this._currentKeyframe[prop] = _angular_animations.AUTO_STYLE;\n\t });\n\t this._currentEmptyStepKeyframe = this._currentKeyframe;\n\t };\n\t /**\n\t * @param {?} input\n\t * @param {?} easing\n\t * @param {?} errors\n\t * @param {?=} options\n\t * @return {?}\n\t */\n\t TimelineBuilder.prototype.setStyles = /**\n\t * @param {?} input\n\t * @param {?} easing\n\t * @param {?} errors\n\t * @param {?=} options\n\t * @return {?}\n\t */\n\t function (input, easing, errors, options) {\n\t var _this = this;\n\t if (easing) {\n\t this._previousKeyframe['easing'] = easing;\n\t }\n\t var /** @type {?} */ params = (options && options.params) || {};\n\t var /** @type {?} */ styles = flattenStyles(input, this._globalTimelineStyles);\n\t Object.keys(styles).forEach(function (prop) {\n\t var /** @type {?} */ val = interpolateParams(styles[prop], params, errors);\n\t _this._pendingStyles[prop] = val;\n\t if (!_this._localTimelineStyles.hasOwnProperty(prop)) {\n\t _this._backFill[prop] = _this._globalTimelineStyles.hasOwnProperty(prop) ?\n\t _this._globalTimelineStyles[prop] :\n\t _angular_animations.AUTO_STYLE;\n\t }\n\t _this._updateStyle(prop, val);\n\t });\n\t };\n\t /**\n\t * @return {?}\n\t */\n\t TimelineBuilder.prototype.applyStylesToKeyframe = /**\n\t * @return {?}\n\t */\n\t function () {\n\t var _this = this;\n\t var /** @type {?} */ styles = this._pendingStyles;\n\t var /** @type {?} */ props = Object.keys(styles);\n\t if (props.length == 0)\n\t return;\n\t this._pendingStyles = {};\n\t props.forEach(function (prop) {\n\t var /** @type {?} */ val = styles[prop];\n\t _this._currentKeyframe[prop] = val;\n\t });\n\t Object.keys(this._localTimelineStyles).forEach(function (prop) {\n\t if (!_this._currentKeyframe.hasOwnProperty(prop)) {\n\t _this._currentKeyframe[prop] = _this._localTimelineStyles[prop];\n\t }\n\t });\n\t };\n\t /**\n\t * @return {?}\n\t */\n\t TimelineBuilder.prototype.snapshotCurrentStyles = /**\n\t * @return {?}\n\t */\n\t function () {\n\t var _this = this;\n\t Object.keys(this._localTimelineStyles).forEach(function (prop) {\n\t var /** @type {?} */ val = _this._localTimelineStyles[prop];\n\t _this._pendingStyles[prop] = val;\n\t _this._updateStyle(prop, val);\n\t });\n\t };\n\t /**\n\t * @return {?}\n\t */\n\t TimelineBuilder.prototype.getFinalKeyframe = /**\n\t * @return {?}\n\t */\n\t function () { return this._keyframes.get(this.duration); };\n\t Object.defineProperty(TimelineBuilder.prototype, \"properties\", {\n\t get: /**\n\t * @return {?}\n\t */\n\t function () {\n\t var /** @type {?} */ properties = [];\n\t for (var /** @type {?} */ prop in this._currentKeyframe) {\n\t properties.push(prop);\n\t }\n\t return properties;\n\t },\n\t enumerable: true,\n\t configurable: true\n\t });\n\t /**\n\t * @param {?} timeline\n\t * @return {?}\n\t */\n\t TimelineBuilder.prototype.mergeTimelineCollectedStyles = /**\n\t * @param {?} timeline\n\t * @return {?}\n\t */\n\t function (timeline) {\n\t var _this = this;\n\t Object.keys(timeline._styleSummary).forEach(function (prop) {\n\t var /** @type {?} */ details0 = _this._styleSummary[prop];\n\t var /** @type {?} */ details1 = timeline._styleSummary[prop];\n\t if (!details0 || details1.time > details0.time) {\n\t _this._updateStyle(prop, details1.value);\n\t }\n\t });\n\t };\n\t /**\n\t * @return {?}\n\t */\n\t TimelineBuilder.prototype.buildKeyframes = /**\n\t * @return {?}\n\t */\n\t function () {\n\t var _this = this;\n\t this.applyStylesToKeyframe();\n\t var /** @type {?} */ preStyleProps = new Set();\n\t var /** @type {?} */ postStyleProps = new Set();\n\t var /** @type {?} */ isEmpty = this._keyframes.size === 1 && this.duration === 0;\n\t var /** @type {?} */ finalKeyframes = [];\n\t this._keyframes.forEach(function (keyframe, time) {\n\t var /** @type {?} */ finalKeyframe = copyStyles(keyframe, true);\n\t Object.keys(finalKeyframe).forEach(function (prop) {\n\t var /** @type {?} */ value = finalKeyframe[prop];\n\t if (value == _angular_animations.ɵPRE_STYLE) {\n\t preStyleProps.add(prop);\n\t }\n\t else if (value == _angular_animations.AUTO_STYLE) {\n\t postStyleProps.add(prop);\n\t }\n\t });\n\t if (!isEmpty) {\n\t finalKeyframe['offset'] = time / _this.duration;\n\t }\n\t finalKeyframes.push(finalKeyframe);\n\t });\n\t var /** @type {?} */ preProps = preStyleProps.size ? iteratorToArray(preStyleProps.values()) : [];\n\t var /** @type {?} */ postProps = postStyleProps.size ? iteratorToArray(postStyleProps.values()) : [];\n\t // special case for a 0-second animation (which is designed just to place styles onscreen)\n\t if (isEmpty) {\n\t var /** @type {?} */ kf0 = finalKeyframes[0];\n\t var /** @type {?} */ kf1 = copyObj(kf0);\n\t kf0['offset'] = 0;\n\t kf1['offset'] = 1;\n\t finalKeyframes = [kf0, kf1];\n\t }\n\t return createTimelineInstruction(this.element, finalKeyframes, preProps, postProps, this.duration, this.startTime, this.easing, false);\n\t };\n\t return TimelineBuilder;\n\t}());\n\tvar SubTimelineBuilder = (function (_super) {\n\t __extends(SubTimelineBuilder, _super);\n\t function SubTimelineBuilder(driver, element, keyframes, preStyleProps, postStyleProps, timings, _stretchStartingKeyframe) {\n\t if (_stretchStartingKeyframe === void 0) { _stretchStartingKeyframe = false; }\n\t var _this = _super.call(this, driver, element, timings.delay) || this;\n\t _this.element = element;\n\t _this.keyframes = keyframes;\n\t _this.preStyleProps = preStyleProps;\n\t _this.postStyleProps = postStyleProps;\n\t _this._stretchStartingKeyframe = _stretchStartingKeyframe;\n\t _this.timings = { duration: timings.duration, delay: timings.delay, easing: timings.easing };\n\t return _this;\n\t }\n\t /**\n\t * @return {?}\n\t */\n\t SubTimelineBuilder.prototype.containsAnimation = /**\n\t * @return {?}\n\t */\n\t function () { return this.keyframes.length > 1; };\n\t /**\n\t * @return {?}\n\t */\n\t SubTimelineBuilder.prototype.buildKeyframes = /**\n\t * @return {?}\n\t */\n\t function () {\n\t var /** @type {?} */ keyframes = this.keyframes;\n\t var _a = this.timings, delay = _a.delay, duration = _a.duration, easing = _a.easing;\n\t if (this._stretchStartingKeyframe && delay) {\n\t var /** @type {?} */ newKeyframes = [];\n\t var /** @type {?} */ totalTime = duration + delay;\n\t var /** @type {?} */ startingGap = delay / totalTime;\n\t // the original starting keyframe now starts once the delay is done\n\t var /** @type {?} */ newFirstKeyframe = copyStyles(keyframes[0], false);\n\t newFirstKeyframe['offset'] = 0;\n\t newKeyframes.push(newFirstKeyframe);\n\t var /** @type {?} */ oldFirstKeyframe = copyStyles(keyframes[0], false);\n\t oldFirstKeyframe['offset'] = roundOffset(startingGap);\n\t newKeyframes.push(oldFirstKeyframe);\n\t /*\n\t When the keyframe is stretched then it means that the delay before the animation\n\t starts is gone. Instead the first keyframe is placed at the start of the animation\n\t and it is then copied to where it starts when the original delay is over. This basically\n\t means nothing animates during that delay, but the styles are still renderered. For this\n\t to work the original offset values that exist in the original keyframes must be \"warped\"\n\t so that they can take the new keyframe + delay into account.\n\t \n\t delay=1000, duration=1000, keyframes = 0 .5 1\n\t \n\t turns into\n\t \n\t delay=0, duration=2000, keyframes = 0 .33 .66 1\n\t */\n\t // offsets between 1 ... n -1 are all warped by the keyframe stretch\n\t var /** @type {?} */ limit = keyframes.length - 1;\n\t for (var /** @type {?} */ i = 1; i <= limit; i++) {\n\t var /** @type {?} */ kf = copyStyles(keyframes[i], false);\n\t var /** @type {?} */ oldOffset = /** @type {?} */ (kf['offset']);\n\t var /** @type {?} */ timeAtKeyframe = delay + oldOffset * duration;\n\t kf['offset'] = roundOffset(timeAtKeyframe / totalTime);\n\t newKeyframes.push(kf);\n\t }\n\t // the new starting keyframe should be added at the start\n\t duration = totalTime;\n\t delay = 0;\n\t easing = '';\n\t keyframes = newKeyframes;\n\t }\n\t return createTimelineInstruction(this.element, keyframes, this.preStyleProps, this.postStyleProps, duration, delay, easing, true);\n\t };\n\t return SubTimelineBuilder;\n\t}(TimelineBuilder));\n\t/**\n\t * @param {?} offset\n\t * @param {?=} decimalPoints\n\t * @return {?}\n\t */\n\tfunction roundOffset(offset, decimalPoints) {\n\t if (decimalPoints === void 0) { decimalPoints = 3; }\n\t var /** @type {?} */ mult = Math.pow(10, decimalPoints - 1);\n\t return Math.round(offset * mult) / mult;\n\t}\n\t/**\n\t * @param {?} input\n\t * @param {?} allStyles\n\t * @return {?}\n\t */\n\tfunction flattenStyles(input, allStyles) {\n\t var /** @type {?} */ styles = {};\n\t var /** @type {?} */ allProperties;\n\t input.forEach(function (token) {\n\t if (token === '*') {\n\t allProperties = allProperties || Object.keys(allStyles);\n\t allProperties.forEach(function (prop) { styles[prop] = _angular_animations.AUTO_STYLE; });\n\t }\n\t else {\n\t copyStyles(/** @type {?} */ (token), false, styles);\n\t }\n\t });\n\t return styles;\n\t}\n\t\n\t/**\n\t * @fileoverview added by tsickle\n\t * @suppress {checkTypes} checked by tsc\n\t */\n\tvar Animation = (function () {\n\t function Animation(_driver, input) {\n\t this._driver = _driver;\n\t var /** @type {?} */ errors = [];\n\t var /** @type {?} */ ast = buildAnimationAst(_driver, input, errors);\n\t if (errors.length) {\n\t var /** @type {?} */ errorMessage = \"animation validation failed:\\n\" + errors.join(\"\\n\");\n\t throw new Error(errorMessage);\n\t }\n\t this._animationAst = ast;\n\t }\n\t /**\n\t * @param {?} element\n\t * @param {?} startingStyles\n\t * @param {?} destinationStyles\n\t * @param {?} options\n\t * @param {?=} subInstructions\n\t * @return {?}\n\t */\n\t Animation.prototype.buildTimelines = /**\n\t * @param {?} element\n\t * @param {?} startingStyles\n\t * @param {?} destinationStyles\n\t * @param {?} options\n\t * @param {?=} subInstructions\n\t * @return {?}\n\t */\n\t function (element, startingStyles, destinationStyles, options, subInstructions) {\n\t var /** @type {?} */ start = Array.isArray(startingStyles) ? normalizeStyles(startingStyles) : /** @type {?} */ (startingStyles);\n\t var /** @type {?} */ dest = Array.isArray(destinationStyles) ? normalizeStyles(destinationStyles) : /** @type {?} */ (destinationStyles);\n\t var /** @type {?} */ errors = [];\n\t subInstructions = subInstructions || new ElementInstructionMap();\n\t var /** @type {?} */ result = buildAnimationTimelines(this._driver, element, this._animationAst, start, dest, options, subInstructions, errors);\n\t if (errors.length) {\n\t var /** @type {?} */ errorMessage = \"animation building failed:\\n\" + errors.join(\"\\n\");\n\t throw new Error(errorMessage);\n\t }\n\t return result;\n\t };\n\t return Animation;\n\t}());\n\t\n\t/**\n\t * @fileoverview added by tsickle\n\t * @suppress {checkTypes} checked by tsc\n\t */\n\t/**\n\t * \\@experimental Animation support is experimental.\n\t * @abstract\n\t */\n\tvar AnimationStyleNormalizer = (function () {\n\t function AnimationStyleNormalizer() {\n\t }\n\t return AnimationStyleNormalizer;\n\t}());\n\t/**\n\t * \\@experimental Animation support is experimental.\n\t */\n\tvar NoopAnimationStyleNormalizer = (function () {\n\t function NoopAnimationStyleNormalizer() {\n\t }\n\t /**\n\t * @param {?} propertyName\n\t * @param {?} errors\n\t * @return {?}\n\t */\n\t NoopAnimationStyleNormalizer.prototype.normalizePropertyName = /**\n\t * @param {?} propertyName\n\t * @param {?} errors\n\t * @return {?}\n\t */\n\t function (propertyName, errors) { return propertyName; };\n\t /**\n\t * @param {?} userProvidedProperty\n\t * @param {?} normalizedProperty\n\t * @param {?} value\n\t * @param {?} errors\n\t * @return {?}\n\t */\n\t NoopAnimationStyleNormalizer.prototype.normalizeStyleValue = /**\n\t * @param {?} userProvidedProperty\n\t * @param {?} normalizedProperty\n\t * @param {?} value\n\t * @param {?} errors\n\t * @return {?}\n\t */\n\t function (userProvidedProperty, normalizedProperty, value, errors) {\n\t return /** @type {?} */ (value);\n\t };\n\t return NoopAnimationStyleNormalizer;\n\t}());\n\t\n\t/**\n\t * @fileoverview added by tsickle\n\t * @suppress {checkTypes} checked by tsc\n\t */\n\t/**\n\t * @license\n\t * Copyright Google Inc. All Rights Reserved.\n\t *\n\t * Use of this source code is governed by an MIT-style license that can be\n\t * found in the LICENSE file at https://angular.io/license\n\t */\n\tvar WebAnimationsStyleNormalizer = (function (_super) {\n\t __extends(WebAnimationsStyleNormalizer, _super);\n\t function WebAnimationsStyleNormalizer() {\n\t return _super !== null && _super.apply(this, arguments) || this;\n\t }\n\t /**\n\t * @param {?} propertyName\n\t * @param {?} errors\n\t * @return {?}\n\t */\n\t WebAnimationsStyleNormalizer.prototype.normalizePropertyName = /**\n\t * @param {?} propertyName\n\t * @param {?} errors\n\t * @return {?}\n\t */\n\t function (propertyName, errors) {\n\t return dashCaseToCamelCase(propertyName);\n\t };\n\t /**\n\t * @param {?} userProvidedProperty\n\t * @param {?} normalizedProperty\n\t * @param {?} value\n\t * @param {?} errors\n\t * @return {?}\n\t */\n\t WebAnimationsStyleNormalizer.prototype.normalizeStyleValue = /**\n\t * @param {?} userProvidedProperty\n\t * @param {?} normalizedProperty\n\t * @param {?} value\n\t * @param {?} errors\n\t * @return {?}\n\t */\n\t function (userProvidedProperty, normalizedProperty, value, errors) {\n\t var /** @type {?} */ unit = '';\n\t var /** @type {?} */ strVal = value.toString().trim();\n\t if (DIMENSIONAL_PROP_MAP[normalizedProperty] && value !== 0 && value !== '0') {\n\t if (typeof value === 'number') {\n\t unit = 'px';\n\t }\n\t else {\n\t var /** @type {?} */ valAndSuffixMatch = value.match(/^[+-]?[\\d\\.]+([a-z]*)$/);\n\t if (valAndSuffixMatch && valAndSuffixMatch[1].length == 0) {\n\t errors.push(\"Please provide a CSS unit value for \" + userProvidedProperty + \":\" + value);\n\t }\n\t }\n\t }\n\t return strVal + unit;\n\t };\n\t return WebAnimationsStyleNormalizer;\n\t}(AnimationStyleNormalizer));\n\tvar DIMENSIONAL_PROP_MAP = makeBooleanMap('width,height,minWidth,minHeight,maxWidth,maxHeight,left,top,bottom,right,fontSize,outlineWidth,outlineOffset,paddingTop,paddingLeft,paddingBottom,paddingRight,marginTop,marginLeft,marginBottom,marginRight,borderRadius,borderWidth,borderTopWidth,borderLeftWidth,borderRightWidth,borderBottomWidth,textIndent,perspective'\n\t .split(','));\n\t/**\n\t * @param {?} keys\n\t * @return {?}\n\t */\n\tfunction makeBooleanMap(keys) {\n\t var /** @type {?} */ map = {};\n\t keys.forEach(function (key) { return map[key] = true; });\n\t return map;\n\t}\n\t\n\t/**\n\t * @fileoverview added by tsickle\n\t * @suppress {checkTypes} checked by tsc\n\t */\n\t/**\n\t * @record\n\t */\n\t\n\t/**\n\t * @param {?} element\n\t * @param {?} triggerName\n\t * @param {?} fromState\n\t * @param {?} toState\n\t * @param {?} isRemovalTransition\n\t * @param {?} fromStyles\n\t * @param {?} toStyles\n\t * @param {?} timelines\n\t * @param {?} queriedElements\n\t * @param {?} preStyleProps\n\t * @param {?} postStyleProps\n\t * @param {?=} errors\n\t * @return {?}\n\t */\n\tfunction createTransitionInstruction(element, triggerName, fromState, toState, isRemovalTransition, fromStyles, toStyles, timelines, queriedElements, preStyleProps, postStyleProps, errors) {\n\t return {\n\t type: 0 /* TransitionAnimation */,\n\t element: element,\n\t triggerName: triggerName,\n\t isRemovalTransition: isRemovalTransition,\n\t fromState: fromState,\n\t fromStyles: fromStyles,\n\t toState: toState,\n\t toStyles: toStyles,\n\t timelines: timelines,\n\t queriedElements: queriedElements,\n\t preStyleProps: preStyleProps,\n\t postStyleProps: postStyleProps,\n\t errors: errors\n\t };\n\t}\n\t\n\t/**\n\t * @fileoverview added by tsickle\n\t * @suppress {checkTypes} checked by tsc\n\t */\n\tvar EMPTY_OBJECT = {};\n\tvar AnimationTransitionFactory = (function () {\n\t function AnimationTransitionFactory(_triggerName, ast, _stateStyles) {\n\t this._triggerName = _triggerName;\n\t this.ast = ast;\n\t this._stateStyles = _stateStyles;\n\t }\n\t /**\n\t * @param {?} currentState\n\t * @param {?} nextState\n\t * @return {?}\n\t */\n\t AnimationTransitionFactory.prototype.match = /**\n\t * @param {?} currentState\n\t * @param {?} nextState\n\t * @return {?}\n\t */\n\t function (currentState, nextState) {\n\t return oneOrMoreTransitionsMatch(this.ast.matchers, currentState, nextState);\n\t };\n\t /**\n\t * @param {?} stateName\n\t * @param {?} params\n\t * @param {?} errors\n\t * @return {?}\n\t */\n\t AnimationTransitionFactory.prototype.buildStyles = /**\n\t * @param {?} stateName\n\t * @param {?} params\n\t * @param {?} errors\n\t * @return {?}\n\t */\n\t function (stateName, params, errors) {\n\t var /** @type {?} */ backupStateStyler = this._stateStyles['*'];\n\t var /** @type {?} */ stateStyler = this._stateStyles[stateName];\n\t var /** @type {?} */ backupStyles = backupStateStyler ? backupStateStyler.buildStyles(params, errors) : {};\n\t return stateStyler ? stateStyler.buildStyles(params, errors) : backupStyles;\n\t };\n\t /**\n\t * @param {?} driver\n\t * @param {?} element\n\t * @param {?} currentState\n\t * @param {?} nextState\n\t * @param {?=} currentOptions\n\t * @param {?=} nextOptions\n\t * @param {?=} subInstructions\n\t * @return {?}\n\t */\n\t AnimationTransitionFactory.prototype.build = /**\n\t * @param {?} driver\n\t * @param {?} element\n\t * @param {?} currentState\n\t * @param {?} nextState\n\t * @param {?=} currentOptions\n\t * @param {?=} nextOptions\n\t * @param {?=} subInstructions\n\t * @return {?}\n\t */\n\t function (driver, element, currentState, nextState, currentOptions, nextOptions, subInstructions) {\n\t var /** @type {?} */ errors = [];\n\t var /** @type {?} */ transitionAnimationParams = this.ast.options && this.ast.options.params || EMPTY_OBJECT;\n\t var /** @type {?} */ currentAnimationParams = currentOptions && currentOptions.params || EMPTY_OBJECT;\n\t var /** @type {?} */ currentStateStyles = this.buildStyles(currentState, currentAnimationParams, errors);\n\t var /** @type {?} */ nextAnimationParams = nextOptions && nextOptions.params || EMPTY_OBJECT;\n\t var /** @type {?} */ nextStateStyles = this.buildStyles(nextState, nextAnimationParams, errors);\n\t var /** @type {?} */ queriedElements = new Set();\n\t var /** @type {?} */ preStyleMap = new Map();\n\t var /** @type {?} */ postStyleMap = new Map();\n\t var /** @type {?} */ isRemoval = nextState === 'void';\n\t var /** @type {?} */ animationOptions = { params: __assign({}, transitionAnimationParams, nextAnimationParams) };\n\t var /** @type {?} */ timelines = buildAnimationTimelines(driver, element, this.ast.animation, currentStateStyles, nextStateStyles, animationOptions, subInstructions, errors);\n\t if (errors.length) {\n\t return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, [], [], preStyleMap, postStyleMap, errors);\n\t }\n\t timelines.forEach(function (tl) {\n\t var /** @type {?} */ elm = tl.element;\n\t var /** @type {?} */ preProps = getOrSetAsInMap(preStyleMap, elm, {});\n\t tl.preStyleProps.forEach(function (prop) { return preProps[prop] = true; });\n\t var /** @type {?} */ postProps = getOrSetAsInMap(postStyleMap, elm, {});\n\t tl.postStyleProps.forEach(function (prop) { return postProps[prop] = true; });\n\t if (elm !== element) {\n\t queriedElements.add(elm);\n\t }\n\t });\n\t var /** @type {?} */ queriedElementsList = iteratorToArray(queriedElements.values());\n\t return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, timelines, queriedElementsList, preStyleMap, postStyleMap);\n\t };\n\t return AnimationTransitionFactory;\n\t}());\n\t/**\n\t * @param {?} matchFns\n\t * @param {?} currentState\n\t * @param {?} nextState\n\t * @return {?}\n\t */\n\tfunction oneOrMoreTransitionsMatch(matchFns, currentState, nextState) {\n\t return matchFns.some(function (fn) { return fn(currentState, nextState); });\n\t}\n\tvar AnimationStateStyles = (function () {\n\t function AnimationStateStyles(styles, defaultParams) {\n\t this.styles = styles;\n\t this.defaultParams = defaultParams;\n\t }\n\t /**\n\t * @param {?} params\n\t * @param {?} errors\n\t * @return {?}\n\t */\n\t AnimationStateStyles.prototype.buildStyles = /**\n\t * @param {?} params\n\t * @param {?} errors\n\t * @return {?}\n\t */\n\t function (params, errors) {\n\t var /** @type {?} */ finalStyles = {};\n\t var /** @type {?} */ combinedParams = copyObj(this.defaultParams);\n\t Object.keys(params).forEach(function (key) {\n\t var /** @type {?} */ value = params[key];\n\t if (value != null) {\n\t combinedParams[key] = value;\n\t }\n\t });\n\t this.styles.styles.forEach(function (value) {\n\t if (typeof value !== 'string') {\n\t var /** @type {?} */ styleObj_1 = /** @type {?} */ (value);\n\t Object.keys(styleObj_1).forEach(function (prop) {\n\t var /** @type {?} */ val = styleObj_1[prop];\n\t if (val.length > 1) {\n\t val = interpolateParams(val, combinedParams, errors);\n\t }\n\t finalStyles[prop] = val;\n\t });\n\t }\n\t });\n\t return finalStyles;\n\t };\n\t return AnimationStateStyles;\n\t}());\n\t\n\t/**\n\t * @fileoverview added by tsickle\n\t * @suppress {checkTypes} checked by tsc\n\t */\n\t/**\n\t * \\@experimental Animation support is experimental.\n\t * @param {?} name\n\t * @param {?} ast\n\t * @return {?}\n\t */\n\tfunction buildTrigger(name, ast) {\n\t return new AnimationTrigger(name, ast);\n\t}\n\t/**\n\t * \\@experimental Animation support is experimental.\n\t */\n\tvar AnimationTrigger = (function () {\n\t function AnimationTrigger(name, ast) {\n\t var _this = this;\n\t this.name = name;\n\t this.ast = ast;\n\t this.transitionFactories = [];\n\t this.states = {};\n\t ast.states.forEach(function (ast) {\n\t var /** @type {?} */ defaultParams = (ast.options && ast.options.params) || {};\n\t _this.states[ast.name] = new AnimationStateStyles(ast.style, defaultParams);\n\t });\n\t balanceProperties(this.states, 'true', '1');\n\t balanceProperties(this.states, 'false', '0');\n\t ast.transitions.forEach(function (ast) {\n\t _this.transitionFactories.push(new AnimationTransitionFactory(name, ast, _this.states));\n\t });\n\t this.fallbackTransition = createFallbackTransition(name, this.states);\n\t }\n\t Object.defineProperty(AnimationTrigger.prototype, \"containsQueries\", {\n\t get: /**\n\t * @return {?}\n\t */\n\t function () { return this.ast.queryCount > 0; },\n\t enumerable: true,\n\t configurable: true\n\t });\n\t /**\n\t * @param {?} currentState\n\t * @param {?} nextState\n\t * @return {?}\n\t */\n\t AnimationTrigger.prototype.matchTransition = /**\n\t * @param {?} currentState\n\t * @param {?} nextState\n\t * @return {?}\n\t */\n\t function (currentState, nextState) {\n\t var /** @type {?} */ entry = this.transitionFactories.find(function (f) { return f.match(currentState, nextState); });\n\t return entry || null;\n\t };\n\t /**\n\t * @param {?} currentState\n\t * @param {?} params\n\t * @param {?} errors\n\t * @return {?}\n\t */\n\t AnimationTrigger.prototype.matchStyles = /**\n\t * @param {?} currentState\n\t * @param {?} params\n\t * @param {?} errors\n\t * @return {?}\n\t */\n\t function (currentState, params, errors) {\n\t return this.fallbackTransition.buildStyles(currentState, params, errors);\n\t };\n\t return AnimationTrigger;\n\t}());\n\t/**\n\t * @param {?} triggerName\n\t * @param {?} states\n\t * @return {?}\n\t */\n\tfunction createFallbackTransition(triggerName, states) {\n\t var /** @type {?} */ matchers = [function (fromState, toState) { return true; }];\n\t var /** @type {?} */ animation = { type: 2 /* Sequence */, steps: [], options: null };\n\t var /** @type {?} */ transition = {\n\t type: 1 /* Transition */,\n\t animation: animation,\n\t matchers: matchers,\n\t options: null,\n\t queryCount: 0,\n\t depCount: 0\n\t };\n\t return new AnimationTransitionFactory(triggerName, transition, states);\n\t}\n\t/**\n\t * @param {?} obj\n\t * @param {?} key1\n\t * @param {?} key2\n\t * @return {?}\n\t */\n\tfunction balanceProperties(obj, key1, key2) {\n\t if (obj.hasOwnProperty(key1)) {\n\t if (!obj.hasOwnProperty(key2)) {\n\t obj[key2] = obj[key1];\n\t }\n\t }\n\t else if (obj.hasOwnProperty(key2)) {\n\t obj[key1] = obj[key2];\n\t }\n\t}\n\t\n\t/**\n\t * @fileoverview added by tsickle\n\t * @suppress {checkTypes} checked by tsc\n\t */\n\t/**\n\t * @license\n\t * Copyright Google Inc. All Rights Reserved.\n\t *\n\t * Use of this source code is governed by an MIT-style license that can be\n\t * found in the LICENSE file at https://angular.io/license\n\t */\n\tvar EMPTY_INSTRUCTION_MAP = new ElementInstructionMap();\n\tvar TimelineAnimationEngine = (function () {\n\t function TimelineAnimationEngine(_driver, _normalizer) {\n\t this._driver = _driver;\n\t this._normalizer = _normalizer;\n\t this._animations = {};\n\t this._playersById = {};\n\t this.players = [];\n\t }\n\t /**\n\t * @param {?} id\n\t * @param {?} metadata\n\t * @return {?}\n\t */\n\t TimelineAnimationEngine.prototype.register = /**\n\t * @param {?} id\n\t * @param {?} metadata\n\t * @return {?}\n\t */\n\t function (id, metadata) {\n\t var /** @type {?} */ errors = [];\n\t var /** @type {?} */ ast = buildAnimationAst(this._driver, metadata, errors);\n\t if (errors.length) {\n\t throw new Error(\"Unable to build the animation due to the following errors: \" + errors.join(\"\\n\"));\n\t }\n\t else {\n\t this._animations[id] = ast;\n\t }\n\t };\n\t /**\n\t * @param {?} i\n\t * @param {?} preStyles\n\t * @param {?=} postStyles\n\t * @return {?}\n\t */\n\t TimelineAnimationEngine.prototype._buildPlayer = /**\n\t * @param {?} i\n\t * @param {?} preStyles\n\t * @param {?=} postStyles\n\t * @return {?}\n\t */\n\t function (i, preStyles, postStyles) {\n\t var /** @type {?} */ element = i.element;\n\t var /** @type {?} */ keyframes = normalizeKeyframes(this._driver, this._normalizer, element, i.keyframes, preStyles, postStyles);\n\t return this._driver.animate(element, keyframes, i.duration, i.delay, i.easing, []);\n\t };\n\t /**\n\t * @param {?} id\n\t * @param {?} element\n\t * @param {?=} options\n\t * @return {?}\n\t */\n\t TimelineAnimationEngine.prototype.create = /**\n\t * @param {?} id\n\t * @param {?} element\n\t * @param {?=} options\n\t * @return {?}\n\t */\n\t function (id, element, options) {\n\t var _this = this;\n\t if (options === void 0) { options = {}; }\n\t var /** @type {?} */ errors = [];\n\t var /** @type {?} */ ast = this._animations[id];\n\t var /** @type {?} */ instructions;\n\t var /** @type {?} */ autoStylesMap = new Map();\n\t if (ast) {\n\t instructions = buildAnimationTimelines(this._driver, element, ast, {}, {}, options, EMPTY_INSTRUCTION_MAP, errors);\n\t instructions.forEach(function (inst) {\n\t var /** @type {?} */ styles = getOrSetAsInMap(autoStylesMap, inst.element, {});\n\t inst.postStyleProps.forEach(function (prop) { return styles[prop] = null; });\n\t });\n\t }\n\t else {\n\t errors.push('The requested animation doesn\\'t exist or has already been destroyed');\n\t instructions = [];\n\t }\n\t if (errors.length) {\n\t throw new Error(\"Unable to create the animation due to the following errors: \" + errors.join(\"\\n\"));\n\t }\n\t autoStylesMap.forEach(function (styles, element) {\n\t Object.keys(styles).forEach(function (prop) { styles[prop] = _this._driver.computeStyle(element, prop, _angular_animations.AUTO_STYLE); });\n\t });\n\t var /** @type {?} */ players = instructions.map(function (i) {\n\t var /** @type {?} */ styles = autoStylesMap.get(i.element);\n\t return _this._buildPlayer(i, {}, styles);\n\t });\n\t var /** @type {?} */ player = optimizeGroupPlayer(players);\n\t this._playersById[id] = player;\n\t player.onDestroy(function () { return _this.destroy(id); });\n\t this.players.push(player);\n\t return player;\n\t };\n\t /**\n\t * @param {?} id\n\t * @return {?}\n\t */\n\t TimelineAnimationEngine.prototype.destroy = /**\n\t * @param {?} id\n\t * @return {?}\n\t */\n\t function (id) {\n\t var /** @type {?} */ player = this._getPlayer(id);\n\t player.destroy();\n\t delete this._playersById[id];\n\t var /** @type {?} */ index = this.players.indexOf(player);\n\t if (index >= 0) {\n\t this.players.splice(index, 1);\n\t }\n\t };\n\t /**\n\t * @param {?} id\n\t * @return {?}\n\t */\n\t TimelineAnimationEngine.prototype._getPlayer = /**\n\t * @param {?} id\n\t * @return {?}\n\t */\n\t function (id) {\n\t var /** @type {?} */ player = this._playersById[id];\n\t if (!player) {\n\t throw new Error(\"Unable to find the timeline player referenced by \" + id);\n\t }\n\t return player;\n\t };\n\t /**\n\t * @param {?} id\n\t * @param {?} element\n\t * @param {?} eventName\n\t * @param {?} callback\n\t * @return {?}\n\t */\n\t TimelineAnimationEngine.prototype.listen = /**\n\t * @param {?} id\n\t * @param {?} element\n\t * @param {?} eventName\n\t * @param {?} callback\n\t * @return {?}\n\t */\n\t function (id, element, eventName, callback) {\n\t // triggerName, fromState, toState are all ignored for timeline animations\n\t var /** @type {?} */ baseEvent = makeAnimationEvent(element, '', '', '');\n\t listenOnPlayer(this._getPlayer(id), eventName, baseEvent, callback);\n\t return function () { };\n\t };\n\t /**\n\t * @param {?} id\n\t * @param {?} element\n\t * @param {?} command\n\t * @param {?} args\n\t * @return {?}\n\t */\n\t TimelineAnimationEngine.prototype.command = /**\n\t * @param {?} id\n\t * @param {?} element\n\t * @param {?} command\n\t * @param {?} args\n\t * @return {?}\n\t */\n\t function (id, element, command, args) {\n\t if (command == 'register') {\n\t this.register(id, /** @type {?} */ (args[0]));\n\t return;\n\t }\n\t if (command == 'create') {\n\t var /** @type {?} */ options = /** @type {?} */ ((args[0] || {}));\n\t this.create(id, element, options);\n\t return;\n\t }\n\t var /** @type {?} */ player = this._getPlayer(id);\n\t switch (command) {\n\t case 'play':\n\t player.play();\n\t break;\n\t case 'pause':\n\t player.pause();\n\t break;\n\t case 'reset':\n\t player.reset();\n\t break;\n\t case 'restart':\n\t player.restart();\n\t break;\n\t case 'finish':\n\t player.finish();\n\t break;\n\t case 'init':\n\t player.init();\n\t break;\n\t case 'setPosition':\n\t player.setPosition(parseFloat(/** @type {?} */ (args[0])));\n\t break;\n\t case 'destroy':\n\t this.destroy(id);\n\t break;\n\t }\n\t };\n\t return TimelineAnimationEngine;\n\t}());\n\t\n\t/**\n\t * @fileoverview added by tsickle\n\t * @suppress {checkTypes} checked by tsc\n\t */\n\t/**\n\t * @license\n\t * Copyright Google Inc. All Rights Reserved.\n\t *\n\t * Use of this source code is governed by an MIT-style license that can be\n\t * found in the LICENSE file at https://angular.io/license\n\t */\n\tvar QUEUED_CLASSNAME = 'ng-animate-queued';\n\tvar QUEUED_SELECTOR = '.ng-animate-queued';\n\tvar DISABLED_CLASSNAME = 'ng-animate-disabled';\n\tvar DISABLED_SELECTOR = '.ng-animate-disabled';\n\tvar EMPTY_PLAYER_ARRAY = [];\n\tvar NULL_REMOVAL_STATE = {\n\t namespaceId: '',\n\t setForRemoval: null,\n\t hasAnimation: false,\n\t removedBeforeQueried: false\n\t};\n\tvar NULL_REMOVED_QUERIED_STATE = {\n\t namespaceId: '',\n\t setForRemoval: null,\n\t hasAnimation: false,\n\t removedBeforeQueried: true\n\t};\n\t/**\n\t * @record\n\t */\n\t\n\tvar REMOVAL_FLAG = '__ng_removed';\n\t/**\n\t * @record\n\t */\n\t\n\tvar StateValue = (function () {\n\t function StateValue(input, namespaceId) {\n\t if (namespaceId === void 0) { namespaceId = ''; }\n\t this.namespaceId = namespaceId;\n\t var /** @type {?} */ isObj = input && input.hasOwnProperty('value');\n\t var /** @type {?} */ value = isObj ? input['value'] : input;\n\t this.value = normalizeTriggerValue(value);\n\t if (isObj) {\n\t var /** @type {?} */ options = copyObj(/** @type {?} */ (input));\n\t delete options['value'];\n\t this.options = /** @type {?} */ (options);\n\t }\n\t else {\n\t this.options = {};\n\t }\n\t if (!this.options.params) {\n\t this.options.params = {};\n\t }\n\t }\n\t Object.defineProperty(StateValue.prototype, \"params\", {\n\t get: /**\n\t * @return {?}\n\t */\n\t function () { return /** @type {?} */ (this.options.params); },\n\t enumerable: true,\n\t configurable: true\n\t });\n\t /**\n\t * @param {?} options\n\t * @return {?}\n\t */\n\t StateValue.prototype.absorbOptions = /**\n\t * @param {?} options\n\t * @return {?}\n\t */\n\t function (options) {\n\t var /** @type {?} */ newParams = options.params;\n\t if (newParams) {\n\t var /** @type {?} */ oldParams_1 = /** @type {?} */ ((this.options.params));\n\t Object.keys(newParams).forEach(function (prop) {\n\t if (oldParams_1[prop] == null) {\n\t oldParams_1[prop] = newParams[prop];\n\t }\n\t });\n\t }\n\t };\n\t return StateValue;\n\t}());\n\tvar VOID_VALUE = 'void';\n\tvar DEFAULT_STATE_VALUE = new StateValue(VOID_VALUE);\n\tvar DELETED_STATE_VALUE = new StateValue('DELETED');\n\tvar AnimationTransitionNamespace = (function () {\n\t function AnimationTransitionNamespace(id, hostElement, _engine) {\n\t this.id = id;\n\t this.hostElement = hostElement;\n\t this._engine = _engine;\n\t this.players = [];\n\t this._triggers = {};\n\t this._queue = [];\n\t this._elementListeners = new Map();\n\t this._hostClassName = 'ng-tns-' + id;\n\t addClass(hostElement, this._hostClassName);\n\t }\n\t /**\n\t * @param {?} element\n\t * @param {?} name\n\t * @param {?} phase\n\t * @param {?} callback\n\t * @return {?}\n\t */\n\t AnimationTransitionNamespace.prototype.listen = /**\n\t * @param {?} element\n\t * @param {?} name\n\t * @param {?} phase\n\t * @param {?} callback\n\t * @return {?}\n\t */\n\t function (element, name, phase, callback) {\n\t var _this = this;\n\t if (!this._triggers.hasOwnProperty(name)) {\n\t throw new Error(\"Unable to listen on the animation trigger event \\\"\" + phase + \"\\\" because the animation trigger \\\"\" + name + \"\\\" doesn't exist!\");\n\t }\n\t if (phase == null || phase.length == 0) {\n\t throw new Error(\"Unable to listen on the animation trigger \\\"\" + name + \"\\\" because the provided event is undefined!\");\n\t }\n\t if (!isTriggerEventValid(phase)) {\n\t throw new Error(\"The provided animation trigger event \\\"\" + phase + \"\\\" for the animation trigger \\\"\" + name + \"\\\" is not supported!\");\n\t }\n\t var /** @type {?} */ listeners = getOrSetAsInMap(this._elementListeners, element, []);\n\t var /** @type {?} */ data = { name: name, phase: phase, callback: callback };\n\t listeners.push(data);\n\t var /** @type {?} */ triggersWithStates = getOrSetAsInMap(this._engine.statesByElement, element, {});\n\t if (!triggersWithStates.hasOwnProperty(name)) {\n\t addClass(element, NG_TRIGGER_CLASSNAME);\n\t addClass(element, NG_TRIGGER_CLASSNAME + '-' + name);\n\t triggersWithStates[name] = DEFAULT_STATE_VALUE;\n\t }\n\t return function () {\n\t // the event listener is removed AFTER the flush has occurred such\n\t // that leave animations callbacks can fire (otherwise if the node\n\t // is removed in between then the listeners would be deregistered)\n\t // the event listener is removed AFTER the flush has occurred such\n\t // that leave animations callbacks can fire (otherwise if the node\n\t // is removed in between then the listeners would be deregistered)\n\t _this._engine.afterFlush(function () {\n\t var /** @type {?} */ index = listeners.indexOf(data);\n\t if (index >= 0) {\n\t listeners.splice(index, 1);\n\t }\n\t if (!_this._triggers[name]) {\n\t delete triggersWithStates[name];\n\t }\n\t });\n\t };\n\t };\n\t /**\n\t * @param {?} name\n\t * @param {?} ast\n\t * @return {?}\n\t */\n\t AnimationTransitionNamespace.prototype.register = /**\n\t * @param {?} name\n\t * @param {?} ast\n\t * @return {?}\n\t */\n\t function (name, ast) {\n\t if (this._triggers[name]) {\n\t // throw\n\t return false;\n\t }\n\t else {\n\t this._triggers[name] = ast;\n\t return true;\n\t }\n\t };\n\t /**\n\t * @param {?} name\n\t * @return {?}\n\t */\n\t AnimationTransitionNamespace.prototype._getTrigger = /**\n\t * @param {?} name\n\t * @return {?}\n\t */\n\t function (name) {\n\t var /** @type {?} */ trigger = this._triggers[name];\n\t if (!trigger) {\n\t throw new Error(\"The provided animation trigger \\\"\" + name + \"\\\" has not been registered!\");\n\t }\n\t return trigger;\n\t };\n\t /**\n\t * @param {?} element\n\t * @param {?} triggerName\n\t * @param {?} value\n\t * @param {?=} defaultToFallback\n\t * @return {?}\n\t */\n\t AnimationTransitionNamespace.prototype.trigger = /**\n\t * @param {?} element\n\t * @param {?} triggerName\n\t * @param {?} value\n\t * @param {?=} defaultToFallback\n\t * @return {?}\n\t */\n\t function (element, triggerName, value, defaultToFallback) {\n\t var _this = this;\n\t if (defaultToFallback === void 0) { defaultToFallback = true; }\n\t var /** @type {?} */ trigger = this._getTrigger(triggerName);\n\t var /** @type {?} */ player = new TransitionAnimationPlayer(this.id, triggerName, element);\n\t var /** @type {?} */ triggersWithStates = this._engine.statesByElement.get(element);\n\t if (!triggersWithStates) {\n\t addClass(element, NG_TRIGGER_CLASSNAME);\n\t addClass(element, NG_TRIGGER_CLASSNAME + '-' + triggerName);\n\t this._engine.statesByElement.set(element, triggersWithStates = {});\n\t }\n\t var /** @type {?} */ fromState = triggersWithStates[triggerName];\n\t var /** @type {?} */ toState = new StateValue(value, this.id);\n\t var /** @type {?} */ isObj = value && value.hasOwnProperty('value');\n\t if (!isObj && fromState) {\n\t toState.absorbOptions(fromState.options);\n\t }\n\t triggersWithStates[triggerName] = toState;\n\t if (!fromState) {\n\t fromState = DEFAULT_STATE_VALUE;\n\t }\n\t else if (fromState === DELETED_STATE_VALUE) {\n\t return player;\n\t }\n\t var /** @type {?} */ isRemoval = toState.value === VOID_VALUE;\n\t // normally this isn't reached by here, however, if an object expression\n\t // is passed in then it may be a new object each time. Comparing the value\n\t // is important since that will stay the same despite there being a new object.\n\t // The removal arc here is special cased because the same element is triggered\n\t // twice in the event that it contains animations on the outer/inner portions\n\t // of the host container\n\t if (!isRemoval && fromState.value === toState.value) {\n\t // this means that despite the value not changing, some inner params\n\t // have changed which means that the animation final styles need to be applied\n\t if (!objEquals(fromState.params, toState.params)) {\n\t var /** @type {?} */ errors = [];\n\t var /** @type {?} */ fromStyles_1 = trigger.matchStyles(fromState.value, fromState.params, errors);\n\t var /** @type {?} */ toStyles_1 = trigger.matchStyles(toState.value, toState.params, errors);\n\t if (errors.length) {\n\t this._engine.reportError(errors);\n\t }\n\t else {\n\t this._engine.afterFlush(function () {\n\t eraseStyles(element, fromStyles_1);\n\t setStyles(element, toStyles_1);\n\t });\n\t }\n\t }\n\t return;\n\t }\n\t var /** @type {?} */ playersOnElement = getOrSetAsInMap(this._engine.playersByElement, element, []);\n\t playersOnElement.forEach(function (player) {\n\t // only remove the player if it is queued on the EXACT same trigger/namespace\n\t // we only also deal with queued players here because if the animation has\n\t // started then we want to keep the player alive until the flush happens\n\t // (which is where the previousPlayers are passed into the new palyer)\n\t if (player.namespaceId == _this.id && player.triggerName == triggerName && player.queued) {\n\t player.destroy();\n\t }\n\t });\n\t var /** @type {?} */ transition = trigger.matchTransition(fromState.value, toState.value);\n\t var /** @type {?} */ isFallbackTransition = false;\n\t if (!transition) {\n\t if (!defaultToFallback)\n\t return;\n\t transition = trigger.fallbackTransition;\n\t isFallbackTransition = true;\n\t }\n\t this._engine.totalQueuedPlayers++;\n\t this._queue.push({ element: element, triggerName: triggerName, transition: transition, fromState: fromState, toState: toState, player: player, isFallbackTransition: isFallbackTransition });\n\t if (!isFallbackTransition) {\n\t addClass(element, QUEUED_CLASSNAME);\n\t player.onStart(function () { removeClass(element, QUEUED_CLASSNAME); });\n\t }\n\t player.onDone(function () {\n\t var /** @type {?} */ index = _this.players.indexOf(player);\n\t if (index >= 0) {\n\t _this.players.splice(index, 1);\n\t }\n\t var /** @type {?} */ players = _this._engine.playersByElement.get(element);\n\t if (players) {\n\t var /** @type {?} */ index_1 = players.indexOf(player);\n\t if (index_1 >= 0) {\n\t players.splice(index_1, 1);\n\t }\n\t }\n\t });\n\t this.players.push(player);\n\t playersOnElement.push(player);\n\t return player;\n\t };\n\t /**\n\t * @param {?} name\n\t * @return {?}\n\t */\n\t AnimationTransitionNamespace.prototype.deregister = /**\n\t * @param {?} name\n\t * @return {?}\n\t */\n\t function (name) {\n\t var _this = this;\n\t delete this._triggers[name];\n\t this._engine.statesByElement.forEach(function (stateMap, element) { delete stateMap[name]; });\n\t this._elementListeners.forEach(function (listeners, element) {\n\t _this._elementListeners.set(element, listeners.filter(function (entry) { return entry.name != name; }));\n\t });\n\t };\n\t /**\n\t * @param {?} element\n\t * @return {?}\n\t */\n\t AnimationTransitionNamespace.prototype.clearElementCache = /**\n\t * @param {?} element\n\t * @return {?}\n\t */\n\t function (element) {\n\t this._engine.statesByElement.delete(element);\n\t this._elementListeners.delete(element);\n\t var /** @type {?} */ elementPlayers = this._engine.playersByElement.get(element);\n\t if (elementPlayers) {\n\t elementPlayers.forEach(function (player) { return player.destroy(); });\n\t this._engine.playersByElement.delete(element);\n\t }\n\t };\n\t /**\n\t * @param {?} rootElement\n\t * @param {?} context\n\t * @param {?=} animate\n\t * @return {?}\n\t */\n\t AnimationTransitionNamespace.prototype._signalRemovalForInnerTriggers = /**\n\t * @param {?} rootElement\n\t * @param {?} context\n\t * @param {?=} animate\n\t * @return {?}\n\t */\n\t function (rootElement, context, animate) {\n\t var _this = this;\n\t if (animate === void 0) { animate = false; }\n\t // emulate a leave animation for all inner nodes within this node.\n\t // If there are no animations found for any of the nodes then clear the cache\n\t // for the element.\n\t this._engine.driver.query(rootElement, NG_TRIGGER_SELECTOR, true).forEach(function (elm) {\n\t var /** @type {?} */ namespaces = _this._engine.fetchNamespacesByElement(elm);\n\t if (namespaces.size) {\n\t namespaces.forEach(function (ns) { ns.triggerLeaveAnimation(elm, context, false, true); });\n\t }\n\t else {\n\t _this.clearElementCache(elm);\n\t }\n\t });\n\t };\n\t /**\n\t * @param {?} element\n\t * @param {?} context\n\t * @param {?=} destroyAfterComplete\n\t * @param {?=} defaultToFallback\n\t * @return {?}\n\t */\n\t AnimationTransitionNamespace.prototype.triggerLeaveAnimation = /**\n\t * @param {?} element\n\t * @param {?} context\n\t * @param {?=} destroyAfterComplete\n\t * @param {?=} defaultToFallback\n\t * @return {?}\n\t */\n\t function (element, context, destroyAfterComplete, defaultToFallback) {\n\t var _this = this;\n\t var /** @type {?} */ triggerStates = this._engine.statesByElement.get(element);\n\t if (triggerStates) {\n\t var /** @type {?} */ players_1 = [];\n\t Object.keys(triggerStates).forEach(function (triggerName) {\n\t // this check is here in the event that an element is removed\n\t // twice (both on the host level and the component level)\n\t if (_this._triggers[triggerName]) {\n\t var /** @type {?} */ player = _this.trigger(element, triggerName, VOID_VALUE, defaultToFallback);\n\t if (player) {\n\t players_1.push(player);\n\t }\n\t }\n\t });\n\t if (players_1.length) {\n\t this._engine.markElementAsRemoved(this.id, element, true, context);\n\t if (destroyAfterComplete) {\n\t optimizeGroupPlayer(players_1).onDone(function () { return _this._engine.processLeaveNode(element); });\n\t }\n\t return true;\n\t }\n\t }\n\t return false;\n\t };\n\t /**\n\t * @param {?} element\n\t * @return {?}\n\t */\n\t AnimationTransitionNamespace.prototype.prepareLeaveAnimationListeners = /**\n\t * @param {?} element\n\t * @return {?}\n\t */\n\t function (element) {\n\t var _this = this;\n\t var /** @type {?} */ listeners = this._elementListeners.get(element);\n\t if (listeners) {\n\t var /** @type {?} */ visitedTriggers_1 = new Set();\n\t listeners.forEach(function (listener) {\n\t var /** @type {?} */ triggerName = listener.name;\n\t if (visitedTriggers_1.has(triggerName))\n\t return;\n\t visitedTriggers_1.add(triggerName);\n\t var /** @type {?} */ trigger = _this._triggers[triggerName];\n\t var /** @type {?} */ transition = trigger.fallbackTransition;\n\t var /** @type {?} */ elementStates = /** @type {?} */ ((_this._engine.statesByElement.get(element)));\n\t var /** @type {?} */ fromState = elementStates[triggerName] || DEFAULT_STATE_VALUE;\n\t var /** @type {?} */ toState = new StateValue(VOID_VALUE);\n\t var /** @type {?} */ player = new TransitionAnimationPlayer(_this.id, triggerName, element);\n\t _this._engine.totalQueuedPlayers++;\n\t _this._queue.push({\n\t element: element,\n\t triggerName: triggerName,\n\t transition: transition,\n\t fromState: fromState,\n\t toState: toState,\n\t player: player,\n\t isFallbackTransition: true\n\t });\n\t });\n\t }\n\t };\n\t /**\n\t * @param {?} element\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationTransitionNamespace.prototype.removeNode = /**\n\t * @param {?} element\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (element, context) {\n\t var _this = this;\n\t var /** @type {?} */ engine = this._engine;\n\t if (element.childElementCount) {\n\t this._signalRemovalForInnerTriggers(element, context, true);\n\t }\n\t // this means that a * => VOID animation was detected and kicked off\n\t if (this.triggerLeaveAnimation(element, context, true))\n\t return;\n\t // find the player that is animating and make sure that the\n\t // removal is delayed until that player has completed\n\t var /** @type {?} */ containsPotentialParentTransition = false;\n\t if (engine.totalAnimations) {\n\t var /** @type {?} */ currentPlayers = engine.players.length ? engine.playersByQueriedElement.get(element) : [];\n\t // when this `if statement` does not continue forward it means that\n\t // a previous animation query has selected the current element and\n\t // is animating it. In this situation want to continue fowards and\n\t // allow the element to be queued up for animation later.\n\t if (currentPlayers && currentPlayers.length) {\n\t containsPotentialParentTransition = true;\n\t }\n\t else {\n\t var /** @type {?} */ parent_1 = element;\n\t while (parent_1 = parent_1.parentNode) {\n\t var /** @type {?} */ triggers = engine.statesByElement.get(parent_1);\n\t if (triggers) {\n\t containsPotentialParentTransition = true;\n\t break;\n\t }\n\t }\n\t }\n\t }\n\t // at this stage we know that the element will either get removed\n\t // during flush or will be picked up by a parent query. Either way\n\t // we need to fire the listeners for this element when it DOES get\n\t // removed (once the query parent animation is done or after flush)\n\t this.prepareLeaveAnimationListeners(element);\n\t // whether or not a parent has an animation we need to delay the deferral of the leave\n\t // operation until we have more information (which we do after flush() has been called)\n\t if (containsPotentialParentTransition) {\n\t engine.markElementAsRemoved(this.id, element, false, context);\n\t }\n\t else {\n\t // we do this after the flush has occurred such\n\t // that the callbacks can be fired\n\t engine.afterFlush(function () { return _this.clearElementCache(element); });\n\t engine.destroyInnerAnimations(element);\n\t engine._onRemovalComplete(element, context);\n\t }\n\t };\n\t /**\n\t * @param {?} element\n\t * @param {?} parent\n\t * @return {?}\n\t */\n\t AnimationTransitionNamespace.prototype.insertNode = /**\n\t * @param {?} element\n\t * @param {?} parent\n\t * @return {?}\n\t */\n\t function (element, parent) { addClass(element, this._hostClassName); };\n\t /**\n\t * @param {?} microtaskId\n\t * @return {?}\n\t */\n\t AnimationTransitionNamespace.prototype.drainQueuedTransitions = /**\n\t * @param {?} microtaskId\n\t * @return {?}\n\t */\n\t function (microtaskId) {\n\t var _this = this;\n\t var /** @type {?} */ instructions = [];\n\t this._queue.forEach(function (entry) {\n\t var /** @type {?} */ player = entry.player;\n\t if (player.destroyed)\n\t return;\n\t var /** @type {?} */ element = entry.element;\n\t var /** @type {?} */ listeners = _this._elementListeners.get(element);\n\t if (listeners) {\n\t listeners.forEach(function (listener) {\n\t if (listener.name == entry.triggerName) {\n\t var /** @type {?} */ baseEvent = makeAnimationEvent(element, entry.triggerName, entry.fromState.value, entry.toState.value);\n\t (/** @type {?} */ (baseEvent))['_data'] = microtaskId;\n\t listenOnPlayer(entry.player, listener.phase, baseEvent, listener.callback);\n\t }\n\t });\n\t }\n\t if (player.markedForDestroy) {\n\t _this._engine.afterFlush(function () {\n\t // now we can destroy the element properly since the event listeners have\n\t // been bound to the player\n\t player.destroy();\n\t });\n\t }\n\t else {\n\t instructions.push(entry);\n\t }\n\t });\n\t this._queue = [];\n\t return instructions.sort(function (a, b) {\n\t // if depCount == 0 them move to front\n\t // otherwise if a contains b then move back\n\t var /** @type {?} */ d0 = a.transition.ast.depCount;\n\t var /** @type {?} */ d1 = b.transition.ast.depCount;\n\t if (d0 == 0 || d1 == 0) {\n\t return d0 - d1;\n\t }\n\t return _this._engine.driver.containsElement(a.element, b.element) ? 1 : -1;\n\t });\n\t };\n\t /**\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationTransitionNamespace.prototype.destroy = /**\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (context) {\n\t this.players.forEach(function (p) { return p.destroy(); });\n\t this._signalRemovalForInnerTriggers(this.hostElement, context);\n\t };\n\t /**\n\t * @param {?} element\n\t * @return {?}\n\t */\n\t AnimationTransitionNamespace.prototype.elementContainsData = /**\n\t * @param {?} element\n\t * @return {?}\n\t */\n\t function (element) {\n\t var /** @type {?} */ containsData = false;\n\t if (this._elementListeners.has(element))\n\t containsData = true;\n\t containsData =\n\t (this._queue.find(function (entry) { return entry.element === element; }) ? true : false) || containsData;\n\t return containsData;\n\t };\n\t return AnimationTransitionNamespace;\n\t}());\n\t/**\n\t * @record\n\t */\n\t\n\tvar TransitionAnimationEngine = (function () {\n\t function TransitionAnimationEngine(driver, _normalizer) {\n\t this.driver = driver;\n\t this._normalizer = _normalizer;\n\t this.players = [];\n\t this.newHostElements = new Map();\n\t this.playersByElement = new Map();\n\t this.playersByQueriedElement = new Map();\n\t this.statesByElement = new Map();\n\t this.disabledNodes = new Set();\n\t this.totalAnimations = 0;\n\t this.totalQueuedPlayers = 0;\n\t this._namespaceLookup = {};\n\t this._namespaceList = [];\n\t this._flushFns = [];\n\t this._whenQuietFns = [];\n\t this.namespacesByHostElement = new Map();\n\t this.collectedEnterElements = [];\n\t this.collectedLeaveElements = [];\n\t this.onRemovalComplete = function (element, context) { };\n\t }\n\t /** @internal */\n\t /**\n\t * \\@internal\n\t * @param {?} element\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t TransitionAnimationEngine.prototype._onRemovalComplete = /**\n\t * \\@internal\n\t * @param {?} element\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (element, context) { this.onRemovalComplete(element, context); };\n\t Object.defineProperty(TransitionAnimationEngine.prototype, \"queuedPlayers\", {\n\t get: /**\n\t * @return {?}\n\t */\n\t function () {\n\t var /** @type {?} */ players = [];\n\t this._namespaceList.forEach(function (ns) {\n\t ns.players.forEach(function (player) {\n\t if (player.queued) {\n\t players.push(player);\n\t }\n\t });\n\t });\n\t return players;\n\t },\n\t enumerable: true,\n\t configurable: true\n\t });\n\t /**\n\t * @param {?} namespaceId\n\t * @param {?} hostElement\n\t * @return {?}\n\t */\n\t TransitionAnimationEngine.prototype.createNamespace = /**\n\t * @param {?} namespaceId\n\t * @param {?} hostElement\n\t * @return {?}\n\t */\n\t function (namespaceId, hostElement) {\n\t var /** @type {?} */ ns = new AnimationTransitionNamespace(namespaceId, hostElement, this);\n\t if (hostElement.parentNode) {\n\t this._balanceNamespaceList(ns, hostElement);\n\t }\n\t else {\n\t // defer this later until flush during when the host element has\n\t // been inserted so that we know exactly where to place it in\n\t // the namespace list\n\t this.newHostElements.set(hostElement, ns);\n\t // given that this host element is apart of the animation code, it\n\t // may or may not be inserted by a parent node that is an of an\n\t // animation renderer type. If this happens then we can still have\n\t // access to this item when we query for :enter nodes. If the parent\n\t // is a renderer then the set data-structure will normalize the entry\n\t this.collectEnterElement(hostElement);\n\t }\n\t return this._namespaceLookup[namespaceId] = ns;\n\t };\n\t /**\n\t * @param {?} ns\n\t * @param {?} hostElement\n\t * @return {?}\n\t */\n\t TransitionAnimationEngine.prototype._balanceNamespaceList = /**\n\t * @param {?} ns\n\t * @param {?} hostElement\n\t * @return {?}\n\t */\n\t function (ns, hostElement) {\n\t var /** @type {?} */ limit = this._namespaceList.length - 1;\n\t if (limit >= 0) {\n\t var /** @type {?} */ found = false;\n\t for (var /** @type {?} */ i = limit; i >= 0; i--) {\n\t var /** @type {?} */ nextNamespace = this._namespaceList[i];\n\t if (this.driver.containsElement(nextNamespace.hostElement, hostElement)) {\n\t this._namespaceList.splice(i + 1, 0, ns);\n\t found = true;\n\t break;\n\t }\n\t }\n\t if (!found) {\n\t this._namespaceList.splice(0, 0, ns);\n\t }\n\t }\n\t else {\n\t this._namespaceList.push(ns);\n\t }\n\t this.namespacesByHostElement.set(hostElement, ns);\n\t return ns;\n\t };\n\t /**\n\t * @param {?} namespaceId\n\t * @param {?} hostElement\n\t * @return {?}\n\t */\n\t TransitionAnimationEngine.prototype.register = /**\n\t * @param {?} namespaceId\n\t * @param {?} hostElement\n\t * @return {?}\n\t */\n\t function (namespaceId, hostElement) {\n\t var /** @type {?} */ ns = this._namespaceLookup[namespaceId];\n\t if (!ns) {\n\t ns = this.createNamespace(namespaceId, hostElement);\n\t }\n\t return ns;\n\t };\n\t /**\n\t * @param {?} namespaceId\n\t * @param {?} name\n\t * @param {?} trigger\n\t * @return {?}\n\t */\n\t TransitionAnimationEngine.prototype.registerTrigger = /**\n\t * @param {?} namespaceId\n\t * @param {?} name\n\t * @param {?} trigger\n\t * @return {?}\n\t */\n\t function (namespaceId, name, trigger) {\n\t var /** @type {?} */ ns = this._namespaceLookup[namespaceId];\n\t if (ns && ns.register(name, trigger)) {\n\t this.totalAnimations++;\n\t }\n\t };\n\t /**\n\t * @param {?} namespaceId\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t TransitionAnimationEngine.prototype.destroy = /**\n\t * @param {?} namespaceId\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (namespaceId, context) {\n\t var _this = this;\n\t if (!namespaceId)\n\t return;\n\t var /** @type {?} */ ns = this._fetchNamespace(namespaceId);\n\t this.afterFlush(function () {\n\t _this.namespacesByHostElement.delete(ns.hostElement);\n\t delete _this._namespaceLookup[namespaceId];\n\t var /** @type {?} */ index = _this._namespaceList.indexOf(ns);\n\t if (index >= 0) {\n\t _this._namespaceList.splice(index, 1);\n\t }\n\t });\n\t this.afterFlushAnimationsDone(function () { return ns.destroy(context); });\n\t };\n\t /**\n\t * @param {?} id\n\t * @return {?}\n\t */\n\t TransitionAnimationEngine.prototype._fetchNamespace = /**\n\t * @param {?} id\n\t * @return {?}\n\t */\n\t function (id) { return this._namespaceLookup[id]; };\n\t /**\n\t * @param {?} element\n\t * @return {?}\n\t */\n\t TransitionAnimationEngine.prototype.fetchNamespacesByElement = /**\n\t * @param {?} element\n\t * @return {?}\n\t */\n\t function (element) {\n\t // normally there should only be one namespace per element, however\n\t // if @triggers are placed on both the component element and then\n\t // its host element (within the component code) then there will be\n\t // two namespaces returned. We use a set here to simply the dedupe\n\t // of namespaces incase there are multiple triggers both the elm and host\n\t var /** @type {?} */ namespaces = new Set();\n\t var /** @type {?} */ elementStates = this.statesByElement.get(element);\n\t if (elementStates) {\n\t var /** @type {?} */ keys = Object.keys(elementStates);\n\t for (var /** @type {?} */ i = 0; i < keys.length; i++) {\n\t var /** @type {?} */ nsId = elementStates[keys[i]].namespaceId;\n\t if (nsId) {\n\t var /** @type {?} */ ns = this._fetchNamespace(nsId);\n\t if (ns) {\n\t namespaces.add(ns);\n\t }\n\t }\n\t }\n\t }\n\t return namespaces;\n\t };\n\t /**\n\t * @param {?} namespaceId\n\t * @param {?} element\n\t * @param {?} name\n\t * @param {?} value\n\t * @return {?}\n\t */\n\t TransitionAnimationEngine.prototype.trigger = /**\n\t * @param {?} namespaceId\n\t * @param {?} element\n\t * @param {?} name\n\t * @param {?} value\n\t * @return {?}\n\t */\n\t function (namespaceId, element, name, value) {\n\t if (isElementNode(element)) {\n\t this._fetchNamespace(namespaceId).trigger(element, name, value);\n\t return true;\n\t }\n\t return false;\n\t };\n\t /**\n\t * @param {?} namespaceId\n\t * @param {?} element\n\t * @param {?} parent\n\t * @param {?} insertBefore\n\t * @return {?}\n\t */\n\t TransitionAnimationEngine.prototype.insertNode = /**\n\t * @param {?} namespaceId\n\t * @param {?} element\n\t * @param {?} parent\n\t * @param {?} insertBefore\n\t * @return {?}\n\t */\n\t function (namespaceId, element, parent, insertBefore) {\n\t if (!isElementNode(element))\n\t return;\n\t // special case for when an element is removed and reinserted (move operation)\n\t // when this occurs we do not want to use the element for deletion later\n\t var /** @type {?} */ details = /** @type {?} */ (element[REMOVAL_FLAG]);\n\t if (details && details.setForRemoval) {\n\t details.setForRemoval = false;\n\t }\n\t // in the event that the namespaceId is blank then the caller\n\t // code does not contain any animation code in it, but it is\n\t // just being called so that the node is marked as being inserted\n\t if (namespaceId) {\n\t this._fetchNamespace(namespaceId).insertNode(element, parent);\n\t }\n\t // only *directives and host elements are inserted before\n\t if (insertBefore) {\n\t this.collectEnterElement(element);\n\t }\n\t };\n\t /**\n\t * @param {?} element\n\t * @return {?}\n\t */\n\t TransitionAnimationEngine.prototype.collectEnterElement = /**\n\t * @param {?} element\n\t * @return {?}\n\t */\n\t function (element) { this.collectedEnterElements.push(element); };\n\t /**\n\t * @param {?} element\n\t * @param {?} value\n\t * @return {?}\n\t */\n\t TransitionAnimationEngine.prototype.markElementAsDisabled = /**\n\t * @param {?} element\n\t * @param {?} value\n\t * @return {?}\n\t */\n\t function (element, value) {\n\t if (value) {\n\t if (!this.disabledNodes.has(element)) {\n\t this.disabledNodes.add(element);\n\t addClass(element, DISABLED_CLASSNAME);\n\t }\n\t }\n\t else if (this.disabledNodes.has(element)) {\n\t this.disabledNodes.delete(element);\n\t removeClass(element, DISABLED_CLASSNAME);\n\t }\n\t };\n\t /**\n\t * @param {?} namespaceId\n\t * @param {?} element\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t TransitionAnimationEngine.prototype.removeNode = /**\n\t * @param {?} namespaceId\n\t * @param {?} element\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (namespaceId, element, context) {\n\t if (!isElementNode(element)) {\n\t this._onRemovalComplete(element, context);\n\t return;\n\t }\n\t var /** @type {?} */ ns = namespaceId ? this._fetchNamespace(namespaceId) : null;\n\t if (ns) {\n\t ns.removeNode(element, context);\n\t }\n\t else {\n\t this.markElementAsRemoved(namespaceId, element, false, context);\n\t }\n\t };\n\t /**\n\t * @param {?} namespaceId\n\t * @param {?} element\n\t * @param {?=} hasAnimation\n\t * @param {?=} context\n\t * @return {?}\n\t */\n\t TransitionAnimationEngine.prototype.markElementAsRemoved = /**\n\t * @param {?} namespaceId\n\t * @param {?} element\n\t * @param {?=} hasAnimation\n\t * @param {?=} context\n\t * @return {?}\n\t */\n\t function (namespaceId, element, hasAnimation, context) {\n\t this.collectedLeaveElements.push(element);\n\t element[REMOVAL_FLAG] = {\n\t namespaceId: namespaceId,\n\t setForRemoval: context, hasAnimation: hasAnimation,\n\t removedBeforeQueried: false\n\t };\n\t };\n\t /**\n\t * @param {?} namespaceId\n\t * @param {?} element\n\t * @param {?} name\n\t * @param {?} phase\n\t * @param {?} callback\n\t * @return {?}\n\t */\n\t TransitionAnimationEngine.prototype.listen = /**\n\t * @param {?} namespaceId\n\t * @param {?} element\n\t * @param {?} name\n\t * @param {?} phase\n\t * @param {?} callback\n\t * @return {?}\n\t */\n\t function (namespaceId, element, name, phase, callback) {\n\t if (isElementNode(element)) {\n\t return this._fetchNamespace(namespaceId).listen(element, name, phase, callback);\n\t }\n\t return function () { };\n\t };\n\t /**\n\t * @param {?} entry\n\t * @param {?} subTimelines\n\t * @return {?}\n\t */\n\t TransitionAnimationEngine.prototype._buildInstruction = /**\n\t * @param {?} entry\n\t * @param {?} subTimelines\n\t * @return {?}\n\t */\n\t function (entry, subTimelines) {\n\t return entry.transition.build(this.driver, entry.element, entry.fromState.value, entry.toState.value, entry.fromState.options, entry.toState.options, subTimelines);\n\t };\n\t /**\n\t * @param {?} containerElement\n\t * @return {?}\n\t */\n\t TransitionAnimationEngine.prototype.destroyInnerAnimations = /**\n\t * @param {?} containerElement\n\t * @return {?}\n\t */\n\t function (containerElement) {\n\t var _this = this;\n\t var /** @type {?} */ elements = this.driver.query(containerElement, NG_TRIGGER_SELECTOR, true);\n\t elements.forEach(function (element) { return _this.destroyActiveAnimationsForElement(element); });\n\t if (this.playersByQueriedElement.size == 0)\n\t return;\n\t elements = this.driver.query(containerElement, NG_ANIMATING_SELECTOR, true);\n\t elements.forEach(function (element) { return _this.finishActiveQueriedAnimationOnElement(element); });\n\t };\n\t /**\n\t * @param {?} element\n\t * @return {?}\n\t */\n\t TransitionAnimationEngine.prototype.destroyActiveAnimationsForElement = /**\n\t * @param {?} element\n\t * @return {?}\n\t */\n\t function (element) {\n\t var /** @type {?} */ players = this.playersByElement.get(element);\n\t if (players) {\n\t players.forEach(function (player) {\n\t // special case for when an element is set for destruction, but hasn't started.\n\t // in this situation we want to delay the destruction until the flush occurs\n\t // so that any event listeners attached to the player are triggered.\n\t if (player.queued) {\n\t player.markedForDestroy = true;\n\t }\n\t else {\n\t player.destroy();\n\t }\n\t });\n\t }\n\t var /** @type {?} */ stateMap = this.statesByElement.get(element);\n\t if (stateMap) {\n\t Object.keys(stateMap).forEach(function (triggerName) { return stateMap[triggerName] = DELETED_STATE_VALUE; });\n\t }\n\t };\n\t /**\n\t * @param {?} element\n\t * @return {?}\n\t */\n\t TransitionAnimationEngine.prototype.finishActiveQueriedAnimationOnElement = /**\n\t * @param {?} element\n\t * @return {?}\n\t */\n\t function (element) {\n\t var /** @type {?} */ players = this.playersByQueriedElement.get(element);\n\t if (players) {\n\t players.forEach(function (player) { return player.finish(); });\n\t }\n\t };\n\t /**\n\t * @return {?}\n\t */\n\t TransitionAnimationEngine.prototype.whenRenderingDone = /**\n\t * @return {?}\n\t */\n\t function () {\n\t var _this = this;\n\t return new Promise(function (resolve) {\n\t if (_this.players.length) {\n\t return optimizeGroupPlayer(_this.players).onDone(function () { return resolve(); });\n\t }\n\t else {\n\t resolve();\n\t }\n\t });\n\t };\n\t /**\n\t * @param {?} element\n\t * @return {?}\n\t */\n\t TransitionAnimationEngine.prototype.processLeaveNode = /**\n\t * @param {?} element\n\t * @return {?}\n\t */\n\t function (element) {\n\t var _this = this;\n\t var /** @type {?} */ details = /** @type {?} */ (element[REMOVAL_FLAG]);\n\t if (details && details.setForRemoval) {\n\t // this will prevent it from removing it twice\n\t element[REMOVAL_FLAG] = NULL_REMOVAL_STATE;\n\t if (details.namespaceId) {\n\t this.destroyInnerAnimations(element);\n\t var /** @type {?} */ ns = this._fetchNamespace(details.namespaceId);\n\t if (ns) {\n\t ns.clearElementCache(element);\n\t }\n\t }\n\t this._onRemovalComplete(element, details.setForRemoval);\n\t }\n\t if (this.driver.matchesElement(element, DISABLED_SELECTOR)) {\n\t this.markElementAsDisabled(element, false);\n\t }\n\t this.driver.query(element, DISABLED_SELECTOR, true).forEach(function (node) {\n\t _this.markElementAsDisabled(element, false);\n\t });\n\t };\n\t /**\n\t * @param {?=} microtaskId\n\t * @return {?}\n\t */\n\t TransitionAnimationEngine.prototype.flush = /**\n\t * @param {?=} microtaskId\n\t * @return {?}\n\t */\n\t function (microtaskId) {\n\t var _this = this;\n\t if (microtaskId === void 0) { microtaskId = -1; }\n\t var /** @type {?} */ players = [];\n\t if (this.newHostElements.size) {\n\t this.newHostElements.forEach(function (ns, element) { return _this._balanceNamespaceList(ns, element); });\n\t this.newHostElements.clear();\n\t }\n\t if (this._namespaceList.length &&\n\t (this.totalQueuedPlayers || this.collectedLeaveElements.length)) {\n\t var /** @type {?} */ cleanupFns = [];\n\t try {\n\t players = this._flushAnimations(cleanupFns, microtaskId);\n\t }\n\t finally {\n\t for (var /** @type {?} */ i = 0; i < cleanupFns.length; i++) {\n\t cleanupFns[i]();\n\t }\n\t }\n\t }\n\t else {\n\t for (var /** @type {?} */ i = 0; i < this.collectedLeaveElements.length; i++) {\n\t var /** @type {?} */ element = this.collectedLeaveElements[i];\n\t this.processLeaveNode(element);\n\t }\n\t }\n\t this.totalQueuedPlayers = 0;\n\t this.collectedEnterElements.length = 0;\n\t this.collectedLeaveElements.length = 0;\n\t this._flushFns.forEach(function (fn) { return fn(); });\n\t this._flushFns = [];\n\t if (this._whenQuietFns.length) {\n\t // we move these over to a variable so that\n\t // if any new callbacks are registered in another\n\t // flush they do not populate the existing set\n\t var /** @type {?} */ quietFns_1 = this._whenQuietFns;\n\t this._whenQuietFns = [];\n\t if (players.length) {\n\t optimizeGroupPlayer(players).onDone(function () { quietFns_1.forEach(function (fn) { return fn(); }); });\n\t }\n\t else {\n\t quietFns_1.forEach(function (fn) { return fn(); });\n\t }\n\t }\n\t };\n\t /**\n\t * @param {?} errors\n\t * @return {?}\n\t */\n\t TransitionAnimationEngine.prototype.reportError = /**\n\t * @param {?} errors\n\t * @return {?}\n\t */\n\t function (errors) {\n\t throw new Error(\"Unable to process animations due to the following failed trigger transitions\\n \" + errors.join('\\n'));\n\t };\n\t /**\n\t * @param {?} cleanupFns\n\t * @param {?} microtaskId\n\t * @return {?}\n\t */\n\t TransitionAnimationEngine.prototype._flushAnimations = /**\n\t * @param {?} cleanupFns\n\t * @param {?} microtaskId\n\t * @return {?}\n\t */\n\t function (cleanupFns, microtaskId) {\n\t var _this = this;\n\t var /** @type {?} */ subTimelines = new ElementInstructionMap();\n\t var /** @type {?} */ skippedPlayers = [];\n\t var /** @type {?} */ skippedPlayersMap = new Map();\n\t var /** @type {?} */ queuedInstructions = [];\n\t var /** @type {?} */ queriedElements = new Map();\n\t var /** @type {?} */ allPreStyleElements = new Map();\n\t var /** @type {?} */ allPostStyleElements = new Map();\n\t var /** @type {?} */ disabledElementsSet = new Set();\n\t this.disabledNodes.forEach(function (node) {\n\t disabledElementsSet.add(node);\n\t var /** @type {?} */ nodesThatAreDisabled = _this.driver.query(node, QUEUED_SELECTOR, true);\n\t for (var /** @type {?} */ i = 0; i < nodesThatAreDisabled.length; i++) {\n\t disabledElementsSet.add(nodesThatAreDisabled[i]);\n\t }\n\t });\n\t var /** @type {?} */ bodyNode = getBodyNode();\n\t var /** @type {?} */ allEnterNodes = this.collectedEnterElements.length ?\n\t this.collectedEnterElements.filter(createIsRootFilterFn(this.collectedEnterElements)) :\n\t [];\n\t // this must occur before the instructions are built below such that\n\t // the :enter queries match the elements (since the timeline queries\n\t // are fired during instruction building).\n\t for (var /** @type {?} */ i = 0; i < allEnterNodes.length; i++) {\n\t addClass(allEnterNodes[i], ENTER_CLASSNAME);\n\t }\n\t var /** @type {?} */ allLeaveNodes = [];\n\t var /** @type {?} */ leaveNodesWithoutAnimations = new Set();\n\t for (var /** @type {?} */ i = 0; i < this.collectedLeaveElements.length; i++) {\n\t var /** @type {?} */ element = this.collectedLeaveElements[i];\n\t var /** @type {?} */ details = /** @type {?} */ (element[REMOVAL_FLAG]);\n\t if (details && details.setForRemoval) {\n\t addClass(element, LEAVE_CLASSNAME);\n\t allLeaveNodes.push(element);\n\t if (!details.hasAnimation) {\n\t leaveNodesWithoutAnimations.add(element);\n\t }\n\t }\n\t }\n\t cleanupFns.push(function () {\n\t allEnterNodes.forEach(function (element) { return removeClass(element, ENTER_CLASSNAME); });\n\t allLeaveNodes.forEach(function (element) {\n\t removeClass(element, LEAVE_CLASSNAME);\n\t _this.processLeaveNode(element);\n\t });\n\t });\n\t var /** @type {?} */ allPlayers = [];\n\t var /** @type {?} */ erroneousTransitions = [];\n\t for (var /** @type {?} */ i = this._namespaceList.length - 1; i >= 0; i--) {\n\t var /** @type {?} */ ns = this._namespaceList[i];\n\t ns.drainQueuedTransitions(microtaskId).forEach(function (entry) {\n\t var /** @type {?} */ player = entry.player;\n\t allPlayers.push(player);\n\t var /** @type {?} */ element = entry.element;\n\t if (!bodyNode || !_this.driver.containsElement(bodyNode, element)) {\n\t player.destroy();\n\t return;\n\t }\n\t var /** @type {?} */ instruction = /** @type {?} */ ((_this._buildInstruction(entry, subTimelines)));\n\t if (instruction.errors && instruction.errors.length) {\n\t erroneousTransitions.push(instruction);\n\t return;\n\t }\n\t // if a unmatched transition is queued to go then it SHOULD NOT render\n\t // an animation and cancel the previously running animations.\n\t if (entry.isFallbackTransition) {\n\t player.onStart(function () { return eraseStyles(element, instruction.fromStyles); });\n\t player.onDestroy(function () { return setStyles(element, instruction.toStyles); });\n\t skippedPlayers.push(player);\n\t return;\n\t }\n\t // this means that if a parent animation uses this animation as a sub trigger\n\t // then it will instruct the timeline builder to not add a player delay, but\n\t // instead stretch the first keyframe gap up until the animation starts. The\n\t // reason this is important is to prevent extra initialization styles from being\n\t // required by the user in the animation.\n\t instruction.timelines.forEach(function (tl) { return tl.stretchStartingKeyframe = true; });\n\t subTimelines.append(element, instruction.timelines);\n\t var /** @type {?} */ tuple = { instruction: instruction, player: player, element: element };\n\t queuedInstructions.push(tuple);\n\t instruction.queriedElements.forEach(function (element) { return getOrSetAsInMap(queriedElements, element, []).push(player); });\n\t instruction.preStyleProps.forEach(function (stringMap, element) {\n\t var /** @type {?} */ props = Object.keys(stringMap);\n\t if (props.length) {\n\t var /** @type {?} */ setVal_1 = /** @type {?} */ ((allPreStyleElements.get(element)));\n\t if (!setVal_1) {\n\t allPreStyleElements.set(element, setVal_1 = new Set());\n\t }\n\t props.forEach(function (prop) { return setVal_1.add(prop); });\n\t }\n\t });\n\t instruction.postStyleProps.forEach(function (stringMap, element) {\n\t var /** @type {?} */ props = Object.keys(stringMap);\n\t var /** @type {?} */ setVal = /** @type {?} */ ((allPostStyleElements.get(element)));\n\t if (!setVal) {\n\t allPostStyleElements.set(element, setVal = new Set());\n\t }\n\t props.forEach(function (prop) { return setVal.add(prop); });\n\t });\n\t });\n\t }\n\t if (erroneousTransitions.length) {\n\t var /** @type {?} */ errors_1 = [];\n\t erroneousTransitions.forEach(function (instruction) {\n\t errors_1.push(\"@\" + instruction.triggerName + \" has failed due to:\\n\"); /** @type {?} */\n\t ((instruction.errors)).forEach(function (error) { return errors_1.push(\"- \" + error + \"\\n\"); });\n\t });\n\t allPlayers.forEach(function (player) { return player.destroy(); });\n\t this.reportError(errors_1);\n\t }\n\t // these can only be detected here since we have a map of all the elements\n\t // that have animations attached to them... We use a set here in the event\n\t // multiple enter captures on the same element were caught in different\n\t // renderer namespaces (e.g. when a @trigger was on a host binding that had *ngIf)\n\t var /** @type {?} */ enterNodesWithoutAnimations = new Set();\n\t for (var /** @type {?} */ i = 0; i < allEnterNodes.length; i++) {\n\t var /** @type {?} */ element = allEnterNodes[i];\n\t if (!subTimelines.has(element)) {\n\t enterNodesWithoutAnimations.add(element);\n\t }\n\t }\n\t var /** @type {?} */ allPreviousPlayersMap = new Map();\n\t var /** @type {?} */ sortedParentElements = [];\n\t queuedInstructions.forEach(function (entry) {\n\t var /** @type {?} */ element = entry.element;\n\t if (subTimelines.has(element)) {\n\t sortedParentElements.unshift(element);\n\t _this._beforeAnimationBuild(entry.player.namespaceId, entry.instruction, allPreviousPlayersMap);\n\t }\n\t });\n\t skippedPlayers.forEach(function (player) {\n\t var /** @type {?} */ element = player.element;\n\t var /** @type {?} */ previousPlayers = _this._getPreviousPlayers(element, false, player.namespaceId, player.triggerName, null);\n\t previousPlayers.forEach(function (prevPlayer) {\n\t getOrSetAsInMap(allPreviousPlayersMap, element, []).push(prevPlayer);\n\t prevPlayer.destroy();\n\t });\n\t });\n\t // this is a special case for nodes that will be removed (either by)\n\t // having their own leave animations or by being queried in a container\n\t // that will be removed once a parent animation is complete. The idea\n\t // here is that * styles must be identical to ! styles because of\n\t // backwards compatibility (* is also filled in by default in many places).\n\t // Otherwise * styles will return an empty value or auto since the element\n\t // that is being getComputedStyle'd will not be visible (since * = destination)\n\t var /** @type {?} */ replaceNodes = allLeaveNodes.filter(function (node) {\n\t return replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements);\n\t });\n\t // POST STAGE: fill the * styles\n\t var _a = cloakAndComputeStyles(this.driver, leaveNodesWithoutAnimations, allPostStyleElements, _angular_animations.AUTO_STYLE), postStylesMap = _a[0], allLeaveQueriedNodes = _a[1];\n\t allLeaveQueriedNodes.forEach(function (node) {\n\t if (replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements)) {\n\t replaceNodes.push(node);\n\t }\n\t });\n\t // PRE STAGE: fill the ! styles\n\t var preStylesMap = (allPreStyleElements.size ?\n\t cloakAndComputeStyles(this.driver, enterNodesWithoutAnimations, allPreStyleElements, _angular_animations.ɵPRE_STYLE) :\n\t [new Map()])[0];\n\t replaceNodes.forEach(function (node) {\n\t var /** @type {?} */ post = postStylesMap.get(node);\n\t var /** @type {?} */ pre = preStylesMap.get(node);\n\t postStylesMap.set(node, /** @type {?} */ (__assign({}, post, pre)));\n\t });\n\t var /** @type {?} */ rootPlayers = [];\n\t var /** @type {?} */ subPlayers = [];\n\t queuedInstructions.forEach(function (entry) {\n\t var element = entry.element, player = entry.player, instruction = entry.instruction;\n\t // this means that it was never consumed by a parent animation which\n\t // means that it is independent and therefore should be set for animation\n\t if (subTimelines.has(element)) {\n\t if (disabledElementsSet.has(element)) {\n\t skippedPlayers.push(player);\n\t return;\n\t }\n\t var /** @type {?} */ innerPlayer = _this._buildAnimation(player.namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap);\n\t player.setRealPlayer(innerPlayer);\n\t var /** @type {?} */ parentHasPriority = null;\n\t for (var /** @type {?} */ i = 0; i < sortedParentElements.length; i++) {\n\t var /** @type {?} */ parent_2 = sortedParentElements[i];\n\t if (parent_2 === element)\n\t break;\n\t if (_this.driver.containsElement(parent_2, element)) {\n\t parentHasPriority = parent_2;\n\t break;\n\t }\n\t }\n\t if (parentHasPriority) {\n\t var /** @type {?} */ parentPlayers = _this.playersByElement.get(parentHasPriority);\n\t if (parentPlayers && parentPlayers.length) {\n\t player.parentPlayer = optimizeGroupPlayer(parentPlayers);\n\t }\n\t skippedPlayers.push(player);\n\t }\n\t else {\n\t rootPlayers.push(player);\n\t }\n\t }\n\t else {\n\t eraseStyles(element, instruction.fromStyles);\n\t player.onDestroy(function () { return setStyles(element, instruction.toStyles); });\n\t // there still might be a ancestor player animating this\n\t // element therefore we will still add it as a sub player\n\t // even if its animation may be disabled\n\t subPlayers.push(player);\n\t if (disabledElementsSet.has(element)) {\n\t skippedPlayers.push(player);\n\t }\n\t }\n\t });\n\t // find all of the sub players' corresponding inner animation player\n\t subPlayers.forEach(function (player) {\n\t // even if any players are not found for a sub animation then it\n\t // will still complete itself after the next tick since it's Noop\n\t var /** @type {?} */ playersForElement = skippedPlayersMap.get(player.element);\n\t if (playersForElement && playersForElement.length) {\n\t var /** @type {?} */ innerPlayer = optimizeGroupPlayer(playersForElement);\n\t player.setRealPlayer(innerPlayer);\n\t }\n\t });\n\t // the reason why we don't actually play the animation is\n\t // because all that a skipped player is designed to do is to\n\t // fire the start/done transition callback events\n\t skippedPlayers.forEach(function (player) {\n\t if (player.parentPlayer) {\n\t player.parentPlayer.onDestroy(function () { return player.destroy(); });\n\t }\n\t else {\n\t player.destroy();\n\t }\n\t });\n\t // run through all of the queued removals and see if they\n\t // were picked up by a query. If not then perform the removal\n\t // operation right away unless a parent animation is ongoing.\n\t for (var /** @type {?} */ i = 0; i < allLeaveNodes.length; i++) {\n\t var /** @type {?} */ element = allLeaveNodes[i];\n\t var /** @type {?} */ details = /** @type {?} */ (element[REMOVAL_FLAG]);\n\t removeClass(element, LEAVE_CLASSNAME);\n\t // this means the element has a removal animation that is being\n\t // taken care of and therefore the inner elements will hang around\n\t // until that animation is over (or the parent queried animation)\n\t if (details && details.hasAnimation)\n\t continue;\n\t var /** @type {?} */ players = [];\n\t // if this element is queried or if it contains queried children\n\t // then we want for the element not to be removed from the page\n\t // until the queried animations have finished\n\t if (queriedElements.size) {\n\t var /** @type {?} */ queriedPlayerResults = queriedElements.get(element);\n\t if (queriedPlayerResults && queriedPlayerResults.length) {\n\t players.push.apply(players, queriedPlayerResults);\n\t }\n\t var /** @type {?} */ queriedInnerElements = this.driver.query(element, NG_ANIMATING_SELECTOR, true);\n\t for (var /** @type {?} */ j = 0; j < queriedInnerElements.length; j++) {\n\t var /** @type {?} */ queriedPlayers = queriedElements.get(queriedInnerElements[j]);\n\t if (queriedPlayers && queriedPlayers.length) {\n\t players.push.apply(players, queriedPlayers);\n\t }\n\t }\n\t }\n\t var /** @type {?} */ activePlayers = players.filter(function (p) { return !p.destroyed; });\n\t if (activePlayers.length) {\n\t removeNodesAfterAnimationDone(this, element, activePlayers);\n\t }\n\t else {\n\t this.processLeaveNode(element);\n\t }\n\t }\n\t // this is required so the cleanup method doesn't remove them\n\t allLeaveNodes.length = 0;\n\t rootPlayers.forEach(function (player) {\n\t _this.players.push(player);\n\t player.onDone(function () {\n\t player.destroy();\n\t var /** @type {?} */ index = _this.players.indexOf(player);\n\t _this.players.splice(index, 1);\n\t });\n\t player.play();\n\t });\n\t return rootPlayers;\n\t };\n\t /**\n\t * @param {?} namespaceId\n\t * @param {?} element\n\t * @return {?}\n\t */\n\t TransitionAnimationEngine.prototype.elementContainsData = /**\n\t * @param {?} namespaceId\n\t * @param {?} element\n\t * @return {?}\n\t */\n\t function (namespaceId, element) {\n\t var /** @type {?} */ containsData = false;\n\t var /** @type {?} */ details = /** @type {?} */ (element[REMOVAL_FLAG]);\n\t if (details && details.setForRemoval)\n\t containsData = true;\n\t if (this.playersByElement.has(element))\n\t containsData = true;\n\t if (this.playersByQueriedElement.has(element))\n\t containsData = true;\n\t if (this.statesByElement.has(element))\n\t containsData = true;\n\t return this._fetchNamespace(namespaceId).elementContainsData(element) || containsData;\n\t };\n\t /**\n\t * @param {?} callback\n\t * @return {?}\n\t */\n\t TransitionAnimationEngine.prototype.afterFlush = /**\n\t * @param {?} callback\n\t * @return {?}\n\t */\n\t function (callback) { this._flushFns.push(callback); };\n\t /**\n\t * @param {?} callback\n\t * @return {?}\n\t */\n\t TransitionAnimationEngine.prototype.afterFlushAnimationsDone = /**\n\t * @param {?} callback\n\t * @return {?}\n\t */\n\t function (callback) { this._whenQuietFns.push(callback); };\n\t /**\n\t * @param {?} element\n\t * @param {?} isQueriedElement\n\t * @param {?=} namespaceId\n\t * @param {?=} triggerName\n\t * @param {?=} toStateValue\n\t * @return {?}\n\t */\n\t TransitionAnimationEngine.prototype._getPreviousPlayers = /**\n\t * @param {?} element\n\t * @param {?} isQueriedElement\n\t * @param {?=} namespaceId\n\t * @param {?=} triggerName\n\t * @param {?=} toStateValue\n\t * @return {?}\n\t */\n\t function (element, isQueriedElement, namespaceId, triggerName, toStateValue) {\n\t var /** @type {?} */ players = [];\n\t if (isQueriedElement) {\n\t var /** @type {?} */ queriedElementPlayers = this.playersByQueriedElement.get(element);\n\t if (queriedElementPlayers) {\n\t players = queriedElementPlayers;\n\t }\n\t }\n\t else {\n\t var /** @type {?} */ elementPlayers = this.playersByElement.get(element);\n\t if (elementPlayers) {\n\t var /** @type {?} */ isRemovalAnimation_1 = !toStateValue || toStateValue == VOID_VALUE;\n\t elementPlayers.forEach(function (player) {\n\t if (player.queued)\n\t return;\n\t if (!isRemovalAnimation_1 && player.triggerName != triggerName)\n\t return;\n\t players.push(player);\n\t });\n\t }\n\t }\n\t if (namespaceId || triggerName) {\n\t players = players.filter(function (player) {\n\t if (namespaceId && namespaceId != player.namespaceId)\n\t return false;\n\t if (triggerName && triggerName != player.triggerName)\n\t return false;\n\t return true;\n\t });\n\t }\n\t return players;\n\t };\n\t /**\n\t * @param {?} namespaceId\n\t * @param {?} instruction\n\t * @param {?} allPreviousPlayersMap\n\t * @return {?}\n\t */\n\t TransitionAnimationEngine.prototype._beforeAnimationBuild = /**\n\t * @param {?} namespaceId\n\t * @param {?} instruction\n\t * @param {?} allPreviousPlayersMap\n\t * @return {?}\n\t */\n\t function (namespaceId, instruction, allPreviousPlayersMap) {\n\t var _this = this;\n\t var /** @type {?} */ triggerName = instruction.triggerName;\n\t var /** @type {?} */ rootElement = instruction.element;\n\t // when a removal animation occurs, ALL previous players are collected\n\t // and destroyed (even if they are outside of the current namespace)\n\t var /** @type {?} */ targetNameSpaceId = instruction.isRemovalTransition ? undefined : namespaceId;\n\t var /** @type {?} */ targetTriggerName = instruction.isRemovalTransition ? undefined : triggerName;\n\t instruction.timelines.map(function (timelineInstruction) {\n\t var /** @type {?} */ element = timelineInstruction.element;\n\t var /** @type {?} */ isQueriedElement = element !== rootElement;\n\t var /** @type {?} */ players = getOrSetAsInMap(allPreviousPlayersMap, element, []);\n\t var /** @type {?} */ previousPlayers = _this._getPreviousPlayers(element, isQueriedElement, targetNameSpaceId, targetTriggerName, instruction.toState);\n\t previousPlayers.forEach(function (player) {\n\t var /** @type {?} */ realPlayer = /** @type {?} */ (player.getRealPlayer());\n\t if (realPlayer.beforeDestroy) {\n\t realPlayer.beforeDestroy();\n\t }\n\t player.destroy();\n\t players.push(player);\n\t });\n\t });\n\t // this needs to be done so that the PRE/POST styles can be\n\t // computed properly without interfering with the previous animation\n\t eraseStyles(rootElement, instruction.fromStyles);\n\t };\n\t /**\n\t * @param {?} namespaceId\n\t * @param {?} instruction\n\t * @param {?} allPreviousPlayersMap\n\t * @param {?} skippedPlayersMap\n\t * @param {?} preStylesMap\n\t * @param {?} postStylesMap\n\t * @return {?}\n\t */\n\t TransitionAnimationEngine.prototype._buildAnimation = /**\n\t * @param {?} namespaceId\n\t * @param {?} instruction\n\t * @param {?} allPreviousPlayersMap\n\t * @param {?} skippedPlayersMap\n\t * @param {?} preStylesMap\n\t * @param {?} postStylesMap\n\t * @return {?}\n\t */\n\t function (namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap) {\n\t var _this = this;\n\t var /** @type {?} */ triggerName = instruction.triggerName;\n\t var /** @type {?} */ rootElement = instruction.element;\n\t // we first run this so that the previous animation player\n\t // data can be passed into the successive animation players\n\t var /** @type {?} */ allQueriedPlayers = [];\n\t var /** @type {?} */ allConsumedElements = new Set();\n\t var /** @type {?} */ allSubElements = new Set();\n\t var /** @type {?} */ allNewPlayers = instruction.timelines.map(function (timelineInstruction) {\n\t var /** @type {?} */ element = timelineInstruction.element;\n\t allConsumedElements.add(element);\n\t // FIXME (matsko): make sure to-be-removed animations are removed properly\n\t var /** @type {?} */ details = element[REMOVAL_FLAG];\n\t if (details && details.removedBeforeQueried)\n\t return new _angular_animations.NoopAnimationPlayer();\n\t var /** @type {?} */ isQueriedElement = element !== rootElement;\n\t var /** @type {?} */ previousPlayers = flattenGroupPlayers((allPreviousPlayersMap.get(element) || EMPTY_PLAYER_ARRAY)\n\t .map(function (p) { return p.getRealPlayer(); }))\n\t .filter(function (p) {\n\t // the `element` is not apart of the AnimationPlayer definition, but\n\t // Mock/WebAnimations\n\t // use the element within their implementation. This will be added in Angular5 to\n\t // AnimationPlayer\n\t var /** @type {?} */ pp = /** @type {?} */ (p);\n\t return pp.element ? pp.element === element : false;\n\t });\n\t var /** @type {?} */ preStyles = preStylesMap.get(element);\n\t var /** @type {?} */ postStyles = postStylesMap.get(element);\n\t var /** @type {?} */ keyframes = normalizeKeyframes(_this.driver, _this._normalizer, element, timelineInstruction.keyframes, preStyles, postStyles);\n\t var /** @type {?} */ player = _this._buildPlayer(timelineInstruction, keyframes, previousPlayers);\n\t // this means that this particular player belongs to a sub trigger. It is\n\t // important that we match this player up with the corresponding (@trigger.listener)\n\t if (timelineInstruction.subTimeline && skippedPlayersMap) {\n\t allSubElements.add(element);\n\t }\n\t if (isQueriedElement) {\n\t var /** @type {?} */ wrappedPlayer = new TransitionAnimationPlayer(namespaceId, triggerName, element);\n\t wrappedPlayer.setRealPlayer(player);\n\t allQueriedPlayers.push(wrappedPlayer);\n\t }\n\t return player;\n\t });\n\t allQueriedPlayers.forEach(function (player) {\n\t getOrSetAsInMap(_this.playersByQueriedElement, player.element, []).push(player);\n\t player.onDone(function () { return deleteOrUnsetInMap(_this.playersByQueriedElement, player.element, player); });\n\t });\n\t allConsumedElements.forEach(function (element) { return addClass(element, NG_ANIMATING_CLASSNAME); });\n\t var /** @type {?} */ player = optimizeGroupPlayer(allNewPlayers);\n\t player.onDestroy(function () {\n\t allConsumedElements.forEach(function (element) { return removeClass(element, NG_ANIMATING_CLASSNAME); });\n\t setStyles(rootElement, instruction.toStyles);\n\t });\n\t // this basically makes all of the callbacks for sub element animations\n\t // be dependent on the upper players for when they finish\n\t allSubElements.forEach(function (element) { getOrSetAsInMap(skippedPlayersMap, element, []).push(player); });\n\t return player;\n\t };\n\t /**\n\t * @param {?} instruction\n\t * @param {?} keyframes\n\t * @param {?} previousPlayers\n\t * @return {?}\n\t */\n\t TransitionAnimationEngine.prototype._buildPlayer = /**\n\t * @param {?} instruction\n\t * @param {?} keyframes\n\t * @param {?} previousPlayers\n\t * @return {?}\n\t */\n\t function (instruction, keyframes, previousPlayers) {\n\t if (keyframes.length > 0) {\n\t return this.driver.animate(instruction.element, keyframes, instruction.duration, instruction.delay, instruction.easing, previousPlayers);\n\t }\n\t // special case for when an empty transition|definition is provided\n\t // ... there is no point in rendering an empty animation\n\t return new _angular_animations.NoopAnimationPlayer();\n\t };\n\t return TransitionAnimationEngine;\n\t}());\n\tvar TransitionAnimationPlayer = (function () {\n\t function TransitionAnimationPlayer(namespaceId, triggerName, element) {\n\t this.namespaceId = namespaceId;\n\t this.triggerName = triggerName;\n\t this.element = element;\n\t this._player = new _angular_animations.NoopAnimationPlayer();\n\t this._containsRealPlayer = false;\n\t this._queuedCallbacks = {};\n\t this.destroyed = false;\n\t this.markedForDestroy = false;\n\t }\n\t Object.defineProperty(TransitionAnimationPlayer.prototype, \"queued\", {\n\t get: /**\n\t * @return {?}\n\t */\n\t function () { return this._containsRealPlayer == false; },\n\t enumerable: true,\n\t configurable: true\n\t });\n\t /**\n\t * @param {?} player\n\t * @return {?}\n\t */\n\t TransitionAnimationPlayer.prototype.setRealPlayer = /**\n\t * @param {?} player\n\t * @return {?}\n\t */\n\t function (player) {\n\t var _this = this;\n\t if (this._containsRealPlayer)\n\t return;\n\t this._player = player;\n\t Object.keys(this._queuedCallbacks).forEach(function (phase) {\n\t _this._queuedCallbacks[phase].forEach(function (callback) { return listenOnPlayer(player, phase, undefined, callback); });\n\t });\n\t this._queuedCallbacks = {};\n\t this._containsRealPlayer = true;\n\t };\n\t /**\n\t * @return {?}\n\t */\n\t TransitionAnimationPlayer.prototype.getRealPlayer = /**\n\t * @return {?}\n\t */\n\t function () { return this._player; };\n\t /**\n\t * @param {?} name\n\t * @param {?} callback\n\t * @return {?}\n\t */\n\t TransitionAnimationPlayer.prototype._queueEvent = /**\n\t * @param {?} name\n\t * @param {?} callback\n\t * @return {?}\n\t */\n\t function (name, callback) {\n\t getOrSetAsInMap(this._queuedCallbacks, name, []).push(callback);\n\t };\n\t /**\n\t * @param {?} fn\n\t * @return {?}\n\t */\n\t TransitionAnimationPlayer.prototype.onDone = /**\n\t * @param {?} fn\n\t * @return {?}\n\t */\n\t function (fn) {\n\t if (this.queued) {\n\t this._queueEvent('done', fn);\n\t }\n\t this._player.onDone(fn);\n\t };\n\t /**\n\t * @param {?} fn\n\t * @return {?}\n\t */\n\t TransitionAnimationPlayer.prototype.onStart = /**\n\t * @param {?} fn\n\t * @return {?}\n\t */\n\t function (fn) {\n\t if (this.queued) {\n\t this._queueEvent('start', fn);\n\t }\n\t this._player.onStart(fn);\n\t };\n\t /**\n\t * @param {?} fn\n\t * @return {?}\n\t */\n\t TransitionAnimationPlayer.prototype.onDestroy = /**\n\t * @param {?} fn\n\t * @return {?}\n\t */\n\t function (fn) {\n\t if (this.queued) {\n\t this._queueEvent('destroy', fn);\n\t }\n\t this._player.onDestroy(fn);\n\t };\n\t /**\n\t * @return {?}\n\t */\n\t TransitionAnimationPlayer.prototype.init = /**\n\t * @return {?}\n\t */\n\t function () { this._player.init(); };\n\t /**\n\t * @return {?}\n\t */\n\t TransitionAnimationPlayer.prototype.hasStarted = /**\n\t * @return {?}\n\t */\n\t function () { return this.queued ? false : this._player.hasStarted(); };\n\t /**\n\t * @return {?}\n\t */\n\t TransitionAnimationPlayer.prototype.play = /**\n\t * @return {?}\n\t */\n\t function () { !this.queued && this._player.play(); };\n\t /**\n\t * @return {?}\n\t */\n\t TransitionAnimationPlayer.prototype.pause = /**\n\t * @return {?}\n\t */\n\t function () { !this.queued && this._player.pause(); };\n\t /**\n\t * @return {?}\n\t */\n\t TransitionAnimationPlayer.prototype.restart = /**\n\t * @return {?}\n\t */\n\t function () { !this.queued && this._player.restart(); };\n\t /**\n\t * @return {?}\n\t */\n\t TransitionAnimationPlayer.prototype.finish = /**\n\t * @return {?}\n\t */\n\t function () { this._player.finish(); };\n\t /**\n\t * @return {?}\n\t */\n\t TransitionAnimationPlayer.prototype.destroy = /**\n\t * @return {?}\n\t */\n\t function () {\n\t (/** @type {?} */ (this)).destroyed = true;\n\t this._player.destroy();\n\t };\n\t /**\n\t * @return {?}\n\t */\n\t TransitionAnimationPlayer.prototype.reset = /**\n\t * @return {?}\n\t */\n\t function () { !this.queued && this._player.reset(); };\n\t /**\n\t * @param {?} p\n\t * @return {?}\n\t */\n\t TransitionAnimationPlayer.prototype.setPosition = /**\n\t * @param {?} p\n\t * @return {?}\n\t */\n\t function (p) {\n\t if (!this.queued) {\n\t this._player.setPosition(p);\n\t }\n\t };\n\t /**\n\t * @return {?}\n\t */\n\t TransitionAnimationPlayer.prototype.getPosition = /**\n\t * @return {?}\n\t */\n\t function () { return this.queued ? 0 : this._player.getPosition(); };\n\t Object.defineProperty(TransitionAnimationPlayer.prototype, \"totalTime\", {\n\t get: /**\n\t * @return {?}\n\t */\n\t function () { return this._player.totalTime; },\n\t enumerable: true,\n\t configurable: true\n\t });\n\t return TransitionAnimationPlayer;\n\t}());\n\t/**\n\t * @param {?} map\n\t * @param {?} key\n\t * @param {?} value\n\t * @return {?}\n\t */\n\tfunction deleteOrUnsetInMap(map, key, value) {\n\t var /** @type {?} */ currentValues;\n\t if (map instanceof Map) {\n\t currentValues = map.get(key);\n\t if (currentValues) {\n\t if (currentValues.length) {\n\t var /** @type {?} */ index = currentValues.indexOf(value);\n\t currentValues.splice(index, 1);\n\t }\n\t if (currentValues.length == 0) {\n\t map.delete(key);\n\t }\n\t }\n\t }\n\t else {\n\t currentValues = map[key];\n\t if (currentValues) {\n\t if (currentValues.length) {\n\t var /** @type {?} */ index = currentValues.indexOf(value);\n\t currentValues.splice(index, 1);\n\t }\n\t if (currentValues.length == 0) {\n\t delete map[key];\n\t }\n\t }\n\t }\n\t return currentValues;\n\t}\n\t/**\n\t * @param {?} value\n\t * @return {?}\n\t */\n\tfunction normalizeTriggerValue(value) {\n\t // we use `!= null` here because it's the most simple\n\t // way to test against a \"falsy\" value without mixing\n\t // in empty strings or a zero value. DO NOT OPTIMIZE.\n\t return value != null ? value : null;\n\t}\n\t/**\n\t * @param {?} node\n\t * @return {?}\n\t */\n\tfunction isElementNode(node) {\n\t return node && node['nodeType'] === 1;\n\t}\n\t/**\n\t * @param {?} eventName\n\t * @return {?}\n\t */\n\tfunction isTriggerEventValid(eventName) {\n\t return eventName == 'start' || eventName == 'done';\n\t}\n\t/**\n\t * @param {?} element\n\t * @param {?=} value\n\t * @return {?}\n\t */\n\tfunction cloakElement(element, value) {\n\t var /** @type {?} */ oldValue = element.style.display;\n\t element.style.display = value != null ? value : 'none';\n\t return oldValue;\n\t}\n\t/**\n\t * @param {?} driver\n\t * @param {?} elements\n\t * @param {?} elementPropsMap\n\t * @param {?} defaultStyle\n\t * @return {?}\n\t */\n\tfunction cloakAndComputeStyles(driver, elements, elementPropsMap, defaultStyle) {\n\t var /** @type {?} */ cloakVals = [];\n\t elements.forEach(function (element) { return cloakVals.push(cloakElement(element)); });\n\t var /** @type {?} */ valuesMap = new Map();\n\t var /** @type {?} */ failedElements = [];\n\t elementPropsMap.forEach(function (props, element) {\n\t var /** @type {?} */ styles = {};\n\t props.forEach(function (prop) {\n\t var /** @type {?} */ value = styles[prop] = driver.computeStyle(element, prop, defaultStyle);\n\t // there is no easy way to detect this because a sub element could be removed\n\t // by a parent animation element being detached.\n\t if (!value || value.length == 0) {\n\t element[REMOVAL_FLAG] = NULL_REMOVED_QUERIED_STATE;\n\t failedElements.push(element);\n\t }\n\t });\n\t valuesMap.set(element, styles);\n\t });\n\t // we use a index variable here since Set.forEach(a, i) does not return\n\t // an index value for the closure (but instead just the value)\n\t var /** @type {?} */ i = 0;\n\t elements.forEach(function (element) { return cloakElement(element, cloakVals[i++]); });\n\t return [valuesMap, failedElements];\n\t}\n\t/**\n\t * @param {?} nodes\n\t * @return {?}\n\t */\n\tfunction createIsRootFilterFn(nodes) {\n\t var /** @type {?} */ nodeSet = new Set(nodes);\n\t var /** @type {?} */ knownRootContainer = new Set();\n\t var /** @type {?} */ isRoot;\n\t isRoot = function (node) {\n\t if (!node)\n\t return true;\n\t if (nodeSet.has(node.parentNode))\n\t return false;\n\t if (knownRootContainer.has(node.parentNode))\n\t return true;\n\t if (isRoot(node.parentNode)) {\n\t knownRootContainer.add(node);\n\t return true;\n\t }\n\t return false;\n\t };\n\t return isRoot;\n\t}\n\tvar CLASSES_CACHE_KEY = '$$classes';\n\t/**\n\t * @param {?} element\n\t * @param {?} className\n\t * @return {?}\n\t */\n\tfunction addClass(element, className) {\n\t if (element.classList) {\n\t element.classList.add(className);\n\t }\n\t else {\n\t var /** @type {?} */ classes = element[CLASSES_CACHE_KEY];\n\t if (!classes) {\n\t classes = element[CLASSES_CACHE_KEY] = {};\n\t }\n\t classes[className] = true;\n\t }\n\t}\n\t/**\n\t * @param {?} element\n\t * @param {?} className\n\t * @return {?}\n\t */\n\tfunction removeClass(element, className) {\n\t if (element.classList) {\n\t element.classList.remove(className);\n\t }\n\t else {\n\t var /** @type {?} */ classes = element[CLASSES_CACHE_KEY];\n\t if (classes) {\n\t delete classes[className];\n\t }\n\t }\n\t}\n\t/**\n\t * @param {?} engine\n\t * @param {?} element\n\t * @param {?} players\n\t * @return {?}\n\t */\n\tfunction removeNodesAfterAnimationDone(engine, element, players) {\n\t optimizeGroupPlayer(players).onDone(function () { return engine.processLeaveNode(element); });\n\t}\n\t/**\n\t * @param {?} players\n\t * @return {?}\n\t */\n\tfunction flattenGroupPlayers(players) {\n\t var /** @type {?} */ finalPlayers = [];\n\t _flattenGroupPlayersRecur(players, finalPlayers);\n\t return finalPlayers;\n\t}\n\t/**\n\t * @param {?} players\n\t * @param {?} finalPlayers\n\t * @return {?}\n\t */\n\tfunction _flattenGroupPlayersRecur(players, finalPlayers) {\n\t for (var /** @type {?} */ i = 0; i < players.length; i++) {\n\t var /** @type {?} */ player = players[i];\n\t if (player instanceof _angular_animations.ɵAnimationGroupPlayer) {\n\t _flattenGroupPlayersRecur(player.players, finalPlayers);\n\t }\n\t else {\n\t finalPlayers.push(/** @type {?} */ (player));\n\t }\n\t }\n\t}\n\t/**\n\t * @param {?} a\n\t * @param {?} b\n\t * @return {?}\n\t */\n\tfunction objEquals(a, b) {\n\t var /** @type {?} */ k1 = Object.keys(a);\n\t var /** @type {?} */ k2 = Object.keys(b);\n\t if (k1.length != k2.length)\n\t return false;\n\t for (var /** @type {?} */ i = 0; i < k1.length; i++) {\n\t var /** @type {?} */ prop = k1[i];\n\t if (!b.hasOwnProperty(prop) || a[prop] !== b[prop])\n\t return false;\n\t }\n\t return true;\n\t}\n\t/**\n\t * @param {?} element\n\t * @param {?} allPreStyleElements\n\t * @param {?} allPostStyleElements\n\t * @return {?}\n\t */\n\tfunction replacePostStylesAsPre(element, allPreStyleElements, allPostStyleElements) {\n\t var /** @type {?} */ postEntry = allPostStyleElements.get(element);\n\t if (!postEntry)\n\t return false;\n\t var /** @type {?} */ preEntry = allPreStyleElements.get(element);\n\t if (preEntry) {\n\t postEntry.forEach(function (data) { return /** @type {?} */ ((preEntry)).add(data); });\n\t }\n\t else {\n\t allPreStyleElements.set(element, postEntry);\n\t }\n\t allPostStyleElements.delete(element);\n\t return true;\n\t}\n\t\n\t/**\n\t * @fileoverview added by tsickle\n\t * @suppress {checkTypes} checked by tsc\n\t */\n\tvar AnimationEngine = (function () {\n\t function AnimationEngine(_driver, normalizer) {\n\t var _this = this;\n\t this._driver = _driver;\n\t this._triggerCache = {};\n\t this.onRemovalComplete = function (element, context) { };\n\t this._transitionEngine = new TransitionAnimationEngine(_driver, normalizer);\n\t this._timelineEngine = new TimelineAnimationEngine(_driver, normalizer);\n\t this._transitionEngine.onRemovalComplete = function (element, context) {\n\t return _this.onRemovalComplete(element, context);\n\t };\n\t }\n\t /**\n\t * @param {?} componentId\n\t * @param {?} namespaceId\n\t * @param {?} hostElement\n\t * @param {?} name\n\t * @param {?} metadata\n\t * @return {?}\n\t */\n\t AnimationEngine.prototype.registerTrigger = /**\n\t * @param {?} componentId\n\t * @param {?} namespaceId\n\t * @param {?} hostElement\n\t * @param {?} name\n\t * @param {?} metadata\n\t * @return {?}\n\t */\n\t function (componentId, namespaceId, hostElement, name, metadata) {\n\t var /** @type {?} */ cacheKey = componentId + '-' + name;\n\t var /** @type {?} */ trigger = this._triggerCache[cacheKey];\n\t if (!trigger) {\n\t var /** @type {?} */ errors = [];\n\t var /** @type {?} */ ast = /** @type {?} */ (buildAnimationAst(this._driver, /** @type {?} */ (metadata), errors));\n\t if (errors.length) {\n\t throw new Error(\"The animation trigger \\\"\" + name + \"\\\" has failed to build due to the following errors:\\n - \" + errors.join(\"\\n - \"));\n\t }\n\t trigger = buildTrigger(name, ast);\n\t this._triggerCache[cacheKey] = trigger;\n\t }\n\t this._transitionEngine.registerTrigger(namespaceId, name, trigger);\n\t };\n\t /**\n\t * @param {?} namespaceId\n\t * @param {?} hostElement\n\t * @return {?}\n\t */\n\t AnimationEngine.prototype.register = /**\n\t * @param {?} namespaceId\n\t * @param {?} hostElement\n\t * @return {?}\n\t */\n\t function (namespaceId, hostElement) {\n\t this._transitionEngine.register(namespaceId, hostElement);\n\t };\n\t /**\n\t * @param {?} namespaceId\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationEngine.prototype.destroy = /**\n\t * @param {?} namespaceId\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (namespaceId, context) {\n\t this._transitionEngine.destroy(namespaceId, context);\n\t };\n\t /**\n\t * @param {?} namespaceId\n\t * @param {?} element\n\t * @param {?} parent\n\t * @param {?} insertBefore\n\t * @return {?}\n\t */\n\t AnimationEngine.prototype.onInsert = /**\n\t * @param {?} namespaceId\n\t * @param {?} element\n\t * @param {?} parent\n\t * @param {?} insertBefore\n\t * @return {?}\n\t */\n\t function (namespaceId, element, parent, insertBefore) {\n\t this._transitionEngine.insertNode(namespaceId, element, parent, insertBefore);\n\t };\n\t /**\n\t * @param {?} namespaceId\n\t * @param {?} element\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t AnimationEngine.prototype.onRemove = /**\n\t * @param {?} namespaceId\n\t * @param {?} element\n\t * @param {?} context\n\t * @return {?}\n\t */\n\t function (namespaceId, element, context) {\n\t this._transitionEngine.removeNode(namespaceId, element, context);\n\t };\n\t /**\n\t * @param {?} element\n\t * @param {?} disable\n\t * @return {?}\n\t */\n\t AnimationEngine.prototype.disableAnimations = /**\n\t * @param {?} element\n\t * @param {?} disable\n\t * @return {?}\n\t */\n\t function (element, disable) {\n\t this._transitionEngine.markElementAsDisabled(element, disable);\n\t };\n\t /**\n\t * @param {?} namespaceId\n\t * @param {?} element\n\t * @param {?} property\n\t * @param {?} value\n\t * @return {?}\n\t */\n\t AnimationEngine.prototype.process = /**\n\t * @param {?} namespaceId\n\t * @param {?} element\n\t * @param {?} property\n\t * @param {?} value\n\t * @return {?}\n\t */\n\t function (namespaceId, element, property, value) {\n\t if (property.charAt(0) == '@') {\n\t var _a = parseTimelineCommand(property), id = _a[0], action = _a[1];\n\t var /** @type {?} */ args = /** @type {?} */ (value);\n\t this._timelineEngine.command(id, element, action, args);\n\t }\n\t else {\n\t this._transitionEngine.trigger(namespaceId, element, property, value);\n\t }\n\t };\n\t /**\n\t * @param {?} namespaceId\n\t * @param {?} element\n\t * @param {?} eventName\n\t * @param {?} eventPhase\n\t * @param {?} callback\n\t * @return {?}\n\t */\n\t AnimationEngine.prototype.listen = /**\n\t * @param {?} namespaceId\n\t * @param {?} element\n\t * @param {?} eventName\n\t * @param {?} eventPhase\n\t * @param {?} callback\n\t * @return {?}\n\t */\n\t function (namespaceId, element, eventName, eventPhase, callback) {\n\t // @@listen\n\t if (eventName.charAt(0) == '@') {\n\t var _a = parseTimelineCommand(eventName), id = _a[0], action = _a[1];\n\t return this._timelineEngine.listen(id, element, action, callback);\n\t }\n\t return this._transitionEngine.listen(namespaceId, element, eventName, eventPhase, callback);\n\t };\n\t /**\n\t * @param {?=} microtaskId\n\t * @return {?}\n\t */\n\t AnimationEngine.prototype.flush = /**\n\t * @param {?=} microtaskId\n\t * @return {?}\n\t */\n\t function (microtaskId) {\n\t if (microtaskId === void 0) { microtaskId = -1; }\n\t this._transitionEngine.flush(microtaskId);\n\t };\n\t Object.defineProperty(AnimationEngine.prototype, \"players\", {\n\t get: /**\n\t * @return {?}\n\t */\n\t function () {\n\t return (/** @type {?} */ (this._transitionEngine.players))\n\t .concat(/** @type {?} */ (this._timelineEngine.players));\n\t },\n\t enumerable: true,\n\t configurable: true\n\t });\n\t /**\n\t * @return {?}\n\t */\n\t AnimationEngine.prototype.whenRenderingDone = /**\n\t * @return {?}\n\t */\n\t function () { return this._transitionEngine.whenRenderingDone(); };\n\t return AnimationEngine;\n\t}());\n\t\n\t/**\n\t * @fileoverview added by tsickle\n\t * @suppress {checkTypes} checked by tsc\n\t */\n\tvar WebAnimationsPlayer = (function () {\n\t function WebAnimationsPlayer(element, keyframes, options, previousPlayers) {\n\t if (previousPlayers === void 0) { previousPlayers = []; }\n\t var _this = this;\n\t this.element = element;\n\t this.keyframes = keyframes;\n\t this.options = options;\n\t this.previousPlayers = previousPlayers;\n\t this._onDoneFns = [];\n\t this._onStartFns = [];\n\t this._onDestroyFns = [];\n\t this._initialized = false;\n\t this._finished = false;\n\t this._started = false;\n\t this._destroyed = false;\n\t this.time = 0;\n\t this.parentPlayer = null;\n\t this.previousStyles = {};\n\t this.currentSnapshot = {};\n\t this._duration = /** @type {?} */ (options['duration']);\n\t this._delay = /** @type {?} */ (options['delay']) || 0;\n\t this.time = this._duration + this._delay;\n\t if (allowPreviousPlayerStylesMerge(this._duration, this._delay)) {\n\t previousPlayers.forEach(function (player) {\n\t var /** @type {?} */ styles = player.currentSnapshot;\n\t Object.keys(styles).forEach(function (prop) { return _this.previousStyles[prop] = styles[prop]; });\n\t });\n\t }\n\t }\n\t /**\n\t * @return {?}\n\t */\n\t WebAnimationsPlayer.prototype._onFinish = /**\n\t * @return {?}\n\t */\n\t function () {\n\t if (!this._finished) {\n\t this._finished = true;\n\t this._onDoneFns.forEach(function (fn) { return fn(); });\n\t this._onDoneFns = [];\n\t }\n\t };\n\t /**\n\t * @return {?}\n\t */\n\t WebAnimationsPlayer.prototype.init = /**\n\t * @return {?}\n\t */\n\t function () {\n\t this._buildPlayer();\n\t this._preparePlayerBeforeStart();\n\t };\n\t /**\n\t * @return {?}\n\t */\n\t WebAnimationsPlayer.prototype._buildPlayer = /**\n\t * @return {?}\n\t */\n\t function () {\n\t var _this = this;\n\t if (this._initialized)\n\t return;\n\t this._initialized = true;\n\t var /** @type {?} */ keyframes = this.keyframes.map(function (styles) { return copyStyles(styles, false); });\n\t var /** @type {?} */ previousStyleProps = Object.keys(this.previousStyles);\n\t if (previousStyleProps.length) {\n\t var /** @type {?} */ startingKeyframe_1 = keyframes[0];\n\t var /** @type {?} */ missingStyleProps_1 = [];\n\t previousStyleProps.forEach(function (prop) {\n\t if (!startingKeyframe_1.hasOwnProperty(prop)) {\n\t missingStyleProps_1.push(prop);\n\t }\n\t startingKeyframe_1[prop] = _this.previousStyles[prop];\n\t });\n\t if (missingStyleProps_1.length) {\n\t var /** @type {?} */ self_1 = this;\n\t var _loop_1 = function () {\n\t var /** @type {?} */ kf = keyframes[i];\n\t missingStyleProps_1.forEach(function (prop) {\n\t kf[prop] = _computeStyle(self_1.element, prop);\n\t });\n\t };\n\t // tslint:disable-next-line\n\t for (var /** @type {?} */ i = 1; i < keyframes.length; i++) {\n\t _loop_1();\n\t }\n\t }\n\t }\n\t (/** @type {?} */ (this)).domPlayer =\n\t this._triggerWebAnimation(this.element, keyframes, this.options);\n\t this._finalKeyframe = keyframes.length ? keyframes[keyframes.length - 1] : {};\n\t this.domPlayer.addEventListener('finish', function () { return _this._onFinish(); });\n\t };\n\t /**\n\t * @return {?}\n\t */\n\t WebAnimationsPlayer.prototype._preparePlayerBeforeStart = /**\n\t * @return {?}\n\t */\n\t function () {\n\t // this is required so that the player doesn't start to animate right away\n\t if (this._delay) {\n\t this._resetDomPlayerState();\n\t }\n\t else {\n\t this.domPlayer.pause();\n\t }\n\t };\n\t /** @internal */\n\t /**\n\t * \\@internal\n\t * @param {?} element\n\t * @param {?} keyframes\n\t * @param {?} options\n\t * @return {?}\n\t */\n\t WebAnimationsPlayer.prototype._triggerWebAnimation = /**\n\t * \\@internal\n\t * @param {?} element\n\t * @param {?} keyframes\n\t * @param {?} options\n\t * @return {?}\n\t */\n\t function (element, keyframes, options) {\n\t // jscompiler doesn't seem to know animate is a native property because it's not fully\n\t // supported yet across common browsers (we polyfill it for Edge/Safari) [CL #143630929]\n\t return /** @type {?} */ (element['animate'](keyframes, options));\n\t };\n\t /**\n\t * @param {?} fn\n\t * @return {?}\n\t */\n\t WebAnimationsPlayer.prototype.onStart = /**\n\t * @param {?} fn\n\t * @return {?}\n\t */\n\t function (fn) { this._onStartFns.push(fn); };\n\t /**\n\t * @param {?} fn\n\t * @return {?}\n\t */\n\t WebAnimationsPlayer.prototype.onDone = /**\n\t * @param {?} fn\n\t * @return {?}\n\t */\n\t function (fn) { this._onDoneFns.push(fn); };\n\t /**\n\t * @param {?} fn\n\t * @return {?}\n\t */\n\t WebAnimationsPlayer.prototype.onDestroy = /**\n\t * @param {?} fn\n\t * @return {?}\n\t */\n\t function (fn) { this._onDestroyFns.push(fn); };\n\t /**\n\t * @return {?}\n\t */\n\t WebAnimationsPlayer.prototype.play = /**\n\t * @return {?}\n\t */\n\t function () {\n\t this._buildPlayer();\n\t if (!this.hasStarted()) {\n\t this._onStartFns.forEach(function (fn) { return fn(); });\n\t this._onStartFns = [];\n\t this._started = true;\n\t }\n\t this.domPlayer.play();\n\t };\n\t /**\n\t * @return {?}\n\t */\n\t WebAnimationsPlayer.prototype.pause = /**\n\t * @return {?}\n\t */\n\t function () {\n\t this.init();\n\t this.domPlayer.pause();\n\t };\n\t /**\n\t * @return {?}\n\t */\n\t WebAnimationsPlayer.prototype.finish = /**\n\t * @return {?}\n\t */\n\t function () {\n\t this.init();\n\t this._onFinish();\n\t this.domPlayer.finish();\n\t };\n\t /**\n\t * @return {?}\n\t */\n\t WebAnimationsPlayer.prototype.reset = /**\n\t * @return {?}\n\t */\n\t function () {\n\t this._resetDomPlayerState();\n\t this._destroyed = false;\n\t this._finished = false;\n\t this._started = false;\n\t };\n\t /**\n\t * @return {?}\n\t */\n\t WebAnimationsPlayer.prototype._resetDomPlayerState = /**\n\t * @return {?}\n\t */\n\t function () {\n\t if (this.domPlayer) {\n\t this.domPlayer.cancel();\n\t }\n\t };\n\t /**\n\t * @return {?}\n\t */\n\t WebAnimationsPlayer.prototype.restart = /**\n\t * @return {?}\n\t */\n\t function () {\n\t this.reset();\n\t this.play();\n\t };\n\t /**\n\t * @return {?}\n\t */\n\t WebAnimationsPlayer.prototype.hasStarted = /**\n\t * @return {?}\n\t */\n\t function () { return this._started; };\n\t /**\n\t * @return {?}\n\t */\n\t WebAnimationsPlayer.prototype.destroy = /**\n\t * @return {?}\n\t */\n\t function () {\n\t if (!this._destroyed) {\n\t this._destroyed = true;\n\t this._resetDomPlayerState();\n\t this._onFinish();\n\t this._onDestroyFns.forEach(function (fn) { return fn(); });\n\t this._onDestroyFns = [];\n\t }\n\t };\n\t /**\n\t * @param {?} p\n\t * @return {?}\n\t */\n\t WebAnimationsPlayer.prototype.setPosition = /**\n\t * @param {?} p\n\t * @return {?}\n\t */\n\t function (p) { this.domPlayer.currentTime = p * this.time; };\n\t /**\n\t * @return {?}\n\t */\n\t WebAnimationsPlayer.prototype.getPosition = /**\n\t * @return {?}\n\t */\n\t function () { return this.domPlayer.currentTime / this.time; };\n\t Object.defineProperty(WebAnimationsPlayer.prototype, \"totalTime\", {\n\t get: /**\n\t * @return {?}\n\t */\n\t function () { return this._delay + this._duration; },\n\t enumerable: true,\n\t configurable: true\n\t });\n\t /**\n\t * @return {?}\n\t */\n\t WebAnimationsPlayer.prototype.beforeDestroy = /**\n\t * @return {?}\n\t */\n\t function () {\n\t var _this = this;\n\t var /** @type {?} */ styles = {};\n\t if (this.hasStarted()) {\n\t Object.keys(this._finalKeyframe).forEach(function (prop) {\n\t if (prop != 'offset') {\n\t styles[prop] =\n\t _this._finished ? _this._finalKeyframe[prop] : _computeStyle(_this.element, prop);\n\t }\n\t });\n\t }\n\t this.currentSnapshot = styles;\n\t };\n\t return WebAnimationsPlayer;\n\t}());\n\t/**\n\t * @param {?} element\n\t * @param {?} prop\n\t * @return {?}\n\t */\n\tfunction _computeStyle(element, prop) {\n\t return (/** @type {?} */ (window.getComputedStyle(element)))[prop];\n\t}\n\t\n\t/**\n\t * @fileoverview added by tsickle\n\t * @suppress {checkTypes} checked by tsc\n\t */\n\tvar WebAnimationsDriver = (function () {\n\t function WebAnimationsDriver() {\n\t }\n\t /**\n\t * @param {?} prop\n\t * @return {?}\n\t */\n\t WebAnimationsDriver.prototype.validateStyleProperty = /**\n\t * @param {?} prop\n\t * @return {?}\n\t */\n\t function (prop) { return validateStyleProperty(prop); };\n\t /**\n\t * @param {?} element\n\t * @param {?} selector\n\t * @return {?}\n\t */\n\t WebAnimationsDriver.prototype.matchesElement = /**\n\t * @param {?} element\n\t * @param {?} selector\n\t * @return {?}\n\t */\n\t function (element, selector) {\n\t return matchesElement(element, selector);\n\t };\n\t /**\n\t * @param {?} elm1\n\t * @param {?} elm2\n\t * @return {?}\n\t */\n\t WebAnimationsDriver.prototype.containsElement = /**\n\t * @param {?} elm1\n\t * @param {?} elm2\n\t * @return {?}\n\t */\n\t function (elm1, elm2) { return containsElement(elm1, elm2); };\n\t /**\n\t * @param {?} element\n\t * @param {?} selector\n\t * @param {?} multi\n\t * @return {?}\n\t */\n\t WebAnimationsDriver.prototype.query = /**\n\t * @param {?} element\n\t * @param {?} selector\n\t * @param {?} multi\n\t * @return {?}\n\t */\n\t function (element, selector, multi) {\n\t return invokeQuery(element, selector, multi);\n\t };\n\t /**\n\t * @param {?} element\n\t * @param {?} prop\n\t * @param {?=} defaultValue\n\t * @return {?}\n\t */\n\t WebAnimationsDriver.prototype.computeStyle = /**\n\t * @param {?} element\n\t * @param {?} prop\n\t * @param {?=} defaultValue\n\t * @return {?}\n\t */\n\t function (element, prop, defaultValue) {\n\t return /** @type {?} */ ((/** @type {?} */ (window.getComputedStyle(element)))[prop]);\n\t };\n\t /**\n\t * @param {?} element\n\t * @param {?} keyframes\n\t * @param {?} duration\n\t * @param {?} delay\n\t * @param {?} easing\n\t * @param {?=} previousPlayers\n\t * @return {?}\n\t */\n\t WebAnimationsDriver.prototype.animate = /**\n\t * @param {?} element\n\t * @param {?} keyframes\n\t * @param {?} duration\n\t * @param {?} delay\n\t * @param {?} easing\n\t * @param {?=} previousPlayers\n\t * @return {?}\n\t */\n\t function (element, keyframes, duration, delay, easing, previousPlayers) {\n\t if (previousPlayers === void 0) { previousPlayers = []; }\n\t var /** @type {?} */ fill = delay == 0 ? 'both' : 'forwards';\n\t var /** @type {?} */ playerOptions = { duration: duration, delay: delay, fill: fill };\n\t // we check for this to avoid having a null|undefined value be present\n\t // for the easing (which results in an error for certain browsers #9752)\n\t if (easing) {\n\t playerOptions['easing'] = easing;\n\t }\n\t var /** @type {?} */ previousWebAnimationPlayers = /** @type {?} */ (previousPlayers.filter(function (player) { return player instanceof WebAnimationsPlayer; }));\n\t return new WebAnimationsPlayer(element, keyframes, playerOptions, previousWebAnimationPlayers);\n\t };\n\t return WebAnimationsDriver;\n\t}());\n\t/**\n\t * @return {?}\n\t */\n\tfunction supportsWebAnimations() {\n\t return typeof Element !== 'undefined' && typeof (/** @type {?} */ (Element)).prototype['animate'] === 'function';\n\t}\n\t\n\texports.AnimationDriver = AnimationDriver;\n\texports.ɵAnimation = Animation;\n\texports.ɵAnimationStyleNormalizer = AnimationStyleNormalizer;\n\texports.ɵNoopAnimationStyleNormalizer = NoopAnimationStyleNormalizer;\n\texports.ɵWebAnimationsStyleNormalizer = WebAnimationsStyleNormalizer;\n\texports.ɵNoopAnimationDriver = NoopAnimationDriver;\n\texports.ɵAnimationEngine = AnimationEngine;\n\texports.ɵWebAnimationsDriver = WebAnimationsDriver;\n\texports.ɵsupportsWebAnimations = supportsWebAnimations;\n\texports.ɵWebAnimationsPlayer = WebAnimationsPlayer;\n\t\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\t\n\t})));\n\t//# sourceMappingURL=animations-browser.umd.js.map\n\n\n/***/ },\n/* 50 */,\n/* 51 */,\n/* 52 */,\n/* 53 */,\n/* 54 */,\n/* 55 */,\n/* 56 */,\n/* 57 */,\n/* 58 */,\n/* 59 */,\n/* 60 */,\n/* 61 */,\n/* 62 */,\n/* 63 */,\n/* 64 */,\n/* 65 */,\n/* 66 */,\n/* 67 */,\n/* 68 */,\n/* 69 */,\n/* 70 */,\n/* 71 */,\n/* 72 */,\n/* 73 */,\n/* 74 */,\n/* 75 */,\n/* 76 */,\n/* 77 */,\n/* 78 */,\n/* 79 */,\n/* 80 */,\n/* 81 */,\n/* 82 */,\n/* 83 */,\n/* 84 */,\n/* 85 */,\n/* 86 */,\n/* 87 */,\n/* 88 */,\n/* 89 */,\n/* 90 */,\n/* 91 */,\n/* 92 */,\n/* 93 */,\n/* 94 */,\n/* 95 */,\n/* 96 */,\n/* 97 */,\n/* 98 */,\n/* 99 */,\n/* 100 */,\n/* 101 */,\n/* 102 */,\n/* 103 */,\n/* 104 */,\n/* 105 */,\n/* 106 */,\n/* 107 */,\n/* 108 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tvar dragula_class_1 = __webpack_require__(109);\n\texports.dragula = dragula_class_1.dragula;\n\tvar dragula_directive_1 = __webpack_require__(121);\n\texports.DragulaDirective = dragula_directive_1.DragulaDirective;\n\tvar dragula_provider_1 = __webpack_require__(122);\n\texports.DragulaService = dragula_provider_1.DragulaService;\n\tvar dragular_module_1 = __webpack_require__(123);\n\texports.DragulaModule = dragular_module_1.DragulaModule;\n\n\n/***/ },\n/* 109 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tvar dragulaExpt = __webpack_require__(110);\n\texports.dragula = dragulaExpt.default || dragulaExpt;\n\n\n/***/ },\n/* 110 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {'use strict';\n\t\n\tvar emitter = __webpack_require__(111);\n\tvar crossvent = __webpack_require__(117);\n\tvar classes = __webpack_require__(120);\n\tvar doc = document;\n\tvar documentElement = doc.documentElement;\n\t\n\tfunction dragula (initialContainers, options) {\n\t var len = arguments.length;\n\t if (len === 1 && Array.isArray(initialContainers) === false) {\n\t options = initialContainers;\n\t initialContainers = [];\n\t }\n\t var _mirror; // mirror image\n\t var _source; // source container\n\t var _item; // item being dragged\n\t var _offsetX; // reference x\n\t var _offsetY; // reference y\n\t var _moveX; // reference move x\n\t var _moveY; // reference move y\n\t var _initialSibling; // reference sibling when grabbed\n\t var _currentSibling; // reference sibling now\n\t var _copy; // item used for copying\n\t var _renderTimer; // timer for setTimeout renderMirrorImage\n\t var _lastDropTarget = null; // last container item was over\n\t var _grabbed; // holds mousedown context until first mousemove\n\t\n\t var o = options || {};\n\t if (o.moves === void 0) { o.moves = always; }\n\t if (o.accepts === void 0) { o.accepts = always; }\n\t if (o.invalid === void 0) { o.invalid = invalidTarget; }\n\t if (o.containers === void 0) { o.containers = initialContainers || []; }\n\t if (o.isContainer === void 0) { o.isContainer = never; }\n\t if (o.copy === void 0) { o.copy = false; }\n\t if (o.copySortSource === void 0) { o.copySortSource = false; }\n\t if (o.revertOnSpill === void 0) { o.revertOnSpill = false; }\n\t if (o.removeOnSpill === void 0) { o.removeOnSpill = false; }\n\t if (o.direction === void 0) { o.direction = 'vertical'; }\n\t if (o.ignoreInputTextSelection === void 0) { o.ignoreInputTextSelection = true; }\n\t if (o.mirrorContainer === void 0) { o.mirrorContainer = doc.body; }\n\t\n\t var drake = emitter({\n\t containers: o.containers,\n\t start: manualStart,\n\t end: end,\n\t cancel: cancel,\n\t remove: remove,\n\t destroy: destroy,\n\t canMove: canMove,\n\t dragging: false\n\t });\n\t\n\t if (o.removeOnSpill === true) {\n\t drake.on('over', spillOver).on('out', spillOut);\n\t }\n\t\n\t events();\n\t\n\t return drake;\n\t\n\t function isContainer (el) {\n\t return drake.containers.indexOf(el) !== -1 || o.isContainer(el);\n\t }\n\t\n\t function events (remove) {\n\t var op = remove ? 'remove' : 'add';\n\t touchy(documentElement, op, 'mousedown', grab);\n\t touchy(documentElement, op, 'mouseup', release);\n\t }\n\t\n\t function eventualMovements (remove) {\n\t var op = remove ? 'remove' : 'add';\n\t touchy(documentElement, op, 'mousemove', startBecauseMouseMoved);\n\t }\n\t\n\t function movements (remove) {\n\t var op = remove ? 'remove' : 'add';\n\t crossvent[op](documentElement, 'selectstart', preventGrabbed); // IE8\n\t crossvent[op](documentElement, 'click', preventGrabbed);\n\t }\n\t\n\t function destroy () {\n\t events(true);\n\t release({});\n\t }\n\t\n\t function preventGrabbed (e) {\n\t if (_grabbed) {\n\t e.preventDefault();\n\t }\n\t }\n\t\n\t function grab (e) {\n\t _moveX = e.clientX;\n\t _moveY = e.clientY;\n\t\n\t var ignore = whichMouseButton(e) !== 1 || e.metaKey || e.ctrlKey;\n\t if (ignore) {\n\t return; // we only care about honest-to-god left clicks and touch events\n\t }\n\t var item = e.target;\n\t var context = canStart(item);\n\t if (!context) {\n\t return;\n\t }\n\t _grabbed = context;\n\t eventualMovements();\n\t if (e.type === 'mousedown') {\n\t if (isInput(item)) { // see also: https://github.com/bevacqua/dragula/issues/208\n\t item.focus(); // fixes https://github.com/bevacqua/dragula/issues/176\n\t } else {\n\t e.preventDefault(); // fixes https://github.com/bevacqua/dragula/issues/155\n\t }\n\t }\n\t }\n\t\n\t function startBecauseMouseMoved (e) {\n\t if (!_grabbed) {\n\t return;\n\t }\n\t if (whichMouseButton(e) === 0) {\n\t release({});\n\t return; // when text is selected on an input and then dragged, mouseup doesn't fire. this is our only hope\n\t }\n\t // truthy check fixes #239, equality fixes #207\n\t if (e.clientX !== void 0 && e.clientX === _moveX && e.clientY !== void 0 && e.clientY === _moveY) {\n\t return;\n\t }\n\t if (o.ignoreInputTextSelection) {\n\t var clientX = getCoord('clientX', e);\n\t var clientY = getCoord('clientY', e);\n\t var elementBehindCursor = doc.elementFromPoint(clientX, clientY);\n\t if (isInput(elementBehindCursor)) {\n\t return;\n\t }\n\t }\n\t\n\t var grabbed = _grabbed; // call to end() unsets _grabbed\n\t eventualMovements(true);\n\t movements();\n\t end();\n\t start(grabbed);\n\t\n\t var offset = getOffset(_item);\n\t _offsetX = getCoord('pageX', e) - offset.left;\n\t _offsetY = getCoord('pageY', e) - offset.top;\n\t\n\t classes.add(_copy || _item, 'gu-transit');\n\t renderMirrorImage();\n\t drag(e);\n\t }\n\t\n\t function canStart (item) {\n\t if (drake.dragging && _mirror) {\n\t return;\n\t }\n\t if (isContainer(item)) {\n\t return; // don't drag container itself\n\t }\n\t var handle = item;\n\t while (getParent(item) && isContainer(getParent(item)) === false) {\n\t if (o.invalid(item, handle)) {\n\t return;\n\t }\n\t item = getParent(item); // drag target should be a top element\n\t if (!item) {\n\t return;\n\t }\n\t }\n\t var source = getParent(item);\n\t if (!source) {\n\t return;\n\t }\n\t if (o.invalid(item, handle)) {\n\t return;\n\t }\n\t\n\t var movable = o.moves(item, source, handle, nextEl(item));\n\t if (!movable) {\n\t return;\n\t }\n\t\n\t return {\n\t item: item,\n\t source: source\n\t };\n\t }\n\t\n\t function canMove (item) {\n\t return !!canStart(item);\n\t }\n\t\n\t function manualStart (item) {\n\t var context = canStart(item);\n\t if (context) {\n\t start(context);\n\t }\n\t }\n\t\n\t function start (context) {\n\t if (isCopy(context.item, context.source)) {\n\t _copy = context.item.cloneNode(true);\n\t drake.emit('cloned', _copy, context.item, 'copy');\n\t }\n\t\n\t _source = context.source;\n\t _item = context.item;\n\t _initialSibling = _currentSibling = nextEl(context.item);\n\t\n\t drake.dragging = true;\n\t drake.emit('drag', _item, _source);\n\t }\n\t\n\t function invalidTarget () {\n\t return false;\n\t }\n\t\n\t function end () {\n\t if (!drake.dragging) {\n\t return;\n\t }\n\t var item = _copy || _item;\n\t drop(item, getParent(item));\n\t }\n\t\n\t function ungrab () {\n\t _grabbed = false;\n\t eventualMovements(true);\n\t movements(true);\n\t }\n\t\n\t function release (e) {\n\t ungrab();\n\t\n\t if (!drake.dragging) {\n\t return;\n\t }\n\t var item = _copy || _item;\n\t var clientX = getCoord('clientX', e);\n\t var clientY = getCoord('clientY', e);\n\t var elementBehindCursor = getElementBehindPoint(_mirror, clientX, clientY);\n\t var dropTarget = findDropTarget(elementBehindCursor, clientX, clientY);\n\t if (dropTarget && ((_copy && o.copySortSource) || (!_copy || dropTarget !== _source))) {\n\t drop(item, dropTarget);\n\t } else if (o.removeOnSpill) {\n\t remove();\n\t } else {\n\t cancel();\n\t }\n\t }\n\t\n\t function drop (item, target) {\n\t var parent = getParent(item);\n\t if (_copy && o.copySortSource && target === _source) {\n\t parent.removeChild(_item);\n\t }\n\t if (isInitialPlacement(target)) {\n\t drake.emit('cancel', item, _source, _source);\n\t } else {\n\t drake.emit('drop', item, target, _source, _currentSibling);\n\t }\n\t cleanup();\n\t }\n\t\n\t function remove () {\n\t if (!drake.dragging) {\n\t return;\n\t }\n\t var item = _copy || _item;\n\t var parent = getParent(item);\n\t if (parent) {\n\t parent.removeChild(item);\n\t }\n\t drake.emit(_copy ? 'cancel' : 'remove', item, parent, _source);\n\t cleanup();\n\t }\n\t\n\t function cancel (revert) {\n\t if (!drake.dragging) {\n\t return;\n\t }\n\t var reverts = arguments.length > 0 ? revert : o.revertOnSpill;\n\t var item = _copy || _item;\n\t var parent = getParent(item);\n\t var initial = isInitialPlacement(parent);\n\t if (initial === false && reverts) {\n\t if (_copy) {\n\t if (parent) {\n\t parent.removeChild(_copy);\n\t }\n\t } else {\n\t _source.insertBefore(item, _initialSibling);\n\t }\n\t }\n\t if (initial || reverts) {\n\t drake.emit('cancel', item, _source, _source);\n\t } else {\n\t drake.emit('drop', item, parent, _source, _currentSibling);\n\t }\n\t cleanup();\n\t }\n\t\n\t function cleanup () {\n\t var item = _copy || _item;\n\t ungrab();\n\t removeMirrorImage();\n\t if (item) {\n\t classes.rm(item, 'gu-transit');\n\t }\n\t if (_renderTimer) {\n\t clearTimeout(_renderTimer);\n\t }\n\t drake.dragging = false;\n\t if (_lastDropTarget) {\n\t drake.emit('out', item, _lastDropTarget, _source);\n\t }\n\t drake.emit('dragend', item);\n\t _source = _item = _copy = _initialSibling = _currentSibling = _renderTimer = _lastDropTarget = null;\n\t }\n\t\n\t function isInitialPlacement (target, s) {\n\t var sibling;\n\t if (s !== void 0) {\n\t sibling = s;\n\t } else if (_mirror) {\n\t sibling = _currentSibling;\n\t } else {\n\t sibling = nextEl(_copy || _item);\n\t }\n\t return target === _source && sibling === _initialSibling;\n\t }\n\t\n\t function findDropTarget (elementBehindCursor, clientX, clientY) {\n\t var target = elementBehindCursor;\n\t while (target && !accepted()) {\n\t target = getParent(target);\n\t }\n\t return target;\n\t\n\t function accepted () {\n\t var droppable = isContainer(target);\n\t if (droppable === false) {\n\t return false;\n\t }\n\t\n\t var immediate = getImmediateChild(target, elementBehindCursor);\n\t var reference = getReference(target, immediate, clientX, clientY);\n\t var initial = isInitialPlacement(target, reference);\n\t if (initial) {\n\t return true; // should always be able to drop it right back where it was\n\t }\n\t return o.accepts(_item, target, _source, reference);\n\t }\n\t }\n\t\n\t function drag (e) {\n\t if (!_mirror) {\n\t return;\n\t }\n\t e.preventDefault();\n\t\n\t var clientX = getCoord('clientX', e);\n\t var clientY = getCoord('clientY', e);\n\t var x = clientX - _offsetX;\n\t var y = clientY - _offsetY;\n\t\n\t _mirror.style.left = x + 'px';\n\t _mirror.style.top = y + 'px';\n\t\n\t var item = _copy || _item;\n\t var elementBehindCursor = getElementBehindPoint(_mirror, clientX, clientY);\n\t var dropTarget = findDropTarget(elementBehindCursor, clientX, clientY);\n\t var changed = dropTarget !== null && dropTarget !== _lastDropTarget;\n\t if (changed || dropTarget === null) {\n\t out();\n\t _lastDropTarget = dropTarget;\n\t over();\n\t }\n\t var parent = getParent(item);\n\t if (dropTarget === _source && _copy && !o.copySortSource) {\n\t if (parent) {\n\t parent.removeChild(item);\n\t }\n\t return;\n\t }\n\t var reference;\n\t var immediate = getImmediateChild(dropTarget, elementBehindCursor);\n\t if (immediate !== null) {\n\t reference = getReference(dropTarget, immediate, clientX, clientY);\n\t } else if (o.revertOnSpill === true && !_copy) {\n\t reference = _initialSibling;\n\t dropTarget = _source;\n\t } else {\n\t if (_copy && parent) {\n\t parent.removeChild(item);\n\t }\n\t return;\n\t }\n\t if (\n\t (reference === null && changed) ||\n\t reference !== item &&\n\t reference !== nextEl(item)\n\t ) {\n\t _currentSibling = reference;\n\t dropTarget.insertBefore(item, reference);\n\t drake.emit('shadow', item, dropTarget, _source);\n\t }\n\t function moved (type) { drake.emit(type, item, _lastDropTarget, _source); }\n\t function over () { if (changed) { moved('over'); } }\n\t function out () { if (_lastDropTarget) { moved('out'); } }\n\t }\n\t\n\t function spillOver (el) {\n\t classes.rm(el, 'gu-hide');\n\t }\n\t\n\t function spillOut (el) {\n\t if (drake.dragging) { classes.add(el, 'gu-hide'); }\n\t }\n\t\n\t function renderMirrorImage () {\n\t if (_mirror) {\n\t return;\n\t }\n\t var rect = _item.getBoundingClientRect();\n\t _mirror = _item.cloneNode(true);\n\t _mirror.style.width = getRectWidth(rect) + 'px';\n\t _mirror.style.height = getRectHeight(rect) + 'px';\n\t classes.rm(_mirror, 'gu-transit');\n\t classes.add(_mirror, 'gu-mirror');\n\t o.mirrorContainer.appendChild(_mirror);\n\t touchy(documentElement, 'add', 'mousemove', drag);\n\t classes.add(o.mirrorContainer, 'gu-unselectable');\n\t drake.emit('cloned', _mirror, _item, 'mirror');\n\t }\n\t\n\t function removeMirrorImage () {\n\t if (_mirror) {\n\t classes.rm(o.mirrorContainer, 'gu-unselectable');\n\t touchy(documentElement, 'remove', 'mousemove', drag);\n\t getParent(_mirror).removeChild(_mirror);\n\t _mirror = null;\n\t }\n\t }\n\t\n\t function getImmediateChild (dropTarget, target) {\n\t var immediate = target;\n\t while (immediate !== dropTarget && getParent(immediate) !== dropTarget) {\n\t immediate = getParent(immediate);\n\t }\n\t if (immediate === documentElement) {\n\t return null;\n\t }\n\t return immediate;\n\t }\n\t\n\t function getReference (dropTarget, target, x, y) {\n\t var horizontal = o.direction === 'horizontal';\n\t var reference = target !== dropTarget ? inside() : outside();\n\t return reference;\n\t\n\t function outside () { // slower, but able to figure out any position\n\t var len = dropTarget.children.length;\n\t var i;\n\t var el;\n\t var rect;\n\t for (i = 0; i < len; i++) {\n\t el = dropTarget.children[i];\n\t rect = el.getBoundingClientRect();\n\t if (horizontal && (rect.left + rect.width / 2) > x) { return el; }\n\t if (!horizontal && (rect.top + rect.height / 2) > y) { return el; }\n\t }\n\t return null;\n\t }\n\t\n\t function inside () { // faster, but only available if dropped inside a child element\n\t var rect = target.getBoundingClientRect();\n\t if (horizontal) {\n\t return resolve(x > rect.left + getRectWidth(rect) / 2);\n\t }\n\t return resolve(y > rect.top + getRectHeight(rect) / 2);\n\t }\n\t\n\t function resolve (after) {\n\t return after ? nextEl(target) : target;\n\t }\n\t }\n\t\n\t function isCopy (item, container) {\n\t return typeof o.copy === 'boolean' ? o.copy : o.copy(item, container);\n\t }\n\t}\n\t\n\tfunction touchy (el, op, type, fn) {\n\t var touch = {\n\t mouseup: 'touchend',\n\t mousedown: 'touchstart',\n\t mousemove: 'touchmove'\n\t };\n\t var pointers = {\n\t mouseup: 'pointerup',\n\t mousedown: 'pointerdown',\n\t mousemove: 'pointermove'\n\t };\n\t var microsoft = {\n\t mouseup: 'MSPointerUp',\n\t mousedown: 'MSPointerDown',\n\t mousemove: 'MSPointerMove'\n\t };\n\t if (global.navigator.pointerEnabled) {\n\t crossvent[op](el, pointers[type], fn);\n\t } else if (global.navigator.msPointerEnabled) {\n\t crossvent[op](el, microsoft[type], fn);\n\t } else {\n\t crossvent[op](el, touch[type], fn);\n\t crossvent[op](el, type, fn);\n\t }\n\t}\n\t\n\tfunction whichMouseButton (e) {\n\t if (e.touches !== void 0) { return e.touches.length; }\n\t if (e.which !== void 0 && e.which !== 0) { return e.which; } // see https://github.com/bevacqua/dragula/issues/261\n\t if (e.buttons !== void 0) { return e.buttons; }\n\t var button = e.button;\n\t if (button !== void 0) { // see https://github.com/jquery/jquery/blob/99e8ff1baa7ae341e94bb89c3e84570c7c3ad9ea/src/event.js#L573-L575\n\t return button & 1 ? 1 : button & 2 ? 3 : (button & 4 ? 2 : 0);\n\t }\n\t}\n\t\n\tfunction getOffset (el) {\n\t var rect = el.getBoundingClientRect();\n\t return {\n\t left: rect.left + getScroll('scrollLeft', 'pageXOffset'),\n\t top: rect.top + getScroll('scrollTop', 'pageYOffset')\n\t };\n\t}\n\t\n\tfunction getScroll (scrollProp, offsetProp) {\n\t if (typeof global[offsetProp] !== 'undefined') {\n\t return global[offsetProp];\n\t }\n\t if (documentElement.clientHeight) {\n\t return documentElement[scrollProp];\n\t }\n\t return doc.body[scrollProp];\n\t}\n\t\n\tfunction getElementBehindPoint (point, x, y) {\n\t var p = point || {};\n\t var state = p.className;\n\t var el;\n\t p.className += ' gu-hide';\n\t el = doc.elementFromPoint(x, y);\n\t p.className = state;\n\t return el;\n\t}\n\t\n\tfunction never () { return false; }\n\tfunction always () { return true; }\n\tfunction getRectWidth (rect) { return rect.width || (rect.right - rect.left); }\n\tfunction getRectHeight (rect) { return rect.height || (rect.bottom - rect.top); }\n\tfunction getParent (el) { return el.parentNode === doc ? null : el.parentNode; }\n\tfunction isInput (el) { return el.tagName === 'INPUT' || el.tagName === 'TEXTAREA' || el.tagName === 'SELECT' || isEditable(el); }\n\tfunction isEditable (el) {\n\t if (!el) { return false; } // no parents were editable\n\t if (el.contentEditable === 'false') { return false; } // stop the lookup\n\t if (el.contentEditable === 'true') { return true; } // found a contentEditable element in the chain\n\t return isEditable(getParent(el)); // contentEditable is set to 'inherit'\n\t}\n\t\n\tfunction nextEl (el) {\n\t return el.nextElementSibling || manually();\n\t function manually () {\n\t var sibling = el;\n\t do {\n\t sibling = sibling.nextSibling;\n\t } while (sibling && sibling.nodeType !== 1);\n\t return sibling;\n\t }\n\t}\n\t\n\tfunction getEventHost (e) {\n\t // on touchend event, we have to use `e.changedTouches`\n\t // see http://stackoverflow.com/questions/7192563/touchend-event-properties\n\t // see https://github.com/bevacqua/dragula/issues/34\n\t if (e.targetTouches && e.targetTouches.length) {\n\t return e.targetTouches[0];\n\t }\n\t if (e.changedTouches && e.changedTouches.length) {\n\t return e.changedTouches[0];\n\t }\n\t return e;\n\t}\n\t\n\tfunction getCoord (coord, e) {\n\t var host = getEventHost(e);\n\t var missMap = {\n\t pageX: 'clientX', // IE8\n\t pageY: 'clientY' // IE8\n\t };\n\t if (coord in missMap && !(coord in host) && missMap[coord] in host) {\n\t coord = missMap[coord];\n\t }\n\t return host[coord];\n\t}\n\t\n\tmodule.exports = dragula;\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ },\n/* 111 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar atoa = __webpack_require__(112);\n\tvar debounce = __webpack_require__(113);\n\t\n\tmodule.exports = function emitter (thing, options) {\n\t var opts = options || {};\n\t var evt = {};\n\t if (thing === undefined) { thing = {}; }\n\t thing.on = function (type, fn) {\n\t if (!evt[type]) {\n\t evt[type] = [fn];\n\t } else {\n\t evt[type].push(fn);\n\t }\n\t return thing;\n\t };\n\t thing.once = function (type, fn) {\n\t fn._once = true; // thing.off(fn) still works!\n\t thing.on(type, fn);\n\t return thing;\n\t };\n\t thing.off = function (type, fn) {\n\t var c = arguments.length;\n\t if (c === 1) {\n\t delete evt[type];\n\t } else if (c === 0) {\n\t evt = {};\n\t } else {\n\t var et = evt[type];\n\t if (!et) { return thing; }\n\t et.splice(et.indexOf(fn), 1);\n\t }\n\t return thing;\n\t };\n\t thing.emit = function () {\n\t var args = atoa(arguments);\n\t return thing.emitterSnapshot(args.shift()).apply(this, args);\n\t };\n\t thing.emitterSnapshot = function (type) {\n\t var et = (evt[type] || []).slice(0);\n\t return function () {\n\t var args = atoa(arguments);\n\t var ctx = this || thing;\n\t if (type === 'error' && opts.throws !== false && !et.length) { throw args.length === 1 ? args[0] : args; }\n\t et.forEach(function emitter (listen) {\n\t if (opts.async) { debounce(listen, args, ctx); } else { listen.apply(ctx, args); }\n\t if (listen._once) { thing.off(type, listen); }\n\t });\n\t return thing;\n\t };\n\t };\n\t return thing;\n\t};\n\n\n/***/ },\n/* 112 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function atoa (a, n) { return Array.prototype.slice.call(a, n); }\n\n\n/***/ },\n/* 113 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar ticky = __webpack_require__(114);\n\t\n\tmodule.exports = function debounce (fn, args, ctx) {\n\t if (!fn) { return; }\n\t ticky(function run () {\n\t fn.apply(ctx || null, args || []);\n\t });\n\t};\n\n\n/***/ },\n/* 114 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(setImmediate) {var si = typeof setImmediate === 'function', tick;\n\tif (si) {\n\t tick = function (fn) { setImmediate(fn); };\n\t} else {\n\t tick = function (fn) { setTimeout(fn, 0); };\n\t}\n\t\n\tmodule.exports = tick;\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(115).setImmediate))\n\n/***/ },\n/* 115 */,\n/* 116 */,\n/* 117 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {'use strict';\n\t\n\tvar customEvent = __webpack_require__(118);\n\tvar eventmap = __webpack_require__(119);\n\tvar doc = global.document;\n\tvar addEvent = addEventEasy;\n\tvar removeEvent = removeEventEasy;\n\tvar hardCache = [];\n\t\n\tif (!global.addEventListener) {\n\t addEvent = addEventHard;\n\t removeEvent = removeEventHard;\n\t}\n\t\n\tmodule.exports = {\n\t add: addEvent,\n\t remove: removeEvent,\n\t fabricate: fabricateEvent\n\t};\n\t\n\tfunction addEventEasy (el, type, fn, capturing) {\n\t return el.addEventListener(type, fn, capturing);\n\t}\n\t\n\tfunction addEventHard (el, type, fn) {\n\t return el.attachEvent('on' + type, wrap(el, type, fn));\n\t}\n\t\n\tfunction removeEventEasy (el, type, fn, capturing) {\n\t return el.removeEventListener(type, fn, capturing);\n\t}\n\t\n\tfunction removeEventHard (el, type, fn) {\n\t var listener = unwrap(el, type, fn);\n\t if (listener) {\n\t return el.detachEvent('on' + type, listener);\n\t }\n\t}\n\t\n\tfunction fabricateEvent (el, type, model) {\n\t var e = eventmap.indexOf(type) === -1 ? makeCustomEvent() : makeClassicEvent();\n\t if (el.dispatchEvent) {\n\t el.dispatchEvent(e);\n\t } else {\n\t el.fireEvent('on' + type, e);\n\t }\n\t function makeClassicEvent () {\n\t var e;\n\t if (doc.createEvent) {\n\t e = doc.createEvent('Event');\n\t e.initEvent(type, true, true);\n\t } else if (doc.createEventObject) {\n\t e = doc.createEventObject();\n\t }\n\t return e;\n\t }\n\t function makeCustomEvent () {\n\t return new customEvent(type, { detail: model });\n\t }\n\t}\n\t\n\tfunction wrapperFactory (el, type, fn) {\n\t return function wrapper (originalEvent) {\n\t var e = originalEvent || global.event;\n\t e.target = e.target || e.srcElement;\n\t e.preventDefault = e.preventDefault || function preventDefault () { e.returnValue = false; };\n\t e.stopPropagation = e.stopPropagation || function stopPropagation () { e.cancelBubble = true; };\n\t e.which = e.which || e.keyCode;\n\t fn.call(el, e);\n\t };\n\t}\n\t\n\tfunction wrap (el, type, fn) {\n\t var wrapper = unwrap(el, type, fn) || wrapperFactory(el, type, fn);\n\t hardCache.push({\n\t wrapper: wrapper,\n\t element: el,\n\t type: type,\n\t fn: fn\n\t });\n\t return wrapper;\n\t}\n\t\n\tfunction unwrap (el, type, fn) {\n\t var i = find(el, type, fn);\n\t if (i) {\n\t var wrapper = hardCache[i].wrapper;\n\t hardCache.splice(i, 1); // free up a tad of memory\n\t return wrapper;\n\t }\n\t}\n\t\n\tfunction find (el, type, fn) {\n\t var i, item;\n\t for (i = 0; i < hardCache.length; i++) {\n\t item = hardCache[i];\n\t if (item.element === el && item.type === type && item.fn === fn) {\n\t return i;\n\t }\n\t }\n\t}\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ },\n/* 118 */\n/***/ function(module, exports) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {\n\tvar NativeCustomEvent = global.CustomEvent;\n\t\n\tfunction useNative () {\n\t try {\n\t var p = new NativeCustomEvent('cat', { detail: { foo: 'bar' } });\n\t return 'cat' === p.type && 'bar' === p.detail.foo;\n\t } catch (e) {\n\t }\n\t return false;\n\t}\n\t\n\t/**\n\t * Cross-browser `CustomEvent` constructor.\n\t *\n\t * https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent.CustomEvent\n\t *\n\t * @public\n\t */\n\t\n\tmodule.exports = useNative() ? NativeCustomEvent :\n\t\n\t// IE >= 9\n\t'function' === typeof document.createEvent ? function CustomEvent (type, params) {\n\t var e = document.createEvent('CustomEvent');\n\t if (params) {\n\t e.initCustomEvent(type, params.bubbles, params.cancelable, params.detail);\n\t } else {\n\t e.initCustomEvent(type, false, false, void 0);\n\t }\n\t return e;\n\t} :\n\t\n\t// IE <= 8\n\tfunction CustomEvent (type, params) {\n\t var e = document.createEventObject();\n\t e.type = type;\n\t if (params) {\n\t e.bubbles = Boolean(params.bubbles);\n\t e.cancelable = Boolean(params.cancelable);\n\t e.detail = params.detail;\n\t } else {\n\t e.bubbles = false;\n\t e.cancelable = false;\n\t e.detail = void 0;\n\t }\n\t return e;\n\t}\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ },\n/* 119 */\n/***/ function(module, exports) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {'use strict';\n\t\n\tvar eventmap = [];\n\tvar eventname = '';\n\tvar ron = /^on/;\n\t\n\tfor (eventname in global) {\n\t if (ron.test(eventname)) {\n\t eventmap.push(eventname.slice(2));\n\t }\n\t}\n\t\n\tmodule.exports = eventmap;\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ },\n/* 120 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tvar cache = {};\n\tvar start = '(?:^|\\\\s)';\n\tvar end = '(?:\\\\s|$)';\n\t\n\tfunction lookupClass (className) {\n\t var cached = cache[className];\n\t if (cached) {\n\t cached.lastIndex = 0;\n\t } else {\n\t cache[className] = cached = new RegExp(start + className + end, 'g');\n\t }\n\t return cached;\n\t}\n\t\n\tfunction addClass (el, className) {\n\t var current = el.className;\n\t if (!current.length) {\n\t el.className = className;\n\t } else if (!lookupClass(className).test(current)) {\n\t el.className += ' ' + className;\n\t }\n\t}\n\t\n\tfunction rmClass (el, className) {\n\t el.className = el.className.replace(lookupClass(className), ' ').trim();\n\t}\n\t\n\tmodule.exports = {\n\t add: addClass,\n\t rm: rmClass\n\t};\n\n\n/***/ },\n/* 121 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\n\t};\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n\t};\n\tvar core_1 = __webpack_require__(3);\n\tvar dragula_provider_1 = __webpack_require__(122);\n\tvar dragula_class_1 = __webpack_require__(109);\n\tvar DragulaDirective = (function () {\n\t function DragulaDirective(el, dragulaService) {\n\t this.el = el;\n\t this.dragulaService = dragulaService;\n\t this.container = el.nativeElement;\n\t }\n\t DragulaDirective.prototype.ngOnInit = function () {\n\t var _this = this;\n\t // console.log(this.bag);\n\t var bag = this.dragulaService.find(this.dragula);\n\t var checkModel = function () {\n\t if (_this.dragulaModel) {\n\t if (_this.drake.models) {\n\t _this.drake.models.push(_this.dragulaModel);\n\t }\n\t else {\n\t _this.drake.models = [_this.dragulaModel];\n\t }\n\t }\n\t };\n\t if (bag) {\n\t this.drake = bag.drake;\n\t checkModel();\n\t this.drake.containers.push(this.container);\n\t }\n\t else {\n\t this.drake = dragula_class_1.dragula([this.container], Object.assign({}, this.dragulaOptions));\n\t checkModel();\n\t this.dragulaService.add(this.dragula, this.drake);\n\t }\n\t };\n\t DragulaDirective.prototype.ngOnChanges = function (changes) {\n\t // console.log('dragula.directive: ngOnChanges');\n\t // console.log(changes);\n\t if (changes && changes.dragulaModel) {\n\t if (this.drake) {\n\t if (this.drake.models) {\n\t var modelIndex = this.drake.models.indexOf(changes.dragulaModel.previousValue);\n\t this.drake.models.splice(modelIndex, 1, changes.dragulaModel.currentValue);\n\t }\n\t else {\n\t this.drake.models = [changes.dragulaModel.currentValue];\n\t }\n\t }\n\t }\n\t };\n\t return DragulaDirective;\n\t}());\n\t__decorate([\n\t core_1.Input(),\n\t __metadata(\"design:type\", String)\n\t], DragulaDirective.prototype, \"dragula\", void 0);\n\t__decorate([\n\t core_1.Input(),\n\t __metadata(\"design:type\", Object)\n\t], DragulaDirective.prototype, \"dragulaModel\", void 0);\n\t__decorate([\n\t core_1.Input(),\n\t __metadata(\"design:type\", Object)\n\t], DragulaDirective.prototype, \"dragulaOptions\", void 0);\n\tDragulaDirective = __decorate([\n\t core_1.Directive({ selector: '[dragula]' }),\n\t __metadata(\"design:paramtypes\", [core_1.ElementRef, dragula_provider_1.DragulaService])\n\t], DragulaDirective);\n\texports.DragulaDirective = DragulaDirective;\n\n\n/***/ },\n/* 122 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\n\t};\n\tvar dragula_class_1 = __webpack_require__(109);\n\tvar core_1 = __webpack_require__(3);\n\tvar DragulaService = (function () {\n\t function DragulaService() {\n\t this.cancel = new core_1.EventEmitter();\n\t this.cloned = new core_1.EventEmitter();\n\t this.drag = new core_1.EventEmitter();\n\t this.dragend = new core_1.EventEmitter();\n\t this.drop = new core_1.EventEmitter();\n\t this.out = new core_1.EventEmitter();\n\t this.over = new core_1.EventEmitter();\n\t this.remove = new core_1.EventEmitter();\n\t this.shadow = new core_1.EventEmitter();\n\t this.dropModel = new core_1.EventEmitter();\n\t this.removeModel = new core_1.EventEmitter();\n\t this.events = [\n\t 'cancel', 'cloned', 'drag', 'dragend', 'drop', 'out', 'over',\n\t 'remove', 'shadow', 'dropModel', 'removeModel'\n\t ];\n\t this.bags = [];\n\t }\n\t DragulaService.prototype.add = function (name, drake) {\n\t var bag = this.find(name);\n\t if (bag) {\n\t throw new Error('Bag named: \"' + name + '\" already exists.');\n\t }\n\t bag = { name: name, drake: drake };\n\t this.bags.push(bag);\n\t if (drake.models) {\n\t this.handleModels(name, drake);\n\t }\n\t if (!bag.initEvents) {\n\t this.setupEvents(bag);\n\t }\n\t return bag;\n\t };\n\t DragulaService.prototype.find = function (name) {\n\t for (var _i = 0, _a = this.bags; _i < _a.length; _i++) {\n\t var bag = _a[_i];\n\t if (bag.name === name) {\n\t return bag;\n\t }\n\t }\n\t };\n\t DragulaService.prototype.destroy = function (name) {\n\t var bag = this.find(name);\n\t var i = this.bags.indexOf(bag);\n\t this.bags.splice(i, 1);\n\t bag.drake.destroy();\n\t };\n\t DragulaService.prototype.setOptions = function (name, options) {\n\t var bag = this.add(name, dragula_class_1.dragula(options));\n\t this.handleModels(name, bag.drake);\n\t };\n\t DragulaService.prototype.handleModels = function (name, drake) {\n\t var _this = this;\n\t var dragElm;\n\t var dragIndex;\n\t var dropIndex;\n\t var sourceModel;\n\t drake.on('remove', function (el, source) {\n\t if (!drake.models) {\n\t return;\n\t }\n\t sourceModel = drake.models[drake.containers.indexOf(source)];\n\t sourceModel.splice(dragIndex, 1);\n\t // console.log('REMOVE');\n\t // console.log(sourceModel);\n\t _this.removeModel.emit([name, el, source]);\n\t });\n\t drake.on('drag', function (el, source) {\n\t dragElm = el;\n\t dragIndex = _this.domIndexOf(el, source);\n\t });\n\t drake.on('drop', function (dropElm, target, source) {\n\t if (!drake.models || !target) {\n\t return;\n\t }\n\t dropIndex = _this.domIndexOf(dropElm, target);\n\t sourceModel = drake.models[drake.containers.indexOf(source)];\n\t // console.log('DROP');\n\t // console.log(sourceModel);\n\t if (target === source) {\n\t sourceModel.splice(dropIndex, 0, sourceModel.splice(dragIndex, 1)[0]);\n\t }\n\t else {\n\t var notCopy = dragElm === dropElm;\n\t var targetModel = drake.models[drake.containers.indexOf(target)];\n\t var dropElmModel = notCopy ? sourceModel[dragIndex] : JSON.parse(JSON.stringify(sourceModel[dragIndex]));\n\t if (notCopy) {\n\t sourceModel.splice(dragIndex, 1);\n\t }\n\t targetModel.splice(dropIndex, 0, dropElmModel);\n\t target.removeChild(dropElm); // element must be removed for ngFor to apply correctly\n\t }\n\t _this.dropModel.emit([name, dropElm, target, source]);\n\t });\n\t };\n\t DragulaService.prototype.setupEvents = function (bag) {\n\t bag.initEvents = true;\n\t var that = this;\n\t var emitter = function (type) {\n\t function replicate() {\n\t var args = Array.prototype.slice.call(arguments);\n\t that[type].emit([bag.name].concat(args));\n\t }\n\t bag.drake.on(type, replicate);\n\t };\n\t this.events.forEach(emitter);\n\t };\n\t DragulaService.prototype.domIndexOf = function (child, parent) {\n\t return Array.prototype.indexOf.call(parent.children, child);\n\t };\n\t return DragulaService;\n\t}());\n\tDragulaService = __decorate([\n\t core_1.Injectable()\n\t], DragulaService);\n\texports.DragulaService = DragulaService;\n\n\n/***/ },\n/* 123 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\n\t};\n\tvar core_1 = __webpack_require__(3);\n\tvar dragula_directive_1 = __webpack_require__(121);\n\tvar dragula_provider_1 = __webpack_require__(122);\n\tvar DragulaModule = (function () {\n\t function DragulaModule() {\n\t }\n\t return DragulaModule;\n\t}());\n\tDragulaModule = __decorate([\n\t core_1.NgModule({\n\t exports: [dragula_directive_1.DragulaDirective],\n\t declarations: [dragula_directive_1.DragulaDirective],\n\t providers: [dragula_provider_1.DragulaService]\n\t })\n\t], DragulaModule);\n\texports.DragulaModule = DragulaModule;\n\n\n/***/ },\n/* 124 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tfunction __export(m) {\r\n\t for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n\t}\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\t__export(__webpack_require__(125));\r\n\t__export(__webpack_require__(274));\r\n\n\n/***/ },\n/* 125 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar common_1 = __webpack_require__(44);\r\n\tvar forms_1 = __webpack_require__(50);\r\n\tvar gantt_component_1 = __webpack_require__(126);\r\n\tvar gantt_header_component_1 = __webpack_require__(270);\r\n\tvar gantt_footer_component_1 = __webpack_require__(271);\r\n\tvar gantt_service_1 = __webpack_require__(127);\r\n\tvar gantt_activity_module_1 = __webpack_require__(272);\r\n\tvar groupBy_pipe_1 = __webpack_require__(129);\r\n\tvar GanttModule = (function () {\r\n\t function GanttModule() {\r\n\t }\r\n\t GanttModule = __decorate([\r\n\t core_1.NgModule({\r\n\t imports: [\r\n\t common_1.CommonModule,\r\n\t forms_1.FormsModule,\r\n\t gantt_activity_module_1.GanttActivityModule,\r\n\t ],\r\n\t exports: [\r\n\t gantt_component_1.GanttComponent\r\n\t ],\r\n\t declarations: [\r\n\t gantt_component_1.GanttComponent,\r\n\t gantt_header_component_1.GanttHeaderComponent,\r\n\t gantt_footer_component_1.GanttFooterComponent,\r\n\t groupBy_pipe_1.GroupByPipe\r\n\t ],\r\n\t providers: [gantt_service_1.GanttService],\r\n\t })\r\n\t ], GanttModule);\r\n\t return GanttModule;\r\n\t}());\r\n\texports.GanttModule = GanttModule;\r\n\n\n/***/ },\n/* 126 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar gantt_service_1 = __webpack_require__(127);\r\n\tvar GanttComponent = (function () {\r\n\t function GanttComponent(ganttService) {\r\n\t this.ganttService = ganttService;\r\n\t this.onGridRowClick = new core_1.EventEmitter();\r\n\t }\r\n\t Object.defineProperty(GanttComponent.prototype, \"project\", {\r\n\t get: function () { return this._project; },\r\n\t set: function (project) {\r\n\t if (project) {\r\n\t this._project = project;\r\n\t }\r\n\t else {\r\n\t this.setDefaultProject();\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t ;\r\n\t Object.defineProperty(GanttComponent.prototype, \"options\", {\r\n\t get: function () { return this._options; },\r\n\t set: function (options) {\r\n\t if (options.scale) {\r\n\t this._options = options;\r\n\t }\r\n\t else {\r\n\t this.setDefaultOptions();\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t ;\r\n\t GanttComponent.prototype.ngOnInit = function () {\r\n\t };\r\n\t GanttComponent.prototype.setSizes = function () {\r\n\t this.ganttContainerWidth = this.ganttService.calculateContainerWidth();\r\n\t };\r\n\t GanttComponent.prototype.setDefaultOptions = function () {\r\n\t var scale = this.ganttService.calculateGridScale(this._project.tasks);\r\n\t this._options = {\r\n\t scale: scale\r\n\t };\r\n\t };\r\n\t GanttComponent.prototype.setDefaultProject = function () {\r\n\t this._project = {\r\n\t id: '',\r\n\t name: '',\r\n\t startDate: null,\r\n\t tasks: [],\r\n\t previousSuccessPassNumber: ''\r\n\t };\r\n\t };\r\n\t GanttComponent.prototype.gridRowClicked = function (task) {\r\n\t this.onGridRowClick.emit(task);\r\n\t };\r\n\t GanttComponent.prototype.onResize = function ($event) {\r\n\t this.setSizes();\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], GanttComponent.prototype, \"project\", null);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], GanttComponent.prototype, \"options\", null);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], GanttComponent.prototype, \"onGridRowClick\", void 0);\r\n\t GanttComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'gantt',\r\n\t template: \"\\n
\\n
\\n \\n \\n \\n
\\n
\\n \",\r\n\t styles: [\"\\n .gantt_container {\\n font-family: Arial;\\n font-size: 13px;\\n border: 1px solid #cecece;\\n position: relative;\\n white-space: nowrap; \\n margin-top: 0px;\\n }\\n \"],\r\n\t providers: []\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [gantt_service_1.GanttService])\r\n\t ], GanttComponent);\r\n\t return GanttComponent;\r\n\t}());\r\n\texports.GanttComponent = GanttComponent;\r\n\n\n/***/ },\n/* 127 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar gantt_config_service_1 = __webpack_require__(128);\r\n\tvar groupBy_pipe_1 = __webpack_require__(129);\r\n\tvar moment = __webpack_require__(130);\r\n\tvar GanttService = (function () {\r\n\t function GanttService() {\r\n\t this.rowHeight = 0;\r\n\t this.hourCellWidth = 60;\r\n\t this.hoursCellWidth = this.hourCellWidth * 25;\r\n\t this.cellWidth = 0;\r\n\t this.windowInnerWidth = 0;\r\n\t this.activityHeight = 0;\r\n\t this.barHeight = 0;\r\n\t this.barLineHeight = 0;\r\n\t this.barTop = 0;\r\n\t this.barMoveable = false;\r\n\t this.gridWidth = 665;\r\n\t this.barStyles = [\r\n\t { status: \"information\", backgroundColor: \"rgb(18,195, 244)\", border: \"1px solid #2196F3\", progressBackgroundColor: \"#2196F3\" },\r\n\t { status: \"warning\", backgroundColor: \"#FFA726\", border: \"1px solid #EF6C00\", progressBackgroundColor: \"#EF6C00\" },\r\n\t { status: \"error\", backgroundColor: \"#EF5350\", border: \"1px solid #C62828\", progressBackgroundColor: \"rgb(255, 23, 68)\" },\r\n\t { status: \"completed\", backgroundColor: \"#66BB6A\", border: \"1px solid #2E7D32\", progressBackgroundColor: \"#1DE9B6\" }\r\n\t ];\r\n\t var _ganttConfig = new gantt_config_service_1.GanttConfig();\r\n\t this.rowHeight = _ganttConfig.rowHeight;\r\n\t this.cellWidth = _ganttConfig.cellWidth;\r\n\t this.activityHeight = _ganttConfig.activityHeight;\r\n\t this.barHeight = _ganttConfig.barHeight;\r\n\t this.barLineHeight = _ganttConfig.barLineHeight;\r\n\t this.barTop = _ganttConfig.rowHeight;\r\n\t this.barMoveable = _ganttConfig.barMoveable;\r\n\t }\r\n\t GanttService.prototype.calculateBarWidth = function (start, end, hours) {\r\n\t if (typeof start === \"string\") {\r\n\t start = new Date(start);\r\n\t }\r\n\t if (typeof end === \"string\") {\r\n\t end = new Date(end);\r\n\t }\r\n\t var days = this.calculateDiffDays(start, end);\r\n\t var width = days * this.cellWidth + days;\r\n\t if (hours) {\r\n\t width = days * this.hourCellWidth * 24 + days * 24;\r\n\t }\r\n\t return width;\r\n\t };\r\n\t GanttService.prototype.calculateBarLeft = function (start, scale, hours) {\r\n\t var left = 0;\r\n\t var hoursInDay = 24;\r\n\t if (start != null) {\r\n\t if (typeof start === \"string\") {\r\n\t start = new Date();\r\n\t }\r\n\t for (var i = 0; i < scale.length; i++) {\r\n\t if (start.getDate() === scale[i].getDate()) {\r\n\t if (hours) {\r\n\t left = i * hoursInDay * this.hourCellWidth + hoursInDay * i + this.calculateBarLeftDelta(start, hours);\r\n\t }\r\n\t else {\r\n\t left = i * this.cellWidth + i + this.calculateBarLeftDelta(start, hours);\r\n\t }\r\n\t break;\r\n\t }\r\n\t }\r\n\t }\r\n\t return left;\r\n\t };\r\n\t GanttService.prototype.calculateGanttHeight = function () {\r\n\t return this.TASK_CACHE.length * this.rowHeight + this.rowHeight * 3 + \"px\";\r\n\t };\r\n\t GanttService.prototype.calculateBarLeftDelta = function (start, hours) {\r\n\t var offset = 0;\r\n\t var hoursInDay = 24;\r\n\t var minutesInHour = 60;\r\n\t var secondsInHour = 3600;\r\n\t var startHours = start.getHours() + start.getMinutes() / minutesInHour + start.getSeconds() / secondsInHour;\r\n\t if (hours) {\r\n\t offset = this.hoursCellWidth / hoursInDay * startHours - startHours;\r\n\t }\r\n\t else {\r\n\t offset = this.cellWidth / hoursInDay * startHours;\r\n\t }\r\n\t return offset;\r\n\t };\r\n\t GanttService.prototype.isParent = function (treePath) {\r\n\t try {\r\n\t var depth = treePath.split('/').length;\r\n\t if (depth === 1) {\r\n\t return true;\r\n\t }\r\n\t }\r\n\t catch (err) {\r\n\t return false;\r\n\t }\r\n\t return false;\r\n\t };\r\n\t GanttService.prototype.isChild = function (treePath) {\r\n\t if (this.isParent(treePath)) {\r\n\t return '0px';\r\n\t }\r\n\t return '20px';\r\n\t };\r\n\t GanttService.prototype.calculateBar = function (task, index, scale, hours) {\r\n\t var barStyle = this.getBarStyle(task.status);\r\n\t return {\r\n\t 'top': this.barTop * index + 2 + 'px',\r\n\t 'left': this.calculateBarLeft(task.start, scale, hours) + 'px',\r\n\t 'height': this.barHeight + 'px',\r\n\t 'line-height': this.barLineHeight + 'px',\r\n\t 'width': this.calculateBarWidth(task.start, task.end, hours) + 'px',\r\n\t 'background-color': barStyle[\"background-color\"],\r\n\t 'border': barStyle[\"border\"]\r\n\t };\r\n\t };\r\n\t GanttService.prototype.getBarStyle = function (taskStatus) {\r\n\t if (taskStatus === void 0) { taskStatus = \"\"; }\r\n\t var style = {};\r\n\t try {\r\n\t taskStatus = taskStatus.toLowerCase();\r\n\t }\r\n\t catch (err) {\r\n\t taskStatus = \"\";\r\n\t }\r\n\t switch (taskStatus) {\r\n\t case \"information\":\r\n\t style[\"background-color\"] = this.barStyles[0].backgroundColor;\r\n\t style[\"border\"] = this.barStyles[0].border;\r\n\t break;\r\n\t case \"warning\":\r\n\t style[\"background-color\"] = this.barStyles[1].backgroundColor;\r\n\t style[\"border\"] = this.barStyles[1].border;\r\n\t break;\r\n\t case \"error\":\r\n\t style[\"background-color\"] = this.barStyles[2].backgroundColor;\r\n\t style[\"border\"] = this.barStyles[2].border;\r\n\t break;\r\n\t case \"completed\":\r\n\t style[\"background-color\"] = this.barStyles[3].backgroundColor;\r\n\t style[\"border\"] = this.barStyles[3].border;\r\n\t break;\r\n\t default:\r\n\t style[\"background-color\"] = \"rgb(18,195, 244)\";\r\n\t style[\"border\"] = \"1px solid #2196F3\";\r\n\t break;\r\n\t }\r\n\t return style;\r\n\t };\r\n\t GanttService.prototype.getBarProgressStyle = function (taskStatus) {\r\n\t if (taskStatus === void 0) { taskStatus = \"\"; }\r\n\t var style = {};\r\n\t try {\r\n\t taskStatus = taskStatus.toLowerCase();\r\n\t }\r\n\t catch (err) {\r\n\t taskStatus = \"\";\r\n\t }\r\n\t switch (taskStatus) {\r\n\t case \"information\":\r\n\t style[\"background-color\"] = this.barStyles[0].progressBackgroundColor;\r\n\t break;\r\n\t case \"warning\":\r\n\t style[\"background-color\"] = this.barStyles[1].progressBackgroundColor;\r\n\t break;\r\n\t case \"error\":\r\n\t style[\"background-color\"] = this.barStyles[2].progressBackgroundColor;\r\n\t break;\r\n\t case \"completed\":\r\n\t style[\"background-color\"] = this.barStyles[3].progressBackgroundColor;\r\n\t break;\r\n\t default:\r\n\t style[\"background-color\"] = this.barStyles[0].progressBackgroundColor;\r\n\t break;\r\n\t }\r\n\t return style;\r\n\t };\r\n\t GanttService.prototype.calculateBarProgress = function (width, percent) {\r\n\t if (typeof percent === \"number\") {\r\n\t if (percent > 100) {\r\n\t percent = 100;\r\n\t }\r\n\t var progress = (width / 100) * percent - 2;\r\n\t return progress + \"px\";\r\n\t }\r\n\t return 0 + \"px\";\r\n\t };\r\n\t GanttService.prototype.calculateDiffDays = function (start, end) {\r\n\t try {\r\n\t var oneDay = 24 * 60 * 60 * 1000;\r\n\t var diffDays = Math.abs((start.getTime() - end.getTime()) / (oneDay));\r\n\t var days = diffDays;\r\n\t return days;\r\n\t }\r\n\t catch (err) {\r\n\t return 0;\r\n\t }\r\n\t };\r\n\t GanttService.prototype.calculateDuration = function (task) {\r\n\t try {\r\n\t var totalHours = 0;\r\n\t if (task[\"end\"] != null && task[\"start\"] != null) {\r\n\t var endDate = moment(task[\"end\"]);\r\n\t var startDate = moment(task[\"start\"]);\r\n\t var duration = moment.duration(endDate.diff(startDate));\r\n\t totalHours = Math.abs(duration.asHours());\r\n\t if (totalHours > 24) {\r\n\t return Math.round(totalHours / 24) + \" day(s)\";\r\n\t }\r\n\t else if (totalHours > 1) {\r\n\t return Math.round(totalHours) + \" hr(s)\";\r\n\t }\r\n\t else {\r\n\t var minutes = totalHours * 60;\r\n\t if (minutes < 1) {\r\n\t return Math.round(minutes * 60) + \" second(s)\";\r\n\t }\r\n\t return Math.round(minutes) + \" min(s)\";\r\n\t }\r\n\t }\r\n\t }\r\n\t catch (err) {\r\n\t return '';\r\n\t }\r\n\t };\r\n\t GanttService.prototype.calculateTotalDuration = function (tasks) {\r\n\t try {\r\n\t var totalHours = 0;\r\n\t var taskDates = tasks.filter(function (task) {\r\n\t if (task[\"start\"] != null && task[\"end\"] != null) {\r\n\t return { start: task[\"start\"], end: task[\"end\"] };\r\n\t }\r\n\t });\r\n\t var startDates = taskDates.map(function (date) {\r\n\t return moment(date[\"start\"]);\r\n\t });\r\n\t var endDates = taskDates.map(function (date) {\r\n\t return moment(date[\"end\"]);\r\n\t });\r\n\t var minimumDate = moment.min(startDates);\r\n\t var maximumDate = moment.max(endDates);\r\n\t var duration = moment.duration(maximumDate.diff(minimumDate));\r\n\t totalHours = Math.abs(duration.asHours());\r\n\t if (totalHours === 0) {\r\n\t return '';\r\n\t }\r\n\t if (totalHours > 24) {\r\n\t return Math.round(totalHours) + \" hr(s)\";\r\n\t }\r\n\t else if (totalHours > 1) {\r\n\t return Math.round(totalHours) + \" hr(s)\";\r\n\t }\r\n\t else {\r\n\t var minutes = totalHours * 60;\r\n\t if (minutes < 1) {\r\n\t return Math.round(minutes * 60) + \" second(s)\";\r\n\t }\r\n\t return Math.round(minutes) + \" min(s)\";\r\n\t }\r\n\t }\r\n\t catch (err) {\r\n\t return '';\r\n\t }\r\n\t };\r\n\t GanttService.prototype.calculateTotalPercentage = function (node) {\r\n\t var totalPercent = 0;\r\n\t var children = node.children;\r\n\t if (children.length > 0) {\r\n\t children.forEach(function (child) {\r\n\t totalPercent += isNaN(child.percentComplete) ? 0 : child.percentComplete;\r\n\t });\r\n\t return Math.ceil(totalPercent / children.length);\r\n\t }\r\n\t else {\r\n\t return isNaN(node.percentComplete) ? 0 : node.percentComplete;\r\n\t }\r\n\t };\r\n\t GanttService.prototype.calculateParentTotalPercentage = function (parent, tasks) {\r\n\t var children = tasks.filter(function (task) {\r\n\t return task.parentId === parent.id && task.id != parent.id;\r\n\t });\r\n\t var totalPercent = 0;\r\n\t if (children.length > 0) {\r\n\t children.forEach(function (child) {\r\n\t totalPercent += isNaN(child.percentComplete) ? 0 : child.percentComplete;\r\n\t });\r\n\t return Math.ceil(totalPercent / children.length);\r\n\t }\r\n\t else {\r\n\t return isNaN(parent.percentComplete) ? 0 : parent.percentComplete;\r\n\t }\r\n\t };\r\n\t GanttService.prototype.calculateScale = function (start, end) {\r\n\t if (start === void 0) { start = new Date(); }\r\n\t if (end === void 0) { end = this.addDays(start, 7); }\r\n\t var scale = [];\r\n\t try {\r\n\t while (start.getTime() <= end.getTime()) {\r\n\t scale.push(start);\r\n\t start = this.addDays(start, 1);\r\n\t }\r\n\t return scale;\r\n\t }\r\n\t catch (err) {\r\n\t return scale;\r\n\t }\r\n\t };\r\n\t GanttService.prototype.isDayWeekend = function (date) {\r\n\t var day = date.getDay();\r\n\t if (day === 6 || day === 0) {\r\n\t return true;\r\n\t }\r\n\t return false;\r\n\t };\r\n\t GanttService.prototype.addDays = function (date, days) {\r\n\t var result = new Date(date);\r\n\t result.setDate(result.getDate() + days);\r\n\t return result;\r\n\t };\r\n\t GanttService.prototype.removeDays = function (date, days) {\r\n\t var result = new Date(date);\r\n\t result.setDate(result.getDate() - days);\r\n\t return result;\r\n\t };\r\n\t GanttService.prototype.calculateGridScale = function (tasks) {\r\n\t var start;\r\n\t var end;\r\n\t var dates = tasks.map(function (task) {\r\n\t return {\r\n\t start: new Date(task.start),\r\n\t end: new Date(task.end)\r\n\t };\r\n\t });\r\n\t start = new Date(Math.min.apply(null, dates.map(function (t) {\r\n\t return t.start;\r\n\t })));\r\n\t end = new Date(Math.max.apply(null, dates.map(function (t) {\r\n\t return t.end;\r\n\t })));\r\n\t return {\r\n\t start: start,\r\n\t end: end\r\n\t };\r\n\t };\r\n\t GanttService.prototype.getHours = function (cols) {\r\n\t var hours = [];\r\n\t while (hours.length <= cols * 24) {\r\n\t for (var i = 0; i <= 23; i++) {\r\n\t if (i < 10) {\r\n\t hours.push('0' + i.toString());\r\n\t }\r\n\t else {\r\n\t hours.push(i.toString());\r\n\t }\r\n\t }\r\n\t }\r\n\t return hours;\r\n\t };\r\n\t GanttService.prototype.getComputedStyle = function (element, attribute) {\r\n\t return parseInt(document.defaultView.getComputedStyle(element)[attribute], 10);\r\n\t };\r\n\t GanttService.prototype.calculateContainerWidth = function () {\r\n\t this.windowInnerWidth = window.innerWidth;\r\n\t var containerWidth = (innerWidth - 18);\r\n\t return containerWidth;\r\n\t };\r\n\t GanttService.prototype.calculateActivityContainerDimensions = function () {\r\n\t var scrollWidth = 18;\r\n\t this.windowInnerWidth = window.innerWidth;\r\n\t var width = this.windowInnerWidth - this.gridWidth - scrollWidth;\r\n\t return { height: this.activityHeight, width: width };\r\n\t };\r\n\t GanttService.prototype.scrollTop = function (verticalScrollElem, ganttGridElem, ganttActivityAreaElem) {\r\n\t var verticalScrollTop = verticalScrollElem.scrollTop;\r\n\t var scroll = this.setScrollTop;\r\n\t if (verticalScrollTop !== null && verticalScrollTop !== undefined) {\r\n\t setTimeout(function () {\r\n\t scroll(verticalScrollTop, ganttActivityAreaElem);\r\n\t scroll(ganttActivityAreaElem.scrollTop, ganttGridElem);\r\n\t }, 50);\r\n\t }\r\n\t };\r\n\t GanttService.prototype.groupData = function (tasks) {\r\n\t var merged = [];\r\n\t var groups = new groupBy_pipe_1.GroupByPipe().transform(tasks, function (task) {\r\n\t return [task.treePath.split('/')[0]];\r\n\t });\r\n\t return merged.concat.apply([], groups);\r\n\t };\r\n\t GanttService.prototype.transformData = function (input) {\r\n\t var output = [];\r\n\t for (var i = 0; i < input.length; i++) {\r\n\t var chain = input[i].id.split('/');\r\n\t var currentNode = output;\r\n\t for (var j = 0; j < chain.length; j++) {\r\n\t var wantedNode = chain[j];\r\n\t var lastNode = currentNode;\r\n\t for (var k = 0; k < currentNode.length; k++) {\r\n\t if (currentNode[k].name == wantedNode) {\r\n\t currentNode = currentNode[k].children;\r\n\t break;\r\n\t }\r\n\t }\r\n\t if (lastNode == currentNode) {\r\n\t var newNode = currentNode[k] = {\r\n\t name: wantedNode,\r\n\t percentComplete: input[i].percentComplete,\r\n\t start: input[i].start,\r\n\t end: input[i].end,\r\n\t children: []\r\n\t };\r\n\t currentNode = newNode.children;\r\n\t }\r\n\t }\r\n\t }\r\n\t return output;\r\n\t };\r\n\t GanttService.prototype.doTaskCheck = function (tasks, treeExpanded) {\r\n\t var _this = this;\r\n\t var cachedTaskIds = this.TASK_CACHE.map(function (task) { return task.id; });\r\n\t var itemsToCache = [];\r\n\t if (treeExpanded) {\r\n\t tasks.filter(function (task) {\r\n\t return cachedTaskIds.indexOf(task.id) === -1;\r\n\t }).forEach(function (task) {\r\n\t itemsToCache.push(task);\r\n\t });\r\n\t }\r\n\t else {\r\n\t tasks.filter(function (task) {\r\n\t return cachedTaskIds.indexOf(task.id) === -1 && task.treePath.split('/').length === 1;\r\n\t }).forEach(function (task) {\r\n\t itemsToCache.push(task);\r\n\t });\r\n\t }\r\n\t itemsToCache.forEach(function (item) {\r\n\t _this.TASK_CACHE.push(item);\r\n\t });\r\n\t if (itemsToCache.length > 0) {\r\n\t return true;\r\n\t }\r\n\t return false;\r\n\t };\r\n\t GanttService.prototype.setIdPrefix = function (id) {\r\n\t return \"_\" + id;\r\n\t };\r\n\t GanttService.prototype.setScrollTop = function (scrollTop, element) {\r\n\t if (element !== null && element !== undefined) {\r\n\t element.scrollTop = scrollTop;\r\n\t }\r\n\t };\r\n\t GanttService = __decorate([\r\n\t core_1.Injectable(),\r\n\t __metadata(\"design:paramtypes\", [])\r\n\t ], GanttService);\r\n\t return GanttService;\r\n\t}());\r\n\texports.GanttService = GanttService;\r\n\n\n/***/ },\n/* 128 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar GanttConfig = (function () {\r\n\t function GanttConfig() {\r\n\t this.cellWidth = 76;\r\n\t this.rowHeight = 25;\r\n\t this.activityHeight = 300;\r\n\t this.barHeight = 20;\r\n\t this.barLineHeight = 20;\r\n\t this.barMoveable = false;\r\n\t }\r\n\t GanttConfig = __decorate([\r\n\t core_1.Injectable()\r\n\t ], GanttConfig);\r\n\t return GanttConfig;\r\n\t}());\r\n\texports.GanttConfig = GanttConfig;\r\n\n\n/***/ },\n/* 129 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar GroupByPipe = (function () {\r\n\t function GroupByPipe() {\r\n\t }\r\n\t GroupByPipe.prototype.transform = function (array, f) {\r\n\t var groups = {};\r\n\t array.forEach(function (o) {\r\n\t var group = JSON.stringify(f(o));\r\n\t groups[group] = groups[group] || [];\r\n\t groups[group].push(o);\r\n\t });\r\n\t return Object.keys(groups).map(function (group) {\r\n\t return groups[group];\r\n\t });\r\n\t };\r\n\t GroupByPipe = __decorate([\r\n\t core_1.Pipe({ name: 'groupBy' })\r\n\t ], GroupByPipe);\r\n\t return GroupByPipe;\r\n\t}());\r\n\texports.GroupByPipe = GroupByPipe;\r\n\n\n/***/ },\n/* 130 */,\n/* 131 */,\n/* 132 */,\n/* 133 */,\n/* 134 */,\n/* 135 */,\n/* 136 */,\n/* 137 */,\n/* 138 */,\n/* 139 */,\n/* 140 */,\n/* 141 */,\n/* 142 */,\n/* 143 */,\n/* 144 */,\n/* 145 */,\n/* 146 */,\n/* 147 */,\n/* 148 */,\n/* 149 */,\n/* 150 */,\n/* 151 */,\n/* 152 */,\n/* 153 */,\n/* 154 */,\n/* 155 */,\n/* 156 */,\n/* 157 */,\n/* 158 */,\n/* 159 */,\n/* 160 */,\n/* 161 */,\n/* 162 */,\n/* 163 */,\n/* 164 */,\n/* 165 */,\n/* 166 */,\n/* 167 */,\n/* 168 */,\n/* 169 */,\n/* 170 */,\n/* 171 */,\n/* 172 */,\n/* 173 */,\n/* 174 */,\n/* 175 */,\n/* 176 */,\n/* 177 */,\n/* 178 */,\n/* 179 */,\n/* 180 */,\n/* 181 */,\n/* 182 */,\n/* 183 */,\n/* 184 */,\n/* 185 */,\n/* 186 */,\n/* 187 */,\n/* 188 */,\n/* 189 */,\n/* 190 */,\n/* 191 */,\n/* 192 */,\n/* 193 */,\n/* 194 */,\n/* 195 */,\n/* 196 */,\n/* 197 */,\n/* 198 */,\n/* 199 */,\n/* 200 */,\n/* 201 */,\n/* 202 */,\n/* 203 */,\n/* 204 */,\n/* 205 */,\n/* 206 */,\n/* 207 */,\n/* 208 */,\n/* 209 */,\n/* 210 */,\n/* 211 */,\n/* 212 */,\n/* 213 */,\n/* 214 */,\n/* 215 */,\n/* 216 */,\n/* 217 */,\n/* 218 */,\n/* 219 */,\n/* 220 */,\n/* 221 */,\n/* 222 */,\n/* 223 */,\n/* 224 */,\n/* 225 */,\n/* 226 */,\n/* 227 */,\n/* 228 */,\n/* 229 */,\n/* 230 */,\n/* 231 */,\n/* 232 */,\n/* 233 */,\n/* 234 */,\n/* 235 */,\n/* 236 */,\n/* 237 */,\n/* 238 */,\n/* 239 */,\n/* 240 */,\n/* 241 */,\n/* 242 */,\n/* 243 */,\n/* 244 */,\n/* 245 */,\n/* 246 */,\n/* 247 */,\n/* 248 */,\n/* 249 */,\n/* 250 */,\n/* 251 */,\n/* 252 */,\n/* 253 */,\n/* 254 */,\n/* 255 */,\n/* 256 */,\n/* 257 */,\n/* 258 */,\n/* 259 */,\n/* 260 */,\n/* 261 */,\n/* 262 */,\n/* 263 */,\n/* 264 */,\n/* 265 */,\n/* 266 */,\n/* 267 */,\n/* 268 */,\n/* 269 */,\n/* 270 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar GanttHeaderComponent = (function () {\r\n\t function GanttHeaderComponent() {\r\n\t }\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], GanttHeaderComponent.prototype, \"name\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Date)\r\n\t ], GanttHeaderComponent.prototype, \"startDate\", void 0);\r\n\t GanttHeaderComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'gantt-header',\r\n\t template: \"\\n
\\n
\\n
{{ name }}
\\n
Started: {{ startDate | date: 'medium'}}
\\n
\\n
\\n \",\r\n\t styles: [\"\\n .gantt-header {\\n background-color: whitesmoke;\\n height: 40px;\\n border-bottom: 1px solid #e0e0e0;\\n }\\n\\n @media only screen and (max-width: 700px) {\\n .gantt-header {\\n height: 60px;\\n }\\n }\\n\\n .gantt-header-title {\\n padding: 12px; \\n display: flex;\\n flex-wrap:wrap;\\n font-family: Arial, Helvetica, sans-serif;\\n font-size: 16px;\\n }\\n\\n .gantt-header-actions {\\n display: inline;\\n float: right;\\n padding: 6px;\\n }\\n \"]\r\n\t })\r\n\t ], GanttHeaderComponent);\r\n\t return GanttHeaderComponent;\r\n\t}());\r\n\texports.GanttHeaderComponent = GanttHeaderComponent;\r\n\n\n/***/ },\n/* 271 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar GanttFooterComponent = (function () {\r\n\t function GanttFooterComponent() {\r\n\t }\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], GanttFooterComponent.prototype, \"project\", void 0);\r\n\t GanttFooterComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'gantt-footer',\r\n\t template: \"
\",\r\n\t styles: [\"\\n .gantt-footer {\\n background-color: whitesmoke;\\n height: 36px; \\n border-top: 1px solid #e0e0e0;\\n }\\n\\n .gantt-footer-actions {\\n float:right;\\n }\\n \"]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [])\r\n\t ], GanttFooterComponent);\r\n\t return GanttFooterComponent;\r\n\t}());\r\n\texports.GanttFooterComponent = GanttFooterComponent;\r\n\n\n/***/ },\n/* 272 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar common_1 = __webpack_require__(44);\r\n\tvar gantt_activity_component_1 = __webpack_require__(273);\r\n\tvar gantt_time_scale_component_1 = __webpack_require__(275);\r\n\tvar activity_background_component_1 = __webpack_require__(276);\r\n\tvar activity_bars_component_1 = __webpack_require__(277);\r\n\tvar GanttActivityModule = (function () {\r\n\t function GanttActivityModule() {\r\n\t }\r\n\t GanttActivityModule = __decorate([\r\n\t core_1.NgModule({\r\n\t imports: [\r\n\t common_1.CommonModule,\r\n\t ],\r\n\t exports: [\r\n\t gantt_activity_component_1.GanttActivityComponent,\r\n\t gantt_time_scale_component_1.GanttTimeScaleComponent,\r\n\t activity_background_component_1.GanttActivityBackgroundComponent,\r\n\t activity_bars_component_1.GanttActivityBarsComponent\r\n\t ],\r\n\t declarations: [\r\n\t gantt_activity_component_1.GanttActivityComponent,\r\n\t gantt_time_scale_component_1.GanttTimeScaleComponent,\r\n\t activity_background_component_1.GanttActivityBackgroundComponent,\r\n\t activity_bars_component_1.GanttActivityBarsComponent,\r\n\t ],\r\n\t providers: [],\r\n\t })\r\n\t ], GanttActivityModule);\r\n\t return GanttActivityModule;\r\n\t}());\r\n\texports.GanttActivityModule = GanttActivityModule;\r\n\n\n/***/ },\n/* 273 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar gantt_service_1 = __webpack_require__(127);\r\n\tvar interfaces_1 = __webpack_require__(274);\r\n\tvar GanttActivityComponent = (function () {\r\n\t function GanttActivityComponent(elem, ganttService) {\r\n\t this.elem = elem;\r\n\t this.ganttService = ganttService;\r\n\t this.onGridRowClick = new core_1.EventEmitter();\r\n\t this.upTriangle = '▲';\r\n\t this.downTriangle = '▼';\r\n\t this.zoom = new core_1.EventEmitter();\r\n\t this.activityActions = {\r\n\t expanded: false,\r\n\t expandedIcon: this.downTriangle\r\n\t };\r\n\t this.zoomLevel = interfaces_1.Zooming[interfaces_1.Zooming.hours];\r\n\t this.treeExpanded = false;\r\n\t this.scale = {\r\n\t start: null,\r\n\t end: null\r\n\t };\r\n\t this.dimensions = {\r\n\t height: 0,\r\n\t width: 0\r\n\t };\r\n\t this.data = [];\r\n\t this.previousData = [];\r\n\t this.gridColumns = [\r\n\t { name: '', left: 0, width: 16 },\r\n\t { name: 'Task', left: 20, width: 330 },\r\n\t { name: '%', left: 8, width: 40 },\r\n\t { name: 'Duration', left: 14, width: 100 }\r\n\t ];\r\n\t }\r\n\t GanttActivityComponent.prototype.ngOnInit = function () {\r\n\t this.ganttService.TASK_CACHE = this.project.tasks.slice(0).filter(function (item) {\r\n\t return item.treePath.split('/').length === 1;\r\n\t });\r\n\t if (this.project.previousSuccessPassNumber) {\r\n\t this.previousData = this.project.tasks.map(function (task) {\r\n\t return task[\"previousPassDetails\"];\r\n\t });\r\n\t }\r\n\t this.ganttService.TIME_SCALE = this.ganttService.calculateScale(this.options.scale.start, this.options.scale.end);\r\n\t this.zoomLevel = this.options.zooming;\r\n\t this.start = this.options.scale.start;\r\n\t this.end = this.options.scale.end;\r\n\t this.containerWidth = this.calculateContainerWidth();\r\n\t this.containerHeight = this.calculateContainerHeight();\r\n\t this.activityContainerSizes = this.ganttService.calculateActivityContainerDimensions();\r\n\t this.setScale();\r\n\t this.setDimensions();\r\n\t this.setSizes();\r\n\t this.expand();\r\n\t };\r\n\t GanttActivityComponent.prototype.ngDoCheck = function () {\r\n\t var tasksAdded = this.ganttService.doTaskCheck(this.project.tasks, this.treeExpanded);\r\n\t if (tasksAdded && this.activityActions.expanded) {\r\n\t this.expand(true);\r\n\t }\r\n\t };\r\n\t GanttActivityComponent.prototype.onVerticalScroll = function (verticalScroll, ganttGrid, ganttActivityArea) {\r\n\t this.ganttService.scrollTop(verticalScroll, ganttGrid, ganttActivityArea);\r\n\t };\r\n\t GanttActivityComponent.prototype.toggleChildren = function (rowElem, task) {\r\n\t var _this = this;\r\n\t try {\r\n\t var isParent = \"true\" === rowElem.getAttribute('data-isparent');\r\n\t var parentId_1 = rowElem.getAttribute('data-parentid').replace(\"_\", \"\");\r\n\t var children = document.querySelectorAll('[data-parentid=' + rowElem.getAttribute('data-parentid') + '][data-isparent=false]');\r\n\t if (isParent) {\r\n\t if (children.length > 0) {\r\n\t var childrenIds = this.ganttService.TASK_CACHE.filter(function (task) {\r\n\t return task.parentId == parentId_1 && task.treePath.split('/').length > 1;\r\n\t }).map(function (item) { return item.id; });\r\n\t childrenIds.forEach(function (item) {\r\n\t var removedIndex = _this.ganttService.TASK_CACHE.map(function (item) { return item.id; }).indexOf(item);\r\n\t _this.ganttService.TASK_CACHE.splice(removedIndex, 1);\r\n\t });\r\n\t if (this.activityActions.expanded) {\r\n\t this.expand(true);\r\n\t }\r\n\t }\r\n\t else {\r\n\t var childrenTasks = this.project.tasks.filter(function (task) {\r\n\t return task.parentId === parentId_1 && task.treePath.split('/').length > 1;\r\n\t });\r\n\t childrenTasks.forEach(function (task) {\r\n\t _this.ganttService.TASK_CACHE.push(task);\r\n\t });\r\n\t if (this.activityActions.expanded) {\r\n\t this.expand(true);\r\n\t }\r\n\t }\r\n\t }\r\n\t this.onGridRowClick.emit(task);\r\n\t }\r\n\t catch (err) { }\r\n\t };\r\n\t GanttActivityComponent.prototype.toggleAllChildren = function () {\r\n\t var _this = this;\r\n\t try {\r\n\t var children = document.querySelectorAll('[data-isparent=false]');\r\n\t var childrenIds = Array.prototype.slice.call(children).map(function (item) {\r\n\t return item.getAttribute('data-id').replace(\"_\", \"\");\r\n\t });\r\n\t if (this.treeExpanded) {\r\n\t if (children.length > 0) {\r\n\t var childrenIds_1 = this.ganttService.TASK_CACHE.filter(function (task) {\r\n\t return task.treePath.split('/').length > 1;\r\n\t }).map(function (item) { return item.id; });\r\n\t childrenIds_1.forEach(function (item) {\r\n\t var removedIndex = _this.ganttService.TASK_CACHE.map(function (item) { return item.id; }).indexOf(item);\r\n\t _this.ganttService.TASK_CACHE.splice(removedIndex, 1);\r\n\t });\r\n\t }\r\n\t this.treeExpanded = false;\r\n\t if (this.activityActions.expanded) {\r\n\t this.expand(true);\r\n\t }\r\n\t }\r\n\t else {\r\n\t var childrenTasks = this.project.tasks.filter(function (task) {\r\n\t return task.treePath.split('/').length > 1;\r\n\t });\r\n\t if (children.length > 0) {\r\n\t childrenTasks = childrenTasks.filter(function (task) {\r\n\t return childrenIds.indexOf(task.id) === -1;\r\n\t });\r\n\t }\r\n\t childrenTasks.forEach(function (task) {\r\n\t _this.ganttService.TASK_CACHE.push(task);\r\n\t });\r\n\t this.treeExpanded = true;\r\n\t if (this.activityActions.expanded) {\r\n\t this.expand(true);\r\n\t }\r\n\t }\r\n\t }\r\n\t catch (err) { }\r\n\t };\r\n\t GanttActivityComponent.prototype.onResize = function (event) {\r\n\t var activityContainerSizes = this.ganttService.calculateActivityContainerDimensions();\r\n\t if (this.activityActions.expanded) {\r\n\t this.ganttActivityHeight = this.ganttService.TASK_CACHE.length * this.ganttService.rowHeight + this.ganttService.rowHeight * 3 + 'px';\r\n\t }\r\n\t else {\r\n\t this.ganttActivityHeight = activityContainerSizes.height + 'px';\r\n\t ;\r\n\t }\r\n\t this.ganttActivityWidth = activityContainerSizes.width;\r\n\t };\r\n\t GanttActivityComponent.prototype.setScale = function () {\r\n\t this.scale.start = this.start;\r\n\t this.scale.end = this.end;\r\n\t };\r\n\t GanttActivityComponent.prototype.setDimensions = function () {\r\n\t this.dimensions.height = this.containerHeight;\r\n\t this.dimensions.width = this.containerWidth;\r\n\t };\r\n\t GanttActivityComponent.prototype.setGridRowStyle = function (isParent) {\r\n\t if (isParent) {\r\n\t return {\r\n\t 'height': this.ganttService.rowHeight + 'px',\r\n\t 'line-height': this.ganttService.rowHeight + 'px',\r\n\t 'font-weight': 'bold',\r\n\t 'cursor': 'pointer'\r\n\t };\r\n\t }\r\n\t return {\r\n\t 'height': this.ganttService.rowHeight + 'px',\r\n\t 'line-height': this.ganttService.rowHeight + 'px'\r\n\t };\r\n\t };\r\n\t GanttActivityComponent.prototype.zoomTasks = function (level) {\r\n\t this.zoomLevel = level;\r\n\t this.zoom.emit(this.zoomLevel);\r\n\t this.containerWidth = this.calculateContainerWidth();\r\n\t this.setDimensions();\r\n\t document.querySelector('.gantt_activity').scrollLeft = 0;\r\n\t };\r\n\t GanttActivityComponent.prototype.expand = function (force) {\r\n\t var verticalScroll = document.querySelector('.gantt_vertical_scroll');\r\n\t var ganttActivityHeight = this.ganttService.TASK_CACHE.length * this.ganttService.rowHeight + this.ganttService.rowHeight * 3 + \"px\";\r\n\t if (force && this.activityActions.expanded) {\r\n\t this.ganttActivityHeight = ganttActivityHeight;\r\n\t }\r\n\t else if (this.activityActions.expanded) {\r\n\t this.activityActions.expanded = false;\r\n\t this.activityActions.expandedIcon = this.downTriangle;\r\n\t this.ganttActivityHeight = '300px';\r\n\t }\r\n\t else {\r\n\t verticalScroll.scrollTop = 0;\r\n\t this.activityActions.expanded = true;\r\n\t this.activityActions.expandedIcon = this.upTriangle;\r\n\t this.ganttActivityHeight = ganttActivityHeight;\r\n\t }\r\n\t };\r\n\t GanttActivityComponent.prototype.getStatusIcon = function (status, percentComplete) {\r\n\t var checkMarkIcon = '✔';\r\n\t var upBlackPointer = '▲';\r\n\t var crossMarkIcon = '✘';\r\n\t if (status === \"Completed\" || percentComplete === 100 && status !== \"Error\") {\r\n\t return checkMarkIcon;\r\n\t }\r\n\t else if (status === \"Warning\") {\r\n\t return upBlackPointer;\r\n\t }\r\n\t else if (status === \"Error\") {\r\n\t return crossMarkIcon;\r\n\t }\r\n\t return '';\r\n\t };\r\n\t GanttActivityComponent.prototype.getStatusIconColor = function (status, percentComplete) {\r\n\t if (status === \"Completed\" || percentComplete === 100 && status !== \"Error\") {\r\n\t return 'green';\r\n\t }\r\n\t else if (status === \"Warning\") {\r\n\t return 'orange';\r\n\t }\r\n\t else if (status === \"Error\") {\r\n\t return 'red';\r\n\t }\r\n\t return '';\r\n\t };\r\n\t GanttActivityComponent.prototype.setGridScaleStyle = function () {\r\n\t var height = this.ganttService.rowHeight;\r\n\t if (this.zoomLevel === interfaces_1.Zooming[interfaces_1.Zooming.hours]) {\r\n\t height *= 2;\r\n\t }\r\n\t return {\r\n\t 'height': height + 'px',\r\n\t 'line-height': height + 'px',\r\n\t 'width': this.ganttService.gridWidth + 'px'\r\n\t };\r\n\t };\r\n\t GanttActivityComponent.prototype.calculateContainerHeight = function () {\r\n\t return this.ganttService.TASK_CACHE.length * this.ganttService.rowHeight;\r\n\t };\r\n\t GanttActivityComponent.prototype.calculateContainerWidth = function () {\r\n\t if (this.zoomLevel === interfaces_1.Zooming[interfaces_1.Zooming.hours]) {\r\n\t return this.ganttService.TIME_SCALE.length * this.ganttService.hourCellWidth * 24 + this.ganttService.hourCellWidth;\r\n\t }\r\n\t else {\r\n\t return this.ganttService.TIME_SCALE.length * this.ganttService.cellWidth + this.ganttService.cellWidth;\r\n\t }\r\n\t };\r\n\t GanttActivityComponent.prototype.setSizes = function () {\r\n\t this.ganttActivityHeight = this.activityContainerSizes.height + 'px';\r\n\t this.ganttActivityWidth = this.activityContainerSizes.width;\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], GanttActivityComponent.prototype, \"project\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], GanttActivityComponent.prototype, \"options\", void 0);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], GanttActivityComponent.prototype, \"onGridRowClick\", void 0);\r\n\t GanttActivityComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'gantt-activity',\r\n\t template: \"\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n
{{column.name}} {{ ganttService.calculateTotalDuration(project.tasks) }}
\\n
\\n
\\n
Duration: {{ ganttService.calculateTotalDuration(previousData) }}
\\n
Pass: {{project.previousSuccessPassNumber}}
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
{{data.name}}
\\n
\\n
\\n
{{ data.percentComplete }}
\\n
\\n
\\n
{{ ganttService.calculateDuration(data) }}
\\n
\\n
\\n
{{ ganttService.calculateDuration(data.previousPassDetails) }}
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n \",\r\n\t styles: [\"\\n .gantt_activity {\\n /*overflow-x: hidden;*/\\n overflow-x: auto;\\n height: 250px;\\n overflow-y: hidden;\\n overflow-x: scroll;\\n display: inline-block;\\n vertical-align: top;\\n position:relative;\\n }\\n\\n @media only screen and (max-width: 700px) {\\n .gantt_activity {\\n display: none;\\n }\\n }\\n\\n .gantt_activity_area {\\n position: relative;\\n overflow-x: hidden;\\n overflow-y: hidden;\\n -webkit-user-select: none;\\n }\\n\\n .gantt_vertical_scroll {\\n background-color: transparent;\\n overflow-x: hidden;\\n overflow-y: scroll;\\n position: absolute;\\n right: 0;\\n display: block;\\n height: 283px;\\n width: 18px;\\n top: 70px;\\n }\\n\\n .grid {\\n overflow-x: hidden;\\n overflow-y: hidden;\\n display: inline-block;\\n vertical-align: top;\\n border-right: 1px solid #cecece;\\n }\\n\\n .grid_scale {\\n color: #6b6b6b;\\n font-size: 12px;\\n border-bottom: 1px solid #e0e0e0;\\n background-color: whitesmoke;\\n }\\n\\n .grid_head_cell {\\n /*color: #a6a6a6;*/\\n border-top: none !important;\\n border-right: none !important;\\n line-height: inherit;\\n box-sizing: border-box;\\n display: inline-block;\\n vertical-align: top;\\n border-right: 1px solid #cecece;\\n /*text-align: center;*/\\n position: relative;\\n cursor: default;\\n height: 100%;\\n -moz-user-select: -moz-none;\\n -webkit-user-select: none;\\n overflow: hidden;\\n }\\n\\n .grid_data {\\n overflow:hidden; \\n }\\n\\n .grid_row {\\n box-sizing: border-box;\\n border-bottom: 1px solid #e0e0e0;\\n background-color: #fff;\\n position: relative;\\n -webkit-user-select: none;\\n }\\n\\n .grid_row:hover {\\n background-color: #e9f5f0;\\n }\\n\\n .grid_cell {\\n border-right: none;\\n color: #454545;\\n display: inline-block;\\n vertical-align: top;\\n padding-left: 6px;\\n padding-right: 6px;\\n height: 100%;\\n overflow: hidden;\\n white-space: nowrap;\\n font-size: 13px;\\n box-sizing: border-box;\\n }\\n\\n .actions_bar {\\n /*border-top: 1px solid #cecece;*/\\n border-bottom: 1px solid #e0e0e0;\\n clear: both;\\n /*margin-top: 90px;*/\\n height: 28px;\\n background: whitesmoke;\\n color: #494949;\\n font-family: Arial, sans-serif;\\n font-size: 13px;\\n padding-left: 15px;\\n line-height: 25px;\\n }\\n\\n .gantt_tree_content {\\n padding-left:15px;\\n }\\n \"],\r\n\t changeDetection: core_1.ChangeDetectionStrategy.Default\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [core_1.ElementRef,\r\n\t gantt_service_1.GanttService])\r\n\t ], GanttActivityComponent);\r\n\t return GanttActivityComponent;\r\n\t}());\r\n\texports.GanttActivityComponent = GanttActivityComponent;\r\n\n\n/***/ },\n/* 274 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar Zooming;\r\n\t(function (Zooming) {\r\n\t Zooming[Zooming[\"hours\"] = 0] = \"hours\";\r\n\t Zooming[Zooming[\"days\"] = 1] = \"days\";\r\n\t})(Zooming = exports.Zooming || (exports.Zooming = {}));\r\n\n\n/***/ },\n/* 275 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar gantt_service_1 = __webpack_require__(127);\r\n\tvar interfaces_1 = __webpack_require__(274);\r\n\tvar GanttTimeScaleComponent = (function () {\r\n\t function GanttTimeScaleComponent(ganttService) {\r\n\t this.ganttService = ganttService;\r\n\t }\r\n\t GanttTimeScaleComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.zoom.subscribe(function (zoomLevel) {\r\n\t _this.zoomLevel = zoomLevel;\r\n\t });\r\n\t ;\r\n\t };\r\n\t GanttTimeScaleComponent.prototype.setTimescaleStyle = function () {\r\n\t return {\r\n\t 'width': this.dimensions.width + 'px'\r\n\t };\r\n\t };\r\n\t GanttTimeScaleComponent.prototype.setTimescaleLineStyle = function (borderTop) {\r\n\t return {\r\n\t 'height': this.ganttService.rowHeight + 'px',\r\n\t 'line-height': this.ganttService.rowHeight + 'px',\r\n\t 'position': 'relative',\r\n\t 'border-top': borderTop\r\n\t };\r\n\t };\r\n\t GanttTimeScaleComponent.prototype.setTimescaleCellStyle = function () {\r\n\t var width = this.ganttService.cellWidth;\r\n\t var hoursInDay = 24;\r\n\t var hourSeperatorPixels = 23;\r\n\t if (this.zoomLevel === interfaces_1.Zooming[interfaces_1.Zooming.hours]) {\r\n\t width = this.ganttService.hourCellWidth * hoursInDay + hourSeperatorPixels;\r\n\t }\r\n\t return {\r\n\t 'width': width + 'px'\r\n\t };\r\n\t };\r\n\t GanttTimeScaleComponent.prototype.isDayWeekend = function (date) {\r\n\t return this.ganttService.isDayWeekend(date);\r\n\t };\r\n\t GanttTimeScaleComponent.prototype.getHours = function () {\r\n\t return this.ganttService.getHours(this.timeScale.length);\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], GanttTimeScaleComponent.prototype, \"timeScale\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], GanttTimeScaleComponent.prototype, \"dimensions\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], GanttTimeScaleComponent.prototype, \"zoom\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], GanttTimeScaleComponent.prototype, \"zoomLevel\", void 0);\r\n\t GanttTimeScaleComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'time-scale',\r\n\t template: \"\\n
\\n
\\n
{{date | date: 'dd-MM-yyyy'}}
\\n
\\n
\\n
{{hour}}
\\n
\\n
\",\r\n\t styles: [\"\\n .weekend {\\n background-color:whitesmoke;\\n }\\n\\n .time_scale {\\n font-size: 12px;\\n border-bottom: 1px solid #cecece;\\n background-color: #fff;\\n }\\n\\n .time_scale_line {\\n box-sizing: border-box;\\n }\\n\\n .time_scale_line:first-child {\\n border-top: none;\\n }\\n\\n .time_scale_cell {\\n display: inline-block;\\n white-space: nowrap;\\n overflow: hidden;\\n border-right: 1px solid #cecece;\\n text-align: center;\\n height: 100%;\\n }\"\r\n\t ],\r\n\t providers: [\r\n\t gantt_service_1.GanttService\r\n\t ]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [gantt_service_1.GanttService])\r\n\t ], GanttTimeScaleComponent);\r\n\t return GanttTimeScaleComponent;\r\n\t}());\r\n\texports.GanttTimeScaleComponent = GanttTimeScaleComponent;\r\n\n\n/***/ },\n/* 276 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar gantt_service_1 = __webpack_require__(127);\r\n\tvar interfaces_1 = __webpack_require__(274);\r\n\tvar GanttActivityBackgroundComponent = (function () {\r\n\t function GanttActivityBackgroundComponent(ganttService) {\r\n\t this.ganttService = ganttService;\r\n\t this.rows = [];\r\n\t this.cells = [];\r\n\t }\r\n\t GanttActivityBackgroundComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.drawGrid();\r\n\t this.zoom.subscribe(function (zoomLevel) {\r\n\t _this.zoomLevel = zoomLevel;\r\n\t _this.drawGrid();\r\n\t });\r\n\t };\r\n\t GanttActivityBackgroundComponent.prototype.isDayWeekend = function (date) {\r\n\t return this.ganttService.isDayWeekend(date);\r\n\t };\r\n\t GanttActivityBackgroundComponent.prototype.setRowStyle = function () {\r\n\t return {\r\n\t 'height': this.ganttService.rowHeight + 'px'\r\n\t };\r\n\t };\r\n\t GanttActivityBackgroundComponent.prototype.setCellStyle = function () {\r\n\t var width = this.ganttService.cellWidth;\r\n\t if (this.zoomLevel === interfaces_1.Zooming[interfaces_1.Zooming.hours]) {\r\n\t width = this.ganttService.hourCellWidth;\r\n\t }\r\n\t return {\r\n\t 'width': width + 'px'\r\n\t };\r\n\t };\r\n\t GanttActivityBackgroundComponent.prototype.drawGrid = function () {\r\n\t var _this = this;\r\n\t if (this.zoomLevel === interfaces_1.Zooming[interfaces_1.Zooming.hours]) {\r\n\t this.cells = [];\r\n\t this.timeScale.forEach(function (date) {\r\n\t for (var i = 0; i <= 23; i++) {\r\n\t _this.cells.push(date);\r\n\t }\r\n\t });\r\n\t }\r\n\t else {\r\n\t this.cells = this.timeScale;\r\n\t }\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], GanttActivityBackgroundComponent.prototype, \"tasks\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], GanttActivityBackgroundComponent.prototype, \"timeScale\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], GanttActivityBackgroundComponent.prototype, \"zoom\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", String)\r\n\t ], GanttActivityBackgroundComponent.prototype, \"zoomLevel\", void 0);\r\n\t __decorate([\r\n\t core_1.ViewChild('bg'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], GanttActivityBackgroundComponent.prototype, \"bg\", void 0);\r\n\t GanttActivityBackgroundComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'activity-background',\r\n\t template: \"\\n
\\n
\\n
\\n
\\n
\\n \",\r\n\t styles: [\"\\n .gantt_activity_bg {\\n overflow: hidden; \\n }\\n\\n .gantt_activity_row {\\n border-bottom: 1px solid #ebebeb;\\n background-color: #fff;\\n box-sizing: border-box;\\n }\\n\\n .gantt_activity_cell {\\n display: inline-block;\\n height: 100%;\\n border-right: 1px solid #ebebeb;\\n }\\n\\n .weekend {\\n background-color:whitesmoke;\\n }\\n \"]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [gantt_service_1.GanttService])\r\n\t ], GanttActivityBackgroundComponent);\r\n\t return GanttActivityBackgroundComponent;\r\n\t}());\r\n\texports.GanttActivityBackgroundComponent = GanttActivityBackgroundComponent;\r\n\n\n/***/ },\n/* 277 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar gantt_service_1 = __webpack_require__(127);\r\n\tvar interfaces_1 = __webpack_require__(274);\r\n\tvar GanttActivityBarsComponent = (function () {\r\n\t function GanttActivityBarsComponent(ganttService) {\r\n\t this.ganttService = ganttService;\r\n\t this.containerHeight = 0;\r\n\t this.containerWidth = 0;\r\n\t }\r\n\t GanttActivityBarsComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.containerHeight = this.dimensions.height;\r\n\t this.containerWidth = this.dimensions.width;\r\n\t this.zoom.subscribe(function (zoomLevel) {\r\n\t _this.zoomLevel = zoomLevel;\r\n\t });\r\n\t ;\r\n\t };\r\n\t GanttActivityBarsComponent.prototype.expandLeft = function ($event, bar) {\r\n\t $event.stopPropagation();\r\n\t var ganttService = this.ganttService;\r\n\t var startX = $event.clientX;\r\n\t var startBarWidth = bar.style.width;\r\n\t var startBarLeft = bar.style.left;\r\n\t function doDrag(e) {\r\n\t var cellWidth = ganttService.cellWidth;\r\n\t var barWidth = startBarWidth - e.clientX + startX;\r\n\t var days = Math.round(barWidth / cellWidth);\r\n\t bar.style.width = days * cellWidth + days;\r\n\t bar.style.left = (startBarLeft - (days * cellWidth) - days);\r\n\t }\r\n\t this.addMouseEventListeners(doDrag);\r\n\t return false;\r\n\t };\r\n\t GanttActivityBarsComponent.prototype.expandRight = function ($event, bar) {\r\n\t $event.stopPropagation();\r\n\t var ganttService = this.ganttService;\r\n\t var startX = $event.clientX;\r\n\t var startBarWidth = bar.style.width;\r\n\t var startBarEndDate = bar.task.end;\r\n\t var startBarLeft = bar.style.left;\r\n\t function doDrag(e) {\r\n\t var cellWidth = ganttService.cellWidth;\r\n\t var barWidth = startBarWidth + e.clientX - startX;\r\n\t var days = Math.round(barWidth / cellWidth);\r\n\t if (barWidth < cellWidth) {\r\n\t barWidth = cellWidth;\r\n\t days = Math.round(barWidth / cellWidth);\r\n\t }\r\n\t bar.style.width = ((days * cellWidth) + days);\r\n\t }\r\n\t this.addMouseEventListeners(doDrag);\r\n\t return false;\r\n\t };\r\n\t GanttActivityBarsComponent.prototype.move = function ($event, bar) {\r\n\t $event.stopPropagation();\r\n\t var ganttService = this.ganttService;\r\n\t var startX = $event.clientX;\r\n\t var startBarLeft = bar.style.left;\r\n\t function doDrag(e) {\r\n\t var cellWidth = ganttService.cellWidth;\r\n\t var barLeft = startBarLeft + e.clientX - startX;\r\n\t var days = Math.round(barLeft / cellWidth);\r\n\t bar.style.left = ((days * cellWidth) + days);\r\n\t if (barLeft < 0) {\r\n\t bar.style.left = 0;\r\n\t }\r\n\t }\r\n\t this.addMouseEventListeners(doDrag);\r\n\t return false;\r\n\t };\r\n\t GanttActivityBarsComponent.prototype.drawBar = function (task, index) {\r\n\t var style = {};\r\n\t if (this.zoomLevel === interfaces_1.Zooming[interfaces_1.Zooming.hours]) {\r\n\t style = this.ganttService.calculateBar(task, index, this.timeScale, true);\r\n\t }\r\n\t else {\r\n\t style = this.ganttService.calculateBar(task, index, this.timeScale);\r\n\t }\r\n\t return style;\r\n\t };\r\n\t GanttActivityBarsComponent.prototype.drawProgress = function (task, bar) {\r\n\t var barStyle = this.ganttService.getBarProgressStyle(task.status);\r\n\t var width = this.ganttService.calculateBarProgress(this.ganttService.getComputedStyle(bar, 'width'), task.percentComplete);\r\n\t return {\r\n\t 'width': width,\r\n\t 'background-color': barStyle[\"background-color\"],\r\n\t };\r\n\t };\r\n\t GanttActivityBarsComponent.prototype.addMouseEventListeners = function (dragFn) {\r\n\t function stopFn() {\r\n\t document.documentElement.removeEventListener('mousemove', dragFn, false);\r\n\t document.documentElement.removeEventListener('mouseup', stopFn, false);\r\n\t document.documentElement.removeEventListener('mouseleave', stopFn, false);\r\n\t }\r\n\t document.documentElement.addEventListener('mousemove', dragFn, false);\r\n\t document.documentElement.addEventListener('mouseup', stopFn, false);\r\n\t document.documentElement.addEventListener('mouseleave', stopFn, false);\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], GanttActivityBarsComponent.prototype, \"timeScale\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], GanttActivityBarsComponent.prototype, \"dimensions\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], GanttActivityBarsComponent.prototype, \"tasks\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], GanttActivityBarsComponent.prototype, \"zoom\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], GanttActivityBarsComponent.prototype, \"zoomLevel\", void 0);\r\n\t GanttActivityBarsComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'activity-bars',\r\n\t template: \"\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \",\r\n\t styles: [\"\\n .gantt_activity_line {\\n /*border-radius: 2px;*/\\n position: absolute;\\n box-sizing: border-box;\\n background-color: rgb(18,195,244);\\n border: 1px solid #2196F3;\\n -webkit-user-select: none;\\n }\\n\\n .gantt_activity_line:hover {\\n /*cursor: move;*/\\n }\\n\\n .gantt_activity_progress {\\n text-align: center;\\n z-index: 0;\\n background: #2196F3;\\n position: absolute;\\n min-height: 18px;\\n display: block;\\n height: 18px;\\n }\\n\\n .gantt_activity_progress_drag {\\n height: 8px;\\n width: 8px;\\n bottom: -4px;\\n margin-left: 4px;\\n background-position: bottom;\\n background-image: \\\"\\\";\\n background-repeat: no-repeat;\\n z-index: 2;\\n }\\n\\n .gantt_activity_content {\\n font-size: 12px;\\n color: #fff;\\n width: 100%;\\n top: 0;\\n position: absolute;\\n white-space: nowrap;\\n text-align: center;\\n line-height: inherit;\\n overflow: hidden;\\n height: 100%;\\n }\\n\\n .gantt_activity_link_control {\\n position: absolute;\\n width: 13px;\\n top: 0; \\n }\\n\\n .gantt_activity_right {\\n right: 0;\\n }\\n\\n .gantt_activity_left {\\n left: 0;\\n }\\n\\n .gantt_activity_right:hover {\\n cursor:w-resize;\\n }\\n\\n .gantt_activity_left:hover {\\n cursor:w-resize;\\n }\\n \"],\r\n\t providers: [\r\n\t gantt_service_1.GanttService\r\n\t ]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [gantt_service_1.GanttService])\r\n\t ], GanttActivityBarsComponent);\r\n\t return GanttActivityBarsComponent;\r\n\t}());\r\n\texports.GanttActivityBarsComponent = GanttActivityBarsComponent;\r\n\n\n/***/ },\n/* 278 */,\n/* 279 */,\n/* 280 */,\n/* 281 */,\n/* 282 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t(function (global, factory) {\n\t\t true ? factory(exports, __webpack_require__(3), __webpack_require__(50), __webpack_require__(44)) :\n\t\ttypeof define === 'function' && define.amd ? define(['exports', '@angular/core', '@angular/forms', '@angular/common'], factory) :\n\t\t(factory((global.mydatepicker = global.mydatepicker || {}),global.ng.core,global.ng.forms,global.ng.common));\n\t}(this, (function (exports,_angular_core,_angular_forms,_angular_common) { 'use strict';\n\t\n\tvar LocaleService = (function () {\n\t function LocaleService() {\n\t this.locales = {\n\t \"en\": {\n\t dayLabels: { su: \"Sun\", mo: \"Mon\", tu: \"Tue\", we: \"Wed\", th: \"Thu\", fr: \"Fri\", sa: \"Sat\" },\n\t monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"May\", 6: \"Jun\", 7: \"Jul\", 8: \"Aug\", 9: \"Sep\", 10: \"Oct\", 11: \"Nov\", 12: \"Dec\" },\n\t dateFormat: \"yyyy-mm-dd\",\n\t todayBtnTxt: \"Today\",\n\t firstDayOfWeek: \"mo\",\n\t sunHighlight: true,\n\t },\n\t \"he\": {\n\t dayLabels: { su: \"רא\", mo: \"שנ\", tu: \"של\", we: \"רב\", th: \"חמ\", fr: \"שי\", sa: \"שב\" },\n\t monthLabels: { 1: \"ינו\", 2: \"פבר\", 3: \"מרץ\", 4: \"אפר\", 5: \"מאי\", 6: \"יונ\", 7: \"יול\", 8: \"אוג\", 9: \"ספט\", 10: \"אוק\", 11: \"נוב\", 12: \"דצמ\" },\n\t dateFormat: \"dd/mm/yyyy\",\n\t todayBtnTxt: \"היום\",\n\t firstDayOfWeek: \"su\",\n\t sunHighlight: false\n\t },\n\t \"ja\": {\n\t dayLabels: { su: \"日\", mo: \"月\", tu: \"火\", we: \"水\", th: \"木\", fr: \"金\", sa: \"土\" },\n\t monthLabels: { 1: \"1月\", 2: \"2月\", 3: \"3月\", 4: \"4月\", 5: \"5月\", 6: \"6月\", 7: \"7月\", 8: \"8月\", 9: \"9月\", 10: \"10月\", 11: \"11月\", 12: \"12月\" },\n\t dateFormat: \"yyyy.mm.dd\",\n\t todayBtnTxt: \"今日\",\n\t sunHighlight: false\n\t },\n\t \"fr\": {\n\t dayLabels: { su: \"Dim\", mo: \"Lun\", tu: \"Mar\", we: \"Mer\", th: \"Jeu\", fr: \"Ven\", sa: \"Sam\" },\n\t monthLabels: { 1: \"Jan\", 2: \"Fév\", 3: \"Mar\", 4: \"Avr\", 5: \"Mai\", 6: \"Juin\", 7: \"Juil\", 8: \"Aoû\", 9: \"Sep\", 10: \"Oct\", 11: \"Nov\", 12: \"Déc\" },\n\t dateFormat: \"dd/mm/yyyy\",\n\t todayBtnTxt: \"Aujourd'hui\",\n\t firstDayOfWeek: \"mo\",\n\t sunHighlight: true,\n\t },\n\t \"fi\": {\n\t dayLabels: { su: \"Su\", mo: \"Ma\", tu: \"Ti\", we: \"Ke\", th: \"To\", fr: \"Pe\", sa: \"La\" },\n\t monthLabels: { 1: \"Tam\", 2: \"Hel\", 3: \"Maa\", 4: \"Huh\", 5: \"Tou\", 6: \"Kes\", 7: \"Hei\", 8: \"Elo\", 9: \"Syy\", 10: \"Lok\", 11: \"Mar\", 12: \"Jou\" },\n\t dateFormat: \"dd.mm.yyyy\",\n\t todayBtnTxt: \"Tänään\",\n\t firstDayOfWeek: \"mo\",\n\t sunHighlight: true,\n\t },\n\t \"es\": {\n\t dayLabels: { su: \"Do\", mo: \"Lu\", tu: \"Ma\", we: \"Mi\", th: \"Ju\", fr: \"Vi\", sa: \"Sa\" },\n\t monthLabels: { 1: \"Ene\", 2: \"Feb\", 3: \"Mar\", 4: \"Abr\", 5: \"May\", 6: \"Jun\", 7: \"Jul\", 8: \"Ago\", 9: \"Sep\", 10: \"Oct\", 11: \"Nov\", 12: \"Dic\" },\n\t dateFormat: \"dd.mm.yyyy\",\n\t todayBtnTxt: \"Hoy\",\n\t firstDayOfWeek: \"mo\",\n\t sunHighlight: true,\n\t },\n\t \"hu\": {\n\t dayLabels: { su: \"Vas\", mo: \"Hét\", tu: \"Kedd\", we: \"Sze\", th: \"Csü\", fr: \"Pén\", sa: \"Szo\" },\n\t monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Már\", 4: \"Ápr\", 5: \"Máj\", 6: \"Jún\", 7: \"Júl\", 8: \"Aug\", 9: \"Szep\", 10: \"Okt\", 11: \"Nov\", 12: \"Dec\" },\n\t dateFormat: \"yyyy-mm-dd\",\n\t todayBtnTxt: \"Ma\",\n\t firstDayOfWeek: \"mo\",\n\t sunHighlight: true\n\t },\n\t \"sv\": {\n\t dayLabels: { su: \"Sön\", mo: \"Mån\", tu: \"Tis\", we: \"Ons\", th: \"Tor\", fr: \"Fre\", sa: \"Lör\" },\n\t monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"Maj\", 6: \"Jun\", 7: \"Jul\", 8: \"Aug\", 9: \"Sep\", 10: \"Okt\", 11: \"Nov\", 12: \"Dec\" },\n\t dateFormat: \"yyyy-mm-dd\",\n\t todayBtnTxt: \"Idag\",\n\t firstDayOfWeek: \"mo\",\n\t sunHighlight: false\n\t },\n\t \"nl\": {\n\t dayLabels: { su: \"Zon\", mo: \"Maa\", tu: \"Din\", we: \"Woe\", th: \"Don\", fr: \"Vri\", sa: \"Zat\" },\n\t monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"Mei\", 6: \"Jun\", 7: \"Jul\", 8: \"Aug\", 9: \"Sep\", 10: \"Okt\", 11: \"Nov\", 12: \"Dec\" },\n\t dateFormat: \"dd-mm-yyyy\",\n\t todayBtnTxt: \"Vandaag\",\n\t firstDayOfWeek: \"mo\",\n\t sunHighlight: false\n\t },\n\t \"ru\": {\n\t dayLabels: { su: \"Вс\", mo: \"Пн\", tu: \"Вт\", we: \"Ср\", th: \"Чт\", fr: \"Пт\", sa: \"Сб\" },\n\t monthLabels: { 1: \"Янв\", 2: \"Фев\", 3: \"Март\", 4: \"Апр\", 5: \"Май\", 6: \"Июнь\", 7: \"Июль\", 8: \"Авг\", 9: \"Сент\", 10: \"Окт\", 11: \"Ноя\", 12: \"Дек\" },\n\t dateFormat: \"dd.mm.yyyy\",\n\t todayBtnTxt: \"Сегодня\",\n\t firstDayOfWeek: \"mo\",\n\t sunHighlight: true\n\t },\n\t \"uk\": {\n\t dayLabels: { su: \"Нд\", mo: \"Пн\", tu: \"Вт\", we: \"Ср\", th: \"Чт\", fr: \"Пт\", sa: \"Сб\" },\n\t monthLabels: { 1: \"Січ\", 2: \"Лют\", 3: \"Бер\", 4: \"Кві\", 5: \"Тра\", 6: \"Чер\", 7: \"Лип\", 8: \"Сер\", 9: \"Вер\", 10: \"Жов\", 11: \"Лис\", 12: \"Гру\" },\n\t dateFormat: \"dd.mm.yyyy\",\n\t todayBtnTxt: \"Сьогодні\",\n\t firstDayOfWeek: \"mo\",\n\t sunHighlight: true\n\t },\n\t \"no\": {\n\t dayLabels: { su: \"Søn\", mo: \"Man\", tu: \"Tir\", we: \"Ons\", th: \"Tor\", fr: \"Fre\", sa: \"Lør\" },\n\t monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"Mai\", 6: \"Jun\", 7: \"Jul\", 8: \"Aug\", 9: \"Sep\", 10: \"Okt\", 11: \"Nov\", 12: \"Des\" },\n\t dateFormat: \"dd.mm.yyyy\",\n\t todayBtnTxt: \"I dag\",\n\t firstDayOfWeek: \"mo\",\n\t sunHighlight: false\n\t },\n\t \"tr\": {\n\t dayLabels: { su: \"Paz\", mo: \"Pzt\", tu: \"Sal\", we: \"Çar\", th: \"Per\", fr: \"Cum\", sa: \"Cmt\" },\n\t monthLabels: { 1: \"Oca\", 2: \"Şub\", 3: \"Mar\", 4: \"Nis\", 5: \"May\", 6: \"Haz\", 7: \"Tem\", 8: \"Ağu\", 9: \"Eyl\", 10: \"Eki\", 11: \"Kas\", 12: \"Ara\" },\n\t dateFormat: \"dd.mm.yyyy\",\n\t todayBtnTxt: \"Bugün\",\n\t firstDayOfWeek: \"mo\",\n\t sunHighlight: false\n\t },\n\t \"pt-br\": {\n\t dayLabels: { su: \"Dom\", mo: \"Seg\", tu: \"Ter\", we: \"Qua\", th: \"Qui\", fr: \"Sex\", sa: \"Sab\" },\n\t monthLabels: { 1: \"Jan\", 2: \"Fev\", 3: \"Mar\", 4: \"Abr\", 5: \"Mai\", 6: \"Jun\", 7: \"Jul\", 8: \"Ago\", 9: \"Set\", 10: \"Out\", 11: \"Nov\", 12: \"Dez\" },\n\t dateFormat: \"dd/mm/yyyy\",\n\t todayBtnTxt: \"Hoje\",\n\t firstDayOfWeek: \"su\",\n\t sunHighlight: true\n\t },\n\t \"de\": {\n\t dayLabels: { su: \"So\", mo: \"Mo\", tu: \"Di\", we: \"Mi\", th: \"Do\", fr: \"Fr\", sa: \"Sa\" },\n\t monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Mär\", 4: \"Apr\", 5: \"Mai\", 6: \"Jun\", 7: \"Jul\", 8: \"Aug\", 9: \"Sep\", 10: \"Okt\", 11: \"Nov\", 12: \"Dez\" },\n\t dateFormat: \"dd.mm.yyyy\",\n\t todayBtnTxt: \"Heute\",\n\t firstDayOfWeek: \"mo\",\n\t sunHighlight: true\n\t },\n\t \"it\": {\n\t dayLabels: { su: \"Dom\", mo: \"Lun\", tu: \"Mar\", we: \"Mer\", th: \"Gio\", fr: \"Ven\", sa: \"Sab\" },\n\t monthLabels: { 1: \"Gen\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"Mag\", 6: \"Giu\", 7: \"Lug\", 8: \"Ago\", 9: \"Set\", 10: \"Ott\", 11: \"Nov\", 12: \"Dic\" },\n\t dateFormat: \"dd/mm/yyyy\",\n\t todayBtnTxt: \"Oggi\",\n\t firstDayOfWeek: \"mo\",\n\t sunHighlight: true\n\t },\n\t \"it-ch\": {\n\t dayLabels: { su: \"Dom\", mo: \"Lun\", tu: \"Mar\", we: \"Mer\", th: \"Gio\", fr: \"Ven\", sa: \"Sab\" },\n\t monthLabels: { 1: \"Gen\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"Mag\", 6: \"Giu\", 7: \"Lug\", 8: \"Ago\", 9: \"Set\", 10: \"Ott\", 11: \"Nov\", 12: \"Dic\" },\n\t dateFormat: \"dd.mm.yyyy\",\n\t todayBtnTxt: \"Oggi\",\n\t firstDayOfWeek: \"mo\",\n\t sunHighlight: true\n\t },\n\t \"pl\": {\n\t dayLabels: { su: \"Nie\", mo: \"Pon\", tu: \"Wto\", we: \"Śro\", th: \"Czw\", fr: \"Pią\", sa: \"Sob\" },\n\t monthLabels: { 1: \"Sty\", 2: \"Lut\", 3: \"Mar\", 4: \"Kwi\", 5: \"Maj\", 6: \"Cze\", 7: \"Lip\", 8: \"Sie\", 9: \"Wrz\", 10: \"Paź\", 11: \"Lis\", 12: \"Gru\" },\n\t dateFormat: \"yyyy-mm-dd\",\n\t todayBtnTxt: \"Dzisiaj\",\n\t firstDayOfWeek: \"mo\",\n\t sunHighlight: true,\n\t },\n\t \"my\": {\n\t dayLabels: { su: \"တနင်္ဂနွေ\", mo: \"တနင်္လာ\", tu: \"အင်္ဂါ\", we: \"ဗုဒ္ဓဟူး\", th: \"ကြသပတေး\", fr: \"သောကြာ\", sa: \"စနေ\" },\n\t monthLabels: { 1: \"ဇန်နဝါရီ\", 2: \"ဖေဖော်ဝါရီ\", 3: \"မတ်\", 4: \"ဧပြီ\", 5: \"မေ\", 6: \"ဇွန်\", 7: \"ဇူလိုင်\", 8: \"ဩဂုတ်\", 9: \"စက်တင်ဘာ\", 10: \"အောက်တိုဘာ\", 11: \"နိုဝင်ဘာ\", 12: \"ဒီဇင်ဘာ\" },\n\t dateFormat: \"yyyy-mm-dd\",\n\t todayBtnTxt: \"ယနေ့\",\n\t firstDayOfWeek: \"mo\",\n\t sunHighlight: true,\n\t },\n\t \"sk\": {\n\t dayLabels: { su: \"Ne\", mo: \"Po\", tu: \"Ut\", we: \"St\", th: \"Št\", fr: \"Pi\", sa: \"So\" },\n\t monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"Máj\", 6: \"Jún\", 7: \"Júl\", 8: \"Aug\", 9: \"Sep\", 10: \"Okt\", 11: \"Nov\", 12: \"Dec\" },\n\t dateFormat: \"dd.mm.yyyy\",\n\t todayBtnTxt: \"Dnes\",\n\t firstDayOfWeek: \"mo\",\n\t sunHighlight: true,\n\t },\n\t \"sl\": {\n\t dayLabels: { su: \"Ned\", mo: \"Pon\", tu: \"Tor\", we: \"Sre\", th: \"Čet\", fr: \"Pet\", sa: \"Sob\" },\n\t monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"Maj\", 6: \"Jun\", 7: \"Jul\", 8: \"Avg\", 9: \"Sep\", 10: \"Okt\", 11: \"Nov\", 12: \"Dec\" },\n\t dateFormat: \"dd. mm. yyyy\",\n\t todayBtnTxt: \"Danes\",\n\t firstDayOfWeek: \"mo\",\n\t sunHighlight: true,\n\t },\n\t \"zh-cn\": {\n\t dayLabels: { su: \"日\", mo: \"一\", tu: \"二\", we: \"三\", th: \"四\", fr: \"五\", sa: \"六\" },\n\t monthLabels: { 1: \"1月\", 2: \"2月\", 3: \"3月\", 4: \"4月\", 5: \"5月\", 6: \"6月\", 7: \"7月\", 8: \"8月\", 9: \"9月\", 10: \"10月\", 11: \"11月\", 12: \"12月\" },\n\t dateFormat: \"yyyy-mm-dd\",\n\t todayBtnTxt: \"今天\",\n\t firstDayOfWeek: \"mo\",\n\t sunHighlight: true,\n\t },\n\t \"ro\": {\n\t dayLabels: { su: \"du\", mo: \"lu\", tu: \"ma\", we: \"mi\", th: \"jo\", fr: \"vi\", sa: \"sa\" },\n\t monthLabels: { 1: \"ian\", 2: \"feb\", 3: \"mart\", 4: \"apr\", 5: \"mai\", 6: \"iun\", 7: \"iul\", 8: \"aug\", 9: \"sept\", 10: \"oct\", 11: \"nov\", 12: \"dec\" },\n\t dateFormat: \"dd.mm.yyyy\",\n\t todayBtnTxt: \"Astăzi\",\n\t firstDayOfWeek: \"mo\",\n\t sunHighlight: true,\n\t },\n\t \"ca\": {\n\t dayLabels: { su: \"dg\", mo: \"dl\", tu: \"dt\", we: \"dc\", th: \"dj\", fr: \"dv\", sa: \"ds\" },\n\t monthLabels: { 1: \"Gen\", 2: \"Febr\", 3: \"Març\", 4: \"Abr\", 5: \"Maig\", 6: \"Juny\", 7: \"Jul\", 8: \"Ag\", 9: \"Set\", 10: \"Oct\", 11: \"Nov\", 12: \"Des\" },\n\t dateFormat: \"dd.mm.yyyy\",\n\t todayBtnTxt: \"Avui\",\n\t firstDayOfWeek: \"mo\",\n\t sunHighlight: true,\n\t },\n\t \"id\": {\n\t dayLabels: { su: \"Min\", mo: \"Sen\", tu: \"Sel\", we: \"Rab\", th: \"Kam\", fr: \"Jum\", sa: \"Sab\" },\n\t monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"Mei\", 6: \"Jun\", 7: \"Jul\", 8: \"Ags\", 9: \"Sep\", 10: \"Okt\", 11: \"Nov\", 12: \"Des\" },\n\t dateFormat: \"dd-mm-yyyy\",\n\t todayBtnTxt: \"Hari ini\",\n\t firstDayOfWeek: \"su\",\n\t sunHighlight: true\n\t },\n\t \"en-au\": {\n\t dayLabels: { su: \"Sun\", mo: \"Mon\", tu: \"Tue\", we: \"Wed\", th: \"Thu\", fr: \"Fri\", sa: \"Sat\" },\n\t monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"May\", 6: \"Jun\", 7: \"Jul\", 8: \"Aug\", 9: \"Sep\", 10: \"Oct\", 11: \"Nov\", 12: \"Dec\" },\n\t dateFormat: \"dd/mm/yyyy\",\n\t todayBtnTxt: \"Today\",\n\t firstDayOfWeek: \"mo\",\n\t sunHighlight: true\n\t },\n\t \"am-et\": {\n\t dayLabels: { su: \"እሑድ\", mo: \"ሰኞ\", tu: \"ማክሰኞ\", we: \"ረቡዕ\", th: \"ሐሙስ\", fr: \"ዓርብ\", sa: \"ቅዳሜ\" },\n\t monthLabels: { 1: \"ጃንዩ\", 2: \"ፌብሩ\", 3: \"ማርች\", 4: \"ኤፕረ\", 5: \"ሜይ\", 6: \"ጁን\", 7: \"ጁላይ\", 8: \"ኦገስ\", 9: \"ሴፕቴ\", 10: \"ኦክተ\", 11: \"ኖቬም\", 12: \"ዲሴም\" },\n\t dateFormat: \"yyyy-mm-dd\",\n\t todayBtnTxt: \"ዛሬ\",\n\t firstDayOfWeek: \"mo\",\n\t sunHighlight: true\n\t },\n\t \"cs\": {\n\t dayLabels: { su: \"Ne\", mo: \"Po\", tu: \"Út\", we: \"St\", th: \"Čt\", fr: \"Pá\", sa: \"So\" },\n\t monthLabels: { 1: \"Led\", 2: \"Úno\", 3: \"Bře\", 4: \"Dub\", 5: \"Kvě\", 6: \"Čvn\", 7: \"Čvc\", 8: \"Srp\", 9: \"Zář\", 10: \"Říj\", 11: \"Lis\", 12: \"Pro\" },\n\t dateFormat: \"dd.mm.yyyy\",\n\t todayBtnTxt: \"Dnes\",\n\t firstDayOfWeek: \"mo\",\n\t sunHighlight: true\n\t },\n\t \"el\": {\n\t dayLabels: { su: \"Κυρ\", mo: \"Δευ\", tu: \"Τρι\", we: \"Τετ\", th: \"Πεμ\", fr: \"Παρ\", sa: \"Σαβ\" },\n\t monthLabels: { 1: \"Ιαν\", 2: \"Φεβ\", 3: \"Μαρ\", 4: \"Απρ\", 5: \"Μαι\", 6: \"Ιουν\", 7: \"Ιουλ\", 8: \"Αυγ\", 9: \"Σεπ\", 10: \"Οκτ\", 11: \"Νοε\", 12: \"Δεκ\" },\n\t dateFormat: \"dd/mm/yyyy\",\n\t todayBtnTxt: \"Σήμερα\",\n\t firstDayOfWeek: \"mo\",\n\t sunHighlight: true\n\t },\n\t \"kk\": {\n\t dayLabels: { su: \"Жк\", mo: \"Дс\", tu: \"Сс\", we: \"Ср\", th: \"Бс\", fr: \"Жм\", sa: \"Сб\" },\n\t monthLabels: { 1: \"Қаң\", 2: \"Ақп\", 3: \"Нау\", 4: \"Сәу\", 5: \"Мам\", 6: \"Мау\", 7: \"Шіл\", 8: \"Там\", 9: \"Қырк\", 10: \"Қаз\", 11: \"Қар\", 12: \"Желт\" },\n\t dateFormat: \"dd-mmm-yyyy\",\n\t todayBtnTxt: \"Бүгін\",\n\t firstDayOfWeek: \"mo\",\n\t sunHighlight: true\n\t },\n\t \"th\": {\n\t dayLabels: { su: \"อา\", mo: \"จ\", tu: \"อ\", we: \"พ\", th: \"พฤ\", fr: \"ศ\", sa: \"ส\" },\n\t monthLabels: { 1: \"ม.ค\", 2: \"ก.พ.\", 3: \"มี.ค.\", 4: \"เม.ย.\", 5: \"พ.ค.\", 6: \"มิ.ย.\", 7: \"ก.ค.\", 8: \"ส.ค.\", 9: \"ก.ย.\", 10: \"ต.ค.\", 11: \"พ.ย.\", 12: \"ธ.ค.\" },\n\t dateFormat: \"dd-mm-yyyy\",\n\t todayBtnTxt: \"วันนี้\",\n\t firstDayOfWeek: \"su\",\n\t sunHighlight: true\n\t },\n\t \"ko-kr\": {\n\t dayLabels: { su: \"일\", mo: \"월\", tu: \"화\", we: \"수\", th: \"목\", fr: \"금\", sa: \"토\" },\n\t monthLabels: { 1: \"1월\", 2: \"2월\", 3: \"3월\", 4: \"4월\", 5: \"5월\", 6: \"6월\", 7: \"7월\", 8: \"8월\", 9: \"9월\", 10: \"10월\", 11: \"11월\", 12: \"12월\" },\n\t dateFormat: \"yyyy mm dd\",\n\t todayBtnTxt: \"오늘\",\n\t firstDayOfWeek: \"su\",\n\t sunHighlight: true\n\t },\n\t \"da\": {\n\t dayLabels: { su: \"Søn\", mo: \"Man\", tu: \"Tir\", we: \"Ons\", th: \"Tor\", fr: \"Fre\", sa: \"Lør\" },\n\t monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"Maj\", 6: \"Jun\", 7: \"Jul\", 8: \"Aug\", 9: \"Sep\", 10: \"Okt\", 11: \"Nov\", 12: \"Dec\" },\n\t dateFormat: \"dd-mm-yyyy\",\n\t todayBtnTxt: \"I dag\",\n\t firstDayOfWeek: \"mo\",\n\t sunHighlight: true\n\t },\n\t \"lt\": {\n\t dayLabels: { su: \"Sk\", mo: \"Pr\", tu: \"An\", we: \"Tr\", th: \"Kt\", fr: \"Pn\", sa: \"Št\" },\n\t monthLabels: { 1: \"Saus.\", 2: \"Vas.\", 3: \"Kov.\", 4: \"Bal.\", 5: \"Geg.\", 6: \"Birž.\", 7: \"Liep.\", 8: \"Rugp.\", 9: \"Rugs.\", 10: \"Sapl.\", 11: \"Lapkr.\", 12: \"Gruod.\" },\n\t dateFormat: \"yyyy-mm-dd\",\n\t todayBtnTxt: \"Šianien\",\n\t firstDayOfWeek: \"mo\",\n\t sunHighlight: true\n\t },\n\t \"vi\": {\n\t dayLabels: { su: \"CN\", mo: \"T2\", tu: \"T3\", we: \"T4\", th: \"T5\", fr: \"T6\", sa: \"T7\" },\n\t monthLabels: { 1: \"THG 1\", 2: \"THG 2\", 3: \"THG 3\", 4: \"THG 4\", 5: \"THG 5\", 6: \"THG 6\", 7: \"THG 7\", 8: \"THG 8\", 9: \"THG 9\", 10: \"THG 10\", 11: \"THG 11\", 12: \"THG 12\" },\n\t dateFormat: \"dd/mm/yyyy\",\n\t todayBtnTxt: \"Hôm nay\",\n\t firstDayOfWeek: \"mo\",\n\t sunHighlight: true,\n\t },\n\t \"bn\": {\n\t dayLabels: { su: \"রবি\", mo: \"সোম\", tu: \"মঙ্গল\", we: \"বুধ\", th: \"বৃহঃ\", fr: \"শুক্র\", sa: \"শনি\" },\n\t monthLabels: { 1: \"জানু\", 2: \"ফেব্রু\", 3: \"মার্চ\", 4: \"এপ্রিল\", 5: \"মে\", 6: \"জুন\", 7: \"জুলাই\", 8: \"আগস্ট\", 9: \"সেপ্টে\", 10: \"অক্টো\", 11: \"নভে\", 12: \"ডিসে\" },\n\t dateFormat: \"dd-mm-yyyy\",\n\t todayBtnTxt: \"আজ\",\n\t firstDayOfWeek: \"su\",\n\t sunHighlight: true\n\t },\n\t \"bg\": {\n\t dayLabels: { su: \"нд\", mo: \"пн\", tu: \"вт\", we: \"ср\", th: \"чт\", fr: \"пт\", sa: \"сб\" },\n\t monthLabels: { 1: \"яну.\", 2: \"фев.\", 3: \"март\", 4: \"апр.\", 5: \"май\", 6: \"юни\", 7: \"юли\", 8: \"авг.\", 9: \"сеп.\", 10: \"окт.\", 11: \"ное.\", 12: \"дек.\" },\n\t dateFormat: \"dd.mm.yyyy\",\n\t todayBtnTxt: \"днес\",\n\t firstDayOfWeek: \"mo\",\n\t sunHighlight: true\n\t },\n\t \"hr\": {\n\t dayLabels: { su: \"Ne\", mo: \"Po\", tu: \"Ul\", we: \"Sr\", th: \"Če\", fr: \"Pe\", sa: \"Su\" },\n\t monthLabels: { 1: \"Sij\", 2: \"Vel\", 3: \"Ožu\", 4: \"Tra\", 5: \"Svi\", 6: \"Lip\", 7: \"Srp\", 8: \"Kol\", 9: \"Ruj\", 10: \"Lis\", 11: \"Stu\", 12: \"Pro\" },\n\t dateFormat: \"dd.mm.yyyy.\",\n\t todayBtnTxt: \"danas\",\n\t firstDayOfWeek: \"su\",\n\t sunHighlight: true\n\t },\n\t \"ar\": {\n\t dayLabels: { su: \"الأحد\", mo: \"الاثنين\", tu: \"الثلاثاء\", we: \"الاربعاء\", th: \"الخميس\", fr: \"الجمعة\", sa: \"السبت\" },\n\t monthLabels: { 1: \"يناير\", 2: \"فبراير\", 3: \"مارس\", 4: \"ابريل\", 5: \"مايو\", 6: \"يونيو\", 7: \"يوليو\", 8: \"أغسطس\", 9: \"سبتمبر\", 10: \"أكتوبر\", 11: \"نوفمبر\", 12: \"ديسمبر\" },\n\t dateFormat: \"yyyy-mm-dd\",\n\t todayBtnTxt: \"اليوم\",\n\t firstDayOfWeek: \"sa\",\n\t sunHighlight: true\n\t }\n\t };\n\t }\n\t LocaleService.prototype.getLocaleOptions = function (locale) {\n\t if (locale && this.locales.hasOwnProperty(locale)) {\n\t return this.locales[locale];\n\t }\n\t return this.locales[\"en\"];\n\t };\n\t LocaleService.decorators = [\n\t { type: _angular_core.Injectable },\n\t ];\n\t LocaleService.ctorParameters = [];\n\t return LocaleService;\n\t}());\n\t\n\tvar M = \"m\";\n\tvar MM = \"mm\";\n\tvar MMM = \"mmm\";\n\tvar DD = \"dd\";\n\tvar YYYY = \"yyyy\";\n\tvar UtilService = (function () {\n\t function UtilService() {\n\t }\n\t UtilService.prototype.isDateValid = function (dateStr, dateFormat, minYear, maxYear, disableUntil, disableSince, disableWeekends, disableDays, disableDateRanges, monthLabels, enableDays) {\n\t var returnDate = { day: 0, month: 0, year: 0 };\n\t var daysInMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\t var isMonthStr = dateFormat.indexOf(MMM) !== -1;\n\t var separators = this.getDateFormatSeparators(dateFormat);\n\t var month = isMonthStr ? this.parseDatePartMonthName(dateFormat, dateStr, MMM, monthLabels) : this.parseDatePartNumber(dateFormat, dateStr, MM);\n\t if (isMonthStr && monthLabels[month]) {\n\t dateFormat = this.changeDateFormat(dateFormat, monthLabels[month].length);\n\t }\n\t if (dateStr.length !== dateFormat.length) {\n\t return returnDate;\n\t }\n\t if (dateFormat.indexOf(separators[0]) !== dateStr.indexOf(separators[0]) || dateFormat.lastIndexOf(separators[1]) !== dateStr.lastIndexOf(separators[1])) {\n\t return returnDate;\n\t }\n\t var day = this.parseDatePartNumber(dateFormat, dateStr, DD);\n\t var year = this.parseDatePartNumber(dateFormat, dateStr, YYYY);\n\t if (month !== -1 && day !== -1 && year !== -1) {\n\t if (year < minYear || year > maxYear || month < 1 || month > 12) {\n\t return returnDate;\n\t }\n\t var date = { year: year, month: month, day: day };\n\t if (this.isDisabledDay(date, disableUntil, disableSince, disableWeekends, disableDays, disableDateRanges, enableDays)) {\n\t return returnDate;\n\t }\n\t if (year % 400 === 0 || (year % 100 !== 0 && year % 4 === 0)) {\n\t daysInMonth[1] = 29;\n\t }\n\t if (day < 1 || day > daysInMonth[month - 1]) {\n\t return returnDate;\n\t }\n\t return date;\n\t }\n\t return returnDate;\n\t };\n\t UtilService.prototype.getDateFormatSeparators = function (dateFormat) {\n\t return dateFormat.match(/[^(dmy)]{1,}/g);\n\t };\n\t UtilService.prototype.changeDateFormat = function (dateFormat, len) {\n\t var mp = \"\";\n\t for (var i = 0; i < len; i++) {\n\t mp += M;\n\t }\n\t return dateFormat.replace(MMM, mp);\n\t };\n\t UtilService.prototype.isMonthLabelValid = function (monthLabel, monthLabels) {\n\t for (var key = 1; key <= 12; key++) {\n\t if (monthLabel.toLowerCase() === monthLabels[key].toLowerCase()) {\n\t return key;\n\t }\n\t }\n\t return -1;\n\t };\n\t UtilService.prototype.isYearLabelValid = function (yearLabel, minYear, maxYear) {\n\t if (yearLabel >= minYear && yearLabel <= maxYear) {\n\t return yearLabel;\n\t }\n\t return -1;\n\t };\n\t UtilService.prototype.parseDatePartNumber = function (dateFormat, dateString, datePart) {\n\t var pos = this.getDatePartIndex(dateFormat, datePart);\n\t if (pos !== -1) {\n\t var value = dateString.substring(pos, pos + datePart.length);\n\t if (!/^\\d+$/.test(value)) {\n\t return -1;\n\t }\n\t return parseInt(value);\n\t }\n\t return -1;\n\t };\n\t UtilService.prototype.parseDatePartMonthName = function (dateFormat, dateString, datePart, monthLabels) {\n\t var monthLabel = \"\";\n\t var start = dateFormat.indexOf(datePart);\n\t if (dateFormat.substr(dateFormat.length - 3) === MMM) {\n\t monthLabel = dateString.substring(start);\n\t }\n\t else {\n\t var end = dateString.indexOf(dateFormat.charAt(start + datePart.length), start);\n\t monthLabel = dateString.substring(start, end);\n\t }\n\t return this.isMonthLabelValid(monthLabel, monthLabels);\n\t };\n\t UtilService.prototype.getDatePartIndex = function (dateFormat, datePart) {\n\t return dateFormat.indexOf(datePart);\n\t };\n\t UtilService.prototype.parseDefaultMonth = function (monthString) {\n\t var month = { monthTxt: \"\", monthNbr: 0, year: 0 };\n\t if (monthString !== \"\") {\n\t var split = monthString.split(monthString.match(/[^0-9]/)[0]);\n\t month.monthNbr = split[0].length === 2 ? parseInt(split[0]) : parseInt(split[1]);\n\t month.year = split[0].length === 2 ? parseInt(split[1]) : parseInt(split[0]);\n\t }\n\t return month;\n\t };\n\t UtilService.prototype.isDisabledDay = function (date, disableUntil, disableSince, disableWeekends, disableDays, disableDateRanges, enableDays) {\n\t for (var _i = 0, enableDays_1 = enableDays; _i < enableDays_1.length; _i++) {\n\t var e = enableDays_1[_i];\n\t if (e.year === date.year && e.month === date.month && e.day === date.day) {\n\t return false;\n\t }\n\t }\n\t var dateMs = this.getTimeInMilliseconds(date);\n\t if (this.isInitializedDate(disableUntil) && dateMs <= this.getTimeInMilliseconds(disableUntil)) {\n\t return true;\n\t }\n\t if (this.isInitializedDate(disableSince) && dateMs >= this.getTimeInMilliseconds(disableSince)) {\n\t return true;\n\t }\n\t if (disableWeekends) {\n\t var dn = this.getDayNumber(date);\n\t if (dn === 0 || dn === 6) {\n\t return true;\n\t }\n\t }\n\t for (var _a = 0, disableDays_1 = disableDays; _a < disableDays_1.length; _a++) {\n\t var d = disableDays_1[_a];\n\t if (d.year === date.year && d.month === date.month && d.day === date.day) {\n\t return true;\n\t }\n\t }\n\t for (var _b = 0, disableDateRanges_1 = disableDateRanges; _b < disableDateRanges_1.length; _b++) {\n\t var d = disableDateRanges_1[_b];\n\t if (this.isInitializedDate(d.begin) && this.isInitializedDate(d.end) && dateMs >= this.getTimeInMilliseconds(d.begin) && dateMs <= this.getTimeInMilliseconds(d.end)) {\n\t return true;\n\t }\n\t }\n\t return false;\n\t };\n\t UtilService.prototype.isMarkedDate = function (date, markedDates, markWeekends) {\n\t for (var _i = 0, markedDates_1 = markedDates; _i < markedDates_1.length; _i++) {\n\t var md = markedDates_1[_i];\n\t for (var _a = 0, _b = md.dates; _a < _b.length; _a++) {\n\t var d = _b[_a];\n\t if (d.year === date.year && d.month === date.month && d.day === date.day) {\n\t return { marked: true, color: md.color };\n\t }\n\t }\n\t }\n\t if (markWeekends && markWeekends.marked) {\n\t var dayNbr = this.getDayNumber(date);\n\t if (dayNbr === 0 || dayNbr === 6) {\n\t return { marked: true, color: markWeekends.color };\n\t }\n\t }\n\t return { marked: false, color: \"\" };\n\t };\n\t UtilService.prototype.isHighlightedDate = function (date, sunHighlight, satHighlight, highlightDates) {\n\t var dayNbr = this.getDayNumber(date);\n\t if (sunHighlight && dayNbr === 0 || satHighlight && dayNbr === 6) {\n\t return true;\n\t }\n\t for (var _i = 0, highlightDates_1 = highlightDates; _i < highlightDates_1.length; _i++) {\n\t var d = highlightDates_1[_i];\n\t if (d.year === date.year && d.month === date.month && d.day === date.day) {\n\t return true;\n\t }\n\t }\n\t return false;\n\t };\n\t UtilService.prototype.getWeekNumber = function (date) {\n\t var d = new Date(date.year, date.month - 1, date.day, 0, 0, 0, 0);\n\t d.setDate(d.getDate() + (d.getDay() === 0 ? -3 : 4 - d.getDay()));\n\t return Math.round(((d.getTime() - new Date(d.getFullYear(), 0, 4).getTime()) / 86400000) / 7) + 1;\n\t };\n\t UtilService.prototype.isMonthDisabledByDisableUntil = function (date, disableUntil) {\n\t return this.isInitializedDate(disableUntil) && this.getTimeInMilliseconds(date) <= this.getTimeInMilliseconds(disableUntil);\n\t };\n\t UtilService.prototype.isMonthDisabledByDisableSince = function (date, disableSince) {\n\t return this.isInitializedDate(disableSince) && this.getTimeInMilliseconds(date) >= this.getTimeInMilliseconds(disableSince);\n\t };\n\t UtilService.prototype.isInitializedDate = function (date) {\n\t return date.year !== 0 && date.month !== 0 && date.day !== 0;\n\t };\n\t UtilService.prototype.isSameDate = function (d1, d2) {\n\t return d1.year === d2.year && d1.month === d2.month && d1.day === d2.day;\n\t };\n\t UtilService.prototype.getTimeInMilliseconds = function (date) {\n\t return new Date(date.year, date.month - 1, date.day, 0, 0, 0, 0).getTime();\n\t };\n\t UtilService.prototype.getDayNumber = function (date) {\n\t var d = new Date(date.year, date.month - 1, date.day, 0, 0, 0, 0);\n\t return d.getDay();\n\t };\n\t UtilService.decorators = [\n\t { type: _angular_core.Injectable },\n\t ];\n\t UtilService.ctorParameters = [];\n\t return UtilService;\n\t}());\n\t\n\tvar FocusDirective = (function () {\n\t function FocusDirective(el, renderer) {\n\t this.el = el;\n\t this.renderer = renderer;\n\t }\n\t FocusDirective.prototype.ngAfterViewInit = function () {\n\t if (this.value === \"0\") {\n\t return;\n\t }\n\t this.renderer.invokeElementMethod(this.el.nativeElement, \"focus\", []);\n\t };\n\t FocusDirective.decorators = [\n\t { type: _angular_core.Directive, args: [{\n\t selector: \"[mydpfocus]\"\n\t },] },\n\t ];\n\t FocusDirective.ctorParameters = [\n\t { type: _angular_core.ElementRef, },\n\t { type: _angular_core.Renderer, },\n\t ];\n\t FocusDirective.propDecorators = {\n\t 'value': [{ type: _angular_core.Input, args: [\"mydpfocus\",] },],\n\t };\n\t return FocusDirective;\n\t}());\n\t\n\tvar MYDP_VALUE_ACCESSOR = {\n\t provide: _angular_forms.NG_VALUE_ACCESSOR,\n\t useExisting: _angular_core.forwardRef(function () { return MyDatePicker; }),\n\t multi: true\n\t};\n\tvar CalToggle;\n\t(function (CalToggle) {\n\t CalToggle[CalToggle[\"Open\"] = 1] = \"Open\";\n\t CalToggle[CalToggle[\"CloseByDateSel\"] = 2] = \"CloseByDateSel\";\n\t CalToggle[CalToggle[\"CloseByCalBtn\"] = 3] = \"CloseByCalBtn\";\n\t CalToggle[CalToggle[\"CloseByOutClick\"] = 4] = \"CloseByOutClick\";\n\t CalToggle[CalToggle[\"CloseByEsc\"] = 5] = \"CloseByEsc\";\n\t})(CalToggle || (CalToggle = {}));\n\tvar Year;\n\t(function (Year) {\n\t Year[Year[\"min\"] = 1100] = \"min\";\n\t Year[Year[\"max\"] = 9100] = \"max\";\n\t})(Year || (Year = {}));\n\tvar InputFocusBlur;\n\t(function (InputFocusBlur) {\n\t InputFocusBlur[InputFocusBlur[\"focus\"] = 1] = \"focus\";\n\t InputFocusBlur[InputFocusBlur[\"blur\"] = 2] = \"blur\";\n\t})(InputFocusBlur || (InputFocusBlur = {}));\n\tvar KeyCode;\n\t(function (KeyCode) {\n\t KeyCode[KeyCode[\"enter\"] = 13] = \"enter\";\n\t KeyCode[KeyCode[\"esc\"] = 27] = \"esc\";\n\t KeyCode[KeyCode[\"space\"] = 32] = \"space\";\n\t})(KeyCode || (KeyCode = {}));\n\tvar MonthId;\n\t(function (MonthId) {\n\t MonthId[MonthId[\"prev\"] = 1] = \"prev\";\n\t MonthId[MonthId[\"curr\"] = 2] = \"curr\";\n\t MonthId[MonthId[\"next\"] = 3] = \"next\";\n\t})(MonthId || (MonthId = {}));\n\tvar MM$1 = \"mm\";\n\tvar MMM$1 = \"mmm\";\n\tvar DD$1 = \"dd\";\n\tvar YYYY$1 = \"yyyy\";\n\tvar MyDatePicker = (function () {\n\t function MyDatePicker(elem, renderer, cdr, localeService, utilService) {\n\t var _this = this;\n\t this.elem = elem;\n\t this.renderer = renderer;\n\t this.cdr = cdr;\n\t this.localeService = localeService;\n\t this.utilService = utilService;\n\t this.dateChanged = new _angular_core.EventEmitter();\n\t this.inputFieldChanged = new _angular_core.EventEmitter();\n\t this.calendarViewChanged = new _angular_core.EventEmitter();\n\t this.calendarToggle = new _angular_core.EventEmitter();\n\t this.inputFocusBlur = new _angular_core.EventEmitter();\n\t this.onChangeCb = function () { };\n\t this.onTouchedCb = function () { };\n\t this.showSelector = false;\n\t this.visibleMonth = { monthTxt: \"\", monthNbr: 0, year: 0 };\n\t this.selectedMonth = { monthTxt: \"\", monthNbr: 0, year: 0 };\n\t this.selectedDate = { year: 0, month: 0, day: 0 };\n\t this.weekDays = [];\n\t this.dates = [];\n\t this.months = [];\n\t this.years = [];\n\t this.selectionDayTxt = \"\";\n\t this.invalidDate = false;\n\t this.disableTodayBtn = false;\n\t this.dayIdx = 0;\n\t this.weekDayOpts = [\"su\", \"mo\", \"tu\", \"we\", \"th\", \"fr\", \"sa\"];\n\t this.selectMonth = false;\n\t this.selectYear = false;\n\t this.prevMonthDisabled = false;\n\t this.nextMonthDisabled = false;\n\t this.prevYearDisabled = false;\n\t this.nextYearDisabled = false;\n\t this.prevYearsDisabled = false;\n\t this.nextYearsDisabled = false;\n\t this.prevMonthId = MonthId.prev;\n\t this.currMonthId = MonthId.curr;\n\t this.nextMonthId = MonthId.next;\n\t this.opts = {\n\t dayLabels: {},\n\t monthLabels: {},\n\t dateFormat: \"\",\n\t showTodayBtn: true,\n\t todayBtnTxt: \"\",\n\t firstDayOfWeek: \"\",\n\t satHighlight: false,\n\t sunHighlight: true,\n\t highlightDates: [],\n\t markCurrentDay: true,\n\t markCurrentMonth: true,\n\t markCurrentYear: true,\n\t disableUntil: { year: 0, month: 0, day: 0 },\n\t disableSince: { year: 0, month: 0, day: 0 },\n\t disableDays: [],\n\t enableDays: [],\n\t markDates: [],\n\t markWeekends: {},\n\t disableDateRanges: [],\n\t disableWeekends: false,\n\t showWeekNumbers: false,\n\t height: \"34px\",\n\t width: \"100%\",\n\t selectionTxtFontSize: \"14px\",\n\t selectorHeight: \"232px\",\n\t selectorWidth: \"252px\",\n\t allowDeselectDate: true,\n\t inline: false,\n\t showClearDateBtn: true,\n\t showDecreaseDateBtn: false,\n\t showIncreaseDateBtn: false,\n\t alignSelectorRight: false,\n\t openSelectorTopOfInput: false,\n\t indicateInvalidDate: true,\n\t editableDateField: true,\n\t monthSelector: true,\n\t yearSelector: true,\n\t disableHeaderButtons: true,\n\t minYear: Year.min,\n\t maxYear: Year.max,\n\t componentDisabled: false,\n\t showSelectorArrow: true,\n\t showInputField: true,\n\t openSelectorOnInputClick: false,\n\t ariaLabelInputField: \"Date input field\",\n\t ariaLabelClearDate: \"Clear Date\",\n\t ariaLabelDecreaseDate: \"Decrease Date\",\n\t ariaLabelIncreaseDate: \"Increase Date\",\n\t ariaLabelOpenCalendar: \"Open Calendar\",\n\t ariaLabelPrevMonth: \"Previous Month\",\n\t ariaLabelNextMonth: \"Next Month\",\n\t ariaLabelPrevYear: \"Previous Year\",\n\t ariaLabelNextYear: \"Next Year\"\n\t };\n\t this.setLocaleOptions();\n\t renderer.listenGlobal(\"document\", \"click\", function (event) {\n\t if (_this.showSelector && event.target && _this.elem.nativeElement !== event.target && !_this.elem.nativeElement.contains(event.target)) {\n\t _this.showSelector = false;\n\t _this.calendarToggle.emit(CalToggle.CloseByOutClick);\n\t }\n\t if (_this.opts.monthSelector || _this.opts.yearSelector) {\n\t _this.resetMonthYearSelect();\n\t }\n\t });\n\t }\n\t MyDatePicker.prototype.setLocaleOptions = function () {\n\t var _this = this;\n\t var opts = this.localeService.getLocaleOptions(this.locale);\n\t Object.keys(opts).forEach(function (k) {\n\t _this.opts[k] = opts[k];\n\t });\n\t };\n\t MyDatePicker.prototype.setOptions = function () {\n\t var _this = this;\n\t if (this.options !== undefined) {\n\t Object.keys(this.options).forEach(function (k) {\n\t _this.opts[k] = _this.options[k];\n\t });\n\t }\n\t if (this.opts.minYear < Year.min) {\n\t this.opts.minYear = Year.min;\n\t }\n\t if (this.opts.maxYear > Year.max) {\n\t this.opts.maxYear = Year.max;\n\t }\n\t if (this.disabled !== undefined) {\n\t this.opts.componentDisabled = this.disabled;\n\t }\n\t };\n\t MyDatePicker.prototype.getSelectorTopPosition = function () {\n\t if (this.opts.openSelectorTopOfInput) {\n\t return this.elem.nativeElement.children[0].offsetHeight + \"px\";\n\t }\n\t };\n\t MyDatePicker.prototype.resetMonthYearSelect = function () {\n\t this.selectMonth = false;\n\t this.selectYear = false;\n\t };\n\t MyDatePicker.prototype.onSelectMonthClicked = function (event) {\n\t event.stopPropagation();\n\t this.selectMonth = !this.selectMonth;\n\t this.selectYear = false;\n\t this.cdr.detectChanges();\n\t if (this.selectMonth) {\n\t var today = this.getToday();\n\t this.months.length = 0;\n\t for (var i = 1; i <= 12; i += 3) {\n\t var row = [];\n\t for (var j = i; j < i + 3; j++) {\n\t var disabled = this.utilService.isMonthDisabledByDisableUntil({ year: this.visibleMonth.year, month: j, day: this.daysInMonth(j, this.visibleMonth.year) }, this.opts.disableUntil)\n\t || this.utilService.isMonthDisabledByDisableSince({ year: this.visibleMonth.year, month: j, day: 1 }, this.opts.disableSince);\n\t row.push({ nbr: j, name: this.opts.monthLabels[j], currMonth: j === today.month && this.visibleMonth.year === today.year, selected: j === this.visibleMonth.monthNbr, disabled: disabled });\n\t }\n\t this.months.push(row);\n\t }\n\t }\n\t };\n\t MyDatePicker.prototype.onMonthCellClicked = function (cell) {\n\t var mc = cell.nbr !== this.visibleMonth.monthNbr;\n\t this.visibleMonth = { monthTxt: this.monthText(cell.nbr), monthNbr: cell.nbr, year: this.visibleMonth.year };\n\t this.generateCalendar(cell.nbr, this.visibleMonth.year, mc);\n\t this.selectMonth = false;\n\t this.selectorEl.nativeElement.focus();\n\t };\n\t MyDatePicker.prototype.onMonthCellKeyDown = function (event, cell) {\n\t if ((event.keyCode === KeyCode.enter || event.keyCode === KeyCode.space) && !cell.disabled) {\n\t event.preventDefault();\n\t this.onMonthCellClicked(cell);\n\t }\n\t };\n\t MyDatePicker.prototype.onSelectYearClicked = function (event) {\n\t event.stopPropagation();\n\t this.selectYear = !this.selectYear;\n\t this.selectMonth = false;\n\t this.cdr.detectChanges();\n\t if (this.selectYear) {\n\t this.generateYears(this.visibleMonth.year);\n\t }\n\t };\n\t MyDatePicker.prototype.onYearCellClicked = function (cell) {\n\t var yc = cell.year !== this.visibleMonth.year;\n\t this.visibleMonth = { monthTxt: this.visibleMonth.monthTxt, monthNbr: this.visibleMonth.monthNbr, year: cell.year };\n\t this.generateCalendar(this.visibleMonth.monthNbr, cell.year, yc);\n\t this.selectYear = false;\n\t this.selectorEl.nativeElement.focus();\n\t };\n\t MyDatePicker.prototype.onYearCellKeyDown = function (event, cell) {\n\t if ((event.keyCode === KeyCode.enter || event.keyCode === KeyCode.space) && !cell.disabled) {\n\t event.preventDefault();\n\t this.onYearCellClicked(cell);\n\t }\n\t };\n\t MyDatePicker.prototype.onPrevYears = function (event, year) {\n\t event.stopPropagation();\n\t this.generateYears(year - 25);\n\t };\n\t MyDatePicker.prototype.onNextYears = function (event, year) {\n\t event.stopPropagation();\n\t this.generateYears(year + 25);\n\t };\n\t MyDatePicker.prototype.generateYears = function (year) {\n\t this.years.length = 0;\n\t var today = this.getToday();\n\t for (var i = year; i <= 20 + year; i += 5) {\n\t var row = [];\n\t for (var j = i; j < i + 5; j++) {\n\t var disabled = this.utilService.isMonthDisabledByDisableUntil({ year: j, month: this.visibleMonth.monthNbr, day: this.daysInMonth(this.visibleMonth.monthNbr, j) }, this.opts.disableUntil)\n\t || this.utilService.isMonthDisabledByDisableSince({ year: j, month: this.visibleMonth.monthNbr, day: 1 }, this.opts.disableSince);\n\t var minMax = j < this.opts.minYear || j > this.opts.maxYear;\n\t row.push({ year: j, currYear: j === today.year, selected: j === this.visibleMonth.year, disabled: disabled || minMax });\n\t }\n\t this.years.push(row);\n\t }\n\t this.prevYearsDisabled = this.years[0][0].year <= this.opts.minYear || this.utilService.isMonthDisabledByDisableUntil({ year: this.years[0][0].year - 1, month: this.visibleMonth.monthNbr, day: this.daysInMonth(this.visibleMonth.monthNbr, this.years[0][0].year - 1) }, this.opts.disableUntil);\n\t this.nextYearsDisabled = this.years[4][4].year >= this.opts.maxYear || this.utilService.isMonthDisabledByDisableSince({ year: this.years[4][4].year + 1, month: this.visibleMonth.monthNbr, day: 1 }, this.opts.disableSince);\n\t };\n\t MyDatePicker.prototype.onUserDateInput = function (value) {\n\t this.invalidDate = false;\n\t if (value.length === 0) {\n\t this.clearDate();\n\t }\n\t else {\n\t var date = this.utilService.isDateValid(value, this.opts.dateFormat, this.opts.minYear, this.opts.maxYear, this.opts.disableUntil, this.opts.disableSince, this.opts.disableWeekends, this.opts.disableDays, this.opts.disableDateRanges, this.opts.monthLabels, this.opts.enableDays);\n\t if (date.day !== 0 && date.month !== 0 && date.year !== 0) {\n\t this.selectDate(date, CalToggle.CloseByDateSel);\n\t }\n\t else {\n\t this.invalidDate = true;\n\t }\n\t }\n\t if (this.invalidDate) {\n\t this.inputFieldChanged.emit({ value: value, dateFormat: this.opts.dateFormat, valid: !(value.length === 0 || this.invalidDate) });\n\t this.onChangeCb(null);\n\t this.onTouchedCb();\n\t }\n\t };\n\t MyDatePicker.prototype.onFocusInput = function (event) {\n\t this.inputFocusBlur.emit({ reason: InputFocusBlur.focus, value: event.target.value });\n\t };\n\t MyDatePicker.prototype.onBlurInput = function (event) {\n\t this.selectionDayTxt = event.target.value;\n\t this.onTouchedCb();\n\t this.inputFocusBlur.emit({ reason: InputFocusBlur.blur, value: event.target.value });\n\t };\n\t MyDatePicker.prototype.onCloseSelector = function (event) {\n\t if (event.keyCode === KeyCode.esc && this.showSelector && !this.opts.inline) {\n\t this.calendarToggle.emit(CalToggle.CloseByEsc);\n\t this.showSelector = false;\n\t }\n\t };\n\t MyDatePicker.prototype.isTodayDisabled = function () {\n\t this.disableTodayBtn = this.utilService.isDisabledDay(this.getToday(), this.opts.disableUntil, this.opts.disableSince, this.opts.disableWeekends, this.opts.disableDays, this.opts.disableDateRanges, this.opts.enableDays);\n\t };\n\t MyDatePicker.prototype.parseOptions = function () {\n\t if (this.locale) {\n\t this.setLocaleOptions();\n\t }\n\t this.setOptions();\n\t this.isTodayDisabled();\n\t this.dayIdx = this.weekDayOpts.indexOf(this.opts.firstDayOfWeek);\n\t if (this.dayIdx !== -1) {\n\t var idx = this.dayIdx;\n\t for (var i = 0; i < this.weekDayOpts.length; i++) {\n\t this.weekDays.push(this.opts.dayLabels[this.weekDayOpts[idx]]);\n\t idx = this.weekDayOpts[idx] === \"sa\" ? 0 : idx + 1;\n\t }\n\t }\n\t };\n\t MyDatePicker.prototype.writeValue = function (value) {\n\t if (value && (value[\"date\"] || value[\"jsdate\"])) {\n\t this.selectedDate = value[\"date\"] ? this.parseSelectedDate(value[\"date\"]) : this.parseSelectedDate(this.jsDateToMyDate(value[\"jsdate\"]));\n\t var cvc = this.visibleMonth.year !== this.selectedDate.year || this.visibleMonth.monthNbr !== this.selectedDate.month;\n\t if (cvc) {\n\t this.visibleMonth = { monthTxt: this.opts.monthLabels[this.selectedDate.month], monthNbr: this.selectedDate.month, year: this.selectedDate.year };\n\t this.generateCalendar(this.selectedDate.month, this.selectedDate.year, cvc);\n\t }\n\t if (!this.opts.inline) {\n\t this.updateDateValue(this.selectedDate, false);\n\t }\n\t }\n\t else if (value === null || value === \"\") {\n\t if (!this.opts.inline) {\n\t this.updateDateValue({ year: 0, month: 0, day: 0 }, true);\n\t }\n\t else {\n\t this.selectedDate = { year: 0, month: 0, day: 0 };\n\t }\n\t }\n\t };\n\t MyDatePicker.prototype.setDisabledState = function (disabled) {\n\t this.opts.componentDisabled = disabled;\n\t };\n\t MyDatePicker.prototype.registerOnChange = function (fn) {\n\t this.onChangeCb = fn;\n\t };\n\t MyDatePicker.prototype.registerOnTouched = function (fn) {\n\t this.onTouchedCb = fn;\n\t };\n\t MyDatePicker.prototype.ngOnChanges = function (changes) {\n\t var _this = this;\n\t if (changes.hasOwnProperty(\"selector\") && changes[\"selector\"].currentValue > 0) {\n\t this.openBtnClicked();\n\t }\n\t if (changes.hasOwnProperty(\"placeholder\")) {\n\t this.placeholder = changes[\"placeholder\"].currentValue;\n\t }\n\t if (changes.hasOwnProperty(\"locale\")) {\n\t this.locale = changes[\"locale\"].currentValue;\n\t }\n\t if (changes.hasOwnProperty(\"disabled\")) {\n\t this.disabled = changes[\"disabled\"].currentValue;\n\t }\n\t if (changes.hasOwnProperty(\"options\")) {\n\t this.options = changes[\"options\"].currentValue;\n\t }\n\t this.weekDays.length = 0;\n\t this.parseOptions();\n\t if (changes.hasOwnProperty(\"defaultMonth\")) {\n\t var dm = changes[\"defaultMonth\"].currentValue;\n\t if (dm !== null && dm !== undefined && dm !== \"\") {\n\t this.selectedMonth = this.parseSelectedMonth(dm);\n\t }\n\t else {\n\t this.selectedMonth = { monthTxt: \"\", monthNbr: 0, year: 0 };\n\t }\n\t }\n\t if (changes.hasOwnProperty(\"selDate\")) {\n\t var sd = changes[\"selDate\"];\n\t if (sd.currentValue !== null && sd.currentValue !== undefined && sd.currentValue !== \"\" && Object.keys(sd.currentValue).length !== 0) {\n\t this.selectedDate = this.parseSelectedDate(sd.currentValue);\n\t setTimeout(function () {\n\t _this.onChangeCb(_this.getDateModel(_this.selectedDate));\n\t });\n\t }\n\t else {\n\t if (!sd.isFirstChange()) {\n\t this.clearDate();\n\t }\n\t }\n\t }\n\t if (this.visibleMonth.year === 0 && this.visibleMonth.monthNbr === 0) {\n\t this.setVisibleMonth();\n\t }\n\t else {\n\t this.generateCalendar(this.visibleMonth.monthNbr, this.visibleMonth.year, false);\n\t }\n\t };\n\t MyDatePicker.prototype.removeBtnClicked = function () {\n\t this.clearDate();\n\t if (this.showSelector) {\n\t this.calendarToggle.emit(CalToggle.CloseByCalBtn);\n\t }\n\t this.showSelector = false;\n\t };\n\t MyDatePicker.prototype.onDecreaseBtnClicked = function () {\n\t this.decreaseIncreaseDate(true);\n\t };\n\t MyDatePicker.prototype.onIncreaseBtnClicked = function () {\n\t this.decreaseIncreaseDate(false);\n\t };\n\t MyDatePicker.prototype.openBtnClicked = function () {\n\t this.showSelector = !this.showSelector;\n\t this.cdr.detectChanges();\n\t if (this.showSelector) {\n\t this.setVisibleMonth();\n\t this.calendarToggle.emit(CalToggle.Open);\n\t }\n\t else {\n\t this.calendarToggle.emit(CalToggle.CloseByCalBtn);\n\t }\n\t };\n\t MyDatePicker.prototype.setVisibleMonth = function () {\n\t var y = 0, m = 0;\n\t if (!this.utilService.isInitializedDate(this.selectedDate)) {\n\t if (this.selectedMonth.year === 0 && this.selectedMonth.monthNbr === 0) {\n\t var today = this.getToday();\n\t y = today.year;\n\t m = today.month;\n\t }\n\t else {\n\t y = this.selectedMonth.year;\n\t m = this.selectedMonth.monthNbr;\n\t }\n\t }\n\t else {\n\t y = this.selectedDate.year;\n\t m = this.selectedDate.month;\n\t }\n\t this.visibleMonth = { monthTxt: this.opts.monthLabels[m], monthNbr: m, year: y };\n\t this.generateCalendar(m, y, true);\n\t };\n\t MyDatePicker.prototype.onPrevMonth = function () {\n\t var d = this.getDate(this.visibleMonth.year, this.visibleMonth.monthNbr, 1);\n\t d.setMonth(d.getMonth() - 1);\n\t var y = d.getFullYear();\n\t var m = d.getMonth() + 1;\n\t this.visibleMonth = { monthTxt: this.monthText(m), monthNbr: m, year: y };\n\t this.generateCalendar(m, y, true);\n\t };\n\t MyDatePicker.prototype.onNextMonth = function () {\n\t var d = this.getDate(this.visibleMonth.year, this.visibleMonth.monthNbr, 1);\n\t d.setMonth(d.getMonth() + 1);\n\t var y = d.getFullYear();\n\t var m = d.getMonth() + 1;\n\t this.visibleMonth = { monthTxt: this.monthText(m), monthNbr: m, year: y };\n\t this.generateCalendar(m, y, true);\n\t };\n\t MyDatePicker.prototype.onPrevYear = function () {\n\t this.visibleMonth.year--;\n\t this.generateCalendar(this.visibleMonth.monthNbr, this.visibleMonth.year, true);\n\t };\n\t MyDatePicker.prototype.onNextYear = function () {\n\t this.visibleMonth.year++;\n\t this.generateCalendar(this.visibleMonth.monthNbr, this.visibleMonth.year, true);\n\t };\n\t MyDatePicker.prototype.onTodayClicked = function () {\n\t var today = this.getToday();\n\t this.selectDate(today, CalToggle.CloseByDateSel);\n\t if (this.opts.inline && today.year !== this.visibleMonth.year || today.month !== this.visibleMonth.monthNbr) {\n\t this.visibleMonth = { monthTxt: this.opts.monthLabels[today.month], monthNbr: today.month, year: today.year };\n\t this.generateCalendar(today.month, today.year, true);\n\t }\n\t };\n\t MyDatePicker.prototype.onCellClicked = function (cell) {\n\t if (cell.cmo === this.prevMonthId) {\n\t this.onPrevMonth();\n\t }\n\t else if (cell.cmo === this.currMonthId) {\n\t if (this.opts.allowDeselectDate && this.utilService.isSameDate(cell.dateObj, this.selectedDate)) {\n\t this.clearDate();\n\t }\n\t else {\n\t this.selectDate(cell.dateObj, CalToggle.CloseByDateSel);\n\t }\n\t }\n\t else if (cell.cmo === this.nextMonthId) {\n\t this.onNextMonth();\n\t }\n\t this.resetMonthYearSelect();\n\t };\n\t MyDatePicker.prototype.onCellKeyDown = function (event, cell) {\n\t if ((event.keyCode === KeyCode.enter || event.keyCode === KeyCode.space) && !cell.disabled) {\n\t event.preventDefault();\n\t this.onCellClicked(cell);\n\t }\n\t };\n\t MyDatePicker.prototype.clearDate = function () {\n\t var date = { year: 0, month: 0, day: 0 };\n\t this.dateChanged.emit({ date: date, jsdate: null, formatted: \"\", epoc: 0 });\n\t this.onChangeCb(null);\n\t this.onTouchedCb();\n\t this.updateDateValue(date, true);\n\t };\n\t MyDatePicker.prototype.decreaseIncreaseDate = function (decrease) {\n\t var date = this.selectedDate;\n\t if (this.utilService.isInitializedDate(date)) {\n\t var d = this.getDate(date.year, date.month, date.day);\n\t d.setDate(decrease ? d.getDate() - 1 : d.getDate() + 1);\n\t date = { year: d.getFullYear(), month: d.getMonth() + 1, day: d.getDate() };\n\t }\n\t else {\n\t date = this.getToday();\n\t }\n\t this.selectDate(date, CalToggle.CloseByCalBtn);\n\t };\n\t MyDatePicker.prototype.selectDate = function (date, closeReason) {\n\t var dateModel = this.getDateModel(date);\n\t this.dateChanged.emit(dateModel);\n\t this.onChangeCb(dateModel);\n\t this.onTouchedCb();\n\t this.updateDateValue(date, false);\n\t if (this.showSelector) {\n\t this.calendarToggle.emit(closeReason);\n\t }\n\t this.showSelector = false;\n\t };\n\t MyDatePicker.prototype.updateDateValue = function (date, clear) {\n\t this.selectedDate = date;\n\t this.selectionDayTxt = clear ? \"\" : this.formatDate(date);\n\t this.inputFieldChanged.emit({ value: this.selectionDayTxt, dateFormat: this.opts.dateFormat, valid: !clear });\n\t this.invalidDate = false;\n\t };\n\t MyDatePicker.prototype.getDateModel = function (date) {\n\t return { date: date, jsdate: this.getDate(date.year, date.month, date.day), formatted: this.formatDate(date), epoc: Math.round(this.getTimeInMilliseconds(date) / 1000.0) };\n\t };\n\t MyDatePicker.prototype.preZero = function (val) {\n\t return parseInt(val) < 10 ? \"0\" + val : val;\n\t };\n\t MyDatePicker.prototype.formatDate = function (val) {\n\t var formatted = this.opts.dateFormat.replace(YYYY$1, val.year).replace(DD$1, this.preZero(val.day));\n\t return this.opts.dateFormat.indexOf(MMM$1) !== -1 ? formatted.replace(MMM$1, this.monthText(val.month)) : formatted.replace(MM$1, this.preZero(val.month));\n\t };\n\t MyDatePicker.prototype.monthText = function (m) {\n\t return this.opts.monthLabels[m];\n\t };\n\t MyDatePicker.prototype.monthStartIdx = function (y, m) {\n\t var d = new Date();\n\t d.setDate(1);\n\t d.setMonth(m - 1);\n\t d.setFullYear(y);\n\t var idx = d.getDay() + this.sundayIdx();\n\t return idx >= 7 ? idx - 7 : idx;\n\t };\n\t MyDatePicker.prototype.daysInMonth = function (m, y) {\n\t return new Date(y, m, 0).getDate();\n\t };\n\t MyDatePicker.prototype.daysInPrevMonth = function (m, y) {\n\t var d = this.getDate(y, m, 1);\n\t d.setMonth(d.getMonth() - 1);\n\t return this.daysInMonth(d.getMonth() + 1, d.getFullYear());\n\t };\n\t MyDatePicker.prototype.isCurrDay = function (d, m, y, cmo, today) {\n\t return d === today.day && m === today.month && y === today.year && cmo === this.currMonthId;\n\t };\n\t MyDatePicker.prototype.getToday = function () {\n\t var date = new Date();\n\t return { year: date.getFullYear(), month: date.getMonth() + 1, day: date.getDate() };\n\t };\n\t MyDatePicker.prototype.getTimeInMilliseconds = function (date) {\n\t return this.getDate(date.year, date.month, date.day).getTime();\n\t };\n\t MyDatePicker.prototype.getWeekday = function (date) {\n\t return this.weekDayOpts[this.utilService.getDayNumber(date)];\n\t };\n\t MyDatePicker.prototype.getDate = function (year, month, day) {\n\t return new Date(year, month - 1, day, 0, 0, 0, 0);\n\t };\n\t MyDatePicker.prototype.sundayIdx = function () {\n\t return this.dayIdx > 0 ? 7 - this.dayIdx : 0;\n\t };\n\t MyDatePicker.prototype.generateCalendar = function (m, y, notifyChange) {\n\t this.dates.length = 0;\n\t var today = this.getToday();\n\t var monthStart = this.monthStartIdx(y, m);\n\t var dInThisM = this.daysInMonth(m, y);\n\t var dInPrevM = this.daysInPrevMonth(m, y);\n\t var dayNbr = 1;\n\t var cmo = this.prevMonthId;\n\t for (var i = 1; i < 7; i++) {\n\t var week = [];\n\t if (i === 1) {\n\t var pm = dInPrevM - monthStart + 1;\n\t for (var j = pm; j <= dInPrevM; j++) {\n\t var date = { year: y, month: m - 1, day: j };\n\t week.push({ dateObj: date, cmo: cmo, currDay: this.isCurrDay(j, m, y, cmo, today),\n\t disabled: this.utilService.isDisabledDay(date, this.opts.disableUntil, this.opts.disableSince, this.opts.disableWeekends, this.opts.disableDays, this.opts.disableDateRanges, this.opts.enableDays),\n\t markedDate: this.utilService.isMarkedDate(date, this.opts.markDates, this.opts.markWeekends),\n\t highlight: this.utilService.isHighlightedDate(date, this.opts.sunHighlight, this.opts.satHighlight, this.opts.highlightDates) });\n\t }\n\t cmo = this.currMonthId;\n\t var daysLeft = 7 - week.length;\n\t for (var j = 0; j < daysLeft; j++) {\n\t var date = { year: y, month: m, day: dayNbr };\n\t week.push({ dateObj: date, cmo: cmo, currDay: this.isCurrDay(dayNbr, m, y, cmo, today),\n\t disabled: this.utilService.isDisabledDay(date, this.opts.disableUntil, this.opts.disableSince, this.opts.disableWeekends, this.opts.disableDays, this.opts.disableDateRanges, this.opts.enableDays),\n\t markedDate: this.utilService.isMarkedDate(date, this.opts.markDates, this.opts.markWeekends),\n\t highlight: this.utilService.isHighlightedDate(date, this.opts.sunHighlight, this.opts.satHighlight, this.opts.highlightDates) });\n\t dayNbr++;\n\t }\n\t }\n\t else {\n\t for (var j = 1; j < 8; j++) {\n\t if (dayNbr > dInThisM) {\n\t dayNbr = 1;\n\t cmo = this.nextMonthId;\n\t }\n\t var date = { year: y, month: cmo === this.currMonthId ? m : m + 1, day: dayNbr };\n\t week.push({ dateObj: date, cmo: cmo, currDay: this.isCurrDay(dayNbr, m, y, cmo, today),\n\t disabled: this.utilService.isDisabledDay(date, this.opts.disableUntil, this.opts.disableSince, this.opts.disableWeekends, this.opts.disableDays, this.opts.disableDateRanges, this.opts.enableDays),\n\t markedDate: this.utilService.isMarkedDate(date, this.opts.markDates, this.opts.markWeekends),\n\t highlight: this.utilService.isHighlightedDate(date, this.opts.sunHighlight, this.opts.satHighlight, this.opts.highlightDates) });\n\t dayNbr++;\n\t }\n\t }\n\t var weekNbr = this.opts.showWeekNumbers && this.opts.firstDayOfWeek === \"mo\" ? this.utilService.getWeekNumber(week[0].dateObj) : 0;\n\t this.dates.push({ week: week, weekNbr: weekNbr });\n\t }\n\t this.setHeaderBtnDisabledState(m, y);\n\t if (notifyChange) {\n\t this.calendarViewChanged.emit({ year: y, month: m, first: { number: 1, weekday: this.getWeekday({ year: y, month: m, day: 1 }) }, last: { number: dInThisM, weekday: this.getWeekday({ year: y, month: m, day: dInThisM }) } });\n\t }\n\t };\n\t MyDatePicker.prototype.parseSelectedDate = function (selDate) {\n\t var date = { day: 0, month: 0, year: 0 };\n\t if (typeof selDate === \"string\") {\n\t var sd = selDate;\n\t var df = this.opts.dateFormat;\n\t date.month = df.indexOf(MMM$1) !== -1\n\t ? this.utilService.parseDatePartMonthName(df, sd, MMM$1, this.opts.monthLabels)\n\t : this.utilService.parseDatePartNumber(df, sd, MM$1);\n\t if (df.indexOf(MMM$1) !== -1 && this.opts.monthLabels[date.month]) {\n\t df = this.utilService.changeDateFormat(df, this.opts.monthLabels[date.month].length);\n\t }\n\t date.day = this.utilService.parseDatePartNumber(df, sd, DD$1);\n\t date.year = this.utilService.parseDatePartNumber(df, sd, YYYY$1);\n\t }\n\t else if (typeof selDate === \"object\") {\n\t date = selDate;\n\t }\n\t this.selectionDayTxt = this.formatDate(date);\n\t return date;\n\t };\n\t MyDatePicker.prototype.jsDateToMyDate = function (date) {\n\t return { year: date.getFullYear(), month: date.getMonth() + 1, day: date.getDate() };\n\t };\n\t MyDatePicker.prototype.parseSelectedMonth = function (ms) {\n\t return this.utilService.parseDefaultMonth(ms);\n\t };\n\t MyDatePicker.prototype.setHeaderBtnDisabledState = function (m, y) {\n\t var dpm = false;\n\t var dpy = false;\n\t var dnm = false;\n\t var dny = false;\n\t if (this.opts.disableHeaderButtons) {\n\t dpm = this.utilService.isMonthDisabledByDisableUntil({ year: m === 1 ? y - 1 : y, month: m === 1 ? 12 : m - 1, day: this.daysInMonth(m === 1 ? 12 : m - 1, m === 1 ? y - 1 : y) }, this.opts.disableUntil);\n\t dpy = this.utilService.isMonthDisabledByDisableUntil({ year: y - 1, month: m, day: this.daysInMonth(m, y - 1) }, this.opts.disableUntil);\n\t dnm = this.utilService.isMonthDisabledByDisableSince({ year: m === 12 ? y + 1 : y, month: m === 12 ? 1 : m + 1, day: 1 }, this.opts.disableSince);\n\t dny = this.utilService.isMonthDisabledByDisableSince({ year: y + 1, month: m, day: 1 }, this.opts.disableSince);\n\t }\n\t this.prevMonthDisabled = m === 1 && y === this.opts.minYear || dpm;\n\t this.prevYearDisabled = y - 1 < this.opts.minYear || dpy;\n\t this.nextMonthDisabled = m === 12 && y === this.opts.maxYear || dnm;\n\t this.nextYearDisabled = y + 1 > this.opts.maxYear || dny;\n\t };\n\t MyDatePicker.decorators = [\n\t { type: _angular_core.Component, args: [{\n\t selector: \"my-date-picker\",\n\t exportAs: \"mydatepicker\",\n\t styles: [\".mydp .headertodaybtn,.mydp .monthcell,.mydp .selection,.mydp .weekdaytitle{overflow:hidden;white-space:nowrap}.mydp{line-height:1.1;display:inline-block;position:relative}.mydp *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:Arial,Helvetica,sans-serif;padding:0;margin:0}.mydp,.mydp .headertodaybtn,.mydp .selection,.mydp .selectiongroup,.mydp .selector{border-radius:4px}.mydp .header{border-radius:4px 4px 0 0}.mydp .caltable,.mydp .monthtable,.mydp .yeartable{border-radius:0 0 4px 4px}.mydp .caltable tbody tr:nth-child(6) td:first-child,.mydp .monthtable tbody tr:nth-child(4) td:first-child,.mydp .yeartable tbody tr:nth-child(7) td:first-child{border-bottom-left-radius:4px}.mydp .caltable tbody tr:nth-child(6) td:last-child,.mydp .monthtable tbody tr:nth-child(4) td:last-child,.mydp .yeartable tbody tr:nth-child(7) td:last-child{border-bottom-right-radius:4px}.mydp .btnpicker{border-radius:0 4px 4px 0}.mydp .btnleftborderradius{border-top-left-radius:4px;border-bottom-left-radius:4px}.mydp .selector{margin-top:2px;margin-left:-1px;position:absolute;padding:0;border:1px solid #CCC;z-index:100;animation:selectorfadein .1s}.mydp .selector:focus{border:1px solid #ADD8E6;outline:0}@keyframes selectorfadein{from{opacity:0}to{opacity:1}}.mydp .selectorarrow{background:#FAFAFA;margin-top:12px;padding:0}.mydp .selectorarrow:after,.mydp .selectorarrow:before{bottom:100%;border:solid transparent;content:\\\" \\\";height:0;width:0;position:absolute}.mydp .selectorarrow:after{border-color:rgba(250,250,250,0);border-bottom-color:#FAFAFA;border-width:10px;margin-left:-10px}.mydp .selectorarrow:before{border-color:rgba(204,204,204,0);border-bottom-color:#CCC;border-width:11px;margin-left:-11px}.mydp .selectorarrow:focus:before{border-bottom-color:#ADD8E6}.mydp .selectorarrowleft:after,.mydp .selectorarrowleft:before{left:24px}.mydp .selectorarrowright:after,.mydp .selectorarrowright:before{left:86%}.mydp .alignselectorright{right:-1px}.mydp .selectiongroup{position:relative;display:table;border:none;border-spacing:0;background-color:#FFF}.mydp .selection{width:100%;outline:0;background-color:#FFF;display:table-cell;position:absolute;text-overflow:ellipsis;padding-left:6px;border:none;color:#555}.mydp .invaliddate{background-color:#F1DEDE}.mydp ::-ms-clear{display:none}.mydp .headerbtncell,.mydp .selbtngroup{display:table-cell;vertical-align:middle}.mydp .selbtngroup{position:relative;white-space:nowrap;width:1%;font-size:0}.mydp .btnclear,.mydp .btndecrease,.mydp .btnincrease,.mydp .btnpicker{height:100%;width:26px;border:none;padding:0;outline:0;font:inherit;-moz-user-select:none}.mydp .btnleftborder{border-left:1px solid #CCC}.mydp .btnclearenabled,.mydp .btndecreaseenabled,.mydp .btnincreaseenabled,.mydp .btnpickerenabled,.mydp .headerbtnenabled,.mydp .headertodaybtnenabled,.mydp .yearchangebtnenabled{cursor:pointer}.mydp .btncleardisabled,.mydp .btndecreasedisabled,.mydp .btnincreasedisabled,.mydp .btnpickerdisabled,.mydp .headerbtndisabled,.mydp .headertodaybtndisabled,.mydp .selectiondisabled,.mydp .yearchangebtndisabled{cursor:not-allowed;opacity:.65}.mydp .selectiondisabled{background-color:#EEE}.mydp .btnclear,.mydp .btndecrease,.mydp .btnincrease,.mydp .btnpicker,.mydp .headertodaybtn{background:#FFF}.mydp .header{width:100%;height:30px;background-color:#FAFAFA}.mydp .header td{vertical-align:middle;border:none;line-height:0}.mydp .header td:nth-child(1){padding-left:4px}.mydp .header td:nth-child(2){text-align:center}.mydp .header td:nth-child(3){padding-right:4px}.mydp .caltable,.mydp .monthtable,.mydp .yeartable{table-layout:fixed;width:100%;height:calc(100% - 30px);background-color:#FFF;font-size:14px}.mydp .caltable,.mydp .daycell,.mydp .monthcell,.mydp .monthtable,.mydp .weekdaytitle,.mydp .yearcell,.mydp .yeartable{border-collapse:collapse;color:#036;line-height:1.1}.mydp .daycell,.mydp .monthcell,.mydp .weekdaytitle,.mydp .yearcell{padding:4px;text-align:center}.mydp .weekdaytitle{background-color:#DDD;font-size:11px;font-weight:400;vertical-align:middle;max-width:36px}.mydp .weekdaytitleweeknbr{width:20px;border-right:1px solid #BBB}.mydp .monthcell{background-color:#FAFAFA}.mydp .yearcell{background-color:#FAFAFA;width:20%}.mydp .daycell .datevalue{background-color:inherit;vertical-align:middle}.mydp .daycell .datevalue span{vertical-align:middle}.mydp .daycellweeknbr{font-size:10px;border-right:1px solid #CCC;cursor:default;color:#000}.mydp .inlinedp{position:relative;margin-top:-1px}.mydp .nextmonth,.mydp .prevmonth{color:#CCC}.mydp .disabled{cursor:default!important;color:#CCC!important;background:#FBEFEF!important}.mydp .highlight{color:#C30000}.mydp .dimday{opacity:.5}.mydp .currmonth{background-color:#F6F6F6;font-weight:400}.mydp .markdate{position:absolute;width:4px;height:4px;border-radius:4px}.mydp .markcurrday,.mydp .markcurrmonth,.mydp .markcurryear{text-decoration:underline}.mydp .selectedday .datevalue,.mydp .selectedmonth .monthvalue,.mydp .selectedyear .yearvalue{border:none;background-color:#8EBFFF;border-radius:2px}.mydp .headerbtncell{background-color:#FAFAFA}.mydp .yearchangebtncell{text-align:center;background-color:#FAFAFA}.mydp .headerbtn,.mydp .headerlabelbtn,.mydp .yearchangebtn{background:#FAFAFA;border:none;height:22px}.mydp .headerbtn{width:16px}.mydp .headerlabelbtn{font-size:14px;outline:0;cursor:default}.mydp,.mydp .headertodaybtn{border:1px solid #CCC}.mydp .btnclear,.mydp .btndecrease,.mydp .btnincrease,.mydp .btnpicker,.mydp .headerbtn,.mydp .headermonthtxt,.mydp .headertodaybtn,.mydp .headeryeartxt,.mydp .yearchangebtn{color:#000}.mydp .headertodaybtn{padding:0 4px;font-size:11px;height:22px;min-width:60px;max-width:84px}.mydp button::-moz-focus-inner{border:0}.mydp .headermonthtxt,.mydp .headeryeartxt{text-align:center;display:table-cell;vertical-align:middle;font-size:14px;height:26px;width:40px;max-width:40px;overflow:hidden;white-space:nowrap}.mydp .btnclear:focus,.mydp .btndecrease:focus,.mydp .btnincrease:focus,.mydp .btnpicker:focus,.mydp .headertodaybtn:focus{background:#ADD8E6}.mydp .headerbtn:focus,.mydp .monthlabel:focus,.mydp .yearchangebtn:focus,.mydp .yearlabel:focus{color:#ADD8E6;outline:0}.mydp .daycell:focus,.mydp .monthcell:focus,.mydp .yearcell:focus{outline:#CCC solid 1px}.mydp .icon-mydpcalendar,.mydp .icon-mydpremove{font-size:16px}.mydp .icon-mydpdown,.mydp .icon-mydpleft,.mydp .icon-mydpright,.mydp .icon-mydpup{color:#222;font-size:20px}.mydp .btndecrease .icon-mydpleft,.mydp .btnincrease .icon-mydpright{font-size:16px}.mydp .icon-mydptoday{color:#222;font-size:11px}.mydp table{display:table;border-spacing:0}.mydp table td{padding:0}.mydp table,.mydp td,.mydp th{border:none}.mydp .btnclearenabled:hover,.mydp .btndecreaseenabled:hover,.mydp .btnincreaseenabled:hover,.mydp .btnpickerenabled:hover,.mydp .headertodaybtnenabled:hover{background-color:#E6E6E6}.mydp .tablesingleday:hover,.mydp .tablesinglemonth:hover,.mydp .tablesingleyear:hover{background-color:#DDD}.mydp .daycell,.mydp .inputnoteditable,.mydp .monthcell,.mydp .monthlabel,.mydp .yearcell,.mydp .yearlabel{cursor:pointer}.mydp .headerbtnenabled:hover,.mydp .monthlabel:hover,.mydp .yearchangebtnenabled:hover,.mydp .yearlabel:hover{color:#777}@font-face{font-family:mydatepicker;src:url(data:application/octet-stream;base64,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) format('truetype');font-weight:400;font-style:normal}.mydp .mydpicon{font-family:mydatepicker;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.mydp .icon-mydpright:before{content:\\\"\\\\e800\\\"}.mydp .icon-mydpleft:before{content:\\\"\\\\e801\\\"}.mydp .icon-mydptoday:before{content:\\\"\\\\e802\\\"}.mydp .icon-mydpcalendar:before{content:\\\"\\\\e803\\\"}.mydp .icon-mydpup:before{content:\\\"\\\\e804\\\"}.mydp .icon-mydpdown:before{content:\\\"\\\\e805\\\"}.mydp .icon-mydpremove:before{content:\\\"\\\\e806\\\"}\"],\n\t template: \"
#{{d}}
{{w.weekNbr}}
{{d.dateObj.day}}
{{m.name}}
{{y.year}}
\",\n\t providers: [LocaleService, UtilService, MYDP_VALUE_ACCESSOR],\n\t encapsulation: _angular_core.ViewEncapsulation.None\n\t },] },\n\t ];\n\t MyDatePicker.ctorParameters = [\n\t { type: _angular_core.ElementRef, },\n\t { type: _angular_core.Renderer, },\n\t { type: _angular_core.ChangeDetectorRef, },\n\t { type: LocaleService, },\n\t { type: UtilService, },\n\t ];\n\t MyDatePicker.propDecorators = {\n\t 'options': [{ type: _angular_core.Input },],\n\t 'locale': [{ type: _angular_core.Input },],\n\t 'defaultMonth': [{ type: _angular_core.Input },],\n\t 'selDate': [{ type: _angular_core.Input },],\n\t 'placeholder': [{ type: _angular_core.Input },],\n\t 'selector': [{ type: _angular_core.Input },],\n\t 'disabled': [{ type: _angular_core.Input },],\n\t 'dateChanged': [{ type: _angular_core.Output },],\n\t 'inputFieldChanged': [{ type: _angular_core.Output },],\n\t 'calendarViewChanged': [{ type: _angular_core.Output },],\n\t 'calendarToggle': [{ type: _angular_core.Output },],\n\t 'inputFocusBlur': [{ type: _angular_core.Output },],\n\t 'selectorEl': [{ type: _angular_core.ViewChild, args: [\"selectorEl\",] },],\n\t };\n\t return MyDatePicker;\n\t}());\n\t\n\tvar MyDatePickerModule = (function () {\n\t function MyDatePickerModule() {\n\t }\n\t MyDatePickerModule.decorators = [\n\t { type: _angular_core.NgModule, args: [{\n\t imports: [_angular_common.CommonModule, _angular_forms.FormsModule],\n\t declarations: [MyDatePicker, FocusDirective],\n\t exports: [MyDatePicker, FocusDirective]\n\t },] },\n\t ];\n\t MyDatePickerModule.ctorParameters = [];\n\t return MyDatePickerModule;\n\t}());\n\t\n\texports.LocaleService = LocaleService;\n\texports.UtilService = UtilService;\n\texports.FocusDirective = FocusDirective;\n\texports.MYDP_VALUE_ACCESSOR = MYDP_VALUE_ACCESSOR;\n\texports.MyDatePicker = MyDatePicker;\n\texports.MyDatePickerModule = MyDatePickerModule;\n\t\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\t\n\t})));\n\t//# sourceMappingURL=mydatepicker.umd.js.map\n\n\n/***/ },\n/* 283 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar conversion_hub_service_1 = __webpack_require__(302);\r\n\tvar cloudview_hub_service_1 = __webpack_require__(305);\r\n\tvar ng2_toastr_1 = __webpack_require__(306);\r\n\tvar app_insights_service_1 = __webpack_require__(313);\r\n\t__webpack_require__(315);\r\n\t__webpack_require__(319);\r\n\t__webpack_require__(321);\r\n\t__webpack_require__(323);\r\n\tvar AppComponent = (function () {\r\n\t function AppComponent(router, auth, conversionHubService, cloudViewHubService, toastr, appInsightsService, vRef) {\r\n\t this.router = router;\r\n\t this.auth = auth;\r\n\t this.conversionHubService = conversionHubService;\r\n\t this.cloudViewHubService = cloudViewHubService;\r\n\t this.toastr = toastr;\r\n\t this.appInsightsService = appInsightsService;\r\n\t this.vRef = vRef;\r\n\t this.debugSignalRHub = true;\r\n\t this.Role = auth_service_1.Role;\r\n\t this.Permission = auth_service_1.Permission;\r\n\t this.toastr.setRootViewContainerRef(vRef);\r\n\t }\r\n\t AppComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.router.events.subscribe(function (val) {\r\n\t if (val instanceof router_1.NavigationEnd) {\r\n\t _this.closeSideNav();\r\n\t }\r\n\t _this.appInsightsService.logPageView();\r\n\t });\r\n\t this.loginSubscription = this.auth.onLoggedInEmitter()\r\n\t .subscribe(function (user) {\r\n\t _this.user = user;\r\n\t });\r\n\t this.logoutSubscription = this.auth.onLoggedOutEmitter()\r\n\t .subscribe(function (user) {\r\n\t _this.user = null;\r\n\t });\r\n\t this.subscribeToConversionHub(this.debugSignalRHub);\r\n\t };\r\n\t AppComponent.prototype.openNavMenu = function () {\r\n\t this.navMenuOpen = true;\r\n\t };\r\n\t AppComponent.prototype.closeNavMenu = function () {\r\n\t this.navMenuOpen = false;\r\n\t };\r\n\t AppComponent.prototype.account = function () {\r\n\t this.closeNavMenu();\r\n\t this.router.navigate(['/account']);\r\n\t };\r\n\t AppComponent.prototype.logout = function () {\r\n\t this.closeNavMenu();\r\n\t this.auth.logout();\r\n\t };\r\n\t AppComponent.prototype.closeSideNav = function () {\r\n\t this.sideNav.close();\r\n\t };\r\n\t AppComponent.prototype.ngOnDestroy = function () {\r\n\t this.loginSubscription.unsubscribe();\r\n\t this.logoutSubscription.unsubscribe();\r\n\t };\r\n\t AppComponent.prototype.subscribeToConversionHub = function (debug) {\r\n\t try {\r\n\t this.conversionHubService.start(debug).subscribe(null, function (error) { return console.log('Error on init: ' + error); });\r\n\t }\r\n\t catch (err) {\r\n\t console.log(\"Unable to connect to conversion hub\");\r\n\t }\r\n\t };\r\n\t AppComponent.prototype.browserNotSupportedMessage = function () {\r\n\t var isIE = false;\r\n\t var ua = window.navigator.userAgent;\r\n\t var msie = ua.indexOf('MSIE ');\r\n\t if (msie > 0) {\r\n\t isIE = true;\r\n\t }\r\n\t var trident = ua.indexOf('Trident/');\r\n\t if (trident > 0) {\r\n\t isIE = true;\r\n\t }\r\n\t var edge = ua.indexOf('Edge/');\r\n\t if (edge > 0) {\r\n\t isIE = true;\r\n\t }\r\n\t if (isIE) {\r\n\t return \"Your browser is not supported. To access this site, please use Google Chrome.\";\r\n\t }\r\n\t };\r\n\t __decorate([\r\n\t core_1.ViewChild(material_1.MdSidenav),\r\n\t __metadata(\"design:type\", material_1.MdSidenav)\r\n\t ], AppComponent.prototype, \"sideNav\", void 0);\r\n\t AppComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'upgrade-services',\r\n\t template: __webpack_require__(325),\r\n\t providers: [conversion_hub_service_1.ConversionHubService, cloudview_hub_service_1.CloudViewHubService, app_insights_service_1.AppInsightsService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [router_1.Router,\r\n\t auth_service_1.AuthService,\r\n\t conversion_hub_service_1.ConversionHubService,\r\n\t cloudview_hub_service_1.CloudViewHubService,\r\n\t ng2_toastr_1.ToastsManager,\r\n\t app_insights_service_1.AppInsightsService,\r\n\t core_1.ViewContainerRef])\r\n\t ], AppComponent);\r\n\t return AppComponent;\r\n\t}());\r\n\texports.AppComponent = AppComponent;\r\n\n\n/***/ },\n/* 284 */,\n/* 285 */,\n/* 286 */,\n/* 287 */,\n/* 288 */,\n/* 289 */,\n/* 290 */,\n/* 291 */,\n/* 292 */,\n/* 293 */,\n/* 294 */,\n/* 295 */,\n/* 296 */,\n/* 297 */,\n/* 298 */,\n/* 299 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar http_1 = __webpack_require__(57);\r\n\tvar common_1 = __webpack_require__(44);\r\n\tvar Observable_1 = __webpack_require__(4);\r\n\tvar angular2_jwt_1 = __webpack_require__(278);\r\n\tvar config_service_1 = __webpack_require__(300);\r\n\t__webpack_require__(301);\r\n\tvar CredentialsModel = (function () {\r\n\t function CredentialsModel() {\r\n\t }\r\n\t return CredentialsModel;\r\n\t}());\r\n\texports.CredentialsModel = CredentialsModel;\r\n\tvar AuthService = (function () {\r\n\t function AuthService(http, location, router) {\r\n\t this.http = http;\r\n\t this.location = location;\r\n\t this.router = router;\r\n\t this.serviceBase = new config_service_1.ConfigService().getApiHost();\r\n\t this.tokenEndpoint = this.serviceBase + '/connect/token';\r\n\t this.resource = this.serviceBase;\r\n\t this.scope = 'offline_access openid';\r\n\t this.onLogin = new core_1.EventEmitter();\r\n\t this.onLogout = new core_1.EventEmitter();\r\n\t this.onUnauthorized = new core_1.EventEmitter();\r\n\t this.jwtHelper = new angular2_jwt_1.JwtHelper();\r\n\t this.time = 60;\r\n\t }\r\n\t AuthService.prototype.login = function (credentials) {\r\n\t var username = encodeURIComponent(credentials.username);\r\n\t var password = encodeURIComponent(credentials.password);\r\n\t var scope = this.scope;\r\n\t var resource = this.resource;\r\n\t var creds = \"username=\" + username + \"&password=\" + password + \"&grant_type=password&scope=\" + scope + \"&resource=\" + resource;\r\n\t var headers = new http_1.Headers();\r\n\t headers.append('Content-Type', 'application/x-www-form-urlencoded');\r\n\t return this.http.post(this.tokenEndpoint, creds, {\r\n\t headers: headers\r\n\t }).map(function (res) { return res.json(); });\r\n\t };\r\n\t AuthService.prototype.logout = function () {\r\n\t localStorage.removeItem('access_token');\r\n\t this.onLogout.emit(true);\r\n\t this.router.navigate(['/login']);\r\n\t };\r\n\t AuthService.prototype.unauthorized = function (response) {\r\n\t switch (response.status) {\r\n\t case 401:\r\n\t this.logout();\r\n\t break;\r\n\t case 402:\r\n\t this.router.navigate['/home'];\r\n\t break;\r\n\t }\r\n\t };\r\n\t AuthService.prototype.loggedIn = function () {\r\n\t var _this = this;\r\n\t if (angular2_jwt_1.tokenNotExpired('access_token', localStorage.getItem('access_token'))) {\r\n\t this.user = this.setUser();\r\n\t this.onLogin.emit(this.user);\r\n\t var token = localStorage.getItem('access_token');\r\n\t var exp = this.jwtHelper.getTokenExpirationDate(token).valueOf();\r\n\t var curr = Date.now().valueOf();\r\n\t var diff = exp - curr;\r\n\t var timer = Observable_1.Observable.timer(0, diff);\r\n\t timer.subscribe(function (tick) {\r\n\t var exp = _this.jwtHelper.getTokenExpirationDate(token).valueOf();\r\n\t var curr = Date.now().valueOf();\r\n\t if (curr > exp) {\r\n\t window.location.reload();\r\n\t }\r\n\t });\r\n\t return true;\r\n\t }\r\n\t this.onLogout.emit(true);\r\n\t this.onUnauthorized.emit(true);\r\n\t return false;\r\n\t };\r\n\t AuthService.prototype.saveJwt = function (jwt) {\r\n\t if (jwt) {\r\n\t localStorage.setItem('access_token', jwt.access_token);\r\n\t this.loggedIn();\r\n\t this.location.replaceState('/');\r\n\t if (this.redirectUrl) {\r\n\t this.router.navigateByUrl(this.redirectUrl);\r\n\t this.redirectUrl == null;\r\n\t }\r\n\t else {\r\n\t this.router.navigateByUrl('/home');\r\n\t }\r\n\t }\r\n\t };\r\n\t AuthService.prototype.getUser = function () {\r\n\t return this.user;\r\n\t };\r\n\t AuthService.prototype.hasRole = function (role) {\r\n\t var user = this.user;\r\n\t if (user && user.roles) {\r\n\t return user.roles.indexOf(role) > -1;\r\n\t }\r\n\t return false;\r\n\t };\r\n\t AuthService.prototype.hasPermission = function (permission) {\r\n\t var user = this.user;\r\n\t if (user && user.permissions) {\r\n\t return user.permissions.indexOf(permission) > -1;\r\n\t }\r\n\t return false;\r\n\t };\r\n\t AuthService.prototype.hasPermissions = function (permissions) {\r\n\t var user = this.user;\r\n\t var hasPermissions = false;\r\n\t permissions.forEach(function (permission) {\r\n\t if (permission == Permission[permission]) {\r\n\t hasPermissions = true;\r\n\t }\r\n\t else {\r\n\t hasPermissions = false;\r\n\t }\r\n\t });\r\n\t return hasPermissions;\r\n\t };\r\n\t AuthService.prototype.onLoggedInEmitter = function () {\r\n\t return this.onLogin;\r\n\t };\r\n\t AuthService.prototype.onLoggedOutEmitter = function () {\r\n\t return this.onLogout;\r\n\t };\r\n\t AuthService.prototype.onUnauthorizedEmitter = function () {\r\n\t return this.onUnauthorized;\r\n\t };\r\n\t AuthService.prototype.createRestrictedSitePermissionClaimValue = function (siteId, value) {\r\n\t return \"site.\" + siteId + \".restricted.\" + value;\r\n\t };\r\n\t AuthService.prototype.setUser = function () {\r\n\t var user;\r\n\t var jwtHelper = new angular2_jwt_1.JwtHelper();\r\n\t var token = localStorage.getItem('access_token');\r\n\t if (token) {\r\n\t user = jwtHelper.decodeToken(token);\r\n\t user.sites = this.setUserSites(user.sites);\r\n\t user.roles = this.setUserRoles(user.roles);\r\n\t user.permissions = this.setUserPermissions(user.permissions);\r\n\t }\r\n\t else {\r\n\t this.onLogout.emit(true);\r\n\t this.onUnauthorized.emit(true);\r\n\t }\r\n\t return user;\r\n\t };\r\n\t AuthService.prototype.setUserSites = function (sites) {\r\n\t try {\r\n\t return JSON.parse(sites);\r\n\t }\r\n\t catch (err) {\r\n\t return [];\r\n\t }\r\n\t };\r\n\t AuthService.prototype.setUserRoles = function (roles) {\r\n\t try {\r\n\t return JSON.parse(roles);\r\n\t }\r\n\t catch (err) {\r\n\t return [];\r\n\t }\r\n\t };\r\n\t AuthService.prototype.setUserPermissions = function (permissions) {\r\n\t try {\r\n\t return JSON.parse(permissions);\r\n\t }\r\n\t catch (err) {\r\n\t return [];\r\n\t }\r\n\t };\r\n\t AuthService = __decorate([\r\n\t core_1.Injectable(),\r\n\t __metadata(\"design:paramtypes\", [http_1.Http, common_1.Location, router_1.Router])\r\n\t ], AuthService);\r\n\t return AuthService;\r\n\t}());\r\n\texports.AuthService = AuthService;\r\n\tvar Role;\r\n\t(function (Role) {\r\n\t Role[\"Administrator\"] = \"Administrator\";\r\n\t Role[\"EpicorEmployee\"] = \"EpicorEmployee\";\r\n\t Role[\"Partner\"] = \"Partner\";\r\n\t Role[\"EndUser\"] = \"EndUser\";\r\n\t})(Role = exports.Role || (exports.Role = {}));\r\n\tvar Permission;\r\n\t(function (Permission) {\r\n\t Permission[\"AnalyserReportAdmin\"] = \"analyserreport.admin\";\r\n\t Permission[\"UserProvisionCreate\"] = \"user.provision.create\";\r\n\t Permission[\"UserRead\"] = \"user.read\";\r\n\t Permission[\"UserCreate\"] = \"user.create\";\r\n\t Permission[\"UserAdmin\"] = \"user.admin\";\r\n\t Permission[\"SiteCreate\"] = \"site.create\";\r\n\t Permission[\"SiteEdit\"] = \"site.edit\";\r\n\t Permission[\"SiteAdmin\"] = \"site.admin\";\r\n\t Permission[\"RestrictedSiteAdmin\"] = \"site.restricted.admin\";\r\n\t Permission[\"ConversionAdmin\"] = \"conversion.admin\";\r\n\t Permission[\"ConversionMonitorConnect\"] = \"conversion.monitor.connect\";\r\n\t Permission[\"ConversionMonitor\"] = \"conversion.monitor\";\r\n\t Permission[\"ConversionScheduleEdit\"] = \"conversion.schedule.edit\";\r\n\t Permission[\"CloudViewDashboardView\"] = \"cloudview.dashboard.view\";\r\n\t Permission[\"CloudViewAdmin\"] = \"cloudview.admin\";\r\n\t Permission[\"CloudViewInstanceView\"] = \"cloudview.instance.view\";\r\n\t Permission[\"CloudTransferTool\"] = \"cloudtransfertool\";\r\n\t Permission[\"CloudTransferToolEdit\"] = \"cloudtransfertool.edit\";\r\n\t Permission[\"CloudTooling\"] = \"cloudtooling\";\r\n\t Permission[\"ApplicationCreateVersion\"] = \"application.create.version\";\r\n\t Permission[\"ReleaseUpdate\"] = \"release.update\";\r\n\t Permission[\"DatabaseVerification\"] = \"database.verification\";\r\n\t Permission[\"RunGoLiveReport\"] = \"run.go.live.report\";\r\n\t Permission[\"ConfigurationAdmin\"] = \"configuration.admin\";\r\n\t})(Permission = exports.Permission || (exports.Permission = {}));\r\n\tvar Environments;\r\n\t(function (Environments) {\r\n\t Environments[\"Production\"] = \"Production\";\r\n\t Environments[\"Staging\"] = \"Staging\";\r\n\t})(Environments = exports.Environments || (exports.Environments = {}));\r\n\n\n/***/ },\n/* 300 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar ConfigService = (function () {\r\n\t function ConfigService() {\r\n\t this._localhostAPIURI = 'http://localhost:5000/api/';\r\n\t this._stagingAPIURI = 'https://cloudfactoryapi-staging.azurewebsites.net/api/';\r\n\t this._productionAPIURI = 'https://cloudfactoryapi.azurewebsites.net/api/';\r\n\t this._apiURI = this.setAPIURI((\"production\"));\r\n\t }\r\n\t ConfigService.prototype.setAPIURI = function (env) {\r\n\t if (env === 'production') {\r\n\t return this._productionAPIURI;\r\n\t }\r\n\t else if (env == 'staging') {\r\n\t return this._stagingAPIURI;\r\n\t }\r\n\t else {\r\n\t return this._localhostAPIURI;\r\n\t }\r\n\t };\r\n\t ConfigService.prototype.getApiURI = function () {\r\n\t return this._apiURI;\r\n\t };\r\n\t ConfigService.prototype.getApiHost = function () {\r\n\t return this._apiURI.replace('/api/', '');\r\n\t };\r\n\t ConfigService = __decorate([\r\n\t core_1.Injectable(),\r\n\t __metadata(\"design:paramtypes\", [])\r\n\t ], ConfigService);\r\n\t return ConfigService;\r\n\t}());\r\n\texports.ConfigService = ConfigService;\r\n\n\n/***/ },\n/* 301 */,\n/* 302 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar http_1 = __webpack_require__(57);\r\n\t__webpack_require__(303);\r\n\tvar Subject_1 = __webpack_require__(40);\r\n\tvar config_service_1 = __webpack_require__(300);\r\n\tvar interfaces_1 = __webpack_require__(304);\r\n\tvar ConversionHubService = (function () {\r\n\t function ConversionHubService(http) {\r\n\t this.http = http;\r\n\t this.currentState = interfaces_1.SignalRConnectionStatus.Disconnected;\r\n\t this.connectionStateSubject = new Subject_1.Subject();\r\n\t this.setConnectionIdSubject = new Subject_1.Subject();\r\n\t this.addPassLogEntrydSubject = new Subject_1.Subject();\r\n\t this.addTasksEntrySubject = new Subject_1.Subject();\r\n\t this.updateTaskEntrySubject = new Subject_1.Subject();\r\n\t this.addConversionPassEntrySubject = new Subject_1.Subject();\r\n\t this.updateConversionPassEntrySubject = new Subject_1.Subject();\r\n\t this.addConversionPassIncidentEntrySubject = new Subject_1.Subject();\r\n\t this.connectionState = this.connectionStateSubject.asObservable();\r\n\t this.setConnectionId = this.setConnectionIdSubject.asObservable();\r\n\t this.addPassLogEntry = this.addPassLogEntrydSubject.asObservable();\r\n\t this.addTasksEntry = this.addTasksEntrySubject.asObservable();\r\n\t this.updateTaskEntry = this.updateTaskEntrySubject.asObservable();\r\n\t this.addConversionPassEntry = this.addConversionPassEntrySubject.asObservable();\r\n\t this.updateConversionPassEntry = this.updateConversionPassEntrySubject.asObservable();\r\n\t this.addConversionPassIncidentEntry = this.addConversionPassIncidentEntrySubject.asObservable();\r\n\t this._baseUrl = new config_service_1.ConfigService().getApiHost();\r\n\t }\r\n\t ConversionHubService.prototype.start = function (debug) {\r\n\t var _this = this;\r\n\t $.connection.hub.logging = debug;\r\n\t $.connection.hub.url = this._baseUrl + \"/signalr\";\r\n\t var connection = $.connection;\r\n\t var conversionHub = connection.conversionBroadcaster;\r\n\t this.server = conversionHub.server;\r\n\t conversionHub.client.setConnectionId = function (id) { return _this.onSetConnectionId(id); };\r\n\t conversionHub.client.addPassLogEntry = function (log) { return _this.onAddPassLogEntry(log); };\r\n\t conversionHub.client.addTasksEntry = function (tasks) { return _this.onAddTasksEntry(tasks); };\r\n\t conversionHub.client.updateTaskEntry = function (task) { return _this.onUpdateTaskEntry(task); };\r\n\t conversionHub.client.addConversionPassEntry = function (conversionPass) { return _this.onAddConversionPassEntry(conversionPass); };\r\n\t conversionHub.client.updateConversionPassEntry = function (conversionPass) { return _this.onUpdateConversionPassEntry(conversionPass); };\r\n\t conversionHub.client.addConversionPassIncidentEntry = function (incident) { return _this.onAddConversionPassIncidentEntry(incident); };\r\n\t $.connection.hub.start()\r\n\t .done(function (response) { return _this.setConnectionState(interfaces_1.SignalRConnectionStatus.Connected); })\r\n\t .fail(function (error) { return _this.connectionStateSubject.error(error); });\r\n\t return this.connectionState;\r\n\t };\r\n\t ConversionHubService.prototype.setConnectionState = function (connectionState) {\r\n\t console.log('connection state changed to: ' + connectionState);\r\n\t this.currentState = connectionState;\r\n\t this.connectionStateSubject.next(connectionState);\r\n\t };\r\n\t ConversionHubService.prototype.onSetConnectionId = function (id) {\r\n\t this.setConnectionIdSubject.next(id);\r\n\t };\r\n\t ConversionHubService.prototype.onAddPassLogEntry = function (log) {\r\n\t this.addPassLogEntrydSubject.next(log);\r\n\t };\r\n\t ConversionHubService.prototype.onAddTasksEntry = function (tasks) {\r\n\t this.addTasksEntrySubject.next(tasks);\r\n\t };\r\n\t ConversionHubService.prototype.onUpdateTaskEntry = function (task) {\r\n\t this.updateTaskEntrySubject.next(task);\r\n\t };\r\n\t ConversionHubService.prototype.onAddConversionPassEntry = function (conversionPass) {\r\n\t this.addConversionPassEntrySubject.next(conversionPass);\r\n\t };\r\n\t ConversionHubService.prototype.onUpdateConversionPassEntry = function (conversionPass) {\r\n\t this.updateConversionPassEntrySubject.next(conversionPass);\r\n\t };\r\n\t ConversionHubService.prototype.onAddConversionPassIncidentEntry = function (incident) {\r\n\t this.addConversionPassIncidentEntrySubject.next(incident);\r\n\t };\r\n\t ConversionHubService.prototype.subscribeToFeed = function (conversionId) {\r\n\t this.server.subscribe(conversionId);\r\n\t };\r\n\t ConversionHubService.prototype.unsubscribeFromFeed = function (conversionId) {\r\n\t this.server.unsubscribe(conversionId);\r\n\t };\r\n\t ConversionHubService = __decorate([\r\n\t core_1.Injectable(),\r\n\t __metadata(\"design:paramtypes\", [http_1.Http])\r\n\t ], ConversionHubService);\r\n\t return ConversionHubService;\r\n\t}());\r\n\texports.ConversionHubService = ConversionHubService;\r\n\n\n/***/ },\n/* 303 */,\n/* 304 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar SignalRConnectionStatus;\r\n\t(function (SignalRConnectionStatus) {\r\n\t SignalRConnectionStatus[SignalRConnectionStatus[\"Connected\"] = 1] = \"Connected\";\r\n\t SignalRConnectionStatus[SignalRConnectionStatus[\"Disconnected\"] = 2] = \"Disconnected\";\r\n\t SignalRConnectionStatus[SignalRConnectionStatus[\"Error\"] = 3] = \"Error\";\r\n\t})(SignalRConnectionStatus = exports.SignalRConnectionStatus || (exports.SignalRConnectionStatus = {}));\r\n\tvar ConversionStatus;\r\n\t(function (ConversionStatus) {\r\n\t ConversionStatus[ConversionStatus[\"NotStarted\"] = 0] = \"NotStarted\";\r\n\t ConversionStatus[ConversionStatus[\"Started\"] = 1] = \"Started\";\r\n\t ConversionStatus[ConversionStatus[\"InProgress\"] = 2] = \"InProgress\";\r\n\t ConversionStatus[ConversionStatus[\"Warning\"] = 3] = \"Warning\";\r\n\t ConversionStatus[ConversionStatus[\"Error\"] = 4] = \"Error\";\r\n\t ConversionStatus[ConversionStatus[\"Completed\"] = 5] = \"Completed\";\r\n\t ConversionStatus[ConversionStatus[\"Stopped\"] = 6] = \"Stopped\";\r\n\t})(ConversionStatus = exports.ConversionStatus || (exports.ConversionStatus = {}));\r\n\tvar ConversionPassLogType;\r\n\t(function (ConversionPassLogType) {\r\n\t ConversionPassLogType[ConversionPassLogType[\"Information\"] = 0] = \"Information\";\r\n\t ConversionPassLogType[ConversionPassLogType[\"Warning\"] = 1] = \"Warning\";\r\n\t ConversionPassLogType[ConversionPassLogType[\"Error\"] = 2] = \"Error\";\r\n\t ConversionPassLogType[ConversionPassLogType[\"Completed\"] = 3] = \"Completed\";\r\n\t ConversionPassLogType[ConversionPassLogType[\"Incident\"] = 4] = \"Incident\";\r\n\t})(ConversionPassLogType = exports.ConversionPassLogType || (exports.ConversionPassLogType = {}));\r\n\tvar DocumentState;\r\n\t(function (DocumentState) {\r\n\t DocumentState[DocumentState[\"Undefined\"] = 0] = \"Undefined\";\r\n\t DocumentState[DocumentState[\"Archived\"] = 1] = \"Archived\";\r\n\t DocumentState[DocumentState[\"Unarchived\"] = 2] = \"Unarchived\";\r\n\t DocumentState[DocumentState[\"Deleted\"] = 3] = \"Deleted\";\r\n\t})(DocumentState = exports.DocumentState || (exports.DocumentState = {}));\r\n\n\n/***/ },\n/* 305 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar http_1 = __webpack_require__(57);\r\n\t__webpack_require__(303);\r\n\tvar Subject_1 = __webpack_require__(40);\r\n\tvar config_service_1 = __webpack_require__(300);\r\n\tvar interfaces_1 = __webpack_require__(304);\r\n\tvar CloudViewHubService = (function () {\r\n\t function CloudViewHubService(http) {\r\n\t this.http = http;\r\n\t this.currentDate = interfaces_1.SignalRConnectionStatus.Disconnected;\r\n\t this.connectionStateSubject = new Subject_1.Subject();\r\n\t this.setConnectionIdSubject = new Subject_1.Subject();\r\n\t this.addCloudViewLogEntrySubject = new Subject_1.Subject();\r\n\t this.connectionState = this.connectionStateSubject.asObservable();\r\n\t this.setConnectionId = this.setConnectionIdSubject.asObservable();\r\n\t this.addCloudViewLogEntry = this.addCloudViewLogEntrySubject.asObservable();\r\n\t this._baseUrl = new config_service_1.ConfigService().getApiHost();\r\n\t }\r\n\t CloudViewHubService.prototype.start = function (debug) {\r\n\t var _this = this;\r\n\t $.connection.hub.logging = debug;\r\n\t $.connection.hub.url = this._baseUrl + \"/signalr\";\r\n\t var connection = $.connection;\r\n\t var cloudViewHub = connection.cloudViewBroadcaster;\r\n\t this.server = cloudViewHub.server;\r\n\t cloudViewHub.client.setConnectionId = function (id) { return _this.onSetConnectionId(id); };\r\n\t cloudViewHub.client.addCloudViewLogEntry = function (log) { return _this.onAddCloudViewLogEntry(log); };\r\n\t $.connection.hub.start()\r\n\t .done(function (response) { return _this.setConnectionState(interfaces_1.SignalRConnectionStatus.Connected); })\r\n\t .fail(function (error) { return _this.connectionStateSubject.error(error); });\r\n\t return this.connectionState;\r\n\t };\r\n\t CloudViewHubService.prototype.setConnectionState = function (connectionState) {\r\n\t this.currentDate = connectionState;\r\n\t this.connectionStateSubject.next(connectionState);\r\n\t };\r\n\t CloudViewHubService.prototype.onSetConnectionId = function (id) {\r\n\t this.setConnectionIdSubject.next(id);\r\n\t };\r\n\t CloudViewHubService.prototype.onAddCloudViewLogEntry = function (log) {\r\n\t this.addCloudViewLogEntrySubject.next(log);\r\n\t };\r\n\t CloudViewHubService.prototype.subscribeToCloudViewHub = function (groupId) {\r\n\t };\r\n\t CloudViewHubService.prototype.unsubscribeFromCloudViewHub = function (groupId) {\r\n\t };\r\n\t CloudViewHubService = __decorate([\r\n\t core_1.Injectable(),\r\n\t __metadata(\"design:paramtypes\", [http_1.Http])\r\n\t ], CloudViewHubService);\r\n\t return CloudViewHubService;\r\n\t}());\r\n\texports.CloudViewHubService = CloudViewHubService;\r\n\n\n/***/ },\n/* 306 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar toast_1 = __webpack_require__(307);\n\texports.Toast = toast_1.Toast;\n\tvar toast_manager_1 = __webpack_require__(308);\n\texports.ToastsManager = toast_manager_1.ToastsManager;\n\tvar toast_container_component_1 = __webpack_require__(309);\n\texports.ToastContainer = toast_container_component_1.ToastContainer;\n\tvar toast_options_1 = __webpack_require__(310);\n\texports.ToastOptions = toast_options_1.ToastOptions;\n\tvar toast_module_1 = __webpack_require__(312);\n\texports.ToastModule = toast_module_1.ToastModule;\n\t//# sourceMappingURL=ng2-toastr.js.map\n\n/***/ },\n/* 307 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar Toast = (function () {\n\t function Toast(type, message, title, data) {\n\t this.type = type;\n\t this.message = message;\n\t this.title = title;\n\t this.data = data;\n\t this.config = {\n\t dismiss: 'auto',\n\t enableHTML: false,\n\t titleClass: '',\n\t messageClass: '',\n\t toastLife: 3000,\n\t showCloseButton: false,\n\t };\n\t }\n\t return Toast;\n\t}());\n\texports.Toast = Toast;\n\t//# sourceMappingURL=toast.js.map\n\n/***/ },\n/* 308 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar core_1 = __webpack_require__(3);\n\tvar toast_container_component_1 = __webpack_require__(309);\n\tvar toast_options_1 = __webpack_require__(310);\n\tvar toast_1 = __webpack_require__(307);\n\tvar Subject_1 = __webpack_require__(40);\n\tvar ToastsManager = (function () {\n\t function ToastsManager(componentFactoryResolver, ngZone, appRef, options) {\n\t this.componentFactoryResolver = componentFactoryResolver;\n\t this.ngZone = ngZone;\n\t this.appRef = appRef;\n\t this.options = options;\n\t this.index = 0;\n\t this.toastClicked = new Subject_1.Subject();\n\t }\n\t ToastsManager.prototype.setRootViewContainerRef = function (vRef) {\n\t this._rootViewContainerRef = vRef;\n\t };\n\t ToastsManager.prototype.onClickToast = function () {\n\t return this.toastClicked.asObservable();\n\t };\n\t ToastsManager.prototype.show = function (toast, options) {\n\t var _this = this;\n\t return new Promise(function (resolve, reject) {\n\t if (!_this.container) {\n\t // get app root view component ref\n\t if (!_this._rootViewContainerRef) {\n\t try {\n\t _this._rootViewContainerRef = _this.appRef['_rootComponents'][0]['_hostElement'].vcRef;\n\t }\n\t catch (e) {\n\t reject(new Error('Please set root ViewContainerRef using setRootViewContainerRef(vRef: ViewContainerRef) method.'));\n\t }\n\t }\n\t // get options providers\n\t var providers = core_1.ReflectiveInjector.resolve([\n\t { provide: toast_options_1.ToastOptions, useValue: _this.options }\n\t ]);\n\t // create and load ToastContainer\n\t var toastFactory = _this.componentFactoryResolver.resolveComponentFactory(toast_container_component_1.ToastContainer);\n\t var childInjector = core_1.ReflectiveInjector.fromResolvedProviders(providers, _this._rootViewContainerRef.parentInjector);\n\t _this.container = _this._rootViewContainerRef.createComponent(toastFactory, _this._rootViewContainerRef.length, childInjector);\n\t _this.container.instance.onToastClicked = function (toast) {\n\t _this._onToastClicked(toast);\n\t };\n\t _this.container.instance.onExit().subscribe(function () {\n\t _this.dispose();\n\t });\n\t }\n\t resolve(_this.setupToast(toast, options));\n\t });\n\t };\n\t ToastsManager.prototype.createTimeout = function (toast) {\n\t var _this = this;\n\t var task;\n\t this.ngZone.runOutsideAngular(function () {\n\t task = setTimeout(function () { return _this.ngZone.run(function () { return _this.clearToast(toast); }); }, toast.config.toastLife);\n\t });\n\t return task.toString();\n\t };\n\t ToastsManager.prototype.setupToast = function (toast, options) {\n\t toast.id = ++this.index;\n\t if (options && options.hasOwnProperty('toastLife')) {\n\t options.dismiss = 'auto';\n\t }\n\t var customConfig = Object.assign({}, this.options, options || {});\n\t Object.keys(toast.config).forEach(function (k) {\n\t if (customConfig.hasOwnProperty(k)) {\n\t toast.config[k] = customConfig[k];\n\t }\n\t });\n\t if (toast.config.dismiss === 'auto') {\n\t toast.timeoutId = this.createTimeout(toast);\n\t }\n\t this.container.instance.addToast(toast);\n\t return toast;\n\t };\n\t ToastsManager.prototype._onToastClicked = function (toast) {\n\t this.toastClicked.next(toast);\n\t if (toast.config.dismiss === 'click') {\n\t this.clearToast(toast);\n\t }\n\t };\n\t ToastsManager.prototype.dismissToast = function (toast) {\n\t this.clearToast(toast);\n\t };\n\t ToastsManager.prototype.clearToast = function (toast) {\n\t if (this.container) {\n\t var instance = this.container.instance;\n\t instance.removeToast(toast);\n\t }\n\t };\n\t ToastsManager.prototype.clearAllToasts = function () {\n\t if (this.container) {\n\t var instance = this.container.instance;\n\t instance.removeAllToasts();\n\t this.dispose();\n\t }\n\t };\n\t ToastsManager.prototype.dispose = function () {\n\t if (this.container) {\n\t this.container.destroy();\n\t this.container = null;\n\t }\n\t };\n\t ToastsManager.prototype.error = function (message, title, options) {\n\t var data = options && options.data ? options.data : null;\n\t var toast = new toast_1.Toast('error', message, title, data);\n\t return this.show(toast, options);\n\t };\n\t ToastsManager.prototype.info = function (message, title, options) {\n\t var data = options && options.data ? options.data : null;\n\t var toast = new toast_1.Toast('info', message, title, data);\n\t return this.show(toast, options);\n\t };\n\t ToastsManager.prototype.success = function (message, title, options) {\n\t var data = options && options.data ? options.data : null;\n\t var toast = new toast_1.Toast('success', message, title, data);\n\t return this.show(toast, options);\n\t };\n\t ToastsManager.prototype.warning = function (message, title, options) {\n\t var data = options && options.data ? options.data : null;\n\t var toast = new toast_1.Toast('warning', message, title, data);\n\t return this.show(toast, options);\n\t };\n\t // allow user define custom background color and image\n\t ToastsManager.prototype.custom = function (message, title, options) {\n\t var data = options && options.data ? options.data : null;\n\t var toast = new toast_1.Toast('custom', message, title, data);\n\t return this.show(toast, options);\n\t };\n\t return ToastsManager;\n\t}());\n\tToastsManager.decorators = [\n\t { type: core_1.Injectable },\n\t];\n\t/** @nocollapse */\n\tToastsManager.ctorParameters = function () { return [\n\t { type: core_1.ComponentFactoryResolver, },\n\t { type: core_1.NgZone, },\n\t { type: core_1.ApplicationRef, },\n\t { type: toast_options_1.ToastOptions, },\n\t]; };\n\texports.ToastsManager = ToastsManager;\n\t//# sourceMappingURL=toast-manager.js.map\n\n/***/ },\n/* 309 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar core_1 = __webpack_require__(3);\n\tvar toast_options_1 = __webpack_require__(310);\n\tvar platform_browser_1 = __webpack_require__(45);\n\t__webpack_require__(311);\n\tvar Subject_1 = __webpack_require__(40);\n\tvar ToastContainer = (function () {\n\t function ToastContainer(sanitizer, cdr, _zone, options) {\n\t this.sanitizer = sanitizer;\n\t this.cdr = cdr;\n\t this._zone = _zone;\n\t this.position = 'fixed';\n\t this.toasts = [];\n\t this._fresh = true;\n\t this._onEnter = new Subject_1.Subject();\n\t this._onExit = new Subject_1.Subject();\n\t Object.assign(this, options);\n\t }\n\t ToastContainer.prototype.onEnter = function () {\n\t return this._onEnter.asObservable();\n\t };\n\t ToastContainer.prototype.onExit = function () {\n\t return this._onExit.asObservable();\n\t };\n\t ToastContainer.prototype.addToast = function (toast) {\n\t if (this.positionClass.indexOf('top') > 0) {\n\t if (this.newestOnTop) {\n\t this.toasts.unshift(toast);\n\t }\n\t else {\n\t this.toasts.push(toast);\n\t }\n\t if (this.toasts.length > this.maxShown) {\n\t var diff = this.toasts.length - this.maxShown;\n\t if (this.newestOnTop) {\n\t this.toasts.splice(this.maxShown);\n\t }\n\t else {\n\t this.toasts.splice(0, diff);\n\t }\n\t }\n\t }\n\t else {\n\t this.toasts.unshift(toast);\n\t if (this.toasts.length > this.maxShown) {\n\t this.toasts.splice(this.maxShown);\n\t }\n\t }\n\t if (this.animate === null && this._fresh) {\n\t this._fresh = false;\n\t this._onEnter.next();\n\t this._onEnter.complete();\n\t }\n\t this.cdr.detectChanges();\n\t };\n\t ToastContainer.prototype.removeToast = function (toast) {\n\t if (toast.timeoutId) {\n\t clearTimeout(toast.timeoutId);\n\t toast.timeoutId = null;\n\t }\n\t this.toasts = this.toasts.filter(function (t) {\n\t return t.id !== toast.id;\n\t });\n\t };\n\t ToastContainer.prototype.removeAllToasts = function () {\n\t this.toasts = [];\n\t };\n\t ToastContainer.prototype.clicked = function (toast) {\n\t if (this.onToastClicked) {\n\t this.onToastClicked(toast);\n\t }\n\t };\n\t ToastContainer.prototype.anyToast = function () {\n\t return this.toasts.length > 0;\n\t };\n\t ToastContainer.prototype.findToast = function (toastId) {\n\t for (var _i = 0, _a = this.toasts; _i < _a.length; _i++) {\n\t var toast = _a[_i];\n\t if (toast.id === toastId) {\n\t return toast;\n\t }\n\t }\n\t return null;\n\t };\n\t ToastContainer.prototype.onAnimationEnd = function (event) {\n\t var _this = this;\n\t if (event.toState === 'void' && !this.anyToast()) {\n\t this._ngExit();\n\t }\n\t else if (this._fresh && event.fromState === 'void') {\n\t // notify when first animation is done\n\t this._fresh = false;\n\t this._zone.run(function () {\n\t _this._onEnter.next();\n\t _this._onEnter.complete();\n\t });\n\t }\n\t };\n\t ToastContainer.prototype._ngExit = function () {\n\t var _this = this;\n\t this._zone.onMicrotaskEmpty.first().subscribe(function () {\n\t _this._onExit.next();\n\t _this._onExit.complete();\n\t });\n\t };\n\t ToastContainer.prototype.ngOnDestroy = function () {\n\t this._ngExit();\n\t };\n\t return ToastContainer;\n\t}());\n\tToastContainer.decorators = [\n\t { type: core_1.Component, args: [{\n\t selector: 'toast-container',\n\t template: \"\\n
\\n
\\n
×\\n
\\n
{{toast.title}}
\\n
\\n \\n {{toast.message}}\\n
\\n
\\n
\\n \",\n\t animations: [\n\t core_1.trigger('inOut', [\n\t core_1.state('flyRight, flyLeft', core_1.style({ opacity: 1, transform: 'translateX(0)' })),\n\t core_1.state('fade', core_1.style({ opacity: 1 })),\n\t core_1.state('slideDown, slideUp', core_1.style({ opacity: 1, transform: 'translateY(0)' })),\n\t core_1.transition('void => flyRight', [\n\t core_1.style({\n\t opacity: 0,\n\t transform: 'translateX(100%)'\n\t }),\n\t core_1.animate('0.2s ease-in')\n\t ]),\n\t core_1.transition('flyRight => void', [\n\t core_1.animate('0.2s 10ms ease-out', core_1.style({\n\t opacity: 0,\n\t transform: 'translateX(100%)'\n\t }))\n\t ]),\n\t core_1.transition('void => flyLeft', [\n\t core_1.style({\n\t opacity: 0,\n\t transform: 'translateX(-100%)'\n\t }),\n\t core_1.animate('0.2s ease-in')\n\t ]),\n\t core_1.transition('flyLeft => void', [\n\t core_1.animate('0.2s 10ms ease-out', core_1.style({\n\t opacity: 0,\n\t transform: 'translateX(-100%)'\n\t }))\n\t ]),\n\t core_1.transition('void => fade', [\n\t core_1.style({\n\t opacity: 0,\n\t }),\n\t core_1.animate('0.3s ease-in')\n\t ]),\n\t core_1.transition('fade => void', [\n\t core_1.animate('0.3s 10ms ease-out', core_1.style({\n\t opacity: 0,\n\t }))\n\t ]),\n\t core_1.transition('void => slideDown', [\n\t core_1.style({\n\t opacity: 0,\n\t transform: 'translateY(-200%)'\n\t }),\n\t core_1.animate('0.3s ease-in')\n\t ]),\n\t core_1.transition('slideDown => void', [\n\t core_1.animate('0.3s 10ms ease-out', core_1.style({\n\t opacity: 0,\n\t transform: 'translateY(-200%)'\n\t }))\n\t ]),\n\t core_1.transition('void => slideUp', [\n\t core_1.style({\n\t opacity: 0,\n\t transform: 'translateY(200%)'\n\t }),\n\t core_1.animate('0.3s ease-in')\n\t ]),\n\t core_1.transition('slideUp => void', [\n\t core_1.animate('0.3s 10ms ease-out', core_1.style({\n\t opacity: 0,\n\t transform: 'translateY(200%)'\n\t }))\n\t ]),\n\t ]),\n\t ],\n\t },] },\n\t];\n\t/** @nocollapse */\n\tToastContainer.ctorParameters = function () { return [\n\t { type: platform_browser_1.DomSanitizer, },\n\t { type: core_1.ChangeDetectorRef, },\n\t { type: core_1.NgZone, },\n\t { type: toast_options_1.ToastOptions, },\n\t]; };\n\texports.ToastContainer = ToastContainer;\n\t//# sourceMappingURL=toast-container.component.js.map\n\n/***/ },\n/* 310 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar core_1 = __webpack_require__(3);\n\tvar ToastOptions = (function () {\n\t function ToastOptions() {\n\t this.positionClass = 'toast-top-right';\n\t this.maxShown = 5;\n\t this.newestOnTop = false;\n\t this.animate = 'fade';\n\t // override-able properties\n\t this.toastLife = 5000;\n\t this.enableHTML = false;\n\t this.dismiss = 'auto'; //'auto' | 'click' | 'controlled'\n\t this.messageClass = 'toast-message';\n\t this.titleClass = 'toast-title';\n\t this.showCloseButton = false;\n\t }\n\t return ToastOptions;\n\t}());\n\tToastOptions.decorators = [\n\t { type: core_1.Injectable },\n\t];\n\t/** @nocollapse */\n\tToastOptions.ctorParameters = function () { return []; };\n\texports.ToastOptions = ToastOptions;\n\t//# sourceMappingURL=toast-options.js.map\n\n/***/ },\n/* 311 */,\n/* 312 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar core_1 = __webpack_require__(3);\n\tvar common_1 = __webpack_require__(44);\n\tvar toast_container_component_1 = __webpack_require__(309);\n\tvar toast_manager_1 = __webpack_require__(308);\n\tvar toast_options_1 = __webpack_require__(310);\n\tvar ToastModule = (function () {\n\t function ToastModule() {\n\t }\n\t ToastModule.forRoot = function () {\n\t return {\n\t ngModule: ToastModule,\n\t providers: [toast_manager_1.ToastsManager, toast_options_1.ToastOptions],\n\t };\n\t };\n\t return ToastModule;\n\t}());\n\tToastModule.decorators = [\n\t { type: core_1.NgModule, args: [{\n\t imports: [common_1.CommonModule],\n\t declarations: [toast_container_component_1.ToastContainer],\n\t exports: [toast_container_component_1.ToastContainer],\n\t entryComponents: [toast_container_component_1.ToastContainer]\n\t },] },\n\t];\n\t/** @nocollapse */\n\tToastModule.ctorParameters = function () { return []; };\n\texports.ToastModule = ToastModule;\n\t//# sourceMappingURL=toast.module.js.map\n\n/***/ },\n/* 313 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar applicationinsights_js_1 = __webpack_require__(314);\r\n\tvar AppInsightsService = (function () {\r\n\t function AppInsightsService() {\r\n\t this.config = {\r\n\t instrumentationKey: '628e2557-78fb-4803-b1ad-f7ffeb8433a9'\r\n\t };\r\n\t if (!applicationinsights_js_1.AppInsights.config) {\r\n\t applicationinsights_js_1.AppInsights.downloadAndSetup(this.config);\r\n\t }\r\n\t }\r\n\t AppInsightsService.prototype.logPageView = function (name, url, properties, measurements, duration) {\r\n\t applicationinsights_js_1.AppInsights.trackPageView(name, url, properties, measurements, duration);\r\n\t };\r\n\t AppInsightsService.prototype.logEvent = function (name, properties, measurements) {\r\n\t applicationinsights_js_1.AppInsights.trackEvent(name, properties, measurements);\r\n\t };\r\n\t AppInsightsService = __decorate([\r\n\t core_1.Injectable(),\r\n\t __metadata(\"design:paramtypes\", [])\r\n\t ], AppInsightsService);\r\n\t return AppInsightsService;\r\n\t}());\r\n\texports.AppInsightsService = AppInsightsService;\r\n\n\n/***/ },\n/* 314 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;\"use strict\";\r\n\t// Copyright (c) Microsoft Corporation. All rights reserved.\r\n\t// Licensed under the MIT License.\r\n\tvar Microsoft;\r\n\t(function (Microsoft) {\r\n\t var ApplicationInsights;\r\n\t (function (ApplicationInsights) {\r\n\t \"use strict\";\r\n\t })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n\t})(Microsoft || (Microsoft = {}));\r\n\t// Copyright (c) Microsoft Corporation. All rights reserved.\r\n\t// Licensed under the MIT License.\r\n\t// THIS FILE WAS AUTOGENERATED\r\n\tvar Microsoft;\r\n\t(function (Microsoft) {\r\n\t var Telemetry;\r\n\t (function (Telemetry) {\r\n\t \"use strict\";\r\n\t /**\r\n\t * Data struct to contain only C section with custom fields.\r\n\t */\r\n\t var Base = /** @class */ (function () {\r\n\t function Base() {\r\n\t }\r\n\t return Base;\r\n\t }());\r\n\t Telemetry.Base = Base;\r\n\t })(Telemetry = Microsoft.Telemetry || (Microsoft.Telemetry = {}));\r\n\t})(Microsoft || (Microsoft = {}));\r\n\t// Copyright (c) Microsoft Corporation. All rights reserved.\r\n\t// Licensed under the MIT License.\r\n\t// THIS FILE WAS AUTOGENERATED\r\n\t/// \r\n\tvar Microsoft;\r\n\t(function (Microsoft) {\r\n\t var Telemetry;\r\n\t (function (Telemetry) {\r\n\t \"use strict\";\r\n\t /**\r\n\t * System variables for a telemetry item.\r\n\t */\r\n\t var Envelope = /** @class */ (function () {\r\n\t function Envelope() {\r\n\t this.ver = 1;\r\n\t this.sampleRate = 100.0;\r\n\t this.tags = {};\r\n\t }\r\n\t return Envelope;\r\n\t }());\r\n\t Telemetry.Envelope = Envelope;\r\n\t })(Telemetry = Microsoft.Telemetry || (Microsoft.Telemetry = {}));\r\n\t})(Microsoft || (Microsoft = {}));\r\n\t// Copyright (c) Microsoft Corporation. All rights reserved.\r\n\t// Licensed under the MIT License.\r\n\tvar Microsoft;\r\n\t(function (Microsoft) {\r\n\t var ApplicationInsights;\r\n\t (function (ApplicationInsights) {\r\n\t var Context;\r\n\t (function (Context) {\r\n\t \"use strict\";\r\n\t })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));\r\n\t })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n\t})(Microsoft || (Microsoft = {}));\r\n\t// Copyright (c) Microsoft Corporation. All rights reserved.\r\n\t// Licensed under the MIT License.\r\n\tvar Microsoft;\r\n\t(function (Microsoft) {\r\n\t var ApplicationInsights;\r\n\t (function (ApplicationInsights) {\r\n\t var Context;\r\n\t (function (Context) {\r\n\t \"use strict\";\r\n\t })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));\r\n\t })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n\t})(Microsoft || (Microsoft = {}));\r\n\t// Copyright (c) Microsoft Corporation. All rights reserved.\r\n\t// Licensed under the MIT License.\r\n\tvar Microsoft;\r\n\t(function (Microsoft) {\r\n\t var ApplicationInsights;\r\n\t (function (ApplicationInsights) {\r\n\t var Context;\r\n\t (function (Context) {\r\n\t \"use strict\";\r\n\t })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));\r\n\t })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n\t})(Microsoft || (Microsoft = {}));\r\n\t// Copyright (c) Microsoft Corporation. All rights reserved.\r\n\t// Licensed under the MIT License.\r\n\tvar Microsoft;\r\n\t(function (Microsoft) {\r\n\t var ApplicationInsights;\r\n\t (function (ApplicationInsights) {\r\n\t var Context;\r\n\t (function (Context) {\r\n\t \"use strict\";\r\n\t })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));\r\n\t })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n\t})(Microsoft || (Microsoft = {}));\r\n\t// Copyright (c) Microsoft Corporation. All rights reserved.\r\n\t// Licensed under the MIT License.\r\n\tvar Microsoft;\r\n\t(function (Microsoft) {\r\n\t var ApplicationInsights;\r\n\t (function (ApplicationInsights) {\r\n\t var Context;\r\n\t (function (Context) {\r\n\t \"use strict\";\r\n\t })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));\r\n\t })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n\t})(Microsoft || (Microsoft = {}));\r\n\t// Copyright (c) Microsoft Corporation. All rights reserved.\r\n\t// Licensed under the MIT License.\r\n\tvar Microsoft;\r\n\t(function (Microsoft) {\r\n\t var ApplicationInsights;\r\n\t (function (ApplicationInsights) {\r\n\t var Context;\r\n\t (function (Context) {\r\n\t \"use strict\";\r\n\t })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));\r\n\t })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n\t})(Microsoft || (Microsoft = {}));\r\n\t// Copyright (c) Microsoft Corporation. All rights reserved.\r\n\t// Licensed under the MIT License.\r\n\tvar Microsoft;\r\n\t(function (Microsoft) {\r\n\t var ApplicationInsights;\r\n\t (function (ApplicationInsights) {\r\n\t var Context;\r\n\t (function (Context) {\r\n\t \"use strict\";\r\n\t })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));\r\n\t })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n\t})(Microsoft || (Microsoft = {}));\r\n\t// Copyright (c) Microsoft Corporation. All rights reserved.\r\n\t// Licensed under the MIT License.\r\n\tvar Microsoft;\r\n\t(function (Microsoft) {\r\n\t var ApplicationInsights;\r\n\t (function (ApplicationInsights) {\r\n\t var Context;\r\n\t (function (Context) {\r\n\t \"use strict\";\r\n\t })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));\r\n\t })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n\t})(Microsoft || (Microsoft = {}));\r\n\t// Copyright (c) Microsoft Corporation. All rights reserved.\r\n\t// Licensed under the MIT License.\r\n\tvar Microsoft;\r\n\t(function (Microsoft) {\r\n\t var ApplicationInsights;\r\n\t (function (ApplicationInsights) {\r\n\t \"use strict\";\r\n\t })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n\t})(Microsoft || (Microsoft = {}));\r\n\t// Copyright (c) Microsoft Corporation. All rights reserved.\r\n\t// Licensed under the MIT License.\r\n\t/// \r\n\tvar Microsoft;\r\n\t(function (Microsoft) {\r\n\t var ApplicationInsights;\r\n\t (function (ApplicationInsights) {\r\n\t \"use strict\";\r\n\t })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n\t})(Microsoft || (Microsoft = {}));\r\n\t// Copyright (c) Microsoft Corporation. All rights reserved.\r\n\t// Licensed under the MIT License.\r\n\t/// \r\n\t/// \r\n\t/// \r\n\t/// \r\n\t/// \r\n\t/// \r\n\t/// \r\n\t/// \r\n\t/// \r\n\t/// \r\n\tvar Microsoft;\r\n\t(function (Microsoft) {\r\n\t var ApplicationInsights;\r\n\t (function (ApplicationInsights) {\r\n\t \"use strict\";\r\n\t })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n\t})(Microsoft || (Microsoft = {}));\r\n\t// Copyright (c) Microsoft Corporation. All rights reserved.\r\n\t// Licensed under the MIT License.\r\n\t// THIS FILE WAS AUTOGENERATED\r\n\tvar AI;\r\n\t(function (AI) {\r\n\t \"use strict\";\r\n\t /**\r\n\t * Defines the level of severity for the event.\r\n\t */\r\n\t var SeverityLevel;\r\n\t (function (SeverityLevel) {\r\n\t SeverityLevel[SeverityLevel[\"Verbose\"] = 0] = \"Verbose\";\r\n\t SeverityLevel[SeverityLevel[\"Information\"] = 1] = \"Information\";\r\n\t SeverityLevel[SeverityLevel[\"Warning\"] = 2] = \"Warning\";\r\n\t SeverityLevel[SeverityLevel[\"Error\"] = 3] = \"Error\";\r\n\t SeverityLevel[SeverityLevel[\"Critical\"] = 4] = \"Critical\";\r\n\t })(SeverityLevel = AI.SeverityLevel || (AI.SeverityLevel = {}));\r\n\t})(AI || (AI = {}));\r\n\t// Copyright (c) Microsoft Corporation. All rights reserved.\r\n\t// Licensed under the MIT License.\r\n\t/// \r\n\t/// \r\n\t/// \r\n\tvar Microsoft;\r\n\t(function (Microsoft) {\r\n\t var ApplicationInsights;\r\n\t (function (ApplicationInsights) {\r\n\t \"use strict\";\r\n\t })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n\t})(Microsoft || (Microsoft = {}));\r\n\t// Copyright (c) Microsoft Corporation. All rights reserved.\r\n\t// Licensed under the MIT License.\r\n\tvar Microsoft;\r\n\t(function (Microsoft) {\r\n\t var ApplicationInsights;\r\n\t (function (ApplicationInsights) {\r\n\t \"use strict\";\r\n\t var UtilHelpers = /** @class */ (function () {\r\n\t function UtilHelpers() {\r\n\t }\r\n\t /**\r\n\t * generate random id string\r\n\t */\r\n\t UtilHelpers.newId = function () {\r\n\t var base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\r\n\t var result = \"\";\r\n\t // tslint:disable-next-line:insecure-random\r\n\t var random = Math.random() * 1073741824; //5 symbols in base64, almost maxint\r\n\t while (random > 0) {\r\n\t var char = base64chars.charAt(random % 64);\r\n\t result += char;\r\n\t random = Math.floor(random / 64);\r\n\t }\r\n\t return result;\r\n\t };\r\n\t return UtilHelpers;\r\n\t }());\r\n\t ApplicationInsights.UtilHelpers = UtilHelpers;\r\n\t })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n\t})(Microsoft || (Microsoft = {}));\r\n\t// Copyright (c) Microsoft Corporation. All rights reserved.\r\n\t// Licensed under the MIT License.\r\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports) {\r\n\t /// \r\n\t /// \r\n\t /// \r\n\t \"use strict\";\r\n\t Object.defineProperty(exports, \"__esModule\", { value: true });\r\n\t var AppInsightsModule = /** @class */ (function () {\r\n\t function AppInsightsModule() {\r\n\t }\r\n\t AppInsightsModule._createLazyMethod = function (name) {\r\n\t var aiObject = window[AppInsightsModule.appInsightsName];\r\n\t // Define a temporary method that queues-up a the real method call\r\n\t aiObject[name] = function () {\r\n\t // Capture the original arguments passed to the method\r\n\t var originalArguments = arguments;\r\n\t // If the queue is available, it means that the function wasn't yet replaced with actual function value\r\n\t if (aiObject.queue) {\r\n\t aiObject.queue.push(function () { return aiObject[name].apply(aiObject, originalArguments); });\r\n\t }\r\n\t else {\r\n\t // otherwise execute the function\r\n\t aiObject[name].apply(aiObject, originalArguments);\r\n\t }\r\n\t };\r\n\t };\r\n\t ;\r\n\t AppInsightsModule._defineLazyMethods = function () {\r\n\t var aiObject = window[AppInsightsModule.appInsightsName];\r\n\t // capture initial cookie if possible\r\n\t try {\r\n\t aiObject.cookie = document.cookie;\r\n\t }\r\n\t catch (e) {\r\n\t }\r\n\t aiObject.queue = [];\r\n\t var method = [\r\n\t \"clearAuthenticatedUserContext\",\r\n\t \"flush\",\r\n\t \"setAuthenticatedUserContext\",\r\n\t \"startTrackEvent\",\r\n\t \"startTrackPage\",\r\n\t \"stopTrackEvent\",\r\n\t \"stopTrackPage\",\r\n\t \"trackDependency\",\r\n\t \"trackEvent\",\r\n\t \"trackException\",\r\n\t \"trackMetric\",\r\n\t \"trackPageView\",\r\n\t \"trackTrace\"\r\n\t ];\r\n\t while (method.length) {\r\n\t AppInsightsModule._createLazyMethod(method.pop());\r\n\t }\r\n\t };\r\n\t AppInsightsModule._download = function (aiConfig) {\r\n\t AppInsightsModule.getAppInsightsInstance().config = aiConfig;\r\n\t var aiObject = window[AppInsightsModule.appInsightsName];\r\n\t // if script was previously downloaded and initialized, queue will be deleted, reinitialize it\r\n\t if (!aiObject.queue) {\r\n\t aiObject.queue = [];\r\n\t }\r\n\t setTimeout(function () {\r\n\t var scriptElement = document.createElement(\"script\");\r\n\t scriptElement.src = aiConfig.url || \"https://az416426.vo.msecnd.net/scripts/a/ai.0.js\";\r\n\t document.head.appendChild(scriptElement);\r\n\t });\r\n\t // collect global errors by wrapping the window.onerror method\r\n\t if (!aiConfig.disableExceptionTracking) {\r\n\t var method_1 = \"onerror\";\r\n\t AppInsightsModule._createLazyMethod(\"_\" + method_1);\r\n\t var originalOnError = window[method_1];\r\n\t window[method_1] = function (message, url, lineNumber, columnNumber, error) {\r\n\t var handled = originalOnError && originalOnError(message, url, lineNumber, columnNumber, error);\r\n\t if (handled !== true) {\r\n\t aiObject[\"_\" + method_1](message, url, lineNumber, columnNumber, error);\r\n\t }\r\n\t return handled;\r\n\t };\r\n\t }\r\n\t };\r\n\t AppInsightsModule.getAppInsightsInstance = function () {\r\n\t if (typeof window === 'undefined') {\r\n\t return;\r\n\t }\r\n\t if (!window[AppInsightsModule.appInsightsName]) {\r\n\t window[AppInsightsModule.appInsightsName] = {\r\n\t downloadAndSetup: AppInsightsModule._download,\r\n\t // exposing it for unit tests only, not part of interface\r\n\t _defineLazyMethods: AppInsightsModule._defineLazyMethods\r\n\t };\r\n\t AppInsightsModule._defineLazyMethods();\r\n\t }\r\n\t return window[AppInsightsModule.appInsightsName];\r\n\t };\r\n\t AppInsightsModule.appInsightsInitialized = false;\r\n\t AppInsightsModule.appInsightsName = \"appInsights\";\r\n\t /**\r\n\t * Static constructor, attempt to ES5 get accessor\r\n\t */\r\n\t AppInsightsModule._staticInit = (function () {\r\n\t // Dynamically create get/set property accessors\r\n\t var defineProp = Object[\"defineProperty\"];\r\n\t try {\r\n\t defineProp && defineProp(AppInsightsModule.prototype, \"appInsightsInstance\", {\r\n\t get: AppInsightsModule.getAppInsightsInstance,\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t }\r\n\t catch (e) {\r\n\t // IE8 Defines a defineProperty on Object but it's only supported for DOM elements so it will throw\r\n\t // We will just ignore this here.\r\n\t }\r\n\t })();\r\n\t return AppInsightsModule;\r\n\t }());\r\n\t exports.AppInsights = AppInsightsModule.getAppInsightsInstance();\r\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\t//# sourceMappingURL=ai.module.js.map\n\n/***/ },\n/* 315 */\n1346,\n/* 316 */,\n/* 317 */,\n/* 318 */,\n/* 319 */\n1346,\n/* 320 */,\n/* 321 */\n1346,\n/* 322 */,\n/* 323 */\n1346,\n/* 324 */,\n/* 325 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\thome\\r\\n\\t\\t\\t\\tHome\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tperson_add\\r\\n\\t\\t\\t\\tProvision User\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tpeople\\r\\n\\t\\t\\t\\tUsers\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tbusiness\\r\\n\\t\\t\\t\\tSites\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tdesktop_windows\\r\\n\\t\\t\\t\\tApplications\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tupdate\\r\\n\\t\\t\\t\\tConversions\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\ttimelapse\\r\\n\\t\\t\\t\\tSite Planner\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tassessment\\r\\n\\t\\t\\t\\tReports\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tplace\\r\\n\\t\\t\\t\\tZones\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tassessment\\r\\n\\t\\t\\t\\tGo Live Report\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t \\r\\n\\t\\t\\t\\tsettings\\r\\n\\t\\t\\t\\tConfiguration\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t \\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
{{ browserNotSupportedMessage() }}
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t{{user?.emailAddress}}\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n/***/ },\n/* 326 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar auth_guard_service_1 = __webpack_require__(327);\r\n\tvar login_component_1 = __webpack_require__(328);\r\n\tvar redirect_component_1 = __webpack_require__(331);\r\n\tvar users_component_1 = __webpack_require__(332);\r\n\tvar user_sites_component_1 = __webpack_require__(342);\r\n\tvar user_permissions_component_1 = __webpack_require__(345);\r\n\tvar user_provisions_component_1 = __webpack_require__(348);\r\n\tvar applications_component_1 = __webpack_require__(351);\r\n\tvar reports_component_1 = __webpack_require__(354);\r\n\tvar account_component_1 = __webpack_require__(358);\r\n\tvar account_forgot_password_component_1 = __webpack_require__(361);\r\n\tvar account_provision_component_1 = __webpack_require__(363);\r\n\tvar account_reset_password_component_1 = __webpack_require__(365);\r\n\tvar user_provision_component_1 = __webpack_require__(367);\r\n\tvar user_create_component_1 = __webpack_require__(370);\r\n\tvar home_component_1 = __webpack_require__(374);\r\n\tvar sites_component_1 = __webpack_require__(386);\r\n\tvar site_component_1 = __webpack_require__(389);\r\n\tvar site_file_shares_component_1 = __webpack_require__(397);\r\n\tvar site_detail_component_1 = __webpack_require__(400);\r\n\tvar site_users_component_1 = __webpack_require__(402);\r\n\tvar site_reports_component_1 = __webpack_require__(405);\r\n\tvar site_conversions_component_1 = __webpack_require__(407);\r\n\tvar site_cloud_view_component_1 = __webpack_require__(409);\r\n\tvar site_privacy_and_security_component_1 = __webpack_require__(411);\r\n\tvar site_manage_cloud_transfer_tool_users_component_1 = __webpack_require__(413);\r\n\tvar site_manage_cloud_view_instance_view_users_component_1 = __webpack_require__(415);\r\n\tvar site_manage_conversion_monitor_connect_users_component_1 = __webpack_require__(417);\r\n\tvar site_manage_users_component_1 = __webpack_require__(419);\r\n\tvar site_security_history_component_1 = __webpack_require__(421);\r\n\tvar site_manage_reports_component_1 = __webpack_require__(423);\r\n\tvar site_creation_component_1 = __webpack_require__(425);\r\n\tvar analysis_report_component_1 = __webpack_require__(427);\r\n\tvar static_data_component_1 = __webpack_require__(431);\r\n\tvar transaction_overview_component_1 = __webpack_require__(433);\r\n\tvar companies_component_1 = __webpack_require__(435);\r\n\tvar apmObjects_component_1 = __webpack_require__(438);\r\n\tvar configurators_component_1 = __webpack_require__(453);\r\n\tvar customisations_component_1 = __webpack_require__(460);\r\n\tvar kineticUXs_component_1 = __webpack_require__(464);\r\n\tvar functions_component_1 = __webpack_require__(468);\r\n\tvar processCalls_component_1 = __webpack_require__(471);\r\n\tvar bpms_component_1 = __webpack_require__(474);\r\n\tvar incompatibilities_component_1 = __webpack_require__(478);\r\n\tvar changelogs_component_1 = __webpack_require__(481);\r\n\tvar bankInterfaces_component_1 = __webpack_require__(483);\r\n\tvar dataDirectives_component_1 = __webpack_require__(486);\r\n\tvar sqlViews_component_1 = __webpack_require__(489);\r\n\tvar sqlStoredProcedures_component_1 = __webpack_require__(492);\r\n\tvar customReports_component_1 = __webpack_require__(495);\r\n\tvar baqReports_component_1 = __webpack_require__(498);\r\n\tvar externalReports_component_1 = __webpack_require__(502);\r\n\tvar menus_component_1 = __webpack_require__(506);\r\n\tvar udforms_component_1 = __webpack_require__(509);\r\n\tvar sdk_component_1 = __webpack_require__(511);\r\n\tvar customTables_component_1 = __webpack_require__(514);\r\n\tvar dashboards_component_1 = __webpack_require__(516);\r\n\tvar updatableBAQs_component_1 = __webpack_require__(519);\r\n\tvar baqMethodDirectives_component_1 = __webpack_require__(522);\r\n\tvar nonUpdatableBAQs_component_1 = __webpack_require__(525);\r\n\tvar customTriggers_component_1 = __webpack_require__(528);\r\n\tvar sqlFunctions_component_1 = __webpack_require__(531);\r\n\tvar userDefinedTables_component_1 = __webpack_require__(534);\r\n\tvar software_and_platform_component_1 = __webpack_require__(537);\r\n\tvar connectivity_component_1 = __webpack_require__(539);\r\n\tvar licenses_component_1 = __webpack_require__(541);\r\n\tvar preUpgrade_component_1 = __webpack_require__(543);\r\n\tvar healthChecks_component_1 = __webpack_require__(545);\r\n\tvar data_conversions_component_1 = __webpack_require__(547);\r\n\tvar nonupgradable_component_1 = __webpack_require__(549);\r\n\tvar thirdPartyModules_component_1 = __webpack_require__(551);\r\n\tvar create_conversion_component_1 = __webpack_require__(553);\r\n\tvar edit_conversion_component_1 = __webpack_require__(564);\r\n\tvar conversion_pass_component_1 = __webpack_require__(566);\r\n\tvar conversions_component_1 = __webpack_require__(581);\r\n\tvar conversion_component_1 = __webpack_require__(590);\r\n\tvar conversion_schedule_component_1 = __webpack_require__(592);\r\n\tvar conversion_schedule_menu_component_1 = __webpack_require__(595);\r\n\tvar conversion_passes_component_1 = __webpack_require__(597);\r\n\tvar golive_passes_menu_component_1 = __webpack_require__(600);\r\n\tvar conversion_passes_menu_component_1 = __webpack_require__(602);\r\n\tvar cloudview_component_1 = __webpack_require__(604);\r\n\tvar cloudview_host_component_1 = __webpack_require__(616);\r\n\tvar cloudview_host_instances_component_1 = __webpack_require__(618);\r\n\tvar cloudview_instance_component_1 = __webpack_require__(620);\r\n\tvar cloudview_host_statistics_component_1 = __webpack_require__(622);\r\n\tvar create_site_cloudview_config_component_1 = __webpack_require__(624);\r\n\tvar edit_site_cloudview_config_component_1 = __webpack_require__(628);\r\n\tvar cloudview_config_form_component_1 = __webpack_require__(625);\r\n\tvar cloudview_host_performance_component_1 = __webpack_require__(630);\r\n\tvar deactivate_guard_service_1 = __webpack_require__(632);\r\n\tvar zones_component_1 = __webpack_require__(633);\r\n\tvar zone_component_1 = __webpack_require__(636);\r\n\tvar zone_create_component_1 = __webpack_require__(638);\r\n\tvar new_features_component_1 = __webpack_require__(641);\r\n\tvar configurations_component_1 = __webpack_require__(650);\r\n\tvar conversion_assesment_component_1 = __webpack_require__(654);\r\n\tvar golive_report_component_1 = __webpack_require__(658);\r\n\tvar appRoutes = [\r\n\t { path: 'login', component: login_component_1.LoginComponent },\r\n\t { path: 'redirect', component: redirect_component_1.RedirectComponent },\r\n\t { path: 'account', component: account_component_1.AccountComponent, canActivate: [auth_guard_service_1.AuthGuard] },\r\n\t { path: 'account/password/forgot', component: account_forgot_password_component_1.AccountForgotPasswordComponent },\r\n\t { path: 'account/password/add', component: account_provision_component_1.AccountProvisionComponent },\r\n\t { path: 'account/password/reset', component: account_reset_password_component_1.AccountResetPasswordComponent },\r\n\t { path: 'account/provision/user', component: user_provision_component_1.UserProvisionComponent, canActivate: [auth_guard_service_1.AuthGuard] },\r\n\t { path: 'applications', component: applications_component_1.ApplicationsComponent, canActivate: [auth_guard_service_1.AuthGuard] },\r\n\t { path: 'reports', component: reports_component_1.ReportsComponent, canActivate: [auth_guard_service_1.AuthGuard] },\r\n\t { path: 'users', component: users_component_1.UsersComponent, canActivate: [auth_guard_service_1.AuthGuard] },\r\n\t { path: 'users/create', component: user_create_component_1.UserCreateComponent, canActivate: [auth_guard_service_1.AuthGuard] },\r\n\t { path: 'home', component: home_component_1.HomeComponent, canActivate: [auth_guard_service_1.AuthGuard] },\r\n\t { path: 'sites', component: sites_component_1.SitesComponent, canActivate: [auth_guard_service_1.AuthGuard] },\r\n\t { path: 'sites/create', component: site_creation_component_1.SiteCreationComponent, canActivate: [auth_guard_service_1.AuthGuard] },\r\n\t { path: 'sites/:siteId', component: site_component_1.SiteComponent, canActivate: [auth_guard_service_1.AuthGuard] },\r\n\t { path: 'sites/:siteId/analyserreports/:version', component: analysis_report_component_1.AnalysisReportComponent, canActivate: [auth_guard_service_1.AuthGuard], canDeactivate: [deactivate_guard_service_1.DeactivateGuardService] },\r\n\t { path: 'sites/:siteId/conversions/:conversionId', component: conversion_component_1.ConversionComponent, canActivate: [auth_guard_service_1.AuthGuard] },\r\n\t { path: 'sites/:siteId/conversion/create', component: create_conversion_component_1.CreateConversionComponent, canActivate: [auth_guard_service_1.AuthGuard] },\r\n\t { path: 'sites/:siteId/cloudview/config/create', component: create_site_cloudview_config_component_1.CreateSiteCloudViewConfigComponent, canActivate: [auth_guard_service_1.AuthGuard] },\r\n\t { path: 'sites/:siteId/cloudview/config', component: edit_site_cloudview_config_component_1.EditSiteCloudViewConfigComponent, canActivate: [auth_guard_service_1.AuthGuard] },\r\n\t { path: 'conversions', component: conversions_component_1.ConversionsComponent, canActivate: [auth_guard_service_1.AuthGuard] },\r\n\t { path: 'conversions/:siteId/list', component: conversions_component_1.ConversionsComponent, canActivate: [auth_guard_service_1.AuthGuard] },\r\n\t { path: 'conversions/:conversionId', component: edit_conversion_component_1.EditConversionComponent, canActivate: [auth_guard_service_1.AuthGuard], canDeactivate: [deactivate_guard_service_1.DeactivateGuardService] },\r\n\t { path: 'conversions/:conversionId/passes/:passNumber', component: conversion_pass_component_1.ConversionPassComponent, canActivate: [auth_guard_service_1.AuthGuard] },\r\n\t { path: 'cloudview', component: cloudview_component_1.CloudViewComponent, canActivate: [auth_guard_service_1.AuthGuard] },\r\n\t { path: 'cloudview/hosts/:hostId/instances/:instanceId', component: cloudview_instance_component_1.CloudViewInstanceComponent, canActivate: [auth_guard_service_1.AuthGuard] },\r\n\t { path: 'zones', component: zones_component_1.ZonesComponent, canActivate: [auth_guard_service_1.AuthGuard] },\r\n\t { path: 'zones/create', component: zone_create_component_1.ZoneCreateComponent, canActivate: [auth_guard_service_1.AuthGuard] },\r\n\t { path: 'zones/:zoneId', component: zone_component_1.ZoneComponent, canActivate: [auth_guard_service_1.AuthGuard] },\r\n\t { path: 'whatsnew', component: new_features_component_1.NewFeaturesComponent, canActivate: [auth_guard_service_1.AuthGuard] },\r\n\t { path: 'configurations', component: configurations_component_1.ConfigurationsComponent, canActivate: [auth_guard_service_1.AuthGuard] },\r\n\t { path: 'conversionassesment', component: conversion_assesment_component_1.ConversionAssesmentComponent, canActivate: [auth_guard_service_1.AuthGuard] },\r\n\t { path: 'golivereport', component: golive_report_component_1.GoLiveReportComponent, canActivate: [auth_guard_service_1.AuthGuard] },\r\n\t { path: '**', redirectTo: 'home' },\r\n\t { path: '', pathMatch: 'full', redirectTo: 'login' }\r\n\t];\r\n\texports.routing = router_1.RouterModule.forRoot(appRoutes);\r\n\texports.routedComponents = [\r\n\t login_component_1.LoginComponent,\r\n\t home_component_1.HomeComponent,\r\n\t redirect_component_1.RedirectComponent,\r\n\t account_component_1.AccountComponent,\r\n\t account_forgot_password_component_1.AccountForgotPasswordComponent,\r\n\t account_provision_component_1.AccountProvisionComponent,\r\n\t account_reset_password_component_1.AccountResetPasswordComponent,\r\n\t user_provision_component_1.UserProvisionComponent,\r\n\t user_sites_component_1.UserSitesComponent,\r\n\t user_permissions_component_1.UserPermissionsComponent,\r\n\t user_provisions_component_1.UserProvisionsComponent,\r\n\t reports_component_1.ReportsComponent,\r\n\t users_component_1.UsersComponent,\r\n\t applications_component_1.ApplicationsComponent,\r\n\t user_create_component_1.UserCreateComponent,\r\n\t sites_component_1.SitesComponent,\r\n\t site_creation_component_1.SiteCreationComponent,\r\n\t site_component_1.SiteComponent,\r\n\t site_detail_component_1.SiteDetailComponent,\r\n\t site_users_component_1.SiteUsersComponent,\r\n\t site_reports_component_1.SiteReportsComponent,\r\n\t site_conversions_component_1.SiteConversionsComponent,\r\n\t site_cloud_view_component_1.SiteCloudViewComponent,\r\n\t site_file_shares_component_1.SiteFileSharesComponent,\r\n\t site_privacy_and_security_component_1.SitePrivacyAndSecurityComponent,\r\n\t site_manage_cloud_transfer_tool_users_component_1.SiteManageCloudTransferToolUsersComponent,\r\n\t site_manage_cloud_view_instance_view_users_component_1.SiteManageCloudViewInstanceViewUsersComponent,\r\n\t site_manage_conversion_monitor_connect_users_component_1.SiteManageConversionMonitorConnectUsersComponent,\r\n\t site_manage_users_component_1.SiteManageUsersComponent,\r\n\t site_security_history_component_1.SiteSecurityHistoryComponent,\r\n\t site_manage_reports_component_1.SiteManageReportsComponent,\r\n\t analysis_report_component_1.AnalysisReportComponent,\r\n\t companies_component_1.CompaniesComponent,\r\n\t software_and_platform_component_1.SoftwareAndPlatformComponent,\r\n\t connectivity_component_1.ConnectivityComponent,\r\n\t configurators_component_1.ConfiguratorsComponent,\r\n\t customisations_component_1.CustomisationsComponent,\r\n\t functions_component_1.FunctionsComponent,\r\n\t processCalls_component_1.ProcessCallComponent,\r\n\t static_data_component_1.StaticDataComponent,\r\n\t transaction_overview_component_1.TransactionOverviewComponent,\r\n\t licenses_component_1.LicensesComponent,\r\n\t bpms_component_1.BpmsComponent,\r\n\t changelogs_component_1.ChangeLogsComponent,\r\n\t conversion_component_1.ConversionComponent,\r\n\t bankInterfaces_component_1.BankInterfacesComponent,\r\n\t dataDirectives_component_1.DataDirectivesComponent,\r\n\t sqlViews_component_1.SqlViewsComponent,\r\n\t sqlStoredProcedures_component_1.SQLStoredProceduresComponent,\r\n\t customReports_component_1.CustomReportsComponent,\r\n\t baqReports_component_1.BaqReportsComponent,\r\n\t menus_component_1.MenusComponent,\r\n\t externalReports_component_1.ExternalReportsComponent,\r\n\t preUpgrade_component_1.PreUpgradeComponent,\r\n\t thirdPartyModules_component_1.ThirdPartyModuleComponent,\r\n\t udforms_component_1.UDFormsComponent,\r\n\t sdk_component_1.SdkComponent,\r\n\t customTables_component_1.CustomTablesComponent,\r\n\t healthChecks_component_1.HealthChecksComponent,\r\n\t data_conversions_component_1.DataConversionsComponent,\r\n\t dashboards_component_1.DashboardsComponent,\r\n\t create_conversion_component_1.CreateConversionComponent,\r\n\t edit_conversion_component_1.EditConversionComponent,\r\n\t conversion_pass_component_1.ConversionPassComponent,\r\n\t conversions_component_1.ConversionsComponent,\r\n\t conversion_component_1.ConversionComponent,\r\n\t conversion_schedule_component_1.ConversionScheduleComponent,\r\n\t conversion_schedule_menu_component_1.ConversionScheduleMenuComponent,\r\n\t conversion_schedule_component_1.ConversionScheduleNextPassNumberComponent,\r\n\t conversion_schedule_component_1.ConversionScheduleRemainingPassesComponent,\r\n\t conversion_passes_component_1.ConversionPassesComponent,\r\n\t golive_passes_menu_component_1.GoLiveConversionPassesMenuComponent,\r\n\t conversion_passes_menu_component_1.ConversionPassesMenuComponent,\r\n\t cloudview_component_1.CloudViewComponent,\r\n\t cloudview_host_component_1.CloudViewHostComponent,\r\n\t cloudview_host_instances_component_1.CloudViewHostInstancesComponent,\r\n\t cloudview_instance_component_1.CloudViewInstanceComponent,\r\n\t cloudview_host_statistics_component_1.CloudViewHostStatisticsComponent,\r\n\t cloudview_config_form_component_1.CloudViewConfigFormComponent,\r\n\t cloudview_host_performance_component_1.CloudViewHostPerformanceComponent,\r\n\t create_site_cloudview_config_component_1.CreateSiteCloudViewConfigComponent,\r\n\t edit_site_cloudview_config_component_1.EditSiteCloudViewConfigComponent,\r\n\t nonupgradable_component_1.NonupgradableComponent,\r\n\t updatableBAQs_component_1.UpdatableBAQsComponent,\r\n\t baqMethodDirectives_component_1.BAQMethodDirectives,\r\n\t nonUpdatableBAQs_component_1.NonUpdatableBAQs,\r\n\t incompatibilities_component_1.IncompatibilitiesComponent,\r\n\t apmObjects_component_1.APMObjectsComponent,\r\n\t zones_component_1.ZonesComponent,\r\n\t zone_component_1.ZoneComponent,\r\n\t zone_create_component_1.ZoneCreateComponent,\r\n\t new_features_component_1.NewFeaturesComponent,\r\n\t conversion_assesment_component_1.ConversionAssesmentComponent,\r\n\t golive_report_component_1.GoLiveReportComponent,\r\n\t configurations_component_1.ConfigurationsComponent,\r\n\t customTriggers_component_1.CustomTriggersComponent,\r\n\t sqlFunctions_component_1.SQLFunctionsComponent,\r\n\t userDefinedTables_component_1.UserDefinedTableComponent,\r\n\t kineticUXs_component_1.KineticUXComponent\r\n\t];\r\n\n\n/***/ },\n/* 327 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar AuthGuard = (function () {\r\n\t function AuthGuard(router, authService) {\r\n\t this.router = router;\r\n\t this.authService = authService;\r\n\t }\r\n\t AuthGuard.prototype.canActivate = function (route, state) {\r\n\t if (state.url !== '/login' && !this.authService.loggedIn()) {\r\n\t this.router.navigate(['/login']);\r\n\t this.authService.redirectUrl = state.url;\r\n\t return false;\r\n\t }\r\n\t return true;\r\n\t };\r\n\t AuthGuard = __decorate([\r\n\t core_1.Injectable(),\r\n\t __metadata(\"design:paramtypes\", [router_1.Router,\r\n\t auth_service_1.AuthService])\r\n\t ], AuthGuard);\r\n\t return AuthGuard;\r\n\t}());\r\n\texports.AuthGuard = AuthGuard;\r\n\n\n/***/ },\n/* 328 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar dom_events_1 = __webpack_require__(329);\r\n\tvar LoginComponent = (function () {\r\n\t function LoginComponent(auth, router, domEvents) {\r\n\t this.auth = auth;\r\n\t this.router = router;\r\n\t this.domEvents = domEvents;\r\n\t this.isLoading = false;\r\n\t this.credentials = {\r\n\t username: '',\r\n\t password: ''\r\n\t };\r\n\t }\r\n\t LoginComponent.prototype.ngOnInit = function () {\r\n\t this.isLoggedIn();\r\n\t };\r\n\t LoginComponent.prototype.onSubmit = function () {\r\n\t var _this = this;\r\n\t this.isLoading = true;\r\n\t this.loginFailed = null;\r\n\t this.auth.login(this.credentials).subscribe(function (data) {\r\n\t _this.auth.saveJwt(data);\r\n\t _this.isLoading = false;\r\n\t }, function (err) {\r\n\t if (err._body.toString().startsWith(\"{\"))\r\n\t _this.loginFailedDescription = JSON.parse(err._body).error_description;\r\n\t else\r\n\t _this.loginFailedDescription = \"The entered username or password is incorrect.\";\r\n\t _this.loginFailed = true;\r\n\t _this.isLoading = false;\r\n\t });\r\n\t };\r\n\t LoginComponent.prototype.isLoggedIn = function () {\r\n\t if (this.auth.loggedIn()) {\r\n\t this.router.navigateByUrl('/home');\r\n\t }\r\n\t else {\r\n\t this.domEvents.triggerOnDocument(\"appready\");\r\n\t }\r\n\t };\r\n\t LoginComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'login',\r\n\t template: __webpack_require__(330),\r\n\t providers: []\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [auth_service_1.AuthService, router_1.Router, dom_events_1.DOMEvents])\r\n\t ], LoginComponent);\r\n\t return LoginComponent;\r\n\t}());\r\n\texports.LoginComponent = LoginComponent;\r\n\n\n/***/ },\n/* 329 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n\t return function (target, key) { decorator(target, key, paramIndex); }\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar platform_browser_1 = __webpack_require__(45);\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar core_2 = __webpack_require__(3);\r\n\tvar DOMEvents = (function () {\r\n\t function DOMEvents(doc) {\r\n\t this.doc = doc;\r\n\t }\r\n\t DOMEvents.prototype.triggerOnDocument = function (eventType) {\r\n\t return (this.triggerOnElement(this.doc, eventType));\r\n\t };\r\n\t DOMEvents.prototype.triggerOnElement = function (nativeElement, eventType, bubbles, cancelable) {\r\n\t if (bubbles === void 0) { bubbles = true; }\r\n\t if (cancelable === void 0) { cancelable = false; }\r\n\t var customEvent = this.createEvent(eventType, bubbles, cancelable);\r\n\t nativeElement.dispatchEvent(customEvent);\r\n\t return (customEvent);\r\n\t };\r\n\t DOMEvents.prototype.createEvent = function (eventType, bubbles, cancelable) {\r\n\t var params = params || { bubbles: bubbles, cancelable: cancelable, detail: undefined };\r\n\t try {\r\n\t var customEvent = new CustomEvent(eventType, {\r\n\t bubbles: bubbles,\r\n\t cancelable: cancelable\r\n\t });\r\n\t }\r\n\t catch (error) {\r\n\t var customEvent = this.doc.createEvent(\"CustomEvent\");\r\n\t customEvent.initCustomEvent(eventType, params.bubbles, params.cancelable, params.detail);\r\n\t }\r\n\t return (customEvent);\r\n\t };\r\n\t DOMEvents = __decorate([\r\n\t core_2.Injectable(),\r\n\t __param(0, core_1.Inject(platform_browser_1.DOCUMENT)),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], DOMEvents);\r\n\t return DOMEvents;\r\n\t}());\r\n\texports.DOMEvents = DOMEvents;\r\n\n\n/***/ },\n/* 330 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n\\r\\n
\\r\\n \\r\\n Upgrade Services\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n

{{this.loginFailedDescription}}

\\r\\n
\\r\\n
\\r\\n Forgot password?\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 331 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar angular2_jwt_1 = __webpack_require__(278);\r\n\tvar RedirectComponent = (function () {\r\n\t function RedirectComponent(route, router) {\r\n\t var _this = this;\r\n\t this.route = route;\r\n\t this.router = router;\r\n\t this.pages = {\r\n\t account: 'account',\r\n\t analyserReports: 'analyserreports'\r\n\t };\r\n\t this.subscription = route.queryParams.subscribe(function (queryParam) {\r\n\t _this.page = queryParam['page'];\r\n\t _this.siteId = queryParam['siteId'];\r\n\t _this.version = queryParam['version'];\r\n\t _this.accessToken = queryParam['access_token'];\r\n\t if (_this.page === _this.pages.account) {\r\n\t _this.redirectTo('/account');\r\n\t }\r\n\t if (_this.page === _this.pages.analyserReports) {\r\n\t _this.redirectTo('/sites/' + _this.siteId + '/analyserreports/' + _this.version);\r\n\t }\r\n\t });\r\n\t }\r\n\t RedirectComponent.prototype.redirectTo = function (route) {\r\n\t if (angular2_jwt_1.tokenNotExpired('access_token', this.accessToken)) {\r\n\t localStorage.setItem('access_token', this.accessToken);\r\n\t this.router.navigate([route]);\r\n\t }\r\n\t this.router.navigate['/login'];\r\n\t };\r\n\t RedirectComponent.prototype.ngOnDestroy = function () {\r\n\t this.subscription.unsubscribe();\r\n\t };\r\n\t RedirectComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'redirect',\r\n\t template: ''\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [router_1.ActivatedRoute,\r\n\t router_1.Router])\r\n\t ], RedirectComponent);\r\n\t return RedirectComponent;\r\n\t}());\r\n\texports.RedirectComponent = RedirectComponent;\r\n\t;\r\n\n\n/***/ },\n/* 332 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar users_service_1 = __webpack_require__(333);\r\n\tvar dom_events_1 = __webpack_require__(329);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar users_pipe_1 = __webpack_require__(336);\r\n\tvar user_edit_dialog_1 = __webpack_require__(337);\r\n\tvar UsersComponent = (function () {\r\n\t function UsersComponent(dialog, snackBar, pagerService, router, domEvents, user, auth) {\r\n\t this.dialog = dialog;\r\n\t this.snackBar = snackBar;\r\n\t this.pagerService = pagerService;\r\n\t this.router = router;\r\n\t this.domEvents = domEvents;\r\n\t this.user = user;\r\n\t this.auth = auth;\r\n\t this.users = [];\r\n\t this.isLoading = false;\r\n\t this.changeDetected = false;\r\n\t this.search = '';\r\n\t this.searchUserSites = '';\r\n\t this.userCreating = false;\r\n\t this.Role = auth_service_1.Role;\r\n\t this.Permission = auth_service_1.Permission;\r\n\t this.creatingProvision = false;\r\n\t this.pager = {\r\n\t totalItems: 0,\r\n\t currentPage: 1,\r\n\t totalPages: 1\r\n\t };\r\n\t this.filterUserPipe = new users_pipe_1.FilterUserPipe();\r\n\t }\r\n\t UsersComponent.prototype.ngOnInit = function () {\r\n\t this.getUsers();\r\n\t this.domEvents.triggerOnDocument(\"appready\");\r\n\t };\r\n\t UsersComponent.prototype.filterUser = function (query, page) {\r\n\t if (query === '') {\r\n\t this.setPage(1);\r\n\t }\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t var filtered = this.filterUserPipe.transform(this.users, query);\r\n\t this.pager = this.pagerService.getPager(filtered.length, page, 25);\r\n\t this.pagedItems = filtered.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t UsersComponent.prototype.getUsers = function () {\r\n\t var _this = this;\r\n\t this.isLoading = true;\r\n\t this.user.getUsers().subscribe(function (users) {\r\n\t _this.users = users;\r\n\t _this.isLoading = false;\r\n\t _this.setPage(1);\r\n\t }, function (err) {\r\n\t _this.isLoading = false;\r\n\t _this.auth.unauthorized(err);\r\n\t console.error(err);\r\n\t });\r\n\t };\r\n\t UsersComponent.prototype.openEditUserDialog = function (user) {\r\n\t var dialogRef = this.dialog.open(user_edit_dialog_1.UserEditDialog, {\r\n\t width: '250px',\r\n\t data: {\r\n\t user: user\r\n\t }\r\n\t });\r\n\t };\r\n\t UsersComponent.prototype.deleteUser = function (user) {\r\n\t var _this = this;\r\n\t if (window.confirm(\"Are you sure you want to delete user?\")) {\r\n\t this.user.deleteUser(user.emailAddress).subscribe(function (res) {\r\n\t _this.getUsers();\r\n\t var snackBarRef = _this.snackBar.open(\"User \" + user.emailAddress + \" has been deleted\", null, {\r\n\t duration: 2000\r\n\t });\r\n\t }, function (err) { return console.error(err); });\r\n\t }\r\n\t };\r\n\t UsersComponent.prototype.SetStatus = function (user) {\r\n\t if (user.emailAddress == this.auth.getUser().emailAddress) {\r\n\t alert(\"You can't activate/deactivate your own account.\");\r\n\t return;\r\n\t }\r\n\t user.userAccessAudit.changedBy = this.auth.getUser().emailAddress;\r\n\t user.userAccessAudit.active = !user.userAccessAudit.active;\r\n\t user.userAccessAudit.changedOn = new Date();\r\n\t this.user.UpdateUserAccessStatus(user).subscribe(function (res) {\r\n\t }, function (err) {\r\n\t console.error(err);\r\n\t });\r\n\t };\r\n\t UsersComponent.prototype.createUser = function () {\r\n\t this.router.navigate(['/users/create']);\r\n\t };\r\n\t UsersComponent.prototype.createProvision = function (user) {\r\n\t var _this = this;\r\n\t this.creatingProvision = true;\r\n\t this.user.createUserProvision(user).subscribe(function (provision) {\r\n\t _this.creatingProvision = false;\r\n\t var snackBarRef = _this.snackBar.open(\"Provision has been created for \" + user.emailAddress, null, {\r\n\t duration: 2000\r\n\t });\r\n\t }, function (err) {\r\n\t _this.creatingProvision = false;\r\n\t console.log(err);\r\n\t if (err._body.toString().length > 0) {\r\n\t var snackBarRef = _this.snackBar.open(\"Please activate the user before provision \" + user.emailAddress, null, {\r\n\t duration: 2000\r\n\t });\r\n\t }\r\n\t });\r\n\t };\r\n\t UsersComponent.prototype.setPage = function (page) {\r\n\t if (page < 1 || page > this.pager.totalPages) {\r\n\t return;\r\n\t }\r\n\t if (this.search !== '') {\r\n\t this.filterUser(this.search, page);\r\n\t }\r\n\t else {\r\n\t this.pager = this.pagerService.getPager(this.users.length, page, 25);\r\n\t this.pagedItems = this.users.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t }\r\n\t };\r\n\t UsersComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'users',\r\n\t template: __webpack_require__(340),\r\n\t styles: [__webpack_require__(341)],\r\n\t providers: [users_service_1.UsersService, pager_service_1.PagerService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialog,\r\n\t material_1.MdSnackBar,\r\n\t pager_service_1.PagerService,\r\n\t router_1.Router,\r\n\t dom_events_1.DOMEvents,\r\n\t users_service_1.UsersService,\r\n\t auth_service_1.AuthService])\r\n\t ], UsersComponent);\r\n\t return UsersComponent;\r\n\t}());\r\n\texports.UsersComponent = UsersComponent;\r\n\n\n/***/ },\n/* 333 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar http_1 = __webpack_require__(57);\r\n\tvar angular2_jwt_1 = __webpack_require__(278);\r\n\tvar config_service_1 = __webpack_require__(300);\r\n\tvar UsersService = (function () {\r\n\t function UsersService(http, authHttp) {\r\n\t this.http = http;\r\n\t this.authHttp = authHttp;\r\n\t this.serviceBase = new config_service_1.ConfigService().getApiURI();\r\n\t this.usersAPI = this.serviceBase + 'users';\r\n\t }\r\n\t UsersService.prototype.getUsers = function () {\r\n\t var url = this.usersAPI;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t UsersService.prototype.getRoles = function () {\r\n\t var url = this.usersAPI + '/roles';\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t UsersService.prototype.getUserByEmail = function (emailAddress) {\r\n\t var url = this.usersAPI + '/' + emailAddress;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t UsersService.prototype.getUserSiteAccess = function (emailAddress) {\r\n\t var url = this.usersAPI + '/' + emailAddress + '/sites';\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t UsersService.prototype.getUsersInRoles = function (roles) {\r\n\t var url = this.usersAPI;\r\n\t return this.authHttp.post(url, roles)\r\n\t .map(this.extractData);\r\n\t };\r\n\t UsersService.prototype.addRoleToUser = function (userRole) {\r\n\t var url = this.usersAPI + '/role/add';\r\n\t return this.authHttp.put(url, userRole);\r\n\t };\r\n\t UsersService.prototype.removeRoleFromUser = function (userRole) {\r\n\t var url = this.usersAPI + '/role/remove';\r\n\t return this.authHttp.put(url, userRole);\r\n\t };\r\n\t UsersService.prototype.updateUserRole = function (userRole) {\r\n\t var url = this.usersAPI + '/role/update';\r\n\t return this.authHttp.put(url, userRole);\r\n\t };\r\n\t UsersService.prototype.addSiteToUser = function (userSite) {\r\n\t var url = this.usersAPI + '/site/add';\r\n\t return this.authHttp.put(url, userSite);\r\n\t };\r\n\t UsersService.prototype.removeSiteFromUser = function (usersite) {\r\n\t var url = this.usersAPI + '/site/remove';\r\n\t return this.authHttp.put(url, usersite);\r\n\t };\r\n\t UsersService.prototype.deleteUser = function (emailAddress) {\r\n\t var url = this.usersAPI + '/' + emailAddress;\r\n\t return this.authHttp.delete(url);\r\n\t };\r\n\t UsersService.prototype.updateUser = function (user) {\r\n\t var url = this.usersAPI;\r\n\t var body = user;\r\n\t return this.authHttp.put(url, body);\r\n\t };\r\n\t UsersService.prototype.UpdateUserAccessStatus = function (user) {\r\n\t var url = this.usersAPI + '/status';\r\n\t var body = user;\r\n\t return this.authHttp.put(url, body);\r\n\t };\r\n\t UsersService.prototype.getUserProvisions = function (user) {\r\n\t var url = this.usersAPI + '/' + user.emailAddress + '/provisions';\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t UsersService.prototype.createUserProvision = function (user) {\r\n\t var url = this.usersAPI + '/' + user.emailAddress + '/provision';\r\n\t return this.authHttp.post(url, '')\r\n\t .map(this.extractData);\r\n\t };\r\n\t UsersService.prototype.deleteUserProvision = function (id) {\r\n\t var url = this.usersAPI + '/provision/' + id;\r\n\t return this.authHttp.delete(url);\r\n\t };\r\n\t UsersService.prototype.getUserEmailAddresses = function () {\r\n\t var url = this.usersAPI + \"/emailaddresses\";\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t UsersService.prototype.addPermission = function (emailAddress, permission, siteId, restrictedSite) {\r\n\t var url = this.usersAPI + \"/permissions?siteId=\" + siteId;\r\n\t return this.authHttp.post(url, {\r\n\t emailAddress: emailAddress,\r\n\t siteId: siteId,\r\n\t restrictedSite: restrictedSite,\r\n\t permissions: [permission]\r\n\t });\r\n\t };\r\n\t UsersService.prototype.removePermission = function (emailAddress, permission, siteId) {\r\n\t var url = this.usersAPI + \"/\" + emailAddress + \"/permissions/\" + permission + \"?siteId=\" + siteId;\r\n\t return this.authHttp.delete(url);\r\n\t };\r\n\t UsersService.prototype.getUsersInPermission = function (permission) {\r\n\t var url = this.usersAPI + \"/permissions/\" + permission;\r\n\t return this.authHttp.get(url).map(this.extractData);\r\n\t };\r\n\t UsersService.prototype.getRestrictedSiteUsersInPermission = function (siteId, permission) {\r\n\t var url = this.usersAPI + \"/sites/\" + siteId + \"/restricted/permissions/\" + permission;\r\n\t return this.authHttp.get(url).map(this.extractData);\r\n\t };\r\n\t UsersService.prototype.getEndUsersInSite = function (siteId) {\r\n\t var url = this.usersAPI + \"/sites/\" + siteId + \"/endusers\";\r\n\t return this.authHttp.get(url).map(this.extractData);\r\n\t };\r\n\t UsersService.prototype.extractData = function (res) {\r\n\t var body = {};\r\n\t try {\r\n\t body = res.json();\r\n\t }\r\n\t catch (err) {\r\n\t }\r\n\t return body || {};\r\n\t };\r\n\t UsersService.prototype.handleError = function (errors) {\r\n\t };\r\n\t UsersService = __decorate([\r\n\t core_1.Injectable(),\r\n\t __metadata(\"design:paramtypes\", [http_1.Http,\r\n\t angular2_jwt_1.AuthHttp])\r\n\t ], UsersService);\r\n\t return UsersService;\r\n\t}());\r\n\texports.UsersService = UsersService;\r\n\n\n/***/ },\n/* 334 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar _ = __webpack_require__(335);\r\n\tvar PagerService = (function () {\r\n\t function PagerService() {\r\n\t }\r\n\t PagerService.prototype.getPager = function (totalItems, currentPage, pageSize) {\r\n\t if (currentPage === void 0) { currentPage = 1; }\r\n\t if (pageSize === void 0) { pageSize = 10; }\r\n\t var totalPages = (pageSize == -1) ? 1 : Math.ceil(totalItems / pageSize);\r\n\t var startPage, endPage;\r\n\t if (totalPages <= 10) {\r\n\t startPage = 1;\r\n\t endPage = totalPages;\r\n\t }\r\n\t else {\r\n\t if (currentPage <= 6) {\r\n\t startPage = 1;\r\n\t endPage = 10;\r\n\t }\r\n\t else if (currentPage + 4 >= totalPages) {\r\n\t startPage = totalPages - 9;\r\n\t endPage = totalPages;\r\n\t }\r\n\t else {\r\n\t startPage = currentPage - 5;\r\n\t endPage = currentPage + 4;\r\n\t }\r\n\t }\r\n\t var startIndex = (pageSize == -1) ? 0 : (currentPage - 1) * pageSize;\r\n\t var endIndex = (pageSize == -1) ? (totalItems - 1) : Math.min(startIndex + pageSize - 1, totalItems - 1);\r\n\t var pages = _.range(startPage, endPage + 1);\r\n\t return {\r\n\t totalItems: totalItems,\r\n\t currentPage: currentPage,\r\n\t pageSize: pageSize,\r\n\t totalPages: totalPages,\r\n\t startPage: startPage,\r\n\t endPage: endPage,\r\n\t startIndex: startIndex,\r\n\t endIndex: endIndex,\r\n\t pages: pages\r\n\t };\r\n\t };\r\n\t PagerService.prototype.filter = function (reportTab, data, filter, components) {\r\n\t if (components === void 0) { components = 'other'; }\r\n\t if (reportTab === 'custom') {\r\n\t if (filter.status && filter.status !== \"All\") {\r\n\t switch (filter.status) {\r\n\t case 'To Review':\r\n\t data = data.filter(function (d) { return d.reviewed === false; });\r\n\t break;\r\n\t case 'Keep':\r\n\t data = data.filter(function (d) { return d.keep === true; });\r\n\t data.forEach(function (r) {\r\n\t if (r.reportID) {\r\n\t r.reportStyles = r.reportStyles.filter(function (rs) { return rs.keep; });\r\n\t }\r\n\t });\r\n\t break;\r\n\t case 'To Remove':\r\n\t data = data.filter(function (d) { return d.keep === false; });\r\n\t break;\r\n\t case 'Cloud Warning':\r\n\t if (components == 'other') {\r\n\t data = data.filter(function (d) { return d.cloudComplexity == true; });\r\n\t }\r\n\t else {\r\n\t data = data.filter(function (d) { return d.external == true; });\r\n\t }\r\n\t break;\r\n\t }\r\n\t }\r\n\t if (filter.company !== \"All\" && filter.company !== \"All\") {\r\n\t data = data.filter(function (d) { return d.company === filter.company || d.companyID === filter.company; });\r\n\t }\r\n\t }\r\n\t return data;\r\n\t };\r\n\t return PagerService;\r\n\t}());\r\n\texports.PagerService = PagerService;\r\n\n\n/***/ },\n/* 335 */,\n/* 336 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar FilterUserPipe = (function () {\r\n\t function FilterUserPipe() {\r\n\t }\r\n\t FilterUserPipe.prototype.transform = function (users, query) {\r\n\t if (query === '') {\r\n\t return users;\r\n\t }\r\n\t return users.filter(function (u) {\r\n\t if (u.fullName == null) {\r\n\t u.fullName = '';\r\n\t }\r\n\t var sitefound;\r\n\t u.sites.filter(function (site) {\r\n\t if (site == query) {\r\n\t sitefound = true;\r\n\t }\r\n\t });\r\n\t if (u.fullName.toLowerCase().indexOf(query.toLowerCase()) !== -1 ||\r\n\t u.emailAddress.toLowerCase().indexOf(query.toLowerCase()) !== -1 || sitefound) {\r\n\t return u;\r\n\t }\r\n\t });\r\n\t };\r\n\t FilterUserPipe = __decorate([\r\n\t core_1.Pipe({ name: 'filterUser' })\r\n\t ], FilterUserPipe);\r\n\t return FilterUserPipe;\r\n\t}());\r\n\texports.FilterUserPipe = FilterUserPipe;\r\n\n\n/***/ },\n/* 337 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n\t return function (target, key) { decorator(target, key, paramIndex); }\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar users_service_1 = __webpack_require__(333);\r\n\tvar UserEditDialog = (function () {\r\n\t function UserEditDialog(auth, usersService, dialogRef, data) {\r\n\t this.auth = auth;\r\n\t this.usersService = usersService;\r\n\t this.dialogRef = dialogRef;\r\n\t this.data = data;\r\n\t this.Role = auth_service_1.Role;\r\n\t this.roles = [];\r\n\t this.sites = [];\r\n\t this.sitesSelected = [];\r\n\t this.userPermissionsSelected = [];\r\n\t this.userEnvironmentSelected = [];\r\n\t this.permissions = [];\r\n\t this.environments = [];\r\n\t this.isLoading = false;\r\n\t this.loadingSites = false;\r\n\t this.isLoading = true;\r\n\t this.getUser(data.user.emailAddress);\r\n\t this.getRoles();\r\n\t this.loggedInUser = this.auth.getUser();\r\n\t }\r\n\t UserEditDialog.prototype.getRoles = function () {\r\n\t var _this = this;\r\n\t this.usersService.getRoles().subscribe(function (roles) {\r\n\t _this.roles = roles;\r\n\t });\r\n\t };\r\n\t UserEditDialog.prototype.getPermissions = function () {\r\n\t var permissions = Object.keys(auth_service_1.Permission).filter(function (p) {\r\n\t if (p !== \"CloudViewInstanceView\" && p !== \"CloudTransferTool\") {\r\n\t return p;\r\n\t }\r\n\t });\r\n\t this.permissions = permissions.map(function (item) {\r\n\t return {\r\n\t key: item.replace(/([A-Z])/g, ' $1').trim(),\r\n\t value: auth_service_1.Permission[item]\r\n\t };\r\n\t });\r\n\t if (this.loggedInUser.roles.indexOf('Administrator') < 0) {\r\n\t this.permissions = this.permissions.filter(function (p) { return p.value != 'site.restricted.admin'; });\r\n\t }\r\n\t };\r\n\t UserEditDialog.prototype.getEnvironment = function () {\r\n\t var environments = Object.keys(auth_service_1.Environments);\r\n\t this.environments = environments.map(function (item) {\r\n\t return {\r\n\t key: item.replace(/([A-Z])/g, ' $1').trim(),\r\n\t value: auth_service_1.Environments[item]\r\n\t };\r\n\t });\r\n\t };\r\n\t UserEditDialog.prototype.getUser = function (emailAddress) {\r\n\t var _this = this;\r\n\t this.usersService.getUserByEmail(emailAddress).subscribe(function (user) {\r\n\t _this.user = user;\r\n\t _this.userPermissionsSelected = Object.keys(_this.user.permissions);\r\n\t _this.userEnvironmentSelected = Object.keys(_this.user.environments);\r\n\t _this.getSites(user);\r\n\t _this.isLoading = false;\r\n\t _this.getPermissions();\r\n\t _this.getEnvironment();\r\n\t if (!_this.isEpicorEmployee(emailAddress)) {\r\n\t _this.roles = _this.roles.filter(function (e) { return (e !== 'EpicorEmployee' && e !== 'Administrator'); });\r\n\t }\r\n\t });\r\n\t };\r\n\t UserEditDialog.prototype.isEpicorEmployee = function (emailAddress) {\r\n\t if (emailAddress.split('@')[1].indexOf('epicor.com') > -1) {\r\n\t return true;\r\n\t }\r\n\t return false;\r\n\t };\r\n\t UserEditDialog.prototype.cancel = function () {\r\n\t this.dialogRef.close();\r\n\t };\r\n\t UserEditDialog.prototype.update = function () {\r\n\t var _this = this;\r\n\t if (this.userEnvironmentSelected.length > 0) {\r\n\t this.usersService.updateUser(this.user).subscribe(function (res) {\r\n\t _this.dialogRef.close();\r\n\t }, function (err) {\r\n\t });\r\n\t }\r\n\t else {\r\n\t alert('You have to choose any one of the enviornment');\r\n\t }\r\n\t };\r\n\t UserEditDialog.prototype.mapUserPermissions = function () {\r\n\t var permissionKeys = Object.keys(auth_service_1.Permission);\r\n\t var permissions = {};\r\n\t permissionKeys.forEach(function (permission) {\r\n\t permissions[auth_service_1.Permission[permission]] = false;\r\n\t });\r\n\t this.userPermissionsSelected.forEach(function (permission) {\r\n\t permissions[permission] = true;\r\n\t });\r\n\t this.user.permissions = permissions;\r\n\t };\r\n\t UserEditDialog.prototype.mapUserEnvironment = function () {\r\n\t var environmentsKeys = Object.keys(auth_service_1.Environments);\r\n\t var environments = {};\r\n\t environmentsKeys.forEach(function (env) {\r\n\t environments[auth_service_1.Environments[env]] = false;\r\n\t });\r\n\t this.userEnvironmentSelected.forEach(function (env) {\r\n\t environments[env] = true;\r\n\t });\r\n\t this.user.environments = environments;\r\n\t };\r\n\t UserEditDialog.prototype.getSites = function (user) {\r\n\t var _this = this;\r\n\t this.loadingSites = true;\r\n\t this.usersService.getUserSiteAccess(user.emailAddress).subscribe(function (epicWebUser) {\r\n\t if (epicWebUser.sites) {\r\n\t _this.sites = epicWebUser.sites;\r\n\t }\r\n\t _this.loadingSites = false;\r\n\t }, function (err) { return _this.loadingSites = false; });\r\n\t };\r\n\t UserEditDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'user-edit-dialog',\r\n\t styles: [__webpack_require__(338)],\r\n\t template: __webpack_require__(339),\r\n\t providers: [users_service_1.UsersService]\r\n\t }),\r\n\t __param(3, core_1.Inject(material_1.MD_DIALOG_DATA)),\r\n\t __metadata(\"design:paramtypes\", [auth_service_1.AuthService,\r\n\t users_service_1.UsersService,\r\n\t material_1.MdDialogRef, Object])\r\n\t ], UserEditDialog);\r\n\t return UserEditDialog;\r\n\t}());\r\n\texports.UserEditDialog = UserEditDialog;\r\n\n\n/***/ },\n/* 338 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \".mat-expansion-panel:not([class*=mat-elevation-z]) {\\r\\n -webkit-box-shadow: none;\\r\\n\\t-moz-box-shadow: none;\\r\\n\\tbox-shadow: none;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-select-panel {\\r\\n\\tmax-width: none !important;\\r\\n }\"\n\n/***/ },\n/* 339 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
\\r\\n

Edit user

\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{role}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n ({{ site?.id }}) - {{ site?.detail?.orgName }} ({{site?.detail?.country}}) \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{ permission.key }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{ environment.key }}\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n 0\\\" [user]=\\\"user\\\"> \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\";\n\n/***/ },\n/* 340 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"Users ({{ pager?.totalItems }})\\r\\n\\t\\r\\n\\t
\\r\\n\\t
1\\\">\\r\\n\\t\\t\\r\\n \\t\\r\\n\\t
\\r\\n
\\r\\n\\r\\n
\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
Full NameEmail AddressRole
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\terror\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tblock\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tblock\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\tcheck_circle\\r\\n\\t\\t\\t\\t\\t\\terror\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
{{user.fullName}}{{user.emailAddress}}{{user.roles[0] }}\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n
\";\n\n/***/ },\n/* 341 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"td {\\r\\n padding: 2px;\\r\\n margin: 0\\r\\n}\\r\\n\\r\\n.check_circle {\\r\\n color: green;\\r\\n}\\r\\n\\r\\n.block {\\r\\n color: grey;\\r\\n}\\r\\n\\r\\n.error {\\r\\n color: red;\\r\\n}\"\n\n/***/ },\n/* 342 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar UserSitesComponent = (function () {\r\n\t function UserSitesComponent() {\r\n\t }\r\n\t UserSitesComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'user-sites',\r\n\t styles: [__webpack_require__(343)],\r\n\t template: __webpack_require__(344)\r\n\t })\r\n\t ], UserSitesComponent);\r\n\t return UserSitesComponent;\r\n\t}());\r\n\texports.UserSitesComponent = UserSitesComponent;\r\n\n\n/***/ },\n/* 343 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \".mat-expansion-panel:not([class*=mat-elevation-z]) {\\r\\n -webkit-box-shadow: none;\\r\\n\\t-moz-box-shadow: none;\\r\\n\\tbox-shadow: none;\\r\\n}\"\n\n/***/ },\n/* 344 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n \\r\\n Sites\\r\\n \\r\\n \\r\\n
    \\r\\n
  • \\r\\n 26674 \\r\\n
    \\r\\n View\\r\\n Edit\\r\\n Admin \\r\\n
    \\r\\n
  • \\r\\n
  • \\r\\n 29974\\r\\n
  • \\r\\n
\\r\\n
\";\n\n/***/ },\n/* 345 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar UserPermissionsComponent = (function () {\r\n\t function UserPermissionsComponent() {\r\n\t }\r\n\t UserPermissionsComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'user-permissions',\r\n\t styles: [__webpack_require__(346)],\r\n\t template: __webpack_require__(347)\r\n\t })\r\n\t ], UserPermissionsComponent);\r\n\t return UserPermissionsComponent;\r\n\t}());\r\n\texports.UserPermissionsComponent = UserPermissionsComponent;\r\n\n\n/***/ },\n/* 346 */\n343,\n/* 347 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n \\r\\n Permissions\\r\\n \\r\\n \\r\\n

These are global permissions for the user. If you need to restrict a user permission to a particular site you will need to edit the site permissions.

\\r\\n
    \\r\\n
  • Analyser Report View
  • \\r\\n
  • Analyser Report Admin
  • \\r\\n
  • User Provision Create
  • \\r\\n
  • User View
  • \\r\\n
  • User Admin
  • \\r\\n
  • Site View
  • \\r\\n
  • Site Create
  • \\r\\n
  • Site Edit
  • \\r\\n
  • Site Admin
  • \\r\\n
  • Restricted Site Admin
  • \\r\\n
  • Conversion View
  • \\r\\n
  • Conversion Monitor Connect
  • \\r\\n
  • Conversion Monitor
  • \\r\\n
  • Conversion Schedule View
  • \\r\\n
  • Conversion Schedule Edit
  • \\r\\n
  • Cloud View Instance View
  • \\r\\n
  • Cloud View Dashboard View
  • \\r\\n
  • Cloud View Admin
  • \\r\\n
  • Cloud Transfer Tool
  • \\r\\n
  • Cloud Tooling
  • \\r\\n
  • Application Create Version
  • \\r\\n
\\r\\n
\";\n\n/***/ },\n/* 348 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar users_service_1 = __webpack_require__(333);\r\n\tvar UserProvisionsComponent = (function () {\r\n\t function UserProvisionsComponent(usersService) {\r\n\t this.usersService = usersService;\r\n\t this.provisions = [];\r\n\t }\r\n\t UserProvisionsComponent.prototype.ngOnInit = function () {\r\n\t this.provisions = this.user.provisions;\r\n\t };\r\n\t UserProvisionsComponent.prototype.addProvision = function () {\r\n\t var _this = this;\r\n\t this.usersService.createUserProvision(this.user).subscribe(function (provision) {\r\n\t _this.provisions.push(provision);\r\n\t });\r\n\t };\r\n\t UserProvisionsComponent.prototype.deleteProvision = function (index, provision) {\r\n\t var _this = this;\r\n\t this.usersService.deleteUserProvision(provision.id).subscribe(function (res) {\r\n\t _this.provisions.splice(index, 1);\r\n\t });\r\n\t };\r\n\t UserProvisionsComponent.prototype.getProvisionUrl = function (id) {\r\n\t return \"https://\" + window.location.host + \"/#/account/password/add?provision=\" + id;\r\n\t };\r\n\t UserProvisionsComponent.prototype.selectAllText = function (input) {\r\n\t input.setSelectionRange(0, input.value.length);\r\n\t };\r\n\t UserProvisionsComponent.prototype.copyProvisionUrlToClipboard = function (input) {\r\n\t input.focus();\r\n\t try {\r\n\t var copied = document.execCommand('copy');\r\n\t }\r\n\t catch (err) {\r\n\t console.log('Unable to copy');\r\n\t }\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], UserProvisionsComponent.prototype, \"user\", void 0);\r\n\t UserProvisionsComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'user-provisions',\r\n\t styles: [__webpack_require__(349)],\r\n\t template: __webpack_require__(350),\r\n\t providers: [users_service_1.UsersService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [users_service_1.UsersService])\r\n\t ], UserProvisionsComponent);\r\n\t return UserProvisionsComponent;\r\n\t}());\r\n\texports.UserProvisionsComponent = UserProvisionsComponent;\r\n\n\n/***/ },\n/* 349 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \".mat-expansion-panel:not([class*=mat-elevation-z]) {\\r\\n -webkit-box-shadow: none;\\r\\n\\t-moz-box-shadow: none;\\r\\n\\tbox-shadow: none;\\r\\n}\\r\\n\\r\\n.provisions-header {\\r\\n\\tdisplay:flex;\\r\\n\\tjustify-content:space-between;\\r\\n\\talign-items:center;\\r\\n\\tcolor:#288fc7;\\r\\n}\\r\\n\\r\\n.provision-items {\\r\\n\\theight:150px;\\r\\n\\toverflow-y:auto;\\r\\n\\toverflow-x:hidden;\\r\\n\\tlist-style:none;\\r\\n\\tpadding:0;\\r\\n\\tmargin:0;\\r\\n\\twidth:220px;\\r\\n}\\r\\n\\r\\n.provision-item {\\r\\n\\tdisplay:flex;\\r\\n\\tjustify-content: space-between;\\r\\n\\tpadding-bottom:10px;\\r\\n\\tbox-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);\\t\\r\\n}\\r\\n\\r\\n.provision-item-col1 {\\r\\n\\tdisplay:flex;\\r\\n\\tflex-direction: column;\\r\\n}\"\n\n/***/ },\n/* 350 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
\\r\\n
\\r\\n Provisions ({{provisions.length}})\\r\\n \\r\\n
\\r\\n
    \\r\\n
  • \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
  • \\r\\n
\\r\\n
\";\n\n/***/ },\n/* 351 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar application_service_1 = __webpack_require__(352);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar dom_events_1 = __webpack_require__(329);\r\n\tvar ApplicationsComponent = (function () {\r\n\t function ApplicationsComponent(applicationService, auth, domEvents) {\r\n\t this.applicationService = applicationService;\r\n\t this.auth = auth;\r\n\t this.domEvents = domEvents;\r\n\t this.applications = [];\r\n\t }\r\n\t ApplicationsComponent.prototype.ngOnInit = function () {\r\n\t this.getApplications();\r\n\t this.domEvents.triggerOnDocument(\"appready\");\r\n\t };\r\n\t ApplicationsComponent.prototype.getApplications = function () {\r\n\t var _this = this;\r\n\t this.isLoading = true;\r\n\t this.applicationService.getApplications().subscribe(function (applications) {\r\n\t _this.applications = applications;\r\n\t _this.isLoading = false;\r\n\t }, function (err) {\r\n\t _this.isLoading = false;\r\n\t });\r\n\t };\r\n\t ApplicationsComponent.prototype.download = function (name, element) {\r\n\t var _this = this;\r\n\t var version = element.options[element.selectedIndex].value;\r\n\t if (name && version) {\r\n\t this.applicationService.download(name, version).subscribe(function (res) {\r\n\t window.open(res.uri, \"_self\");\r\n\t }, function (err) {\r\n\t _this.auth.unauthorized(err);\r\n\t });\r\n\t }\r\n\t };\r\n\t ApplicationsComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'applications',\r\n\t template: __webpack_require__(353),\r\n\t providers: [application_service_1.ApplicationService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [application_service_1.ApplicationService, auth_service_1.AuthService, dom_events_1.DOMEvents])\r\n\t ], ApplicationsComponent);\r\n\t return ApplicationsComponent;\r\n\t}());\r\n\texports.ApplicationsComponent = ApplicationsComponent;\r\n\n\n/***/ },\n/* 352 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar http_1 = __webpack_require__(57);\r\n\tvar angular2_jwt_1 = __webpack_require__(278);\r\n\tvar config_service_1 = __webpack_require__(300);\r\n\t__webpack_require__(55);\r\n\tvar ApplicationService = (function () {\r\n\t function ApplicationService(http, authHttp) {\r\n\t this.http = http;\r\n\t this.authHttp = authHttp;\r\n\t this.serviceBase = new config_service_1.ConfigService().getApiURI();\r\n\t this.applicationsAPI = this.serviceBase + 'applications';\r\n\t }\r\n\t ApplicationService.prototype.getApplications = function () {\r\n\t return this.authHttp.get(this.applicationsAPI)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ApplicationService.prototype.download = function (name, version) {\r\n\t if (!version) {\r\n\t version = 'latest';\r\n\t }\r\n\t var url = this.applicationsAPI + \"/download/\" + name + \"/version/\" + version;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ApplicationService.prototype.downloadDoc = function (applicationName, fileName) {\r\n\t var url = this.applicationsAPI + \"/documents/\" + applicationName + \"/\" + fileName;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ApplicationService.prototype.uploadDoc = function (applicationName, fileName, formFile) {\r\n\t var headers = new http_1.Headers({ 'Authorization': \"Bearer \" + localStorage.getItem('access_token') });\r\n\t var options = new http_1.RequestOptions({ headers: headers });\r\n\t var url = this.applicationsAPI + \"/documents/\" + applicationName + \"/\" + fileName;\r\n\t return this.http.post(url, formFile, options).map(this.extractData);\r\n\t };\r\n\t ApplicationService.prototype.uploadcloudviewDoc = function (fileName, formFile) {\r\n\t var headers = new http_1.Headers({ 'Authorization': \"Bearer \" + localStorage.getItem('access_token') });\r\n\t var options = new http_1.RequestOptions({ headers: headers });\r\n\t var url = this.applicationsAPI + \"/documents/CloudView/uploadfile\";\r\n\t return this.http.post(url, formFile, options).map(this.extractData);\r\n\t };\r\n\t ApplicationService.prototype.extractData = function (res) {\r\n\t var body = res.json();\r\n\t return body || {};\r\n\t };\r\n\t ApplicationService = __decorate([\r\n\t core_1.Injectable(),\r\n\t __metadata(\"design:paramtypes\", [http_1.Http,\r\n\t angular2_jwt_1.AuthHttp])\r\n\t ], ApplicationService);\r\n\t return ApplicationService;\r\n\t}());\r\n\texports.ApplicationService = ApplicationService;\r\n\n\n/***/ },\n/* 353 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"Applications ({{applications?.length}})\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n {{application.displayName}}\\r\\n Latest version: {{application.latestVersion}}\\r\\n \\r\\n \\r\\n
\\r\\n

{{application.description}}

\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 354 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar dom_events_1 = __webpack_require__(329);\r\n\tvar reports_service_1 = __webpack_require__(355);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar ReportsComponent = (function () {\r\n\t function ReportsComponent(pagerService, router, domEvents, reportsService, auth) {\r\n\t this.pagerService = pagerService;\r\n\t this.router = router;\r\n\t this.domEvents = domEvents;\r\n\t this.reportsService = reportsService;\r\n\t this.auth = auth;\r\n\t this.reports = [];\r\n\t this.reportsCount = 0;\r\n\t this.pageIndex = 0;\r\n\t this.continuationTokens = [\"\"];\r\n\t this.searchText = '';\r\n\t this.myReports = false;\r\n\t this.hasMoreResults = false;\r\n\t this.isLoading = false;\r\n\t this.showAll = true;\r\n\t this.firstLoad = true;\r\n\t }\r\n\t ReportsComponent.prototype.ngOnInit = function () {\r\n\t this.getReportsCount();\r\n\t this.user = this.auth.getUser();\r\n\t this.domEvents.triggerOnDocument(\"appready\");\r\n\t };\r\n\t ReportsComponent.prototype.showAllReports = function () {\r\n\t if (this.searchText != '') {\r\n\t this.searchText = '';\r\n\t this.getReports();\r\n\t }\r\n\t else {\r\n\t this.showAll = !this.showAll;\r\n\t }\r\n\t if (this.firstLoad) {\r\n\t this.getReports();\r\n\t this.showAll = true;\r\n\t this.firstLoad = false;\r\n\t }\r\n\t };\r\n\t ReportsComponent.prototype.getMyReports = function () {\r\n\t this.pageIndex = 0;\r\n\t this.continuationTokens = [\"\"];\r\n\t if (this.myReports) {\r\n\t this.myReports = false;\r\n\t }\r\n\t else {\r\n\t this.myReports = true;\r\n\t }\r\n\t this.getReports();\r\n\t this.getReportsCount();\r\n\t };\r\n\t ReportsComponent.prototype.getReports = function (searchText, token) {\r\n\t var _this = this;\r\n\t if (searchText === void 0) { searchText = \"\"; }\r\n\t if (token === void 0) { token = \"\"; }\r\n\t this.isLoading = true;\r\n\t this.reportsService.getReportsSummary(searchText, token, this.myReports).subscribe(function (response) {\r\n\t _this.reports = response.result;\r\n\t _this.hasMoreResults = response.hasMoreResults;\r\n\t _this.reportsCount = response.searchCount;\r\n\t if (response.requestContinuation != null) {\r\n\t var token = JSON.parse(response.requestContinuation).token;\r\n\t if (typeof _this.continuationTokens[_this.pageIndex + 1] === \"undefined\") {\r\n\t _this.continuationTokens.push(token);\r\n\t }\r\n\t }\r\n\t _this.isLoading = false;\r\n\t _this.firstLoad = false;\r\n\t });\r\n\t };\r\n\t ReportsComponent.prototype.getReportsCount = function () {\r\n\t var _this = this;\r\n\t this.reportsService.getReportsCount(this.myReports).subscribe(function (data) {\r\n\t _this.reportsCount = data.count;\r\n\t });\r\n\t };\r\n\t ReportsComponent.prototype.filterReports = function () {\r\n\t var _this = this;\r\n\t if (this.searchTimeout != undefined)\r\n\t clearTimeout(this.searchTimeout);\r\n\t this.searchTimeout = setTimeout(function () {\r\n\t _this.pageIndex = 0;\r\n\t _this.continuationTokens = [\"\"];\r\n\t var token = _this.continuationTokens[_this.pageIndex];\r\n\t _this.showAll = _this.searchText == '' ? false : true;\r\n\t _this.getReports(_this.searchText, token);\r\n\t }, 500);\r\n\t };\r\n\t ReportsComponent.prototype.getReportHref = function (siteId, element) {\r\n\t return \"#/sites/\" + siteId + \"/analyserreports/latest\";\r\n\t };\r\n\t ReportsComponent.prototype.updateReportHref = function (siteReportsElement, siteId, version) {\r\n\t var row = siteReportsElement;\r\n\t var cells = row.getElementsByTagName(\"td\");\r\n\t var lastCell = cells[cells.length - 1];\r\n\t var a = lastCell.getElementsByTagName(\"a\")[0];\r\n\t a.href = \"#/sites/\" + siteId + \"/analyserreports/\" + version;\r\n\t };\r\n\t ReportsComponent.prototype.deleteReport = function (reportSelection, siteId) {\r\n\t var _this = this;\r\n\t var version = reportSelection.value;\r\n\t if (confirm(\"Are you sure you want to delete report \" + version + \" for site \" + siteId)) {\r\n\t this.reportsService.deleteReport(siteId, version).subscribe(function (res) {\r\n\t _this.getReports();\r\n\t });\r\n\t }\r\n\t };\r\n\t ReportsComponent.prototype.deleteReports = function (siteId) {\r\n\t var _this = this;\r\n\t if (confirm(\"Are you sure you want to delete all reports for site \" + siteId + \"?\")) {\r\n\t this.reportsService.deleteReports(siteId).subscribe(function (res) {\r\n\t _this.getReports();\r\n\t });\r\n\t }\r\n\t };\r\n\t ReportsComponent.prototype.previous = function () {\r\n\t this.pageIndex -= 1;\r\n\t var token = this.continuationTokens[this.pageIndex];\r\n\t if (typeof token != \"undefined\") {\r\n\t this.getReports(this.searchText, token);\r\n\t }\r\n\t else {\r\n\t this.pageIndex += 1;\r\n\t }\r\n\t };\r\n\t ReportsComponent.prototype.next = function () {\r\n\t this.pageIndex += 1;\r\n\t var token = this.continuationTokens[this.pageIndex];\r\n\t if (typeof token !== \"undefined\") {\r\n\t this.getReports(this.searchText, token);\r\n\t }\r\n\t else {\r\n\t this.pageIndex -= 1;\r\n\t }\r\n\t };\r\n\t ReportsComponent.prototype.hasDeletePermission = function () {\r\n\t if (this.user.admin === 'true') {\r\n\t return true;\r\n\t }\r\n\t return this.user.permissions.indexOf(auth_service_1.Permission.AnalyserReportAdmin) > -1;\r\n\t };\r\n\t ReportsComponent.prototype.getModifiedERPProductVersion = function (version) {\r\n\t if (version.productVersion && version.productVersion.indexOf('11.') === 0) {\r\n\t var _a = version.productVersion.split('.'), minor = _a[1], patch = _a[2], build = _a[3];\r\n\t var versionString = void 0;\r\n\t if (minor === '1') {\r\n\t if (patch === '100') {\r\n\t versionString = \"2021.1.\" + build;\r\n\t }\r\n\t else if (patch === '200') {\r\n\t versionString = \"2021.2.\" + build;\r\n\t }\r\n\t }\r\n\t else if (minor === '2') {\r\n\t if (patch === '100') {\r\n\t versionString = \"2022.1.\" + build;\r\n\t }\r\n\t else if (patch === '200') {\r\n\t versionString = \"2022.2.\" + build;\r\n\t }\r\n\t else if (patch === '300') {\r\n\t versionString = \"2023.1.\" + build;\r\n\t }\r\n\t else if (patch === '400') {\r\n\t versionString = \"2023.2.\" + build;\r\n\t }\r\n\t }\r\n\t else if (minor === '3') {\r\n\t if (patch === '100') {\r\n\t versionString = \"2024.1.\" + build;\r\n\t }\r\n\t else if (patch === '200') {\r\n\t versionString = \"2024.2.\" + build;\r\n\t }\r\n\t }\r\n\t return \"Kinetic \" + versionString;\r\n\t }\r\n\t return version.productVersion || 'NONE';\r\n\t };\r\n\t ReportsComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'reports',\r\n\t styles: [__webpack_require__(356)],\r\n\t template: __webpack_require__(357),\r\n\t providers: [reports_service_1.ReportsService, pager_service_1.PagerService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [pager_service_1.PagerService,\r\n\t router_1.Router,\r\n\t dom_events_1.DOMEvents,\r\n\t reports_service_1.ReportsService,\r\n\t auth_service_1.AuthService])\r\n\t ], ReportsComponent);\r\n\t return ReportsComponent;\r\n\t}());\r\n\texports.ReportsComponent = ReportsComponent;\r\n\n\n/***/ },\n/* 355 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar angular2_jwt_1 = __webpack_require__(278);\r\n\tvar config_service_1 = __webpack_require__(300);\r\n\t__webpack_require__(55);\r\n\tvar ReportsService = (function () {\r\n\t function ReportsService(authHttp) {\r\n\t this.authHttp = authHttp;\r\n\t this.serviceBase = new config_service_1.ConfigService().getApiURI();\r\n\t this.reportsAPI = this.serviceBase + 'analyserreports';\r\n\t this.customizationAPI = this.serviceBase + 'customizationanalysis';\r\n\t }\r\n\t ReportsService.prototype.getReports = function () {\r\n\t var url = this.reportsAPI;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ReportsService.prototype.getReportsSummary = function (q, token, myReports) {\r\n\t if (q === void 0) { q = \"\"; }\r\n\t if (token === void 0) { token = \"\"; }\r\n\t if (myReports === void 0) { myReports = false; }\r\n\t token = encodeURIComponent(token);\r\n\t var url = this.reportsAPI + \"/summary?q=\" + q + \"&token=\" + token + \"&myReports=\" + myReports;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ReportsService.prototype.getReportsCount = function (myReports) {\r\n\t if (myReports === void 0) { myReports = false; }\r\n\t var url = this.reportsAPI + \"/count?myReports=\" + myReports;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ReportsService.prototype.updateReport = function (report) {\r\n\t var url = this.reportsAPI;\r\n\t return this.authHttp.put(url, report);\r\n\t };\r\n\t ReportsService.prototype.refreshReport = function (reportId) {\r\n\t var url = this.customizationAPI + '/' + reportId;\r\n\t return this.authHttp.put(url, null);\r\n\t };\r\n\t ReportsService.prototype.deleteReports = function (siteId) {\r\n\t var url = this.reportsAPI + '/' + siteId;\r\n\t return this.authHttp.delete(url);\r\n\t };\r\n\t ReportsService.prototype.deleteReport = function (siteId, version) {\r\n\t var url = this.reportsAPI + \"/\" + siteId + \"/version/\" + version;\r\n\t return this.authHttp.delete(url);\r\n\t };\r\n\t ReportsService.prototype.createSitePreference = function (sitePreference) {\r\n\t var url = this.reportsAPI + '/sitereference';\r\n\t var body = sitePreference;\r\n\t return this.authHttp.post(url, body);\r\n\t };\r\n\t ReportsService.prototype.getSitePreference = function (siteId) {\r\n\t var url = this.reportsAPI + '/sitereference/' + siteId;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ReportsService.prototype.getReportExportToken = function (reportId) {\r\n\t var url = this.reportsAPI + \"/\" + reportId + \"/download/token\";\r\n\t return this.authHttp.get(url).map(this.extractData);\r\n\t };\r\n\t ReportsService.prototype.getReportExportDownloadUrl = function (reportId, reportSection, token, exportType, siteId, version) {\r\n\t return this.reportsAPI + \"/\" + reportId + \"/\" + siteId + \"/\" + version + \"/\" + reportSection + \"/export/\" + exportType + \"?token=\" + encodeURIComponent(token);\r\n\t };\r\n\t ReportsService.prototype.getOwningCompanies = function (siteId) {\r\n\t var url = this.reportsAPI + \"/companylist/\" + siteId;\r\n\t return this.authHttp.get(url).map(this.extractData);\r\n\t };\r\n\t ReportsService.prototype.extractData = function (res) {\r\n\t var body = res.json();\r\n\t return body || {};\r\n\t };\r\n\t ReportsService.prototype.handleError = function (errors) {\r\n\t };\r\n\t ReportsService = __decorate([\r\n\t core_1.Injectable(),\r\n\t __metadata(\"design:paramtypes\", [angular2_jwt_1.AuthHttp])\r\n\t ], ReportsService);\r\n\t return ReportsService;\r\n\t}());\r\n\texports.ReportsService = ReportsService;\r\n\n\n/***/ },\n/* 356 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"/* td {\\r\\n padding: 0;\\r\\n margin: 0\\r\\n} */\\r\\n\\r\\n.active-filter {\\r\\n background: #69c09a;\\r\\n}\\r\\n\\r\\ninput:disabled {\\r\\n cursor: not-allowed;\\r\\n}\"\n\n/***/ },\n/* 357 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"Reports ({{ reportsCount }})\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t
\\r\\n\\t
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\t\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
Site IdSite NameVersions
security
{{report.siteId}}{{report.siteName}}\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tchevron_right\\r\\n\\t\\t\\t\\t\\tdelete\\r\\n\\t\\t\\t\\t\\tdelete_forever\\r\\n\\t\\t\\t\\t
\\r\\n
\\r\\n\\r\\n\";\n\n/***/ },\n/* 358 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar dom_events_1 = __webpack_require__(329);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar account_service_1 = __webpack_require__(359);\r\n\tvar AccountComponent = (function () {\r\n\t function AccountComponent(domEvents, auth, account) {\r\n\t this.domEvents = domEvents;\r\n\t this.auth = auth;\r\n\t this.account = account;\r\n\t this.security = {\r\n\t password: {\r\n\t currentPassword: null,\r\n\t newPassword: null,\r\n\t confirmNewPassword: null\r\n\t }\r\n\t };\r\n\t this.changePasswordVisible = false;\r\n\t }\r\n\t AccountComponent.prototype.ngOnInit = function () {\r\n\t this.user = this.auth.getUser();\r\n\t this.domEvents.triggerOnDocument('appready');\r\n\t };\r\n\t AccountComponent.prototype.toggleChangePassword = function () {\r\n\t if (this.changePasswordVisible) {\r\n\t this.changePasswordVisible = false;\r\n\t }\r\n\t else {\r\n\t this.changePasswordVisible = true;\r\n\t }\r\n\t };\r\n\t AccountComponent.prototype.changePassword = function () {\r\n\t var _this = this;\r\n\t var password = this.security.password;\r\n\t if (password.newPassword === password.confirmNewPassword) {\r\n\t this.account.changePassword(password).subscribe(function (res) {\r\n\t _this.message = \"Password has been changed.\";\r\n\t _this.security.password = {};\r\n\t }, function (err) {\r\n\t _this.message = \"Failed to change password.\";\r\n\t });\r\n\t }\r\n\t else {\r\n\t this.message = \"Passwords do not match.\";\r\n\t }\r\n\t };\r\n\t AccountComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'account',\r\n\t template: __webpack_require__(360),\r\n\t providers: [account_service_1.AccountService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [dom_events_1.DOMEvents,\r\n\t auth_service_1.AuthService,\r\n\t account_service_1.AccountService])\r\n\t ], AccountComponent);\r\n\t return AccountComponent;\r\n\t}());\r\n\texports.AccountComponent = AccountComponent;\r\n\n\n/***/ },\n/* 359 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar http_1 = __webpack_require__(57);\r\n\tvar angular2_jwt_1 = __webpack_require__(278);\r\n\tvar config_service_1 = __webpack_require__(300);\r\n\t__webpack_require__(55);\r\n\tvar AccountService = (function () {\r\n\t function AccountService(http, authHttp) {\r\n\t this.http = http;\r\n\t this.authHttp = authHttp;\r\n\t this.serviceBase = new config_service_1.ConfigService().getApiURI();\r\n\t this.accountAPI = this.serviceBase + 'account';\r\n\t }\r\n\t AccountService.prototype.register = function (userRegister) {\r\n\t var body = userRegister;\r\n\t return this.http.post(this.accountAPI + '/register', body);\r\n\t };\r\n\t AccountService.prototype.forgotPassword = function (forgotPassword) {\r\n\t var body = forgotPassword;\r\n\t return this.http.post(this.accountAPI + '/password/forgot', body);\r\n\t };\r\n\t AccountService.prototype.addPassword = function (userProvision) {\r\n\t var body = userProvision;\r\n\t return this.http.put(this.accountAPI + '/password/add', body)\r\n\t .map(this.extractData);\r\n\t };\r\n\t AccountService.prototype.getProvisionData = function (provisionData) {\r\n\t var body = provisionData;\r\n\t return this.http.put(this.accountAPI + '/provision/get', body)\r\n\t .map(this.extractData);\r\n\t };\r\n\t AccountService.prototype.resetPassword = function (userPassword) {\r\n\t var body = userPassword;\r\n\t return this.http.put(this.accountAPI + '/password/reset', body);\r\n\t };\r\n\t AccountService.prototype.changePassword = function (changePassword) {\r\n\t var body = changePassword;\r\n\t return this.authHttp.put(this.accountAPI + '/password/change', body);\r\n\t };\r\n\t AccountService.prototype.provisionUser = function (provision) {\r\n\t var url = this.accountAPI + '/provision/user';\r\n\t var body = provision;\r\n\t return this.authHttp.post(url, body);\r\n\t };\r\n\t AccountService.prototype.verifyUser = function (verify) {\r\n\t var url = this.accountAPI + '/verifyuser';\r\n\t var body = verify;\r\n\t return this.authHttp.post(url, body)\r\n\t .map(this.extractData);\r\n\t };\r\n\t AccountService.prototype.extractData = function (res) {\r\n\t var body = res.json();\r\n\t return body || {};\r\n\t };\r\n\t AccountService.prototype.handleError = function (errors) { };\r\n\t AccountService = __decorate([\r\n\t core_1.Injectable(),\r\n\t __metadata(\"design:paramtypes\", [http_1.Http,\r\n\t angular2_jwt_1.AuthHttp])\r\n\t ], AccountService);\r\n\t return AccountService;\r\n\t}());\r\n\texports.AccountService = AccountService;\r\n\tvar EmailTemplate;\r\n\t(function (EmailTemplate) {\r\n\t EmailTemplate[EmailTemplate[\"ERPAnalyzer\"] = 0] = \"ERPAnalyzer\";\r\n\t EmailTemplate[EmailTemplate[\"PartnerWelcome\"] = 1] = \"PartnerWelcome\";\r\n\t EmailTemplate[EmailTemplate[\"EndUser_ERPAnalyzer\"] = 2] = \"EndUser_ERPAnalyzer\";\r\n\t EmailTemplate[EmailTemplate[\"EndUser_NewEndUser\"] = 3] = \"EndUser_NewEndUser\";\r\n\t EmailTemplate[EmailTemplate[\"EndUser_ERPAnalyzerSupport\"] = 4] = \"EndUser_ERPAnalyzerSupport\";\r\n\t EmailTemplate[EmailTemplate[\"EndUser_SendToSupport\"] = 5] = \"EndUser_SendToSupport\";\r\n\t})(EmailTemplate = exports.EmailTemplate || (exports.EmailTemplate = {}));\r\n\n\n/***/ },\n/* 360 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"Account\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n Change Password\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
{{message}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 361 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar account_service_1 = __webpack_require__(359);\r\n\tvar dom_events_1 = __webpack_require__(329);\r\n\tvar AccountForgotPasswordComponent = (function () {\r\n\t function AccountForgotPasswordComponent(router, accountService, domEvents) {\r\n\t this.router = router;\r\n\t this.accountService = accountService;\r\n\t this.domEvents = domEvents;\r\n\t this.errors = [];\r\n\t this.userAgent = window.navigator.userAgent;\r\n\t this.account = {\r\n\t emailAddress: ''\r\n\t };\r\n\t }\r\n\t AccountForgotPasswordComponent.prototype.ngOnInit = function () {\r\n\t this.domEvents.triggerOnDocument(\"appready\");\r\n\t };\r\n\t AccountForgotPasswordComponent.prototype.onSubmit = function () {\r\n\t var _this = this;\r\n\t this.errors = [];\r\n\t this.submitted = null;\r\n\t var forgotPassword = {\r\n\t emailAddress: this.account.emailAddress,\r\n\t browserDetails: this.captureBrowserDetails().toString(),\r\n\t userAgent: this.userAgent\r\n\t };\r\n\t this.accountService.forgotPassword(forgotPassword).subscribe(function (res) {\r\n\t _this.submitted = true;\r\n\t _this.redirect();\r\n\t }, function (err) {\r\n\t if (err._body.toString().startsWith(\"{\")) {\r\n\t var errorDescription = JSON.parse(err._body).error_description;\r\n\t _this.errors.push({ code: '', description: errorDescription });\r\n\t }\r\n\t else {\r\n\t _this.errors.push({ code: '', description: 'An error occured while sending recovery link.' });\r\n\t }\r\n\t });\r\n\t };\r\n\t AccountForgotPasswordComponent.prototype.redirect = function () {\r\n\t this.router.navigate(['/login']);\r\n\t };\r\n\t AccountForgotPasswordComponent.prototype.captureBrowserDetails = function () {\r\n\t var browsers = { chrome: /chrome/i, safari: /safari/i, firefox: /firefox/i, ie: /internet explorer/i };\r\n\t for (var key in browsers) {\r\n\t if (browsers[key].test(this.userAgent)) {\r\n\t return key;\r\n\t }\r\n\t }\r\n\t ;\r\n\t return 'none';\r\n\t };\r\n\t AccountForgotPasswordComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'account',\r\n\t template: __webpack_require__(362),\r\n\t providers: [account_service_1.AccountService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [router_1.Router,\r\n\t account_service_1.AccountService,\r\n\t dom_events_1.DOMEvents])\r\n\t ], AccountForgotPasswordComponent);\r\n\t return AccountForgotPasswordComponent;\r\n\t}());\r\n\texports.AccountForgotPasswordComponent = AccountForgotPasswordComponent;\r\n\n\n/***/ },\n/* 362 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
\\r\\n\\t\\r\\n\\t\\tAccount Password Recovery\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\r\\n
\\r\\n\\t\\t\\t\\t\\r\\n
\\r\\n\\t\\t\\t
0\\\" style=\\\"margin-top: 10px\\\">\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t\\t\\t{{ error.description }}\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n/***/ },\n/* 363 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar account_service_1 = __webpack_require__(359);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar dom_events_1 = __webpack_require__(329);\r\n\tvar AccountProvisionComponent = (function () {\r\n\t function AccountProvisionComponent(route, router, accountService, auth, domEvents) {\r\n\t var _this = this;\r\n\t this.route = route;\r\n\t this.router = router;\r\n\t this.accountService = accountService;\r\n\t this.auth = auth;\r\n\t this.domEvents = domEvents;\r\n\t this.isLoading = false;\r\n\t this.errors = [];\r\n\t this.account = {\r\n\t password: '',\r\n\t confirmPassword: ''\r\n\t };\r\n\t this.formLoaded = false;\r\n\t this.isProvisionValid = false;\r\n\t this.isProvisionActive = false;\r\n\t this.isEmailRegistered = false;\r\n\t this.route.queryParams.subscribe(function (params) {\r\n\t _this.provisionId = params['provision'];\r\n\t });\r\n\t }\r\n\t AccountProvisionComponent.prototype.ngOnInit = function () {\r\n\t this.domEvents.triggerOnDocument(\"appready\");\r\n\t var provision = {\r\n\t provisionId: this.provisionId\r\n\t };\r\n\t this.getProvisionAccount(provision);\r\n\t };\r\n\t AccountProvisionComponent.prototype.onSubmit = function () {\r\n\t var _this = this;\r\n\t this.errors = [];\r\n\t this.isLoading = true;\r\n\t this.isProvisionValid = false;\r\n\t this.isProvisionActive = false;\r\n\t this.isEmailRegistered = false;\r\n\t var userProvision = {\r\n\t provisionId: this.provisionId,\r\n\t password: this.account.password,\r\n\t emailAddress: this.provisionEmail\r\n\t };\r\n\t if (this.account.password === this.account.confirmPassword) {\r\n\t this.accountService.addPassword(userProvision).subscribe(function (provisionResult) {\r\n\t _this.isLoading = false;\r\n\t _this.auth.logout();\r\n\t var creds = {\r\n\t username: provisionResult.username,\r\n\t password: userProvision.password\r\n\t };\r\n\t _this.auth.login(creds).subscribe(function (res) {\r\n\t _this.auth.saveJwt(res);\r\n\t }, function (err) {\r\n\t _this.router.navigateByUrl('/login');\r\n\t });\r\n\t }, function (err) {\r\n\t _this.isLoading = false;\r\n\t if (err) {\r\n\t _this.errors = err.json();\r\n\t _this.errorCode = _this.errors[0]['code'];\r\n\t _this.errorDescription = _this.errors[0]['description'];\r\n\t _this.provisionAccountActions(_this.errorCode);\r\n\t }\r\n\t });\r\n\t }\r\n\t else {\r\n\t this.errors.push({ description: 'Passwords do not match' });\r\n\t }\r\n\t };\r\n\t AccountProvisionComponent.prototype.getProvisionAccount = function (provision) {\r\n\t var _this = this;\r\n\t this.accountService.getProvisionData(provision).subscribe(function (provisionUser) {\r\n\t _this.isLoading = false;\r\n\t _this.provisionEmail = provisionUser.emailAddress;\r\n\t _this.provisionUser = provisionUser.fullName;\r\n\t _this.isProvisionValid = true;\r\n\t }, function (err) {\r\n\t _this.isLoading = false;\r\n\t _this.isProvisionValid = false;\r\n\t if (err) {\r\n\t _this.errors = err.json();\r\n\t _this.errorCode = _this.errors[0]['code'];\r\n\t _this.errorDescription = _this.errors[0]['description'];\r\n\t _this.provisionAccountActions(_this.errorCode);\r\n\t }\r\n\t });\r\n\t this.formLoaded = true;\r\n\t };\r\n\t AccountProvisionComponent.prototype.provisionAccountActions = function (errorCode) {\r\n\t switch (errorCode) {\r\n\t case 'ProvisionNotFound':\r\n\t case 'ProvisionEmailInvalid':\r\n\t case 'ProvisionInvalid':\r\n\t this.isProvisionValid = false;\r\n\t this.isProvisionActive = false;\r\n\t break;\r\n\t case 'ProvisionActive':\r\n\t this.isProvisionValid = true;\r\n\t this.isProvisionActive = true;\r\n\t break;\r\n\t case 'AlreadyRegistered':\r\n\t this.isProvisionValid = true;\r\n\t this.isProvisionActive = true;\r\n\t this.isEmailRegistered = true;\r\n\t break;\r\n\t }\r\n\t };\r\n\t AccountProvisionComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'account-provision',\r\n\t template: __webpack_require__(364),\r\n\t providers: [account_service_1.AccountService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [router_1.ActivatedRoute,\r\n\t router_1.Router,\r\n\t account_service_1.AccountService,\r\n\t auth_service_1.AuthService,\r\n\t dom_events_1.DOMEvents])\r\n\t ], AccountProvisionComponent);\r\n\t return AccountProvisionComponent;\r\n\t}());\r\n\texports.AccountProvisionComponent = AccountProvisionComponent;\r\n\n\n/***/ },\n/* 364 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
\\r\\n \\r\\n Add Account Password\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
0\\\" style=\\\"margin-top: 10px\\\">\\r\\n \\r\\n \\r\\n \\r\\n

\\r\\n {{ error.description }}\\r\\n , please click here to login\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n If you have previously registered click here to login\\r\\n
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 365 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar account_service_1 = __webpack_require__(359);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar dom_events_1 = __webpack_require__(329);\r\n\tvar AccountResetPasswordComponent = (function () {\r\n\t function AccountResetPasswordComponent(domEvents, route, router, auth, accountService) {\r\n\t var _this = this;\r\n\t this.domEvents = domEvents;\r\n\t this.route = route;\r\n\t this.router = router;\r\n\t this.auth = auth;\r\n\t this.accountService = accountService;\r\n\t this.errors = [];\r\n\t this.account = {\r\n\t password: '',\r\n\t confirmPassword: ''\r\n\t };\r\n\t this.route.queryParams.subscribe(function (params) {\r\n\t _this.emailAddress = params['email'];\r\n\t _this.resetToken = params['token'];\r\n\t });\r\n\t }\r\n\t AccountResetPasswordComponent.prototype.ngOnInit = function () {\r\n\t this.domEvents.triggerOnDocument(\"appready\");\r\n\t };\r\n\t AccountResetPasswordComponent.prototype.onSubmit = function () {\r\n\t var _this = this;\r\n\t this.errors = [];\r\n\t var userPasswordReset = {\r\n\t emailAddress: this.emailAddress,\r\n\t resetToken: this.resetToken,\r\n\t password: this.account.password\r\n\t };\r\n\t if (this.account.password === this.account.confirmPassword) {\r\n\t this.accountService.resetPassword(userPasswordReset).subscribe(function (res) {\r\n\t _this.auth.logout();\r\n\t _this.router.navigateByUrl('/login');\r\n\t }, function (err) {\r\n\t if (err._body !== \"\") {\r\n\t _this.errors = err.json();\r\n\t }\r\n\t });\r\n\t }\r\n\t else {\r\n\t this.errors.push({ description: 'Passwords do not match' });\r\n\t }\r\n\t };\r\n\t AccountResetPasswordComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'account-reset-password',\r\n\t template: __webpack_require__(366),\r\n\t providers: [account_service_1.AccountService, auth_service_1.AuthService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [dom_events_1.DOMEvents,\r\n\t router_1.ActivatedRoute,\r\n\t router_1.Router,\r\n\t auth_service_1.AuthService,\r\n\t account_service_1.AccountService])\r\n\t ], AccountResetPasswordComponent);\r\n\t return AccountResetPasswordComponent;\r\n\t}());\r\n\texports.AccountResetPasswordComponent = AccountResetPasswordComponent;\r\n\n\n/***/ },\n/* 366 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
\\r\\n\\t\\r\\n\\t\\tReset Account Password\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t
0\\\" style=\\\"margin-top: 10px\\\">\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t\\t\\t{{ error.description }}\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n/***/ },\n/* 367 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar account_service_1 = __webpack_require__(359);\r\n\tvar dom_events_1 = __webpack_require__(329);\r\n\tvar users_service_1 = __webpack_require__(333);\r\n\tvar string_pipe_1 = __webpack_require__(368);\r\n\tvar UserProvisionComponent = (function () {\r\n\t function UserProvisionComponent(auth, accountService, usersService, domEvents) {\r\n\t this.auth = auth;\r\n\t this.accountService = accountService;\r\n\t this.usersService = usersService;\r\n\t this.domEvents = domEvents;\r\n\t this.search = '';\r\n\t this.isLoading = false;\r\n\t this.isVerifying = false;\r\n\t this.isSubmitting = false;\r\n\t this.messages = [];\r\n\t this.errors = [];\r\n\t this.verified = false;\r\n\t this.allSitesChecked = false;\r\n\t this.notificationEmails = '';\r\n\t this.camUsers = [];\r\n\t this.psaUsers = [];\r\n\t this.umUsers = [];\r\n\t this.camPartnerUsers = [];\r\n\t this.searchCAMText = \"\";\r\n\t this.searchPSAText = \"\";\r\n\t this.searchUMText = \"\";\r\n\t this.searchPCAMText = \"\";\r\n\t this.user = {\r\n\t emailAddress: '',\r\n\t fullName: '',\r\n\t role: '',\r\n\t sites: [],\r\n\t template: account_service_1.EmailTemplate.ERPAnalyzer,\r\n\t cam: '',\r\n\t psa: '',\r\n\t upgradeManager: '',\r\n\t partnerCAM: '',\r\n\t notificationEmails: []\r\n\t };\r\n\t this.removeWhiteSpace = new string_pipe_1.RemoveWhiteSpacePipe();\r\n\t }\r\n\t UserProvisionComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.loggedInUser = this.auth.getUser();\r\n\t if (this.loggedInUser.admin || this.loggedInUser.epicorEmployee) {\r\n\t this.usersService.getRoles().subscribe(function (roles) {\r\n\t _this.roles = _this.allRoles = roles;\r\n\t });\r\n\t this.usersService.getUsersInRoles([\"Administrator\", \"EpicorEmployee\"]).subscribe(function (users) {\r\n\t _this.users = users;\r\n\t _this.camUsers = _this.users;\r\n\t _this.psaUsers = _this.users;\r\n\t _this.umUsers = _this.users;\r\n\t _this.camPartnerUsers = _this.users;\r\n\t });\r\n\t }\r\n\t if (this.loggedInUser.partner) {\r\n\t this.roles = ['EndUser'];\r\n\t this.usersService.getUserEmailAddresses().subscribe(function (users) {\r\n\t _this.users = users;\r\n\t _this.camUsers = _this.users;\r\n\t _this.psaUsers = _this.users;\r\n\t _this.umUsers = _this.users;\r\n\t _this.camPartnerUsers = _this.users;\r\n\t });\r\n\t }\r\n\t this.domEvents.triggerOnDocument(\"appready\");\r\n\t };\r\n\t UserProvisionComponent.prototype.verify = function () {\r\n\t var _this = this;\r\n\t this.messages = [];\r\n\t this.errors = [];\r\n\t this.user.role = '';\r\n\t this.allSitesChecked = false;\r\n\t this.isVerifying = true;\r\n\t this.loading(true);\r\n\t this.accountService.verifyUser({\r\n\t emailAddress: this.user.emailAddress\r\n\t }).subscribe(function (verifyResult) {\r\n\t if (verifyResult.messages) {\r\n\t _this.messages = verifyResult.messages;\r\n\t }\r\n\t else {\r\n\t _this.setUserDetails(verifyResult);\r\n\t _this.verified = true;\r\n\t }\r\n\t _this.loading(false);\r\n\t _this.isVerifying = false;\r\n\t }, function (err) {\r\n\t _this.loading(false);\r\n\t _this.isVerifying = false;\r\n\t _this.auth.unauthorized(err);\r\n\t if (err._body !== \"\") {\r\n\t _this.errors = err.json();\r\n\t }\r\n\t });\r\n\t };\r\n\t UserProvisionComponent.prototype.setUserDetails = function (externalUser) {\r\n\t this.user.fullName = externalUser.fullName;\r\n\t this.user.sites = externalUser.sites;\r\n\t var epicWebRoles = [];\r\n\t this.user.sites.forEach(function (item) {\r\n\t item.access = false;\r\n\t if (epicWebRoles.indexOf(item.detail.custType) === -1) {\r\n\t epicWebRoles.push(item.detail.custType);\r\n\t }\r\n\t });\r\n\t if (this.loggedInUser.admin || this.loggedInUser.epicorEmployee) {\r\n\t if (this.defaultEpicorEmployee(this.user.emailAddress)) {\r\n\t this.roles = this.allRoles;\r\n\t this.user.role = 'EpicorEmployee';\r\n\t }\r\n\t else if (epicWebRoles.indexOf(\"Partner\") != -1) {\r\n\t this.roles = epicWebRoles.filter(function (e) { return (e !== 'EpicorEmployee' && e !== 'Administrator'); });\r\n\t }\r\n\t else {\r\n\t this.roles = epicWebRoles.filter(function (e) { return (e !== 'EpicorEmployee' && e !== 'Administrator'); });\r\n\t this.user.role = epicWebRoles[0];\r\n\t }\r\n\t }\r\n\t if (this.loggedInUser.partner) {\r\n\t this.user.role = 'EndUser';\r\n\t this.user.template = account_service_1.EmailTemplate.EndUser_ERPAnalyzer;\r\n\t }\r\n\t };\r\n\t UserProvisionComponent.prototype.notVerified = function () {\r\n\t this.user.role = '';\r\n\t this.verified = false;\r\n\t this.user.sites = [];\r\n\t this.user.template = account_service_1.EmailTemplate.ERPAnalyzer;\r\n\t this.user.notificationEmails = [];\r\n\t if (this.user.emailAddress) {\r\n\t this.user.emailAddress = this.removeWhiteSpace.transform(this.user.emailAddress);\r\n\t }\r\n\t };\r\n\t UserProvisionComponent.prototype.onSubmit = function () {\r\n\t var _this = this;\r\n\t this.loading(true);\r\n\t this.isSubmitting = true;\r\n\t if (this.user.role === 'Administrator' || this.user.role === 'EpicorEmployee') {\r\n\t this.user.sites = [];\r\n\t }\r\n\t if (this.user.role === 'EndUser' || this.user.role === 'Partner') {\r\n\t var selectedSites = this.user.sites.filter(function (s) { return s.access; });\r\n\t if (selectedSites.length == 0) {\r\n\t var conf = confirm(\"You are creating a user with no site association. This user will not be able to interact with the Upgrade Services tools.\\n\\nIf the correct Site for this user doesn't appear for selection in the list, verify that \" + this.user.emailAddress + \" is listed as a contact in EpicWeb for the site.\\n\\nDo you want to continue?\");\r\n\t if (!conf) {\r\n\t this.loading(false);\r\n\t this.isSubmitting = false;\r\n\t return;\r\n\t }\r\n\t }\r\n\t }\r\n\t this.accountService.provisionUser(this.user).subscribe(function (res) {\r\n\t _this.loading(false);\r\n\t _this.isSubmitting = false;\r\n\t _this.notVerified();\r\n\t }, function (err) {\r\n\t _this.loading(false);\r\n\t _this.isSubmitting = false;\r\n\t if (err._body !== \"\") {\r\n\t _this.errors = err.json();\r\n\t }\r\n\t });\r\n\t };\r\n\t UserProvisionComponent.prototype.loading = function (active) {\r\n\t this.isLoading = active;\r\n\t };\r\n\t UserProvisionComponent.prototype.allSites = function (checked) {\r\n\t var search = this.search;\r\n\t this.user.sites.forEach(function (site) {\r\n\t if (search === '') {\r\n\t site.access = checked;\r\n\t }\r\n\t else {\r\n\t if (site.id.toString().indexOf(search) !== -1) {\r\n\t site.access = checked;\r\n\t }\r\n\t }\r\n\t });\r\n\t };\r\n\t UserProvisionComponent.prototype.defaultEpicorEmployee = function (emailAddress) {\r\n\t if (emailAddress.split('@')[1].indexOf('epicor.com') > -1) {\r\n\t return true;\r\n\t }\r\n\t return false;\r\n\t };\r\n\t UserProvisionComponent.prototype.onRoleChange = function (role) {\r\n\t if (role === \"EpicorEmployee\" || role === \"Administrator\")\r\n\t this.user.template = account_service_1.EmailTemplate.ERPAnalyzer;\r\n\t if (role === \"EndUser\")\r\n\t this.user.template = account_service_1.EmailTemplate.EndUser_ERPAnalyzer;\r\n\t if (role === \"Partner\")\r\n\t this.user.template = account_service_1.EmailTemplate.PartnerWelcome;\r\n\t };\r\n\t UserProvisionComponent.prototype.getNotificationEmailsCount = function () {\r\n\t if (this.user.notificationEmails) {\r\n\t return this.user.notificationEmails.length;\r\n\t }\r\n\t return 0;\r\n\t };\r\n\t UserProvisionComponent.prototype.validateNotificationEmails = function () {\r\n\t if (this.user.notificationEmails) {\r\n\t this.user.notificationEmails = this.removeWhiteSpace.transform(this.notificationEmails).split(';');\r\n\t }\r\n\t };\r\n\t UserProvisionComponent.prototype.filterUsers = function (userType) {\r\n\t if (userType == 'cam')\r\n\t this.camUsers = this.getusers(this.searchCAMText);\r\n\t else if (userType == 'psa')\r\n\t this.psaUsers = this.getusers(this.searchPSAText);\r\n\t else if (userType == 'um')\r\n\t this.umUsers = this.getusers(this.searchUMText);\r\n\t else if (userType == 'pcam')\r\n\t this.camPartnerUsers = this.getusers(this.searchPCAMText);\r\n\t };\r\n\t UserProvisionComponent.prototype.getusers = function (searchText) {\r\n\t if (searchText == '')\r\n\t return this.users;\r\n\t else {\r\n\t return this.users.filter(function (user) { return user.emailAddress.toLowerCase().match(searchText.toLowerCase()); });\r\n\t }\r\n\t };\r\n\t UserProvisionComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'user-provision',\r\n\t template: __webpack_require__(369),\r\n\t providers: [account_service_1.AccountService, users_service_1.UsersService, dom_events_1.DOMEvents]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [auth_service_1.AuthService,\r\n\t account_service_1.AccountService,\r\n\t users_service_1.UsersService,\r\n\t dom_events_1.DOMEvents])\r\n\t ], UserProvisionComponent);\r\n\t return UserProvisionComponent;\r\n\t}());\r\n\texports.UserProvisionComponent = UserProvisionComponent;\r\n\n\n/***/ },\n/* 368 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar RemoveWhiteSpacePipe = (function () {\r\n\t function RemoveWhiteSpacePipe() {\r\n\t }\r\n\t RemoveWhiteSpacePipe.prototype.transform = function (value) {\r\n\t if (value) {\r\n\t return value.replace(/\\s/g, '');\r\n\t }\r\n\t return value;\r\n\t };\r\n\t RemoveWhiteSpacePipe = __decorate([\r\n\t core_1.Pipe({ name: 'removeWhiteSpace' })\r\n\t ], RemoveWhiteSpacePipe);\r\n\t return RemoveWhiteSpacePipe;\r\n\t}());\r\n\texports.RemoveWhiteSpacePipe = RemoveWhiteSpacePipe;\r\n\n\n/***/ },\n/* 369 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n\\r\\n
\\r\\n\\t\\r\\n\\t\\tProvision User\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\tverified_user\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t{{role}}\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\tAll\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
    \\r\\n\\t\\t\\t\\t\\t\\t
  • \\r\\n\\t\\t\\t\\t\\t\\t\\t{{ site.detail.orgName }} ({{ site.detail.country}}) ({{ site.id }})\\r\\n\\t\\t\\t\\t\\t\\t
  • \\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t \\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tNone\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{user.emailAddress}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t \\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tNone\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{user.emailAddress}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t \\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tNone\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{ user?.emailAddress }}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t \\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tNone\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{user.emailAddress}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tNew Epicor User\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tERP Analyser\\r\\n\\t\\t\\t\\t\\t\\t\\tNew End User\\r\\n\\t\\t\\t\\t\\t\\t\\tERP Analyser for Support\\r\\n\\t\\t\\t\\t\\t\\t\\tSend to Support\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tPartner Welcome\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tEpicor Employee - ERP Analyser\\r\\n\\t\\t\\t\\t\\t\\t\\tPartner Welcome\\r\\n\\t\\t\\t\\t\\t\\t\\tEnd User - ERP Analyser\\r\\n\\t\\t\\t\\t\\t\\t\\tNew End User\\r\\n\\t\\t\\t\\t\\t\\t\\tERP Analyser for Support\\r\\n\\t\\t\\t\\t\\t\\t\\tSend to Support\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
0\\\" style=\\\"margin-top: 10px\\\">\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t\\t\\t{{ msg.description }}\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
0\\\" style=\\\"margin-top: 10px\\\">\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t\\t\\t{{ error.description }}\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n/***/ },\n/* 370 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar account_service_1 = __webpack_require__(359);\r\n\tvar users_service_1 = __webpack_require__(333);\r\n\tvar sites_service_1 = __webpack_require__(371);\r\n\tvar dom_events_1 = __webpack_require__(329);\r\n\tvar UserCreateComponent = (function () {\r\n\t function UserCreateComponent(router, auth, userService, accountService, sitesService, domEvents) {\r\n\t this.router = router;\r\n\t this.auth = auth;\r\n\t this.userService = userService;\r\n\t this.accountService = accountService;\r\n\t this.sitesService = sitesService;\r\n\t this.domEvents = domEvents;\r\n\t this.user = {\r\n\t emailAddress: '',\r\n\t fullName: '',\r\n\t role: 'EndUser',\r\n\t sites: [],\r\n\t password: '',\r\n\t template: account_service_1.EmailTemplate.ERPAnalyzer,\r\n\t cam: '',\r\n\t psa: '',\r\n\t upgradeManager: ''\r\n\t };\r\n\t }\r\n\t UserCreateComponent.prototype.ngOnInit = function () {\r\n\t this.getRoles();\r\n\t this.domEvents.triggerOnDocument(\"appready\");\r\n\t };\r\n\t UserCreateComponent.prototype.getRoles = function () {\r\n\t var _this = this;\r\n\t this.userService.getRoles().subscribe(function (roles) {\r\n\t _this.roles = roles;\r\n\t }, function (err) { return _this.auth.unauthorized(err); });\r\n\t };\r\n\t UserCreateComponent.prototype.getSites = function () {\r\n\t var _this = this;\r\n\t this.sitesService.getSites().subscribe(function (sites) {\r\n\t _this.user.sites = sites;\r\n\t }, function (err) { return _this.auth.unauthorized(err); });\r\n\t };\r\n\t UserCreateComponent.prototype.onSubmit = function () {\r\n\t var _this = this;\r\n\t this.accountService.provisionUser(this.user).subscribe(function () {\r\n\t _this.router.navigate(['/users']);\r\n\t }, function (err) {\r\n\t _this.auth.unauthorized(err);\r\n\t if (err._body !== \"\") {\r\n\t _this.errors = err.json();\r\n\t }\r\n\t });\r\n\t };\r\n\t UserCreateComponent.prototype.onRoleChange = function (role) {\r\n\t if (role === \"EpicorEmployee\" || role === \"Administrator\")\r\n\t this.user.template = account_service_1.EmailTemplate.ERPAnalyzer;\r\n\t if (role === \"EndUser\")\r\n\t this.user.template = account_service_1.EmailTemplate.EndUser_ERPAnalyzer;\r\n\t if (role === \"Partner\")\r\n\t this.user.template = account_service_1.EmailTemplate.PartnerWelcome;\r\n\t };\r\n\t UserCreateComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'user-create',\r\n\t template: __webpack_require__(373),\r\n\t providers: [users_service_1.UsersService, account_service_1.AccountService, sites_service_1.SitesService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [router_1.Router,\r\n\t auth_service_1.AuthService,\r\n\t users_service_1.UsersService,\r\n\t account_service_1.AccountService,\r\n\t sites_service_1.SitesService,\r\n\t dom_events_1.DOMEvents])\r\n\t ], UserCreateComponent);\r\n\t return UserCreateComponent;\r\n\t}());\r\n\texports.UserCreateComponent = UserCreateComponent;\r\n\n\n/***/ },\n/* 371 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar http_1 = __webpack_require__(57);\r\n\tvar Observable_1 = __webpack_require__(4);\r\n\tvar angular2_jwt_1 = __webpack_require__(278);\r\n\tvar url_pipe_1 = __webpack_require__(372);\r\n\tvar config_service_1 = __webpack_require__(300);\r\n\t__webpack_require__(55);\r\n\tvar forkJoin_1 = __webpack_require__(51);\r\n\tvar SitesService = (function () {\r\n\t function SitesService(http, authHttp) {\r\n\t this.http = http;\r\n\t this.authHttp = authHttp;\r\n\t this.serviceBase = new config_service_1.ConfigService().getApiURI();\r\n\t this.sitesAPI = this.serviceBase + 'sites';\r\n\t this.queryStringPipe = new url_pipe_1.QueryStringPipe();\r\n\t }\r\n\t SitesService.prototype.createSite = function (siteId) {\r\n\t var url = this.sitesAPI + '/' + siteId;\r\n\t var body = '';\r\n\t return this.authHttp.post(url, body);\r\n\t };\r\n\t SitesService.prototype.deleteSite = function (siteId) {\r\n\t var url = this.sitesAPI + '/' + siteId;\r\n\t return this.authHttp.delete(url);\r\n\t };\r\n\t SitesService.prototype.getSites = function () {\r\n\t return this.authHttp.get(this.sitesAPI)\r\n\t .map(this.extractData);\r\n\t };\r\n\t SitesService.prototype.getSitesDTO = function (q, token) {\r\n\t if (q === void 0) { q = \"\"; }\r\n\t if (token === void 0) { token = \"\"; }\r\n\t token = encodeURIComponent(token);\r\n\t var url = this.sitesAPI + \"?q=\" + q + \"&token=\" + token;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t SitesService.prototype.getSitesIds = function () {\r\n\t var url = this.sitesAPI + '/ids';\r\n\t return this.authHttp.get(url);\r\n\t };\r\n\t SitesService.prototype.getSite = function (siteId) {\r\n\t var url = this.sitesAPI + '/' + siteId;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t SitesService.prototype.updateSite = function (site) {\r\n\t var url = this.sitesAPI + '/update';\r\n\t return this.authHttp.put(url, site);\r\n\t };\r\n\t SitesService.prototype.getAnalyserReport = function (siteId, version) {\r\n\t var url = this.sitesAPI + \"/\" + siteId + \"/analyserreports/\" + version;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t SitesService.prototype.getSiteAndLatestReport = function (siteId) {\r\n\t var siteUrl = this.sitesAPI + '/' + siteId;\r\n\t var reportUrl = this.sitesAPI + '/' + siteId + '/analyserreports/latest';\r\n\t var siteRequest = this.authHttp.get(siteUrl).map(function (response) { return response.json(); })\r\n\t .catch(function (error) { return Observable_1.Observable.of({ error: true }); });\r\n\t var reportRequest = this.authHttp.get(reportUrl).map(function (response) { return response.json(); })\r\n\t .catch(function (error) { return Observable_1.Observable.of({ error: true }); });\r\n\t return forkJoin_1.forkJoin([siteRequest, reportRequest]);\r\n\t };\r\n\t SitesService.prototype.getReportAndSiteDetails = function (siteId) {\r\n\t var url = this.sitesAPI + '/' + siteId + '/productDetails';\r\n\t return this.authHttp.get(url).map(this.extractData);\r\n\t };\r\n\t SitesService.prototype.getSiteAnalyserReportsSummary = function (siteId) {\r\n\t var url = this.sitesAPI + \"/\" + siteId + \"/analyserreports/summary\";\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t SitesService.prototype.getAnalyserReportSection = function (siteId, version, reportTab, reportSection, token) {\r\n\t var queryString = this.queryStringPipe.transform({ t: token });\r\n\t var url = this.sitesAPI + \"/\" + siteId + \"/analyserreports/\" + version + \"/tab/\" + reportTab + \"/section/\" + reportSection + queryString;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t SitesService.prototype.getAnalyserReportSectionDocumentCount = function (siteId, version, reportTab, reportSection) {\r\n\t var url = this.sitesAPI + \"/\" + siteId + \"/analyserreports/\" + version + \"/tab/\" + reportTab + \"/section/\" + reportSection + \"/count\";\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t SitesService.prototype.getAnalyserReportSectionDocumentKeepCount = function (siteId, version, reportTab, reportSection) {\r\n\t var url = this.sitesAPI + \"/\" + siteId + \"/analyserreports/\" + version + \"/tab/\" + reportTab + \"/section/\" + reportSection + \"/count/keep\";\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t SitesService.prototype.getAnalyserReportSectionDocumentReviewedCount = function (siteId, version, reportTab, reportSection) {\r\n\t var url = this.sitesAPI + \"/\" + siteId + \"/analyserreports/\" + version + \"/tab/\" + reportTab + \"/section/\" + reportSection + \"/count/reviewed\";\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t SitesService.prototype.getAnalyserReportCountStatistics = function (siteId, version) {\r\n\t var url = this.sitesAPI + \"/\" + siteId + \"/analyserreports/\" + version + \"/statistics/count\";\r\n\t return this.authHttp.get(url).map(this.extractData);\r\n\t };\r\n\t SitesService.prototype.updateAnalyserReportSectionDocument = function (siteId, version, reportTab, reportSection, docId, action, actionValue) {\r\n\t var queryString = this.queryStringPipe.transform({ a: action, v: actionValue });\r\n\t var url = this.sitesAPI + \"/\" + siteId + \"/analyserreports/\" + version + \"/tab/\" + reportTab + \"/section/\" + reportSection + \"/doc/\" + docId + queryString;\r\n\t return this.authHttp.put(url, null);\r\n\t };\r\n\t SitesService.prototype.updateAnalyserReportSectionDocuments = function (siteId, version, reportTab, reportSection, action, actionValue) {\r\n\t var queryString = this.queryStringPipe.transform({ a: action, v: actionValue });\r\n\t var url = this.sitesAPI + \"/\" + siteId + \"/analyserreports/\" + version + \"/tab/\" + reportTab + \"/section/\" + reportSection + \"/docs\" + queryString;\r\n\t return this.authHttp.put(url, null);\r\n\t };\r\n\t SitesService.prototype.getLatestAnalyserReport = function (siteId) {\r\n\t var url = this.sitesAPI + '/' + siteId + '/analyserreports/latest';\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t SitesService.prototype.getLocalAnalyserReport = function (report) {\r\n\t return this.http.get('/src/api/reports/' + report + '.json')\r\n\t .map(this.extractData);\r\n\t };\r\n\t SitesService.prototype.getFileShareReadFileSas = function (siteId) {\r\n\t var url = this.sitesAPI + '/' + siteId + '/share/files/readsas';\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t SitesService.prototype.getFile = function (url) {\r\n\t return this.http.get(url);\r\n\t };\r\n\t SitesService.prototype.getFileName = function (path) {\r\n\t var splitPath = path.split(\"\\\\\");\r\n\t var fileName = splitPath[splitPath.length - 1];\r\n\t return fileName;\r\n\t };\r\n\t SitesService.prototype.refreshChildSites = function (siteId) {\r\n\t var url = this.sitesAPI + \"/\" + siteId + \"/childsites/refresh\";\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t SitesService.prototype.getSitesCount = function () {\r\n\t var url = this.sitesAPI + \"/count\";\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t SitesService.prototype.getSiteSecurityLogs = function (siteId) {\r\n\t var url = this.sitesAPI + \"/\" + siteId + \"/securitylogs\";\r\n\t return this.authHttp.get(url).map(this.extractData);\r\n\t };\r\n\t SitesService.prototype.getSiteUsers = function (siteId) {\r\n\t var url = this.sitesAPI + \"/users/\" + siteId;\r\n\t return this.authHttp.get(url).map(this.extractData);\r\n\t };\r\n\t SitesService.prototype.extractData = function (res) {\r\n\t var body = res.json();\r\n\t return body || {};\r\n\t };\r\n\t SitesService.prototype.handleError = function (errors) {\r\n\t };\r\n\t SitesService = __decorate([\r\n\t core_1.Injectable(),\r\n\t __metadata(\"design:paramtypes\", [http_1.Http,\r\n\t angular2_jwt_1.AuthHttp])\r\n\t ], SitesService);\r\n\t return SitesService;\r\n\t}());\r\n\texports.SitesService = SitesService;\r\n\n\n/***/ },\n/* 372 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar QueryStringPipe = (function () {\r\n\t function QueryStringPipe() {\r\n\t }\r\n\t QueryStringPipe.prototype.transform = function (obj) {\r\n\t try {\r\n\t var query = [];\r\n\t for (var p in obj) {\r\n\t if (obj.hasOwnProperty(p)) {\r\n\t if (obj[p] != null && obj[p] !== '') {\r\n\t query.push(encodeURIComponent(p) + \"=\" + encodeURIComponent(obj[p]));\r\n\t }\r\n\t }\r\n\t }\r\n\t if (query.length > 0) {\r\n\t return \"?\" + query.join(\"&\");\r\n\t }\r\n\t return '';\r\n\t }\r\n\t catch (err) {\r\n\t return '';\r\n\t }\r\n\t };\r\n\t QueryStringPipe = __decorate([\r\n\t core_1.Pipe({ name: 'queryString' })\r\n\t ], QueryStringPipe);\r\n\t return QueryStringPipe;\r\n\t}());\r\n\texports.QueryStringPipe = QueryStringPipe;\r\n\n\n/***/ },\n/* 373 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n\\r\\n
\\r\\n\\t\\r\\n\\t\\t Create User\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t{{role}}\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t\\t\\t{{ error?.description }}\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n/***/ },\n/* 374 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar application_service_1 = __webpack_require__(352);\r\n\tvar application_dialog_1 = __webpack_require__(375);\r\n\tvar upgradeguide_service_1 = __webpack_require__(377);\r\n\tvar conversions_service_1 = __webpack_require__(378);\r\n\tvar dom_events_1 = __webpack_require__(329);\r\n\tvar applicationdoc_dialog_1 = __webpack_require__(379);\r\n\tvar upgradeguide_dialog_1 = __webpack_require__(382);\r\n\tvar HomeComponent = (function () {\r\n\t function HomeComponent(auth, dialog, viewContainerRef, applicationService, upgradeGuideService, conversionsService, domEvents) {\r\n\t var _this = this;\r\n\t this.auth = auth;\r\n\t this.dialog = dialog;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.applicationService = applicationService;\r\n\t this.upgradeGuideService = upgradeGuideService;\r\n\t this.conversionsService = conversionsService;\r\n\t this.domEvents = domEvents;\r\n\t this.Role = auth_service_1.Role;\r\n\t this.Permission = auth_service_1.Permission;\r\n\t this.applications = [];\r\n\t this.upgradeGuides = [];\r\n\t this.url = \"https://upgradeservices.epicor.com\";\r\n\t this.isLoading = false;\r\n\t this.isLoadingGuides = false;\r\n\t this.allowedToGuides = false;\r\n\t this.isLoading = true;\r\n\t this.applicationService.getApplications().subscribe(function (applications) {\r\n\t _this.applications = applications;\r\n\t _this.isLoading = false;\r\n\t });\r\n\t this.allowedToGuides = this.auth.hasRole(auth_service_1.Role.Administrator) || this.auth.hasRole(auth_service_1.Role.EpicorEmployee);\r\n\t this.hasActiveConversions();\r\n\t this.isLoadingGuides = true;\r\n\t this.upgradeGuideService.getUpgradeGuides().subscribe(function (guides) {\r\n\t _this.upgradeGuides = guides;\r\n\t _this.isLoadingGuides = false;\r\n\t });\r\n\t }\r\n\t HomeComponent.prototype.ngOnInit = function () {\r\n\t this.domEvents.triggerOnDocument(\"appready\");\r\n\t };\r\n\t HomeComponent.prototype.downloadApplication = function (application) {\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.dialogRef = this.dialog.open(application_dialog_1.ApplicationDialog, config);\r\n\t this.dialogRef.componentInstance.setApplicationName(application);\r\n\t };\r\n\t HomeComponent.prototype.downloadApplicationDocs = function (applicationName, fileName) {\r\n\t if (fileName && applicationName) {\r\n\t this.applicationService.downloadDoc(applicationName, fileName).subscribe(function (res) {\r\n\t window.open(res.uri, \"_blank\");\r\n\t }, function (err) {\r\n\t err.status;\r\n\t });\r\n\t }\r\n\t };\r\n\t HomeComponent.prototype.uploadApplicationDocs = function (applicationName, applicationDocument) {\r\n\t var _this = this;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t config.width = \"500px\";\r\n\t config.height = \"300px\";\r\n\t this.docDialogRef = this.dialog.open(applicationdoc_dialog_1.ApplicationDocDialog, config);\r\n\t this.docDialogRef.componentInstance.setApplicationName(applicationName, applicationDocument);\r\n\t this.docDialogRef.afterClosed().subscribe(function (result) {\r\n\t if (result === \"cancel\")\r\n\t return;\r\n\t _this.applicationService.getApplications().subscribe(function (applications) {\r\n\t _this.applications = applications;\r\n\t _this.isLoading = false;\r\n\t });\r\n\t });\r\n\t };\r\n\t HomeComponent.prototype.downloadGuide = function (guide) {\r\n\t if (guide) {\r\n\t this.upgradeGuideService.downloadGuide(guide).subscribe(function (res) {\r\n\t window.open(res.uri, \"_blank\");\r\n\t }, function (err) {\r\n\t err.status;\r\n\t });\r\n\t }\r\n\t };\r\n\t HomeComponent.prototype.uploadUpgradeGuide = function (guide) {\r\n\t var _this = this;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t config.width = \"350px\";\r\n\t this.guideDialogRef = this.dialog.open(upgradeguide_dialog_1.UpgradeGuideDialog, config);\r\n\t if (guide)\r\n\t this.guideDialogRef.componentInstance.enableEdit(guide);\r\n\t this.guideDialogRef.afterClosed().subscribe(function (result) {\r\n\t if (result === \"cancel\")\r\n\t return;\r\n\t _this.isLoadingGuides = true;\r\n\t _this.upgradeGuideService.getUpgradeGuides().subscribe(function (upgradeGuides) {\r\n\t _this.upgradeGuides = upgradeGuides;\r\n\t _this.isLoadingGuides = false;\r\n\t });\r\n\t });\r\n\t };\r\n\t HomeComponent.prototype.deleteUpgradeGuide = function (guide) {\r\n\t var _this = this;\r\n\t if (guide) {\r\n\t this.isLoadingGuides = true;\r\n\t var idx = this.upgradeGuides.indexOf(guide);\r\n\t if (idx !== -1)\r\n\t this.upgradeGuides.splice(idx, 1);\r\n\t this.isLoadingGuides = false;\r\n\t this.upgradeGuideService.deleteGuide(guide).subscribe(function (res) {\r\n\t _this.upgradeGuideService.getUpgradeGuides().subscribe(function (upgradeGuides) {\r\n\t _this.upgradeGuides = upgradeGuides;\r\n\t _this.isLoadingGuides = false;\r\n\t });\r\n\t }, function (err) {\r\n\t err.status;\r\n\t });\r\n\t }\r\n\t };\r\n\t HomeComponent.prototype.hasActiveConversions = function () {\r\n\t var _this = this;\r\n\t if (this.auth.hasRole(auth_service_1.Role.EndUser) || this.auth.hasRole(auth_service_1.Role.Partner)) {\r\n\t this.auth.getUser().sites.forEach(function (site) {\r\n\t _this.conversionsService.hasActiveConversion(site).subscribe(function (result) {\r\n\t _this.allowedToGuides = result.hasActiveConversion;\r\n\t });\r\n\t });\r\n\t }\r\n\t };\r\n\t HomeComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'home',\r\n\t template: __webpack_require__(385),\r\n\t providers: [application_service_1.ApplicationService, upgradeguide_service_1.UpgradeGuideService, conversions_service_1.ConversionsService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [auth_service_1.AuthService,\r\n\t material_1.MdDialog,\r\n\t core_1.ViewContainerRef,\r\n\t application_service_1.ApplicationService,\r\n\t upgradeguide_service_1.UpgradeGuideService,\r\n\t conversions_service_1.ConversionsService,\r\n\t dom_events_1.DOMEvents])\r\n\t ], HomeComponent);\r\n\t return HomeComponent;\r\n\t}());\r\n\texports.HomeComponent = HomeComponent;\r\n\n\n/***/ },\n/* 375 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar application_service_1 = __webpack_require__(352);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar ApplicationDialog = (function () {\r\n\t function ApplicationDialog(dialogRef, auth, applicationService) {\r\n\t this.dialogRef = dialogRef;\r\n\t this.auth = auth;\r\n\t this.applicationService = applicationService;\r\n\t this.agreed = false;\r\n\t }\r\n\t ApplicationDialog.prototype.setApplicationName = function (application) {\r\n\t this.application = application;\r\n\t };\r\n\t ApplicationDialog.prototype.download = function () {\r\n\t var _this = this;\r\n\t this.applicationService.download(this.application.name).subscribe(function (res) {\r\n\t window.open(res.uri, \"_self\");\r\n\t _this.dialogRef.close();\r\n\t }, function (err) {\r\n\t _this.auth.unauthorized(err);\r\n\t });\r\n\t };\r\n\t ApplicationDialog.prototype.close = function () {\r\n\t this.dialogRef.close();\r\n\t };\r\n\t ApplicationDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'application-dialog',\r\n\t template: __webpack_require__(376),\r\n\t providers: [application_service_1.ApplicationService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef,\r\n\t auth_service_1.AuthService,\r\n\t application_service_1.ApplicationService])\r\n\t ], ApplicationDialog);\r\n\t return ApplicationDialog;\r\n\t}());\r\n\texports.ApplicationDialog = ApplicationDialog;\r\n\n\n/***/ },\n/* 376 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n\\tUsing {{application.displayName}} and Our Agreement: \\r\\n\\t\\r\\n\\r\\n\\r\\n
\\r\\n\\t
\\r\\n\\r\\n\\t
\\r\\n\\t\\tI Agree\\r\\n\\t
\\r\\n\\r\\n\\t

Thank you Epicor Cloud Factory Team.

\\r\\n
\\r\\n
\\r\\n\\t\\r\\n
\";\n\n/***/ },\n/* 377 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar http_1 = __webpack_require__(57);\r\n\tvar angular2_jwt_1 = __webpack_require__(278);\r\n\tvar config_service_1 = __webpack_require__(300);\r\n\t__webpack_require__(55);\r\n\tvar UpgradeGuideService = (function () {\r\n\t function UpgradeGuideService(http, authHttp) {\r\n\t this.http = http;\r\n\t this.authHttp = authHttp;\r\n\t this.serviceBase = new config_service_1.ConfigService().getApiURI();\r\n\t this.upgradeguidesAPI = this.serviceBase + 'upgradeguides';\r\n\t }\r\n\t UpgradeGuideService.prototype.getUpgradeGuides = function () {\r\n\t return this.authHttp.get(this.upgradeguidesAPI).map(this.extractData);\r\n\t };\r\n\t UpgradeGuideService.prototype.downloadGuide = function (upgradeGuide) {\r\n\t var url = this.upgradeguidesAPI + \"/download/\" + upgradeGuide.id;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t UpgradeGuideService.prototype.uploadGuide = function (guideForm) {\r\n\t var headers = new http_1.Headers({ 'Authorization': \"Bearer \" + localStorage.getItem('access_token') });\r\n\t var options = new http_1.RequestOptions({ headers: headers });\r\n\t return this.http.post(this.upgradeguidesAPI, guideForm, options).map(this.extractData);\r\n\t };\r\n\t UpgradeGuideService.prototype.updateGuide = function (guideForm) {\r\n\t var headers = new http_1.Headers({ 'Authorization': \"Bearer \" + localStorage.getItem('access_token') });\r\n\t var options = new http_1.RequestOptions({ headers: headers });\r\n\t return this.http.put(this.upgradeguidesAPI, guideForm, options).map(this.extractData);\r\n\t };\r\n\t UpgradeGuideService.prototype.deleteGuide = function (upgradeGuide) {\r\n\t var url = this.upgradeguidesAPI + \"/\" + upgradeGuide.id;\r\n\t return this.authHttp.delete(url).map(this.extractData);\r\n\t };\r\n\t UpgradeGuideService.prototype.extractData = function (res) {\r\n\t var body = res.json();\r\n\t return body || {};\r\n\t };\r\n\t UpgradeGuideService = __decorate([\r\n\t core_1.Injectable(),\r\n\t __metadata(\"design:paramtypes\", [http_1.Http,\r\n\t angular2_jwt_1.AuthHttp])\r\n\t ], UpgradeGuideService);\r\n\t return UpgradeGuideService;\r\n\t}());\r\n\texports.UpgradeGuideService = UpgradeGuideService;\r\n\n\n/***/ },\n/* 378 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar http_1 = __webpack_require__(57);\r\n\tvar angular2_jwt_1 = __webpack_require__(278);\r\n\tvar config_service_1 = __webpack_require__(300);\r\n\tvar url_pipe_1 = __webpack_require__(372);\r\n\tvar interfaces_1 = __webpack_require__(304);\r\n\tvar ConversionsService = (function () {\r\n\t function ConversionsService(http, authHttp) {\r\n\t this.http = http;\r\n\t this.authHttp = authHttp;\r\n\t this.serviceBase = new config_service_1.ConfigService().getApiURI();\r\n\t this.conversionsAPI = this.serviceBase + 'conversions';\r\n\t this.queryStringPipe = new url_pipe_1.QueryStringPipe();\r\n\t }\r\n\t ConversionsService.prototype.createConversion = function (conversion) {\r\n\t var url = \"\" + this.conversionsAPI;\r\n\t return this.authHttp.post(url, conversion)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.updateConversion = function (conversionId, conversion) {\r\n\t var url = this.conversionsAPI + \"/\" + conversionId;\r\n\t return this.authHttp.put(url, conversion);\r\n\t };\r\n\t ConversionsService.prototype.updateConversionStatus = function (conversionId, status) {\r\n\t var url = this.conversionsAPI + \"/\" + conversionId + \"/status\";\r\n\t return this.authHttp.put(url, { status: status });\r\n\t };\r\n\t ConversionsService.prototype.deleteConversion = function (conversionId) {\r\n\t var url = this.conversionsAPI + \"/\" + conversionId;\r\n\t return this.authHttp.delete(url);\r\n\t };\r\n\t ConversionsService.prototype.getConversions = function () {\r\n\t var url = \"\" + this.conversionsAPI;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.getSiteConversions = function (siteId) {\r\n\t var url = this.conversionsAPI + \"/\" + siteId;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.hasActiveConversion = function (siteId) {\r\n\t var url = this.conversionsAPI + \"/hasActiveConversion/\" + siteId;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.getConversion = function (conversionId) {\r\n\t var url = this.conversionsAPI + \"/\" + conversionId;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.getConversionPass = function (conversionId, passNumber) {\r\n\t var url = this.conversionsAPI + \"/\" + conversionId + \"/passes/\" + passNumber;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.getConversionPassToolingVersion = function (conversionId, passNumber) {\r\n\t var url = this.conversionsAPI + \"/\" + conversionId + \"/passes/\" + passNumber;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.getConversionPassReconciliationReports = function (conversionPassId, companyId, category, difference) {\r\n\t var queryString = this.queryStringPipe.transform({\r\n\t companyId: companyId,\r\n\t category: category,\r\n\t difference: difference\r\n\t });\r\n\t var url = this.conversionsAPI + \"/passes/\" + conversionPassId + \"/reports/reconciliation\" + queryString;\r\n\t return this.authHttp.get(url).map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.getConversionPassReconciliationReportsCount = function (conversionPassId, companyId, category, difference) {\r\n\t var queryString = this.queryStringPipe.transform({\r\n\t companyId: companyId,\r\n\t category: category,\r\n\t difference: difference\r\n\t });\r\n\t var url = this.conversionsAPI + \"/passes/\" + conversionPassId + \"/reports/reconciliation/count\" + queryString;\r\n\t return this.authHttp.get(url).map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.deleteConversionPass = function (conversionPassId) {\r\n\t var url = this.conversionsAPI + \"/passes/\" + conversionPassId;\r\n\t return this.authHttp.delete(url);\r\n\t };\r\n\t ConversionsService.prototype.getConversionPasses = function (conversionId) {\r\n\t var url = this.conversionsAPI + \"/\" + conversionId + \"/passes\";\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.getLatestConversionPass = function (conversionId) {\r\n\t var url = this.conversionsAPI + \"/\" + conversionId + \"/Latestpass\";\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.getAllConversionPasses = function () {\r\n\t var url = this.conversionsAPI + \"/passes\";\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.getConversionPassSummaries = function (searchText, status, conversionId, token, sortColumn, sortAsc, pageSize, docState) {\r\n\t var queryString = this.queryStringPipe.transform({ searchText: searchText, s: status, conversionId: conversionId, t: token, sortColumn: sortColumn, sortAsc: sortAsc, pageSize: pageSize, docState: docState });\r\n\t var url = this.conversionsAPI + \"/passes/summary\" + queryString;\r\n\t return this.authHttp.get(url).map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.getConversionPassSummariesCount = function (status, conversionId, docState, siteId) {\r\n\t var queryString = this.queryStringPipe.transform({ status: status, conversionId: conversionId, docState: docState, siteId: siteId });\r\n\t var url = this.conversionsAPI + \"/passes/summary/count\" + queryString;\r\n\t return this.authHttp.get(url).map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.getConversionLivePassSummariesCount = function (status, conversionId, docState, siteId) {\r\n\t var queryString = this.queryStringPipe.transform({ status: status, conversionId: conversionId, docState: docState, siteId: siteId });\r\n\t var url = this.conversionsAPI + \"/passes/summary/countlive\" + queryString;\r\n\t return this.authHttp.get(url).map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.getConversionPassesByStatus = function (status) {\r\n\t var url = this.conversionsAPI + \"/passes/status?status=\" + status;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.getConversionPassLogs = function (conversionPassId, token, logType) {\r\n\t var queryString = this.queryStringPipe.transform({ token: token, logType: interfaces_1.ConversionPassLogType[logType] });\r\n\t var url = this.conversionsAPI + \"/passes/\" + conversionPassId + \"/logs\" + queryString;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.getAllConversionPassLogs = function (conversionPassId) {\r\n\t var url = this.conversionsAPI + \"/passes/\" + conversionPassId + \"/logs/all\";\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.getEffectiveTimeConversionPass = function (conversionPassId, endDate) {\r\n\t var url = this.conversionsAPI + \"/passes/\" + conversionPassId + \"/effectiveTimeAndErrors?EndDate=\" + endDate;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.getConversionPassLogsCount = function (conversionPassId, logType) {\r\n\t var url = this.conversionsAPI + \"/passes/\" + conversionPassId + \"/logs/\" + interfaces_1.ConversionPassLogType[logType] + \"/count\";\r\n\t return this.authHttp.get(url).map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.getConversionDescription = function (configuration) {\r\n\t var config = configuration;\r\n\t if (config) {\r\n\t return config.fromProduct + \" \" + config.fromVersion + \" to \" + config.toProduct + \" \" + config.toVersion;\r\n\t }\r\n\t return '';\r\n\t };\r\n\t ConversionsService.prototype.getConversionPassRDPPassword = function (conversionPassId) {\r\n\t var url = this.conversionsAPI + \"/passes/\" + conversionPassId + \"/rdp/password\";\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.getConversionPassProductPassword = function (conversionPassId) {\r\n\t var url = this.conversionsAPI + \"/passes/\" + conversionPassId + \"/product/user/password\";\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.logConversionPassIncident = function (conversionPassId, incident) {\r\n\t var url = this.conversionsAPI + \"/passes/\" + conversionPassId + \"/logs/incident\";\r\n\t return this.authHttp.post(url, incident);\r\n\t };\r\n\t ConversionsService.prototype.resubmitConversionPass = function (conversionId, conversionPassId) {\r\n\t var url = this.conversionsAPI + \"/\" + conversionId + \"/passes/\" + conversionPassId + \"/resubmit\";\r\n\t return this.authHttp.post(url, null)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.deleteConversionPassTasks = function (conversionPassId, parentIds) {\r\n\t var url = this.conversionsAPI + \"/passes/\" + conversionPassId + \"/tasks/delete\";\r\n\t return this.authHttp.put(url, parentIds);\r\n\t };\r\n\t ConversionsService.prototype.getConversionPassTTL = function (conversionPassId) {\r\n\t var url = this.conversionsAPI + \"/passes/\" + conversionPassId + \"/ttl\";\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.updateConversionPassTTL = function (conversionPassId, ttl) {\r\n\t var url = this.conversionsAPI + \"/passes/\" + conversionPassId + \"/ttl\";\r\n\t return this.authHttp.put(url, ttl)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.updateConversionPassStatus = function (conversionPassId, status) {\r\n\t var url = this.conversionsAPI + \"/passes/\" + conversionPassId + \"/status?Status=\" + status;\r\n\t return this.authHttp.put(url, null);\r\n\t };\r\n\t ConversionsService.prototype.getConversionPassesLimitDefault = function () {\r\n\t var url = this.conversionsAPI + \"/passes/defaultlimit\";\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.getConversionSchedule = function (queryParams) {\r\n\t var queryString = this.queryStringPipe.transform({\r\n\t q: queryParams.searchText,\r\n\t t: queryParams.token,\r\n\t completed: queryParams.completedQueryParam,\r\n\t livePassFilter: queryParams.livePassQueryParam,\r\n\t plannedDateFilter: queryParams.plannedDateQueryParam,\r\n\t pageSize: queryParams.pageSize,\r\n\t columnName: queryParams.columnName,\r\n\t sortAsc: queryParams.sortAsc\r\n\t });\r\n\t var url = this.conversionsAPI + \"/schedule\" + queryString;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.getPreviousSuccessConversionPass = function (conversionId, passNumber) {\r\n\t var url = this.conversionsAPI + \"/\" + conversionId + \"/passes/\" + passNumber + \"/previoussuccesspassnumber\";\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.getConversionGoLive = function (queryParams) {\r\n\t var queryString = this.queryStringPipe.transform({\r\n\t q: queryParams.searchText,\r\n\t t: queryParams.token,\r\n\t startDate: queryParams.fromDate,\r\n\t endDate: queryParams.toDate,\r\n\t goliveConversionStatus: queryParams.goliveConversionStatus,\r\n\t testConversionStatus: queryParams.testConversionStatus,\r\n\t pageSize: queryParams.pageSize,\r\n\t download: queryParams.download\r\n\t });\r\n\t var url = this.conversionsAPI + \"/golive\" + queryString;\r\n\t console.log(url);\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.getGoLiveCount = function (queryParams) {\r\n\t var queryString = this.queryStringPipe.transform({\r\n\t q: queryParams.searchText,\r\n\t t: queryParams.token,\r\n\t startDate: queryParams.fromDate,\r\n\t endDate: queryParams.toDate,\r\n\t goliveConversionStatus: queryParams.goliveConversionStatus,\r\n\t testConversionStatus: queryParams.testConversionStatus\r\n\t });\r\n\t var url = this.conversionsAPI + \"/golivecount\" + queryString;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.updateConversionSchedule = function (conversion) {\r\n\t var url = this.conversionsAPI + \"/schedule\";\r\n\t return this.authHttp.put(url, conversion);\r\n\t };\r\n\t ConversionsService.prototype.getRemainingPasses = function (conversionId) {\r\n\t var url = this.conversionsAPI + \"/\" + conversionId + \"/passesremaining\";\r\n\t return this.authHttp.get(url).map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.getNextPassNumber = function (conversionId) {\r\n\t var url = this.conversionsAPI + \"/\" + conversionId + \"/passes/nextpassnumber\";\r\n\t return this.authHttp.get(url).map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.getNextPassNumberSchedule = function (conversionId) {\r\n\t var url = this.conversionsAPI + \"/\" + conversionId + \"/passes/nextpassnumberschedule\";\r\n\t return this.authHttp.get(url).map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.startVM = function (conversionPassId) {\r\n\t var url = this.conversionsAPI + \"/passes/\" + conversionPassId + \"/vm/start\";\r\n\t return this.authHttp.get(url);\r\n\t };\r\n\t ConversionsService.prototype.escalateConversionPassToDevelopment = function (conversionPassId) {\r\n\t var url = this.conversionsAPI + \"/passes/\" + conversionPassId + \"/escalatetodevelopment\";\r\n\t return this.authHttp.post(url, null);\r\n\t };\r\n\t ConversionsService.prototype.addIPAddressToNSG = function (conversionPassId, ipAddress) {\r\n\t var url = this.conversionsAPI + \"/passes/\" + conversionPassId + \"/nsg/ip/\" + ipAddress + \"/add\";\r\n\t return this.authHttp.post(url, null);\r\n\t };\r\n\t ConversionsService.prototype.archiveConversionPass = function (conversionPassId) {\r\n\t var url = this.conversionsAPI + \"/passes/\" + conversionPassId + \"/archive\";\r\n\t return this.authHttp.put(url, null);\r\n\t };\r\n\t ConversionsService.prototype.unarchiveConversionPass = function (conversionPassId) {\r\n\t var url = this.conversionsAPI + \"/passes/\" + conversionPassId + \"/unarchive\";\r\n\t return this.authHttp.put(url, null);\r\n\t };\r\n\t ConversionsService.prototype.getVMStatusClass = function (vmStatus) {\r\n\t var vmStatusClass = '';\r\n\t switch (vmStatus) {\r\n\t case VirtualMachineStatus.ONLINE:\r\n\t vmStatusClass = 'vm-online';\r\n\t break;\r\n\t case VirtualMachineStatus.SHUTDOWN:\r\n\t vmStatusClass = 'vm-shutdown';\r\n\t break;\r\n\t case VirtualMachineStatus.DELETED:\r\n\t vmStatusClass = 'vm-deleted';\r\n\t break;\r\n\t default:\r\n\t vmStatusClass = 'vm-undefined';\r\n\t break;\r\n\t }\r\n\t return vmStatusClass;\r\n\t };\r\n\t ConversionsService.prototype.getVMStatusText = function (vmStatus) {\r\n\t var vmStatusText = '';\r\n\t switch (vmStatus) {\r\n\t case VirtualMachineStatus.ONLINE:\r\n\t vmStatusText = VirtualMachineStatus[VirtualMachineStatus.ONLINE];\r\n\t break;\r\n\t case VirtualMachineStatus.SHUTDOWN:\r\n\t vmStatusText = VirtualMachineStatus[VirtualMachineStatus.SHUTDOWN];\r\n\t break;\r\n\t case VirtualMachineStatus.DELETED:\r\n\t vmStatusText = VirtualMachineStatus[VirtualMachineStatus.DELETED];\r\n\t break;\r\n\t default:\r\n\t vmStatusText = 'N/A';\r\n\t break;\r\n\t }\r\n\t return vmStatusText;\r\n\t };\r\n\t ConversionsService.prototype.getCustomerSpecificDetails = function (siteId, region, fromVersion, toVersion) {\r\n\t var url = this.conversionsAPI + \"/getcustomerspecific/\" + siteId + \"?region=\" + region + \"&fromVersion=\" + fromVersion + \"&toVersion=\" + toVersion;\r\n\t return this.authHttp.get(url).map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.checkUnitOfMeasuresFileExists = function (conversionPassId) {\r\n\t var url = this.conversionsAPI + \"/passes/\" + conversionPassId + \"/uom/exists\";\r\n\t return this.authHttp.get(url).map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.createUnitOfMeasureDownloadToken = function (uri) {\r\n\t var url = this.conversionsAPI + \"/passes/uom/download/token\";\r\n\t return this.authHttp.post(url, { exists: true, uri: uri }).map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.downloadUnitOfMeasures = function (uri, sas) {\r\n\t var url = \"\" + uri + sas;\r\n\t window.open(url, \"_blank\");\r\n\t };\r\n\t ConversionsService.prototype.getConversionProcessTypes = function () {\r\n\t return [\r\n\t \"Cloud Converter\",\r\n\t \"Manual\"\r\n\t ];\r\n\t };\r\n\t ConversionsService.prototype.getConversionTypes = function () {\r\n\t return [\r\n\t \"Upgrade\",\r\n\t \"Migration\"\r\n\t ];\r\n\t };\r\n\t ConversionsService.prototype.getConversionDeploymentTypes = function () {\r\n\t return [\r\n\t \"Epicor ERP Public Cloud\",\r\n\t \"Epicor ERP Government Cloud\",\r\n\t \"ST Saas\",\r\n\t \"On Premise\"\r\n\t ];\r\n\t };\r\n\t ConversionsService.prototype.getConversionProjectTypes = function () {\r\n\t return [\r\n\t \"Standard Cirrus\",\r\n\t \"Partner Lead\",\r\n\t \"Self Serve\",\r\n\t \"Non-Cirrus\",\r\n\t \"Cirrus Trial\",\r\n\t \"Other\"\r\n\t ];\r\n\t };\r\n\t ConversionsService.prototype.getCloudConverterToolingVersions = function () {\r\n\t var url = this.conversionsAPI + \"/tooling/cloudconverter/versions\";\r\n\t return this.authHttp.get(url).map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.getVMSizes = function () {\r\n\t return [\r\n\t 'Standard_DS1_V2',\r\n\t 'Standard_DS2_V2',\r\n\t 'Standard_DS3_V2',\r\n\t 'Standard_DS4_v2',\r\n\t 'Standard_DS5_V2',\r\n\t 'Standard_DS11_V2',\r\n\t 'Standard_DS13_V2',\r\n\t 'Standard_DS14_V2',\r\n\t 'Standard_DS15_v2'\r\n\t ];\r\n\t };\r\n\t ConversionsService.prototype.getDiskSizes = function () {\r\n\t return [\r\n\t '128GB',\r\n\t '512GB',\r\n\t '1TB',\r\n\t '3TB'\r\n\t ];\r\n\t };\r\n\t ConversionsService.prototype.getConversionByStatus = function (queryParams) {\r\n\t var queryString = this.queryStringPipe.transform({\r\n\t q: queryParams.searchText,\r\n\t t: queryParams.token,\r\n\t status: queryParams.status,\r\n\t docState: queryParams.docStatus,\r\n\t livePassFilter: queryParams.livePassFilterParam,\r\n\t pageSize: queryParams.pageSize\r\n\t });\r\n\t var url = this.conversionsAPI + \"/getConversionByStatus\" + queryString;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.verifyUOMExists = function (siteId, region) {\r\n\t var url = this.conversionsAPI + \"/verifyuomexists?siteId=\" + siteId + \"®ion=\" + region;\r\n\t return this.authHttp.get(url).map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.validateUomMappingFile = function (conversion) {\r\n\t var url = this.conversionsAPI + \"/validateuommappingfile\";\r\n\t return this.authHttp.put(url, conversion).map(this.extractData);\r\n\t };\r\n\t ConversionsService.prototype.extractData = function (res) {\r\n\t var body = res.json();\r\n\t return body || {};\r\n\t };\r\n\t ConversionsService = __decorate([\r\n\t core_1.Injectable(),\r\n\t __metadata(\"design:paramtypes\", [http_1.Http,\r\n\t angular2_jwt_1.AuthHttp])\r\n\t ], ConversionsService);\r\n\t return ConversionsService;\r\n\t}());\r\n\texports.ConversionsService = ConversionsService;\r\n\tvar VirtualMachineStatus;\r\n\t(function (VirtualMachineStatus) {\r\n\t VirtualMachineStatus[VirtualMachineStatus[\"ONLINE\"] = 0] = \"ONLINE\";\r\n\t VirtualMachineStatus[VirtualMachineStatus[\"SHUTDOWN\"] = 1] = \"SHUTDOWN\";\r\n\t VirtualMachineStatus[VirtualMachineStatus[\"DELETED\"] = 2] = \"DELETED\";\r\n\t})(VirtualMachineStatus = exports.VirtualMachineStatus || (exports.VirtualMachineStatus = {}));\r\n\n\n/***/ },\n/* 379 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar application_service_1 = __webpack_require__(352);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar ApplicationDocDialog = (function () {\r\n\t function ApplicationDocDialog(dialogRef, auth, applicationService) {\r\n\t this.dialogRef = dialogRef;\r\n\t this.auth = auth;\r\n\t this.applicationService = applicationService;\r\n\t this.fileNameLbl = \"\";\r\n\t }\r\n\t ApplicationDocDialog.prototype.setApplicationName = function (applicationName, applicationDocument) {\r\n\t this.applicationName = applicationName;\r\n\t this.applicationDocument = applicationDocument;\r\n\t this.fileAccept = applicationDocument.fileName.substring(applicationDocument.fileName.lastIndexOf('.'));\r\n\t };\r\n\t ApplicationDocDialog.prototype.onChange = function (event) {\r\n\t var files = event.target.files;\r\n\t if (files.length === 0) {\r\n\t return;\r\n\t }\r\n\t this.file = files[0];\r\n\t this.fileNameLbl = this.file.name;\r\n\t };\r\n\t ApplicationDocDialog.prototype.submit = function () {\r\n\t if (this.file == null) {\r\n\t return;\r\n\t }\r\n\t var fileToUpload = this.file;\r\n\t var formData = new FormData();\r\n\t formData.append('file', fileToUpload, fileToUpload.name);\r\n\t this.applicationService.uploadDoc(this.applicationName, this.applicationDocument.fileName, formData)\r\n\t .subscribe(function (res) {\r\n\t window.open(res.uri, \"_self\");\r\n\t }, function (err) {\r\n\t err.status;\r\n\t });\r\n\t this.close();\r\n\t };\r\n\t ApplicationDocDialog.prototype.close = function () {\r\n\t this.dialogRef.close();\r\n\t };\r\n\t ApplicationDocDialog = __decorate([\r\n\t core_1.Component({\r\n\t styles: [__webpack_require__(380)],\r\n\t selector: 'applicationdoc-dialog',\r\n\t template: __webpack_require__(381),\r\n\t providers: [application_service_1.ApplicationService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef,\r\n\t auth_service_1.AuthService,\r\n\t application_service_1.ApplicationService])\r\n\t ], ApplicationDocDialog);\r\n\t return ApplicationDocDialog;\r\n\t}());\r\n\texports.ApplicationDocDialog = ApplicationDocDialog;\r\n\n\n/***/ },\n/* 380 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \".upload-btn-wrapper {\\r\\n position: relative;\\r\\n overflow: hidden;\\r\\n height: 100px; \\r\\n overflow-y:auto; \\r\\n width: auto;\\r\\n text-align: center;\\r\\n }\\r\\n \\r\\n .custom-btn {\\r\\n padding: 8px 20px;\\r\\n border-radius: 8px;\\r\\n margin-top: 10px;\\r\\n }\\r\\n \\r\\n .upload-btn-wrapper input[type=file] {\\r\\n position: absolute;\\r\\n left: 0;\\r\\n top: 0;\\r\\n opacity: 0;\\r\\n width: 160px;\\r\\n height: 52px;\\r\\n }\"\n\n/***/ },\n/* 381 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n Upload a file\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\";\n\n/***/ },\n/* 382 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar upgradeguide_service_1 = __webpack_require__(377);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar UpgradeGuideDialog = (function () {\r\n\t function UpgradeGuideDialog(dialogRef, auth, upgradeGuideService) {\r\n\t this.dialogRef = dialogRef;\r\n\t this.auth = auth;\r\n\t this.upgradeGuideService = upgradeGuideService;\r\n\t this.upgradeGuide = {\r\n\t id: null,\r\n\t fileName: null,\r\n\t description: null,\r\n\t fileUri: null\r\n\t };\r\n\t this.isUpdate = false;\r\n\t this.fileNameLbl = \"\";\r\n\t this.result = \"cancel\";\r\n\t }\r\n\t UpgradeGuideDialog.prototype.onChange = function (event) {\r\n\t var files = event.target.files;\r\n\t if (files.length === 0) {\r\n\t return;\r\n\t }\r\n\t this.file = files[0];\r\n\t this.fileNameLbl = this.file.name;\r\n\t };\r\n\t UpgradeGuideDialog.prototype.enableEdit = function (upgradeGuide) {\r\n\t this.upgradeGuide = upgradeGuide;\r\n\t this.fileNameLbl = upgradeGuide.fileName;\r\n\t this.isUpdate = true;\r\n\t };\r\n\t UpgradeGuideDialog.prototype.submit = function () {\r\n\t var _this = this;\r\n\t if (!this.isUpdate && this.file == null) {\r\n\t return;\r\n\t }\r\n\t var fileToUpload = this.file;\r\n\t var formData = new FormData();\r\n\t if (this.file != null) {\r\n\t this.upgradeGuide.fileName = fileToUpload.name;\r\n\t formData.append('file', fileToUpload, fileToUpload.name);\r\n\t }\r\n\t if (this.isUpdate)\r\n\t formData.append('Id', this.upgradeGuide.id);\r\n\t formData.append('FileName', this.upgradeGuide.fileName);\r\n\t if (this.upgradeGuide.description)\r\n\t formData.append('Description', this.upgradeGuide.description);\r\n\t this.result = \"reload\";\r\n\t if (this.isUpdate) {\r\n\t this.upgradeGuideService.updateGuide(formData)\r\n\t .subscribe(function (res) {\r\n\t _this.result = res;\r\n\t }, function (err) {\r\n\t err.status;\r\n\t });\r\n\t }\r\n\t else {\r\n\t this.upgradeGuideService.uploadGuide(formData)\r\n\t .subscribe(function (res) {\r\n\t _this.result = res;\r\n\t }, function (err) {\r\n\t err.status;\r\n\t });\r\n\t }\r\n\t this.close();\r\n\t };\r\n\t UpgradeGuideDialog.prototype.close = function () {\r\n\t this.dialogRef.close(this.result);\r\n\t };\r\n\t UpgradeGuideDialog = __decorate([\r\n\t core_1.Component({\r\n\t styles: [__webpack_require__(383)],\r\n\t selector: 'upgradeguide-dialog',\r\n\t template: __webpack_require__(384),\r\n\t providers: [upgradeguide_service_1.UpgradeGuideService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef,\r\n\t auth_service_1.AuthService,\r\n\t upgradeguide_service_1.UpgradeGuideService])\r\n\t ], UpgradeGuideDialog);\r\n\t return UpgradeGuideDialog;\r\n\t}());\r\n\texports.UpgradeGuideDialog = UpgradeGuideDialog;\r\n\n\n/***/ },\n/* 383 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \".field-spacer {\\r\\n margin:12px 0\\r\\n}\\r\\n\\r\\n.field-input {\\r\\n height:38px;\\r\\n border:1px solid #CCC;\\r\\n}\\r\\n\\r\\n.field-input-fill-remaining-space {\\r\\n width: 100%;\\r\\n height: 38px;\\r\\n border:1px solid #CCC;\\r\\n padding-left: 4px;\\r\\n}\\r\\n\\r\\n.upload-btn-wrapper {\\r\\n position: relative;\\r\\n overflow: hidden;\\r\\n height: auto; \\r\\n overflow-y:hidden; \\r\\n width: auto;\\r\\n text-align: center;\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n \\r\\n.custom-btn {\\r\\n border-radius: 8px;\\r\\n}\\r\\n\\r\\n.file-field-container {\\r\\n text-align: center;\\r\\n border-style: solid;\\r\\n border-width: 1px;\\r\\n border-color: lightgray;\\r\\n}\\r\\n\\r\\n.upload-btn-wrapper input[type=file] {\\r\\n position: absolute;\\r\\n left: 0;\\r\\n top: 0;\\r\\n opacity: 0;\\r\\n width: 100%;\\r\\n height: 52px;\\r\\n}\"\n\n/***/ },\n/* 384 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n Upload a file\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n cloud_upload\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\";\n\n/***/ },\n/* 385 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\tWelcome to the Epicor Cloud Upgrade Services portal \\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t

This portal enables you to access Epicor cloud services solutions in support of your upgrade project. This portal is accessible via EPICweb, Epicor’s secure customer portal or by going to {{url}}

\\r\\n\\r\\n\\t\\t\\t

This portal is designed to reduce the barriers to upgrading and to provide a better experience for users in the upgrade process. In the future, additional cloud services will be available here to support your upgrade project.

\\r\\n\\r\\n\\t\\t\\t

Analyzer - Take the First Steps

\\r\\n\\t\\t\\t

Epicor ERP is a flexible application that can be tailored to fit. When upgrading to the latest version of Epicor ERP, it is important to understand your current solution, including modifications and tailoring. The Analyzer tool automates this time consuming step. It currently works with Vista / Vantage 8.03, Epicor 9.04, Epicor 9.05 and Epicor ERP 10. It can run safely on your production server and generates a report that you and Epicor can access in this portal.

\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t

Our first step in preparing your organization to take advantage of Epicor ERP is to understand better how you’re using Epicor ERP or Vantage/Vista today. The Analyzer eliminates the need for you or your IT staff to manually report tailoring elements in your current system. It provides a view of your environment and is simple to run.

\\r\\n\\r\\n\\t\\t\\t
    \\r\\n\\t\\t\\t\\t
  1. Download ERP Analyser. See below instruction for download.
  2. \\r\\n\\t\\t\\t\\t
  3. Install on your Epicor ERP Application Server (Vista/Vantage/Epicor 9). You will need administrator rights to do this.
  4. \\r\\n\\t\\t\\t\\t
  5. Run the Analyzer (from the Start Menu)
  6. \\r\\n\\t\\t\\t\\t
  7. Login with your Epicor Cloud Upgrade Services Credentials and press GO.
  8. \\r\\n\\t\\t\\t\\t
  9. Review your report via the Epicor Cloud Upgrade Services Portal.
  10. \\r\\n\\t\\t\\t
\\r\\n\\t\\t\\tUpgrade Guide\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
GuideDescriptionEditDelete
{{guide.fileName}}{{guide.description}}
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\tApplications\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t{{application.displayName}}\\r\\n\\t\\t\\t\\t\\tLatest version: {{application.latestVersion}}\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t

{{application.description}}

\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n/***/ },\n/* 386 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar sites_service_1 = __webpack_require__(371);\r\n\tvar dom_events_1 = __webpack_require__(329);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar SitesComponent = (function () {\r\n\t function SitesComponent(sitesService, domEvents, router, pagerService, auth) {\r\n\t this.sitesService = sitesService;\r\n\t this.domEvents = domEvents;\r\n\t this.router = router;\r\n\t this.pagerService = pagerService;\r\n\t this.auth = auth;\r\n\t this.searchText = '';\r\n\t this.pageIndex = 0;\r\n\t this.tokens = [\"\"];\r\n\t this.sitesCount = 0;\r\n\t this.hasMoreResults = false;\r\n\t this.Role = auth_service_1.Role;\r\n\t this.Permission = auth_service_1.Permission;\r\n\t }\r\n\t SitesComponent.prototype.ngOnInit = function () {\r\n\t this.getSites();\r\n\t this.getSitesCount();\r\n\t this.domEvents.triggerOnDocument('appready');\r\n\t };\r\n\t SitesComponent.prototype.getSites = function (searchTerm, token) {\r\n\t var _this = this;\r\n\t if (searchTerm === void 0) { searchTerm = \"\"; }\r\n\t if (token === void 0) { token = \"\"; }\r\n\t this.isLoading = true;\r\n\t this.sitesService.getSitesDTO(searchTerm, token).subscribe(function (response) {\r\n\t _this.sites = response.result;\r\n\t _this.hasMoreResults = response.hasMoreResults;\r\n\t if (response.requestContinuation != null) {\r\n\t var token = JSON.parse(response.requestContinuation).token;\r\n\t if (typeof _this.tokens[_this.pageIndex + 1] === 'undefined') {\r\n\t _this.tokens.push(token);\r\n\t }\r\n\t }\r\n\t _this.isLoading = false;\r\n\t });\r\n\t };\r\n\t SitesComponent.prototype.getSitesCount = function () {\r\n\t var _this = this;\r\n\t this.sitesService.getSitesCount().subscribe(function (count) {\r\n\t _this.sitesCount = count;\r\n\t });\r\n\t };\r\n\t SitesComponent.prototype.filterSite = function () {\r\n\t var _this = this;\r\n\t if (this.searchTimeout != undefined)\r\n\t clearTimeout(this.searchTimeout);\r\n\t this.searchTimeout = setTimeout(function () {\r\n\t _this.pageIndex = 0;\r\n\t _this.tokens = [\"\"];\r\n\t var token = _this.tokens[_this.pageIndex];\r\n\t _this.getSites(_this.searchText, token);\r\n\t }, 500);\r\n\t };\r\n\t SitesComponent.prototype.previous = function () {\r\n\t this.pageIndex -= 1;\r\n\t var token = this.tokens[this.pageIndex];\r\n\t if (typeof token !== 'undefined') {\r\n\t this.getSites(this.searchText, token);\r\n\t }\r\n\t else {\r\n\t this.pageIndex += 1;\r\n\t }\r\n\t };\r\n\t SitesComponent.prototype.next = function () {\r\n\t this.pageIndex += 1;\r\n\t var token = this.tokens[this.pageIndex];\r\n\t if (typeof token !== 'undefined') {\r\n\t this.getSites(this.searchText, token);\r\n\t }\r\n\t else {\r\n\t this.pageIndex -= 1;\r\n\t }\r\n\t };\r\n\t SitesComponent.prototype.create = function () {\r\n\t if (this.auth.hasRole(auth_service_1.Role.Administrator) || this.auth.hasPermission(auth_service_1.Permission.SiteCreate)) {\r\n\t this.router.navigateByUrl('/sites/create');\r\n\t }\r\n\t };\r\n\t SitesComponent.prototype.openSiteInNewTab = function (site) {\r\n\t var url = window.location.origin + \"/#/sites/\" + site.siteId;\r\n\t window.open(url, \"_blank\");\r\n\t };\r\n\t SitesComponent.prototype.viewSite = function (site) {\r\n\t this.router.navigateByUrl('/sites/' + site.siteId);\r\n\t };\r\n\t SitesComponent.prototype.delete = function (site) {\r\n\t var _this = this;\r\n\t if (confirm('Are you sure you want to delete site (\"' + site.siteId + '\")')) {\r\n\t this.sitesService.deleteSite(site.siteId).subscribe(function (res) {\r\n\t _this.getSites();\r\n\t });\r\n\t }\r\n\t };\r\n\t SitesComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'sites',\r\n\t styles: [__webpack_require__(387)],\r\n\t template: __webpack_require__(388),\r\n\t providers: [sites_service_1.SitesService, pager_service_1.PagerService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [sites_service_1.SitesService,\r\n\t dom_events_1.DOMEvents,\r\n\t router_1.Router,\r\n\t pager_service_1.PagerService,\r\n\t auth_service_1.AuthService])\r\n\t ], SitesComponent);\r\n\t return SitesComponent;\r\n\t}());\r\n\texports.SitesComponent = SitesComponent;\r\n\n\n/***/ },\n/* 387 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"td {\\r\\n padding: 2px;\\r\\n margin: 0\\r\\n}\"\n\n/***/ },\n/* 388 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"Sites ({{sitesCount}})\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
IdNameCAMPSA
security{{site?.siteId}}{{site?.siteName}}{{site?.cam === null ? 'N/A' : site.cam}}{{site?.psa === null ? 'N/A' : site.psa }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\";\n\n/***/ },\n/* 389 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar sites_service_1 = __webpack_require__(371);\r\n\tvar users_service_1 = __webpack_require__(333);\r\n\tvar storage_account_service_1 = __webpack_require__(390);\r\n\tvar region_service_1 = __webpack_require__(391);\r\n\tvar dom_events_1 = __webpack_require__(329);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar conversions_interface_1 = __webpack_require__(392);\r\n\tvar conversions_service_1 = __webpack_require__(378);\r\n\tvar cloudview_service_1 = __webpack_require__(393);\r\n\tvar string_pipe_1 = __webpack_require__(368);\r\n\tvar zone_service_1 = __webpack_require__(394);\r\n\tvar SiteComponent = (function () {\r\n\t function SiteComponent(sitesService, route, router, usersService, conversionsService, regionService, zoneServices, domEvents, auth, storageAccount, cloudviewService, viewContainerRef) {\r\n\t var _this = this;\r\n\t this.sitesService = sitesService;\r\n\t this.route = route;\r\n\t this.router = router;\r\n\t this.usersService = usersService;\r\n\t this.conversionsService = conversionsService;\r\n\t this.regionService = regionService;\r\n\t this.zoneServices = zoneServices;\r\n\t this.domEvents = domEvents;\r\n\t this.auth = auth;\r\n\t this.storageAccount = storageAccount;\r\n\t this.cloudviewService = cloudviewService;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.editing = false;\r\n\t this.editingSites = false;\r\n\t this.conversions = [];\r\n\t this.status = conversions_interface_1.ConversionStatus;\r\n\t this.regions = [];\r\n\t this.zones = [];\r\n\t this.storageAccountRegions = [];\r\n\t this.cloudViewSiteInstances = [];\r\n\t this.removeWhiteSpace = new string_pipe_1.RemoveWhiteSpacePipe();\r\n\t this.notificationEmails = '';\r\n\t this.InstanceStatus = cloudview_service_1.InstanceStatus;\r\n\t this.advancedSettingsVisible = false;\r\n\t this.Role = auth_service_1.Role;\r\n\t this.Permission = auth_service_1.Permission;\r\n\t this.route.params.subscribe(function (params) {\r\n\t _this.siteId = +params['siteId'];\r\n\t });\r\n\t }\r\n\t SiteComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.getSite(this.siteId);\r\n\t if (this.auth.hasRole(auth_service_1.Role.Administrator) || this.auth.hasRole(auth_service_1.Role.EpicorEmployee)) {\r\n\t this.getStorageAccountRegions();\r\n\t this.usersService.getUsersInRoles([auth_service_1.Role.Administrator, auth_service_1.Role.EpicorEmployee]).subscribe(function (users) {\r\n\t _this.users = users;\r\n\t });\r\n\t }\r\n\t this.domEvents.triggerOnDocument('appready');\r\n\t };\r\n\t SiteComponent.prototype.getSite = function (siteId) {\r\n\t var _this = this;\r\n\t this.isLoading = true;\r\n\t this.sitesService.getSite(siteId).subscribe(function (site) {\r\n\t _this.site = site;\r\n\t if (_this.site.notificationEmails) {\r\n\t _this.notificationEmails = _this.site.notificationEmails.join(';');\r\n\t }\r\n\t _this.getRegions();\r\n\t _this.site.originDescr = 'On Premise';\r\n\t if (_this.site.origin) {\r\n\t switch (_this.site.origin) {\r\n\t case 'cloud':\r\n\t _this.site.originDescr = 'Cloud';\r\n\t break;\r\n\t case 'onpremise':\r\n\t _this.site.originDescr = 'On Premise';\r\n\t break;\r\n\t }\r\n\t }\r\n\t _this.isLoading = false;\r\n\t }, function (err) { _this.isLoading = false; });\r\n\t };\r\n\t SiteComponent.prototype.getRegions = function () {\r\n\t var _this = this;\r\n\t this.zoneServices.getZoneRegions(this.site.zoneId).subscribe(function (regions) {\r\n\t _this.regions = regions;\r\n\t });\r\n\t };\r\n\t SiteComponent.prototype.refreshZoneAndRegions = function () {\r\n\t var _this = this;\r\n\t this.zoneServices.getSiteZoneRegions(this.site.siteId).subscribe(function (regions) {\r\n\t _this.regions = regions;\r\n\t });\r\n\t };\r\n\t SiteComponent.prototype.getZones = function () {\r\n\t var _this = this;\r\n\t this.zoneServices.getZones().subscribe(function (zones) {\r\n\t _this.zones = zones;\r\n\t });\r\n\t };\r\n\t SiteComponent.prototype.getStorageAccountRegions = function () {\r\n\t var _this = this;\r\n\t this.storageAccount.getStorageAccountRegions().subscribe(function (storageAccounts) {\r\n\t _this.storageAccountRegions = storageAccounts;\r\n\t });\r\n\t };\r\n\t SiteComponent.prototype.getNotificationEmailsCount = function () {\r\n\t if (this.site.notificationEmails) {\r\n\t return this.site.notificationEmails.length;\r\n\t }\r\n\t return 0;\r\n\t };\r\n\t SiteComponent.prototype.validateNotificationEmails = function () {\r\n\t if (this.notificationEmails) {\r\n\t this.site.notificationEmails = this.removeWhiteSpace.transform(this.notificationEmails).split(';');\r\n\t }\r\n\t };\r\n\t SiteComponent.prototype.toggleAdvanced = function () {\r\n\t if (this.advancedSettingsVisible) {\r\n\t this.advancedSettingsVisible = false;\r\n\t }\r\n\t else {\r\n\t this.advancedSettingsVisible = true;\r\n\t }\r\n\t };\r\n\t SiteComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'site',\r\n\t template: __webpack_require__(395),\r\n\t styles: [__webpack_require__(396)],\r\n\t providers: [sites_service_1.SitesService, users_service_1.UsersService, conversions_service_1.ConversionsService, region_service_1.RegionService, storage_account_service_1.StorageAccountService, cloudview_service_1.CloudViewService, zone_service_1.ZoneService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [sites_service_1.SitesService,\r\n\t router_1.ActivatedRoute,\r\n\t router_1.Router,\r\n\t users_service_1.UsersService,\r\n\t conversions_service_1.ConversionsService,\r\n\t region_service_1.RegionService,\r\n\t zone_service_1.ZoneService,\r\n\t dom_events_1.DOMEvents,\r\n\t auth_service_1.AuthService,\r\n\t storage_account_service_1.StorageAccountService,\r\n\t cloudview_service_1.CloudViewService,\r\n\t core_1.ViewContainerRef])\r\n\t ], SiteComponent);\r\n\t return SiteComponent;\r\n\t}());\r\n\texports.SiteComponent = SiteComponent;\r\n\n\n/***/ },\n/* 390 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar http_1 = __webpack_require__(57);\r\n\tvar angular2_jwt_1 = __webpack_require__(278);\r\n\tvar config_service_1 = __webpack_require__(300);\r\n\tvar StorageAccountService = (function () {\r\n\t function StorageAccountService(http, authHttp) {\r\n\t this.http = http;\r\n\t this.authHttp = authHttp;\r\n\t this.serviceBase = new config_service_1.ConfigService().getApiURI();\r\n\t this.storageAccountsAPI = this.serviceBase + 'storageaccounts';\r\n\t }\r\n\t StorageAccountService.prototype.getStorageAccounts = function () {\r\n\t var url = this.storageAccountsAPI;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t StorageAccountService.prototype.getStorageAccountRegions = function () {\r\n\t var url = this.storageAccountsAPI + \"/regions\";\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t StorageAccountService.prototype.getStorageAccount = function (accountName) {\r\n\t var url = this.storageAccountsAPI + '/' + accountName;\r\n\t return this.authHttp.get(url);\r\n\t };\r\n\t StorageAccountService.prototype.getStorageAccountShares = function (accountName) {\r\n\t var url = this.storageAccountsAPI + '/' + accountName + '/shares';\r\n\t return this.authHttp.get(url);\r\n\t };\r\n\t StorageAccountService.prototype.getStorageAccountShare = function (accountName, shareName) {\r\n\t var url = this.storageAccountsAPI + '/' + accountName + '/shares/' + shareName;\r\n\t return this.authHttp.get(url);\r\n\t };\r\n\t StorageAccountService.prototype.createFileShare = function (accountName, shareName, siteId) {\r\n\t var url = this.storageAccountsAPI + \"/\" + accountName + \"/shares/\" + shareName + \"?siteId=\" + siteId;\r\n\t return this.authHttp.post(url, null);\r\n\t };\r\n\t StorageAccountService.prototype.deleteFileShare = function (accountName, shareName, siteId) {\r\n\t var url = this.storageAccountsAPI + \"/\" + accountName + \"/shares/\" + shareName + \"?siteId=\" + siteId;\r\n\t return this.authHttp.delete(url);\r\n\t };\r\n\t StorageAccountService.prototype.addDBPackerQueueMessage = function (messageText) {\r\n\t var url = this.storageAccountsAPI + \"/queues/db-packer-queue/add\";\r\n\t var body = {\r\n\t messageText: messageText\r\n\t };\r\n\t return this.authHttp.post(url, body);\r\n\t };\r\n\t StorageAccountService.prototype.extractData = function (res) {\r\n\t var body = res.json();\r\n\t return body || {};\r\n\t };\r\n\t StorageAccountService = __decorate([\r\n\t core_1.Injectable(),\r\n\t __metadata(\"design:paramtypes\", [http_1.Http,\r\n\t angular2_jwt_1.AuthHttp])\r\n\t ], StorageAccountService);\r\n\t return StorageAccountService;\r\n\t}());\r\n\texports.StorageAccountService = StorageAccountService;\r\n\n\n/***/ },\n/* 391 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar angular2_jwt_1 = __webpack_require__(278);\r\n\tvar config_service_1 = __webpack_require__(300);\r\n\t__webpack_require__(55);\r\n\tvar RegionService = (function () {\r\n\t function RegionService(authHttp) {\r\n\t this.authHttp = authHttp;\r\n\t this.serviceBase = new config_service_1.ConfigService().getApiURI();\r\n\t this.regionAPI = this.serviceBase + \"region\";\r\n\t }\r\n\t RegionService.prototype.getRegions = function () {\r\n\t var url = this.regionAPI;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t RegionService.prototype.getCountryCodes = function () {\r\n\t var url = this.regionAPI + \"/countrycodes\";\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t RegionService.prototype.extractData = function (res) {\r\n\t var body = res.json();\r\n\t return body || {};\r\n\t };\r\n\t RegionService = __decorate([\r\n\t core_1.Injectable(),\r\n\t __metadata(\"design:paramtypes\", [angular2_jwt_1.AuthHttp])\r\n\t ], RegionService);\r\n\t return RegionService;\r\n\t}());\r\n\texports.RegionService = RegionService;\r\n\n\n/***/ },\n/* 392 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar ConversionStatus;\r\n\t(function (ConversionStatus) {\r\n\t ConversionStatus[ConversionStatus[\"NotStarted\"] = 0] = \"NotStarted\";\r\n\t ConversionStatus[ConversionStatus[\"Started\"] = 1] = \"Started\";\r\n\t ConversionStatus[ConversionStatus[\"InProgress\"] = 2] = \"InProgress\";\r\n\t ConversionStatus[ConversionStatus[\"Warning\"] = 3] = \"Warning\";\r\n\t ConversionStatus[ConversionStatus[\"Error\"] = 4] = \"Error\";\r\n\t ConversionStatus[ConversionStatus[\"Completed\"] = 5] = \"Completed\";\r\n\t ConversionStatus[ConversionStatus[\"Stopped\"] = 6] = \"Stopped\";\r\n\t})(ConversionStatus = exports.ConversionStatus || (exports.ConversionStatus = {}));\r\n\n\n/***/ },\n/* 393 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar http_1 = __webpack_require__(57);\r\n\tvar Observable_1 = __webpack_require__(4);\r\n\tvar angular2_jwt_1 = __webpack_require__(278);\r\n\tvar config_service_1 = __webpack_require__(300);\r\n\tvar url_pipe_1 = __webpack_require__(372);\r\n\t__webpack_require__(55);\r\n\tvar CloudViewService = (function () {\r\n\t function CloudViewService(http, authHttp) {\r\n\t this.http = http;\r\n\t this.authHttp = authHttp;\r\n\t this.serviceBase = new config_service_1.ConfigService().getApiURI();\r\n\t this.cloudviewAPI = this.serviceBase + 'cloudview';\r\n\t this.queryStringPipe = new url_pipe_1.QueryStringPipe();\r\n\t }\r\n\t CloudViewService.prototype.getHosts = function () {\r\n\t var url = this.cloudviewAPI + \"/hosts\";\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t CloudViewService.prototype.deleteHost = function (hostId) {\r\n\t var url = this.cloudviewAPI + \"/hosts/\" + hostId;\r\n\t return this.authHttp.delete(url);\r\n\t };\r\n\t CloudViewService.prototype.getAppHosts = function () {\r\n\t var url = this.cloudviewAPI + \"/hosts/app\";\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t CloudViewService.prototype.getAppHostsCount = function () {\r\n\t var url = this.cloudviewAPI + \"/hosts/app/count\";\r\n\t return this.authHttp.get(url)\r\n\t .map(function (res) { return res.json(); });\r\n\t };\r\n\t CloudViewService.prototype.getDbHosts = function () {\r\n\t var url = this.cloudviewAPI + \"/hosts/db\";\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t CloudViewService.prototype.getDbHostsCount = function () {\r\n\t var url = this.cloudviewAPI + \"/hosts/db/count\";\r\n\t return this.authHttp.get(url)\r\n\t .map(function (res) { return res.json(); });\r\n\t };\r\n\t CloudViewService.prototype.getHostInstances = function (hostId) {\r\n\t var url = this.cloudviewAPI + \"/hosts/\" + hostId + \"/instances\";\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t CloudViewService.prototype.getUnallocatedInstances = function () {\r\n\t var url = this.cloudviewAPI + \"/instances/unallocated\";\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t CloudViewService.prototype.getUnallocatedInstancesCount = function () {\r\n\t var url = this.cloudviewAPI + \"/instances/unallocated/count\";\r\n\t return this.authHttp.get(url)\r\n\t .map(function (res) { return res.json(); });\r\n\t };\r\n\t CloudViewService.prototype.getInstanceStatusClass = function (status) {\r\n\t var statusClass = \"\";\r\n\t switch (status) {\r\n\t case InstanceStatus.Running:\r\n\t statusClass = \"running\";\r\n\t break;\r\n\t case InstanceStatus.Error:\r\n\t statusClass = \"error\";\r\n\t break;\r\n\t case InstanceStatus.Offline:\r\n\t statusClass = \"offline\";\r\n\t break;\r\n\t case InstanceStatus.Provisioning:\r\n\t statusClass = \"offline\";\r\n\t break;\r\n\t case InstanceStatus.Deallocated:\r\n\t statusClass = \"offline\";\r\n\t break;\r\n\t case InstanceStatus.Deleting:\r\n\t statusClass = \"offline\";\r\n\t break;\r\n\t case InstanceStatus.Deleted:\r\n\t statusClass = \"offline\";\r\n\t break;\r\n\t case InstanceStatus.Warning:\r\n\t statusClass = \"warning\";\r\n\t break;\r\n\t default:\r\n\t statusClass = \"empty\";\r\n\t break;\r\n\t }\r\n\t return statusClass;\r\n\t };\r\n\t CloudViewService.prototype.runCommandsOnHost = function (command, hostid) {\r\n\t var url = this.cloudviewAPI + \"/runcommand\";\r\n\t var body = {};\r\n\t switch (command) {\r\n\t case \"RestartCloudViewWorker\":\r\n\t body = { \"HostId\": hostid,\r\n\t \"Script\": \"RestartCloudViewWorker;\" };\r\n\t break;\r\n\t case \"RestartTaskAgentService\":\r\n\t body = { \"HostId\": hostid,\r\n\t \"Script\": \"RestartTaskAgentService;\" };\r\n\t break;\r\n\t default:\r\n\t body = { \"HostId\": hostid, \"Script\": command };\r\n\t break;\r\n\t }\r\n\t return this.authHttp.post(url, body);\r\n\t };\r\n\t CloudViewService.prototype.beautifyScript = function (command) {\r\n\t command = command.replace('\"', '\\\"');\r\n\t };\r\n\t CloudViewService.prototype.getSiteConfig = function (siteId) {\r\n\t var url = this.cloudviewAPI + \"/sites/\" + siteId + \"/config\";\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t CloudViewService.prototype.createSiteConfig = function (config) {\r\n\t var url = this.cloudviewAPI + \"/sites/config\";\r\n\t return this.authHttp.post(url, config);\r\n\t };\r\n\t CloudViewService.prototype.updateSiteConfig = function (config) {\r\n\t var url = this.cloudviewAPI + \"/sites/\" + config.siteId + \"/config\";\r\n\t return this.authHttp.put(url, config);\r\n\t };\r\n\t CloudViewService.prototype.deleteSiteConfig = function (siteId) {\r\n\t var url = this.cloudviewAPI + \"/sites/\" + siteId + \"/config\";\r\n\t return this.authHttp.delete(url);\r\n\t };\r\n\t CloudViewService.prototype.getLogs = function (type, typeUID, severity, instance, token, debug, command) {\r\n\t var queryString = this.queryStringPipe.transform({ type: type, typeUID: typeUID, severity: severity, instance: instance, token: token, debug: debug, command: command });\r\n\t var url = this.cloudviewAPI + \"/logs\" + queryString;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t CloudViewService.prototype.getLogsCount = function (type, typeUID, severity, instance, debug, command) {\r\n\t var queryString = this.queryStringPipe.transform({ type: type, typeUID: typeUID, severity: severity, instance: instance, debug: debug, command: command });\r\n\t var url = this.cloudviewAPI + \"/logs/count\" + queryString;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t CloudViewService.prototype.getAllSiteInstances = function (siteId) {\r\n\t var url = this.cloudviewAPI + \"/instances/sites/\" + siteId;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t CloudViewService.prototype.hasInstanceLimitExceeded = function (siteId) {\r\n\t var url = this.cloudviewAPI + \"/limit/\" + siteId;\r\n\t return this.authHttp.get(url);\r\n\t };\r\n\t CloudViewService.prototype.getLogSeverityClass = function (status) {\r\n\t var logSeverityClass = \"\";\r\n\t switch (status) {\r\n\t case LogSeverity.ERROR:\r\n\t logSeverityClass = \"log-error\";\r\n\t break;\r\n\t case LogSeverity.WARN:\r\n\t logSeverityClass = \"log-warn\";\r\n\t break;\r\n\t default:\r\n\t break;\r\n\t }\r\n\t return logSeverityClass;\r\n\t };\r\n\t CloudViewService.prototype.getHostHeartbeat = function (hostId) {\r\n\t var url = this.cloudviewAPI + \"/hosts/\" + hostId + \"/heartbeat\";\r\n\t return this.authHttp.get(url);\r\n\t };\r\n\t CloudViewService.prototype.pollHostHeartbeat = function (hostId) {\r\n\t var _this = this;\r\n\t return Observable_1.Observable.interval(900000)\r\n\t .concatMap(function () { return _this.getHostHeartbeat(hostId); })\r\n\t .map(this.extractData);\r\n\t };\r\n\t CloudViewService.prototype.createHost = function (host) {\r\n\t var url = this.cloudviewAPI + \"/hosts\";\r\n\t return this.authHttp.post(url, host);\r\n\t };\r\n\t CloudViewService.prototype.createInstance = function (instance) {\r\n\t var url = this.cloudviewAPI + \"/hosts/instances\";\r\n\t return this.authHttp.post(url, instance);\r\n\t };\r\n\t CloudViewService.prototype.getInstances = function (query, region, product, status, sortorder, sortCol) {\r\n\t var queryString = this.queryStringPipe.transform({ q: query, r: region, p: product, s: status, so: sortorder, sc: sortCol });\r\n\t var url = this.cloudviewAPI + \"/instances\" + queryString;\r\n\t return this.authHttp.get(url).map(this.extractData);\r\n\t };\r\n\t CloudViewService.prototype.getInstance = function (instanceid) {\r\n\t var url = this.cloudviewAPI + \"/instances/\" + instanceid;\r\n\t return this.authHttp.get(url).map(this.extractData);\r\n\t };\r\n\t CloudViewService.prototype.getInstancesBySiteId = function (siteId) {\r\n\t var url = this.cloudviewAPI + \"/instances/\" + siteId;\r\n\t return this.authHttp.get(url).map(this.extractData);\r\n\t };\r\n\t CloudViewService.prototype.getInstanceAccessToken = function (instanceId) {\r\n\t var url = this.cloudviewAPI + \"/instances/\" + instanceId + \"/accesstoken\";\r\n\t return this.authHttp.get(url).map(this.extractData);\r\n\t };\r\n\t CloudViewService.prototype.refreshInstanceAccessToken = function (instanceId) {\r\n\t var url = this.cloudviewAPI + \"/instances/\" + instanceId + \"/accesstoken/refresh\";\r\n\t return this.authHttp.put(url, null);\r\n\t };\r\n\t CloudViewService.prototype.deleteInstance = function (instanceId) {\r\n\t var url = this.cloudviewAPI + \"/instances/\" + instanceId;\r\n\t return this.authHttp.delete(url);\r\n\t };\r\n\t CloudViewService.prototype.getHostInstanceCollection = function () {\r\n\t var url = this.cloudviewAPI + \"/hostinstances\";\r\n\t return this.authHttp.get(url).map(this.extractData);\r\n\t };\r\n\t CloudViewService.prototype.unallocatedInstance = function (hostId, instanceId) {\r\n\t var url = this.cloudviewAPI + \"/hosts/\" + hostId + \"/instances/\" + instanceId + \"/unallocated\";\r\n\t return this.authHttp.put(url, null);\r\n\t };\r\n\t CloudViewService.prototype.setAppServer = function (instanceId, appServer) {\r\n\t var queryString = this.queryStringPipe.transform({ appserver: appServer });\r\n\t var url = this.cloudviewAPI + \"/instances/\" + instanceId + \"/appserver\" + queryString;\r\n\t return this.authHttp.put(url, null);\r\n\t };\r\n\t CloudViewService.prototype.setDbServer = function (instanceId, dbServer) {\r\n\t var queryString = this.queryStringPipe.transform({ dbServer: dbServer });\r\n\t var url = this.cloudviewAPI + \"/instances/\" + instanceId + \"/dbserver\" + queryString;\r\n\t return this.authHttp.put(url, null);\r\n\t };\r\n\t CloudViewService.prototype.setInstanceTTL = function (instanceId, deleteOn) {\r\n\t var url = this.cloudviewAPI + \"/instances/\" + instanceId + \"/ttl\";\r\n\t return this.authHttp.put(url, new Date(deleteOn));\r\n\t };\r\n\t CloudViewService.prototype.extractData = function (res) {\r\n\t var body = res.json();\r\n\t return body || {};\r\n\t };\r\n\t CloudViewService.prototype.getHelp = function () {\r\n\t var link = document.createElement(\"a\");\r\n\t link.setAttribute(\"href\", this.cloudviewAPI + \"/help\");\r\n\t document.body.appendChild(link);\r\n\t link.click();\r\n\t };\r\n\t CloudViewService = __decorate([\r\n\t core_1.Injectable(),\r\n\t __metadata(\"design:paramtypes\", [http_1.Http,\r\n\t angular2_jwt_1.AuthHttp])\r\n\t ], CloudViewService);\r\n\t return CloudViewService;\r\n\t}());\r\n\texports.CloudViewService = CloudViewService;\r\n\tvar InstanceStatus;\r\n\t(function (InstanceStatus) {\r\n\t InstanceStatus[InstanceStatus[\"Offline\"] = 0] = \"Offline\";\r\n\t InstanceStatus[InstanceStatus[\"Running\"] = 1] = \"Running\";\r\n\t InstanceStatus[InstanceStatus[\"Warning\"] = 2] = \"Warning\";\r\n\t InstanceStatus[InstanceStatus[\"Error\"] = 3] = \"Error\";\r\n\t InstanceStatus[InstanceStatus[\"Provisioning\"] = 4] = \"Provisioning\";\r\n\t InstanceStatus[InstanceStatus[\"Deallocating\"] = 5] = \"Deallocating\";\r\n\t InstanceStatus[InstanceStatus[\"Deallocated\"] = 6] = \"Deallocated\";\r\n\t InstanceStatus[InstanceStatus[\"Deleting\"] = 7] = \"Deleting\";\r\n\t InstanceStatus[InstanceStatus[\"Deleted\"] = 8] = \"Deleted\";\r\n\t})(InstanceStatus = exports.InstanceStatus || (exports.InstanceStatus = {}));\r\n\tvar LogType;\r\n\t(function (LogType) {\r\n\t LogType[LogType[\"HOST\"] = 0] = \"HOST\";\r\n\t LogType[LogType[\"INSTANCE\"] = 1] = \"INSTANCE\";\r\n\t LogType[LogType[\"GENERAL\"] = 2] = \"GENERAL\";\r\n\t})(LogType = exports.LogType || (exports.LogType = {}));\r\n\tvar LogSeverity;\r\n\t(function (LogSeverity) {\r\n\t LogSeverity[LogSeverity[\"ERROR\"] = 0] = \"ERROR\";\r\n\t LogSeverity[LogSeverity[\"WARN\"] = 1] = \"WARN\";\r\n\t LogSeverity[LogSeverity[\"INFO\"] = 2] = \"INFO\";\r\n\t LogSeverity[LogSeverity[\"DEBUG\"] = 3] = \"DEBUG\";\r\n\t})(LogSeverity = exports.LogSeverity || (exports.LogSeverity = {}));\r\n\tvar HostType;\r\n\t(function (HostType) {\r\n\t HostType[HostType[\"APP\"] = 0] = \"APP\";\r\n\t HostType[HostType[\"DB\"] = 1] = \"DB\";\r\n\t})(HostType = exports.HostType || (exports.HostType = {}));\r\n\n\n/***/ },\n/* 394 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar angular2_jwt_1 = __webpack_require__(278);\r\n\tvar config_service_1 = __webpack_require__(300);\r\n\t__webpack_require__(55);\r\n\tvar ZoneService = (function () {\r\n\t function ZoneService(authHttp) {\r\n\t this.authHttp = authHttp;\r\n\t this.serviceBase = new config_service_1.ConfigService().getApiURI();\r\n\t this.zoneAPI = this.serviceBase + \"zones\";\r\n\t }\r\n\t ZoneService.prototype.getZones = function () {\r\n\t var url = this.zoneAPI + \"/all\";\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ZoneService.prototype.getZone = function (zoneId) {\r\n\t var url = this.zoneAPI + \"?id=\" + zoneId + \"&accessKey=18585e3d-0dfd-4e01-b66b-537095771a0d\";\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ZoneService.prototype.getZonesDetails = function () {\r\n\t var url = this.zoneAPI + \"/details?accessKey=c7971c9e-f134-4dc0-a01d-5c3567ad6dee\";\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ZoneService.prototype.getZoneRegions = function (zoneId) {\r\n\t var url = this.zoneAPI + \"/regions?id=\" + zoneId;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ZoneService.prototype.getSiteZoneRegions = function (siteId) {\r\n\t var url = this.zoneAPI + \"/regions/\" + siteId;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ZoneService.prototype.addZone = function (zone) {\r\n\t var url = \"\" + this.zoneAPI;\r\n\t return this.authHttp.post(url, zone)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ZoneService.prototype.deleteZone = function (id) {\r\n\t var url = this.zoneAPI + \"/delete/\" + id;\r\n\t return this.authHttp.delete(url);\r\n\t };\r\n\t ZoneService.prototype.updateZone = function (zone) {\r\n\t var url = this.zoneAPI + \"/update\";\r\n\t return this.authHttp.put(url, zone);\r\n\t };\r\n\t ZoneService.prototype.extractData = function (res) {\r\n\t var body = res.json();\r\n\t return body || {};\r\n\t };\r\n\t ZoneService = __decorate([\r\n\t core_1.Injectable(),\r\n\t __metadata(\"design:paramtypes\", [angular2_jwt_1.AuthHttp])\r\n\t ], ZoneService);\r\n\t return ZoneService;\r\n\t}());\r\n\texports.ZoneService = ZoneService;\r\n\n\n/***/ },\n/* 395 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n
\\r\\n \\r\\n {{ site?.siteName}} ({{site?.siteId}}) \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\";\n\n/***/ },\n/* 396 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \".conversion-configuration-label {\\r\\n font-weight:bold;\\r\\n}\\r\\n\\r\\n.conversion-configuration-field {\\r\\n float:right;\\r\\n width: 100%;\\r\\n height:38px;\\r\\n}\"\n\n/***/ },\n/* 397 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n\t return function (target, key) { decorator(target, key, paramIndex); }\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar storage_account_service_1 = __webpack_require__(390);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar SiteFileSharesComponent = (function () {\r\n\t function SiteFileSharesComponent(dialog, auth, storageAccount) {\r\n\t this.dialog = dialog;\r\n\t this.auth = auth;\r\n\t this.storageAccount = storageAccount;\r\n\t this.sharesVisible = false;\r\n\t this.Role = auth_service_1.Role;\r\n\t }\r\n\t SiteFileSharesComponent.prototype.openAddDialog = function () {\r\n\t var dialogRef = this.dialog.open(SiteFileShareAddDialog, {\r\n\t width: '250px',\r\n\t data: {\r\n\t regions: this.storageAccountRegions,\r\n\t siteId: this.siteId,\r\n\t storageAccount: this.storageAccount,\r\n\t shares: this.fileShares\r\n\t }\r\n\t });\r\n\t dialogRef.afterClosed().subscribe(function (result) {\r\n\t });\r\n\t };\r\n\t SiteFileSharesComponent.prototype.delete = function (index, share) {\r\n\t var _this = this;\r\n\t var accountName = share.accountName;\r\n\t var name = share.name;\r\n\t var msg = \"Are you sure you want to delete \" + accountName + \" \" + name + \"?\";\r\n\t if (confirm(msg)) {\r\n\t this.storageAccount.deleteFileShare(accountName, name, this.siteId).subscribe(function (res) {\r\n\t _this.fileShares.splice(index, 1);\r\n\t }, function (error) {\r\n\t if (error._body) {\r\n\t try {\r\n\t console.error(JSON.parse(error._body));\r\n\t }\r\n\t catch (err) { }\r\n\t }\r\n\t });\r\n\t }\r\n\t };\r\n\t SiteFileSharesComponent.prototype.toggleShares = function () {\r\n\t if (this.sharesVisible) {\r\n\t this.sharesVisible = false;\r\n\t }\r\n\t else {\r\n\t this.sharesVisible = true;\r\n\t }\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Number)\r\n\t ], SiteFileSharesComponent.prototype, \"siteId\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Array)\r\n\t ], SiteFileSharesComponent.prototype, \"fileShares\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Array)\r\n\t ], SiteFileSharesComponent.prototype, \"storageAccountRegions\", void 0);\r\n\t SiteFileSharesComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'site-file-shares',\r\n\t template: __webpack_require__(398),\r\n\t providers: [storage_account_service_1.StorageAccountService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialog,\r\n\t auth_service_1.AuthService,\r\n\t storage_account_service_1.StorageAccountService])\r\n\t ], SiteFileSharesComponent);\r\n\t return SiteFileSharesComponent;\r\n\t}());\r\n\texports.SiteFileSharesComponent = SiteFileSharesComponent;\r\n\tvar SiteFileShareAddDialog = (function () {\r\n\t function SiteFileShareAddDialog(dialogRef, data) {\r\n\t this.dialogRef = dialogRef;\r\n\t this.data = data;\r\n\t this.regions = [];\r\n\t this.isCreating = false;\r\n\t this.errors = [];\r\n\t this.fileShare = {\r\n\t accountName: null,\r\n\t name: null\r\n\t };\r\n\t this.regions = data.regions;\r\n\t }\r\n\t SiteFileShareAddDialog.prototype.cancel = function () {\r\n\t this.dialogRef.close();\r\n\t };\r\n\t SiteFileShareAddDialog.prototype.create = function () {\r\n\t var _this = this;\r\n\t var accountName = this.fileShare.accountName;\r\n\t var name = this.fileShare.name;\r\n\t var siteId = this.data.siteId;\r\n\t this.errors = [];\r\n\t this.isCreating = true;\r\n\t this.data.storageAccount.createFileShare(accountName, name, siteId).subscribe(function (res) {\r\n\t _this.data.shares.push(_this.extractData(res));\r\n\t _this.isCreating = false;\r\n\t _this.dialogRef.close();\r\n\t }, function (error) {\r\n\t _this.isCreating = false;\r\n\t if (error._body) {\r\n\t try {\r\n\t _this.errors = JSON.parse(error._body);\r\n\t }\r\n\t catch (err) { }\r\n\t }\r\n\t });\r\n\t };\r\n\t SiteFileShareAddDialog.prototype.extractData = function (res) {\r\n\t var body = res.json();\r\n\t return body || {};\r\n\t };\r\n\t SiteFileShareAddDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'site-file-share-add-dialog',\r\n\t template: __webpack_require__(399)\r\n\t }),\r\n\t __param(1, core_1.Inject(material_1.MD_DIALOG_DATA)),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef, Object])\r\n\t ], SiteFileShareAddDialog);\r\n\t return SiteFileShareAddDialog;\r\n\t}());\r\n\texports.SiteFileShareAddDialog = SiteFileShareAddDialog;\r\n\n\n/***/ },\n/* 398 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Account NameName
{{ share.accountName }}{{ share.name }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\";\n\n/***/ },\n/* 399 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"

Create file share

\\r\\n\\r\\n
\\r\\n \\r\\n {{ option?.region?.key }} ({{ option?.id }})\\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\";\n\n/***/ },\n/* 400 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar sites_service_1 = __webpack_require__(371);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar region_service_1 = __webpack_require__(391);\r\n\tvar zone_service_1 = __webpack_require__(394);\r\n\tvar SiteDetailComponent = (function () {\r\n\t function SiteDetailComponent(auth, sitesService, regionService, zoneService) {\r\n\t var _this = this;\r\n\t this.auth = auth;\r\n\t this.sitesService = sitesService;\r\n\t this.regionService = regionService;\r\n\t this.zoneService = zoneService;\r\n\t this.partnerSitesVisible = false;\r\n\t this.syncing = false;\r\n\t this.Role = auth_service_1.Role;\r\n\t this.searchCAMText = \"\";\r\n\t this.searchPSAText = \"\";\r\n\t this.searchPMText = \"\";\r\n\t this.searchUMText = \"\";\r\n\t this.searchPCAMText = \"\";\r\n\t this.regionService.getCountryCodes().subscribe(function (countryCodes) {\r\n\t _this.countryCodes = countryCodes;\r\n\t });\r\n\t }\r\n\t SiteDetailComponent.prototype.ngOnChanges = function () {\r\n\t this.camUsers = this.users;\r\n\t this.psaUsers = this.users;\r\n\t this.pmUsers = this.users;\r\n\t this.umUsers = this.users;\r\n\t this.pcamUsers = this.users;\r\n\t };\r\n\t SiteDetailComponent.prototype.updateSite = function () {\r\n\t var _this = this;\r\n\t this.site.countryCode = this.countryCodes.find(function (cc) { return cc.country == _this.site.country; });\r\n\t this.sitesService.updateSite(this.site).subscribe(function (res) {\r\n\t });\r\n\t };\r\n\t SiteDetailComponent.prototype.togglePartnerSites = function () {\r\n\t if (this.partnerSitesVisible) {\r\n\t this.partnerSitesVisible = false;\r\n\t }\r\n\t else {\r\n\t this.partnerSitesVisible = true;\r\n\t }\r\n\t };\r\n\t SiteDetailComponent.prototype.refreshPartnerSites = function () {\r\n\t var _this = this;\r\n\t if (confirm(\"This will sync site data from an external service, it will overwrite existing sites associated with this site.\")) {\r\n\t this.syncing = true;\r\n\t this.sitesService.refreshChildSites(this.site.siteId).subscribe(function (childSites) {\r\n\t _this.site.childSites = childSites;\r\n\t _this.syncing = false;\r\n\t }, function (err) {\r\n\t _this.syncing = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t SiteDetailComponent.prototype.removePartnerSiteFromList = function (index, site) {\r\n\t this.site.childSites.splice(index, 1);\r\n\t this.updateSite();\r\n\t };\r\n\t SiteDetailComponent.prototype.isFieldDisabled = function () {\r\n\t if (this.auth.hasRole(auth_service_1.Role.Administrator) ||\r\n\t this.auth.hasPermission(auth_service_1.Permission.SiteAdmin) ||\r\n\t this.auth.hasPermission(auth_service_1.Permission.SiteEdit)) {\r\n\t return false;\r\n\t }\r\n\t return true;\r\n\t };\r\n\t SiteDetailComponent.prototype.filterUsers = function (userType) {\r\n\t if (userType == 'cam')\r\n\t this.camUsers = this.getusers(this.searchCAMText);\r\n\t else if (userType == 'psa')\r\n\t this.psaUsers = this.getusers(this.searchPSAText);\r\n\t else if (userType == 'pm')\r\n\t this.pmUsers = this.getusers(this.searchPMText);\r\n\t else if (userType == 'um')\r\n\t this.umUsers = this.getusers(this.searchUMText);\r\n\t else if (userType == 'pcam')\r\n\t this.pcamUsers = this.getusers(this.searchPCAMText);\r\n\t };\r\n\t SiteDetailComponent.prototype.getusers = function (searchText) {\r\n\t console.log(searchText);\r\n\t if (searchText == '')\r\n\t return this.users;\r\n\t else {\r\n\t return this.users.filter(function (user) { return user.emailAddress.toLowerCase().match(searchText.toLowerCase()); });\r\n\t }\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], SiteDetailComponent.prototype, \"site\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], SiteDetailComponent.prototype, \"users\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], SiteDetailComponent.prototype, \"regions\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], SiteDetailComponent.prototype, \"zones\", void 0);\r\n\t SiteDetailComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'site-detail',\r\n\t template: __webpack_require__(401),\r\n\t providers: [sites_service_1.SitesService, region_service_1.RegionService, zone_service_1.ZoneService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [auth_service_1.AuthService,\r\n\t sites_service_1.SitesService,\r\n\t region_service_1.RegionService,\r\n\t zone_service_1.ZoneService])\r\n\t ], SiteDetailComponent);\r\n\t return SiteDetailComponent;\r\n\t}());\r\n\texports.SiteDetailComponent = SiteDetailComponent;\r\n\n\n/***/ },\n/* 401 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{countryCode?.country}} ({{ countryCode?.continent }})\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ region?.key }} \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ user?.emailAddress }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ user?.emailAddress }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ user?.emailAddress }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ user?.emailAddress }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ user.emailAddress }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Site IdSite NameCountryRelationshipHas Access\\r\\n \\r\\n
{{ childSite?.siteId }}{{ childSite?.siteName }}{{ childSite?.country }}{{ childSite?.relationshipType }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 402 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar sites_service_1 = __webpack_require__(371);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar region_service_1 = __webpack_require__(391);\r\n\tvar zone_service_1 = __webpack_require__(394);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar user_edit_dialog_1 = __webpack_require__(337);\r\n\tvar users_service_1 = __webpack_require__(333);\r\n\tvar SiteUsersComponent = (function () {\r\n\t function SiteUsersComponent(dialog, snackBar, user, auth, sitesService, regionService, router, zoneService) {\r\n\t var _this = this;\r\n\t this.dialog = dialog;\r\n\t this.snackBar = snackBar;\r\n\t this.user = user;\r\n\t this.auth = auth;\r\n\t this.sitesService = sitesService;\r\n\t this.regionService = regionService;\r\n\t this.router = router;\r\n\t this.zoneService = zoneService;\r\n\t this.partnerSitesVisible = false;\r\n\t this.syncing = false;\r\n\t this.Role = auth_service_1.Role;\r\n\t this.isLoading = true;\r\n\t this.creatingProvision = false;\r\n\t this.Permission = auth_service_1.Permission;\r\n\t this.siteUsers = [];\r\n\t this.visible = true;\r\n\t this.regionService.getCountryCodes().subscribe(function (countryCodes) {\r\n\t _this.countryCodes = countryCodes;\r\n\t });\r\n\t }\r\n\t SiteUsersComponent.prototype.ngOnInit = function () {\r\n\t this.getSiteUsers(this.site.siteId);\r\n\t };\r\n\t SiteUsersComponent.prototype.toggle = function () {\r\n\t if (this.visible) {\r\n\t this.visible = false;\r\n\t }\r\n\t else {\r\n\t this.visible = true;\r\n\t }\r\n\t };\r\n\t SiteUsersComponent.prototype.getSiteUsers = function (siteId) {\r\n\t var _this = this;\r\n\t this.sitesService.getSiteUsers(siteId).subscribe(function (siteusers) {\r\n\t _this.siteUsers = siteusers;\r\n\t _this.isLoading = false;\r\n\t _this.visible = false;\r\n\t });\r\n\t };\r\n\t SiteUsersComponent.prototype.openEditUserDialog = function (user) {\r\n\t var dialogRef = this.dialog.open(user_edit_dialog_1.UserEditDialog, {\r\n\t width: '250px',\r\n\t data: {\r\n\t user: user\r\n\t }\r\n\t });\r\n\t };\r\n\t SiteUsersComponent.prototype.createProvision = function (user) {\r\n\t var _this = this;\r\n\t this.creatingProvision = true;\r\n\t this.user.createUserProvision(user).subscribe(function (provision) {\r\n\t _this.creatingProvision = false;\r\n\t var snackBarRef = _this.snackBar.open(\"Provision has been created for \" + user.emailAddress, null, {\r\n\t duration: 2000\r\n\t });\r\n\t }, function (err) {\r\n\t _this.creatingProvision = false;\r\n\t console.log(err);\r\n\t if (err._body.toString().length > 0) {\r\n\t var snackBarRef = _this.snackBar.open(\"Please activate the user before provision \" + user.emailAddress, null, {\r\n\t duration: 2000\r\n\t });\r\n\t }\r\n\t });\r\n\t };\r\n\t SiteUsersComponent.prototype.deleteUser = function (user) {\r\n\t var _this = this;\r\n\t if (window.confirm(\"Are you sure you want to delete user?\")) {\r\n\t this.user.deleteUser(user.emailAddress).subscribe(function (res) {\r\n\t var snackBarRef = _this.snackBar.open(\"User \" + user.emailAddress + \" has been deleted\", null, {\r\n\t duration: 2000\r\n\t });\r\n\t }, function (err) { return console.error(err); });\r\n\t }\r\n\t };\r\n\t SiteUsersComponent.prototype.SetStatus = function (user) {\r\n\t if (user.emailAddress == this.auth.getUser().emailAddress) {\r\n\t alert(\"You can't activate/deactivate your own account.\");\r\n\t return;\r\n\t }\r\n\t user.userAccessAudit.changedBy = this.auth.getUser().emailAddress;\r\n\t user.userAccessAudit.active = !user.userAccessAudit.active;\r\n\t user.userAccessAudit.changedOn = new Date();\r\n\t this.user.UpdateUserAccessStatus(user).subscribe(function (res) {\r\n\t }, function (err) {\r\n\t console.error(err);\r\n\t });\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], SiteUsersComponent.prototype, \"site\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], SiteUsersComponent.prototype, \"users\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], SiteUsersComponent.prototype, \"regions\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], SiteUsersComponent.prototype, \"zones\", void 0);\r\n\t SiteUsersComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'site-users',\r\n\t template: __webpack_require__(403),\r\n\t styles: [__webpack_require__(404)],\r\n\t providers: [sites_service_1.SitesService, region_service_1.RegionService, zone_service_1.ZoneService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialog,\r\n\t material_1.MdSnackBar,\r\n\t users_service_1.UsersService,\r\n\t auth_service_1.AuthService,\r\n\t sites_service_1.SitesService,\r\n\t region_service_1.RegionService,\r\n\t router_1.Router,\r\n\t zone_service_1.ZoneService])\r\n\t ], SiteUsersComponent);\r\n\t return SiteUsersComponent;\r\n\t}());\r\n\texports.SiteUsersComponent = SiteUsersComponent;\r\n\n\n/***/ },\n/* 403 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n No users found.\\r\\n
\\r\\n 0 && !isLoading\\\" class=\\\"mdl-data-table\\\" style=\\\"width:100%; border:none\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
StatusNameEmail
\\r\\n
\\r\\n
\\r\\n error\\r\\n
\\r\\n
\\r\\n
\\r\\n block\\r\\n
\\r\\n
\\r\\n \\r\\n block\\r\\n \\r\\n
\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n
\\r\\n
\\r\\n
\\r\\n check_circle\\r\\n error\\r\\n
\\r\\n
{{ user?.fullName }}{{ user?.emailAddress }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\t\\t\\t\\t\\t\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 404 */\n341,\n/* 405 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar SiteReportsComponent = (function () {\r\n\t function SiteReportsComponent(router) {\r\n\t this.router = router;\r\n\t }\r\n\t SiteReportsComponent.prototype.viewReports = function () {\r\n\t this.router.navigateByUrl('reports');\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], SiteReportsComponent.prototype, \"site\", void 0);\r\n\t SiteReportsComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'site-reports',\r\n\t template: __webpack_require__(406)\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [router_1.Router])\r\n\t ], SiteReportsComponent);\r\n\t return SiteReportsComponent;\r\n\t}());\r\n\texports.SiteReportsComponent = SiteReportsComponent;\r\n\n\n/***/ },\n/* 406 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\";\n\n/***/ },\n/* 407 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar conversions_service_1 = __webpack_require__(378);\r\n\tvar SiteConversionsComponent = (function () {\r\n\t function SiteConversionsComponent(auth, router, conversionsService) {\r\n\t this.auth = auth;\r\n\t this.router = router;\r\n\t this.conversionsService = conversionsService;\r\n\t this.Role = auth_service_1.Role;\r\n\t this.Permission = auth_service_1.Permission;\r\n\t this.conversionsVisible = true;\r\n\t this.conversions = [];\r\n\t }\r\n\t SiteConversionsComponent.prototype.ngOnChanges = function () {\r\n\t this.getConversions();\r\n\t };\r\n\t SiteConversionsComponent.prototype.ngOnInit = function () {\r\n\t this.getConversions();\r\n\t };\r\n\t SiteConversionsComponent.prototype.toggleConversions = function () {\r\n\t if (this.conversionsVisible) {\r\n\t this.conversionsVisible = false;\r\n\t }\r\n\t else {\r\n\t this.conversionsVisible = true;\r\n\t }\r\n\t };\r\n\t SiteConversionsComponent.prototype.viewConversionsSite = function () {\r\n\t this.router.navigateByUrl(\"conversions/\" + this.site.siteId + \"/list\");\r\n\t };\r\n\t SiteConversionsComponent.prototype.viewConversions = function () {\r\n\t this.router.navigateByUrl('conversions');\r\n\t };\r\n\t SiteConversionsComponent.prototype.createConversion = function () {\r\n\t if (this.conversions.filter(function (x) { return x.status === 0; }).length === 0) {\r\n\t this.router.navigateByUrl(\"sites/\" + this.site.siteId + \"/conversion/create\");\r\n\t }\r\n\t else {\r\n\t alert(\"An active conversion already exists. Please edit the existing conversion if you want to make any changes.\");\r\n\t }\r\n\t };\r\n\t SiteConversionsComponent.prototype.openConversionInNewTab = function (conversion) {\r\n\t var url = window.location.origin + \"/#/sites/\" + conversion.siteId + \"/conversions/\" + conversion.id;\r\n\t window.open(url, \"_blank\");\r\n\t };\r\n\t SiteConversionsComponent.prototype.editConversion = function (conversion) {\r\n\t this.router.navigateByUrl(\"conversions/\" + conversion.id);\r\n\t };\r\n\t SiteConversionsComponent.prototype.deleteConversion = function (index, conversion) {\r\n\t var _this = this;\r\n\t if (confirm(\"Are you sure you want to delete conversion?\")) {\r\n\t this.conversionsService.deleteConversion(conversion.id).subscribe(function (res) {\r\n\t _this.conversions.splice(index, 1);\r\n\t });\r\n\t }\r\n\t };\r\n\t SiteConversionsComponent.prototype.getConversions = function () {\r\n\t var _this = this;\r\n\t this.conversionsService.getSiteConversions(this.site.siteId).subscribe(function (conversions) {\r\n\t conversions.forEach(function (x) {\r\n\t _this.conversionsService.getConversionPassSummaries(null, null, x.id).subscribe(function (response) {\r\n\t x.totalPassesRan = response.result.length;\r\n\t });\r\n\t });\r\n\t _this.conversions = conversions;\r\n\t });\r\n\t };\r\n\t SiteConversionsComponent.prototype.markAsComplete = function (conversion) {\r\n\t var _this = this;\r\n\t var id = conversion.id;\r\n\t var status = 'Completed';\r\n\t this.conversionsService.updateConversionStatus(id, status).subscribe(function (response) {\r\n\t _this.getConversions();\r\n\t });\r\n\t };\r\n\t SiteConversionsComponent.prototype.markAsIncomplete = function (conversion) {\r\n\t var _this = this;\r\n\t var id = conversion.id;\r\n\t var status = 'NotStarted';\r\n\t this.conversionsService.updateConversionStatus(id, status).subscribe(function (response) {\r\n\t _this.getConversions();\r\n\t });\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], SiteConversionsComponent.prototype, \"site\", void 0);\r\n\t SiteConversionsComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'site-conversions',\r\n\t template: __webpack_require__(408),\r\n\t providers: [conversions_service_1.ConversionsService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [auth_service_1.AuthService,\r\n\t router_1.Router,\r\n\t conversions_service_1.ConversionsService])\r\n\t ], SiteConversionsComponent);\r\n\t return SiteConversionsComponent;\r\n\t}());\r\n\texports.SiteConversionsComponent = SiteConversionsComponent;\r\n\n\n/***/ },\n/* 408 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
DescriptionCreatedStatus\\r\\n \\r\\n
\\r\\n cloud_upload \\r\\n cloud\\r\\n \\r\\n {{ conversion?.configuration?.fromProduct }}\\r\\n {{ conversion?.configuration?.fromVersion }} to \\r\\n {{ conversion?.configuration?.toProduct }}\\r\\n {{ conversion?.configuration?.toVersion }}\\r\\n {{ conversion?.createdDate | date: 'mediumDate' }}\\r\\n check_box \\r\\n check_box_outline_blank\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\";\n\n/***/ },\n/* 409 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar sites_service_1 = __webpack_require__(371);\r\n\tvar SiteCloudViewComponent = (function () {\r\n\t function SiteCloudViewComponent(auth, sitesService) {\r\n\t this.auth = auth;\r\n\t this.sitesService = sitesService;\r\n\t this.Role = auth_service_1.Role;\r\n\t this.Permission = auth_service_1.Permission;\r\n\t this.cloudViewInstancesVisible = false;\r\n\t }\r\n\t SiteCloudViewComponent.prototype.ngOnInit = function () {\r\n\t if (!this.site.cloudview) {\r\n\t this.site.cloudview = {\r\n\t instances: 2,\r\n\t dataRegion: this.site.region,\r\n\t deleteAfterHours: 720\r\n\t };\r\n\t }\r\n\t };\r\n\t SiteCloudViewComponent.prototype.toggleCloudViewInstances = function () {\r\n\t if (this.cloudViewInstancesVisible) {\r\n\t this.cloudViewInstancesVisible = false;\r\n\t }\r\n\t else {\r\n\t this.cloudViewInstancesVisible = true;\r\n\t }\r\n\t };\r\n\t SiteCloudViewComponent.prototype.updateSite = function () {\r\n\t this.sitesService.updateSite(this.site).subscribe(function (res) {\r\n\t });\r\n\t };\r\n\t SiteCloudViewComponent.prototype.isFieldDisabled = function () {\r\n\t if (this.auth.hasRole(auth_service_1.Role.Administrator) ||\r\n\t (this.auth.hasRole(auth_service_1.Role.EpicorEmployee) && this.auth.hasPermission(auth_service_1.Permission.SiteAdmin)) ||\r\n\t (this.auth.hasRole(auth_service_1.Role.EpicorEmployee) && this.auth.hasPermission(auth_service_1.Permission.RestrictedSiteAdmin))) {\r\n\t return false;\r\n\t }\r\n\t return true;\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], SiteCloudViewComponent.prototype, \"site\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], SiteCloudViewComponent.prototype, \"regions\", void 0);\r\n\t SiteCloudViewComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'site-cloud-view',\r\n\t template: __webpack_require__(410),\r\n\t providers: [sites_service_1.SitesService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [auth_service_1.AuthService,\r\n\t sites_service_1.SitesService])\r\n\t ], SiteCloudViewComponent);\r\n\t return SiteCloudViewComponent;\r\n\t}());\r\n\texports.SiteCloudViewComponent = SiteCloudViewComponent;\r\n\n\n/***/ },\n/* 410 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ region.key }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
IDRegionProductStatusExpires
\\r\\n
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 411 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar sites_service_1 = __webpack_require__(371);\r\n\tvar users_service_1 = __webpack_require__(333);\r\n\tvar zone_service_1 = __webpack_require__(394);\r\n\tvar conversions_service_1 = __webpack_require__(378);\r\n\tvar SitePrivacyAndSecurityComponent = (function () {\r\n\t function SitePrivacyAndSecurityComponent(auth, sitesService, usersService, convService, zoneService) {\r\n\t this.auth = auth;\r\n\t this.sitesService = sitesService;\r\n\t this.usersService = usersService;\r\n\t this.convService = convService;\r\n\t this.zoneService = zoneService;\r\n\t this.refreshRegion = new core_1.EventEmitter();\r\n\t this.refreshSite = new core_1.EventEmitter();\r\n\t this.Role = auth_service_1.Role;\r\n\t this.Permission = auth_service_1.Permission;\r\n\t this.securityHistoryVisible = false;\r\n\t this.restrictedZone = false;\r\n\t this.isLoading = false;\r\n\t this.ignoredFirstEvent = false;\r\n\t }\r\n\t SitePrivacyAndSecurityComponent.prototype.ngOnInit = function () {\r\n\t this.getEndUsers();\r\n\t if (!this.site.restricted) {\r\n\t this.ignoredFirstEvent = true;\r\n\t }\r\n\t };\r\n\t SitePrivacyAndSecurityComponent.prototype.updateSite = function () {\r\n\t var _this = this;\r\n\t this.sitesService.updateSite(this.site).subscribe(function (res) {\r\n\t _this.refreshRegion.emit(true);\r\n\t _this.refreshSite.emit();\r\n\t });\r\n\t };\r\n\t SitePrivacyAndSecurityComponent.prototype.getEndUsers = function () {\r\n\t var _this = this;\r\n\t this.usersService.getEndUsersInSite(this.site.siteId).subscribe(function (endUsers) {\r\n\t _this.endUsers = endUsers;\r\n\t });\r\n\t };\r\n\t SitePrivacyAndSecurityComponent.prototype.toggleSecurityHistory = function () {\r\n\t if (this.securityHistoryVisible) {\r\n\t this.securityHistoryVisible = false;\r\n\t }\r\n\t else {\r\n\t this.securityHistoryVisible = true;\r\n\t }\r\n\t };\r\n\t SitePrivacyAndSecurityComponent.prototype.toggleRestricted = function () {\r\n\t if (!this.site.customerAdmin) {\r\n\t this.site.restricted = false;\r\n\t }\r\n\t this.updateSite();\r\n\t };\r\n\t SitePrivacyAndSecurityComponent.prototype.toggleSiteRestricted = function () {\r\n\t var _this = this;\r\n\t if (!this.ignoredFirstEvent && this.site.restricted) {\r\n\t this.ignoredFirstEvent = true;\r\n\t return;\r\n\t }\r\n\t this.isLoading = true;\r\n\t if (this.site.restricted) {\r\n\t this.site.region = null;\r\n\t }\r\n\t this.convService.getSiteConversions(this.site.siteId).subscribe(function (conversions) {\r\n\t if (conversions.length > 0) {\r\n\t alert(\"A conversion is already configured for this site, please check whether the existing data needs to be moved and the conversion recreated when changing the restricted site flag.\");\r\n\t }\r\n\t _this.isLoading = false;\r\n\t _this.updateSite();\r\n\t });\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], SitePrivacyAndSecurityComponent.prototype, \"site\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], SitePrivacyAndSecurityComponent.prototype, \"users\", void 0);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], SitePrivacyAndSecurityComponent.prototype, \"refreshRegion\", void 0);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], SitePrivacyAndSecurityComponent.prototype, \"refreshSite\", void 0);\r\n\t SitePrivacyAndSecurityComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'site-privacy-and-security',\r\n\t template: __webpack_require__(412),\r\n\t providers: [sites_service_1.SitesService, users_service_1.UsersService, conversions_service_1.ConversionsService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [auth_service_1.AuthService,\r\n\t sites_service_1.SitesService,\r\n\t users_service_1.UsersService,\r\n\t conversions_service_1.ConversionsService,\r\n\t zone_service_1.ZoneService])\r\n\t ], SitePrivacyAndSecurityComponent);\r\n\t return SitePrivacyAndSecurityComponent;\r\n\t}());\r\n\texports.SitePrivacyAndSecurityComponent = SitePrivacyAndSecurityComponent;\r\n\n\n/***/ },\n/* 412 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n None\\r\\n {{ endUser}}\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\";\n\n/***/ },\n/* 413 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar users_service_1 = __webpack_require__(333);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar SiteManageCloudTransferToolUsersComponent = (function () {\r\n\t function SiteManageCloudTransferToolUsersComponent(auth, usersService) {\r\n\t this.auth = auth;\r\n\t this.usersService = usersService;\r\n\t this.visible = false;\r\n\t this.users = [];\r\n\t this.Role = auth_service_1.Role;\r\n\t this.Permission = auth_service_1.Permission;\r\n\t }\r\n\t SiteManageCloudTransferToolUsersComponent.prototype.ngOnInit = function () {\r\n\t this.getUsers();\r\n\t };\r\n\t SiteManageCloudTransferToolUsersComponent.prototype.getUsers = function () {\r\n\t var _this = this;\r\n\t this.usersService.getRestrictedSiteUsersInPermission(this.siteId, auth_service_1.Permission.CloudTransferTool).subscribe(function (users) {\r\n\t _this.users = users;\r\n\t });\r\n\t };\r\n\t SiteManageCloudTransferToolUsersComponent.prototype.toggle = function () {\r\n\t if (this.visible) {\r\n\t this.visible = false;\r\n\t }\r\n\t else {\r\n\t this.visible = true;\r\n\t }\r\n\t };\r\n\t SiteManageCloudTransferToolUsersComponent.prototype.add = function () {\r\n\t var _this = this;\r\n\t this.usersService.addPermission(this.selectedUser, auth_service_1.Permission.CloudTransferTool, this.siteId, true).subscribe(function (res) {\r\n\t _this.selectedUser = null;\r\n\t _this.getUsers();\r\n\t });\r\n\t };\r\n\t SiteManageCloudTransferToolUsersComponent.prototype.remove = function (index, user) {\r\n\t var _this = this;\r\n\t var permission = this.auth.createRestrictedSitePermissionClaimValue(this.siteId, auth_service_1.Permission.CloudTransferTool);\r\n\t this.usersService.removePermission(user.emailAddress, permission, this.siteId).subscribe(function (res) {\r\n\t _this.users.splice(index, 1);\r\n\t });\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Number)\r\n\t ], SiteManageCloudTransferToolUsersComponent.prototype, \"siteId\", void 0);\r\n\t SiteManageCloudTransferToolUsersComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'site-manage-cloud-transfer-tool-users',\r\n\t template: __webpack_require__(414),\r\n\t providers: [users_service_1.UsersService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [auth_service_1.AuthService, users_service_1.UsersService])\r\n\t ], SiteManageCloudTransferToolUsersComponent);\r\n\t return SiteManageCloudTransferToolUsersComponent;\r\n\t}());\r\n\texports.SiteManageCloudTransferToolUsersComponent = SiteManageCloudTransferToolUsersComponent;\r\n\n\n/***/ },\n/* 414 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Full NameEmail Address
{{ user?.fullName }}{{ user?.emailAddress }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\";\n\n/***/ },\n/* 415 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar users_service_1 = __webpack_require__(333);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar SiteManageCloudViewInstanceViewUsersComponent = (function () {\r\n\t function SiteManageCloudViewInstanceViewUsersComponent(auth, usersService) {\r\n\t this.auth = auth;\r\n\t this.usersService = usersService;\r\n\t this.visible = false;\r\n\t this.users = [];\r\n\t this.Role = auth_service_1.Role;\r\n\t this.Permission = auth_service_1.Permission;\r\n\t }\r\n\t SiteManageCloudViewInstanceViewUsersComponent.prototype.ngOnInit = function () {\r\n\t this.getUsers();\r\n\t };\r\n\t SiteManageCloudViewInstanceViewUsersComponent.prototype.getUsers = function () {\r\n\t var _this = this;\r\n\t this.usersService.getRestrictedSiteUsersInPermission(this.siteId, auth_service_1.Permission.CloudViewInstanceView).subscribe(function (users) {\r\n\t _this.users = users;\r\n\t });\r\n\t };\r\n\t SiteManageCloudViewInstanceViewUsersComponent.prototype.toggle = function () {\r\n\t if (this.visible) {\r\n\t this.visible = false;\r\n\t }\r\n\t else {\r\n\t this.visible = true;\r\n\t }\r\n\t };\r\n\t SiteManageCloudViewInstanceViewUsersComponent.prototype.add = function () {\r\n\t var _this = this;\r\n\t this.usersService.addPermission(this.selectedUser, auth_service_1.Permission.CloudViewInstanceView, this.siteId, true).subscribe(function (res) {\r\n\t _this.selectedUser = null;\r\n\t _this.getUsers();\r\n\t });\r\n\t };\r\n\t SiteManageCloudViewInstanceViewUsersComponent.prototype.remove = function (index, user) {\r\n\t var _this = this;\r\n\t var permission = this.auth.createRestrictedSitePermissionClaimValue(this.siteId, auth_service_1.Permission.CloudViewInstanceView);\r\n\t this.usersService.removePermission(user.emailAddress, permission, this.siteId).subscribe(function (res) {\r\n\t _this.users.splice(index, 1);\r\n\t });\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Number)\r\n\t ], SiteManageCloudViewInstanceViewUsersComponent.prototype, \"siteId\", void 0);\r\n\t SiteManageCloudViewInstanceViewUsersComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'site-manage-cloud-view-instance-view-users',\r\n\t template: __webpack_require__(416),\r\n\t providers: [users_service_1.UsersService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [auth_service_1.AuthService, users_service_1.UsersService])\r\n\t ], SiteManageCloudViewInstanceViewUsersComponent);\r\n\t return SiteManageCloudViewInstanceViewUsersComponent;\r\n\t}());\r\n\texports.SiteManageCloudViewInstanceViewUsersComponent = SiteManageCloudViewInstanceViewUsersComponent;\r\n\n\n/***/ },\n/* 416 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Full NameEmail Address
{{ user?.fullName }}{{ user?.emailAddress }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\";\n\n/***/ },\n/* 417 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar users_service_1 = __webpack_require__(333);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar SiteManageConversionMonitorConnectUsersComponent = (function () {\r\n\t function SiteManageConversionMonitorConnectUsersComponent(auth, usersService) {\r\n\t this.auth = auth;\r\n\t this.usersService = usersService;\r\n\t this.visible = false;\r\n\t this.users = [];\r\n\t this.Role = auth_service_1.Role;\r\n\t this.Permission = auth_service_1.Permission;\r\n\t }\r\n\t SiteManageConversionMonitorConnectUsersComponent.prototype.ngOnInit = function () {\r\n\t this.getUsers();\r\n\t };\r\n\t SiteManageConversionMonitorConnectUsersComponent.prototype.getUsers = function () {\r\n\t var _this = this;\r\n\t this.usersService.getRestrictedSiteUsersInPermission(this.siteId, auth_service_1.Permission.ConversionMonitorConnect).subscribe(function (users) {\r\n\t _this.users = users;\r\n\t });\r\n\t };\r\n\t SiteManageConversionMonitorConnectUsersComponent.prototype.toggle = function () {\r\n\t if (this.visible) {\r\n\t this.visible = false;\r\n\t }\r\n\t else {\r\n\t this.visible = true;\r\n\t }\r\n\t };\r\n\t SiteManageConversionMonitorConnectUsersComponent.prototype.add = function () {\r\n\t var _this = this;\r\n\t this.usersService.addPermission(this.selectedUser, auth_service_1.Permission.ConversionMonitorConnect, this.siteId, true).subscribe(function (res) {\r\n\t _this.selectedUser = null;\r\n\t _this.getUsers();\r\n\t });\r\n\t };\r\n\t SiteManageConversionMonitorConnectUsersComponent.prototype.remove = function (index, user) {\r\n\t var _this = this;\r\n\t var permission = this.auth.createRestrictedSitePermissionClaimValue(this.siteId, auth_service_1.Permission.ConversionMonitorConnect);\r\n\t this.usersService.removePermission(user.emailAddress, permission, this.siteId).subscribe(function (res) {\r\n\t _this.users.splice(index, 1);\r\n\t });\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Number)\r\n\t ], SiteManageConversionMonitorConnectUsersComponent.prototype, \"siteId\", void 0);\r\n\t SiteManageConversionMonitorConnectUsersComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'site-manage-conversion-monitor-connect-users',\r\n\t template: __webpack_require__(418),\r\n\t providers: [users_service_1.UsersService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [auth_service_1.AuthService, users_service_1.UsersService])\r\n\t ], SiteManageConversionMonitorConnectUsersComponent);\r\n\t return SiteManageConversionMonitorConnectUsersComponent;\r\n\t}());\r\n\texports.SiteManageConversionMonitorConnectUsersComponent = SiteManageConversionMonitorConnectUsersComponent;\r\n\n\n/***/ },\n/* 418 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Full NameEmail Address
{{ user?.fullName }}{{ user?.emailAddress }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\";\n\n/***/ },\n/* 419 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar SiteManageUsersComponent = (function () {\r\n\t function SiteManageUsersComponent() {\r\n\t this.visible = false;\r\n\t this.users = [{\r\n\t fullName: 'Dale Stone',\r\n\t emailAddress: 'dale.stone@epicor.com'\r\n\t }];\r\n\t this.permissions = [];\r\n\t }\r\n\t SiteManageUsersComponent.prototype.ngOnInit = function () {\r\n\t };\r\n\t SiteManageUsersComponent.prototype.toggle = function () {\r\n\t if (this.visible) {\r\n\t this.visible = false;\r\n\t }\r\n\t else {\r\n\t this.visible = true;\r\n\t }\r\n\t };\r\n\t SiteManageUsersComponent.prototype.getUsers = function () {\r\n\t };\r\n\t SiteManageUsersComponent.prototype.add = function () {\r\n\t };\r\n\t SiteManageUsersComponent.prototype.remove = function () {\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Number)\r\n\t ], SiteManageUsersComponent.prototype, \"siteId\", void 0);\r\n\t SiteManageUsersComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'site-manage-users',\r\n\t template: __webpack_require__(420)\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [])\r\n\t ], SiteManageUsersComponent);\r\n\t return SiteManageUsersComponent;\r\n\t}());\r\n\texports.SiteManageUsersComponent = SiteManageUsersComponent;\r\n\n\n/***/ },\n/* 420 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Full NameEmail AddressPermissions
{{ user?.fullName }}{{ user?.emailAddress }}\\r\\n \\r\\n \\r\\n {{ permission.name }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\";\n\n/***/ },\n/* 421 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar sites_service_1 = __webpack_require__(371);\r\n\tvar SiteSecurityHistoryComponent = (function () {\r\n\t function SiteSecurityHistoryComponent(sitesService) {\r\n\t this.sitesService = sitesService;\r\n\t this.visible = false;\r\n\t this.logs = [];\r\n\t }\r\n\t SiteSecurityHistoryComponent.prototype.ngOnInit = function () {\r\n\t this.getLogs();\r\n\t };\r\n\t SiteSecurityHistoryComponent.prototype.getLogs = function () {\r\n\t var _this = this;\r\n\t this.sitesService.getSiteSecurityLogs(this.siteId).subscribe(function (pagedResult) {\r\n\t _this.logs = pagedResult.result;\r\n\t });\r\n\t };\r\n\t SiteSecurityHistoryComponent.prototype.toggle = function () {\r\n\t if (this.visible) {\r\n\t this.visible = false;\r\n\t }\r\n\t else {\r\n\t this.visible = true;\r\n\t }\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Number)\r\n\t ], SiteSecurityHistoryComponent.prototype, \"siteId\", void 0);\r\n\t SiteSecurityHistoryComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'site-security-history',\r\n\t template: __webpack_require__(422),\r\n\t providers: [sites_service_1.SitesService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [sites_service_1.SitesService])\r\n\t ], SiteSecurityHistoryComponent);\r\n\t return SiteSecurityHistoryComponent;\r\n\t}());\r\n\texports.SiteSecurityHistoryComponent = SiteSecurityHistoryComponent;\r\n\n\n/***/ },\n/* 422 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
This is a security log of important events involving your site.
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
{{ log?.action}} - Originated from {{ log?.actorIP }}
\\r\\n
{{ log?.createdDate | date: 'medium'}}
\\r\\n
\\r\\n
{{ log?.description }}
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 423 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar reports_service_1 = __webpack_require__(355);\r\n\tvar sites_service_1 = __webpack_require__(371);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar SiteManageReportsComponent = (function () {\r\n\t function SiteManageReportsComponent(auth, reportsService, sitesService) {\r\n\t this.auth = auth;\r\n\t this.reportsService = reportsService;\r\n\t this.sitesService = sitesService;\r\n\t this.visible = true;\r\n\t this.Role = auth_service_1.Role;\r\n\t this.reports = [];\r\n\t }\r\n\t SiteManageReportsComponent.prototype.ngOnInit = function () {\r\n\t this.getReports();\r\n\t };\r\n\t SiteManageReportsComponent.prototype.toggle = function () {\r\n\t if (this.visible) {\r\n\t this.visible = false;\r\n\t }\r\n\t else {\r\n\t this.visible = true;\r\n\t }\r\n\t };\r\n\t SiteManageReportsComponent.prototype.getReports = function () {\r\n\t var _this = this;\r\n\t this.sitesService.getSiteAnalyserReportsSummary(this.siteId).subscribe(function (reportsSummary) {\r\n\t _this.reports = reportsSummary.versions;\r\n\t });\r\n\t };\r\n\t SiteManageReportsComponent.prototype.openReportInNewTab = function (reportVersion) {\r\n\t var url = window.location.origin + \"/#/sites/\" + this.siteId + \"/analyserreports/\" + reportVersion;\r\n\t window.open(url, \"_blank\");\r\n\t };\r\n\t SiteManageReportsComponent.prototype.deleteReport = function (index, reportVersion) {\r\n\t var _this = this;\r\n\t if (confirm(\"Are you sure you want to delete report \" + reportVersion + \" for site \" + this.siteId + \"?\")) {\r\n\t this.reportsService.deleteReport(this.siteId, reportVersion).subscribe(function (res) {\r\n\t _this.reports.splice(index, 1);\r\n\t });\r\n\t }\r\n\t };\r\n\t SiteManageReportsComponent.prototype.hasDeletePermission = function () {\r\n\t if (this.auth.hasRole(auth_service_1.Role.Administrator) || this.auth.hasPermission(auth_service_1.Permission.AnalyserReportAdmin)) {\r\n\t return true;\r\n\t }\r\n\t return false;\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Number)\r\n\t ], SiteManageReportsComponent.prototype, \"siteId\", void 0);\r\n\t SiteManageReportsComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'site-manage-reports',\r\n\t template: __webpack_require__(424),\r\n\t providers: [reports_service_1.ReportsService, sites_service_1.SitesService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [auth_service_1.AuthService,\r\n\t reports_service_1.ReportsService,\r\n\t sites_service_1.SitesService])\r\n\t ], SiteManageReportsComponent);\r\n\t return SiteManageReportsComponent;\r\n\t}());\r\n\texports.SiteManageReportsComponent = SiteManageReportsComponent;\r\n\n\n/***/ },\n/* 424 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n No reports found.\\r\\n
\\r\\n 0\\\" class=\\\"mdl-data-table\\\" style=\\\"width:100%; border:none\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
VersionAnalysis Date
{{ report?.version }}{{ report?.analysisDate | date : 'medium'}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\";\n\n/***/ },\n/* 425 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar dom_events_1 = __webpack_require__(329);\r\n\tvar sites_service_1 = __webpack_require__(371);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar SiteCreationComponent = (function () {\r\n\t function SiteCreationComponent(router, domEvents, sitesService, auth) {\r\n\t this.router = router;\r\n\t this.domEvents = domEvents;\r\n\t this.sitesService = sitesService;\r\n\t this.auth = auth;\r\n\t this.site = {\r\n\t id: null\r\n\t };\r\n\t }\r\n\t SiteCreationComponent.prototype.ngOnInit = function () {\r\n\t this.domEvents.triggerOnDocument('appready');\r\n\t if (!(this.auth.hasRole(auth_service_1.Role.Administrator) || this.auth.hasPermission(auth_service_1.Permission.SiteCreate))) {\r\n\t this.router.navigateByUrl('/home');\r\n\t }\r\n\t };\r\n\t SiteCreationComponent.prototype.onSubmit = function () {\r\n\t var _this = this;\r\n\t this.isLoading = true;\r\n\t this.sitesService.createSite(this.site.id).subscribe(function (res) {\r\n\t _this.router.navigateByUrl('/sites');\r\n\t }, function (err) { _this.isLoading = false; });\r\n\t };\r\n\t SiteCreationComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'site-creation',\r\n\t template: __webpack_require__(426),\r\n\t providers: [sites_service_1.SitesService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [router_1.Router,\r\n\t dom_events_1.DOMEvents,\r\n\t sites_service_1.SitesService,\r\n\t auth_service_1.AuthService])\r\n\t ], SiteCreationComponent);\r\n\t return SiteCreationComponent;\r\n\t}());\r\n\texports.SiteCreationComponent = SiteCreationComponent;\r\n\n\n/***/ },\n/* 426 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n\\r\\n
\\r\\n \\r\\n Create Site\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 427 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar sites_service_1 = __webpack_require__(371);\r\n\tvar reports_service_1 = __webpack_require__(355);\r\n\tvar dom_events_1 = __webpack_require__(329);\r\n\tvar analysis_report_pipe_1 = __webpack_require__(428);\r\n\tvar AnalysisReportComponent = (function () {\r\n\t function AnalysisReportComponent(route, router, sitesService, reportsService, auth, domEvents) {\r\n\t var _this = this;\r\n\t this.route = route;\r\n\t this.router = router;\r\n\t this.sitesService = sitesService;\r\n\t this.reportsService = reportsService;\r\n\t this.auth = auth;\r\n\t this.domEvents = domEvents;\r\n\t this.tabs = [\r\n\t 'Environment',\r\n\t 'Licenses',\r\n\t 'Companies',\r\n\t 'Other',\r\n\t 'Custom'\r\n\t ];\r\n\t this.isLoading = false;\r\n\t this.freezeInput = false;\r\n\t this.analysis = null;\r\n\t this.analysisCache = [];\r\n\t this.selectedTab = '';\r\n\t this.showReviewed = false;\r\n\t this.totalReviewedPercent = 0;\r\n\t this.isDirty = false;\r\n\t this.platform = 'On Premise';\r\n\t this.statusList = ['To Review', 'Keep', 'To Remove', 'Cloud Warning'];\r\n\t this.companyList = [];\r\n\t this.defaultFilterItem = 'All';\r\n\t this.filterCustom = {\r\n\t status: this.defaultFilterItem,\r\n\t company: this.defaultFilterItem\r\n\t };\r\n\t this.mergeReportPagePipe = new analysis_report_pipe_1.MergeReportPagePipe();\r\n\t this.onFilterCustom = new core_1.EventEmitter();\r\n\t this.onAnalysisRefresh = new core_1.EventEmitter();\r\n\t this.route.queryParams.subscribe(function (params) {\r\n\t var debugReport = params['d'];\r\n\t if (debugReport) {\r\n\t _this.getLocalReport(debugReport);\r\n\t }\r\n\t else {\r\n\t _this.isLoading = true;\r\n\t _this.route.params.subscribe(function (params) {\r\n\t _this.siteId = +params['siteId'];\r\n\t _this.getReportByVersion(_this.siteId, params['version']);\r\n\t });\r\n\t }\r\n\t });\r\n\t }\r\n\t AnalysisReportComponent.prototype.getReportByVersion = function (siteId, version) {\r\n\t if (this.isLoading != true) {\r\n\t this.isLoading = true;\r\n\t }\r\n\t if (version === 'latest') {\r\n\t this.getLatestReport(siteId);\r\n\t }\r\n\t else {\r\n\t var ver = +version;\r\n\t this.getReport(siteId, ver);\r\n\t }\r\n\t };\r\n\t AnalysisReportComponent.prototype.ngOnInit = function () {\r\n\t this.domEvents.triggerOnDocument('appready');\r\n\t this.user = this.auth.getUser();\r\n\t };\r\n\t AnalysisReportComponent.prototype.onSelect = function (tab) {\r\n\t var _this = this;\r\n\t if (this.analysis) {\r\n\t this.selectedTab = tab;\r\n\t var reportSection = this.analysis[tab.toLowerCase()];\r\n\t this.selectedTabData = reportSection;\r\n\t }\r\n\t if (this.selectedTab == \"Custom\" && this.freezeInput) {\r\n\t setTimeout(function () {\r\n\t _this.onAnalysisRefresh.emit(true);\r\n\t }, 400);\r\n\t }\r\n\t };\r\n\t AnalysisReportComponent.prototype.reviewedPercent = function () {\r\n\t this.isDirty = true;\r\n\t if (this.analysis && this.analysis.custom) {\r\n\t this.totalReviewedPercent = this.setReviewedPercent(this.analysis.custom, [\"uiCustomizations\", \"methodDirectives\", \"sqlViews\", \"sqlStoredProcedures\", \"reports\", \"externalReports\",\r\n\t \"bankInterfaces\", \"customTables\", \"dashboards\", \"updatableBAQs\", \"baqMethodDirectives\", \"nonUpdatableBAQs\", \"menus\"]);\r\n\t if (this.totalReviewedPercent === 0) {\r\n\t this.totalReviewedPercent = 1;\r\n\t }\r\n\t }\r\n\t };\r\n\t AnalysisReportComponent.prototype.setReviewedPercent = function (custom, filter) {\r\n\t var total = 0;\r\n\t var reviewed = 0;\r\n\t if (custom) {\r\n\t var properties = Object.keys(custom);\r\n\t properties = properties.filter(function (property) {\r\n\t for (var _i = 0, filter_1 = filter; _i < filter_1.length; _i++) {\r\n\t var prop = filter_1[_i];\r\n\t if (property === prop) {\r\n\t return property;\r\n\t }\r\n\t }\r\n\t });\r\n\t for (var _i = 0, properties_1 = properties; _i < properties_1.length; _i++) {\r\n\t var property = properties_1[_i];\r\n\t if (custom[property]) {\r\n\t custom[property].forEach(function (item) {\r\n\t total++;\r\n\t reviewed += item.reviewed ? 1 : 0;\r\n\t });\r\n\t }\r\n\t }\r\n\t }\r\n\t var percentage = Math.floor(reviewed / total * 100);\r\n\t if (isNaN(percentage)) {\r\n\t return 0;\r\n\t }\r\n\t else {\r\n\t return percentage;\r\n\t }\r\n\t };\r\n\t AnalysisReportComponent.prototype.updateReport = function () {\r\n\t var _this = this;\r\n\t this.isLoading = true;\r\n\t this.reportsService.updateReport(this.analysis).subscribe(function (res) {\r\n\t _this.isLoading = false;\r\n\t _this.isDirty = false;\r\n\t _this.analysis.lastSavedDate = new Date(JSON.parse(res._body).reportLastSavedDate);\r\n\t }, function (err) { return _this.isLoading = false; });\r\n\t };\r\n\t AnalysisReportComponent.prototype.refreshReport = function () {\r\n\t var _this = this;\r\n\t if (this.isDirty) {\r\n\t if (!confirm(\"Changes on report will be lost if not saved. Would you wish to continue syncing the latest report? \")) {\r\n\t return;\r\n\t }\r\n\t this.isDirty = false;\r\n\t }\r\n\t this.freezeInput = true;\r\n\t this.onAnalysisRefresh.emit(true);\r\n\t this.reportsService.refreshReport(this.analysis.id).subscribe(function (res) {\r\n\t if (res._body != null) {\r\n\t var details = res.json();\r\n\t _this.getReportByVersion(details.siteId, details.version);\r\n\t }\r\n\t _this.onAnalysisRefresh.emit(false);\r\n\t _this.freezeInput = false;\r\n\t }, function (err) { return _this.freezeInput = false; });\r\n\t };\r\n\t AnalysisReportComponent.prototype.filterCustomItems = function () {\r\n\t this.onFilterCustom.emit(this.filterCustom);\r\n\t };\r\n\t AnalysisReportComponent.prototype.exportCustom = function (siteId, version, element, reportSection, exportType) {\r\n\t var _this = this;\r\n\t element.disabled = true;\r\n\t this.reportsService.getReportExportToken(this.analysis.id).subscribe(function (res) {\r\n\t if (res.token) {\r\n\t var downloadUrl = _this.reportsService.getReportExportDownloadUrl(_this.analysis.id, reportSection, res.token, exportType, siteId, version);\r\n\t window.open(downloadUrl, '_self');\r\n\t element.disabled = false;\r\n\t }\r\n\t });\r\n\t };\r\n\t AnalysisReportComponent.prototype.isCloud = function () {\r\n\t if (this.analysis) {\r\n\t return this.analysis.origin == 'cloud';\r\n\t }\r\n\t return false;\r\n\t };\r\n\t AnalysisReportComponent.prototype.getLatestReport = function (siteId) {\r\n\t var _this = this;\r\n\t this.sitesService.getLatestAnalyserReport(siteId).subscribe(function (analyserReport) {\r\n\t _this.analysis = analyserReport;\r\n\t _this.showDatabaseWarning();\r\n\t if (typeof (analyserReport.origin) != 'undefined') {\r\n\t switch (analyserReport.origin) {\r\n\t case 'cloud':\r\n\t _this.platform = 'Cloud';\r\n\t break;\r\n\t case 'onpremise':\r\n\t _this.platform = 'On Premise';\r\n\t break;\r\n\t }\r\n\t }\r\n\t _this.onSelect(_this.tabs[0]);\r\n\t _this.isLoading = false;\r\n\t _this.getReadFileSas(_this.siteId);\r\n\t if (_this.analysis != null && _this.analysis.companies != null) {\r\n\t _this.getCompaniesFilterList(_this.analysis.companies);\r\n\t }\r\n\t }, function (err) {\r\n\t _this.auth.unauthorized(err);\r\n\t _this.isLoading = false;\r\n\t });\r\n\t };\r\n\t AnalysisReportComponent.prototype.getCompaniesFilterList = function (companies) {\r\n\t if (companies != null) {\r\n\t this.companyList = this.companyList.concat(companies.map(function (c) { return c.companyID; }));\r\n\t }\r\n\t };\r\n\t AnalysisReportComponent.prototype.getReport = function (siteId, version, index) {\r\n\t var _this = this;\r\n\t if (index === void 0) { index = 0; }\r\n\t this.sitesService.getAnalyserReport(siteId, version).subscribe(function (analyserReport) {\r\n\t _this.analysis = analyserReport;\r\n\t _this.showDatabaseWarning();\r\n\t if (typeof (analyserReport.origin) != 'undefined') {\r\n\t switch (analyserReport.origin) {\r\n\t case 'cloud':\r\n\t _this.platform = 'Cloud';\r\n\t break;\r\n\t case 'onpremise':\r\n\t _this.platform = 'On Premise';\r\n\t break;\r\n\t }\r\n\t }\r\n\t _this.onSelect(_this.tabs[0]);\r\n\t _this.isLoading = false;\r\n\t _this.getReadFileSas(_this.siteId);\r\n\t if (_this.analysis != null && _this.analysis.companies != null) {\r\n\t _this.getCompaniesFilterList(_this.analysis.companies);\r\n\t }\r\n\t }, function (err) {\r\n\t _this.auth.unauthorized(err);\r\n\t _this.isLoading = false;\r\n\t });\r\n\t };\r\n\t AnalysisReportComponent.prototype.getReadFileSas = function (siteId) {\r\n\t var _this = this;\r\n\t this.sitesService.getFileShareReadFileSas(siteId).subscribe(function (sas) {\r\n\t _this.readFileSas = sas.read;\r\n\t }, function (err) { return console.error(err); });\r\n\t };\r\n\t AnalysisReportComponent.prototype.scroll = function () {\r\n\t if (this.selectedTab != \"Environment\")\r\n\t this.onSelect('Environment');\r\n\t setTimeout(function () {\r\n\t document.querySelector('#target').scrollIntoView({ behavior: 'smooth', block: 'center', inline: \"nearest\" });\r\n\t }, 100);\r\n\t };\r\n\t AnalysisReportComponent.prototype.getLocalReport = function (report) {\r\n\t };\r\n\t AnalysisReportComponent.prototype.canDeactivate = function () {\r\n\t if (this.isDirty) {\r\n\t var confirmationMessage = 'It looks like you have been editing something. '\r\n\t + 'If you leave before saving, your changes will be lost.';\r\n\t return window.confirm(confirmationMessage);\r\n\t }\r\n\t return true;\r\n\t };\r\n\t AnalysisReportComponent.prototype.formatDataSize = function (sizeInMB) {\r\n\t if (sizeInMB < 1000)\r\n\t return Math.round(sizeInMB) + \" MB\";\r\n\t else\r\n\t return Math.round(sizeInMB / 1000) + ' GB';\r\n\t };\r\n\t AnalysisReportComponent.prototype.showDatabaseWarning = function () {\r\n\t if (this.analysis &&\r\n\t this.analysis.environment &&\r\n\t this.analysis.environment.softwareAndPlatform &&\r\n\t this.analysis.environment.softwareAndPlatform.productVersion &&\r\n\t this.analysis.environment.softwareAndPlatform.databaseTotalSizeMB) {\r\n\t var databaseTotalSizeMB = this.analysis.environment.softwareAndPlatform.databaseTotalSizeMB;\r\n\t var productVersion = this.analysis.environment.softwareAndPlatform.productVersion;\r\n\t if (databaseTotalSizeMB !== null && productVersion !== null) {\r\n\t var formattedSize = this.formatDataSize(databaseTotalSizeMB);\r\n\t if (databaseTotalSizeMB > 0) {\r\n\t try {\r\n\t if (productVersion.startsWith('8') && databaseTotalSizeMB >= 100000) {\r\n\t this.databaseWarningMessage = \"Warning: Database size of \" + formattedSize + \" exceeds 100 GB for version: \" + productVersion + \". This may result in an extended database conversion time and should be discussed with your CAM.\";\r\n\t return true;\r\n\t }\r\n\t else if (productVersion.startsWith('9') && databaseTotalSizeMB >= 150000) {\r\n\t this.databaseWarningMessage = \"Warning: Database size of \" + formattedSize + \" exceeds 150 GB for version: \" + productVersion + \". This may result in an extended database conversion time and should be discussed with your CAM.\";\r\n\t return true;\r\n\t }\r\n\t else if (productVersion.startsWith('10') && databaseTotalSizeMB >= 300000) {\r\n\t this.databaseWarningMessage = \"Warning: Database size of \" + formattedSize + \" exceeds 300 GB for version: \" + productVersion + \". This may result in an extended database conversion time and should be discussed with your CAM.\";\r\n\t return true;\r\n\t }\r\n\t else if (productVersion.startsWith('11') && databaseTotalSizeMB >= 300000) {\r\n\t this.databaseWarningMessage = \"Warning: Database size of \" + formattedSize + \" exceeds 300 GB for version: \" + this.getConvertedProductVersion(productVersion) + \". This may result in an extended database conversion time and should be discussed with your CAM.\";\r\n\t return true;\r\n\t }\r\n\t }\r\n\t catch (error) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t }\r\n\t }\r\n\t return false;\r\n\t };\r\n\t AnalysisReportComponent.prototype.getConvertedProductVersion = function (productVersion) {\r\n\t if (productVersion && productVersion.indexOf('11.') === 0) {\r\n\t var _a = productVersion.split('.'), minor = _a[1], patch = _a[2], build = _a[3];\r\n\t var versionString = void 0;\r\n\t if (minor === '1') {\r\n\t if (patch === '100') {\r\n\t versionString = \"2021.1.\" + build;\r\n\t }\r\n\t else if (patch === '200') {\r\n\t versionString = \"2021.2.\" + build;\r\n\t }\r\n\t }\r\n\t else if (minor === '2') {\r\n\t if (patch === '100') {\r\n\t versionString = \"2022.1.\" + build;\r\n\t }\r\n\t else if (patch === '200') {\r\n\t versionString = \"2022.2.\" + build;\r\n\t }\r\n\t else if (patch === '300') {\r\n\t versionString = \"2023.1.\" + build;\r\n\t }\r\n\t else if (patch === '400') {\r\n\t versionString = \"2023.2.\" + build;\r\n\t }\r\n\t }\r\n\t else if (minor === '3') {\r\n\t if (patch === '100') {\r\n\t versionString = \"2024.1.\" + build;\r\n\t }\r\n\t else if (patch === '200') {\r\n\t versionString = \"2024.2.\" + build;\r\n\t }\r\n\t }\r\n\t return \"Kinetic \" + versionString;\r\n\t }\r\n\t return productVersion || 'NONE';\r\n\t };\r\n\t AnalysisReportComponent.prototype.unloadNotification = function () {\r\n\t if (this.isDirty) {\r\n\t return window.confirm();\r\n\t }\r\n\t };\r\n\t __decorate([\r\n\t core_1.HostListener('window:beforeunload', ['$event']),\r\n\t __metadata(\"design:type\", Function),\r\n\t __metadata(\"design:paramtypes\", []),\r\n\t __metadata(\"design:returntype\", void 0)\r\n\t ], AnalysisReportComponent.prototype, \"unloadNotification\", null);\r\n\t AnalysisReportComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'analysis-report',\r\n\t template: __webpack_require__(429),\r\n\t providers: [sites_service_1.SitesService, reports_service_1.ReportsService, dom_events_1.DOMEvents],\r\n\t styles: [__webpack_require__(430)],\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [router_1.ActivatedRoute,\r\n\t router_1.Router,\r\n\t sites_service_1.SitesService,\r\n\t reports_service_1.ReportsService,\r\n\t auth_service_1.AuthService,\r\n\t dom_events_1.DOMEvents])\r\n\t ], AnalysisReportComponent);\r\n\t return AnalysisReportComponent;\r\n\t}());\r\n\texports.AnalysisReportComponent = AnalysisReportComponent;\r\n\n\n/***/ },\n/* 428 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar MergeReportPagePipe = (function () {\r\n\t function MergeReportPagePipe() {\r\n\t }\r\n\t MergeReportPagePipe.prototype.transform = function (report, reportPage) {\r\n\t try {\r\n\t for (var _i = 0, _a = reportPage[\"licenses\"]; _i < _a.length; _i++) {\r\n\t var lic = _a[_i];\r\n\t report[\"licenses\"].push(lic);\r\n\t }\r\n\t for (var _b = 0, _c = reportPage[\"companies\"]; _b < _c.length; _b++) {\r\n\t var comp = _c[_b];\r\n\t report[\"companies\"].push(comp);\r\n\t }\r\n\t for (var _d = 0, _e = Object.keys(reportPage[\"other\"]); _d < _e.length; _d++) {\r\n\t var otherChildProp = _e[_d];\r\n\t for (var _f = 0, _g = reportPage[\"other\"][otherChildProp]; _f < _g.length; _f++) {\r\n\t var otherChildValue = _g[_f];\r\n\t report[\"other\"][otherChildProp].push(otherChildValue);\r\n\t }\r\n\t }\r\n\t for (var _h = 0, _j = Object.keys(reportPage[\"custom\"]); _h < _j.length; _h++) {\r\n\t var custChildProp = _j[_h];\r\n\t for (var _k = 0, _l = reportPage[\"custom\"][custChildProp]; _k < _l.length; _k++) {\r\n\t var custChildValue = _l[_k];\r\n\t report[\"custom\"][custChildProp].push(custChildValue);\r\n\t }\r\n\t }\r\n\t return report;\r\n\t }\r\n\t catch (err) {\r\n\t return report;\r\n\t }\r\n\t };\r\n\t MergeReportPagePipe = __decorate([\r\n\t core_1.Pipe({ name: 'mergeReportPage' })\r\n\t ], MergeReportPagePipe);\r\n\t return MergeReportPagePipe;\r\n\t}());\r\n\texports.MergeReportPagePipe = MergeReportPagePipe;\r\n\n\n/***/ },\n/* 429 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n Analysis Report \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n Analyser Type: {{ analysis?.erpAnalyserType}}, Analyser Version: {{ analysis?.erpAnalyserVersion }}, Analyser Build\\r\\n Date: {{ analysis?.erpAnalyserBuildDate | date: 'medium' : 'UTC'}}\\r\\n Site ID: {{ analysis?.siteId }}, Site Name: {{ analysis?.siteName}}, Report Version: {{ analysis?.version }}, Analysis\\r\\n Date: {{ analysis?.analysisDate | date:'medium' : 'UTC'}}, Analysis Platform: {{ platform }}\\r\\n \\r\\n \\r\\n Last Sync Date: {{analysis?.lastSyncDate | date:'medium' : 'UTC'}}\\r\\n ,\\r\\n \\r\\n \\r\\n \\r\\n Last Saved Date: {{analysis?.lastSavedDate | date:'medium' : 'UTC'}}\\r\\n ,\\r\\n \\r\\n \\r\\n \\r\\n Kinetic Form List: {{analysis?.kineticFormListVersion}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n

Reviewed

\\r\\n
\\r\\n
\\r\\n 0\\\" style=\\\"cursor: pointer;\\\" (click)=\\\"scroll()\\\">\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Is Production\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n All\\r\\n \\r\\n {{ item }}\\r\\n \\r\\n \\r\\n 1\\\" placeholder=\\\"Company\\\" [(ngModel)]=\\\"filterCustom.company\\\" (ngModelChange)=\\\"filterCustomItems()\\\" [disabled]=\\\"freezeInput\\\">\\r\\n All\\r\\n \\r\\n {{ item }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 430 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \".review-progress-circle { \\r\\n position: absolute;\\r\\n top: 0px;\\r\\n right: 0px;\\r\\n padding-top: 20px;\\r\\n padding-right: 30px; \\r\\n}\\r\\n\\r\\n.review-progress-circle p {\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.active-tab {\\r\\n /*background-color:rgb(18,195,244);*/\\r\\n border-bottom: 2px solid #0d6b9e;\\r\\n}\\r\\n\\r\\na:hover {\\r\\n color: #106ebe;\\r\\n}\\r\\n\\r\\n.rotate {\\r\\n -webkit-animation: fa-spin 2s infinite linear;\\r\\n animation: fa-spin 2s infinite linear;\\r\\n}\"\n\n/***/ },\n/* 431 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar StaticDataComponent = (function () {\r\n\t function StaticDataComponent() {\r\n\t this.barChartData = [];\r\n\t this.barChartOptions = {\r\n\t scaleShowVerticalLines: false,\r\n\t responsive: true\r\n\t };\r\n\t this.barChartLabels = [''];\r\n\t this.barChartType = 'bar';\r\n\t this.barChartLegend = true;\r\n\t this.barChartColors = [\r\n\t {\r\n\t backgroundColor: '#FFA1B5',\r\n\t pointBackgroundColor: 'rgba(148,159,177,1)',\r\n\t pointBorderColor: '#fff',\r\n\t pointHoverBackgroundColor: '#fff',\r\n\t pointHoverBorderColor: 'rgba(148,159,177,0.8)'\r\n\t },\r\n\t {\r\n\t backgroundColor: '#5EB5EF',\r\n\t pointBackgroundColor: 'rgba(148,159,177,1)',\r\n\t pointBorderColor: '#fff',\r\n\t pointHoverBackgroundColor: '#fff',\r\n\t pointHoverBorderColor: 'rgba(148,159,177,0.8)'\r\n\t },\r\n\t {\r\n\t backgroundColor: '#FFD878',\r\n\t pointBackgroundColor: 'rgba(148,159,177,1)',\r\n\t pointBorderColor: '#fff',\r\n\t pointHoverBackgroundColor: '#fff',\r\n\t pointHoverBorderColor: 'rgba(148,159,177,0.8)'\r\n\t },\r\n\t {\r\n\t backgroundColor: '#ECEDF1',\r\n\t pointBackgroundColor: 'rgba(148,159,177,1)',\r\n\t pointBorderColor: '#fff',\r\n\t pointHoverBackgroundColor: '#fff',\r\n\t pointHoverBorderColor: 'rgba(148,159,177,0.8)'\r\n\t },\r\n\t {\r\n\t backgroundColor: '#6FCDCD',\r\n\t pointBackgroundColor: 'rgba(148,159,177,1)',\r\n\t pointBorderColor: '#fff',\r\n\t pointHoverBackgroundColor: '#fff',\r\n\t pointHoverBorderColor: 'rgba(148,159,177,0.8)'\r\n\t },\r\n\t {\r\n\t backgroundColor: '#ACC9D7',\r\n\t pointBackgroundColor: 'rgba(148,159,177,1)',\r\n\t pointBorderColor: '#fff',\r\n\t pointHoverBackgroundColor: '#fff',\r\n\t pointHoverBorderColor: 'rgba(148,159,177,0.8)'\r\n\t },\r\n\t {\r\n\t backgroundColor: '#E3E3E3',\r\n\t pointBackgroundColor: 'rgba(148,159,177,1)',\r\n\t pointBorderColor: '#fff',\r\n\t pointHoverBackgroundColor: '#fff',\r\n\t pointHoverBorderColor: 'rgba(148,159,177,0.8)'\r\n\t }\r\n\t ];\r\n\t }\r\n\t StaticDataComponent.prototype.chartClicked = function (e) {\r\n\t };\r\n\t StaticDataComponent.prototype.chartHovered = function (e) {\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Array)\r\n\t ], StaticDataComponent.prototype, \"barChartData\", void 0);\r\n\t StaticDataComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'static-data',\r\n\t template: __webpack_require__(432)\r\n\t })\r\n\t ], StaticDataComponent);\r\n\t return StaticDataComponent;\r\n\t}());\r\n\texports.StaticDataComponent = StaticDataComponent;\r\n\n\n/***/ },\n/* 432 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
\\r\\n 0\\\" class=\\\"chart\\\"\\r\\n [datasets]=\\\"barChartData\\\"\\r\\n [labels]=\\\"barChartLabels\\\"\\r\\n [options]=\\\"barChartOptions\\\"\\r\\n [legend]=\\\"barChartLegend\\\"\\r\\n [colors]=\\\"barChartColors\\\"\\r\\n [chartType]=\\\"barChartType\\\"\\r\\n (chartHover)=\\\"chartHovered($event)\\\"\\r\\n (chartClick)=\\\"chartClicked($event)\\\">\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\";\n\n/***/ },\n/* 433 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar TransactionOverviewComponent = (function () {\r\n\t function TransactionOverviewComponent() {\r\n\t this.lineChartData = [];\r\n\t this.lineChartLabels = [];\r\n\t this.lineChartOptions = {\r\n\t animation: false,\r\n\t responsive: true\r\n\t };\r\n\t this.lineChartColors = [\r\n\t {\r\n\t backgroundColor: '#FFA1B5',\r\n\t pointBackgroundColor: 'rgba(148,159,177,1)',\r\n\t pointBorderColor: '#fff',\r\n\t pointHoverBackgroundColor: '#fff',\r\n\t pointHoverBorderColor: 'rgba(148,159,177,0.8)'\r\n\t },\r\n\t {\r\n\t backgroundColor: '#5EB5EF',\r\n\t pointBackgroundColor: 'rgba(148,159,177,1)',\r\n\t pointBorderColor: '#fff',\r\n\t pointHoverBackgroundColor: '#fff',\r\n\t pointHoverBorderColor: 'rgba(148,159,177,0.8)'\r\n\t },\r\n\t {\r\n\t backgroundColor: '#FFD878',\r\n\t pointBackgroundColor: 'rgba(148,159,177,1)',\r\n\t pointBorderColor: '#fff',\r\n\t pointHoverBackgroundColor: '#fff',\r\n\t pointHoverBorderColor: 'rgba(148,159,177,0.8)'\r\n\t },\r\n\t {\r\n\t backgroundColor: '#ECEDF1',\r\n\t pointBackgroundColor: 'rgba(148,159,177,1)',\r\n\t pointBorderColor: '#fff',\r\n\t pointHoverBackgroundColor: '#fff',\r\n\t pointHoverBorderColor: 'rgba(148,159,177,0.8)'\r\n\t },\r\n\t {\r\n\t backgroundColor: '#6FCDCD',\r\n\t pointBackgroundColor: 'rgba(148,159,177,1)',\r\n\t pointBorderColor: '#fff',\r\n\t pointHoverBackgroundColor: '#fff',\r\n\t pointHoverBorderColor: 'rgba(148,159,177,0.8)'\r\n\t },\r\n\t {\r\n\t backgroundColor: '#ACC9D7',\r\n\t pointBackgroundColor: 'rgba(148,159,177,1)',\r\n\t pointBorderColor: '#fff',\r\n\t pointHoverBackgroundColor: '#fff',\r\n\t pointHoverBorderColor: 'rgba(148,159,177,0.8)'\r\n\t },\r\n\t {\r\n\t backgroundColor: '#E3E3E3',\r\n\t pointBackgroundColor: 'rgba(148,159,177,1)',\r\n\t pointBorderColor: '#fff',\r\n\t pointHoverBackgroundColor: '#fff',\r\n\t pointHoverBorderColor: 'rgba(148,159,177,0.8)'\r\n\t }\r\n\t ];\r\n\t this.lineChartLegend = true;\r\n\t this.lineChartType = 'line';\r\n\t }\r\n\t TransactionOverviewComponent.prototype.chartClicked = function (e) {\r\n\t };\r\n\t TransactionOverviewComponent.prototype.chartHovered = function (e) {\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Array)\r\n\t ], TransactionOverviewComponent.prototype, \"lineChartData\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Array)\r\n\t ], TransactionOverviewComponent.prototype, \"lineChartLabels\", void 0);\r\n\t TransactionOverviewComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'transaction-overview',\r\n\t template: __webpack_require__(434)\r\n\t })\r\n\t ], TransactionOverviewComponent);\r\n\t return TransactionOverviewComponent;\r\n\t}());\r\n\texports.TransactionOverviewComponent = TransactionOverviewComponent;\r\n\n\n/***/ },\n/* 434 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
\\r\\n 0\\\" class=\\\"chart\\\"\\r\\n [datasets]=\\\"lineChartData\\\"\\r\\n [labels]=\\\"lineChartLabels\\\"\\r\\n [options]=\\\"lineChartOptions\\\"\\r\\n [colors]=\\\"lineChartColors\\\"\\r\\n [legend]=\\\"lineChartLegend\\\"\\r\\n [chartType]=\\\"lineChartType\\\"\\r\\n (chartHover)=\\\"chartHovered($event)\\\"\\r\\n (chartClick)=\\\"chartClicked($event)\\\">\\r\\n
\\r\\n\\r\\n\\r\\n\";\n\n/***/ },\n/* 435 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar CompaniesComponent = (function () {\r\n\t function CompaniesComponent() {\r\n\t this._companies = [];\r\n\t this.opened = true;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t Object.defineProperty(CompaniesComponent.prototype, \"data\", {\r\n\t get: function () { return convertKeysToCamelCase(this._companies); },\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t this._companies = convertKeysToCamelCase(data);\r\n\t this._companies.forEach(function (company) {\r\n\t company.icon = 'expand_more';\r\n\t });\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t CompaniesComponent.prototype.ngOnInit = function () {\r\n\t if (this._companies.length === 1) {\r\n\t this.toggleChild(this._companies[0]);\r\n\t }\r\n\t };\r\n\t CompaniesComponent.prototype.toggle = function (child) {\r\n\t this.opened = !this.opened;\r\n\t if (this.opened) {\r\n\t this.expandLess();\r\n\t }\r\n\t else {\r\n\t this.expandMore();\r\n\t }\r\n\t };\r\n\t CompaniesComponent.prototype.expandLess = function () {\r\n\t this.icon = 'expand_less';\r\n\t };\r\n\t CompaniesComponent.prototype.expandMore = function () {\r\n\t this.icon = 'expand_more';\r\n\t };\r\n\t CompaniesComponent.prototype.toggleChild = function (child) {\r\n\t child.openedChild = !child.openedChild;\r\n\t if (child.openedChild) {\r\n\t this.expandLessChild(child);\r\n\t }\r\n\t else {\r\n\t this.expandMoreChild(child);\r\n\t }\r\n\t };\r\n\t CompaniesComponent.prototype.expandLessChild = function (child) {\r\n\t child.icon = 'expand_less';\r\n\t };\r\n\t CompaniesComponent.prototype.expandMoreChild = function (child) {\r\n\t child.icon = 'expand_more';\r\n\t };\r\n\t CompaniesComponent.prototype.openGoogleMaps = function (child) {\r\n\t var q = child.address1 + '+' + child.city + '+' + child.zip;\r\n\t window.open(\"http://maps.google.com/?q=\" + q, \"_blank\");\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], CompaniesComponent.prototype, \"data\", null);\r\n\t CompaniesComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'companies',\r\n\t template: __webpack_require__(436),\r\n\t styles: [\r\n\t __webpack_require__(437)\r\n\t ]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [])\r\n\t ], CompaniesComponent);\r\n\t return CompaniesComponent;\r\n\t}());\r\n\texports.CompaniesComponent = CompaniesComponent;\r\n\tfunction convertKeysToCamelCase(obj) {\r\n\t if (!obj || typeof obj !== \"object\")\r\n\t return null;\r\n\t if (obj instanceof Array) {\r\n\t return $.map(obj, function (value) {\r\n\t return convertKeysToCamelCase(value);\r\n\t });\r\n\t }\r\n\t var newObj = {};\r\n\t $.each(obj, function (key, value) {\r\n\t key = key.charAt(0).toLowerCase() + key.slice(1);\r\n\t if (typeof value == \"object\" && !(value instanceof Array)) {\r\n\t value = convertKeysToCamelCase(value);\r\n\t }\r\n\t newObj[key] = value;\r\n\t });\r\n\t return newObj;\r\n\t}\r\n\t;\r\n\n\n/***/ },\n/* 436 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n Companies ({{_companies?.length}})\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n {{comp?.name}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n GL AP\\r\\n \\r\\n GL AR\\r\\n \\r\\n GL Inventory\\r\\n \\r\\n GL Payroll\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Sites ({{comp.sites?.length}})\\r\\n
    \\r\\n
  • \\r\\n {{ site?.name }}\\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n Static Data\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Transaction Data (Last 12 Months)\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Subledger Data (Last 12 Months)\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Active Users ({{comp.users?.length}}) Last 6 Months\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n {{ user?.name }}\\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 437 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\"\n\n/***/ },\n/* 438 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar apmObjects_pipe_1 = __webpack_require__(439);\r\n\tvar complexity_type_service_1 = __webpack_require__(440);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar reports_component_service_1 = __webpack_require__(441);\r\n\tvar apmObjects_modaldialog_1 = __webpack_require__(448);\r\n\tvar APMObjectsComponent = (function () {\r\n\t function APMObjectsComponent(pagerService, complexityService, dialog, viewContainerRef, reportComponentService) {\r\n\t this.pagerService = pagerService;\r\n\t this.complexityService = complexityService;\r\n\t this.dialog = dialog;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.reportComponentService = reportComponentService;\r\n\t this.onChange = new core_1.EventEmitter();\r\n\t this._apmObjects = [];\r\n\t this.freezeInputs = false;\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t this.keep = false;\r\n\t this.reviewed = false;\r\n\t this.search = '';\r\n\t this.selectedFilter = {};\r\n\t this.pager = {};\r\n\t this.pageSize = 10;\r\n\t this.filterAPMObjectPipe = new apmObjects_pipe_1.FilterAPMObjectPipe();\r\n\t this.finalAPMObjectList = \"\";\r\n\t this.isDesc = false;\r\n\t this.column = 'documentID';\r\n\t this.checkedAll = false;\r\n\t this.hidePagination = false;\r\n\t this.setFilterColorColumn = '';\r\n\t this.clickedOutside = false;\r\n\t }\r\n\t Object.defineProperty(APMObjectsComponent.prototype, \"data\", {\r\n\t get: function () { return this._apmObjects; },\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t if (data.apmObjects) {\r\n\t this._apmObjects = data.apmObjects;\r\n\t }\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t APMObjectsComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.onFilterCustom.subscribe(function (res) {\r\n\t _this.selectedFilter = res;\r\n\t _this.filterCustom(_this.selectedFilter, 1);\r\n\t });\r\n\t this.onAnalysisRefresh.subscribe(function (res) {\r\n\t _this.freezeInputs = res;\r\n\t });\r\n\t this.setPage(1);\r\n\t };\r\n\t APMObjectsComponent.prototype.filterCustom = function (filter, page) {\r\n\t var apmObjects = this._apmObjects;\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t apmObjects = this.setAPMObjectFilter(filter, apmObjects);\r\n\t this.pager = this.pagerService.getPager(apmObjects.length, page, this.pageSize);\r\n\t this.pagedItems = apmObjects.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t APMObjectsComponent.prototype.filterAPMObjects = function (query, page) {\r\n\t var apmObjects = this._apmObjects;\r\n\t if (query === '') {\r\n\t this.setPage(1);\r\n\t }\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t apmObjects = this.filterAPMObjectPipe.transform(apmObjects, query);\r\n\t apmObjects = this.setAPMObjectFilter(this.selectedFilter, apmObjects);\r\n\t this.pager = this.pagerService.getPager(apmObjects.length, page, this.pageSize);\r\n\t this.pagedItems = apmObjects.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t APMObjectsComponent.prototype.setAPMObjectFilter = function (filter, apmObject) {\r\n\t apmObject = this.pagerService.filter('custom', apmObject, filter);\r\n\t return apmObject;\r\n\t };\r\n\t APMObjectsComponent.prototype.countReviewed = function () {\r\n\t var count = 0;\r\n\t this._apmObjects.forEach(function (apmObjects) {\r\n\t count += apmObjects.reviewed ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t APMObjectsComponent.prototype.countKeep = function () {\r\n\t var count = 0;\r\n\t this._apmObjects.forEach(function (apmObjects) {\r\n\t count += apmObjects.keep ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t APMObjectsComponent.prototype.keepAll = function (checked) {\r\n\t this._apmObjects.forEach(function (apmObjects) {\r\n\t apmObjects.keep = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t APMObjectsComponent.prototype.reviewedAll = function (checked) {\r\n\t this._apmObjects.forEach(function (apmObjects) {\r\n\t apmObjects.reviewed = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t APMObjectsComponent.prototype.toggle = function () {\r\n\t if (this.opened) {\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t else {\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t };\r\n\t APMObjectsComponent.prototype.setPage = function (page) {\r\n\t if (page < 1 || page > this.pager.totalPages) {\r\n\t return;\r\n\t }\r\n\t if (this.search !== '') {\r\n\t this.filterAPMObjects(this.search, page);\r\n\t }\r\n\t else {\r\n\t this.pager = this.pagerService.getPager(this._apmObjects.length, page, this.pageSize);\r\n\t this.pagedItems = this._apmObjects.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t this.finalAPMObjectList = \"\";\r\n\t this.checkedAll = false;\r\n\t this.reportComponentService.ngAPMInitFlag(this.pagedItems);\r\n\t this.sort(this.column);\r\n\t }\r\n\t };\r\n\t APMObjectsComponent.prototype.sort = function (property) {\r\n\t this.isDesc = !this.isDesc;\r\n\t this.column = property;\r\n\t this.direction = this.isDesc ? 1 : -1;\r\n\t };\r\n\t ;\r\n\t APMObjectsComponent.prototype.openDialog = function (colElem) {\r\n\t var _this = this;\r\n\t var menusDialogInput = {\r\n\t pagedItems: this.pagedItems,\r\n\t finalAPMObjectList: this.finalAPMObjectList,\r\n\t selectedColumn: colElem,\r\n\t checkedAll: this.checkedAll,\r\n\t };\r\n\t this.setFilterColorColumn = colElem;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.apmObjectRef = this.dialog.open(apmObjects_modaldialog_1.APMObjectReportDialog, config);\r\n\t this.apmObjectRef.componentInstance.render(menusDialogInput);\r\n\t this.apmObjectRef.afterClosed().subscribe(function (result) {\r\n\t _this.clickedOutside = _this.apmObjectRef.componentInstance.clickedOutside;\r\n\t if (!_this.clickedOutside) {\r\n\t _this.selectedItems = [];\r\n\t _this.finalAPMObjectList = _this.apmObjectRef.componentInstance.finalAPMObjectList;\r\n\t _this.checkedAll = _this.apmObjectRef.componentInstance.checkedAll;\r\n\t if (_this.finalAPMObjectList != null && _this.finalAPMObjectList != undefined && _this.finalAPMObjectList.length > 0) {\r\n\t _this.finalAPMObjectList.split(',').forEach(function (item) {\r\n\t _this.selectedItems.push(item);\r\n\t });\r\n\t if (_this.selectedItems.length != _this.pagedItems.length)\r\n\t _this.hidePagination = true;\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t _this.apmObjectRef = null;\r\n\t });\r\n\t };\r\n\t APMObjectsComponent.prototype.setFilterColorDocumentID = function () {\r\n\t return this.reportComponentService.setFilterColorDocumentID(this.finalAPMObjectList, this.setFilterColorColumn);\r\n\t };\r\n\t APMObjectsComponent.prototype.setFilterColorDocumentType = function () {\r\n\t return this.reportComponentService.setFilterColorDocumentType(this.finalAPMObjectList, this.setFilterColorColumn);\r\n\t };\r\n\t APMObjectsComponent.prototype.setFilterColorDocuments = function () {\r\n\t return this.reportComponentService.setFilterColorDocuments(this.finalAPMObjectList, this.setFilterColorColumn);\r\n\t };\r\n\t APMObjectsComponent.prototype.setFilterColorProperties = function () {\r\n\t return this.reportComponentService.setFilterColorProperties(this.finalAPMObjectList, this.setFilterColorColumn);\r\n\t };\r\n\t APMObjectsComponent.prototype.setFilterColorRoutings = function () {\r\n\t return this.reportComponentService.setFilterColorRoutings(this.finalAPMObjectList, this.setFilterColorColumn);\r\n\t };\r\n\t APMObjectsComponent.prototype.setFilterColorRecipients = function () {\r\n\t return this.reportComponentService.setFilterColorRecipients(this.finalAPMObjectList, this.setFilterColorColumn);\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], APMObjectsComponent.prototype, \"data\", null);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], APMObjectsComponent.prototype, \"onAnalysisRefresh\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], APMObjectsComponent.prototype, \"onFilterCustom\", void 0);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], APMObjectsComponent.prototype, \"onChange\", void 0);\r\n\t APMObjectsComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'apmObjects',\r\n\t template: __webpack_require__(452),\r\n\t providers: [pager_service_1.PagerService, complexity_type_service_1.ComplexityService, reports_component_service_1.ReportComponentService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [pager_service_1.PagerService,\r\n\t complexity_type_service_1.ComplexityService,\r\n\t material_1.MdDialog,\r\n\t core_1.ViewContainerRef,\r\n\t reports_component_service_1.ReportComponentService])\r\n\t ], APMObjectsComponent);\r\n\t return APMObjectsComponent;\r\n\t}());\r\n\texports.APMObjectsComponent = APMObjectsComponent;\r\n\n\n/***/ },\n/* 439 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar FilterAPMObjectPipe = (function () {\r\n\t function FilterAPMObjectPipe() {\r\n\t }\r\n\t FilterAPMObjectPipe.prototype.transform = function (apmObject, query) {\r\n\t if (query === '') {\r\n\t return apmObject;\r\n\t }\r\n\t return apmObject.filter(function (apm) {\r\n\t return apm.documentId.toString().toLowerCase().indexOf(query.toLowerCase()) !== -1 ||\r\n\t apm.documentType.toLowerCase().indexOf(query.toLowerCase()) !== -1;\r\n\t });\r\n\t };\r\n\t FilterAPMObjectPipe = __decorate([\r\n\t core_1.Pipe({ name: 'filterAPMObjects' })\r\n\t ], FilterAPMObjectPipe);\r\n\t return FilterAPMObjectPipe;\r\n\t}());\r\n\texports.FilterAPMObjectPipe = FilterAPMObjectPipe;\r\n\n\n/***/ },\n/* 440 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar ComplexityService = (function () {\r\n\t function ComplexityService() {\r\n\t }\r\n\t ComplexityService.prototype.getComplexity = function (complexity, complexityType) {\r\n\t var number = '';\r\n\t var type = '';\r\n\t if (complexityType != ComplexityType.Unknown && complexityType != null) {\r\n\t type = ComplexityType[complexityType];\r\n\t }\r\n\t return \"\" + type;\r\n\t };\r\n\t ComplexityService = __decorate([\r\n\t core_1.Injectable()\r\n\t ], ComplexityService);\r\n\t return ComplexityService;\r\n\t}());\r\n\texports.ComplexityService = ComplexityService;\r\n\tvar ComplexityType;\r\n\t(function (ComplexityType) {\r\n\t ComplexityType[ComplexityType[\"Unknown\"] = 0] = \"Unknown\";\r\n\t ComplexityType[ComplexityType[\"Basic\"] = 1] = \"Basic\";\r\n\t ComplexityType[ComplexityType[\"Intermediate\"] = 2] = \"Intermediate\";\r\n\t ComplexityType[ComplexityType[\"Complex\"] = 3] = \"Complex\";\r\n\t})(ComplexityType = exports.ComplexityType || (exports.ComplexityType = {}));\r\n\n\n/***/ },\n/* 441 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar complexity_type_service_1 = __webpack_require__(440);\r\n\tvar bpms_search_pipe_1 = __webpack_require__(442);\r\n\tvar baqs_modaldialog_1 = __webpack_require__(443);\r\n\tvar menus_dialog_1 = __webpack_require__(444);\r\n\tvar udforms_modaldialog_1 = __webpack_require__(445);\r\n\tvar bankInterfaces_modaldialog_1 = __webpack_require__(446);\r\n\tvar changelogs_modaldialog_1 = __webpack_require__(447);\r\n\tvar apmObjects_modaldialog_1 = __webpack_require__(448);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar userDefinedTables_modaldialog_1 = __webpack_require__(449);\r\n\tvar customTriggers_modaldialog_1 = __webpack_require__(450);\r\n\tvar ReportComponentService = (function () {\r\n\t function ReportComponentService(complexityService) {\r\n\t this.complexityService = complexityService;\r\n\t this.rowIndex = 1;\r\n\t this.filterBlueColor = \"rgb(2,80,100)\";\r\n\t this.filterDefaultColor = \"rgba(0,0,0,.54)\";\r\n\t }\r\n\t ReportComponentService.prototype.ngOnInit = function () {\r\n\t };\r\n\t ReportComponentService.prototype.ngInitBPMsFlag = function (items) {\r\n\t var _this = this;\r\n\t this.rowIndex = 1;\r\n\t items.forEach(function (item) {\r\n\t item.rowIndex = _this.rowIndex;\r\n\t item.isChecked = true;\r\n\t _this.rowIndex = _this.rowIndex + 1;\r\n\t item.customMethod = (item.businessObject + '.' + item.methodCode);\r\n\t item.customComplexity = _this.complexityService.getComplexity(item.complexity, item.complexityType);\r\n\t });\r\n\t };\r\n\t ReportComponentService.prototype.ngBAQsInitFlag = function (items) {\r\n\t var _this = this;\r\n\t this.rowIndex = 1;\r\n\t items.forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t item.rowIndex = _this.rowIndex;\r\n\t item.customComplexity = _this.complexityService.getComplexity(item.complexity, item.complexityType);\r\n\t _this.rowIndex = _this.rowIndex + 1;\r\n\t });\r\n\t };\r\n\t ReportComponentService.prototype.ngMenusInitFlag = function (items) {\r\n\t var _this = this;\r\n\t this.rowIndex = 1;\r\n\t items.forEach(function (item) {\r\n\t item.rowIndex = _this.rowIndex;\r\n\t item.isChecked = true;\r\n\t _this.rowIndex = _this.rowIndex + 1;\r\n\t });\r\n\t };\r\n\t ReportComponentService.prototype.ngUdFormsInitFlag = function (items) {\r\n\t var _this = this;\r\n\t this.rowIndex = 1;\r\n\t items.forEach(function (item) {\r\n\t item.rowIndex = _this.rowIndex;\r\n\t item.isChecked = true;\r\n\t _this.rowIndex = _this.rowIndex + 1;\r\n\t });\r\n\t };\r\n\t ReportComponentService.prototype.ngSdkInitFlag = function (items) {\r\n\t var _this = this;\r\n\t this.rowIndex = 1;\r\n\t items.forEach(function (item) {\r\n\t item.rowIndex = _this.rowIndex;\r\n\t item.isChecked = true;\r\n\t _this.rowIndex = _this.rowIndex + 1;\r\n\t });\r\n\t };\r\n\t ReportComponentService.prototype.ngInitBankInterfaceFlag = function (items) {\r\n\t var _this = this;\r\n\t this.rowIndex = 1;\r\n\t items.forEach(function (item) {\r\n\t item.rowIndex = _this.rowIndex;\r\n\t item.isChecked = true;\r\n\t _this.rowIndex = _this.rowIndex + 1;\r\n\t });\r\n\t };\r\n\t ReportComponentService.prototype.ngInitChangeLogsFlag = function (items) {\r\n\t var _this = this;\r\n\t this.rowIndex = 1;\r\n\t items.forEach(function (item) {\r\n\t item.rowIndex = _this.rowIndex;\r\n\t item.isChecked = true;\r\n\t _this.rowIndex = _this.rowIndex + 1;\r\n\t });\r\n\t };\r\n\t ReportComponentService.prototype.ngExternalReportInitFlag = function (items) {\r\n\t var _this = this;\r\n\t this.rowIndex = 1;\r\n\t items.forEach(function (item) {\r\n\t item.rowIndex = _this.rowIndex;\r\n\t item.isChecked = true;\r\n\t _this.rowIndex = _this.rowIndex + 1;\r\n\t });\r\n\t };\r\n\t ReportComponentService.prototype.ngSQLInitFlag = function (items) {\r\n\t var _this = this;\r\n\t this.rowIndex = 1;\r\n\t items.forEach(function (item) {\r\n\t item.rowIndex = _this.rowIndex;\r\n\t item.isChecked = true;\r\n\t _this.rowIndex = _this.rowIndex + 1;\r\n\t });\r\n\t };\r\n\t ReportComponentService.prototype.ngAPMInitFlag = function (items) {\r\n\t var _this = this;\r\n\t this.rowIndex = 1;\r\n\t items.forEach(function (item) {\r\n\t item.rowIndex = _this.rowIndex;\r\n\t item.isChecked = true;\r\n\t _this.rowIndex = _this.rowIndex + 1;\r\n\t });\r\n\t };\r\n\t ReportComponentService.prototype.setFilterColorGroup = function (finalBPMsList, setFilterColorColumn) {\r\n\t if (finalBPMsList.length != 0 && setFilterColorColumn == bpms_search_pipe_1.BPMsFilterColumnName[bpms_search_pipe_1.BPMsFilterColumnName.Group]) {\r\n\t return { 'color': this.filterBlueColor };\r\n\t }\r\n\t else {\r\n\t return { 'color': this.filterDefaultColor };\r\n\t }\r\n\t };\r\n\t ReportComponentService.prototype.setFilterColorName = function (finalBPMsList, setFilterColorColumn) {\r\n\t if (finalBPMsList.length != 0 && setFilterColorColumn == bpms_search_pipe_1.BPMsFilterColumnName[bpms_search_pipe_1.BPMsFilterColumnName.Name]) {\r\n\t return { 'color': this.filterBlueColor };\r\n\t }\r\n\t else {\r\n\t return { 'color': this.filterDefaultColor };\r\n\t }\r\n\t };\r\n\t ReportComponentService.prototype.setFilterColorTableName = function (finalBPMsList, setFilterColorColumn) {\r\n\t if (finalBPMsList.length != 0 && setFilterColorColumn == customTriggers_modaldialog_1.CustomTriggersFilterColumnName[customTriggers_modaldialog_1.CustomTriggersFilterColumnName.Name]) {\r\n\t return { 'color': this.filterBlueColor };\r\n\t }\r\n\t else {\r\n\t return { 'color': this.filterDefaultColor };\r\n\t }\r\n\t };\r\n\t ReportComponentService.prototype.setFilterColorComplexity = function (finalBPMsList, setFilterColorColumn) {\r\n\t if (finalBPMsList.length != 0 && setFilterColorColumn == bpms_search_pipe_1.BPMsFilterColumnName[bpms_search_pipe_1.BPMsFilterColumnName.Complexity]) {\r\n\t return { 'color': this.filterBlueColor };\r\n\t }\r\n\t else {\r\n\t return { 'color': this.filterDefaultColor };\r\n\t }\r\n\t };\r\n\t ReportComponentService.prototype.setFilterColorMethod = function (finalBPMsList, setFilterColorColumn) {\r\n\t if (finalBPMsList.length != 0 && setFilterColorColumn == bpms_search_pipe_1.BPMsFilterColumnName[bpms_search_pipe_1.BPMsFilterColumnName.Method]) {\r\n\t return { 'color': this.filterBlueColor };\r\n\t }\r\n\t else {\r\n\t return { 'color': this.filterDefaultColor };\r\n\t }\r\n\t };\r\n\t ReportComponentService.prototype.setFilterColorLOC = function (finalBPMsList, setFilterColorColumn) {\r\n\t if (finalBPMsList.length != 0 && setFilterColorColumn == bpms_search_pipe_1.BPMsFilterColumnName[bpms_search_pipe_1.BPMsFilterColumnName.LOC]) {\r\n\t return { 'color': this.filterBlueColor };\r\n\t }\r\n\t else {\r\n\t return { 'color': this.filterDefaultColor };\r\n\t }\r\n\t };\r\n\t ReportComponentService.prototype.setFilterColorCompany = function (finalBAQsList, setFilterColorColumn) {\r\n\t if (finalBAQsList.length != 0 && setFilterColorColumn == baqs_modaldialog_1.BAQsFilterColumnName[baqs_modaldialog_1.BAQsFilterColumnName.Company]) {\r\n\t return { 'color': this.filterBlueColor };\r\n\t }\r\n\t else {\r\n\t return { 'color': this.filterDefaultColor };\r\n\t }\r\n\t };\r\n\t ReportComponentService.prototype.setFilterColorQueryId = function (finalBAQsList, setFilterColorColumn) {\r\n\t if (finalBAQsList.length != 0 && setFilterColorColumn == baqs_modaldialog_1.BAQsFilterColumnName[baqs_modaldialog_1.BAQsFilterColumnName.QueryId]) {\r\n\t return { 'color': this.filterBlueColor };\r\n\t }\r\n\t else {\r\n\t return { 'color': this.filterDefaultColor };\r\n\t }\r\n\t };\r\n\t ReportComponentService.prototype.setFilterColorDesc = function (finalBAQsList, setFilterColorColumn) {\r\n\t if (finalBAQsList.length != 0 && setFilterColorColumn == baqs_modaldialog_1.BAQsFilterColumnName[baqs_modaldialog_1.BAQsFilterColumnName.Description]) {\r\n\t return { 'color': this.filterBlueColor };\r\n\t }\r\n\t else {\r\n\t return { 'color': this.filterDefaultColor };\r\n\t }\r\n\t };\r\n\t ReportComponentService.prototype.setFilterColorAuthor = function (finalUpdatableBAQsList, setFilterColorColumn) {\r\n\t if (finalUpdatableBAQsList.length != 0 && setFilterColorColumn == baqs_modaldialog_1.BAQsFilterColumnName[baqs_modaldialog_1.BAQsFilterColumnName.Author]) {\r\n\t return { 'color': this.filterBlueColor };\r\n\t }\r\n\t else {\r\n\t return { 'color': this.filterDefaultColor };\r\n\t }\r\n\t };\r\n\t ReportComponentService.prototype.setFilterColorCompatible = function (finalUpdatableBAQsList, setFilterColorColumn) {\r\n\t if (finalUpdatableBAQsList.length != 0 && setFilterColorColumn == baqs_modaldialog_1.BAQsFilterColumnName[baqs_modaldialog_1.BAQsFilterColumnName.Compatible]) {\r\n\t return { 'color': this.filterBlueColor };\r\n\t }\r\n\t else {\r\n\t return { 'color': this.filterDefaultColor };\r\n\t }\r\n\t };\r\n\t ReportComponentService.prototype.setFilterColorShared = function (finalUpdatableBAQsList, setFilterColorColumn) {\r\n\t if (finalUpdatableBAQsList.length != 0 && setFilterColorColumn == baqs_modaldialog_1.BAQsFilterColumnName[baqs_modaldialog_1.BAQsFilterColumnName.Shared]) {\r\n\t return { 'color': this.filterBlueColor };\r\n\t }\r\n\t else {\r\n\t return { 'color': this.filterDefaultColor };\r\n\t }\r\n\t };\r\n\t ReportComponentService.prototype.setFilterColorTables = function (finalUpdatableBAQsList, setFilterColorColumn) {\r\n\t if (finalUpdatableBAQsList.length != 0 && setFilterColorColumn == baqs_modaldialog_1.BAQsFilterColumnName[baqs_modaldialog_1.BAQsFilterColumnName.Tables]) {\r\n\t return { 'color': this.filterBlueColor };\r\n\t }\r\n\t else {\r\n\t return { 'color': this.filterDefaultColor };\r\n\t }\r\n\t };\r\n\t ReportComponentService.prototype.setFilterColorExternal = function (finalUpdatableBAQsList, setFilterColorColumn) {\r\n\t if (finalUpdatableBAQsList.length != 0 && setFilterColorColumn == baqs_modaldialog_1.BAQsFilterColumnName[baqs_modaldialog_1.BAQsFilterColumnName.External]) {\r\n\t return { 'color': this.filterBlueColor };\r\n\t }\r\n\t else {\r\n\t return { 'color': this.filterDefaultColor };\r\n\t }\r\n\t };\r\n\t ReportComponentService.prototype.setFilterColorID = function (finalMenusList, setFilterColorColumn) {\r\n\t if (finalMenusList.length != 0 && setFilterColorColumn == menus_dialog_1.MenusFilterColumnName[menus_dialog_1.MenusFilterColumnName.ID]) {\r\n\t return { 'color': this.filterBlueColor };\r\n\t }\r\n\t else {\r\n\t return { 'color': this.filterDefaultColor };\r\n\t }\r\n\t };\r\n\t ReportComponentService.prototype.setFilterColorProgram = function (finalMenusList, setFilterColorColumn) {\r\n\t if (finalMenusList.length != 0 && setFilterColorColumn == menus_dialog_1.MenusFilterColumnName[menus_dialog_1.MenusFilterColumnName.Program]) {\r\n\t return { 'color': this.filterBlueColor };\r\n\t }\r\n\t else {\r\n\t return { 'color': this.filterDefaultColor };\r\n\t }\r\n\t };\r\n\t ReportComponentService.prototype.setFilterColorArguments = function (finalMenusList, setFilterColorColumn) {\r\n\t if (finalMenusList.length != 0 && setFilterColorColumn == menus_dialog_1.MenusFilterColumnName[menus_dialog_1.MenusFilterColumnName.Arguments]) {\r\n\t return { 'color': this.filterBlueColor };\r\n\t }\r\n\t else {\r\n\t return { 'color': this.filterDefaultColor };\r\n\t }\r\n\t };\r\n\t ReportComponentService.prototype.setFilterColorRows = function (finalUDTablesList, setFilterColorColumn) {\r\n\t if (finalUDTablesList.length != 0 && setFilterColorColumn == udforms_modaldialog_1.UDFormsFilterColumnName[udforms_modaldialog_1.UDFormsFilterColumnName.Rows]) {\r\n\t return { 'color': this.filterBlueColor };\r\n\t }\r\n\t else {\r\n\t return { 'color': this.filterDefaultColor };\r\n\t }\r\n\t };\r\n\t ReportComponentService.prototype.setFilterColorRowCount = function (finalUDTablesList, setFilterColorColumn) {\r\n\t if (finalUDTablesList.length != 0 && setFilterColorColumn == userDefinedTables_modaldialog_1.UserDefinedTablesFilterColumnName[userDefinedTables_modaldialog_1.UserDefinedTablesFilterColumnName.RowCount]) {\r\n\t return { 'color': this.filterBlueColor };\r\n\t }\r\n\t else {\r\n\t return { 'color': this.filterDefaultColor };\r\n\t }\r\n\t };\r\n\t ReportComponentService.prototype.setFilterColorCompanies = function (finalBankInterfaceList, setFilterColorColumn) {\r\n\t if (finalBankInterfaceList.length != 0 && setFilterColorColumn == bankInterfaces_modaldialog_1.BankInterfaceFilterColumnName[bankInterfaces_modaldialog_1.BankInterfaceFilterColumnName.Companies]) {\r\n\t return { 'color': this.filterBlueColor };\r\n\t }\r\n\t else {\r\n\t return { 'color': this.filterDefaultColor };\r\n\t }\r\n\t };\r\n\t ReportComponentService.prototype.setFilterColorType = function (finalBankInterfaceList, setFilterColorColumn) {\r\n\t if (finalBankInterfaceList.length != 0 && setFilterColorColumn == bankInterfaces_modaldialog_1.BankInterfaceFilterColumnName[bankInterfaces_modaldialog_1.BankInterfaceFilterColumnName.Type]) {\r\n\t return { 'color': this.filterBlueColor };\r\n\t }\r\n\t else {\r\n\t return { 'color': this.filterDefaultColor };\r\n\t }\r\n\t };\r\n\t ReportComponentService.prototype.setFilterColorTable = function (finalChangeLogsList, setFilterColorColumn) {\r\n\t if (finalChangeLogsList.length != 0 && setFilterColorColumn == changelogs_modaldialog_1.ChangeLogsFilterColumnName[changelogs_modaldialog_1.ChangeLogsFilterColumnName.Table]) {\r\n\t return { 'color': this.filterBlueColor };\r\n\t }\r\n\t else {\r\n\t return { 'color': this.filterDefaultColor };\r\n\t }\r\n\t };\r\n\t ReportComponentService.prototype.setFilterColorDocumentID = function (finalAPMObjectList, setFilterColorColumn) {\r\n\t if (finalAPMObjectList.length != 0 && setFilterColorColumn == apmObjects_modaldialog_1.APMObjectFilterColumnName[apmObjects_modaldialog_1.APMObjectFilterColumnName.DocumentID]) {\r\n\t return { 'color': this.filterBlueColor };\r\n\t }\r\n\t else {\r\n\t return { 'color': this.filterDefaultColor };\r\n\t }\r\n\t };\r\n\t ReportComponentService.prototype.setFilterColorDocumentType = function (finalAPMObjectList, setFilterColorColumn) {\r\n\t if (finalAPMObjectList.length != 0 && setFilterColorColumn == apmObjects_modaldialog_1.APMObjectFilterColumnName[apmObjects_modaldialog_1.APMObjectFilterColumnName.DocumentType]) {\r\n\t return { 'color': this.filterBlueColor };\r\n\t }\r\n\t else {\r\n\t return { 'color': this.filterDefaultColor };\r\n\t }\r\n\t };\r\n\t ReportComponentService.prototype.setFilterColorDocuments = function (finalAPMObjectList, setFilterColorColumn) {\r\n\t if (finalAPMObjectList.length != 0 && setFilterColorColumn == apmObjects_modaldialog_1.APMObjectFilterColumnName[apmObjects_modaldialog_1.APMObjectFilterColumnName.Documents]) {\r\n\t return { 'color': this.filterBlueColor };\r\n\t }\r\n\t else {\r\n\t return { 'color': this.filterDefaultColor };\r\n\t }\r\n\t };\r\n\t ReportComponentService.prototype.setFilterColorProperties = function (finalAPMObjectList, setFilterColorColumn) {\r\n\t if (finalAPMObjectList.length != 0 && setFilterColorColumn == apmObjects_modaldialog_1.APMObjectFilterColumnName[apmObjects_modaldialog_1.APMObjectFilterColumnName.Properties]) {\r\n\t return { 'color': this.filterBlueColor };\r\n\t }\r\n\t else {\r\n\t return { 'color': this.filterDefaultColor };\r\n\t }\r\n\t };\r\n\t ReportComponentService.prototype.setFilterColorRoutings = function (finalAPMObjectList, setFilterColorColumn) {\r\n\t if (finalAPMObjectList.length != 0 && setFilterColorColumn == apmObjects_modaldialog_1.APMObjectFilterColumnName[apmObjects_modaldialog_1.APMObjectFilterColumnName.Routings]) {\r\n\t return { 'color': this.filterBlueColor };\r\n\t }\r\n\t else {\r\n\t return { 'color': this.filterDefaultColor };\r\n\t }\r\n\t };\r\n\t ReportComponentService.prototype.setFilterColorRecipients = function (finalAPMObjectList, setFilterColorColumn) {\r\n\t if (finalAPMObjectList.length != 0 && setFilterColorColumn == apmObjects_modaldialog_1.APMObjectFilterColumnName[apmObjects_modaldialog_1.APMObjectFilterColumnName.Recipients]) {\r\n\t return { 'color': this.filterBlueColor };\r\n\t }\r\n\t else {\r\n\t return { 'color': this.filterDefaultColor };\r\n\t }\r\n\t };\r\n\t ReportComponentService = __decorate([\r\n\t core_1.Injectable(),\r\n\t __metadata(\"design:paramtypes\", [complexity_type_service_1.ComplexityService])\r\n\t ], ReportComponentService);\r\n\t return ReportComponentService;\r\n\t}());\r\n\texports.ReportComponentService = ReportComponentService;\r\n\tvar ErrorMessageDialog = (function () {\r\n\t function ErrorMessageDialog(dialogRef) {\r\n\t this.dialogRef = dialogRef;\r\n\t }\r\n\t ErrorMessageDialog.prototype.render = function () {\r\n\t };\r\n\t ErrorMessageDialog.prototype.close = function () {\r\n\t this.dialogRef.close();\r\n\t };\r\n\t __decorate([\r\n\t core_1.ViewChild('container'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], ErrorMessageDialog.prototype, \"container\", void 0);\r\n\t ErrorMessageDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'error-dialog',\r\n\t template: \"\\n
\\n
\\n
\\n Error\\n
\\n
\\n errorAtleast one record has to be choosen.\\n
\\n
\\n \\n
\\n
\\n
\\n\",\r\n\t providers: [pager_service_1.PagerService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef])\r\n\t ], ErrorMessageDialog);\r\n\t return ErrorMessageDialog;\r\n\t}());\r\n\texports.ErrorMessageDialog = ErrorMessageDialog;\r\n\n\n/***/ },\n/* 442 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar BPMsSearchPipe = (function () {\r\n\t function BPMsSearchPipe() {\r\n\t }\r\n\t BPMsSearchPipe.prototype.transform = function (items, Search) {\r\n\t var search = Object.keys(Search[0]).toString();\r\n\t var tempItem = [];\r\n\t if (items && items.length) {\r\n\t return items.filter(function (item) {\r\n\t if (search.toString() == BPMsFilterColumnName[BPMsFilterColumnName.Group]) {\r\n\t if (Search[0].Group && item.key.toString().toLowerCase().indexOf(Search[0].Group) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == BPMsFilterColumnName[BPMsFilterColumnName.Name]) {\r\n\t if (Search[0].Name && item.key.toString().toLowerCase().indexOf(Search[0].Name) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == BPMsFilterColumnName[BPMsFilterColumnName.Method]) {\r\n\t if (Search[0].Method && item.key.toString().toLowerCase().indexOf(Search[0].Method) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == BPMsFilterColumnName[BPMsFilterColumnName.Complexity]) {\r\n\t if (Search[0].Complexity && item.key.toString().toLowerCase().indexOf(Search[0].Complexity) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == BPMsFilterColumnName[BPMsFilterColumnName.LOC]) {\r\n\t if (Search[0].LOC && item.key.toString().toLowerCase().indexOf(Search[0].LOC) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t return true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t return items;\r\n\t }\r\n\t };\r\n\t BPMsSearchPipe = __decorate([\r\n\t core_1.Pipe({\r\n\t name: 'bpmssearch'\r\n\t })\r\n\t ], BPMsSearchPipe);\r\n\t return BPMsSearchPipe;\r\n\t}());\r\n\texports.BPMsSearchPipe = BPMsSearchPipe;\r\n\tvar BPMsFilterColumnName;\r\n\t(function (BPMsFilterColumnName) {\r\n\t BPMsFilterColumnName[BPMsFilterColumnName[\"Group\"] = 0] = \"Group\";\r\n\t BPMsFilterColumnName[BPMsFilterColumnName[\"Name\"] = 1] = \"Name\";\r\n\t BPMsFilterColumnName[BPMsFilterColumnName[\"Method\"] = 2] = \"Method\";\r\n\t BPMsFilterColumnName[BPMsFilterColumnName[\"Complexity\"] = 3] = \"Complexity\";\r\n\t BPMsFilterColumnName[BPMsFilterColumnName[\"LOC\"] = 4] = \"LOC\";\r\n\t})(BPMsFilterColumnName = exports.BPMsFilterColumnName || (exports.BPMsFilterColumnName = {}));\r\n\n\n/***/ },\n/* 443 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar reports_component_service_1 = __webpack_require__(441);\r\n\tvar BAQsReportDialog = (function () {\r\n\t function BAQsReportDialog(dialogRef, errorChangeDetectorRef, viewContainerRef, dialog, elementRef) {\r\n\t this.dialogRef = dialogRef;\r\n\t this.errorChangeDetectorRef = errorChangeDetectorRef;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.dialog = dialog;\r\n\t this.elementRef = elementRef;\r\n\t this.checkedAll = false;\r\n\t this.selectedColumn = \"\";\r\n\t this.columnDisplayName = \"\";\r\n\t this.selectedColumnGroupBy = \"\";\r\n\t this.hidePagination = false;\r\n\t this.baqsReportType = \"\";\r\n\t this.BAQsList = [];\r\n\t this.disableApplyButton = false;\r\n\t this.clickedOutside = false;\r\n\t this.tempList = [];\r\n\t }\r\n\t BAQsReportDialog.prototype.render = function (baqsDetails) {\r\n\t var _this = this;\r\n\t this.pagedItems = baqsDetails.pagedItems;\r\n\t this.finalBAQsList = baqsDetails.finalBAQsList;\r\n\t this.tempList = this.finalBAQsList;\r\n\t this.checkedAll = baqsDetails.checkedAll;\r\n\t this.selectedColumn = baqsDetails.selectedColumn;\r\n\t this.selectedColumnGroupBy = this.getGroupByColumnName();\r\n\t this.baqsReportType = baqsDetails.baqsReportType;\r\n\t if (this.finalBAQsList != undefined && this.finalBAQsList.length > 0) {\r\n\t this.finalBAQsList.split(',').forEach(function (id) {\r\n\t _this.BAQsList.push(Number(id));\r\n\t _this.pagedItems.filter(function (item) { return item.rowIndex == id; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t });\r\n\t }\r\n\t this.container.nativeElement.children[1].style.maxHeight = \"30vh\";\r\n\t this.container.nativeElement.children[1].style.overflow = \"auto\";\r\n\t this.container.nativeElement.children[2].style.float = \"right\";\r\n\t this.container.nativeElement.children[2].style.position = \"relative\";\r\n\t this.container.nativeElement.children[2].style.top = \"1vh\";\r\n\t };\r\n\t BAQsReportDialog.prototype.applyModal = function () {\r\n\t var _this = this;\r\n\t if (this.BAQsList.length > 0 && this.pagedItems.filter(function (item) { return item.isChecked == true; }).length == 0) {\r\n\t this.showErrorMessage();\r\n\t this.disableApplyButton = true;\r\n\t return;\r\n\t }\r\n\t this.disableApplyButton = false;\r\n\t this.BAQsList = [];\r\n\t this.pagedItems.filter(function (item) { return item.isChecked == true; }).forEach(function (item) {\r\n\t _this.BAQsList.push(item.rowIndex);\r\n\t });\r\n\t this.finalBAQsList = this.BAQsList.toString();\r\n\t this.dialogRef.close();\r\n\t };\r\n\t BAQsReportDialog.prototype.checkboxFieldChange = function (event, colElem) {\r\n\t if (!event.target) {\r\n\t this.checkedAll = false;\r\n\t }\r\n\t this.checkboxFieldChangedProcess(this.pagedItems, event, colElem);\r\n\t };\r\n\t BAQsReportDialog.prototype.close = function () {\r\n\t this.checkedAll = false;\r\n\t this.finalBAQsList = this.tempList.toString();\r\n\t this.dialogRef.close();\r\n\t };\r\n\t BAQsReportDialog.prototype.toggleAll = function (event) {\r\n\t this.disableApplyButton = false;\r\n\t this.finalBAQsList = this.setToggleValue(this.pagedItems);\r\n\t };\r\n\t BAQsReportDialog.prototype.getGroupByColumnName = function () {\r\n\t if (this.selectedColumn == BAQsFilterColumnName[BAQsFilterColumnName.Company])\r\n\t return \"company\";\r\n\t else if (this.selectedColumn == BAQsFilterColumnName[BAQsFilterColumnName.QueryId])\r\n\t return \"queryID\";\r\n\t else if (this.selectedColumn == BAQsFilterColumnName[BAQsFilterColumnName.Description])\r\n\t return \"description\";\r\n\t else if (this.selectedColumn == BAQsFilterColumnName[BAQsFilterColumnName.Author])\r\n\t return \"author\";\r\n\t else if (this.selectedColumn == BAQsFilterColumnName[BAQsFilterColumnName.Complexity])\r\n\t return \"customComplexity\";\r\n\t else if (this.selectedColumn == BAQsFilterColumnName[BAQsFilterColumnName.Compatible])\r\n\t return \"compatible\";\r\n\t else if (this.selectedColumn == BAQsFilterColumnName[BAQsFilterColumnName.Shared])\r\n\t return \"shared\";\r\n\t else if (this.selectedColumn == BAQsFilterColumnName[BAQsFilterColumnName.Tables])\r\n\t return \"tables\";\r\n\t else\r\n\t return \"external\";\r\n\t };\r\n\t BAQsReportDialog.prototype.checkboxFieldChangedProcess = function (items, event, colElem) {\r\n\t if (colElem == BAQsFilterColumnName[BAQsFilterColumnName.Company]) {\r\n\t this.companyFieldProcess(items, event);\r\n\t }\r\n\t else if (colElem == BAQsFilterColumnName[BAQsFilterColumnName.QueryId]) {\r\n\t this.queryIdFieldProcess(items, event);\r\n\t }\r\n\t else if (colElem == BAQsFilterColumnName[BAQsFilterColumnName.Description]) {\r\n\t this.descFieldProcess(items, event);\r\n\t }\r\n\t else if (colElem == BAQsFilterColumnName[BAQsFilterColumnName.Complexity]) {\r\n\t this.complexityFieldProcess(items, event);\r\n\t }\r\n\t if (colElem == BAQsFilterColumnName[BAQsFilterColumnName.Author]) {\r\n\t this.authorFieldProcess(items, event);\r\n\t }\r\n\t else if (colElem == BAQsFilterColumnName[BAQsFilterColumnName.Compatible]) {\r\n\t this.compatibleFieldProcess(items, event);\r\n\t }\r\n\t else if (colElem == BAQsFilterColumnName[BAQsFilterColumnName.Shared]) {\r\n\t this.sharedFieldProcess(items, event);\r\n\t }\r\n\t else if (colElem == BAQsFilterColumnName[BAQsFilterColumnName.Tables]) {\r\n\t this.tablesFieldProcess(items, event);\r\n\t }\r\n\t else if (colElem == BAQsFilterColumnName[BAQsFilterColumnName.External]) {\r\n\t this.externalFieldProcess(items, event);\r\n\t }\r\n\t };\r\n\t BAQsReportDialog.prototype.companyFieldProcess = function (items, event) {\r\n\t var company = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t company = getRowDetails[0].company;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.company == company; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.company == company; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t BAQsReportDialog.prototype.queryIdFieldProcess = function (items, event) {\r\n\t var queryID = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t queryID = getRowDetails[0].queryID;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.queryID == queryID; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.queryID == queryID; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t BAQsReportDialog.prototype.descFieldProcess = function (items, event) {\r\n\t var description = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t description = getRowDetails[0].description;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.description == description; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.description == description; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t BAQsReportDialog.prototype.authorFieldProcess = function (items, event) {\r\n\t var author = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t author = getRowDetails[0].author;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.author == author; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.author == author; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t BAQsReportDialog.prototype.complexityFieldProcess = function (items, event) {\r\n\t var customComplexity = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t customComplexity = getRowDetails[0].customComplexity;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.customComplexity == customComplexity; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.customComplexity == customComplexity; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t BAQsReportDialog.prototype.compatibleFieldProcess = function (items, event) {\r\n\t var compatible = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t compatible = getRowDetails[0].compatible;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.compatible == compatible; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.compatible == compatible; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t BAQsReportDialog.prototype.sharedFieldProcess = function (items, event) {\r\n\t var shared = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t shared = getRowDetails[0].shared;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.shared == shared; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.shared == shared; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t BAQsReportDialog.prototype.externalFieldProcess = function (items, event) {\r\n\t var external = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t external = getRowDetails[0].external;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.external == external; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.external == external; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t BAQsReportDialog.prototype.tablesFieldProcess = function (items, event) {\r\n\t var tables = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t tables = getRowDetails[0].tables;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.tables == tables; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.tables == tables; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t BAQsReportDialog.prototype.setToggleValue = function (items) {\r\n\t var _this = this;\r\n\t var toggleFlag = this.checkedAll;\r\n\t items.forEach(function (item) {\r\n\t item.isChecked = toggleFlag;\r\n\t });\r\n\t this.BAQsList = [];\r\n\t if (toggleFlag) {\r\n\t items.forEach(function (item) {\r\n\t _this.BAQsList.push(Number(item.rowIndex));\r\n\t });\r\n\t }\r\n\t return this.BAQsList.toString();\r\n\t };\r\n\t BAQsReportDialog.prototype.showErrorMessage = function () {\r\n\t var _this = this;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.errorDialogRef = this.dialog.open(reports_component_service_1.ErrorMessageDialog, config);\r\n\t this.errorDialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.errorDialogRef = null;\r\n\t });\r\n\t };\r\n\t BAQsReportDialog.prototype.onClick = function (event) {\r\n\t var clickedOutsideDialog = event.target;\r\n\t var inside = false;\r\n\t do {\r\n\t if (clickedOutsideDialog === this.elementRef.nativeElement) {\r\n\t inside = true;\r\n\t }\r\n\t clickedOutsideDialog = clickedOutsideDialog.parentNode;\r\n\t } while (clickedOutsideDialog);\r\n\t if (inside) {\r\n\t this.clickedOutside = false;\r\n\t }\r\n\t else {\r\n\t this.clickedOutside = true;\r\n\t }\r\n\t };\r\n\t __decorate([\r\n\t core_1.ViewChild('container'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], BAQsReportDialog.prototype, \"container\", void 0);\r\n\t BAQsReportDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'baqs-dialog',\r\n\t host: {\r\n\t '(document:click)': 'onClick($event)',\r\n\t },\r\n\t template: \"\\n\\n \\n\\n
{{baqsReportType}} - {{selectedColumn}}
\\n\\n
\\n \\n \\n \\n\\n\\n
\\n (Select All) \\n
\\n
\\n {{md.value[0].company}} \\n
\\n
\\n \\n
\\n
\\n {{md.value[0].queryID}} \\n
\\n
\\n\\n
\\n
\\n {{md.value[0].description}} \\n
\\n
\\n\\n
\\n
\\n {{md.value[0].customComplexity}} \\n
\\n
\\n
\\n
\\n {{md.value[0].author}} \\n
\\n
\\n\\n
\\n
\\n {{md.value[0].compatible}} \\n
\\n
\\n \\n
\\n
\\n {{md.value[0].shared}} \\n
\\n
\\n\\n
\\n
\\n {{md.value[0].tables}} \\n
\\n
\\n\\n
\\n
\\n {{md.value[0].external}} \\n
\\n
\\n
\\n \\n
\\n \\n \\n
\\n
\\n\"\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef,\r\n\t core_1.ChangeDetectorRef,\r\n\t core_1.ViewContainerRef,\r\n\t material_1.MdDialog,\r\n\t core_1.ElementRef])\r\n\t ], BAQsReportDialog);\r\n\t return BAQsReportDialog;\r\n\t}());\r\n\texports.BAQsReportDialog = BAQsReportDialog;\r\n\tvar BAQsFilterColumnName;\r\n\t(function (BAQsFilterColumnName) {\r\n\t BAQsFilterColumnName[BAQsFilterColumnName[\"Company\"] = 0] = \"Company\";\r\n\t BAQsFilterColumnName[BAQsFilterColumnName[\"QueryId\"] = 1] = \"QueryId\";\r\n\t BAQsFilterColumnName[BAQsFilterColumnName[\"Description\"] = 2] = \"Description\";\r\n\t BAQsFilterColumnName[BAQsFilterColumnName[\"Author\"] = 3] = \"Author\";\r\n\t BAQsFilterColumnName[BAQsFilterColumnName[\"Complexity\"] = 4] = \"Complexity\";\r\n\t BAQsFilterColumnName[BAQsFilterColumnName[\"Compatible\"] = 5] = \"Compatible\";\r\n\t BAQsFilterColumnName[BAQsFilterColumnName[\"Shared\"] = 6] = \"Shared\";\r\n\t BAQsFilterColumnName[BAQsFilterColumnName[\"Tables\"] = 7] = \"Tables\";\r\n\t BAQsFilterColumnName[BAQsFilterColumnName[\"External\"] = 8] = \"External\";\r\n\t})(BAQsFilterColumnName = exports.BAQsFilterColumnName || (exports.BAQsFilterColumnName = {}));\r\n\tvar BAQsReportType;\r\n\t(function (BAQsReportType) {\r\n\t BAQsReportType[BAQsReportType[\"UpdatableBAQs\"] = 1] = \"UpdatableBAQs\";\r\n\t BAQsReportType[BAQsReportType[\"BAQs\"] = 2] = \"BAQs\";\r\n\t})(BAQsReportType = exports.BAQsReportType || (exports.BAQsReportType = {}));\r\n\n\n/***/ },\n/* 444 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar reports_component_service_1 = __webpack_require__(441);\r\n\tvar MenusReportDialog = (function () {\r\n\t function MenusReportDialog(dialogRef, errorChangeDetectorRef, viewContainerRef, dialog, elementRef) {\r\n\t this.dialogRef = dialogRef;\r\n\t this.errorChangeDetectorRef = errorChangeDetectorRef;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.dialog = dialog;\r\n\t this.elementRef = elementRef;\r\n\t this.checkedAll = false;\r\n\t this.selectedColumn = \"\";\r\n\t this.selectedColumnGroupBy = \"\";\r\n\t this.hidePagination = false;\r\n\t this.menusList = [];\r\n\t this.disableApplyButton = false;\r\n\t this.clickedOutside = false;\r\n\t }\r\n\t MenusReportDialog.prototype.render = function (menusDetails) {\r\n\t var _this = this;\r\n\t this.pagedItems = menusDetails.pagedItems;\r\n\t this.finalMenusList = menusDetails.finalMenusList;\r\n\t this.tempMenusList = this.finalMenusList;\r\n\t this.checkedAll = menusDetails.checkedAll;\r\n\t this.selectedColumn = menusDetails.selectedColumn;\r\n\t this.selectedColumnGroupBy = this.getGroupByColumnName();\r\n\t if (this.finalMenusList != undefined && this.finalMenusList.length > 0) {\r\n\t this.finalMenusList.split(',').forEach(function (id) {\r\n\t _this.menusList.push(Number(id));\r\n\t _this.pagedItems.filter(function (item) { return item.rowIndex == id; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t });\r\n\t }\r\n\t this.container.nativeElement.children[1].style.maxHeight = \"30vh\";\r\n\t this.container.nativeElement.children[1].style.overflow = \"auto\";\r\n\t this.container.nativeElement.children[2].style.float = \"right\";\r\n\t this.container.nativeElement.children[2].style.position = \"relative\";\r\n\t this.container.nativeElement.children[2].style.top = \"1vh\";\r\n\t };\r\n\t MenusReportDialog.prototype.applyModal = function () {\r\n\t var _this = this;\r\n\t if (this.menusList.length > 0 && this.pagedItems.filter(function (item) { return item.isChecked == true; }).length == 0) {\r\n\t this.showErrorMessage();\r\n\t this.disableApplyButton = true;\r\n\t return;\r\n\t }\r\n\t this.disableApplyButton = false;\r\n\t this.menusList = [];\r\n\t this.pagedItems.filter(function (item) { return item.isChecked == true; }).forEach(function (item) {\r\n\t _this.menusList.push(item.rowIndex);\r\n\t });\r\n\t this.finalMenusList = this.menusList.toString();\r\n\t this.dialogRef.close();\r\n\t };\r\n\t MenusReportDialog.prototype.checkboxFieldChange = function (event, colElem) {\r\n\t if (!event.checked) {\r\n\t this.checkedAll = false;\r\n\t }\r\n\t this.checkboxFieldChangedProcess(this.pagedItems, event, colElem);\r\n\t };\r\n\t MenusReportDialog.prototype.close = function () {\r\n\t this.checkedAll = false;\r\n\t this.finalMenusList = this.tempMenusList.toString();\r\n\t this.dialogRef.close();\r\n\t };\r\n\t MenusReportDialog.prototype.toggleAll = function (event) {\r\n\t this.disableApplyButton = false;\r\n\t this.finalMenusList = this.setToggleValue(this.pagedItems);\r\n\t };\r\n\t MenusReportDialog.prototype.getGroupByColumnName = function () {\r\n\t if (this.selectedColumn == MenusFilterColumnName[MenusFilterColumnName.ID])\r\n\t return 'menuID';\r\n\t else if (this.selectedColumn == MenusFilterColumnName[MenusFilterColumnName.Name])\r\n\t return \"menuDesc\";\r\n\t else if (this.selectedColumn == MenusFilterColumnName[MenusFilterColumnName.Program])\r\n\t return \"program\";\r\n\t else\r\n\t return \"arguments\";\r\n\t };\r\n\t MenusReportDialog.prototype.checkboxFieldChangedProcess = function (items, event, colElem) {\r\n\t if (colElem == MenusFilterColumnName[MenusFilterColumnName.ID]) {\r\n\t this.idFieldProcess(items, event);\r\n\t }\r\n\t else if (colElem == MenusFilterColumnName[MenusFilterColumnName.Name]) {\r\n\t this.nameFieldProcess(items, event);\r\n\t }\r\n\t else if (colElem == MenusFilterColumnName[MenusFilterColumnName.Program]) {\r\n\t this.programsFieldProcess(items, event);\r\n\t }\r\n\t else if (colElem == MenusFilterColumnName[MenusFilterColumnName.Arguments]) {\r\n\t this.argumentsFieldProcess(items, event);\r\n\t }\r\n\t };\r\n\t MenusReportDialog.prototype.idFieldProcess = function (items, event) {\r\n\t var menuID = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t menuID = getRowDetails[0].menuID;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.menuID == menuID; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.menuID == menuID; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t MenusReportDialog.prototype.nameFieldProcess = function (items, event) {\r\n\t var menuDesc = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t menuDesc = getRowDetails[0].menuDesc;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.menuDesc == menuDesc; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.menuDesc == menuDesc; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t MenusReportDialog.prototype.programsFieldProcess = function (items, event) {\r\n\t var program = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t program = getRowDetails[0].program;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.program == program; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.program == program; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t MenusReportDialog.prototype.argumentsFieldProcess = function (items, event) {\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t var argument = getRowDetails[0].arguments;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.arguments == argument; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.arguments == argument; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t MenusReportDialog.prototype.setToggleValue = function (items) {\r\n\t var _this = this;\r\n\t var toggleFlag = this.checkedAll;\r\n\t items.forEach(function (item) {\r\n\t item.isChecked = toggleFlag;\r\n\t });\r\n\t this.menusList = [];\r\n\t if (toggleFlag) {\r\n\t items.forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t _this.menusList.push(Number(item.rowIndex));\r\n\t });\r\n\t }\r\n\t return this.menusList.toString();\r\n\t };\r\n\t MenusReportDialog.prototype.showErrorMessage = function () {\r\n\t var _this = this;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.errorDialogRef = this.dialog.open(reports_component_service_1.ErrorMessageDialog, config);\r\n\t this.errorDialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.errorDialogRef = null;\r\n\t });\r\n\t };\r\n\t MenusReportDialog.prototype.onClick = function (event) {\r\n\t var clickedComponent = event.target;\r\n\t var inside = false;\r\n\t do {\r\n\t if (clickedComponent === this.elementRef.nativeElement) {\r\n\t inside = true;\r\n\t }\r\n\t clickedComponent = clickedComponent.parentNode;\r\n\t } while (clickedComponent);\r\n\t if (inside) {\r\n\t this.clickedOutside = false;\r\n\t }\r\n\t else {\r\n\t this.clickedOutside = true;\r\n\t }\r\n\t };\r\n\t __decorate([\r\n\t core_1.ViewChild('container'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], MenusReportDialog.prototype, \"container\", void 0);\r\n\t MenusReportDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'menus.dialog',\r\n\t host: {\r\n\t '(document:click)': 'onClick($event)',\r\n\t },\r\n\t template: \"\\n\\n
Menus - {{selectedColumn}}
\\n\\n
\\n \\n \\n \\n\\n
\\n (Select All) \\n
\\n
\\n {{md.value[0].menuID}} \\n
\\n
\\n
\\n
\\n {{md.value[0].menuDesc}} \\n
\\n
\\n \\n
\\n
\\n {{md.value[0].program}} \\n
\\n
\\n \\n
\\n
\\n {{md.value[0].arguments}} \\n
\\n
\\n\\n
\\n \\n
\\n \\n \\n
\\n
\\n\",\r\n\t providers: [pager_service_1.PagerService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef,\r\n\t core_1.ChangeDetectorRef,\r\n\t core_1.ViewContainerRef,\r\n\t material_1.MdDialog,\r\n\t core_1.ElementRef])\r\n\t ], MenusReportDialog);\r\n\t return MenusReportDialog;\r\n\t}());\r\n\texports.MenusReportDialog = MenusReportDialog;\r\n\tvar MenusFilterColumnName;\r\n\t(function (MenusFilterColumnName) {\r\n\t MenusFilterColumnName[MenusFilterColumnName[\"ID\"] = 0] = \"ID\";\r\n\t MenusFilterColumnName[MenusFilterColumnName[\"Name\"] = 1] = \"Name\";\r\n\t MenusFilterColumnName[MenusFilterColumnName[\"Program\"] = 2] = \"Program\";\r\n\t MenusFilterColumnName[MenusFilterColumnName[\"Arguments\"] = 3] = \"Arguments\";\r\n\t})(MenusFilterColumnName = exports.MenusFilterColumnName || (exports.MenusFilterColumnName = {}));\r\n\n\n/***/ },\n/* 445 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar reports_component_service_1 = __webpack_require__(441);\r\n\tvar UDTablesReportDialog = (function () {\r\n\t function UDTablesReportDialog(dialogRef, errorChangeDetectorRef, viewContainerRef, dialog, elementRef) {\r\n\t this.dialogRef = dialogRef;\r\n\t this.errorChangeDetectorRef = errorChangeDetectorRef;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.dialog = dialog;\r\n\t this.elementRef = elementRef;\r\n\t this.checkedAll = false;\r\n\t this.selectedColumn = \"\";\r\n\t this.selectedColumnGroupBy = \"\";\r\n\t this.hidePagination = false;\r\n\t this.udTableList = [];\r\n\t this.disableApplyButton = false;\r\n\t this.clickedOutside = false;\r\n\t this.tempList = [];\r\n\t }\r\n\t UDTablesReportDialog.prototype.render = function (udFormsDetails) {\r\n\t var _this = this;\r\n\t this.pagedItems = udFormsDetails.pagedItems;\r\n\t this.finalUDTablesList = udFormsDetails.finalUDTablesList;\r\n\t this.tempList = this.finalUDTablesList;\r\n\t this.checkedAll = udFormsDetails.checkedAll;\r\n\t this.selectedColumn = udFormsDetails.selectedColumn;\r\n\t this.selectedColumnGroupBy = this.getGroupByColumnName();\r\n\t if (this.finalUDTablesList != undefined && this.finalUDTablesList.length > 0) {\r\n\t this.finalUDTablesList.split(',').forEach(function (id) {\r\n\t _this.udTableList.push(Number(id));\r\n\t _this.pagedItems.filter(function (item) { return item.rowIndex == id; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t });\r\n\t }\r\n\t this.container.nativeElement.children[1].style.maxHeight = \"30vh\";\r\n\t this.container.nativeElement.children[1].style.overflow = \"auto\";\r\n\t this.container.nativeElement.children[2].style.float = \"right\";\r\n\t this.container.nativeElement.children[2].style.position = \"relative\";\r\n\t this.container.nativeElement.children[2].style.top = \"1vh\";\r\n\t };\r\n\t UDTablesReportDialog.prototype.applyModal = function () {\r\n\t var _this = this;\r\n\t var anythingChoosen = false;\r\n\t if (this.udTableList.length > 0 && this.pagedItems.filter(function (item) { return item.isChecked == true; }).length == 0) {\r\n\t this.showErrorMessage();\r\n\t this.disableApplyButton = true;\r\n\t return;\r\n\t }\r\n\t this.disableApplyButton = false;\r\n\t this.udTableList = [];\r\n\t this.pagedItems.filter(function (item) { return item.isChecked == true; }).forEach(function (item) {\r\n\t _this.udTableList.push(item.rowIndex);\r\n\t });\r\n\t this.finalUDTablesList = this.udTableList.toString();\r\n\t this.dialogRef.close();\r\n\t };\r\n\t UDTablesReportDialog.prototype.checkboxFieldChange = function (event, colElem) {\r\n\t if (!event.checked) {\r\n\t this.checkedAll = false;\r\n\t }\r\n\t this.checkboxFieldChangedProcess(this.pagedItems, event, colElem);\r\n\t };\r\n\t UDTablesReportDialog.prototype.close = function () {\r\n\t this.checkedAll = false;\r\n\t this.finalUDTablesList = this.tempList.toString();\r\n\t this.dialogRef.close();\r\n\t };\r\n\t UDTablesReportDialog.prototype.toggleAll = function (event) {\r\n\t this.disableApplyButton = false;\r\n\t this.finalUDTablesList = this.setToggleValue(this.pagedItems);\r\n\t };\r\n\t UDTablesReportDialog.prototype.getGroupByColumnName = function () {\r\n\t if (this.selectedColumn == UDFormsFilterColumnName[UDFormsFilterColumnName.Name])\r\n\t return \"udFormName\";\r\n\t else if (this.selectedColumn == UDFormsFilterColumnName[UDFormsFilterColumnName.Description])\r\n\t return \"description\";\r\n\t else\r\n\t return \"parentCount\";\r\n\t };\r\n\t UDTablesReportDialog.prototype.checkboxFieldChangedProcess = function (items, event, colElem) {\r\n\t if (colElem == UDFormsFilterColumnName[UDFormsFilterColumnName.Name]) {\r\n\t this.nameFieldProcess(items, event);\r\n\t }\r\n\t else if (colElem == UDFormsFilterColumnName[UDFormsFilterColumnName.Description]) {\r\n\t this.descFieldProcess(items, event);\r\n\t }\r\n\t else if (colElem == UDFormsFilterColumnName[UDFormsFilterColumnName.Rows]) {\r\n\t this.rowsFieldProcess(items, event);\r\n\t }\r\n\t };\r\n\t UDTablesReportDialog.prototype.nameFieldProcess = function (items, event) {\r\n\t var name = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t name = getRowDetails[0].udFormName;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.udFormName == name; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.udFormName == name; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t UDTablesReportDialog.prototype.descFieldProcess = function (items, event) {\r\n\t var description = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t description = getRowDetails[0].description;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.description == description; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.description == description; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t UDTablesReportDialog.prototype.rowsFieldProcess = function (items, event) {\r\n\t var rows = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t rows = getRowDetails[0].parentCount;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.parentCount == rows; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.parentCount == rows; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t UDTablesReportDialog.prototype.setToggleValue = function (items) {\r\n\t var _this = this;\r\n\t var toggleFlag = this.checkedAll;\r\n\t items.forEach(function (item) {\r\n\t item.isChecked = toggleFlag;\r\n\t });\r\n\t this.udTableList = [];\r\n\t if (toggleFlag) {\r\n\t items.forEach(function (item) {\r\n\t _this.udTableList.push(Number(item.rowIndex));\r\n\t });\r\n\t }\r\n\t return this.udTableList.toString();\r\n\t };\r\n\t UDTablesReportDialog.prototype.showErrorMessage = function () {\r\n\t var _this = this;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.errorDialogRef = this.dialog.open(reports_component_service_1.ErrorMessageDialog, config);\r\n\t this.errorDialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.errorDialogRef = null;\r\n\t });\r\n\t };\r\n\t UDTablesReportDialog.prototype.onClick = function (event) {\r\n\t var clickedOutsideDialog = event.target;\r\n\t var inside = false;\r\n\t do {\r\n\t if (clickedOutsideDialog === this.elementRef.nativeElement) {\r\n\t inside = true;\r\n\t }\r\n\t clickedOutsideDialog = clickedOutsideDialog.parentNode;\r\n\t } while (clickedOutsideDialog);\r\n\t if (inside) {\r\n\t this.clickedOutside = false;\r\n\t }\r\n\t else {\r\n\t this.clickedOutside = true;\r\n\t }\r\n\t };\r\n\t __decorate([\r\n\t core_1.ViewChild('container'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], UDTablesReportDialog.prototype, \"container\", void 0);\r\n\t UDTablesReportDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'udforms.modaldialog',\r\n\t host: {\r\n\t '(document:click)': 'onClick($event)',\r\n\t },\r\n\t template: \"\\n\\n\\n\\n\\n
UD Tables - {{selectedColumn}}
\\n\\n
\\n \\n \\n \\n\\n
\\n (Select All) \\n
\\n
\\n {{md.value[0].udFormName}}\\n
\\n
\\n
\\n
\\n {{md.value[0].description}}\\n
\\n
\\n \\n
\\n
\\n {{md.value[0].parentCount}}\\n
\\n
\\n
\\n \\n
\\n \\n \\n
\\n
\\n\",\r\n\t providers: [pager_service_1.PagerService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef,\r\n\t core_1.ChangeDetectorRef,\r\n\t core_1.ViewContainerRef,\r\n\t material_1.MdDialog,\r\n\t core_1.ElementRef])\r\n\t ], UDTablesReportDialog);\r\n\t return UDTablesReportDialog;\r\n\t}());\r\n\texports.UDTablesReportDialog = UDTablesReportDialog;\r\n\tvar UDFormsFilterColumnName;\r\n\t(function (UDFormsFilterColumnName) {\r\n\t UDFormsFilterColumnName[UDFormsFilterColumnName[\"Name\"] = 0] = \"Name\";\r\n\t UDFormsFilterColumnName[UDFormsFilterColumnName[\"Description\"] = 1] = \"Description\";\r\n\t UDFormsFilterColumnName[UDFormsFilterColumnName[\"Rows\"] = 2] = \"Rows\";\r\n\t})(UDFormsFilterColumnName = exports.UDFormsFilterColumnName || (exports.UDFormsFilterColumnName = {}));\r\n\n\n/***/ },\n/* 446 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar reports_component_service_1 = __webpack_require__(441);\r\n\tvar BankInterfaceReportDialog = (function () {\r\n\t function BankInterfaceReportDialog(dialogRef, errorChangeDetectorRef, viewContainerRef, dialog, elementRef) {\r\n\t this.dialogRef = dialogRef;\r\n\t this.errorChangeDetectorRef = errorChangeDetectorRef;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.dialog = dialog;\r\n\t this.elementRef = elementRef;\r\n\t this.checkedAll = false;\r\n\t this.selectedColumn = \"\";\r\n\t this.selectedColumnGroupBy = \"\";\r\n\t this.hidePagination = false;\r\n\t this.bankInterfaceList = [];\r\n\t this.disableApplyButton = false;\r\n\t this.clickedOutside = false;\r\n\t this.tempList = [];\r\n\t }\r\n\t BankInterfaceReportDialog.prototype.render = function (bankInterfaceDetails) {\r\n\t var _this = this;\r\n\t this.pagedItems = bankInterfaceDetails.pagedItems;\r\n\t this.finalBankInterfaceList = bankInterfaceDetails.finalBankInterfaceList;\r\n\t this.tempList = this.finalBankInterfaceList;\r\n\t this.checkedAll = bankInterfaceDetails.checkedAll;\r\n\t this.selectedColumn = bankInterfaceDetails.selectedColumn;\r\n\t this.selectedColumnGroupBy = this.getGroupByColumnName();\r\n\t if (this.finalBankInterfaceList != undefined && this.finalBankInterfaceList.length > 0) {\r\n\t this.finalBankInterfaceList.split(',').forEach(function (id) {\r\n\t _this.bankInterfaceList.push(Number(id));\r\n\t _this.pagedItems.filter(function (item) { return item.rowIndex == id; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t });\r\n\t }\r\n\t this.container.nativeElement.children[1].style.maxHeight = \"30vh\";\r\n\t this.container.nativeElement.children[1].style.overflow = \"auto\";\r\n\t this.container.nativeElement.children[2].style.float = \"right\";\r\n\t this.container.nativeElement.children[2].style.position = \"relative\";\r\n\t this.container.nativeElement.children[2].style.top = \"1vh\";\r\n\t };\r\n\t BankInterfaceReportDialog.prototype.applyModal = function () {\r\n\t var _this = this;\r\n\t if (this.bankInterfaceList.length > 0 && this.pagedItems.filter(function (item) { return item.isChecked == true; }).length == 0) {\r\n\t this.showErrorMessage();\r\n\t this.disableApplyButton = true;\r\n\t return;\r\n\t }\r\n\t this.disableApplyButton = false;\r\n\t this.bankInterfaceList = [];\r\n\t this.pagedItems.filter(function (item) { return item.isChecked == true; }).forEach(function (item) {\r\n\t _this.bankInterfaceList.push(item.rowIndex);\r\n\t });\r\n\t this.finalBankInterfaceList = this.bankInterfaceList.toString();\r\n\t this.dialogRef.close();\r\n\t };\r\n\t BankInterfaceReportDialog.prototype.checkboxFieldChange = function (event, colElem) {\r\n\t if (!event.checked) {\r\n\t this.checkedAll = false;\r\n\t }\r\n\t this.checkboxFieldChangedProcess(this.pagedItems, event, colElem);\r\n\t };\r\n\t BankInterfaceReportDialog.prototype.close = function () {\r\n\t this.checkedAll = false;\r\n\t this.finalBankInterfaceList = this.tempList.toString();\r\n\t this.dialogRef.close();\r\n\t };\r\n\t BankInterfaceReportDialog.prototype.toggleAll = function (event) {\r\n\t this.disableApplyButton = false;\r\n\t this.finalBankInterfaceList = this.setToggleValue(this.pagedItems);\r\n\t };\r\n\t BankInterfaceReportDialog.prototype.getGroupByColumnName = function () {\r\n\t if (this.selectedColumn == BankInterfaceFilterColumnName[BankInterfaceFilterColumnName.Companies])\r\n\t return 'company';\r\n\t else if (this.selectedColumn == BankInterfaceFilterColumnName[BankInterfaceFilterColumnName.Type])\r\n\t return \"interfaceType\";\r\n\t else if (this.selectedColumn == BankInterfaceFilterColumnName[BankInterfaceFilterColumnName.Name])\r\n\t return \"interfaceName\";\r\n\t else if (this.selectedColumn == BankInterfaceFilterColumnName[BankInterfaceFilterColumnName.Complexity])\r\n\t return \"complexity\";\r\n\t else\r\n\t return \"linesOfCode\";\r\n\t };\r\n\t BankInterfaceReportDialog.prototype.checkboxFieldChangedProcess = function (items, event, colElem) {\r\n\t if (colElem == BankInterfaceFilterColumnName[BankInterfaceFilterColumnName.Companies]) {\r\n\t this.companyFieldProcess(items, event);\r\n\t }\r\n\t else if (colElem == BankInterfaceFilterColumnName[BankInterfaceFilterColumnName.Type]) {\r\n\t this.interfaceTypeProcess(items, event);\r\n\t }\r\n\t else if (colElem == BankInterfaceFilterColumnName[BankInterfaceFilterColumnName.Name]) {\r\n\t this.interfaceNameFieldProcess(items, event);\r\n\t }\r\n\t else if (colElem == BankInterfaceFilterColumnName[BankInterfaceFilterColumnName.Complexity]) {\r\n\t this.complexityFieldProcess(items, event);\r\n\t }\r\n\t else if (colElem == BankInterfaceFilterColumnName[BankInterfaceFilterColumnName.LOC]) {\r\n\t this.locProcess(items, event);\r\n\t }\r\n\t };\r\n\t BankInterfaceReportDialog.prototype.companyFieldProcess = function (items, event) {\r\n\t var company = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t company = getRowDetails[0].company;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.company == company; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.company == company; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t BankInterfaceReportDialog.prototype.interfaceTypeProcess = function (items, event) {\r\n\t var interfaceType = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t interfaceType = getRowDetails[0].interfaceType;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.interfaceType == interfaceType; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.interfaceType == interfaceType; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t BankInterfaceReportDialog.prototype.interfaceNameFieldProcess = function (items, event) {\r\n\t var interfaceName = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t interfaceName = getRowDetails[0].interfaceName;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.interfaceName == interfaceName; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.interfaceName == interfaceName; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t BankInterfaceReportDialog.prototype.complexityFieldProcess = function (items, event) {\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t var complexity = getRowDetails[0].complexity;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.complexity == complexity; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.complexity == complexity; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t BankInterfaceReportDialog.prototype.locProcess = function (items, event) {\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t var linesOfCode = getRowDetails[0].linesOfCode;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.linesOfCode == linesOfCode; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.linesOfCode == linesOfCode; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t BankInterfaceReportDialog.prototype.setToggleValue = function (items) {\r\n\t var _this = this;\r\n\t var toggleFlag = this.checkedAll;\r\n\t items.forEach(function (item) {\r\n\t item.isChecked = toggleFlag;\r\n\t });\r\n\t this.bankInterfaceList = [];\r\n\t if (toggleFlag) {\r\n\t items.forEach(function (item) {\r\n\t _this.bankInterfaceList.push(Number(item.rowIndex));\r\n\t });\r\n\t }\r\n\t return this.bankInterfaceList.toString();\r\n\t };\r\n\t BankInterfaceReportDialog.prototype.showErrorMessage = function () {\r\n\t var _this = this;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.errorDialogRef = this.dialog.open(reports_component_service_1.ErrorMessageDialog, config);\r\n\t this.errorDialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.errorDialogRef = null;\r\n\t });\r\n\t };\r\n\t BankInterfaceReportDialog.prototype.onClick = function (event) {\r\n\t var clickedOutsideDialog = event.target;\r\n\t var inside = false;\r\n\t do {\r\n\t if (clickedOutsideDialog === this.elementRef.nativeElement) {\r\n\t inside = true;\r\n\t }\r\n\t clickedOutsideDialog = clickedOutsideDialog.parentNode;\r\n\t } while (clickedOutsideDialog);\r\n\t if (inside) {\r\n\t this.clickedOutside = false;\r\n\t }\r\n\t else {\r\n\t this.clickedOutside = true;\r\n\t }\r\n\t };\r\n\t __decorate([\r\n\t core_1.ViewChild('container'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], BankInterfaceReportDialog.prototype, \"container\", void 0);\r\n\t BankInterfaceReportDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'bankinterface.dialog',\r\n\t host: {\r\n\t '(document:click)': 'onClick($event)',\r\n\t },\r\n\t template: \"\\n\\n
Bank Interface - {{selectedColumn}}
\\n\\n
\\n \\n \\n \\n\\n
\\n (Select All) \\n
\\n
\\n {{md.value[0].company}} \\n
\\n
\\n
\\n
\\n {{md.value[0].interfaceType}} \\n
\\n
\\n \\n
\\n
\\n {{md.value[0].interfaceName}} \\n
\\n
\\n \\n
\\n
\\n {{md.value[0].linesOfCode}} \\n
\\n
\\n\\n
\\n
\\n {{md.value[0].complexity}} \\n
\\n
\\n\\n
\\n \\n
\\n \\n \\n
\\n
\\n\",\r\n\t providers: [pager_service_1.PagerService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef,\r\n\t core_1.ChangeDetectorRef,\r\n\t core_1.ViewContainerRef,\r\n\t material_1.MdDialog,\r\n\t core_1.ElementRef])\r\n\t ], BankInterfaceReportDialog);\r\n\t return BankInterfaceReportDialog;\r\n\t}());\r\n\texports.BankInterfaceReportDialog = BankInterfaceReportDialog;\r\n\tvar BankInterfaceFilterColumnName;\r\n\t(function (BankInterfaceFilterColumnName) {\r\n\t BankInterfaceFilterColumnName[BankInterfaceFilterColumnName[\"Companies\"] = 0] = \"Companies\";\r\n\t BankInterfaceFilterColumnName[BankInterfaceFilterColumnName[\"Type\"] = 1] = \"Type\";\r\n\t BankInterfaceFilterColumnName[BankInterfaceFilterColumnName[\"Name\"] = 2] = \"Name\";\r\n\t BankInterfaceFilterColumnName[BankInterfaceFilterColumnName[\"LOC\"] = 3] = \"LOC\";\r\n\t BankInterfaceFilterColumnName[BankInterfaceFilterColumnName[\"Complexity\"] = 4] = \"Complexity\";\r\n\t})(BankInterfaceFilterColumnName = exports.BankInterfaceFilterColumnName || (exports.BankInterfaceFilterColumnName = {}));\r\n\n\n/***/ },\n/* 447 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar reports_component_service_1 = __webpack_require__(441);\r\n\tvar ChangeLogsReportDialog = (function () {\r\n\t function ChangeLogsReportDialog(dialogRef, errorChangeDetectorRef, viewContainerRef, dialog, elementRef) {\r\n\t this.dialogRef = dialogRef;\r\n\t this.errorChangeDetectorRef = errorChangeDetectorRef;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.dialog = dialog;\r\n\t this.elementRef = elementRef;\r\n\t this.checkedAll = false;\r\n\t this.selectedColumn = \"\";\r\n\t this.selectedColumnGroupBy = \"\";\r\n\t this.hidePagination = false;\r\n\t this.changeLogsList = [];\r\n\t this.disableApplyButton = false;\r\n\t this.clickedOutside = false;\r\n\t this.tempList = [];\r\n\t }\r\n\t ChangeLogsReportDialog.prototype.render = function (changeLogsDetails) {\r\n\t var _this = this;\r\n\t this.pagedItems = changeLogsDetails.pagedItems;\r\n\t this.finalChangeLogsList = changeLogsDetails.finalChangeLogsList;\r\n\t this.tempList = this.finalChangeLogsList;\r\n\t this.checkedAll = changeLogsDetails.checkedAll;\r\n\t this.selectedColumn = changeLogsDetails.selectedColumn;\r\n\t this.selectedColumnGroupBy = this.getGroupByColumnName();\r\n\t if (this.finalChangeLogsList != undefined && this.finalChangeLogsList.length > 0) {\r\n\t this.finalChangeLogsList.split(',').forEach(function (id) {\r\n\t _this.changeLogsList.push(Number(id));\r\n\t _this.pagedItems.filter(function (item) { return item.rowIndex == id; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t });\r\n\t }\r\n\t this.container.nativeElement.children[1].style.maxHeight = \"30vh\";\r\n\t this.container.nativeElement.children[1].style.overflow = \"auto\";\r\n\t this.container.nativeElement.children[2].style.float = \"right\";\r\n\t this.container.nativeElement.children[2].style.position = \"relative\";\r\n\t this.container.nativeElement.children[2].style.top = \"1vh\";\r\n\t };\r\n\t ChangeLogsReportDialog.prototype.applyModal = function () {\r\n\t var _this = this;\r\n\t if (this.changeLogsList.length > 0 && this.pagedItems.filter(function (item) { return item.isChecked == true; }).length == 0) {\r\n\t this.showErrorMessage();\r\n\t this.disableApplyButton = true;\r\n\t return;\r\n\t }\r\n\t this.disableApplyButton = false;\r\n\t this.changeLogsList = [];\r\n\t this.pagedItems.filter(function (item) { return item.isChecked == true; }).forEach(function (item) {\r\n\t _this.changeLogsList.push(item.rowIndex);\r\n\t });\r\n\t this.finalChangeLogsList = this.changeLogsList.toString();\r\n\t this.dialogRef.close();\r\n\t };\r\n\t ChangeLogsReportDialog.prototype.checkboxFieldChange = function (event, colElem) {\r\n\t if (!event.checked) {\r\n\t this.checkedAll = false;\r\n\t }\r\n\t this.checkboxFieldChangedProcess(this.pagedItems, event, colElem);\r\n\t };\r\n\t ChangeLogsReportDialog.prototype.close = function () {\r\n\t this.checkedAll = false;\r\n\t this.finalChangeLogsList = this.tempList.toString();\r\n\t this.dialogRef.close();\r\n\t };\r\n\t ChangeLogsReportDialog.prototype.toggleAll = function (event) {\r\n\t this.disableApplyButton = false;\r\n\t this.finalChangeLogsList = this.setToggleValue(this.pagedItems);\r\n\t };\r\n\t ChangeLogsReportDialog.prototype.getGroupByColumnName = function () {\r\n\t if (this.selectedColumn == ChangeLogsFilterColumnName[ChangeLogsFilterColumnName.Description])\r\n\t return 'description';\r\n\t else if (this.selectedColumn == ChangeLogsFilterColumnName[ChangeLogsFilterColumnName.Table])\r\n\t return \"tableName\";\r\n\t else if (this.selectedColumn == ChangeLogsFilterColumnName[ChangeLogsFilterColumnName.LOC])\r\n\t return \"linesOfCode\";\r\n\t else\r\n\t return \"complexity\";\r\n\t };\r\n\t ChangeLogsReportDialog.prototype.checkboxFieldChangedProcess = function (items, event, colElem) {\r\n\t if (colElem == ChangeLogsFilterColumnName[ChangeLogsFilterColumnName.Description]) {\r\n\t this.descFieldProcess(items, event);\r\n\t }\r\n\t else if (colElem == ChangeLogsFilterColumnName[ChangeLogsFilterColumnName.Table]) {\r\n\t this.tableProcess(items, event);\r\n\t }\r\n\t else if (colElem == ChangeLogsFilterColumnName[ChangeLogsFilterColumnName.LOC]) {\r\n\t this.locFieldProcess(items, event);\r\n\t }\r\n\t else if (colElem == ChangeLogsFilterColumnName[ChangeLogsFilterColumnName.Complexity]) {\r\n\t this.complexityFieldProcess(items, event);\r\n\t }\r\n\t };\r\n\t ChangeLogsReportDialog.prototype.descFieldProcess = function (items, event) {\r\n\t var description = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t description = getRowDetails[0].description;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.description == description; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.description == description; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t ChangeLogsReportDialog.prototype.tableProcess = function (items, event) {\r\n\t var tableName = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t tableName = getRowDetails[0].tableName;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.tableName == tableName; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.tableName == tableName; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t ChangeLogsReportDialog.prototype.locFieldProcess = function (items, event) {\r\n\t var linesOfCode = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t linesOfCode = getRowDetails[0].linesOfCode;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.linesOfCode == linesOfCode; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.linesOfCode == linesOfCode; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t ChangeLogsReportDialog.prototype.complexityFieldProcess = function (items, event) {\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t var complexity = getRowDetails[0].complexity;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.complexity == complexity; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.complexity == complexity; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t ChangeLogsReportDialog.prototype.setToggleValue = function (items) {\r\n\t var _this = this;\r\n\t var toggleFlag = this.checkedAll;\r\n\t items.forEach(function (item) {\r\n\t item.isChecked = toggleFlag;\r\n\t });\r\n\t this.changeLogsList = [];\r\n\t if (toggleFlag) {\r\n\t items.forEach(function (item) {\r\n\t _this.changeLogsList.push(Number(item.rowIndex));\r\n\t });\r\n\t }\r\n\t return this.changeLogsList.toString();\r\n\t };\r\n\t ChangeLogsReportDialog.prototype.showErrorMessage = function () {\r\n\t var _this = this;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.errorDialogRef = this.dialog.open(reports_component_service_1.ErrorMessageDialog, config);\r\n\t this.errorDialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.errorDialogRef = null;\r\n\t });\r\n\t };\r\n\t ChangeLogsReportDialog.prototype.onClick = function (event) {\r\n\t var clickedOutsideDialog = event.target;\r\n\t var inside = false;\r\n\t do {\r\n\t if (clickedOutsideDialog === this.elementRef.nativeElement) {\r\n\t inside = true;\r\n\t }\r\n\t clickedOutsideDialog = clickedOutsideDialog.parentNode;\r\n\t } while (clickedOutsideDialog);\r\n\t if (inside) {\r\n\t this.clickedOutside = false;\r\n\t }\r\n\t else {\r\n\t this.clickedOutside = true;\r\n\t }\r\n\t };\r\n\t __decorate([\r\n\t core_1.ViewChild('container'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], ChangeLogsReportDialog.prototype, \"container\", void 0);\r\n\t ChangeLogsReportDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'changelogs.dialog',\r\n\t host: {\r\n\t '(document:click)': 'onClick($event)',\r\n\t },\r\n\t template: \"\\n\\n
Change Logs - {{selectedColumn}}
\\n\\n
\\n \\n \\n \\n\\n
\\n (Select All) \\n
\\n
\\n {{md.value[0].description}} \\n
\\n
\\n\\n
\\n
\\n {{md.value[0].tableName}} \\n
\\n
\\n \\n
\\n
\\n {{md.value[0].linesOfCode}} \\n
\\n
\\n \\n
\\n
\\n {{md.value[0].complexity}} \\n
\\n
\\n\\n
\\n \\n
\\n \\n \\n
\\n
\\n\",\r\n\t providers: [pager_service_1.PagerService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef,\r\n\t core_1.ChangeDetectorRef,\r\n\t core_1.ViewContainerRef,\r\n\t material_1.MdDialog,\r\n\t core_1.ElementRef])\r\n\t ], ChangeLogsReportDialog);\r\n\t return ChangeLogsReportDialog;\r\n\t}());\r\n\texports.ChangeLogsReportDialog = ChangeLogsReportDialog;\r\n\tvar ChangeLogsFilterColumnName;\r\n\t(function (ChangeLogsFilterColumnName) {\r\n\t ChangeLogsFilterColumnName[ChangeLogsFilterColumnName[\"Description\"] = 0] = \"Description\";\r\n\t ChangeLogsFilterColumnName[ChangeLogsFilterColumnName[\"Table\"] = 1] = \"Table\";\r\n\t ChangeLogsFilterColumnName[ChangeLogsFilterColumnName[\"LOC\"] = 2] = \"LOC\";\r\n\t ChangeLogsFilterColumnName[ChangeLogsFilterColumnName[\"Complexity\"] = 3] = \"Complexity\";\r\n\t})(ChangeLogsFilterColumnName = exports.ChangeLogsFilterColumnName || (exports.ChangeLogsFilterColumnName = {}));\r\n\n\n/***/ },\n/* 448 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar reports_component_service_1 = __webpack_require__(441);\r\n\tvar APMObjectReportDialog = (function () {\r\n\t function APMObjectReportDialog(dialogRef, errorChangeDetectorRef, viewContainerRef, dialog, elementRef) {\r\n\t this.dialogRef = dialogRef;\r\n\t this.errorChangeDetectorRef = errorChangeDetectorRef;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.dialog = dialog;\r\n\t this.elementRef = elementRef;\r\n\t this.checkedAll = false;\r\n\t this.selectedColumn = \"\";\r\n\t this.selectedColumnGroupBy = \"\";\r\n\t this.hidePagination = false;\r\n\t this.apmObjectList = [];\r\n\t this.disableApplyButton = false;\r\n\t this.clickedOutside = false;\r\n\t this.tempList = [];\r\n\t }\r\n\t APMObjectReportDialog.prototype.render = function (bankInterfaceDetails) {\r\n\t var _this = this;\r\n\t this.pagedItems = bankInterfaceDetails.pagedItems;\r\n\t this.finalAPMObjectList = bankInterfaceDetails.finalAPMObjectList;\r\n\t this.tempList = this.finalAPMObjectList;\r\n\t this.checkedAll = bankInterfaceDetails.checkedAll;\r\n\t this.selectedColumn = bankInterfaceDetails.selectedColumn;\r\n\t this.selectedColumnGroupBy = this.getGroupByColumnName();\r\n\t if (this.finalAPMObjectList != undefined && this.finalAPMObjectList.length > 0) {\r\n\t this.finalAPMObjectList.split(',').forEach(function (id) {\r\n\t _this.apmObjectList.push(Number(id));\r\n\t _this.pagedItems.filter(function (item) { return item.rowIndex == id; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t });\r\n\t }\r\n\t this.container.nativeElement.children[1].style.maxHeight = \"30vh\";\r\n\t this.container.nativeElement.children[1].style.overflow = \"auto\";\r\n\t this.container.nativeElement.children[2].style.float = \"right\";\r\n\t this.container.nativeElement.children[2].style.position = \"relative\";\r\n\t this.container.nativeElement.children[2].style.top = \"1vh\";\r\n\t };\r\n\t APMObjectReportDialog.prototype.applyModal = function () {\r\n\t var _this = this;\r\n\t if (this.apmObjectList.length > 0 && this.pagedItems.filter(function (item) { return item.isChecked == true; }).length == 0) {\r\n\t this.showErrorMessage();\r\n\t this.disableApplyButton = true;\r\n\t return;\r\n\t }\r\n\t this.disableApplyButton = false;\r\n\t this.apmObjectList = [];\r\n\t this.pagedItems.filter(function (item) { return item.isChecked == true; }).forEach(function (item) {\r\n\t _this.apmObjectList.push(item.rowIndex);\r\n\t });\r\n\t this.finalAPMObjectList = this.apmObjectList.toString();\r\n\t this.dialogRef.close();\r\n\t };\r\n\t APMObjectReportDialog.prototype.checkboxFieldChange = function (event, colElem) {\r\n\t if (!event.checked) {\r\n\t this.checkedAll = false;\r\n\t }\r\n\t this.checkboxFieldChangedProcess(this.pagedItems, event, colElem);\r\n\t };\r\n\t APMObjectReportDialog.prototype.close = function () {\r\n\t this.checkedAll = false;\r\n\t this.finalAPMObjectList = this.tempList.toString();\r\n\t this.dialogRef.close();\r\n\t };\r\n\t APMObjectReportDialog.prototype.toggleAll = function (event) {\r\n\t this.disableApplyButton = false;\r\n\t this.finalAPMObjectList = this.setToggleValue(this.pagedItems);\r\n\t };\r\n\t APMObjectReportDialog.prototype.getGroupByColumnName = function () {\r\n\t if (this.selectedColumn == APMObjectFilterColumnName[APMObjectFilterColumnName.DocumentID])\r\n\t return 'documentID';\r\n\t else if (this.selectedColumn == APMObjectFilterColumnName[APMObjectFilterColumnName.DocumentType])\r\n\t return \"documentType\";\r\n\t else if (this.selectedColumn == APMObjectFilterColumnName[APMObjectFilterColumnName.Documents])\r\n\t return \"documents\";\r\n\t else if (this.selectedColumn == APMObjectFilterColumnName[APMObjectFilterColumnName.Properties])\r\n\t return \"properties\";\r\n\t else if (this.selectedColumn == APMObjectFilterColumnName[APMObjectFilterColumnName.Routings])\r\n\t return \"routings\";\r\n\t else\r\n\t return \"recipients\";\r\n\t };\r\n\t APMObjectReportDialog.prototype.checkboxFieldChangedProcess = function (items, event, colElem) {\r\n\t if (colElem == APMObjectFilterColumnName[APMObjectFilterColumnName.DocumentID]) {\r\n\t this.doucmentIdFieldProcess(items, event);\r\n\t }\r\n\t else if (colElem == APMObjectFilterColumnName[APMObjectFilterColumnName.DocumentType]) {\r\n\t this.documentTypeProcess(items, event);\r\n\t }\r\n\t else if (colElem == APMObjectFilterColumnName[APMObjectFilterColumnName.Documents]) {\r\n\t this.documentsFieldProcess(items, event);\r\n\t }\r\n\t else if (colElem == APMObjectFilterColumnName[APMObjectFilterColumnName.Properties]) {\r\n\t this.propertiesFieldProcess(items, event);\r\n\t }\r\n\t else if (colElem == APMObjectFilterColumnName[APMObjectFilterColumnName.Routings]) {\r\n\t this.routingsProcess(items, event);\r\n\t }\r\n\t else if (colElem == APMObjectFilterColumnName[APMObjectFilterColumnName.Recipients]) {\r\n\t this.recipientsProcess(items, event);\r\n\t }\r\n\t };\r\n\t APMObjectReportDialog.prototype.doucmentIdFieldProcess = function (items, event) {\r\n\t var documentId = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t documentId = getRowDetails[0].documentID;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.documentID == documentId; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.documentID == documentId; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t APMObjectReportDialog.prototype.documentTypeProcess = function (items, event) {\r\n\t var documentType = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t documentType = getRowDetails[0].documentType;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.documentType == documentType; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.documentType == documentType; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t APMObjectReportDialog.prototype.documentsFieldProcess = function (items, event) {\r\n\t var documents = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t documents = getRowDetails[0].documents;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.documents == documents; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.documents == documents; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t APMObjectReportDialog.prototype.propertiesFieldProcess = function (items, event) {\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t var properties = getRowDetails[0].properties;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.properties == properties; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.properties == properties; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t APMObjectReportDialog.prototype.routingsProcess = function (items, event) {\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t var routings = getRowDetails[0].routings;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.routings == routings; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.routings == routings; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t APMObjectReportDialog.prototype.recipientsProcess = function (items, event) {\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t var recipients = getRowDetails[0].recipients;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.recipients == recipients; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.recipients == recipients; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t APMObjectReportDialog.prototype.setToggleValue = function (items) {\r\n\t var _this = this;\r\n\t var toggleFlag = this.checkedAll;\r\n\t items.forEach(function (item) {\r\n\t item.isChecked = toggleFlag;\r\n\t });\r\n\t this.apmObjectList = [];\r\n\t if (toggleFlag) {\r\n\t items.forEach(function (item) {\r\n\t _this.apmObjectList.push(Number(item.rowIndex));\r\n\t });\r\n\t }\r\n\t return this.apmObjectList.toString();\r\n\t };\r\n\t APMObjectReportDialog.prototype.showErrorMessage = function () {\r\n\t var _this = this;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.errorDialogRef = this.dialog.open(reports_component_service_1.ErrorMessageDialog, config);\r\n\t this.errorDialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.errorDialogRef = null;\r\n\t });\r\n\t };\r\n\t APMObjectReportDialog.prototype.onClick = function (event) {\r\n\t var clickedOutsideDialog = event.target;\r\n\t var inside = false;\r\n\t do {\r\n\t if (clickedOutsideDialog === this.elementRef.nativeElement) {\r\n\t inside = true;\r\n\t }\r\n\t clickedOutsideDialog = clickedOutsideDialog.parentNode;\r\n\t } while (clickedOutsideDialog);\r\n\t if (inside) {\r\n\t this.clickedOutside = false;\r\n\t }\r\n\t else {\r\n\t this.clickedOutside = true;\r\n\t }\r\n\t };\r\n\t __decorate([\r\n\t core_1.ViewChild('container'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], APMObjectReportDialog.prototype, \"container\", void 0);\r\n\t APMObjectReportDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'apmobjects.dialog',\r\n\t host: {\r\n\t '(document:click)': 'onClick($event)',\r\n\t },\r\n\t template: \"\\n\\n
APM Objects - {{selectedColumn}}
\\n\\n
\\n \\n \\n \\n\\n
\\n (Select All) \\n
\\n
\\n {{md.value[0].documentID}} \\n
\\n
\\n
\\n
\\n {{md.value[0].documentType}} \\n
\\n
\\n \\n
\\n
\\n {{md.value[0].documents}} \\n
\\n
\\n \\n
\\n
\\n {{md.value[0].properties}} \\n
\\n
\\n\\n
\\n
\\n {{md.value[0].routings}} \\n
\\n
\\n \\n
\\n
\\n {{md.value[0].recipients}} \\n
\\n
\\n\\n
\\n \\n
\\n \\n \\n
\\n
\\n\",\r\n\t providers: [pager_service_1.PagerService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef,\r\n\t core_1.ChangeDetectorRef,\r\n\t core_1.ViewContainerRef,\r\n\t material_1.MdDialog,\r\n\t core_1.ElementRef])\r\n\t ], APMObjectReportDialog);\r\n\t return APMObjectReportDialog;\r\n\t}());\r\n\texports.APMObjectReportDialog = APMObjectReportDialog;\r\n\tvar APMObjectFilterColumnName;\r\n\t(function (APMObjectFilterColumnName) {\r\n\t APMObjectFilterColumnName[APMObjectFilterColumnName[\"DocumentID\"] = 0] = \"DocumentID\";\r\n\t APMObjectFilterColumnName[APMObjectFilterColumnName[\"DocumentType\"] = 1] = \"DocumentType\";\r\n\t APMObjectFilterColumnName[APMObjectFilterColumnName[\"Documents\"] = 2] = \"Documents\";\r\n\t APMObjectFilterColumnName[APMObjectFilterColumnName[\"Properties\"] = 3] = \"Properties\";\r\n\t APMObjectFilterColumnName[APMObjectFilterColumnName[\"Routings\"] = 4] = \"Routings\";\r\n\t APMObjectFilterColumnName[APMObjectFilterColumnName[\"Recipients\"] = 5] = \"Recipients\";\r\n\t})(APMObjectFilterColumnName = exports.APMObjectFilterColumnName || (exports.APMObjectFilterColumnName = {}));\r\n\n\n/***/ },\n/* 449 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar reports_component_service_1 = __webpack_require__(441);\r\n\tvar UserDefinedTablesReportDialog = (function () {\r\n\t function UserDefinedTablesReportDialog(dialogRef, errorChangeDetectorRef, viewContainerRef, dialog, elementRef) {\r\n\t this.dialogRef = dialogRef;\r\n\t this.errorChangeDetectorRef = errorChangeDetectorRef;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.dialog = dialog;\r\n\t this.elementRef = elementRef;\r\n\t this.checkedAll = false;\r\n\t this.selectedColumn = \"\";\r\n\t this.selectedColumnGroupBy = \"\";\r\n\t this.hidePagination = false;\r\n\t this.customTableList = [];\r\n\t this.disableApplyButton = false;\r\n\t this.clickedOutside = false;\r\n\t this.tempList = [];\r\n\t }\r\n\t UserDefinedTablesReportDialog.prototype.render = function (udFormsDetails) {\r\n\t var _this = this;\r\n\t this.pagedItems = udFormsDetails.pagedItems;\r\n\t this.finalUserDefinedTablesList = udFormsDetails.finalUserDefinedTablesList;\r\n\t this.tempList = this.finalUserDefinedTablesList;\r\n\t this.checkedAll = udFormsDetails.checkedAll;\r\n\t this.selectedColumn = udFormsDetails.selectedColumn;\r\n\t this.selectedColumnGroupBy = this.getGroupByColumnName();\r\n\t if (this.finalUserDefinedTablesList != undefined && this.finalUserDefinedTablesList.length > 0) {\r\n\t this.finalUserDefinedTablesList.split(',').forEach(function (id) {\r\n\t _this.customTableList.push(Number(id));\r\n\t _this.pagedItems.filter(function (item) { return item.rowIndex == id; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t });\r\n\t }\r\n\t this.container.nativeElement.children[1].style.maxHeight = \"30vh\";\r\n\t this.container.nativeElement.children[1].style.overflow = \"auto\";\r\n\t this.container.nativeElement.children[2].style.float = \"right\";\r\n\t this.container.nativeElement.children[2].style.position = \"relative\";\r\n\t this.container.nativeElement.children[2].style.top = \"1vh\";\r\n\t };\r\n\t UserDefinedTablesReportDialog.prototype.applyModal = function () {\r\n\t var _this = this;\r\n\t var anythingChoosen = false;\r\n\t if (this.customTableList.length > 0 && this.pagedItems.filter(function (item) { return item.isChecked == true; }).length == 0) {\r\n\t this.showErrorMessage();\r\n\t this.disableApplyButton = true;\r\n\t return;\r\n\t }\r\n\t this.disableApplyButton = false;\r\n\t this.customTableList = [];\r\n\t this.pagedItems.filter(function (item) { return item.isChecked == true; }).forEach(function (item) {\r\n\t _this.customTableList.push(item.rowIndex);\r\n\t });\r\n\t console.log(this.customTableList);\r\n\t this.finalUserDefinedTablesList = this.customTableList.toString();\r\n\t console.log(this.finalUserDefinedTablesList);\r\n\t this.dialogRef.close();\r\n\t };\r\n\t UserDefinedTablesReportDialog.prototype.checkboxFieldChange = function (event, colElem) {\r\n\t if (!event.checked) {\r\n\t this.checkedAll = false;\r\n\t }\r\n\t this.checkboxFieldChangedProcess(this.pagedItems, event, colElem);\r\n\t };\r\n\t UserDefinedTablesReportDialog.prototype.close = function () {\r\n\t this.checkedAll = false;\r\n\t this.finalUserDefinedTablesList = this.tempList.toString();\r\n\t this.dialogRef.close();\r\n\t };\r\n\t UserDefinedTablesReportDialog.prototype.toggleAll = function (event) {\r\n\t this.disableApplyButton = false;\r\n\t this.finalUserDefinedTablesList = this.setToggleValue(this.pagedItems);\r\n\t };\r\n\t UserDefinedTablesReportDialog.prototype.getGroupByColumnName = function () {\r\n\t if (this.selectedColumn == UserDefinedTablesFilterColumnName[UserDefinedTablesFilterColumnName.Name])\r\n\t return \"name\";\r\n\t else\r\n\t return \"rowCount\";\r\n\t };\r\n\t UserDefinedTablesReportDialog.prototype.checkboxFieldChangedProcess = function (items, event, colElem) {\r\n\t if (colElem == UserDefinedTablesFilterColumnName[UserDefinedTablesFilterColumnName.Name]) {\r\n\t this.nameFieldProcess(items, event);\r\n\t }\r\n\t else if (colElem == UserDefinedTablesFilterColumnName[UserDefinedTablesFilterColumnName.RowCount]) {\r\n\t this.rowsFieldProcess(items, event);\r\n\t }\r\n\t };\r\n\t UserDefinedTablesReportDialog.prototype.nameFieldProcess = function (items, event) {\r\n\t var name = '';\r\n\t debugger;\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t name = getRowDetails[0].udFormName;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.udFormName == name; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.udFormName == name; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t UserDefinedTablesReportDialog.prototype.rowsFieldProcess = function (items, event) {\r\n\t var rows = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t console.log(getRowDetails);\r\n\t rows = getRowDetails[0].rowCount;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.rowCount == rows; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.rowCount == rows; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t UserDefinedTablesReportDialog.prototype.setToggleValue = function (items) {\r\n\t var _this = this;\r\n\t var toggleFlag = this.checkedAll;\r\n\t items.forEach(function (item) {\r\n\t item.isChecked = toggleFlag;\r\n\t });\r\n\t this.customTableList = [];\r\n\t if (toggleFlag) {\r\n\t items.forEach(function (item) {\r\n\t _this.customTableList.push(Number(item.rowIndex));\r\n\t });\r\n\t }\r\n\t return this.customTableList.toString();\r\n\t };\r\n\t UserDefinedTablesReportDialog.prototype.showErrorMessage = function () {\r\n\t var _this = this;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.errorDialogRef = this.dialog.open(reports_component_service_1.ErrorMessageDialog, config);\r\n\t this.errorDialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.errorDialogRef = null;\r\n\t });\r\n\t };\r\n\t UserDefinedTablesReportDialog.prototype.onClick = function (event) {\r\n\t var clickedOutsideDialog = event.target;\r\n\t var inside = false;\r\n\t do {\r\n\t if (clickedOutsideDialog === this.elementRef.nativeElement) {\r\n\t inside = true;\r\n\t }\r\n\t clickedOutsideDialog = clickedOutsideDialog.parentNode;\r\n\t } while (clickedOutsideDialog);\r\n\t if (inside) {\r\n\t this.clickedOutside = false;\r\n\t }\r\n\t else {\r\n\t this.clickedOutside = true;\r\n\t }\r\n\t };\r\n\t __decorate([\r\n\t core_1.ViewChild('container'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], UserDefinedTablesReportDialog.prototype, \"container\", void 0);\r\n\t UserDefinedTablesReportDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'userDefinedTables.modaldialog',\r\n\t host: {\r\n\t '(document:click)': 'onClick($event)',\r\n\t },\r\n\t template: \"\\n\\n\\n\\n\\n
Custom Tables - {{selectedColumn}}
\\n\\n
\\n \\n \\n \\n\\n
\\n (Select All) \\n
\\n
\\n {{md.value[0].name}}\\n
\\n
\\n
\\n
\\n {{md.value[0].rowCount}}\\n
\\n
\\n
\\n \\n
\\n \\n \\n
\\n
\\n\",\r\n\t providers: [pager_service_1.PagerService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef,\r\n\t core_1.ChangeDetectorRef,\r\n\t core_1.ViewContainerRef,\r\n\t material_1.MdDialog,\r\n\t core_1.ElementRef])\r\n\t ], UserDefinedTablesReportDialog);\r\n\t return UserDefinedTablesReportDialog;\r\n\t}());\r\n\texports.UserDefinedTablesReportDialog = UserDefinedTablesReportDialog;\r\n\tvar UserDefinedTablesFilterColumnName;\r\n\t(function (UserDefinedTablesFilterColumnName) {\r\n\t UserDefinedTablesFilterColumnName[UserDefinedTablesFilterColumnName[\"Name\"] = 0] = \"Name\";\r\n\t UserDefinedTablesFilterColumnName[UserDefinedTablesFilterColumnName[\"Description\"] = 1] = \"Description\";\r\n\t UserDefinedTablesFilterColumnName[UserDefinedTablesFilterColumnName[\"RowCount\"] = 2] = \"RowCount\";\r\n\t})(UserDefinedTablesFilterColumnName = exports.UserDefinedTablesFilterColumnName || (exports.UserDefinedTablesFilterColumnName = {}));\r\n\n\n/***/ },\n/* 450 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar sql_modaldialog_1 = __webpack_require__(451);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar reports_component_service_1 = __webpack_require__(441);\r\n\tvar CustomTriggerDialog = (function () {\r\n\t function CustomTriggerDialog(dialogRef, errorChangeDetectorRef, viewContainerRef, dialog, elementRef) {\r\n\t this.dialogRef = dialogRef;\r\n\t this.errorChangeDetectorRef = errorChangeDetectorRef;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.dialog = dialog;\r\n\t this.elementRef = elementRef;\r\n\t this.checkedAll = false;\r\n\t this.selectedColumn = \"\";\r\n\t this.columnDisplayName = \"\";\r\n\t this.selectedColumnGroupBy = \"\";\r\n\t this.hidePagination = false;\r\n\t this.disableApplyButton = false;\r\n\t this.sqlReportType = '';\r\n\t this.sqlList = [];\r\n\t this.clickedOutside = false;\r\n\t this.tempList = [];\r\n\t }\r\n\t CustomTriggerDialog.prototype.render = function (sqlReportDetails) {\r\n\t var _this = this;\r\n\t this.pagedItems = sqlReportDetails.pagedItems;\r\n\t this.finalSQLList = sqlReportDetails.finalSQLList;\r\n\t this.tempList = this.finalSQLList;\r\n\t this.checkedAll = sqlReportDetails.checkedAll;\r\n\t this.selectedColumn = sqlReportDetails.selectedColumn;\r\n\t this.sqlReportType = this.getDisplayName(sqlReportDetails.sqlReportType);\r\n\t this.selectedColumnGroupBy = this.getGroupByColumnName();\r\n\t if (this.finalSQLList != undefined && this.finalSQLList.length > 0) {\r\n\t this.finalSQLList.split(',').forEach(function (id) {\r\n\t _this.sqlList.push(Number(id));\r\n\t _this.pagedItems.filter(function (item) { return item.rowIndex == id; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t });\r\n\t }\r\n\t this.container.nativeElement.children[1].style.maxHeight = \"30vh\";\r\n\t this.container.nativeElement.children[1].style.overflow = \"auto\";\r\n\t this.container.nativeElement.children[2].style.float = \"right\";\r\n\t this.container.nativeElement.children[2].style.position = \"relative\";\r\n\t this.container.nativeElement.children[2].style.top = \"1vh\";\r\n\t };\r\n\t CustomTriggerDialog.prototype.applyModal = function () {\r\n\t var _this = this;\r\n\t if (this.sqlList.length > 0 && (this.pagedItems.filter(function (item) { return item.isChecked == true; }).length == 0)) {\r\n\t this.showErrorMessage();\r\n\t this.disableApplyButton = true;\r\n\t return;\r\n\t }\r\n\t this.disableApplyButton = false;\r\n\t this.sqlList = [];\r\n\t this.pagedItems.filter(function (item) { return item.isChecked == true; }).forEach(function (item) {\r\n\t _this.sqlList.push(item.rowIndex);\r\n\t });\r\n\t this.finalSQLList = this.sqlList.toString();\r\n\t this.dialogRef.close();\r\n\t };\r\n\t CustomTriggerDialog.prototype.checkboxFieldChange = function (event, colElem) {\r\n\t if (!event.checked) {\r\n\t this.checkedAll = false;\r\n\t }\r\n\t this.checkboxFieldChangedProcess(this.pagedItems, event, colElem);\r\n\t };\r\n\t CustomTriggerDialog.prototype.close = function () {\r\n\t this.checkedAll = false;\r\n\t this.finalSQLList = this.tempList.toString();\r\n\t this.dialogRef.close();\r\n\t };\r\n\t CustomTriggerDialog.prototype.toggleAll = function (event) {\r\n\t this.disableApplyButton = false;\r\n\t this.finalSQLList = this.setToggleValue(this.pagedItems);\r\n\t };\r\n\t CustomTriggerDialog.prototype.getDisplayName = function (sqlReportType) {\r\n\t if (sqlReportType == sql_modaldialog_1.SQLReportType[sql_modaldialog_1.SQLReportType.Trigger])\r\n\t return \"Custom Triggers\";\r\n\t };\r\n\t CustomTriggerDialog.prototype.getGroupByColumnName = function () {\r\n\t if (this.selectedColumn == CustomTriggersFilterColumnName[CustomTriggersFilterColumnName.Name])\r\n\t return \"name\";\r\n\t else if (this.selectedColumn == CustomTriggersFilterColumnName[CustomTriggersFilterColumnName.TableName])\r\n\t return \"tableName\";\r\n\t else if (this.selectedColumn == CustomTriggersFilterColumnName[CustomTriggersFilterColumnName.Complexity])\r\n\t return \"complexity\";\r\n\t else\r\n\t return \"linesOfCode\";\r\n\t };\r\n\t CustomTriggerDialog.prototype.checkboxFieldChangedProcess = function (items, event, colElem) {\r\n\t if (colElem == CustomTriggersFilterColumnName[CustomTriggersFilterColumnName.Name]) {\r\n\t return this.nameFieldProcess(items, event);\r\n\t }\r\n\t if (colElem == CustomTriggersFilterColumnName[CustomTriggersFilterColumnName.TableName]) {\r\n\t return this.tableNameFieldProcess(items, event);\r\n\t }\r\n\t else if (colElem == CustomTriggersFilterColumnName[CustomTriggersFilterColumnName.Complexity]) {\r\n\t return this.complexityFieldProcess(items, event);\r\n\t }\r\n\t else if (colElem == CustomTriggersFilterColumnName[CustomTriggersFilterColumnName.LOC]) {\r\n\t return this.locFieldProcess(items, event);\r\n\t }\r\n\t };\r\n\t CustomTriggerDialog.prototype.nameFieldProcess = function (items, event) {\r\n\t var name = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t name = getRowDetails[0].name;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.name == name; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.name == name; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t CustomTriggerDialog.prototype.tableNameFieldProcess = function (items, event) {\r\n\t var tableName = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t tableName = getRowDetails[0].tableName;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.tableName == tableName; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.tableName == tableName; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t CustomTriggerDialog.prototype.complexityFieldProcess = function (items, event) {\r\n\t var complexity = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t complexity = getRowDetails[0].complexity;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.complexity == complexity; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.complexity == complexity; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t CustomTriggerDialog.prototype.locFieldProcess = function (items, event) {\r\n\t var linesOfCode = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t linesOfCode = getRowDetails[0].linesOfCode;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.linesOfCode == linesOfCode; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.linesOfCode == linesOfCode; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t CustomTriggerDialog.prototype.setToggleValue = function (items) {\r\n\t var _this = this;\r\n\t var toggleFlag = this.checkedAll;\r\n\t items.forEach(function (item) {\r\n\t item.isChecked = toggleFlag;\r\n\t });\r\n\t this.sqlList = [];\r\n\t if (toggleFlag) {\r\n\t items.forEach(function (item) {\r\n\t _this.sqlList.push(Number(item.rowIndex));\r\n\t });\r\n\t }\r\n\t return this.sqlList.toString();\r\n\t };\r\n\t CustomTriggerDialog.prototype.showErrorMessage = function () {\r\n\t var _this = this;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.errorDialogRef = this.dialog.open(reports_component_service_1.ErrorMessageDialog, config);\r\n\t this.errorDialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.errorDialogRef = null;\r\n\t });\r\n\t };\r\n\t CustomTriggerDialog.prototype.onClick = function (event) {\r\n\t var clickedOutsideDialog = event.target;\r\n\t var inside = false;\r\n\t do {\r\n\t if (clickedOutsideDialog === this.elementRef.nativeElement) {\r\n\t inside = true;\r\n\t }\r\n\t clickedOutsideDialog = clickedOutsideDialog.parentNode;\r\n\t } while (clickedOutsideDialog);\r\n\t if (inside) {\r\n\t this.clickedOutside = false;\r\n\t }\r\n\t else {\r\n\t this.clickedOutside = true;\r\n\t }\r\n\t };\r\n\t __decorate([\r\n\t core_1.ViewChild('container'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], CustomTriggerDialog.prototype, \"container\", void 0);\r\n\t CustomTriggerDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'sql-dialog',\r\n\t host: {\r\n\t '(document:click)': 'onClick($event)',\r\n\t },\r\n\t template: \"\\n\\n \\n\\n
{{ sqlReportType}} - {{selectedColumn}}
\\n
\\n\\n \\n \\n \\n\\n
\\n (Select All) \\n
\\n
\\n {{md.value[0].name}}\\n
\\n
\\n
\\n
\\n {{md.value[0].tableName}}\\n
\\n
\\n
\\n
\\n {{md.value[0].complexity}}\\n
\\n
\\n \\n
\\n
\\n {{md.value[0].linesOfCode}}\\n
\\n
\\n
\\n \\n
\\n \\n \\n
\\n
\\n\",\r\n\t providers: [pager_service_1.PagerService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef,\r\n\t core_1.ChangeDetectorRef,\r\n\t core_1.ViewContainerRef,\r\n\t material_1.MdDialog,\r\n\t core_1.ElementRef])\r\n\t ], CustomTriggerDialog);\r\n\t return CustomTriggerDialog;\r\n\t}());\r\n\texports.CustomTriggerDialog = CustomTriggerDialog;\r\n\tvar CustomTriggersFilterColumnName;\r\n\t(function (CustomTriggersFilterColumnName) {\r\n\t CustomTriggersFilterColumnName[CustomTriggersFilterColumnName[\"Name\"] = 0] = \"Name\";\r\n\t CustomTriggersFilterColumnName[CustomTriggersFilterColumnName[\"TableName\"] = 1] = \"TableName\";\r\n\t CustomTriggersFilterColumnName[CustomTriggersFilterColumnName[\"LOC\"] = 2] = \"LOC\";\r\n\t CustomTriggersFilterColumnName[CustomTriggersFilterColumnName[\"Complexity\"] = 3] = \"Complexity\";\r\n\t})(CustomTriggersFilterColumnName = exports.CustomTriggersFilterColumnName || (exports.CustomTriggersFilterColumnName = {}));\r\n\n\n/***/ },\n/* 451 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar reports_component_service_1 = __webpack_require__(441);\r\n\tvar SQLReportDialog = (function () {\r\n\t function SQLReportDialog(dialogRef, errorChangeDetectorRef, viewContainerRef, dialog, elementRef) {\r\n\t this.dialogRef = dialogRef;\r\n\t this.errorChangeDetectorRef = errorChangeDetectorRef;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.dialog = dialog;\r\n\t this.elementRef = elementRef;\r\n\t this.checkedAll = false;\r\n\t this.selectedColumn = \"\";\r\n\t this.columnDisplayName = \"\";\r\n\t this.selectedColumnGroupBy = \"\";\r\n\t this.hidePagination = false;\r\n\t this.disableApplyButton = false;\r\n\t this.sqlReportType = '';\r\n\t this.sqlList = [];\r\n\t this.clickedOutside = false;\r\n\t this.tempList = [];\r\n\t }\r\n\t SQLReportDialog.prototype.render = function (sqlReportDetails) {\r\n\t var _this = this;\r\n\t this.pagedItems = sqlReportDetails.pagedItems;\r\n\t this.finalSQLList = sqlReportDetails.finalSQLList;\r\n\t this.tempList = this.finalSQLList;\r\n\t this.checkedAll = sqlReportDetails.checkedAll;\r\n\t this.selectedColumn = sqlReportDetails.selectedColumn;\r\n\t this.sqlReportType = this.getDisplayName(sqlReportDetails.sqlReportType);\r\n\t this.selectedColumnGroupBy = this.getGroupByColumnName();\r\n\t if (this.finalSQLList != undefined && this.finalSQLList.length > 0) {\r\n\t this.finalSQLList.split(',').forEach(function (id) {\r\n\t _this.sqlList.push(Number(id));\r\n\t _this.pagedItems.filter(function (item) { return item.rowIndex == id; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t });\r\n\t }\r\n\t this.container.nativeElement.children[1].style.maxHeight = \"30vh\";\r\n\t this.container.nativeElement.children[1].style.overflow = \"auto\";\r\n\t this.container.nativeElement.children[2].style.float = \"right\";\r\n\t this.container.nativeElement.children[2].style.position = \"relative\";\r\n\t this.container.nativeElement.children[2].style.top = \"1vh\";\r\n\t };\r\n\t SQLReportDialog.prototype.applyModal = function () {\r\n\t var _this = this;\r\n\t if (this.sqlList.length > 0 && (this.pagedItems.filter(function (item) { return item.isChecked == true; }).length == 0)) {\r\n\t this.showErrorMessage();\r\n\t this.disableApplyButton = true;\r\n\t return;\r\n\t }\r\n\t this.disableApplyButton = false;\r\n\t this.sqlList = [];\r\n\t this.pagedItems.filter(function (item) { return item.isChecked == true; }).forEach(function (item) {\r\n\t _this.sqlList.push(item.rowIndex);\r\n\t });\r\n\t this.finalSQLList = this.sqlList.toString();\r\n\t this.dialogRef.close();\r\n\t };\r\n\t SQLReportDialog.prototype.checkboxFieldChange = function (event, colElem) {\r\n\t if (!event.checked) {\r\n\t this.checkedAll = false;\r\n\t }\r\n\t this.checkboxFieldChangedProcess(this.pagedItems, event, colElem);\r\n\t };\r\n\t SQLReportDialog.prototype.close = function () {\r\n\t this.checkedAll = false;\r\n\t this.finalSQLList = this.tempList.toString();\r\n\t this.dialogRef.close();\r\n\t };\r\n\t SQLReportDialog.prototype.toggleAll = function (event) {\r\n\t this.disableApplyButton = false;\r\n\t this.finalSQLList = this.setToggleValue(this.pagedItems);\r\n\t };\r\n\t SQLReportDialog.prototype.getDisplayName = function (sqlReportType) {\r\n\t if (sqlReportType == SQLReportType[SQLReportType.Views])\r\n\t return \"SQL Views\";\r\n\t else\r\n\t return \"SQL Stored Procedures\";\r\n\t };\r\n\t SQLReportDialog.prototype.getGroupByColumnName = function () {\r\n\t if (this.selectedColumn == SQLFilterColumnName[SQLFilterColumnName.Name])\r\n\t return \"name\";\r\n\t else if (this.selectedColumn == SQLFilterColumnName[SQLFilterColumnName.Complexity])\r\n\t return \"complexity\";\r\n\t else\r\n\t return \"linesOfCode\";\r\n\t };\r\n\t SQLReportDialog.prototype.checkboxFieldChangedProcess = function (items, event, colElem) {\r\n\t if (colElem == SQLFilterColumnName[SQLFilterColumnName.Name]) {\r\n\t return this.nameFieldProcess(items, event);\r\n\t }\r\n\t else if (colElem == SQLFilterColumnName[SQLFilterColumnName.Complexity]) {\r\n\t return this.complexityFieldProcess(items, event);\r\n\t }\r\n\t else if (colElem == SQLFilterColumnName[SQLFilterColumnName.LOC]) {\r\n\t return this.locFieldProcess(items, event);\r\n\t }\r\n\t };\r\n\t SQLReportDialog.prototype.nameFieldProcess = function (items, event) {\r\n\t var name = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t name = getRowDetails[0].name;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.name == name; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.name == name; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t SQLReportDialog.prototype.complexityFieldProcess = function (items, event) {\r\n\t var complexity = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t complexity = getRowDetails[0].complexity;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.complexity == complexity; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.complexity == complexity; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t SQLReportDialog.prototype.locFieldProcess = function (items, event) {\r\n\t var linesOfCode = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t linesOfCode = getRowDetails[0].linesOfCode;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.linesOfCode == linesOfCode; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.linesOfCode == linesOfCode; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t SQLReportDialog.prototype.setToggleValue = function (items) {\r\n\t var _this = this;\r\n\t var toggleFlag = this.checkedAll;\r\n\t items.forEach(function (item) {\r\n\t item.isChecked = toggleFlag;\r\n\t });\r\n\t this.sqlList = [];\r\n\t if (toggleFlag) {\r\n\t items.forEach(function (item) {\r\n\t _this.sqlList.push(Number(item.rowIndex));\r\n\t });\r\n\t }\r\n\t return this.sqlList.toString();\r\n\t };\r\n\t SQLReportDialog.prototype.showErrorMessage = function () {\r\n\t var _this = this;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.errorDialogRef = this.dialog.open(reports_component_service_1.ErrorMessageDialog, config);\r\n\t this.errorDialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.errorDialogRef = null;\r\n\t });\r\n\t };\r\n\t SQLReportDialog.prototype.onClick = function (event) {\r\n\t var clickedOutsideDialog = event.target;\r\n\t var inside = false;\r\n\t do {\r\n\t if (clickedOutsideDialog === this.elementRef.nativeElement) {\r\n\t inside = true;\r\n\t }\r\n\t clickedOutsideDialog = clickedOutsideDialog.parentNode;\r\n\t } while (clickedOutsideDialog);\r\n\t if (inside) {\r\n\t this.clickedOutside = false;\r\n\t }\r\n\t else {\r\n\t this.clickedOutside = true;\r\n\t }\r\n\t };\r\n\t __decorate([\r\n\t core_1.ViewChild('container'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], SQLReportDialog.prototype, \"container\", void 0);\r\n\t SQLReportDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'sql-dialog',\r\n\t host: {\r\n\t '(document:click)': 'onClick($event)',\r\n\t },\r\n\t template: \"\\n\\n \\n\\n
{{ sqlReportType}} - {{selectedColumn}}
\\n
\\n\\n \\n \\n \\n\\n
\\n (Select All) \\n
\\n
\\n {{md.value[0].name}}\\n
\\n
\\n\\n
\\n
\\n {{md.value[0].complexity}}\\n
\\n
\\n \\n
\\n
\\n {{md.value[0].linesOfCode}}\\n
\\n
\\n
\\n \\n
\\n \\n \\n
\\n
\\n\",\r\n\t providers: [pager_service_1.PagerService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef,\r\n\t core_1.ChangeDetectorRef,\r\n\t core_1.ViewContainerRef,\r\n\t material_1.MdDialog,\r\n\t core_1.ElementRef])\r\n\t ], SQLReportDialog);\r\n\t return SQLReportDialog;\r\n\t}());\r\n\texports.SQLReportDialog = SQLReportDialog;\r\n\tvar SQLReportType;\r\n\t(function (SQLReportType) {\r\n\t SQLReportType[SQLReportType[\"Views\"] = 0] = \"Views\";\r\n\t SQLReportType[SQLReportType[\"StoredProcedure\"] = 1] = \"StoredProcedure\";\r\n\t SQLReportType[SQLReportType[\"Trigger\"] = 2] = \"Trigger\";\r\n\t SQLReportType[SQLReportType[\"Function\"] = 3] = \"Function\";\r\n\t})(SQLReportType = exports.SQLReportType || (exports.SQLReportType = {}));\r\n\tvar SQLFilterColumnName;\r\n\t(function (SQLFilterColumnName) {\r\n\t SQLFilterColumnName[SQLFilterColumnName[\"Name\"] = 0] = \"Name\";\r\n\t SQLFilterColumnName[SQLFilterColumnName[\"LOC\"] = 1] = \"LOC\";\r\n\t SQLFilterColumnName[SQLFilterColumnName[\"Complexity\"] = 2] = \"Complexity\";\r\n\t})(SQLFilterColumnName = exports.SQLFilterColumnName || (exports.SQLFilterColumnName = {}));\r\n\n\n/***/ },\n/* 452 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n \\r\\n Altec Doc Link (APM) ({{pager?.totalItems}})\\r\\n \\r\\n Keep ({{ countKeep() }}/{{_apmObjects?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_apmObjects?.length}})\\r\\n\\t\\t\\r\\n \\r\\n
\\r\\n \\r\\n\\t\\t \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Document ID\\r\\n \\r\\n \\r\\n Document Type\\r\\n \\r\\n \\r\\n Documents\\r\\n \\r\\n \\r\\n Properties\\r\\n \\r\\n \\r\\n Routings\\r\\n \\r\\n \\r\\n Recipients\\r\\n \\r\\n \\r\\n KeepReviewed
{{ item?.documentID }}{{ item?.documentType }}{{ item?.documents }}{{ item?.properties }}{{ item?.routings }}{{ item?.recipients}}\\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n
\\r\\n
10\\\">\\r\\n View: \\r\\n \\r\\n
1\\\" style=\\\"display:inline-block\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 453 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar sites_service_1 = __webpack_require__(371);\r\n\tvar code_dialog_component_1 = __webpack_require__(454);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar configurators_pipe_1 = __webpack_require__(458);\r\n\tvar ConfiguratorsComponent = (function () {\r\n\t function ConfiguratorsComponent(pagerService, sitesService, dialog, viewContainerRef) {\r\n\t this.pagerService = pagerService;\r\n\t this.sitesService = sitesService;\r\n\t this.dialog = dialog;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this._configurators = [];\r\n\t this.onChange = new core_1.EventEmitter();\r\n\t this.freezeInputs = false;\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t this.keep = false;\r\n\t this.reviewed = false;\r\n\t this.search = '';\r\n\t this.selectedFilter = {};\r\n\t this.pager = {};\r\n\t this.pageSize = 10;\r\n\t this.filterConfiguratorPipe = new configurators_pipe_1.FilterConfiguratorPipe();\r\n\t }\r\n\t Object.defineProperty(ConfiguratorsComponent.prototype, \"data\", {\r\n\t get: function () { return this._configurators; },\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t if (data.configurators) {\r\n\t this._configurators = data.configurators;\r\n\t }\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t ConfiguratorsComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.onFilterCustom.subscribe(function (res) {\r\n\t _this.selectedFilter = res;\r\n\t _this.filterCustom(_this.selectedFilter, 1);\r\n\t });\r\n\t this.onAnalysisRefresh.subscribe(function (res) {\r\n\t _this.freezeInputs = res;\r\n\t });\r\n\t this.setPage(1);\r\n\t };\r\n\t ConfiguratorsComponent.prototype.filterCustom = function (filter, page) {\r\n\t var configurators = this._configurators;\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t configurators = this.setConfiguratorFilter(filter, configurators);\r\n\t this.pager = this.pagerService.getPager(configurators.length, page, this.pageSize);\r\n\t this.pagedItems = configurators.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t ConfiguratorsComponent.prototype.setConfiguratorFilter = function (filter, configurators) {\r\n\t configurators = this.pagerService.filter('custom', configurators, filter);\r\n\t return configurators;\r\n\t };\r\n\t ConfiguratorsComponent.prototype.filterConfigurator = function (query, page) {\r\n\t var configurators = this._configurators;\r\n\t if (query === '') {\r\n\t this.setPage(1);\r\n\t }\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t configurators = this.filterConfiguratorPipe.transform(configurators, query);\r\n\t configurators = this.setConfiguratorFilter(this.selectedFilter, configurators);\r\n\t this.pager = this.pagerService.getPager(configurators.length, page, this.pageSize);\r\n\t this.pagedItems = configurators.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t ConfiguratorsComponent.prototype.toggle = function () {\r\n\t if (this.opened) {\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t else {\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t };\r\n\t ConfiguratorsComponent.prototype.keepAll = function (checked) {\r\n\t this._configurators.forEach(function (configurator) {\r\n\t configurator.keep = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t ConfiguratorsComponent.prototype.reviewedAll = function (checked) {\r\n\t this._configurators.forEach(function (configurator) {\r\n\t configurator.reviewed = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t ConfiguratorsComponent.prototype.countReviewed = function () {\r\n\t var count = 0;\r\n\t this._configurators.forEach(function (configurator) {\r\n\t count += configurator.reviewed ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t ConfiguratorsComponent.prototype.countKeep = function () {\r\n\t var count = 0;\r\n\t this._configurators.forEach(function (configurator) {\r\n\t count += configurator.keep ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t ConfiguratorsComponent.prototype.setPage = function (page) {\r\n\t if (page < 1 || page > this.pager.totalPages) {\r\n\t return;\r\n\t }\r\n\t if (this.search !== '') {\r\n\t this.filterConfigurator(this.search, page);\r\n\t }\r\n\t else {\r\n\t this.pager = this.pagerService.getPager(this._configurators.length, page, this.pageSize);\r\n\t this.pagedItems = this._configurators.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t }\r\n\t };\r\n\t ConfiguratorsComponent.prototype.previewCode = function (url, name, language) {\r\n\t var _this = this;\r\n\t if (url) {\r\n\t this.sitesService.getFile(url + this.sas).subscribe(function (res) {\r\n\t var preview = {\r\n\t source: res.text(),\r\n\t language: language,\r\n\t downloadUrl: url + _this.sas,\r\n\t name: name\r\n\t };\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = _this.viewContainerRef;\r\n\t _this.codeDialogRef = _this.dialog.open(code_dialog_component_1.CodeDialog, config);\r\n\t _this.codeDialogRef.componentInstance.render(preview);\r\n\t _this.codeDialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.codeDialogRef = null;\r\n\t });\r\n\t });\r\n\t }\r\n\t };\r\n\t ConfiguratorsComponent.prototype.previewCodeDisabled = function (c) {\r\n\t if (c.sourceFilename && c.sourceFilename.cloudFilename) {\r\n\t return false;\r\n\t }\r\n\t return true;\r\n\t };\r\n\t ConfiguratorsComponent.prototype.previewCodeIcon = function (c) {\r\n\t if (this.previewCodeDisabled(c)) {\r\n\t return \"cloud_download\";\r\n\t }\r\n\t return \"cloud_download\";\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], ConfiguratorsComponent.prototype, \"onAnalysisRefresh\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], ConfiguratorsComponent.prototype, \"onFilterCustom\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", String)\r\n\t ], ConfiguratorsComponent.prototype, \"sas\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], ConfiguratorsComponent.prototype, \"data\", null);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], ConfiguratorsComponent.prototype, \"onChange\", void 0);\r\n\t ConfiguratorsComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'configurators',\r\n\t template: __webpack_require__(459),\r\n\t providers: [pager_service_1.PagerService, sites_service_1.SitesService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [pager_service_1.PagerService,\r\n\t sites_service_1.SitesService,\r\n\t material_1.MdDialog,\r\n\t core_1.ViewContainerRef])\r\n\t ], ConfiguratorsComponent);\r\n\t return ConfiguratorsComponent;\r\n\t}());\r\n\texports.ConfiguratorsComponent = ConfiguratorsComponent;\r\n\n\n/***/ },\n/* 454 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar Prism = __webpack_require__(455);\r\n\tvar CodeDialog = (function () {\r\n\t function CodeDialog(dialogRef) {\r\n\t this.dialogRef = dialogRef;\r\n\t }\r\n\t CodeDialog.prototype.render = function (code) {\r\n\t this.fileName = code.name;\r\n\t var language = this.setLanguage(code.language);\r\n\t var html = '';\r\n\t try {\r\n\t html = Prism.highlight(code.source, Prism.languages[language]);\r\n\t }\r\n\t catch (err) {\r\n\t html = code.source;\r\n\t console.warn(\"Prism failed to generate html\");\r\n\t }\r\n\t var elClass = 'language-' + language;\r\n\t var linesCount = html.split(/\\r\\n|z\\r|\\n/).length;\r\n\t var lineNumbersHTML = this.getLinesHTML(linesCount);\r\n\t this.prismjs.nativeElement.innerHTML = \"
\" + html + lineNumbersHTML + \"
\";\r\n\t this.downloadUrl = code.downloadUrl;\r\n\t };\r\n\t CodeDialog.prototype.close = function () {\r\n\t this.dialogRef.close();\r\n\t };\r\n\t CodeDialog.prototype.download = function () {\r\n\t if (this.downloadUrl) {\r\n\t window.open(this.downloadUrl, '_blank');\r\n\t }\r\n\t };\r\n\t CodeDialog.prototype.setLanguage = function (language) {\r\n\t var lang = '';\r\n\t switch (language) {\r\n\t case 'C#':\r\n\t lang = 'csharp';\r\n\t break;\r\n\t case 'VB.Net':\r\n\t lang = 'vb';\r\n\t break;\r\n\t case 'ABL':\r\n\t lang = 'abl';\r\n\t break;\r\n\t case 'SQL':\r\n\t lang = 'sql';\r\n\t break;\r\n\t case 'MARKDOWN':\r\n\t lang = 'markdown';\r\n\t default:\r\n\t lang = 'markup';\r\n\t break;\r\n\t }\r\n\t return lang;\r\n\t };\r\n\t CodeDialog.prototype.getLinesHTML = function (count) {\r\n\t var lines = '';\r\n\t for (var i = 0; i < count; i++) {\r\n\t lines += document.createElement('span').outerHTML;\r\n\t }\r\n\t lines += '';\r\n\t return lines;\r\n\t };\r\n\t __decorate([\r\n\t core_1.ViewChild('prismjs'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], CodeDialog.prototype, \"prismjs\", void 0);\r\n\t __decorate([\r\n\t core_1.ViewChild('container'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], CodeDialog.prototype, \"container\", void 0);\r\n\t CodeDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'code-dialog',\r\n\t template: __webpack_require__(456),\r\n\t styles: [__webpack_require__(457)]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef])\r\n\t ], CodeDialog);\r\n\t return CodeDialog;\r\n\t}());\r\n\texports.CodeDialog = CodeDialog;\r\n\n\n/***/ },\n/* 455 */\n/***/ function(module, exports) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {/* http://prismjs.com/download.html?themes=prism&languages=markup+css+clike+javascript+csharp+markdown+sql&plugins=line-numbers */\r\n\tvar _self = (typeof window !== 'undefined')\r\n\t\t? window // if in browser\r\n\t\t: (\r\n\t\t\t(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)\r\n\t\t\t? self // if in worker\r\n\t\t\t: {} // if in node js\r\n\t\t);\r\n\t\r\n\t/**\r\n\t * Prism: Lightweight, robust, elegant syntax highlighting\r\n\t * MIT license http://www.opensource.org/licenses/mit-license.php/\r\n\t * @author Lea Verou http://lea.verou.me\r\n\t */\r\n\t\r\n\tvar Prism = (function(){\r\n\t\r\n\t// Private helper vars\r\n\tvar lang = /\\blang(?:uage)?-(\\w+)\\b/i;\r\n\tvar uniqueId = 0;\r\n\t\r\n\tvar _ = _self.Prism = {\r\n\t\tutil: {\r\n\t\t\tencode: function (tokens) {\r\n\t\t\t\tif (tokens instanceof Token) {\r\n\t\t\t\t\treturn new Token(tokens.type, _.util.encode(tokens.content), tokens.alias);\r\n\t\t\t\t} else if (_.util.type(tokens) === 'Array') {\r\n\t\t\t\t\treturn tokens.map(_.util.encode);\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn tokens.replace(/&/g, '&').replace(/ text.length) {\r\n\t\t\t\t\t\t\t// Something went terribly wrong, ABORT, ABORT!\r\n\t\t\t\t\t\t\tbreak tokenloop;\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\tif (str instanceof Token) {\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\tpattern.lastIndex = 0;\r\n\t\r\n\t\t\t\t\t\tvar match = pattern.exec(str),\r\n\t\t\t\t\t\t delNum = 1;\r\n\t\r\n\t\t\t\t\t\t// Greedy patterns can override/remove up to two previously matched tokens\r\n\t\t\t\t\t\tif (!match && greedy && i != strarr.length - 1) {\r\n\t\t\t\t\t\t\tpattern.lastIndex = pos;\r\n\t\t\t\t\t\t\tmatch = pattern.exec(text);\r\n\t\t\t\t\t\t\tif (!match) {\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\t\tvar from = match.index + (lookbehind ? match[1].length : 0),\r\n\t\t\t\t\t\t\t to = match.index + match[0].length,\r\n\t\t\t\t\t\t\t k = i,\r\n\t\t\t\t\t\t\t p = pos;\r\n\t\r\n\t\t\t\t\t\t\tfor (var len = strarr.length; k < len && p < to; ++k) {\r\n\t\t\t\t\t\t\t\tp += (strarr[k].matchedStr || strarr[k]).length;\r\n\t\t\t\t\t\t\t\t// Move the index i to the element in strarr that is closest to from\r\n\t\t\t\t\t\t\t\tif (from >= p) {\r\n\t\t\t\t\t\t\t\t\t++i;\r\n\t\t\t\t\t\t\t\t\tpos = p;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\t\t/*\r\n\t\t\t\t\t\t\t * If strarr[i] is a Token, then the match starts inside another Token, which is invalid\r\n\t\t\t\t\t\t\t * If strarr[k - 1] is greedy we are in conflict with another greedy pattern\r\n\t\t\t\t\t\t\t */\r\n\t\t\t\t\t\t\tif (strarr[i] instanceof Token || strarr[k - 1].greedy) {\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\t\t// Number of tokens to delete and replace with the new match\r\n\t\t\t\t\t\t\tdelNum = k - i;\r\n\t\t\t\t\t\t\tstr = text.slice(pos, p);\r\n\t\t\t\t\t\t\tmatch.index -= pos;\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\tif (!match) {\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\tif(lookbehind) {\r\n\t\t\t\t\t\t\tlookbehindLength = match[1].length;\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\tvar from = match.index + lookbehindLength,\r\n\t\t\t\t\t\t match = match[0].slice(lookbehindLength),\r\n\t\t\t\t\t\t to = from + match.length,\r\n\t\t\t\t\t\t before = str.slice(0, from),\r\n\t\t\t\t\t\t after = str.slice(to);\r\n\t\r\n\t\t\t\t\t\tvar args = [i, delNum];\r\n\t\r\n\t\t\t\t\t\tif (before) {\r\n\t\t\t\t\t\t\targs.push(before);\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\tvar wrapped = new Token(token, inside? _.tokenize(match, inside) : match, alias, match, greedy);\r\n\t\r\n\t\t\t\t\t\targs.push(wrapped);\r\n\t\r\n\t\t\t\t\t\tif (after) {\r\n\t\t\t\t\t\t\targs.push(after);\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\tArray.prototype.splice.apply(strarr, args);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\r\n\t\t\treturn strarr;\r\n\t\t},\r\n\t\r\n\t\thooks: {\r\n\t\t\tall: {},\r\n\t\r\n\t\t\tadd: function (name, callback) {\r\n\t\t\t\tvar hooks = _.hooks.all;\r\n\t\r\n\t\t\t\thooks[name] = hooks[name] || [];\r\n\t\r\n\t\t\t\thooks[name].push(callback);\r\n\t\t\t},\r\n\t\r\n\t\t\trun: function (name, env) {\r\n\t\t\t\tvar callbacks = _.hooks.all[name];\r\n\t\r\n\t\t\t\tif (!callbacks || !callbacks.length) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfor (var i=0, callback; callback = callbacks[i++];) {\r\n\t\t\t\t\tcallback(env);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\tvar Token = _.Token = function(type, content, alias, matchedStr, greedy) {\r\n\t\tthis.type = type;\r\n\t\tthis.content = content;\r\n\t\tthis.alias = alias;\r\n\t\t// Copy of the full string this token was created from\r\n\t\tthis.matchedStr = matchedStr || null;\r\n\t\tthis.greedy = !!greedy;\r\n\t};\r\n\t\r\n\tToken.stringify = function(o, language, parent) {\r\n\t\tif (typeof o == 'string') {\r\n\t\t\treturn o;\r\n\t\t}\r\n\t\r\n\t\tif (_.util.type(o) === 'Array') {\r\n\t\t\treturn o.map(function(element) {\r\n\t\t\t\treturn Token.stringify(element, language, o);\r\n\t\t\t}).join('');\r\n\t\t}\r\n\t\r\n\t\tvar env = {\r\n\t\t\ttype: o.type,\r\n\t\t\tcontent: Token.stringify(o.content, language, parent),\r\n\t\t\ttag: 'span',\r\n\t\t\tclasses: ['token', o.type],\r\n\t\t\tattributes: {},\r\n\t\t\tlanguage: language,\r\n\t\t\tparent: parent\r\n\t\t};\r\n\t\r\n\t\tif (env.type == 'comment') {\r\n\t\t\tenv.attributes['spellcheck'] = 'true';\r\n\t\t}\r\n\t\r\n\t\tif (o.alias) {\r\n\t\t\tvar aliases = _.util.type(o.alias) === 'Array' ? o.alias : [o.alias];\r\n\t\t\tArray.prototype.push.apply(env.classes, aliases);\r\n\t\t}\r\n\t\r\n\t\t_.hooks.run('wrap', env);\r\n\t\r\n\t\tvar attributes = '';\r\n\t\r\n\t\tfor (var name in env.attributes) {\r\n\t\t\tattributes += (attributes ? ' ' : '') + name + '=\"' + (env.attributes[name] || '') + '\"';\r\n\t\t}\r\n\t\r\n\t\treturn '<' + env.tag + ' class=\"' + env.classes.join(' ') + '\"' + (attributes ? ' ' + attributes : '') + '>' + env.content + '';\r\n\t\r\n\t};\r\n\t\r\n\tif (!_self.document) {\r\n\t\tif (!_self.addEventListener) {\r\n\t\t\t// in Node.js\r\n\t\t\treturn _self.Prism;\r\n\t\t}\r\n\t \t// In worker\r\n\t\t_self.addEventListener('message', function(evt) {\r\n\t\t\tvar message = JSON.parse(evt.data),\r\n\t\t\t lang = message.language,\r\n\t\t\t code = message.code,\r\n\t\t\t immediateClose = message.immediateClose;\r\n\t\r\n\t\t\t_self.postMessage(_.highlight(code, _.languages[lang], lang));\r\n\t\t\tif (immediateClose) {\r\n\t\t\t\t_self.close();\r\n\t\t\t}\r\n\t\t}, false);\r\n\t\r\n\t\treturn _self.Prism;\r\n\t}\r\n\t\r\n\t//Get current script and highlight\r\n\tvar script = document.currentScript || [].slice.call(document.getElementsByTagName(\"script\")).pop();\r\n\t\r\n\tif (script) {\r\n\t\t_.filename = script.src;\r\n\t\r\n\t\tif (document.addEventListener && !script.hasAttribute('data-manual')) {\r\n\t\t\tif(document.readyState !== \"loading\") {\r\n\t\t\t\tif (window.requestAnimationFrame) {\r\n\t\t\t\t\twindow.requestAnimationFrame(_.highlightAll);\r\n\t\t\t\t} else {\r\n\t\t\t\t\twindow.setTimeout(_.highlightAll, 16);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tdocument.addEventListener('DOMContentLoaded', _.highlightAll);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\treturn _self.Prism;\r\n\t\r\n\t})();\r\n\t\r\n\tif (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Prism;\r\n\t}\r\n\t\r\n\t// hack for components to work correctly in node.js\r\n\tif (typeof global !== 'undefined') {\r\n\t\tglobal.Prism = Prism;\r\n\t}\r\n\t;\r\n\tPrism.languages.markup = {\r\n\t\t'comment': //,\r\n\t\t'prolog': /<\\?[\\w\\W]+?\\?>/,\r\n\t\t'doctype': //i,\r\n\t\t'cdata': //i,\r\n\t\t'tag': {\r\n\t\t\tpattern: /<\\/?(?!\\d)[^\\s>\\/=$<]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\\\1|\\\\?(?!\\1)[\\w\\W])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/i,\r\n\t\t\tinside: {\r\n\t\t\t\t'tag': {\r\n\t\t\t\t\tpattern: /^<\\/?[^\\s>\\/]+/i,\r\n\t\t\t\t\tinside: {\r\n\t\t\t\t\t\t'punctuation': /^<\\/?/,\r\n\t\t\t\t\t\t'namespace': /^[^\\s>\\/:]+:/\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t'attr-value': {\r\n\t\t\t\t\tpattern: /=(?:('|\")[\\w\\W]*?(\\1)|[^\\s>]+)/i,\r\n\t\t\t\t\tinside: {\r\n\t\t\t\t\t\t'punctuation': /[=>\"']/\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t'punctuation': /\\/?>/,\r\n\t\t\t\t'attr-name': {\r\n\t\t\t\t\tpattern: /[^\\s>\\/]+/,\r\n\t\t\t\t\tinside: {\r\n\t\t\t\t\t\t'namespace': /^[^\\s>\\/:]+:/\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\r\n\t\t\t}\r\n\t\t},\r\n\t\t'entity': /&#?[\\da-z]{1,8};/i\r\n\t};\r\n\t\r\n\t// Plugin to make entity title show the real entity, idea by Roman Komarov\r\n\tPrism.hooks.add('wrap', function(env) {\r\n\t\r\n\t\tif (env.type === 'entity') {\r\n\t\t\tenv.attributes['title'] = env.content.replace(/&/, '&');\r\n\t\t}\r\n\t});\r\n\t\r\n\tPrism.languages.xml = Prism.languages.markup;\r\n\tPrism.languages.html = Prism.languages.markup;\r\n\tPrism.languages.mathml = Prism.languages.markup;\r\n\tPrism.languages.svg = Prism.languages.markup;\r\n\t\r\n\tPrism.languages.css = {\r\n\t\t'comment': /\\/\\*[\\w\\W]*?\\*\\//,\r\n\t\t'atrule': {\r\n\t\t\tpattern: /@[\\w-]+?.*?(;|(?=\\s*\\{))/i,\r\n\t\t\tinside: {\r\n\t\t\t\t'rule': /@[\\w-]+/\r\n\t\t\t\t// See rest below\r\n\t\t\t}\r\n\t\t},\r\n\t\t'url': /url\\((?:([\"'])(\\\\(?:\\r\\n|[\\w\\W])|(?!\\1)[^\\\\\\r\\n])*\\1|.*?)\\)/i,\r\n\t\t'selector': /[^\\{\\}\\s][^\\{\\};]*?(?=\\s*\\{)/,\r\n\t\t'string': {\r\n\t\t\tpattern: /(\"|')(\\\\(?:\\r\\n|[\\w\\W])|(?!\\1)[^\\\\\\r\\n])*\\1/,\r\n\t\t\tgreedy: true\r\n\t\t},\r\n\t\t'property': /(\\b|\\B)[\\w-]+(?=\\s*:)/i,\r\n\t\t'important': /\\B!important\\b/i,\r\n\t\t'function': /[-a-z0-9]+(?=\\()/i,\r\n\t\t'punctuation': /[(){};:]/\r\n\t};\r\n\t\r\n\tPrism.languages.css['atrule'].inside.rest = Prism.util.clone(Prism.languages.css);\r\n\t\r\n\tif (Prism.languages.markup) {\r\n\t\tPrism.languages.insertBefore('markup', 'tag', {\r\n\t\t\t'style': {\r\n\t\t\t\tpattern: /()[\\w\\W]*?(?=<\\/style>)/i,\r\n\t\t\t\tlookbehind: true,\r\n\t\t\t\tinside: Prism.languages.css,\r\n\t\t\t\talias: 'language-css'\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\t\tPrism.languages.insertBefore('inside', 'attr-value', {\r\n\t\t\t'style-attr': {\r\n\t\t\t\tpattern: /\\s*style=(\"|').*?\\1/i,\r\n\t\t\t\tinside: {\r\n\t\t\t\t\t'attr-name': {\r\n\t\t\t\t\t\tpattern: /^\\s*style/i,\r\n\t\t\t\t\t\tinside: Prism.languages.markup.tag.inside\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'punctuation': /^\\s*=\\s*['\"]|['\"]\\s*$/,\r\n\t\t\t\t\t'attr-value': {\r\n\t\t\t\t\t\tpattern: /.+/i,\r\n\t\t\t\t\t\tinside: Prism.languages.css\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\talias: 'language-css'\r\n\t\t\t}\r\n\t\t}, Prism.languages.markup.tag);\r\n\t};\r\n\tPrism.languages.clike = {\r\n\t\t'comment': [\r\n\t\t\t{\r\n\t\t\t\tpattern: /(^|[^\\\\])\\/\\*[\\w\\W]*?\\*\\//,\r\n\t\t\t\tlookbehind: true\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpattern: /(^|[^\\\\:])\\/\\/.*/,\r\n\t\t\t\tlookbehind: true\r\n\t\t\t}\r\n\t\t],\r\n\t\t'string': {\r\n\t\t\tpattern: /([\"'])(\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\r\n\t\t\tgreedy: true\r\n\t\t},\r\n\t\t'class-name': {\r\n\t\t\tpattern: /((?:\\b(?:class|interface|extends|implements|trait|instanceof|new)\\s+)|(?:catch\\s+\\())[a-z0-9_\\.\\\\]+/i,\r\n\t\t\tlookbehind: true,\r\n\t\t\tinside: {\r\n\t\t\t\tpunctuation: /(\\.|\\\\)/\r\n\t\t\t}\r\n\t\t},\r\n\t\t'keyword': /\\b(if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\\b/,\r\n\t\t'boolean': /\\b(true|false)\\b/,\r\n\t\t'function': /[a-z0-9_]+(?=\\()/i,\r\n\t\t'number': /\\b-?(?:0x[\\da-f]+|\\d*\\.?\\d+(?:e[+-]?\\d+)?)\\b/i,\r\n\t\t'operator': /--?|\\+\\+?|!=?=?|<=?|>=?|==?=?|&&?|\\|\\|?|\\?|\\*|\\/|~|\\^|%/,\r\n\t\t'punctuation': /[{}[\\];(),.:]/\r\n\t};\r\n\t\r\n\tPrism.languages.javascript = Prism.languages.extend('clike', {\r\n\t\t'keyword': /\\b(as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\\b/,\r\n\t\t'number': /\\b-?(0x[\\dA-Fa-f]+|0b[01]+|0o[0-7]+|\\d*\\.?\\d+([Ee][+-]?\\d+)?|NaN|Infinity)\\b/,\r\n\t\t// Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\r\n\t\t'function': /[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*(?=\\()/i,\r\n\t\t'operator': /--?|\\+\\+?|!=?=?|<=?|>=?|==?=?|&&?|\\|\\|?|\\?|\\*\\*?|\\/|~|\\^|%|\\.{3}/\r\n\t});\r\n\t\r\n\tPrism.languages.insertBefore('javascript', 'keyword', {\r\n\t\t'regex': {\r\n\t\t\tpattern: /(^|[^/])\\/(?!\\/)(\\[.+?]|\\\\.|[^/\\\\\\r\\n])+\\/[gimyu]{0,5}(?=\\s*($|[\\r\\n,.;})]))/,\r\n\t\t\tlookbehind: true,\r\n\t\t\tgreedy: true\r\n\t\t}\r\n\t});\r\n\t\r\n\tPrism.languages.insertBefore('javascript', 'string', {\r\n\t\t'template-string': {\r\n\t\t\tpattern: /`(?:\\\\\\\\|\\\\?[^\\\\])*?`/,\r\n\t\t\tgreedy: true,\r\n\t\t\tinside: {\r\n\t\t\t\t'interpolation': {\r\n\t\t\t\t\tpattern: /\\$\\{[^}]+\\}/,\r\n\t\t\t\t\tinside: {\r\n\t\t\t\t\t\t'interpolation-punctuation': {\r\n\t\t\t\t\t\t\tpattern: /^\\$\\{|\\}$/,\r\n\t\t\t\t\t\t\talias: 'punctuation'\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\trest: Prism.languages.javascript\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t'string': /[\\s\\S]+/\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\t\r\n\tif (Prism.languages.markup) {\r\n\t\tPrism.languages.insertBefore('markup', 'tag', {\r\n\t\t\t'script': {\r\n\t\t\t\tpattern: /()[\\w\\W]*?(?=<\\/script>)/i,\r\n\t\t\t\tlookbehind: true,\r\n\t\t\t\tinside: Prism.languages.javascript,\r\n\t\t\t\talias: 'language-javascript'\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\t\r\n\tPrism.languages.js = Prism.languages.javascript;\r\n\tPrism.languages.csharp = Prism.languages.extend('clike', {\r\n\t\t'keyword': /\\b(abstract|as|async|await|base|bool|break|byte|case|catch|char|checked|class|const|continue|decimal|default|delegate|do|double|else|enum|event|explicit|extern|false|finally|fixed|float|for|foreach|goto|if|implicit|in|int|interface|internal|is|lock|long|namespace|new|null|object|operator|out|override|params|private|protected|public|readonly|ref|return|sbyte|sealed|short|sizeof|stackalloc|static|string|struct|switch|this|throw|true|try|typeof|uint|ulong|unchecked|unsafe|ushort|using|virtual|void|volatile|while|add|alias|ascending|async|await|descending|dynamic|from|get|global|group|into|join|let|orderby|partial|remove|select|set|value|var|where|yield)\\b/,\r\n\t\t'string': [\r\n\t\t\t/@(\"|')(\\1\\1|\\\\\\1|\\\\?(?!\\1)[\\s\\S])*\\1/,\r\n\t\t\t/(\"|')(\\\\?.)*?\\1/\r\n\t\t],\r\n\t\t'number': /\\b-?(0x[\\da-f]+|\\d*\\.?\\d+f?)\\b/i\r\n\t});\r\n\t\r\n\tPrism.languages.insertBefore('csharp', 'keyword', {\r\n\t\t'generic-method': {\r\n\t\t\tpattern: /[a-z0-9_]+\\s*<[^>\\r\\n]+?>\\s*(?=\\()/i,\r\n\t\t\talias: 'function',\r\n\t\t\tinside: {\r\n\t\t\t\tkeyword: Prism.languages.csharp.keyword,\r\n\t\t\t\tpunctuation: /[<>(),.:]/\r\n\t\t\t}\r\n\t\t},\r\n\t\t'preprocessor': {\r\n\t\t\tpattern: /(^\\s*)#.*/m,\r\n\t\t\tlookbehind: true,\r\n\t\t\talias: 'property',\r\n\t\t\tinside: {\r\n\t\t\t\t// highlight preprocessor directives as keywords\r\n\t\t\t\t'directive': {\r\n\t\t\t\t\tpattern: /(\\s*#)\\b(define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\\b/,\r\n\t\t\t\t\tlookbehind: true,\r\n\t\t\t\t\talias: 'keyword'\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\t\r\n\tPrism.languages.markdown = Prism.languages.extend('markup', {});\r\n\tPrism.languages.insertBefore('markdown', 'prolog', {\r\n\t\t'blockquote': {\r\n\t\t\t// > ...\r\n\t\t\tpattern: /^>(?:[\\t ]*>)*/m,\r\n\t\t\talias: 'punctuation'\r\n\t\t},\r\n\t\t'code': [\r\n\t\t\t{\r\n\t\t\t\t// Prefixed by 4 spaces or 1 tab\r\n\t\t\t\tpattern: /^(?: {4}|\\t).+/m,\r\n\t\t\t\talias: 'keyword'\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t// `code`\r\n\t\t\t\t// ``code``\r\n\t\t\t\tpattern: /``.+?``|`[^`\\n]+`/,\r\n\t\t\t\talias: 'keyword'\r\n\t\t\t}\r\n\t\t],\r\n\t\t'title': [\r\n\t\t\t{\r\n\t\t\t\t// title 1\r\n\t\t\t\t// =======\r\n\t\r\n\t\t\t\t// title 2\r\n\t\t\t\t// -------\r\n\t\t\t\tpattern: /\\w+.*(?:\\r?\\n|\\r)(?:==+|--+)/,\r\n\t\t\t\talias: 'important',\r\n\t\t\t\tinside: {\r\n\t\t\t\t\tpunctuation: /==+$|--+$/\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t// # title 1\r\n\t\t\t\t// ###### title 6\r\n\t\t\t\tpattern: /(^\\s*)#+.+/m,\r\n\t\t\t\tlookbehind: true,\r\n\t\t\t\talias: 'important',\r\n\t\t\t\tinside: {\r\n\t\t\t\t\tpunctuation: /^#+|#+$/\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t],\r\n\t\t'hr': {\r\n\t\t\t// ***\r\n\t\t\t// ---\r\n\t\t\t// * * *\r\n\t\t\t// -----------\r\n\t\t\tpattern: /(^\\s*)([*-])([\\t ]*\\2){2,}(?=\\s*$)/m,\r\n\t\t\tlookbehind: true,\r\n\t\t\talias: 'punctuation'\r\n\t\t},\r\n\t\t'list': {\r\n\t\t\t// * item\r\n\t\t\t// + item\r\n\t\t\t// - item\r\n\t\t\t// 1. item\r\n\t\t\tpattern: /(^\\s*)(?:[*+-]|\\d+\\.)(?=[\\t ].)/m,\r\n\t\t\tlookbehind: true,\r\n\t\t\talias: 'punctuation'\r\n\t\t},\r\n\t\t'url-reference': {\r\n\t\t\t// [id]: http://example.com \"Optional title\"\r\n\t\t\t// [id]: http://example.com 'Optional title'\r\n\t\t\t// [id]: http://example.com (Optional title)\r\n\t\t\t// [id]: \"Optional title\"\r\n\t\t\tpattern: /!?\\[[^\\]]+\\]:[\\t ]+(?:\\S+|<(?:\\\\.|[^>\\\\])+>)(?:[\\t ]+(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\)))?/,\r\n\t\t\tinside: {\r\n\t\t\t\t'variable': {\r\n\t\t\t\t\tpattern: /^(!?\\[)[^\\]]+/,\r\n\t\t\t\t\tlookbehind: true\r\n\t\t\t\t},\r\n\t\t\t\t'string': /(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\))$/,\r\n\t\t\t\t'punctuation': /^[\\[\\]!:]|[<>]/\r\n\t\t\t},\r\n\t\t\talias: 'url'\r\n\t\t},\r\n\t\t'bold': {\r\n\t\t\t// **strong**\r\n\t\t\t// __strong__\r\n\t\r\n\t\t\t// Allow only one line break\r\n\t\t\tpattern: /(^|[^\\\\])(\\*\\*|__)(?:(?:\\r?\\n|\\r)(?!\\r?\\n|\\r)|.)+?\\2/,\r\n\t\t\tlookbehind: true,\r\n\t\t\tinside: {\r\n\t\t\t\t'punctuation': /^\\*\\*|^__|\\*\\*$|__$/\r\n\t\t\t}\r\n\t\t},\r\n\t\t'italic': {\r\n\t\t\t// *em*\r\n\t\t\t// _em_\r\n\t\r\n\t\t\t// Allow only one line break\r\n\t\t\tpattern: /(^|[^\\\\])([*_])(?:(?:\\r?\\n|\\r)(?!\\r?\\n|\\r)|.)+?\\2/,\r\n\t\t\tlookbehind: true,\r\n\t\t\tinside: {\r\n\t\t\t\t'punctuation': /^[*_]|[*_]$/\r\n\t\t\t}\r\n\t\t},\r\n\t\t'url': {\r\n\t\t\t// [example](http://example.com \"Optional title\")\r\n\t\t\t// [example] [id]\r\n\t\t\tpattern: /!?\\[[^\\]]+\\](?:\\([^\\s)]+(?:[\\t ]+\"(?:\\\\.|[^\"\\\\])*\")?\\)| ?\\[[^\\]\\n]*\\])/,\r\n\t\t\tinside: {\r\n\t\t\t\t'variable': {\r\n\t\t\t\t\tpattern: /(!?\\[)[^\\]]+(?=\\]$)/,\r\n\t\t\t\t\tlookbehind: true\r\n\t\t\t\t},\r\n\t\t\t\t'string': {\r\n\t\t\t\t\tpattern: /\"(?:\\\\.|[^\"\\\\])*\"(?=\\)$)/\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\t\r\n\tPrism.languages.markdown['bold'].inside['url'] = Prism.util.clone(Prism.languages.markdown['url']);\r\n\tPrism.languages.markdown['italic'].inside['url'] = Prism.util.clone(Prism.languages.markdown['url']);\r\n\tPrism.languages.markdown['bold'].inside['italic'] = Prism.util.clone(Prism.languages.markdown['italic']);\r\n\tPrism.languages.markdown['italic'].inside['bold'] = Prism.util.clone(Prism.languages.markdown['bold']);\r\n\tPrism.languages.sql= {\r\n\t\t'comment': {\r\n\t\t\tpattern: /(^|[^\\\\])(?:\\/\\*[\\w\\W]*?\\*\\/|(?:--|\\/\\/|#).*)/,\r\n\t\t\tlookbehind: true\r\n\t\t},\r\n\t\t'string' : {\r\n\t\t\tpattern: /(^|[^@\\\\])(\"|')(?:\\\\?[\\s\\S])*?\\2/,\r\n\t\t\tlookbehind: true\r\n\t\t},\r\n\t\t'variable': /@[\\w.$]+|@(\"|'|`)(?:\\\\?[\\s\\S])+?\\1/,\r\n\t\t'function': /\\b(?:COUNT|SUM|AVG|MIN|MAX|FIRST|LAST|UCASE|LCASE|MID|LEN|ROUND|NOW|FORMAT)(?=\\s*\\()/i, // Should we highlight user defined functions too?\r\n\t\t'keyword': /\\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR VARYING|CHARACTER (?:SET|VARYING)|CHARSET|CHECK|CHECKPOINT|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMN|COLUMNS|COMMENT|COMMIT|COMMITTED|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS|CONTAINSTABLE|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|DATA(?:BASES?)?|DATE(?:TIME)?|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITER(?:S)?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE(?: PRECISION)?|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE KEY|ELSE|ENABLE|ENCLOSED BY|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPE(?:D BY)?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|IDENTITY(?:_INSERT|COL)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTO|INVOKER|ISOLATION LEVEL|JOIN|KEYS?|KILL|LANGUAGE SQL|LAST|LEFT|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MODIFIES SQL DATA|MODIFY|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL(?: CHAR VARYING| CHARACTER(?: VARYING)?| VARCHAR)?|NATURAL|NCHAR(?: VARCHAR)?|NEXT|NO(?: SQL|CHECK|CYCLE)?|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READ(?:S SQL DATA|TEXT)?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEATABLE|REPLICATION|REQUIRE|RESTORE|RESTRICT|RETURNS?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE MODE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|START(?:ING BY)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED BY|TEXT(?:SIZE)?|THEN|TIMESTAMP|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNPIVOT|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?)\\b/i,\r\n\t\t'boolean': /\\b(?:TRUE|FALSE|NULL)\\b/i,\r\n\t\t'number': /\\b-?(?:0x)?\\d*\\.?[\\da-f]+\\b/,\r\n\t\t'operator': /[-+*\\/=%^~]|&&?|\\|?\\||!=?|<(?:=>?|<|>)?|>[>=]?|\\b(?:AND|BETWEEN|IN|LIKE|NOT|OR|IS|DIV|REGEXP|RLIKE|SOUNDS LIKE|XOR)\\b/i,\r\n\t\t'punctuation': /[;[\\]()`,.]/\r\n\t};\r\n\t\r\n\tPrism.languages.vb = {\r\n\t 'keyword': /\\b(AddHandler|AddressOf|AndAlso|Alias|And|Ansi|As|Assembly|Auto|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|CBool|CByte|CChar|CDate|CDec|CDbl|Char|CInt|Class|CLng|CObj|Const|CShort|CSng|CStr|CType|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else|ElseIf|End|Enum| Erase|Error|Event|Exit|False|Finally|For|Friend|Function|Get|GetType|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|Let|Lib|Like|Long|Loop|Me|Mod|Module|MustInherit|MustOverride|MyBase|MyClass|Namespace|New|Next|Not|Nothing|NotInheritable|NotOverridable|Object|On|Option|Optional|Or|OrElse|Overloads|Overridable|Overrides|ParamArray|Preserve|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|REM|RemoveHandler|Resume|Return|Select|Set|Shadows|Shared|Short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|True|Try|TypeOf|Unicode|Until|Variant|When|While|With|WithEvents|WriteOnly|Xor)\\b/,\r\n\t 'comment': /('.*$)|(^\\s*REM.*)/gm,\r\n\t 'string': {\r\n\t\t\tpattern: /([\"'])(\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\r\n\t\t\tgreedy: true\r\n\t\t},\r\n\t 'number': /\\b-?(0x[\\da-f]+|\\d*\\.?\\d+f?)\\b/i\r\n\t};\r\n\t\r\n\t\t\tvar ablKeyWords = 'ABSOLUTE|ABS|ABSO|ABSOL|ABSOLU|ABSOLUT|ACCELERATOR|ACCUM|ACCUMULATE|ACCUM|ACCUMU|ACCUMUL|ACCUMULA|ACCUMULAT|ACTIVE-FORM|ACTIVE-WINDOW|ADD|ADD-BUFFER|ADD-CALC-COLUMN|ADD-COLUMNS-FROM|ADD-EVENTS-PROCEDURE|ADD-FIELDS-FROM|ADD-FIRST|ADD-INDEX-FIELD|ADD-LAST|ADD-LIKE-COLUMN|ADD-LIKE-FIELD|ADD-LIKE-INDEX|ADD-NEW-FIELD|ADD-NEW-INDEX|ADD-SCHEMA-LOCATION|ADD-SUPER-PROCEDURE|ADM-DATA|ADVISE|ALERT-BOX|ALIAS|ALL|ALLOW-COLUMN-SEARCHING|ALLOW-REPLICATION|ALTER|ALWAYS-ON-TOP|AMBIGUOUS|AMBIG|AMBIGU|AMBIGUO|AMBIGUOU|ANALYZE|ANALYZ|AND|ANSI-ONLY|ANY|ANYWHERE|APPEND|APPL-ALERT-BOXES|APPL-ALERT|APPL-ALERT-|APPL-ALERT-B|APPL-ALERT-BO|APPL-ALERT-BOX|APPL-ALERT-BOXE|APPL-CONTEXT-ID|APPLICATION|APPLY|APPSERVER-INFO|APPSERVER-PASSWORD|APPSERVER-USERID|ARRAY-MESSAGE|AS|ASC|ASCENDING|ASCE|ASCEN|ASCEND|ASCENDI|ASCENDIN|ASK-OVERWRITE|ASSEMBLY|ASSIGN|ASYNCHRONOUS|ASYNC-REQUEST-COUNT|ASYNC-REQUEST-HANDLE|AT|ATTACHED-PAIRLIST|ATTR-SPACE|ATTR|ATTRI|ATTRIB|ATTRIBU|ATTRIBUT|AUDIT-CONTROL|AUDIT-ENABLED|AUDIT-EVENT-CONTEXT|AUDIT-POLICY|AUTHENTICATION-FAILED|AUTHORIZATION|AUTO-COMPLETION|AUTO-COMP|AUTO-COMPL|AUTO-COMPLE|AUTO-COMPLET|AUTO-COMPLETI|AUTO-COMPLETIO|AUTO-ENDKEY|AUTO-END-KEY|AUTO-GO|AUTO-INDENT|AUTO-IND|AUTO-INDE|AUTO-INDEN|AUTOMATIC|AUTO-RESIZE|AUTO-RETURN|AUTO-RET|AUTO-RETU|AUTO-RETUR|AUTO-SYNCHRONIZE|AUTO-ZAP|AUTO-Z|AUTO-ZA|AVAILABLE|AVAIL|AVAILA|AVAILAB|AVAILABL|AVAILABLE-FORMATS|AVERAGE|AVE|AVER|AVERA|AVERAG|AVG' +\r\n\t 'BACKGROUND|BACK|BACKG|BACKGR|BACKGRO|BACKGROU|BACKGROUN|BACKWARDS|BACKWARD|BASE64-DECODE|BASE64-ENCODE|BASE-ADE|BASE-KEY|BATCH-MODE|BATCH|BATCH-|BATCH-M|BATCH-MO|BATCH-MOD|BATCH-SIZE|BEFORE-HIDE|BEFORE-H|BEFORE-HI|BEFORE-HID|BEGIN-EVENT-GROUP|BEGINS|BELL|BETWEEN|BGCOLOR|BGC|BGCO|BGCOL|BGCOLO|BIG-ENDIAN|BINARY|BIND|BIND-WHERE|BLANK|BLOCK-ITERATION-DISPLAY|BORDER-BOTTOM-CHARS|BORDER-B|BORDER-BO|BORDER-BOT|BORDER-BOTT|BORDER-BOTTO|BORDER-BOTTOM-PIXELS|BORDER-BOTTOM-P|BORDER-BOTTOM-PI|BORDER-BOTTOM-PIX|BORDER-BOTTOM-PIXE|BORDER-BOTTOM-PIXEL|BORDER-LEFT-CHARS|BORDER-L|BORDER-LE|BORDER-LEF|BORDER-LEFT|BORDER-LEFT-|BORDER-LEFT-C|BORDER-LEFT-CH|BORDER-LEFT-CHA|BORDER-LEFT-CHAR|BORDER-LEFT-PIXELS|BORDER-LEFT-P|BORDER-LEFT-PI|BORDER-LEFT-PIX|BORDER-LEFT-PIXE|BORDER-LEFT-PIXEL|BORDER-RIGHT-CHARS|BORDER-R|BORDER-RI|BORDER-RIG|BORDER-RIGH|BORDER-RIGHT|BORDER-RIGHT-|BORDER-RIGHT-C|BORDER-RIGHT-CH|BORDER-RIGHT-CHA|BORDER-RIGHT-CHAR|BORDER-RIGHT-PIXELS|BORDER-RIGHT-P|BORDER-RIGHT-PI|BORDER-RIGHT-PIX|BORDER-RIGHT-PIXE|BORDER-RIGHT-PIXEL|BORDER-TOP-CHARS|BORDER-T|BORDER-TO|BORDER-TOP|BORDER-TOP-|BORDER-TOP-C|BORDER-TOP-CH|BORDER-TOP-CHA|BORDER-TOP-CHAR|BORDER-TOP-PIXELS|BORDER-TOP-P|BORDER-TOP-PI|BORDER-TOP-PIX|BORDER-TOP-PIXE|BORDER-TOP-PIXEL|BOX|BOX-SELECTABLE|BOX-SELECT|BOX-SELECTA|BOX-SELECTAB|BOX-SELECTABL|BREAK|BROWSE|BUFFER|BUFFER-CHARS|BUFFER-COMPARE|BUFFER-COPY|BUFFER-CREATE|BUFFER-DELETE|BUFFER-FIELD|BUFFER-HANDLE|BUFFER-LINES|BUFFER-NAME|BUFFER-RELEASE|BUFFER-VALUE|BUTTON|BUTTONS|BUTTON|BY|BY-POINTER|BY-VARIANT-POINTER' + \r\n\t 'CACHE|CACHE-SIZE|CALL|CALL-NAME|CALL-TYPE|CANCEL-BREAK|CANCEL-BUTTON|CAN-CREATE|CAN-DELETE|CAN-DO|CAN-FIND|CAN-QUERY|CAN-READ|CAN-SET|CAN-WRITE|CAPS|CAREFUL-PAINT|CASE|CASE-SENSITIVE|CASE-SEN|CASE-SENS|CASE-SENSI|CASE-SENSIT|CASE-SENSITI|CASE-SENSITIV|CAST|CATCH|CDECL|CENTERED|CENTER|CENTERE|CHAINED|CHARACTER_LENGTH|CHARSET|CHECK|CHECKED|CHOOSE|CHR|CLASS|CLASS-TYPE|CLEAR|CLEAR-APPL-CONTEXT|CLEAR-LOG|CLEAR-SELECTION|CLEAR-SELECT|CLEAR-SELECTI|CLEAR-SELECTIO|CLEAR-SORT-ARROWS|CLEAR-SORT-ARROW|CLIENT-CONNECTION-ID|CLIENT-PRINCIPAL|CLIENT-TTY|CLIENT-TYPE|CLIENT-WORKSTATION|CLIPBOARD|CLOSE|CLOSE-LOG|CODE|CODEBASE-LOCATOR|CODEPAGE|CODEPAGE-CONVERT|COLLATE|COL-OF|COLON|COLON-ALIGNED|COLON-ALIGN|COLON-ALIGNE|COLOR|COLOR-TABLE|COLUMN|COL|COLU|COLUM|COLUMN-BGCOLOR|COLUMN-DCOLOR|COLUMN-FGCOLOR|COLUMN-FONT|COLUMN-LABEL|COLUMN-LAB|COLUMN-LABE|COLUMN-MOVABLE|COLUMN-OF|COLUMN-PFCOLOR|COLUMN-READ-ONLY|COLUMN-RESIZABLE|COLUMNS|COLUMN-SCROLLING|COMBO-BOX|COMMAND|COMPARES|COMPILE|COMPILER|COMPLETE|COM-SELF|CONFIG-NAME|CONNECT|CONNECTED|CONSTRUCTOR|CONTAINS|CONTENTS|CONTEXT|CONTEXT-HELP|CONTEXT-HELP-FILE|CONTEXT-HELP-ID|CONTEXT-POPUP|CONTROL|CONTROL-BOX|CONTROL-FRAME|CONVERT|CONVERT-3D-COLORS|CONVERT-TO-OFFSET|CONVERT-TO-OFFS|CONVERT-TO-OFFSE|COPY-DATASET|COPY-LOB|COPY-SAX-ATTRIBUTES|COPY-TEMP-TABLE|COUNT|COUNT-OF|CPCASE|CPCOLL|CPINTERNAL|CPLOG|CPPRINT|CPRCODEIN|CPRCODEOUT|CPSTREAM|CPTERM|CRC-VALUE|CREATE|CREATE-LIKE|CREATE-LIKE-SEQUENTIAL|CREATE-NODE-NAMESPACE|CREATE-RESULT-LIST-ENTRY|CREATE-TEST-FILE|CURRENT|CURRENT_DATE|CURRENT_DATE|CURRENT-CHANGED|CURRENT-COLUMN|CURRENT-ENVIRONMENT|CURRENT-ENV|CURRENT-ENVI|CURRENT-ENVIR|CURRENT-ENVIRO|CURRENT-ENVIRON|CURRENT-ENVIRONM|CURRENT-ENVIRONME|CURRENT-ENVIRONMEN|CURRENT-ITERATION|CURRENT-LANGUAGE|CURRENT-LANG|CURRENT-LANGU|CURRENT-LANGUA|CURRENT-LANGUAG|CURRENT-QUERY|CURRENT-RESULT-ROW|CURRENT-ROW-MODIFIED|CURRENT-VALUE|CURRENT-WINDOW|CURSOR|CURS|CURSO|CURSOR-CHAR|CURSOR-LINE|CURSOR-OFFSET' + 'DATABASE|DATA-BIND|DATA-ENTRY-RETURN|DATA-ENTRY-RET|DATA-ENTRY-RETU|DATA-ENTRY-RETUR|DATA-RELATION|DATA-REL|DATA-RELA|DATA-RELAT|DATA-RELATI|DATA-RELATIO|DATASERVERS|DATASET|DATASET-HANDLE|DATA-SOURCE|DATA-SOURCE-COMPLETE-MAP|DATA-SOURCE-MODIFIED|DATA-SOURCE-ROWID|DATA-TYPE|DATA-T|DATA-TY|DATA-TYP|DATE-FORMAT|DATE-F|DATE-FO|DATE-FOR|DATE-FORM|DATE-FORMA|DAY|DBCODEPAGE|DBCOLLATION|DBNAME|DBPARAM|DB-REFERENCES|DBRESTRICTIONS|DBREST|DBRESTR|DBRESTRI|DBRESTRIC|DBRESTRICT|DBRESTRICTI|DBRESTRICTIO|DBRESTRICTION|DBTASKID|DBTYPE|DBVERSION|DBVERS|DBVERSI|DBVERSIO|DCOLOR|DDE|DDE-ERROR|DDE-ID|DDE-I|DDE-ITEM|DDE-NAME|DDE-TOPIC|DEBLANK|DEBUG|DEBU|DEBUG-ALERT|DEBUGGER|DEBUG-LIST|DECIMALS|DECLARE|DECLARE-NAMESPACE|DECRYPT|DEFAULT|DEFAULT-BUFFER-HANDLE|DEFAULT-BUTTON|DEFAUT-B|DEFAUT-BU|DEFAUT-BUT|DEFAUT-BUTT|DEFAUT-BUTTO|DEFAULT-COMMIT|DEFAULT-EXTENSION|DEFAULT-EX|DEFAULT-EXT|DEFAULT-EXTE|DEFAULT-EXTEN|DEFAULT-EXTENS|DEFAULT-EXTENSI|DEFAULT-EXTENSIO|DEFAULT-NOXLATE|DEFAULT-NOXL|DEFAULT-NOXLA|DEFAULT-NOXLAT|DEFAULT-VALUE|DEFAULT-WINDOW|DEFINE|DEF|DEFI|DEFIN|DEFINED|DEFINE-USER-EVENT-MANAGER|DELETE|DEL|DELE|DELET|DELETE-CHARACTER|DELETE-CHAR|DELETE-CHARA|DELETE-CHARAC|DELETE-CHARACT|DELETE-CHARACTE|DELETE-CURRENT-ROW|DELETE-LINE|DELETE-RESULT-LIST-ENTRY|DELETE-SELECTED-ROW|DELETE-SELECTED-ROWS|DELIMITER|DESC|DESCENDING|DESC|DESCE|DESCEN|DESCEND|DESCENDI|DESCENDIN|DESELECT-FOCUSED-ROW|DESELECTION|DESELECT-ROWS|DESELECT-SELECTED-ROW|DESTRUCTOR|DIALOG-BOX|DICTIONARY|DICT|DICTI|DICTIO|DICTION|DICTIONA|DICTIONAR|DIR|DISABLE|DISABLE-AUTO-ZAP|DISABLED|DISABLE-DUMP-TRIGGERS|DISABLE-LOAD-TRIGGERS|DISCONNECT|DISCON|DISCONN|DISCONNE|DISCONNEC|DISP|DISPLAY|DISP|DISPL|DISPLA|DISPLAY-MESSAGE|DISPLAY-TYPE|DISPLAY-T|DISPLAY-TY|DISPLAY-TYP|DISTINCT|DO|DOMAIN-DESCRIPTION|DOMAIN-NAME|DOMAIN-TYPE|DOS|DOUBLE|DOWN|DRAG-ENABLED|DROP|DROP-DOWN|DROP-DOWN-LIST|DROP-FILE-NOTIFY|DROP-TARGET|DUMP|DYNAMIC|DYNAMIC-FUNCTION' + \r\n\t 'EACH|ECHO|EDGE-CHARS|EDGE|EDGE-|EDGE-C|EDGE-CH|EDGE-CHA|EDGE-CHAR|EDGE-PIXELS|EDGE-P|EDGE-PI|EDGE-PIX|EDGE-PIXE|EDGE-PIXEL|EDIT-CAN-PASTE|EDIT-CAN-UNDO|EDIT-CLEAR|EDIT-COPY|EDIT-CUT|EDITING|EDITOR|EDIT-PASTE|EDIT-UNDO|ELSE|EMPTY|EMPTY-TEMP-TABLE|ENABLE|ENABLED-FIELDS|ENCODE|ENCRYPT|ENCRYPT-AUDIT-MAC-KEY|ENCRYPTION-SALT|END|END-DOCUMENT|END-ELEMENT|END-EVENT-GROUP|END-FILE-DROP|ENDKEY|END-KEY|END-MOVE|END-RESIZE|END-ROW-RESIZE|END-USER-PROMPT|ENTERED|ENTRY|EQ|ERROR|ERROR-COLUMN|ERROR-COL|ERROR-COLU|ERROR-COLUM|ERROR-ROW|ERROR-STACK-TRACE|ERROR-STATUS|ERROR-STAT|ERROR-STATU|ESCAPE|ETIME|EVENT-GROUP-ID|EVENT-PROCEDURE|EVENT-PROCEDURE-CONTEXT|EVENTS|EVENT|EVENT-TYPE|EVENT-T|EVENT-TY|EVENT-TYP|EXCEPT|EXCLUSIVE-ID|EXCLUSIVE-LOCK|EXCLUSIVE|EXCLUSIVE-|EXCLUSIVE-L|EXCLUSIVE-LO|EXCLUSIVE-LOC|EXCLUSIVE-WEB-USER|EXECUTE|EXISTS|EXP|EXPAND|EXPANDABLE|EXPLICIT|EXPORT|EXPORT-PRINCIPAL|EXTENDED|EXTENT|EXTERNAL' + \r\n\t 'FALSE|FETCH|FETCH-SELECTED-ROW|FGCOLOR|FGC|FGCO|FGCOL|FGCOLO|FIELD|FIELDS|FIELD|FILE|FILE-CREATE-DATE|FILE-CREATE-TIME|FILE-INFORMATION|FILE-INFO|FILE-INFOR|FILE-INFORM|FILE-INFORMA|FILE-INFORMAT|FILE-INFORMATI|FILE-INFORMATIO|FILE-MOD-DATE|FILE-MOD-TIME|FILENAME|FILE-NAME|FILE-OFFSET|FILE-OFF|FILE-OFFS|FILE-OFFSE|FILE-SIZE|FILE-TYPE|FILL|FILLED|FILL-IN|FILTERS|FINAL|FINALLY|FIND|FIND-BY-ROWID|FIND-CASE-SENSITIVE|FIND-CURRENT|FINDER|FIND-FIRST|FIND-GLOBAL|FIND-LAST|FIND-NEXT-OCCURRENCE|FIND-PREV-OCCURRENCE|FIND-SELECT|FIND-UNIQUE|FIND-WRAP-AROUND|FIRST|FIRST-ASYNCH-REQUEST|FIRST-CHILD|FIRST-COLUMN|FIRST-FORM|FIRST-OBJECT|FIRST-OF|FIRST-PROCEDURE|FIRST-PROC|FIRST-PROCE|FIRST-PROCED|FIRST-PROCEDU|FIRST-PROCEDUR|FIRST-SERVER|FIRST-TAB-ITEM|FIRST-TAB-I|FIRST-TAB-IT|FIRST-TAB-ITE|FIT-LAST-COLUMN|FIXED-ONLY|FLAT-BUTTON|FLOAT|FOCUS|FOCUSED-ROW|FOCUSED-ROW-SELECTED|FONT|FONT-TABLE|FOR|FORCE-FILE|FOREGROUND|FORE|FOREG|FOREGR|FOREGRO|FOREGROU|FOREGROUN|FORM|FORMAT|FORM|FORMA|FORMATTED|FORMATTE|FORM-LONG-INPUT|FORWARD|FORWARDS|FORWARD|FRAGMENT|FRAGMEN|FRAME|FRAM|FRAME-COL|FRAME-DB|FRAME-DOWN|FRAME-FIELD|FRAME-FILE|FRAME-INDEX|FRAME-INDE|FRAME-LINE|FRAME-NAME|FRAME-ROW|FRAME-SPACING|FRAME-SPA|FRAME-SPAC|FRAME-SPACI|FRAME-SPACIN|FRAME-VALUE|FRAME-VAL|FRAME-VALU|FRAME-X|FRAME-Y|FREQUENCY|FROM|FROM-CHARS|FROM-C|FROM-CH|FROM-CHA|FROM-CHAR|FROM-CURRENT|FROM-CUR|FROM-CURR|FROM-CURRE|FROM-CURREN|FROM-PIXELS|FROM-P|FROM-PI|FROM-PIX|FROM-PIXE|FROM-PIXEL|FULL-HEIGHT-CHARS|FULL-HEIGHT|FULL-HEIGHT-|FULL-HEIGHT-C|FULL-HEIGHT-CH|FULL-HEIGHT-CHA|FULL-HEIGHT-CHAR|FULL-HEIGHT-PIXELS|FULL-HEIGHT-P|FULL-HEIGHT-PI|FULL-HEIGHT-PIX|FULL-HEIGHT-PIXE|FULL-HEIGHT-PIXEL|FULL-PATHNAME|FULL-PATHN|FULL-PATHNA|FULL-PATHNAM|FULL-WIDTH-CHARS|FULL-WIDTH|FULL-WIDTH-|FULL-WIDTH-C|FULL-WIDTH-CH|FULL-WIDTH-CHA|FULL-WIDTH-CHAR|FULL-WIDTH-PIXELS|FULL-WIDTH-P|FULL-WIDTH-PI|FULL-WIDTH-PIX|FULL-WIDTH-PIXE|FULL-WIDTH-PIXEL|FUNCTION|FUNCTION-CALL-TYPE' + \r\n\t 'GATEWAYS|GATEWAY|GE|GENERATE-MD5|GENERATE-PBE-KEY|GENERATE-PBE-SALT|GENERATE-RANDOM-KEY|GENERATE-UUID|GET|GET-ATTR-CALL-TYPE|GET-ATTRIBUTE-NODE|GET-BINARY-DATA|GET-BLUE-VALUE|GET-BLUE|GET-BLUE-|GET-BLUE-V|GET-BLUE-VA|GET-BLUE-VAL|GET-BLUE-VALU|GET-BROWSE-COLUMN|GET-BUFFER-HANDLEGETBYTE|GET-BYTE|GET-CALLBACK-PROC-CONTEXT|GET-CALLBACK-PROC-NAME|GET-CGI-LIST|GET-CGI-LONG-VALUE|GET-CGI-VALUE|GET-CODEPAGES|GET-COLLATIONS|GET-CONFIG-VALUE|GET-CURRENT|GET-DOUBLE|GET-DROPPED-FILE|GET-DYNAMIC|GET-ERROR-COLUMN|GET-ERROR-ROW|GET-FILE|GET-FILE-NAME|GET-FILE-OFFSET|GET-FILE-OFFSE|GET-FIRST|GET-FLOAT|GET-GREEN-VALUE|GET-GREEN|GET-GREEN-|GET-GREEN-V|GET-GREEN-VA|GET-GREEN-VAL|GET-GREEN-VALU|GET-INDEX-BY-NAMESPACE-NAME|GET-INDEX-BY-QNAME|GET-INT64|GET-ITERATION|GET-KEY-VALUE|GET-KEY-VAL|GET-KEY-VALU|GET-LAST|GET-LOCALNAME-BY-INDEX|GET-LONG|GET-MESSAGE|GET-NEXT|GET-NUMBER|GET-POINTER-VALUE|GET-PREV|GET-PRINTERS|GET-PROPERTY|GET-QNAME-BY-INDEX|GET-RED-VALUE|GET-RED|GET-RED-|GET-RED-V|GET-RED-VA|GET-RED-VAL|GET-RED-VALU|GET-REPOSITIONED-ROW|GET-RGB-VALUE|GET-SELECTED-WIDGET|GET-SELECTED|GET-SELECTED-|GET-SELECTED-W|GET-SELECTED-WI|GET-SELECTED-WID|GET-SELECTED-WIDG|GET-SELECTED-WIDGE|GET-SHORT|GET-SIGNATURE|GET-SIZE|GET-STRING|GET-TAB-ITEM|GET-TEXT-HEIGHT-CHARS|GET-TEXT-HEIGHT|GET-TEXT-HEIGHT-|GET-TEXT-HEIGHT-C|GET-TEXT-HEIGHT-CH|GET-TEXT-HEIGHT-CHA|GET-TEXT-HEIGHT-CHAR|GET-TEXT-HEIGHT-PIXELS|GET-TEXT-HEIGHT-P|GET-TEXT-HEIGHT-PI|GET-TEXT-HEIGHT-PIX|GET-TEXT-HEIGHT-PIXE|GET-TEXT-HEIGHT-PIXEL|GET-TEXT-WIDTH-CHARS|GET-TEXT-WIDTH|GET-TEXT-WIDTH-|GET-TEXT-WIDTH-C|GET-TEXT-WIDTH-CH|GET-TEXT-WIDTH-CHA|GET-TEXT-WIDTH-CHAR|GET-TEXT-WIDTH-PIXELS|GET-TEXT-WIDTH-P|GET-TEXT-WIDTH-PI|GET-TEXT-WIDTH-PIX|GET-TEXT-WIDTH-PIXE|GET-TEXT-WIDTH-PIXEL|GET-TYPE-BY-INDEX|GET-TYPE-BY-NAMESPACE-NAME|GET-TYPE-BY-QNAME|GET-UNSIGNED-LONG|GET-UNSIGNED-SHORT|GET-URI-BY-INDEX|GET-VALUE-BY-INDEX|GET-VALUE-BY-NAMESPACE-NAME|GET-VALUE-BY-QNAME|GET-WAIT-STATE|GLOBAL|GO-ON|GO-PENDING|GO-PEND|GO-PENDI|GO-PENDIN|GRANT|GRAPHIC-EDGE|GRAPHIC-E|GRAPHIC-ED|GRAPHIC-EDG|GRID-FACTOR-HORIZONTAL|GRID-FACTOR-H|GRID-FACTOR-HO|GRID-FACTOR-HOR|GRID-FACTOR-HORI|GRID-FACTOR-HORIZ|GRID-FACTOR-HORIZO|GRID-FACTOR-HORIZON|GRID-FACTOR-HORIZONT|GRID-FACTOR-HORIZONTA|GRID-FACTOR-VERTICAL|GRID-FACTOR-V|GRID-FACTOR-VE|GRID-FACTOR-VER|GRID-FACTOR-VERT|GRID-FACTOR-VERT|GRID-FACTOR-VERTI|GRID-FACTOR-VERTIC|GRID-FACTOR-VERTICA|GRID-SNAP|GRID-UNIT-HEIGHT-CHARS|GRID-UNIT-HEIGHT|GRID-UNIT-HEIGHT-|GRID-UNIT-HEIGHT-C|GRID-UNIT-HEIGHT-CH|GRID-UNIT-HEIGHT-CHA|GRID-UNIT-HEIGHT-PIXELS|GRID-UNIT-HEIGHT-P|GRID-UNIT-HEIGHT-PI|GRID-UNIT-HEIGHT-PIX|GRID-UNIT-HEIGHT-PIXE|GRID-UNIT-HEIGHT-PIXEL|GRID-UNIT-WIDTH-CHARS|GRID-UNIT-WIDTH|GRID-UNIT-WIDTH-|GRID-UNIT-WIDTH-C|GRID-UNIT-WIDTH-CH|GRID-UNIT-WIDTH-CHA|GRID-UNIT-WIDTH-CHAR|GRID-UNIT-WIDTH-PIXELS|GRID-UNIT-WIDTH-P|GRID-UNIT-WIDTH-PI|GRID-UNIT-WIDTH-PIX|GRID-UNIT-WIDTH-PIXE|GRID-UNIT-WIDTH-PIXEL|GRID-VISIBLE|GROUP|GT|GUID' + \r\n\t 'HANDLER|HAS-RECORDS|HAVING|HEADER|HEIGHT-CHARS|HEIGHT|HEIGHT-|HEIGHT-C|HEIGHT-CH|HEIGHT-CHA|HEIGHT-CHAR|HEIGHT-PIXELS|HEIGHT-P|HEIGHT-PI|HEIGHT-PIX|HEIGHT-PIXE|HEIGHT-PIXEL|HELP|HEX-DECODE|HEX-ENCODE|HIDDEN|HIDE|HORIZONTAL|HORI|HORIZ|HORIZO|HORIZON|HORIZONT|HORIZONTA|HOST-BYTE-ORDER|HTML-CHARSET|HTML-END-OF-LINE|HTML-END-OF-PAGE|HTML-FRAME-BEGIN|HTML-FRAME-END|HTML-HEADER-BEGIN|HTML-HEADER-END|HTML-TITLE-BEGIN|HTML-TITLE-END|HWND|HEIGHT|HEIGHT-P' + \r\n\t 'ICON|IF|IMAGE|IMAGE-DOWN|IMAGE-INSENSITIVE|IMAGE-SIZE|IMAGE-SIZE-CHARS|IMAGE-SIZE-C|IMAGE-SIZE-CH|IMAGE-SIZE-CHA|IMAGE-SIZE-CHAR|IMAGE-SIZE-PIXELS|IMAGE-SIZE-P|IMAGE-SIZE-PI|IMAGE-SIZE-PIX|IMAGE-SIZE-PIXE|IMAGE-SIZE-PIXEL|IMAGE-UP|IMMEDIATE-DISPLAY|IMPLEMENTS|IMPORT|IMPORT-PRINCIPAL|IN|INCREMENT-EXCLUSIVE-ID|INDEX|INDEXED-REPOSITION|INDEX-HINT|INDEX-INFORMATION|INDICATOR|INFORMATION|INFO|INFOR|INFORM|INFORMA|INFORMAT|INFORMATI|INFORMATIO|IN-HANDLE|INHERIT-BGCOLOR|INHERIT-BGC|INHERIT-BGCO|INHERIT-BGCOL|INHERIT-BGCOLO|INHERIT-FGCOLOR|INHERIT-FGC|INHERIT-FGCO|INHERIT-FGCOL|INHERIT-FGCOLO|INHERITS|INITIAL|INIT|INITI|INITIA|INITIAL-DIR|INITIAL-FILTER|INITIALIZE-DOCUMENT-TYPE|INITIATE|INNER-CHARS|INNER-LINES|INPUT|INPUT-OUTPUT|INPUT-O|INPUT-OU|INPUT-OUT|INPUT-OUTP|INPUT-OUTPU|INPUT-VALUE|INSERT|INSERT-ATTRIBUTE|INSERT-BACKTAB|INSERT-B|INSERT-BA|INSERT-BAC|INSERT-BACK|INSERT-BACKT|INSERT-BACKTA|INSERT-FILE|INSERT-ROW|INSERT-STRING|INSERT-TAB|INSERT-T|INSERT-TA|INTERFACE|INTERNAL-ENTRIES|INTO|INVOKE|IS|IS-ATTR-SPACE|IS-ATTR|IS-ATTR-|IS-ATTR-S|IS-ATTR-SP|IS-ATTR-SPA|IS-ATTR-SPAC|IS-CLASS|IS-CLAS|IS-LEAD-BYTE|IS-ATTR|IS-OPEN|IS-PARAMETER-SET|IS-ROW-SELECTED|IS-SELECTED|ITEM|ITEMS-PER-ROW' + \r\n\t 'JOIN|JOIN-BY-SQLDB' + \r\n\t 'KBLABEL|KEEP-CONNECTION-OPEN|KEEP-FRAME-Z-ORDER|KEEP-FRAME-Z|KEEP-FRAME-Z-|KEEP-FRAME-Z-O|KEEP-FRAME-Z-OR|KEEP-FRAME-Z-ORD|KEEP-FRAME-Z-ORDE|KEEP-MESSAGES|KEEP-SECURITY-CACHE|KEEP-TAB-ORDER|KEY|KEYCODE|KEY-CODE|KEYFUNCTION|KEYFUNC|KEYFUNCT|KEYFUNCTI|KEYFUNCTIO|KEY-FUNCTION|KEY-FUNC|KEY-FUNCT|KEY-FUNCTI|KEY-FUNCTIO|KEYLABEL|KEY-LABEL|KEYS|KEYWORD|KEYWORD-ALL' + \r\n\t 'LABEL|LABEL-BGCOLOR|LABEL-BGC|LABEL-BGCO|LABEL-BGCOL|LABEL-BGCOLO|LABEL-DCOLOR|LABEL-DC|LABEL-DCO|LABEL-DCOL|LABEL-DCOLO|LABEL-FGCOLOR|LABEL-FGC|LABEL-FGCO|LABEL-FGCOL|LABEL-FGCOLO|LABEL-FONT|LABEL-PFCOLOR|LABEL-PFC|LABEL-PFCO|LABEL-PFCOL|LABEL-PFCOLO|LABELS|LANDSCAPE|LANGUAGES|LANGUAGE|LARGE|LARGE-TO-SMALL|LAST|LAST-ASYNCH-REQUEST|LAST-BATCH|LAST-CHILD|LAST-EVENT|LAST-EVEN|LAST-FORM|LASTKEY|LAST-KEY|LAST-OBJECT|LAST-OF|LAST-PROCEDURE|LAST-PROCE|LAST-PROCED|LAST-PROCEDU|LAST-PROCEDUR|LAST-SERVER|LAST-TAB-ITEM|LAST-TAB-I|LAST-TAB-IT|LAST-TAB-ITE|LC|LDBNAME|LE|LEAVE|LEFT-ALIGNED|LEFT-ALIGN|LEFT-ALIGNE|LEFT-TRIM|LENGTH|LIBRARY|LIKE|LIKE-SEQUENTIAL|LINE|LINE-COUNTER|LINE-COUNT|LINE-COUNTE|LIST-EVENTS|LISTING|LISTI|LISTIN|LIST-ITEM-PAIRS|LIST-ITEMS|LIST-PROPERTY-NAMES|LIST-QUERY-ATTRS|LIST-SET-ATTRS|LIST-WIDGETS|LITERAL-QUESTION|LITTLE-ENDIAN|LOAD|LOAD-DOMAINS|LOAD-ICON|LOAD-IMAGE|LOAD-IMAGE-DOWN|LOAD-IMAGE-INSENSITIVE|LOAD-IMAGE-UP|LOAD-MOUSE-POINTER|LOAD-MOUSE-P|LOAD-MOUSE-PO|LOAD-MOUSE-POI|LOAD-MOUSE-POIN|LOAD-MOUSE-POINT|LOAD-MOUSE-POINTE|LOAD-PICTURE|LOAD-SMALL-ICON|LOCAL-NAME|LOCATOR-COLUMN-NUMBER|LOCATOR-LINE-NUMBER|LOCATOR-PUBLIC-ID|LOCATOR-SYSTEM-ID|LOCATOR-TYPE|LOCKED|LOCK-REGISTRATION|LOG|LOG-AUDIT-EVENT|LOGIN-EXPIRATION-TIMESTAMP|LOGIN-HOST|LOGIN-STATE|LOG-MANAGER|LOGOUT|LOOKAHEAD|LOOKUP|LT|LABEL-BGCOL|LABEL-BGCOLO' + \r\n\t 'MACHINE-CLASS|MANDATORY|MANUAL-HIGHLIGHT|MAP|MARGIN-EXTRA|MARGIN-HEIGHT-CHARS|MARGIN-HEIGHT|MARGIN-HEIGHT-|MARGIN-HEIGHT-C|MARGIN-HEIGHT-CH|MARGIN-HEIGHT-CHA|MARGIN-HEIGHT-CHAR|MARGIN-HEIGHT-PIXELS|MARGIN-HEIGHT-P|MARGIN-HEIGHT-PI|MARGIN-HEIGHT-PIX|MARGIN-HEIGHT-PIXE|MARGIN-HEIGHT-PIXEL|MARGIN-WIDTH-CHARS|MARGIN-WIDTH|MARGIN-WIDTH-|MARGIN-WIDTH-C|MARGIN-WIDTH-CH|MARGIN-WIDTH-CHA|MARGIN-WIDTH-CHAR|MARGIN-WIDTH-PIXELS|MARGIN-WIDTH-P|MARGIN-WIDTH-PI|MARGIN-WIDTH-PIX|MARGIN-WIDTH-PIXE|MARGIN-WIDTH-PIXEL|MARK-NEW|MARK-ROW-STATE|MATCHES|MAX|MAX-BUTTON|MAX-CHARS|MAX-DATA-GUESS|MAX-HEIGHT|MAX-HEIGHT-CHARS|MAX-HEIGHT-C|MAX-HEIGHT-CH|MAX-HEIGHT-CHA|MAX-HEIGHT-CHAR|MAX-HEIGHT-PIXELS|MAX-HEIGHT-P|MAX-HEIGHT-PI|MAX-HEIGHT-PIX|MAX-HEIGHT-PIXE|MAX-HEIGHT-PIXEL|MAXIMIZE|MAXIMUM|MAX|MAXI|MAXIM|MAXIMU|MAXIMUM-LEVEL|MAX-ROWS|MAX-SIZE|MAX-VALUE|MAX-VAL|MAX-VALU|MAX-WIDTH|MAX-WIDTH-CHARS|MAX-WIDTH|MAX-WIDTH-|MAX-WIDTH-C|MAX-WIDTH-CH|MAX-WIDTH-CHA|MAX-WIDTH-CHAR|MAX-WIDTH-PIXELS|MAX-WIDTH-P|MAX-WIDTH-PI|MAX-WIDTH-PIX|MAX-WIDTH-PIXE|MAX-WIDTH-PIXEL|MD5-DIGEST|MEMBER|MEMPTR-TO-NODE-VALUE|MENU|MENUBAR|MENU-BAR|MENU-ITEM|MENU-KEY|MENU-K|MENU-KE|MENU-MOUSE|MENU-M|MENU-MO|MENU-MOU|MENU-MOUS|MERGE-BY-FIELD|MESSAGE|MESSAGE-AREA|MESSAGE-AREA-FONT|MESSAGE-LINES|METHOD|MIN|MIN-BUTTON|MIN-COLUMN-WIDTH-CHARS|MIN-COLUMN-WIDTH-C|MIN-COLUMN-WIDTH-CH|MIN-COLUMN-WIDTH-CHA|MIN-COLUMN-WIDTH-CHAR|MIN-COLUMN-WIDTH-PIXELS|MIN-COLUMN-WIDTH-P|MIN-COLUMN-WIDTH-PI|MIN-COLUMN-WIDTH-PIX|MIN-COLUMN-WIDTH-PIXE|MIN-COLUMN-WIDTH-PIXEL|MIN-HEIGHT-CHARS|MIN-HEIGHT|MIN-HEIGHT-|MIN-HEIGHT-C|MIN-HEIGHT-CH|MIN-HEIGHT-CHA|MIN-HEIGHT-CHAR|MIN-HEIGHT-PIXELS|MIN-HEIGHT-P|MIN-HEIGHT-PI|MIN-HEIGHT-PIX|MIN-HEIGHT-PIXE|MIN-HEIGHT-PIXEL|MINIMUM|MIN|MINI|MINIM|MINIMU|MIN-SIZE|MIN-VALUE|MIN-VAL|MIN-VALU|MIN-WIDTH-CHARS|MIN-WIDTH|MIN-WIDTH-|MIN-WIDTH-C|MIN-WIDTH-CH|MIN-WIDTH-CHA|MIN-WIDTH-CHAR|MIN-WIDTH-PIXELS|MIN-WIDTH-P|MIN-WIDTH-PI|MIN-WIDTH-PIX|MIN-WIDTH-PIXE|MIN-WIDTH-PIXEL|MODIFIED|MODULO|MOD|MODU|MODUL|MONTH|MOUSE|MOUSE-POINTER|MOUSE-P|MOUSE-PO|MOUSE-POI|MOUSE-POIN|MOUSE-POINT|MOUSE-POINTE|MOVABLE|MOVE-AFTER-TAB-ITEM|MOVE-AFTER|MOVE-AFTER-|MOVE-AFTER-T|MOVE-AFTER-TA|MOVE-AFTER-TAB|MOVE-AFTER-TAB-|MOVE-AFTER-TAB-I|MOVE-AFTER-TAB-IT|MOVE-AFTER-TAB-ITE|MOVE-BEFORE-TAB-ITEM|MOVE-BEFOR|MOVE-BEFORE|MOVE-BEFORE-|MOVE-BEFORE-T|MOVE-BEFORE-TA|MOVE-BEFORE-TAB|MOVE-BEFORE-TAB-|MOVE-BEFORE-TAB-I|MOVE-BEFORE-TAB-IT|MOVE-BEFORE-TAB-ITE|MOVE-COLUMN|MOVE-COL|MOVE-COLU|MOVE-COLUM|MOVE-TO-BOTTOM|MOVE-TO-B|MOVE-TO-BO|MOVE-TO-BOT|MOVE-TO-BOTT|MOVE-TO-BOTTO|MOVE-TO-EOF|MOVE-TO-TOP|MOVE-TO-T|MOVE-TO-TO|MPE|MULTI-COMPILE|MULTIPLE|MULTIPLE-KEY|MULTITASKING-INTERVAL|MUST-EXIST|MINIMUM' + \r\n\t 'NAME|NAMESPACE-PREFIX|NAMESPACE-URI|NATIVE|NE|NEEDS-APPSERVER-PROMPT|NEEDS-PROMPT|NEW|NEW-INSTANCE|NEW-ROW|NEXT|NEXT-COLUMN|NEXT-PROMPT|NEXT-ROWID|NEXT-SIBLING|NEXT-TAB-ITEM|NEXT-TAB-I|NEXT-TAB-IT|NEXT-TAB-ITE|NEXT-VALUE|NO|NO-APPLY|NO-ARRAY-MESSAGE|NO-ASSIGN|NO-ATTR-LIST|NO-ATTR|NO-ATTR-|NO-ATTR-L|NO-ATTR-LI|NO-ATTR-LIS|NO-ATTR-SPACE|NO-ATTR|NO-ATTR-|NO-ATTR-S|NO-ATTR-SP|NO-ATTR-SPA|NO-ATTR-SPAC|NO-AUTO-VALIDATE|NO-BIND-WHERE|NO-BOX|NO-CONSOLE|NO-CONVERT|NO-CONVERT-3D-COLORS|NO-CURRENT-VALUE|NO-DEBUG|NODE-VALUE-TO-MEMPTR|NO-DRAG|NO-ECHO|NO-EMPTY-SPACE|NO-ERROR|NO-FILL|NO-F|NO-FI|NO-FIL|NO-FOCUS|NO-HELP|NO-HIDE|NO-INDEX-HINT|NO-INHERIT-BGCOLOR|NO-INHERIT-BGC|NO-INHERIT-BGCO|NO-INHERIT-FGCOLOR|NO-INHERIT-FGC|NO-INHERIT-FGCO|NO-INHERIT-FGCOL|NO-INHERIT-FGCOLO|NO-JOIN-BY-SQLDB|NO-LABELS|NO-LABE|NO-LOBS|NO-LOCK|NO-LOOKAHEAD|NO-MAP|NO-MESSAGE|NO-MES|NO-MESS|NO-MESSA|NO-MESSAG|NONAMESPACE-SCHEMA-LOCATION|NONE|NO-PAUSE|NO-PREFETCH|NO-PREFE|NO-PREFET|NO-PREFETC|NORMALIZE|NO-ROW-MARKERS|NO-SCROLLBAR-VERTICAL|NO-SEPARATE-CONNECTION|NO-SEPARATORS|NOT|NO-TAB-STOP|NOT-ACTIVE|NO-UNDERLINE|NO-UND|NO-UNDE|NO-UNDER|NO-UNDERL|NO-UNDERLI|NO-UNDERLIN|NO-UNDO|NO-VALIDATE|NO-VAL|NO-VALI|NO-VALID|NO-VALIDA|NO-VALIDAT|NOW|NO-WAIT|NO-WORD-WRAP|NULL|NUM-ALIASES|NUM-ALI|NUM-ALIA|NUM-ALIAS|NUM-ALIASE|NUM-BUFFERS|NUM-BUTTONS|NUM-BUT|NUM-BUTT|NUM-BUTTO|NUM-BUTTON|NUM-COLUMNS|NUM-COL|NUM-COLU|NUM-COLUM|NUM-COLUMN|NUM-COPIES|NUM-DBS|NUM-DROPPED-FILES|NUM-ENTRIES|NUMERIC|NUMERIC-FORMAT|NUMERIC-F|NUMERIC-FO|NUMERIC-FOR|NUMERIC-FORM|NUMERIC-FORMA|NUM-FIELDS|NUM-FORMATS|NUM-ITEMS|NUM-ITERATIONS|NUM-LINES|NUM-LOCKED-COLUMNS|NUM-LOCKED-COL|NUM-LOCKED-COLU|NUM-LOCKED-COLUM|NUM-LOCKED-COLUMN|NUM-MESSAGES|NUM-PARAMETERS|NUM-REFERENCES|NUM-REPLACED|NUM-RESULTS|NUM-SELECTED-ROWS|NUM-SELECTED-WIDGETS|NUM-SELECTED|NUM-SELECTED-|NUM-SELECTED-W|NUM-SELECTED-WI|NUM-SELECTED-WID|NUM-SELECTED-WIDG|NUM-SELECTED-WIDGE|NUM-SELECTED-WIDGET|NUM-TABS|NUM-TO-RETAIN|NUM-VISIBLE-COLUMNS' + \r\n\t 'OCTET-LENGTH|OF|OFF|OK|OK-CANCEL|OLD|ON|ON-FRAME-BORDER|ON-FRAME|ON-FRAME-|ON-FRAME-B|ON-FRAME-BO|ON-FRAME-BOR|ON-FRAME-BORD|ON-FRAME-BORDE|OPEN|OPSYS|OPTION|OR|ORDERED-JOIN|ORDINAL|OS-APPEND|OS-COMMAND|OS-COPY|OS-CREATE-DIR|OS-DELETE|OS-DIR|OS-DRIVES|OS-DRIVE|OS-ERROR|OS-GETENV|OS-RENAME|OTHERWISE|OUTPUT|OVERLAY|OVERRIDE|OWNER' + \r\n\t 'PAGE|PAGE-BOTTOM|PAGE-BOT|PAGE-BOTT|PAGE-BOTTO|PAGED|PAGE-NUMBER|PAGE-NUM|PAGE-NUMB|PAGE-NUMBE|PAGE-SIZE|PAGE-TOP|PAGE-WIDTH|PAGE-WID|PAGE-WIDT|PARAMETER|PARAM|PARAME|PARAMET|PARAMETE|PARENT|PARSE-STATUS|PARTIAL-KEY|PASCAL|PASSWORD-FIELD|PATHNAME|PAUSE|PBE-HASH-ALGORITHM|PBE-HASH-ALG|PBE-HASH-ALGO|PBE-HASH-ALGOR|PBE-HASH-ALGORI|PBE-HASH-ALGORIT|PBE-HASH-ALGORITH|PBE-KEY-ROUNDS|PDBNAME|PERSISTENT|PERSIST|PERSISTE|PERSISTEN|PERSISTENT-CACHE-DISABLED|PFCOLOR|PFC|PFCO|PFCOL|PFCOLO|PIXELS|PIXELS-PER-COLUMN|PIXELS-PER-COL|PIXELS-PER-COLU|PIXELS-PER-COLUM|PIXELS-PER-ROW|POPUP-MENU|POPUP-M|POPUP-ME|POPUP-MEN|POPUP-ONLY|POPUP-O|POPUP-ON|POPUP-ONL|PORTRAIT|POSITION|PRECISION|PREFER-DATASET|PREPARED|PREPARE-STRING|PREPROCESS|PREPROC|PREPROCE|PREPROCES|PRESELECT|PRESEL|PRESELE|PRESELEC|PREV|PREV-COLUMN|PREV-SIBLING|PREV-TAB-ITEM|PREV-TAB-I|PREV-TAB-IT|PREV-TAB-ITE|PRIMARY|PRINTER|PRINTER-CONTROL-HANDLE|PRINTER-HDC|PRINTER-NAME|PRINTER-PORT|PRINTER-SETUP|PRIVATE|PRIVATE-DATA|PRIVATE-D|PRIVATE-DA|PRIVATE-DAT|PRIVILEGES|PROCEDURE|PROCE|PROCED|PROCEDU|PROCEDUR|PROCEDURE-CALL-TYPE|PROCESS|PROC-HANDLE|PROC-HA|PROC-HAN|PROC-HAND|PROC-HANDL|PROC-STATUS|PROC-ST|PROC-STA|PROC-STAT|PROC-STATU|proc-text|proc-text-buffer|PROFILER|PROGRAM-NAME|PROGRESS|PROGRESS-SOURCE|PROGRESS-S|PROGRESS-SO|PROGRESS-SOU|PROGRESS-SOUR|PROGRESS-SOURC|PROMPT|PROMPT-FOR|PROMPT-F|PROMPT-FO|PROMSGS|PROPATH|PROPERTY|PROTECTED|PROVERSION|PROVERS|PROVERSI|PROVERSIO|PROXY|PROXY-PASSWORD|PROXY-USERID|PUBLIC|PUBLIC-ID|PUBLISH|PUBLISHED-EVENTS|PUT|PUTBYTE|PUT-BYTE|PUT-DOUBLE|PUT-FLOAT|PUT-INT64|PUT-KEY-VALUE|PUT-KEY-VAL|PUT-KEY-VALU|PUT-LONG|PUT-SHORT|PUT-STRING|PUT-UNSIGNED-LONG' + \r\n\t 'QUERY|QUERY-CLOSE|QUERY-OFF-END|QUERY-OPEN|QUERY-PREPARE|QUERY-TUNING|QUESTION|QUIT|QUOTER' + \r\n\t 'RADIO-BUTTONS|RADIO-SET|RANDOM|RAW-TRANSFER|RCODE-INFORMATION|RCODE-INFO|RCODE-INFOR|RCODE-INFORM|RCODE-INFORMA|RCODE-INFORMAT|RCODE-INFORMATI|RCODE-INFORMATIO|READ-AVAILABLE|READ-EXACT-NUM|READ-FILE|READKEY|READ-ONLY|READ-XML|READ-XMLSCHEMA|REAL|RECORD-LENGTH|RECTANGLE|RECT|RECTA|RECTAN|RECTANG|RECTANGL|RECURSIVE|REFERENCE-ONLY|REFRESH|REFRESHABLE|REFRESH-AUDIT-POLICY|REGISTER-DOMAIN|RELEASE|REMOTE|REMOVE-EVENTS-PROCEDURE|REMOVE-SUPER-PROCEDURE|REPEAT|REPLACE|REPLACE-SELECTION-TEXT|REPOSITION|REPOSITION-BACKWARD|REPOSITION-FORWARD|REPOSITION-MODE|REPOSITION-TO-ROW|REPOSITION-TO-ROWID|REQUEST|RESET|RESIZABLE|RESIZA|RESIZAB|RESIZABL|RESIZE|RESTART-ROW|RESTART-ROWID|RETAIN|RETAIN-SHAPE|RETRY|RETRY-CANCEL|RETURN|RETURN-INSERTED|RETURN-INS|RETURN-INSE|RETURN-INSER|RETURN-INSERT|RETURN-INSERTE|RETURNS|RETURN-TO-START-DIR|RETURN-TO-START-DI|RETURN-VALUE|RETURN-VAL|RETURN-VALU|RETURN-VALUE-DATA-TYPE|REVERSE-FROM|REVERT|REVOKE|RGB-VALUE|RIGHT-ALIGNED|RETURN-ALIGN|RETURN-ALIGNE|RIGHT-TRIM|R-INDEX|ROLES|ROUND|ROUTINE-LEVEL|ROW|ROW-HEIGHT-CHARS|ROW-HEIGHT-PIXELS|ROW-MARKERS|ROW-OF|ROW-RESIZABLE|RULE|RUN|RUN-PROCEDURE' + \r\n\t 'SAVE|SAVE-AS|SAVE-FILE|SAX-COMPLETE|SAX-COMPLE|SAX-COMPLET|SAX-PARSE|SAX-PARSE-FIRST|SAX-PARSE-NEXT|SAX-PARSER-ERROR|SAX-RUNNING|SAX-UNINITIALIZED|SAX-WRITE-BEGIN|SAX-WRITE-COMPLETE|SAX-WRITE-CONTENT|SAX-WRITE-ELEMENT|SAX-WRITE-ERROR|SAX-WRITE-IDLE|SAX-WRITER|SAX-WRITE-TAG|SCHEMA|SCHEMA-LOCATION|SCHEMA-MARSHAL|SCHEMA-PATH|SCREEN|SCREEN-IO|SCREEN-LINES|SCREEN-VALUE|SCREEN-VAL|SCREEN-VALU|SCROLL|SCROLLABLE|SCROLLBAR-HORIZONTAL|SCROLLBAR-H|SCROLLBAR-HO|SCROLLBAR-HOR|SCROLLBAR-HORI|SCROLLBAR-HORIZ|SCROLLBAR-HORIZO|SCROLLBAR-HORIZON|SCROLLBAR-HORIZONT|SCROLLBAR-HORIZONTA|SCROLL-BARS|SCROLLBAR-VERTICAL|SCROLLBAR-V|SCROLLBAR-VE|SCROLLBAR-VER|SCROLLBAR-VERT|SCROLLBAR-VERTI|SCROLLBAR-VERTIC|SCROLLBAR-VERTICA|SCROLL-DELTA|SCROLLED-ROW-POSITION|SCROLLED-ROW-POS|SCROLLED-ROW-POSI|SCROLLED-ROW-POSIT|SCROLLED-ROW-POSITI|SCROLLED-ROW-POSITIO|SCROLLING|SCROLL-OFFSET|SCROLL-TO-CURRENT-ROW|SCROLL-TO-ITEM|SCROLL-TO-I|SCROLL-TO-IT|SCROLL-TO-ITE|SCROLL-TO-SELECTED-ROW|SDBNAME|SEAL|SEAL-TIMESTAMP|SEARCH|SEARCH-SELF|SEARCH-TARGET|SECTION|SECURITY-POLICY|SEEK|SELECT|SELECTABLE|SELECT-ALL|SELECTED|SELECT-FOCUSED-ROW|SELECTION|SELECTION-END|SELECTION-LIST|SELECTION-START|SELECTION-TEXT|SELECT-NEXT-ROW|SELECT-PREV-ROW|SELECT-ROW|SELF|SEND|send-sql-statement|send-sql|SENSITIVE|SEPARATE-CONNECTION|SEPARATOR-FGCOLOR|SEPARATORS|SERVER|SERVER-CONNECTION-BOUND|SERVER-CONNECTION-BOUND-REQUEST|SERVER-CONNECTION-CONTEXT|SERVER-CONNECTION-ID|SERVER-OPERATING-MODE|SESSION|SESSION-ID|SET|SET-APPL-CONTEXT|SET-ATTR-CALL-TYPE|SET-ATTRIBUTE-NODE|SET-BLUE-VALUE|SET-BLUE|SET-BLUE-|SET-BLUE-V|SET-BLUE-VA|SET-BLUE-VAL|SET-BLUE-VALU|SET-BREAK|SET-BUFFERS|SET-CALLBACK|SET-CLIENT|SET-COMMIT|SET-CONTENTS|SET-CURRENT-VALUE|SET-DB-CLIENT|SET-DYNAMIC|SET-EVENT-MANAGER-OPTION|SET-GREEN-VALUE|SET-GREEN|SET-GREEN-|SET-GREEN-V|SET-GREEN-VA|SET-GREEN-VAL|SET-GREEN-VALU|SET-INPUT-SOURCE|SET-OPTION|SET-OUTPUT-DESTINATION|SET-PARAMETER|SET-POINTER-VALUE|SET-PROPERTY|SET-RED-VALUE|SET-RED|SET-RED-|SET-RED-V|SET-RED-VA|SET-RED-VAL|SET-RED-VALU|SET-REPOSITIONED-ROW|SET-RGB-VALUE|SET-ROLLBACK|SET-SELECTION|SET-SIZE|SET-SORT-ARROW|SETUSERID|SETUSER|SETUSERI|SET-WAIT-STATE|SHA1-DIGEST|SHARED|SHARE-LOCK|SHARE|SHARE-|SHARE-L|SHARE-LO|SHARE-LOC|SHOW-IN-TASKBAR|SHOW-STATS|SHOW-STAT|SIDE-LABEL-HANDLE|SIDE-LABEL-H|SIDE-LABEL-HA|SIDE-LABEL-HAN|SIDE-LABEL-HAND|SIDE-LABEL-HANDL|SIDE-LABELS|SIDE-LAB|SIDE-LABE|SIDE-LABEL|SILENT|SIMPLE|SINGLE|SIZE|SIZE-CHARS|SIZE-C|SIZE-CH|SIZE-CHA|SIZE-CHAR|SIZE-PIXELS|SIZE-P|SIZE-PI|SIZE-PIX|SIZE-PIXE|SIZE-PIXEL|SKIP|SKIP-DELETED-RECORD|SLIDER|SMALL-ICON|SMALLINT|SMALL-TITLE|SOME|SORT|SORT-ASCENDING|SORT-NUMBER|SOURCE|SOURCE-PROCEDURE|SPACE|SQL|SQRT|SSL-SERVER-NAME|STANDALONE|START|START-DOCUMENT|START-ELEMENT|START-MOVE|START-RESIZE|START-ROW-RESIZE|STATE-DETAIL|STATIC|STATUS|STATUS-AREA|STATUS-AREA-FONT|STDCALL|STOP|STOP-PARSING|STOPPED|STOPPE|STORED-PROCEDURE|STORED-PROC|STORED-PROCE|STORED-PROCED|STORED-PROCEDU|STORED-PROCEDUR|STREAM|STREAM-HANDLE|STREAM-IO|STRETCH-TO-FIT|STRICT|STRING|STRING-VALUE|STRING-XREF|SUB-AVERAGE|SUB-AVE|SUB-AVER|SUB-AVERA|SUB-AVERAG|SUB-COUNT|SUB-MAXIMUM|SUM-MAX|SUM-MAXI|SUM-MAXIM|SUM-MAXIMU|SUB-MENU|SUBSUB-|SUB-MIN|SUBSCRIBE|SUBSTITUTE|SUBST|SUBSTI|SUBSTIT|SUBSTITU|SUBSTITUT|SUBSTRING|SUBSTR|SUBSTRI|SUBSTRIN|SUB-TOTAL|SUBTYPE|SUM|SUPER|SUPER-PROCEDURES|SUPPRESS-NAMESPACE-PROCESSING|SUPPRESS-WARNINGS|SUPPRESS-W|SUPPRESS-WA|SUPPRESS-WAR|SUPPRESS-WARN|SUPPRESS-WARNI|SUPPRESS-WARNIN|SUPPRESS-WARNING|SYMMETRIC-ENCRYPTION-ALGORITHM|SYMMETRIC-ENCRYPTION-IV|SYMMETRIC-ENCRYPTION-KEY|SYMMETRIC-SUPPORT|SYSTEM-ALERT-BOXES|SYSTEM-ALERT|SYSTEM-ALERT-|SYSTEM-ALERT-B|SYSTEM-ALERT-BO|SYSTEM-ALERT-BOX|SYSTEM-ALERT-BOXE|SYSTEM-DIALOG|SYSTEM-HELP|SYSTEM-ID' + \r\n\t 'TABLE|TABLE-HANDLE|TABLE-NUMBER|TAB-POSITION|TAB-STOP|TARGET|TARGET-PROCEDURE|TEMP-DIRECTORY|TEMP-DIR|TEMP-DIRE|TEMP-DIREC|TEMP-DIRECT|TEMP-DIRECTO|TEMP-DIRECTOR|TEMP-TABLE|TEMP-TABLE-PREPARE|TERM|TERMINAL|TERM|TERMI|TERMIN|TERMINA|TERMINATE|TEXT|TEXT-CURSOR|TEXT-SEG-GROW|TEXT-SELECTED|THEN|THIS-OBJECT|THIS-PROCEDURE|THREE-D|THROW|THROUGH|THRU|TIC-MARKS|TIME|TIME-SOURCE|TITLE|TITLE-BGCOLOR|TITLE-BGC|TITLE-BGCO|TITLE-BGCOL|TITLE-BGCOLO|TITLE-DCOLOR|TITLE-DC|TITLE-DCO|TITLE-DCOL|TITLE-DCOLO|TITLE-FGCOLOR|TITLE-FGC|TITLE-FGCO|TITLE-FGCOL|TITLE-FGCOLO|TITLE-FONT|TITLE-FO|TITLE-FON|TO|TODAY|TOGGLE-BOX|TOOLTIP|TOOLTIPS|TOPIC|TOP-NAV-QUERY|TOP-ONLY|TO-ROWID|TOTAL|TRAILING|TRANS|TRANSACTION|TRANSACTION-MODE|TRANS-INIT-PROCEDURE|TRANSPARENT|TRIGGER|TRIGGERS|TRIM|TRUE|TRUNCATE|TRUNC|TRUNCA|TRUNCAT|TYPE|TYPE-OF' + \r\n\t 'UNBOX|UNBUFFERED|UNBUFF|UNBUFFE|UNBUFFER|UNBUFFERE|UNDERLINE|UNDERL|UNDERLI|UNDERLIN|UNDO|UNFORMATTED|UNFORM|UNFORMA|UNFORMAT|UNFORMATT|UNFORMATTE|UNION|UNIQUE|UNIQUE-ID|UNIQUE-MATCH|UNIX|UNLESS-HIDDEN|UNLOAD|UNSIGNED-LONG|UNSUBSCRIBE|UP|UPDATE|UPDATE-ATTRIBUTE|URL|URL-DECODE|URL-ENCODE|URL-PASSWORD|URL-USERID|USE|USE-DICT-EXPS|USE-FILENAME|USE-INDEX|USER|USE-REVVIDEO|USERID|USER-ID|USE-TEXT|USE-UNDERLINE|USE-WIDGET-POOL|USING' + \r\n\t 'V6DISPLAY|V6FRAME|VALIDATE|VALIDATE-EXPRESSION|VALIDATE-MESSAGE|VALIDATE-SEAL|VALIDATION-ENABLED|VALID-EVENT|VALID-HANDLE|VALID-OBJECT|VALUE|VALUE-CHANGED|VALUES|VARIABLE|VAR|VARI|VARIA|VARIAB|VARIABL|VERBOSE|VERSION|VERTICAL|VERT|VERTI|VERTIC|VERTICA|VIEW|VIEW-AS|VIEW-FIRST-COLUMN-ON-REOPEN|VIRTUAL-HEIGHT-CHARS|VIRTUAL-HEIGHT|VIRTUAL-HEIGHT-|VIRTUAL-HEIGHT-C|VIRTUAL-HEIGHT-CH|VIRTUAL-HEIGHT-CHA|VIRTUAL-HEIGHT-CHAR|VIRTUAL-HEIGHT-PIXELS|VIRTUAL-HEIGHT-P|VIRTUAL-HEIGHT-PI|VIRTUAL-HEIGHT-PIX|VIRTUAL-HEIGHT-PIXE|VIRTUAL-HEIGHT-PIXEL|VIRTUAL-WIDTH-CHARS|VIRTUAL-WIDTH|VIRTUAL-WIDTH-|VIRTUAL-WIDTH-C|VIRTUAL-WIDTH-CH|VIRTUAL-WIDTH-CHA|VIRTUAL-WIDTH-CHAR|VIRTUAL-WIDTH-PIXELS|VIRTUAL-WIDTH-P|VIRTUAL-WIDTH-PI|VIRTUAL-WIDTH-PIX|VIRTUAL-WIDTH-PIXE|VIRTUAL-WIDTH-PIXEL|VISIBLE|VOID' + \r\n\t 'WAIT|WAIT-FOR|WARNING|WEB-CONTEXT|WEEKDAY|WHEN|WHERE|WHILE|WIDGET|WIDGET-ENTER|WIDGET-E|WIDGET-EN|WIDGET-ENT|WIDGET-ENTE|WIDGET-ID|WIDGET-LEAVE|WIDGET-L|WIDGET-LE|WIDGET-LEA|WIDGET-LEAV|WIDGET-POOL|WIDTH|WIDTH-CHARS|WIDTH|WIDTH-|WIDTH-C|WIDTH-CH|WIDTH-CHA|WIDTH-CHAR|WIDTH-PIXELS|WIDTH-P|WIDTH-PI|WIDTH-PIX|WIDTH-PIXE|WIDTH-PIXEL|WINDOW|WINDOW-MAXIMIZED|WINDOW-MAXIM|WINDOW-MAXIMI|WINDOW-MAXIMIZ|WINDOW-MAXIMIZE|WINDOW-MINIMIZED|WINDOW-MINIM|WINDOW-MINIMI|WINDOW-MINIMIZ|WINDOW-MINIMIZE|WINDOW-NAME|WINDOW-NORMAL|WINDOW-STATE|WINDOW-STA|WINDOW-STAT|WINDOW-SYSTEM|WITH|WORD-INDEX|WORD-WRAP|WORK-AREA-HEIGHT-PIXELS|WORK-AREA-WIDTH-PIXELS|WORK-AREA-X|WORK-AREA-Y|WORKFILE|WORK-TABLE|WORK-TAB|WORK-TABL|WRITE|WRITE-CDATA|WRITE-CHARACTERS|WRITE-COMMENT|WRITE-DATA-ELEMENT|WRITE-EMPTY-ELEMENT|WRITE-ENTITY-REF|WRITE-EXTERNAL-DTD|WRITE-FRAGMENT|WRITE-MESSAGE|WRITE-PROCESSING-INSTRUCTION|WRITE-STATUS|WRITE-XML|WRITE-XMLSCHEMA' + \r\n\t 'X|XCODE|XML-DATA-TYPE|XML-NODE-TYPE|XML-SCHEMA-PATH|XML-SUPPRESS-NAMESPACE-PROCESSING|X-OF|XREF|XREF-XML' + \r\n\t 'Y|YEAR|YEAR-OFFSET|YES|YES-NOYES-NO-CANCEL|Y-OF'; \r\n\t\r\n\t Prism.languages.abl = {\r\n\t 'keyword': new RegExp('\\\\b(^' + ablKeyWords + '$)\\\\b', 'gmi'),\r\n\t\t\t'comment': {\r\n\t\t\t\tpattern: /\\/\\*[\\w\\W]*?\\*\\//,\r\n\t\t\t\tlookbehind: true\r\n\t\t\t},\r\n\t 'string': {\r\n\t pattern: /([\"'])(\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\r\n\t greedy: true\r\n\t },\r\n\t 'number': /\\b-?(0x[\\da-f]+|\\d*\\.?\\d+f?)\\b/i\r\n\t };\r\n\t\r\n\t\r\n\t(function() {\r\n\t\r\n\tif (typeof self === 'undefined' || !self.Prism || !self.document) {\r\n\t\treturn;\r\n\t}\r\n\t\r\n\tPrism.hooks.add('complete', function (env) {\r\n\t\tif (!env.code) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\r\n\t\t// works only for wrapped inside
 (not inline)\r\n\t\tvar pre = env.element.parentNode;\r\n\t\tvar clsReg = /\\s*\\bline-numbers\\b\\s*/;\r\n\t\tif (\r\n\t\t\t!pre || !/pre/i.test(pre.nodeName) ||\r\n\t\t\t\t// Abort only if nor the 
 nor the  have the class\r\n\t\t\t(!clsReg.test(pre.className) && !clsReg.test(env.element.className))\r\n\t\t) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\r\n\t\tif (env.element.querySelector(\".line-numbers-rows\")) {\r\n\t\t\t// Abort if line numbers already exists\r\n\t\t\treturn;\r\n\t\t}\r\n\t\r\n\t\tif (clsReg.test(env.element.className)) {\r\n\t\t\t// Remove the class \"line-numbers\" from the \r\n\t\t\tenv.element.className = env.element.className.replace(clsReg, '');\r\n\t\t}\r\n\t\tif (!clsReg.test(pre.className)) {\r\n\t\t\t// Add the class \"line-numbers\" to the 
\r\n\t\t\tpre.className += ' line-numbers';\r\n\t\t}\r\n\t\r\n\t\tvar match = env.code.match(/\\n(?!$)/g);\r\n\t\tvar linesNum = match ? match.length + 1 : 1;\r\n\t\tvar lineNumbersWrapper;\r\n\t\r\n\t\tvar lines = new Array(linesNum + 1);\r\n\t\tlines = lines.join('');\r\n\t\r\n\t\tlineNumbersWrapper = document.createElement('span');\r\n\t\tlineNumbersWrapper.setAttribute('aria-hidden', 'true');\r\n\t\tlineNumbersWrapper.className = 'line-numbers-rows';\r\n\t\tlineNumbersWrapper.innerHTML = lines;\r\n\t\r\n\t\tif (pre.hasAttribute('data-start')) {\r\n\t\t\tpre.style.counterReset = 'linenumber ' + (parseInt(pre.getAttribute('data-start'), 10) - 1);\r\n\t\t}\r\n\t\r\n\t\tenv.element.appendChild(lineNumbersWrapper);\r\n\t\r\n\t});\r\n\t\r\n\t}());\r\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ },\n/* 456 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"    
\\r\\n
\\r\\n
\\r\\n {{fileName}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n    
\";\n\n/***/ },\n/* 457 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \".container {\\r\\n /* width: 600px;\\r\\n height: 400px; */\\r\\n /*background-color: #f5f2f0;*/\\r\\n}\\r\\n\\r\\n.preview-header {\\r\\n background-color:#025064;\\r\\n color: white;\\r\\n}\"\n\n/***/ },\n/* 458 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar FilterConfiguratorPipe = (function () {\r\n\t function FilterConfiguratorPipe() {\r\n\t }\r\n\t FilterConfiguratorPipe.prototype.transform = function (configurators, query) {\r\n\t if (query === '') {\r\n\t return configurators;\r\n\t }\r\n\t return configurators.filter(function (c) {\r\n\t return c.partNum.toLowerCase().indexOf(query.toLowerCase()) !== -1 ||\r\n\t c.description.toLowerCase().indexOf(query.toLowerCase()) !== -1;\r\n\t });\r\n\t };\r\n\t FilterConfiguratorPipe = __decorate([\r\n\t core_1.Pipe({ name: 'filterConfigurator' })\r\n\t ], FilterConfiguratorPipe);\r\n\t return FilterConfiguratorPipe;\r\n\t}());\r\n\texports.FilterConfiguratorPipe = FilterConfiguratorPipe;\r\n\n\n/***/ },\n/* 459 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tConfigurators ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_configurators?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_configurators?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\tDescription {{configurator?.description}}\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\tPart {{configurator?.partNum}}\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\tKeep\\r\\n\\t\\t\\t\\t\\tReviewed\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
PagesInputsLast ChangedUse 12 MonthsComplexityCodeLOC
{{configurator?.pages}}{{configurator?.inputs}}{{configurator?.lastChanged | date: 'medium'}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tJobs: {{configurator?.configuredJobsLast12Months}}, Orders: {{configurator?.configuredOrdersLast12Months}}, PO: {{configurator?.configuredPOLast12Months}},\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tQuotes: {{configurator?.configuredQuotesLast12Months}}\\r\\n\\t\\t\\t\\t\\t\\t\\t{{configurator?.complexity}}\\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t{{configurator?.linesOfCode}}
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tSelf\\r\\n\\t\\t\\t\\t\\t\\tEpicor\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tExternal Dependencies \\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
10\\\">\\r\\n\\t\\t\\t View: \\r\\n\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n/***/ },\n/* 460 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar sites_service_1 = __webpack_require__(371);\r\n\tvar code_dialog_component_1 = __webpack_require__(454);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar customisations_pipe_1 = __webpack_require__(461);\r\n\tvar complexity_type_service_1 = __webpack_require__(440);\r\n\tvar CustomisationsComponent = (function () {\r\n\t function CustomisationsComponent(pagerService, complexityService, sitesService, dialog, viewContainerRef) {\r\n\t this.pagerService = pagerService;\r\n\t this.complexityService = complexityService;\r\n\t this.sitesService = sitesService;\r\n\t this.dialog = dialog;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this._customisations = [];\r\n\t this._customisationsCC = [];\r\n\t this.onChange = new core_1.EventEmitter();\r\n\t this.freezeInputs = false;\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t this.keep = false;\r\n\t this.reviewed = false;\r\n\t this.search = '';\r\n\t this.selectedFilter = {};\r\n\t this.pager = {};\r\n\t this.pageSize = 10;\r\n\t this.kineticAllFlag = false;\r\n\t this.filterCustomisationPipe = new customisations_pipe_1.FilterCustomisationPipe();\r\n\t }\r\n\t Object.defineProperty(CustomisationsComponent.prototype, \"data\", {\r\n\t get: function () { return this._customisations; },\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t if (data.uiCustomizations) {\r\n\t if (data.uiCustomizations) {\r\n\t this._customisationsCC = data.uiCustomizations;\r\n\t this._customisationsCC.forEach(function (element) {\r\n\t if (element.hasOwnProperty('cloudComplexity') == false) {\r\n\t element.cloudComplexity = false;\r\n\t }\r\n\t if (element.hasOwnProperty('cloudComplexityType') == false) {\r\n\t element.cloudComplexityType = 'None';\r\n\t }\r\n\t if (element.hasOwnProperty('cloudComplexityDescription') == false) {\r\n\t element.cloudComplexityDescription = '';\r\n\t }\r\n\t });\r\n\t this._customisations = this._customisationsCC;\r\n\t }\r\n\t }\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t CustomisationsComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.onFilterCustom.subscribe(function (res) {\r\n\t _this.selectedFilter = res;\r\n\t _this.filterCustom(_this.selectedFilter, 1);\r\n\t });\r\n\t this.setPage(1);\r\n\t this.onAnalysisRefresh.subscribe(function (res) {\r\n\t _this.freezeInputs = res;\r\n\t });\r\n\t this.checkKineticFlag();\r\n\t };\r\n\t CustomisationsComponent.prototype.filterCustom = function (filter, page) {\r\n\t var customisations = this._customisations;\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t customisations = this.setCustomisationFilter(filter, customisations);\r\n\t this.pager = this.pagerService.getPager(customisations.length, page, this.pageSize);\r\n\t this.pagedItems = customisations.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t CustomisationsComponent.prototype.setCustomisationFilter = function (filter, customisations) {\r\n\t customisations = this.pagerService.filter('custom', customisations, filter);\r\n\t return customisations;\r\n\t };\r\n\t CustomisationsComponent.prototype.filterCustomisation = function (query, page) {\r\n\t var customisations = this._customisations;\r\n\t if (query === '') {\r\n\t this.setPage(1);\r\n\t }\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t customisations = this.filterCustomisationPipe.transform(customisations, query);\r\n\t customisations = this.setCustomisationFilter(this.selectedFilter, customisations);\r\n\t this.pager = this.pagerService.getPager(customisations.length, page, this.pageSize);\r\n\t this.pagedItems = customisations.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t CustomisationsComponent.prototype.toggle = function () {\r\n\t if (this.opened) {\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t else {\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t };\r\n\t CustomisationsComponent.prototype.previewCode = function (url, name, language) {\r\n\t var _this = this;\r\n\t if (url) {\r\n\t if (language === '') {\r\n\t language = 'VB.Net';\r\n\t }\r\n\t this.sitesService.getFile(url + this.sas).subscribe(function (res) {\r\n\t var preview = {\r\n\t source: res.text(),\r\n\t language: language,\r\n\t downloadUrl: url + _this.sas,\r\n\t name: name\r\n\t };\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = _this.viewContainerRef;\r\n\t _this.dialogRef = _this.dialog.open(code_dialog_component_1.CodeDialog, config);\r\n\t _this.dialogRef.componentInstance.render(preview);\r\n\t _this.dialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.dialogRef = null;\r\n\t });\r\n\t }, function (err) {\r\n\t console.error(err);\r\n\t });\r\n\t }\r\n\t };\r\n\t CustomisationsComponent.prototype.keepAll = function (checked) {\r\n\t this._customisations.forEach(function (customisation) {\r\n\t customisation.keep = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t CustomisationsComponent.prototype.reviewedAll = function (checked) {\r\n\t this._customisations.forEach(function (customisation) {\r\n\t customisation.reviewed = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t CustomisationsComponent.prototype.kineticAll = function (checked) {\r\n\t this._customisations.forEach(function (customisation) {\r\n\t if (customisation.kineticAvailable) {\r\n\t customisation.kinetic = checked;\r\n\t }\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t CustomisationsComponent.prototype.checkKineticFlag = function () {\r\n\t var kineticCount = 0;\r\n\t this._customisations.forEach(function (customisation) {\r\n\t if (typeof customisation.kineticAvailable != 'undefined') {\r\n\t kineticCount++;\r\n\t if (typeof customisation.kinetic == 'undefined') {\r\n\t customisation.kinetic = false;\r\n\t }\r\n\t }\r\n\t });\r\n\t if (kineticCount > 0)\r\n\t this.kineticAllFlag = true;\r\n\t };\r\n\t CustomisationsComponent.prototype.countReviewed = function () {\r\n\t var count = 0;\r\n\t this._customisations.forEach(function (customisation) {\r\n\t count += customisation.reviewed ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t CustomisationsComponent.prototype.countKeep = function () {\r\n\t var count = 0;\r\n\t this._customisations.forEach(function (customisation) {\r\n\t count += customisation.keep ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t CustomisationsComponent.prototype.countKinetic = function () {\r\n\t var count = 0;\r\n\t this._customisations.forEach(function (customisation) {\r\n\t count += customisation.kinetic ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t CustomisationsComponent.prototype.previewCodeDisabled = function (item) {\r\n\t if (item.customizationSourceCode && item.customizationSourceCode.cloudFilename) {\r\n\t return false;\r\n\t }\r\n\t return true;\r\n\t };\r\n\t CustomisationsComponent.prototype.KeepCheckBoxEnabled = function (item) {\r\n\t this.freezeInputs = false;\r\n\t return false;\r\n\t };\r\n\t CustomisationsComponent.prototype.previewCodeIcon = function (item) {\r\n\t if (this.previewCodeDisabled(item)) {\r\n\t return \"cloud_download\";\r\n\t }\r\n\t return \"cloud_download\";\r\n\t };\r\n\t CustomisationsComponent.prototype.setPage = function (page) {\r\n\t if (page < 1 || page > this.pager.totalPages) {\r\n\t return;\r\n\t }\r\n\t if (this.search !== '') {\r\n\t this.filterCustomisation(this.search, page);\r\n\t }\r\n\t else {\r\n\t var customisations = this.setCustomisationFilter(this.selectedFilter, this._customisations);\r\n\t this.pager = this.pagerService.getPager(customisations.length, page, this.pageSize);\r\n\t this.pagedItems = customisations.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t }\r\n\t };\r\n\t CustomisationsComponent.prototype.showKineticCompatible = function (item) {\r\n\t if (item.kineticAvailable == false &&\r\n\t (item.formName == \"Menu.Mes.MESMenu\" ||\r\n\t (item.formName.toString().toLocaleLowerCase().startsWith(\"app.\") && item.formName.toString().toLocaleLowerCase().endsWith(\".maincontroller\")))) {\r\n\t return true;\r\n\t }\r\n\t return item.kineticAvailable == true && item.kineticCompatible != null;\r\n\t };\r\n\t CustomisationsComponent.prototype.showKineticComplexity = function (item) {\r\n\t return (item.kineticAvailable == true && item.kineticComplexity != null &&\r\n\t item.kineticComplexity != KineticComplexity.NotSet);\r\n\t };\r\n\t CustomisationsComponent.prototype.showCustomEventsUnconvertible = function (item) {\r\n\t return item.kineticAvailable == true && item.customEvents == true && item.customEventsConvertible == false;\r\n\t };\r\n\t CustomisationsComponent.prototype.showCustomRowRulesUnconvertible = function (item) {\r\n\t return item.kineticAvailable == true && item.customRowRules == true && item.customRowRulesConvertible == false;\r\n\t };\r\n\t CustomisationsComponent.prototype.showCustomLayoutUnconvertible = function (item) {\r\n\t return item.kineticAvailable == true && item.customLayout == true && item.customLayoutConvertible == false;\r\n\t };\r\n\t CustomisationsComponent.prototype.showCustomCode = function (item) {\r\n\t return item.kineticAvailable == true && item.customCode == true;\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], CustomisationsComponent.prototype, \"onAnalysisRefresh\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], CustomisationsComponent.prototype, \"onFilterCustom\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", String)\r\n\t ], CustomisationsComponent.prototype, \"sas\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], CustomisationsComponent.prototype, \"user\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], CustomisationsComponent.prototype, \"data\", null);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], CustomisationsComponent.prototype, \"onChange\", void 0);\r\n\t CustomisationsComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'customisations',\r\n\t template: __webpack_require__(462),\r\n\t styles: [__webpack_require__(463)],\r\n\t providers: [sites_service_1.SitesService, pager_service_1.PagerService, complexity_type_service_1.ComplexityService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [pager_service_1.PagerService,\r\n\t complexity_type_service_1.ComplexityService,\r\n\t sites_service_1.SitesService,\r\n\t material_1.MdDialog,\r\n\t core_1.ViewContainerRef])\r\n\t ], CustomisationsComponent);\r\n\t return CustomisationsComponent;\r\n\t}());\r\n\texports.CustomisationsComponent = CustomisationsComponent;\r\n\tvar KineticCompatibility;\r\n\t(function (KineticCompatibility) {\r\n\t KineticCompatibility[KineticCompatibility[\"NotSet\"] = 0] = \"NotSet\";\r\n\t KineticCompatibility[KineticCompatibility[\"Compatible\"] = 1] = \"Compatible\";\r\n\t KineticCompatibility[KineticCompatibility[\"PartiallyCompatible\"] = 2] = \"PartiallyCompatible\";\r\n\t KineticCompatibility[KineticCompatibility[\"Rework\"] = 3] = \"Rework\";\r\n\t KineticCompatibility[KineticCompatibility[\"NotCompatible\"] = 4] = \"NotCompatible\";\r\n\t})(KineticCompatibility = exports.KineticCompatibility || (exports.KineticCompatibility = {}));\r\n\tvar KineticComplexity;\r\n\t(function (KineticComplexity) {\r\n\t KineticComplexity[KineticComplexity[\"NotSet\"] = 0] = \"NotSet\";\r\n\t KineticComplexity[KineticComplexity[\"Simple\"] = 1] = \"Simple\";\r\n\t KineticComplexity[KineticComplexity[\"Medium\"] = 2] = \"Medium\";\r\n\t KineticComplexity[KineticComplexity[\"Complex\"] = 3] = \"Complex\";\r\n\t})(KineticComplexity = exports.KineticComplexity || (exports.KineticComplexity = {}));\r\n\tvar CloudComplexityType;\r\n\t(function (CloudComplexityType) {\r\n\t CloudComplexityType[CloudComplexityType[\"None\"] = 0] = \"None\";\r\n\t CloudComplexityType[CloudComplexityType[\"Reflection\"] = 1] = \"Reflection\";\r\n\t CloudComplexityType[CloudComplexityType[\"FileStream\"] = 2] = \"FileStream\";\r\n\t CloudComplexityType[CloudComplexityType[\"DirectDBAccess\"] = 3] = \"DirectDBAccess\";\r\n\t CloudComplexityType[CloudComplexityType[\"ExternalDll\"] = 4] = \"ExternalDll\";\r\n\t})(CloudComplexityType = exports.CloudComplexityType || (exports.CloudComplexityType = {}));\r\n\n\n/***/ },\n/* 461 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar FilterCustomisationPipe = (function () {\r\n\t function FilterCustomisationPipe() {\r\n\t }\r\n\t FilterCustomisationPipe.prototype.transform = function (customisations, query) {\r\n\t if (query === '') {\r\n\t return customisations;\r\n\t }\r\n\t return customisations.filter(function (c) {\r\n\t return c.customizationKey.toLowerCase().indexOf(query.toLowerCase()) !== -1 ||\r\n\t c.formName.toLowerCase().indexOf(query.toLowerCase()) !== -1;\r\n\t });\r\n\t };\r\n\t FilterCustomisationPipe = __decorate([\r\n\t core_1.Pipe({ name: 'filterCustomisation' })\r\n\t ], FilterCustomisationPipe);\r\n\t return FilterCustomisationPipe;\r\n\t}());\r\n\texports.FilterCustomisationPipe = FilterCustomisationPipe;\r\n\n\n/***/ },\n/* 462 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t\\tKinetic All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\r\\n\\t\\r\\n\\t\\tUser Interface Customisations ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_customisations?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_customisations?.length}})\\r\\n\\t\\tKinetic ({{ countKinetic() }}/{{_customisations?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t Cloud Warning \\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t Cloud Warning \\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t Cloud Warning \\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t Cloud Warning \\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t Cloud Warning \\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n \\t Classic \\r\\n\\t\\t\\t\\t\\t \\r\\n\\r\\n\\t\\t\\t\\t\\tKeep\\r\\n\\t\\t\\t\\t\\tReviewed\\r\\n\\t\\t\\t\\t\\tKinetic \\r\\n\\t\\t\\t\\t\\tKinetic \\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
Kinetic Not Available
\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
Kinetic Compatible
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
Kinetic Partially Compatible
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
Kinetic Rework
\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tclosed_caption\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n {{menuLink.location}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
10\\\">\\r\\n\\t\\t\\t View: \\r\\n\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n/***/ },\n/* 463 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \".component-actions {\\r\\n float:right;\\r\\n padding: 4px;\\r\\n}\\r\\n\\r\\n.toolbar-action {\\r\\n margin-right: 6px;\\r\\n font-size: 14px;\\r\\n}\\r\\n\\r\\n.customisation-container {\\r\\n margin-top: 10px;\\r\\n border:1px solid #616161;\\r\\n}\\r\\n\\r\\n.customisation-header {\\r\\n height: 20px;\\r\\n padding: 8px;\\r\\n background-color: #F5F5F5;\\r\\n border-bottom: 1px solid #E0E0E0;\\r\\n}\\r\\n\\r\\ndiv.kinetic-available,\\r\\ndiv.kinetic-compatible,\\r\\ndiv.kinetic-partial-compatible,\\r\\ndiv.kinetic-not-compatible {\\r\\n width: 70%;\\r\\n margin-bottom: .3rem;\\r\\n border-radius: .25rem;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\ndiv.kinetic-available,\\r\\ndiv.kinetic-compatible {\\r\\n background-color: #a3d183;\\r\\n color: white;\\r\\n}\\r\\n\\r\\ndiv.kinetic-partial-compatible {\\r\\n background-color: #86898D;\\r\\n color: white;\\r\\n}\\r\\n\\r\\ndiv.kinetic-not-compatible {\\r\\n border: 1px solid #a3d183;\\r\\n}\\r\\n\\r\\nimg.icon {\\r\\n height: 24px;\\r\\n width: 24px;\\r\\n}\"\n\n/***/ },\n/* 464 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar sites_service_1 = __webpack_require__(371);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar kineticUXs_pipe_1 = __webpack_require__(465);\r\n\tvar complexity_type_service_1 = __webpack_require__(440);\r\n\tvar KineticUXComponent = (function () {\r\n\t function KineticUXComponent(pagerService, complexityService, sitesService, dialog, viewContainerRef) {\r\n\t this.pagerService = pagerService;\r\n\t this.complexityService = complexityService;\r\n\t this.sitesService = sitesService;\r\n\t this.dialog = dialog;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this._kineticUXs = [];\r\n\t this.onChange = new core_1.EventEmitter();\r\n\t this.isFileSystemEnabled = false;\r\n\t this.freezeInputs = false;\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t this.keep = false;\r\n\t this.reviewed = false;\r\n\t this.search = '';\r\n\t this.selectedFilter = {};\r\n\t this.pager = {};\r\n\t this.pageSize = 10;\r\n\t this.kineticAllFlag = false;\r\n\t this.filterCustomisationPipe = new kineticUXs_pipe_1.FilterKineticPipe();\r\n\t this.keepAllEnabled = true;\r\n\t this.fileName = \"\";\r\n\t }\r\n\t Object.defineProperty(KineticUXComponent.prototype, \"data\", {\r\n\t get: function () { return this._kineticUXs; },\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t if (data.kineticUXs) {\r\n\t this.isFileSystemEnabled = data.kineticUXs.isKineticFileSystemEnabled;\r\n\t this._kineticUXs = data.kineticUXs.kineticUxDetails;\r\n\t }\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t KineticUXComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.onFilterCustom.subscribe(function (res) {\r\n\t _this.selectedFilter = res;\r\n\t _this.filterCustom(_this.selectedFilter, 1);\r\n\t });\r\n\t this.setPage(1);\r\n\t this.onAnalysisRefresh.subscribe(function (res) {\r\n\t _this.freezeInputs = res;\r\n\t });\r\n\t this.disableKeepAllCheckbox();\r\n\t };\r\n\t KineticUXComponent.prototype.filterCustom = function (filter, page) {\r\n\t var kineticCustoms = this._kineticUXs;\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t kineticCustoms = this.setCustomisationFilter(filter, kineticCustoms);\r\n\t this.pager = this.pagerService.getPager(kineticCustoms.length, page, this.pageSize);\r\n\t this.pagedItems = kineticCustoms.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t KineticUXComponent.prototype.setCustomisationFilter = function (filter, kineticCustoms) {\r\n\t debugger;\r\n\t kineticCustoms = this.pagerService.filter('custom', kineticCustoms, filter);\r\n\t return kineticCustoms;\r\n\t };\r\n\t KineticUXComponent.prototype.filterCustomisation = function (query, page) {\r\n\t var kineticCustoms = this._kineticUXs;\r\n\t if (query === '') {\r\n\t this.setPage(1);\r\n\t }\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t kineticCustoms = this.filterCustomisationPipe.transform(kineticCustoms, query);\r\n\t kineticCustoms = this.setCustomisationFilter(this.selectedFilter, kineticCustoms);\r\n\t this.pager = this.pagerService.getPager(kineticCustoms.length, page, this.pageSize);\r\n\t this.pagedItems = kineticCustoms.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t KineticUXComponent.prototype.toggle = function () {\r\n\t if (this.opened) {\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t else {\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t };\r\n\t KineticUXComponent.prototype.previewCode = function (url) {\r\n\t if (url) {\r\n\t if (this.sas) {\r\n\t window.open(url + this.sas, \"_self\");\r\n\t }\r\n\t }\r\n\t };\r\n\t KineticUXComponent.prototype.keepAll = function (checked) {\r\n\t this._kineticUXs.forEach(function (kinetic) {\r\n\t if (!this.previewCodeDisabled(kinetic)) {\r\n\t kinetic.keep = checked;\r\n\t }\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t KineticUXComponent.prototype.disableKeepAllCheckbox = function () {\r\n\t var _this = this;\r\n\t var count = 0;\r\n\t this._kineticUXs.forEach(function (kinetic) {\r\n\t if (!_this.previewCodeDisabled(kinetic)) {\r\n\t count += 1;\r\n\t }\r\n\t });\r\n\t if (count < 1) {\r\n\t this.keepAllEnabled = false;\r\n\t }\r\n\t };\r\n\t KineticUXComponent.prototype.reviewedAll = function (checked) {\r\n\t this._kineticUXs.forEach(function (customisation) {\r\n\t customisation.reviewed = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t KineticUXComponent.prototype.countReviewed = function () {\r\n\t var count = 0;\r\n\t this._kineticUXs.forEach(function (customisation) {\r\n\t count += customisation.reviewed ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t KineticUXComponent.prototype.countKeep = function () {\r\n\t var count = 0;\r\n\t this._kineticUXs.forEach(function (customisation) {\r\n\t count += customisation.keep ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t KineticUXComponent.prototype.previewCodeDisabled = function (item) {\r\n\t if (item.kineticCustomization && item.kineticCustomization.cloudFilename) {\r\n\t return false;\r\n\t }\r\n\t return true;\r\n\t };\r\n\t KineticUXComponent.prototype.KeepCheckBoxEnabled = function (item) {\r\n\t this.freezeInputs = false;\r\n\t return false;\r\n\t };\r\n\t KineticUXComponent.prototype.previewCodeIcon = function (item) {\r\n\t if (this.previewCodeDisabled(item)) {\r\n\t return \"cloud_download\";\r\n\t }\r\n\t return \"cloud_download\";\r\n\t };\r\n\t KineticUXComponent.prototype.showFileName = function (filename) {\r\n\t if (filename != null && filename.length > 0) {\r\n\t length = filename.split('/').length;\r\n\t filename = filename.split('/')[length - 1];\r\n\t return filename;\r\n\t }\r\n\t else\r\n\t return \"\";\r\n\t };\r\n\t KineticUXComponent.prototype.setPage = function (page) {\r\n\t if (page < 1 || page > this.pager.totalPages) {\r\n\t return;\r\n\t }\r\n\t if (this.search !== '') {\r\n\t this.filterCustomisation(this.search, page);\r\n\t }\r\n\t else {\r\n\t var kineticCustoms = this.setCustomisationFilter(this.selectedFilter, this._kineticUXs);\r\n\t this.pager = this.pagerService.getPager(kineticCustoms.length, page, this.pageSize);\r\n\t this.pagedItems = kineticCustoms.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t }\r\n\t };\r\n\t KineticUXComponent.prototype.getKineticUxType = function (type) {\r\n\t if (type == 0)\r\n\t return \"Custom Base Application\";\r\n\t else\r\n\t return \"Custom Layer\";\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], KineticUXComponent.prototype, \"onAnalysisRefresh\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], KineticUXComponent.prototype, \"onFilterCustom\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", String)\r\n\t ], KineticUXComponent.prototype, \"sas\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], KineticUXComponent.prototype, \"user\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], KineticUXComponent.prototype, \"data\", null);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], KineticUXComponent.prototype, \"onChange\", void 0);\r\n\t KineticUXComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'kineticUXs',\r\n\t template: __webpack_require__(466),\r\n\t styles: [__webpack_require__(467)],\r\n\t providers: [sites_service_1.SitesService, pager_service_1.PagerService, complexity_type_service_1.ComplexityService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [pager_service_1.PagerService,\r\n\t complexity_type_service_1.ComplexityService,\r\n\t sites_service_1.SitesService,\r\n\t material_1.MdDialog,\r\n\t core_1.ViewContainerRef])\r\n\t ], KineticUXComponent);\r\n\t return KineticUXComponent;\r\n\t}());\r\n\texports.KineticUXComponent = KineticUXComponent;\r\n\tvar KineticUXType;\r\n\t(function (KineticUXType) {\r\n\t KineticUXType[KineticUXType[\"CustomBase\"] = 0] = \"CustomBase\";\r\n\t KineticUXType[KineticUXType[\"Layer\"] = 1] = \"Layer\";\r\n\t})(KineticUXType = exports.KineticUXType || (exports.KineticUXType = {}));\r\n\n\n/***/ },\n/* 465 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar FilterKineticPipe = (function () {\r\n\t function FilterKineticPipe() {\r\n\t }\r\n\t FilterKineticPipe.prototype.transform = function (customisations, query) {\r\n\t if (query === '') {\r\n\t return customisations;\r\n\t }\r\n\t return customisations.filter(function (c) {\r\n\t return c.key1.toLowerCase().indexOf(query.toLowerCase()) !== -1 ||\r\n\t c.key2.toLowerCase().indexOf(query.toLowerCase()) !== -1 ||\r\n\t c.description.toLowerCase().indexOf(query.toLowerCase()) !== -1;\r\n\t });\r\n\t };\r\n\t FilterKineticPipe = __decorate([\r\n\t core_1.Pipe({ name: 'filterkineticUX' })\r\n\t ], FilterKineticPipe);\r\n\t return FilterKineticPipe;\r\n\t}());\r\n\texports.FilterKineticPipe = FilterKineticPipe;\r\n\n\n/***/ },\n/* 466 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\r\\n\\t\\r\\n\\t\\tKinetic UX ({{pager?.totalItems}}) {{isFileSystemEnabled ==true? '[Kinetic has the File System enabled]' : '' }}\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_kineticUXs?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_kineticUXs?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\tKeep\\r\\n\\t\\t\\t\\t\\tReviewed\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n {{menuLink.location}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
10\\\">\\r\\n\\t\\t\\t View: \\r\\n\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n/***/ },\n/* 467 */\n463,\n/* 468 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar functions_pipe_1 = __webpack_require__(469);\r\n\tvar FunctionsComponent = (function () {\r\n\t function FunctionsComponent(pagerService) {\r\n\t this.pagerService = pagerService;\r\n\t this._functions = [];\r\n\t this.onChange = new core_1.EventEmitter();\r\n\t this.freezeInputs = false;\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t this.keep = false;\r\n\t this.reviewed = false;\r\n\t this.search = '';\r\n\t this.selectedFilter = {};\r\n\t this.pager = {};\r\n\t this.pageSize = 10;\r\n\t this.filterFunctionsPipe = new functions_pipe_1.FilterFunctionsPipe();\r\n\t this.keepAllEnabled = true;\r\n\t }\r\n\t Object.defineProperty(FunctionsComponent.prototype, \"data\", {\r\n\t get: function () { return this._functions; },\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t if (data.functions) {\r\n\t this._functions = data.functions;\r\n\t }\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t FunctionsComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.onFilterCustom.subscribe(function (res) {\r\n\t _this.selectedFilter = res;\r\n\t _this.filterCustom(_this.selectedFilter, 1);\r\n\t });\r\n\t this.setPage(1);\r\n\t this.onAnalysisRefresh.subscribe(function (res) {\r\n\t _this.freezeInputs = res;\r\n\t });\r\n\t this.disableKeepAllCheckbox();\r\n\t };\r\n\t FunctionsComponent.prototype.filterCustom = function (filter, page) {\r\n\t var funs = this._functions;\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t funs = this.setFunctionsFilter(filter, funs);\r\n\t this.pager = this.pagerService.getPager(funs.length, page, this.pageSize);\r\n\t this.pagedItems = funs.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t FunctionsComponent.prototype.setFunctionsFilter = function (filter, funs) {\r\n\t funs = this.pagerService.filter('custom', funs, filter);\r\n\t return funs;\r\n\t };\r\n\t FunctionsComponent.prototype.groupReferencesArray = function (data, n) {\r\n\t var group = new Array();\r\n\t for (var i = 0, j = 0; i < data.length; i++) {\r\n\t if (i >= n && i % n === 0)\r\n\t j++;\r\n\t group[j] = group[j] || [];\r\n\t group[j].push(data[i]);\r\n\t }\r\n\t return group;\r\n\t };\r\n\t FunctionsComponent.prototype.filterFunctions = function (query, page) {\r\n\t var funs = this._functions;\r\n\t if (query === '') {\r\n\t this.setPage(1);\r\n\t }\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t funs = this.filterFunctionsPipe.transform(funs, query);\r\n\t funs = this.setFunctionsFilter(this.selectedFilter, funs);\r\n\t this.pager = this.pagerService.getPager(funs.length, page, this.pageSize);\r\n\t this.pagedItems = funs.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t FunctionsComponent.prototype.toggle = function () {\r\n\t if (this.opened) {\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t else {\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t };\r\n\t FunctionsComponent.prototype.previewCode = function (url, name, language) {\r\n\t if (url) {\r\n\t if (this.sas) {\r\n\t window.open(url + this.sas, \"_self\");\r\n\t }\r\n\t }\r\n\t };\r\n\t FunctionsComponent.prototype.keepAll = function (checked) {\r\n\t this._functions.forEach(function (func) {\r\n\t if (!this.previewCodeDisabled(func)) {\r\n\t func.keep = checked;\r\n\t }\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t FunctionsComponent.prototype.disableKeepAllCheckbox = function () {\r\n\t var _this = this;\r\n\t var count = 0;\r\n\t this._functions.forEach(function (func) {\r\n\t if (!_this.previewCodeDisabled(func)) {\r\n\t count += 1;\r\n\t }\r\n\t });\r\n\t if (count < 1) {\r\n\t this.keepAllEnabled = false;\r\n\t }\r\n\t };\r\n\t FunctionsComponent.prototype.reviewedAll = function (checked) {\r\n\t this._functions.forEach(function (func) {\r\n\t func.reviewed = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t FunctionsComponent.prototype.countReviewed = function () {\r\n\t var count = 0;\r\n\t this._functions.forEach(function (func) {\r\n\t count += func.reviewed ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t FunctionsComponent.prototype.countKeep = function () {\r\n\t var count = 0;\r\n\t this._functions.forEach(function (func) {\r\n\t count += func.keep ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t FunctionsComponent.prototype.previewCodeDisabled = function (item) {\r\n\t if (item && item.functionFileAsset && item.functionFileAsset.cloudFilename) {\r\n\t return false;\r\n\t }\r\n\t return true;\r\n\t };\r\n\t FunctionsComponent.prototype.previewCodeIcon = function (item) {\r\n\t if (this.previewCodeDisabled(item)) {\r\n\t return \"cloud_download\";\r\n\t }\r\n\t return \"cloud_download\";\r\n\t };\r\n\t FunctionsComponent.prototype.setPage = function (page) {\r\n\t if (page < 1 || page > this.pager.totalPages) {\r\n\t return;\r\n\t }\r\n\t if (this.search !== '') {\r\n\t this.filterFunctions(this.search, page);\r\n\t }\r\n\t else {\r\n\t this.pager = this.pagerService.getPager(this._functions.length, page, this.pageSize);\r\n\t this.pagedItems = this._functions.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t }\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], FunctionsComponent.prototype, \"onAnalysisRefresh\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], FunctionsComponent.prototype, \"onFilterCustom\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", String)\r\n\t ], FunctionsComponent.prototype, \"sas\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], FunctionsComponent.prototype, \"data\", null);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], FunctionsComponent.prototype, \"onChange\", void 0);\r\n\t FunctionsComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'customFunctions',\r\n\t template: __webpack_require__(470),\r\n\t providers: [pager_service_1.PagerService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [pager_service_1.PagerService])\r\n\t ], FunctionsComponent);\r\n\t return FunctionsComponent;\r\n\t}());\r\n\texports.FunctionsComponent = FunctionsComponent;\r\n\n\n/***/ },\n/* 469 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar FilterFunctionsPipe = (function () {\r\n\t function FilterFunctionsPipe() {\r\n\t }\r\n\t FilterFunctionsPipe.prototype.transform = function (func, query) {\r\n\t if (query === '') {\r\n\t return func;\r\n\t }\r\n\t var filterResult = func.filter(function (c) {\r\n\t return c.libraryID.toLowerCase().indexOf(query.toLowerCase()) !== -1 ||\r\n\t c.functionID.toLowerCase().indexOf(query.toLowerCase()) !== -1;\r\n\t });\r\n\t if (filterResult == undefined || filterResult.length == 0) {\r\n\t filterResult = this.searchResult(func, query);\r\n\t }\r\n\t return filterResult;\r\n\t };\r\n\t FilterFunctionsPipe.prototype.searchResult = function (items, query) {\r\n\t var filteredList = [];\r\n\t if (query == undefined) {\r\n\t return items;\r\n\t }\r\n\t else if (items && items.length) {\r\n\t items.forEach(function (item) {\r\n\t if (query != null) {\r\n\t item.libraryReference.forEach(function (lib) { return lib.referenceID.forEach(function (libRef) {\r\n\t if (libRef.toLowerCase().indexOf(query.toLowerCase()) != -1) {\r\n\t filteredList.push(item);\r\n\t }\r\n\t }); });\r\n\t }\r\n\t });\r\n\t return filteredList;\r\n\t }\r\n\t else {\r\n\t return items;\r\n\t }\r\n\t };\r\n\t FilterFunctionsPipe = __decorate([\r\n\t core_1.Pipe({ name: 'filterFunctions' })\r\n\t ], FilterFunctionsPipe);\r\n\t return FilterFunctionsPipe;\r\n\t}());\r\n\texports.FilterFunctionsPipe = FilterFunctionsPipe;\r\n\n\n/***/ },\n/* 470 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tFunctions ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_functions?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_functions?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\tKeep\\r\\n\\t\\t\\t\\t\\t\\t\\tReviewed \\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n \\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{lib.referenceType}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t {{libRef}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
5\\\">\\r\\n\\t\\t\\t View: \\r\\n\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n/***/ },\n/* 471 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar processCalls_pipe_1 = __webpack_require__(472);\r\n\tvar ProcessCallComponent = (function () {\r\n\t function ProcessCallComponent(pagerService) {\r\n\t this.pagerService = pagerService;\r\n\t this._processCalls = [];\r\n\t this.onChange = new core_1.EventEmitter();\r\n\t this.freezeInputs = false;\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t this.keep = false;\r\n\t this.reviewed = false;\r\n\t this.search = '';\r\n\t this.selectedFilter = {};\r\n\t this.pager = {};\r\n\t this.pageSize = 10;\r\n\t this.filterProcessCallsPipe = new processCalls_pipe_1.FilterProcessCallsPipe();\r\n\t this.keepAllEnabled = true;\r\n\t }\r\n\t Object.defineProperty(ProcessCallComponent.prototype, \"data\", {\r\n\t get: function () { return this._processCalls; },\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t if (data.processCalls) {\r\n\t this._processCalls = data.processCalls;\r\n\t }\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t ProcessCallComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.onFilterCustom.subscribe(function (res) {\r\n\t _this.selectedFilter = res;\r\n\t _this.filterCustom(_this.selectedFilter, 1);\r\n\t });\r\n\t this.setPage(1);\r\n\t this.onAnalysisRefresh.subscribe(function (res) {\r\n\t _this.freezeInputs = res;\r\n\t });\r\n\t this.disableKeepAllCheckbox();\r\n\t };\r\n\t ProcessCallComponent.prototype.filterCustom = function (filter, page) {\r\n\t var funs = this._processCalls;\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t funs = this.setProcessCallsFilter(filter, funs);\r\n\t this.pager = this.pagerService.getPager(funs.length, page, this.pageSize);\r\n\t this.pagedItems = funs.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t ProcessCallComponent.prototype.setProcessCallsFilter = function (filter, funs) {\r\n\t funs = this.pagerService.filter('custom', funs, filter);\r\n\t return funs;\r\n\t };\r\n\t ProcessCallComponent.prototype.filterProcessCalls = function (query, page) {\r\n\t var funs = this._processCalls;\r\n\t if (query === '') {\r\n\t this.setPage(1);\r\n\t }\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t funs = this.filterProcessCallsPipe.transform(funs, query);\r\n\t funs = this.setProcessCallsFilter(this.selectedFilter, funs);\r\n\t this.pager = this.pagerService.getPager(funs.length, page, this.pageSize);\r\n\t this.pagedItems = funs.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t ProcessCallComponent.prototype.toggle = function () {\r\n\t if (this.opened) {\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t else {\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t };\r\n\t ProcessCallComponent.prototype.previewCode = function (url, name, language) {\r\n\t if (url) {\r\n\t if (this.sas) {\r\n\t window.open(url + this.sas, \"_self\");\r\n\t }\r\n\t }\r\n\t };\r\n\t ProcessCallComponent.prototype.keepAll = function (checked) {\r\n\t this._processCalls.forEach(function (pc) {\r\n\t pc.keep = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t ProcessCallComponent.prototype.reviewedAll = function (checked) {\r\n\t this._processCalls.forEach(function (pc) {\r\n\t pc.reviewed = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t ProcessCallComponent.prototype.disableKeepAllCheckbox = function () {\r\n\t var _this = this;\r\n\t var count = 0;\r\n\t this._processCalls.forEach(function (func) {\r\n\t if (!_this.previewCodeDisabled(func)) {\r\n\t count += 1;\r\n\t }\r\n\t });\r\n\t if (count < 1) {\r\n\t this.keepAllEnabled = false;\r\n\t }\r\n\t };\r\n\t ProcessCallComponent.prototype.countReviewed = function () {\r\n\t var count = 0;\r\n\t this._processCalls.forEach(function (func) {\r\n\t count += func.reviewed ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t ProcessCallComponent.prototype.countKeep = function () {\r\n\t var count = 0;\r\n\t this._processCalls.forEach(function (func) {\r\n\t count += func.keep ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t ProcessCallComponent.prototype.previewCodeDisabled = function (item) {\r\n\t if (item && item.functionFileAsset && item.functionFileAsset.cloudFilename) {\r\n\t return false;\r\n\t }\r\n\t return true;\r\n\t };\r\n\t ProcessCallComponent.prototype.previewCodeIcon = function (item) {\r\n\t if (this.previewCodeDisabled(item)) {\r\n\t return \"cloud_download\";\r\n\t }\r\n\t return \"cloud_download\";\r\n\t };\r\n\t ProcessCallComponent.prototype.setPage = function (page) {\r\n\t if (page < 1 || page > this.pager.totalPages) {\r\n\t return;\r\n\t }\r\n\t if (this.search !== '') {\r\n\t this.filterProcessCalls(this.search, page);\r\n\t }\r\n\t else {\r\n\t this.pager = this.pagerService.getPager(this._processCalls.length, page, this.pageSize);\r\n\t this.pagedItems = this._processCalls.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t }\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], ProcessCallComponent.prototype, \"onAnalysisRefresh\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], ProcessCallComponent.prototype, \"onFilterCustom\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", String)\r\n\t ], ProcessCallComponent.prototype, \"sas\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], ProcessCallComponent.prototype, \"data\", null);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], ProcessCallComponent.prototype, \"onChange\", void 0);\r\n\t ProcessCallComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'processCalls',\r\n\t template: __webpack_require__(473),\r\n\t providers: [pager_service_1.PagerService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [pager_service_1.PagerService])\r\n\t ], ProcessCallComponent);\r\n\t return ProcessCallComponent;\r\n\t}());\r\n\texports.ProcessCallComponent = ProcessCallComponent;\r\n\n\n/***/ },\n/* 472 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar FilterProcessCallsPipe = (function () {\r\n\t function FilterProcessCallsPipe() {\r\n\t }\r\n\t FilterProcessCallsPipe.prototype.transform = function (func, query) {\r\n\t if (query === '') {\r\n\t return func;\r\n\t }\r\n\t var filterResult = func.filter(function (c) {\r\n\t return c.productID.toLowerCase().indexOf(query.toLowerCase()) !== -1 ||\r\n\t c.company.toLowerCase().indexOf(query.toLowerCase()) !== -1;\r\n\t });\r\n\t if (filterResult == undefined || filterResult.length == 0) {\r\n\t filterResult = this.searchResult(func, query);\r\n\t }\r\n\t return filterResult;\r\n\t };\r\n\t FilterProcessCallsPipe.prototype.searchResult = function (items, query) {\r\n\t var filteredList = [];\r\n\t if (query == undefined) {\r\n\t return items;\r\n\t }\r\n\t else if (items && items.length) {\r\n\t items.forEach(function (item) {\r\n\t if (query != null) {\r\n\t item.assemblyReferences.forEach(function (assembly) {\r\n\t if (assembly.assemblyName.toLowerCase().indexOf(query.toLowerCase()) != -1) {\r\n\t filteredList.push(item);\r\n\t }\r\n\t else if (assembly.menuID.toLowerCase().indexOf(query.toLowerCase()) != -1) {\r\n\t filteredList.push(item);\r\n\t }\r\n\t else if (assembly.processKey.toLowerCase().indexOf(query.toLowerCase()) != -1) {\r\n\t filteredList.push(item);\r\n\t }\r\n\t });\r\n\t }\r\n\t });\r\n\t return filteredList;\r\n\t }\r\n\t else {\r\n\t return items;\r\n\t }\r\n\t };\r\n\t FilterProcessCallsPipe = __decorate([\r\n\t core_1.Pipe({ name: 'filterFunctions' })\r\n\t ], FilterProcessCallsPipe);\r\n\t return FilterProcessCallsPipe;\r\n\t}());\r\n\texports.FilterProcessCallsPipe = FilterProcessCallsPipe;\r\n\n\n/***/ },\n/* 473 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tProcess Calls ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_processCalls?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_processCalls?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\tKeep\\r\\n\\t\\t\\t\\t\\t\\t\\tReviewed \\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
5\\\">\\r\\n\\t\\t\\t View: \\r\\n\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n/***/ },\n/* 474 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar sites_service_1 = __webpack_require__(371);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar code_dialog_component_1 = __webpack_require__(454);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar bpms_pipe_1 = __webpack_require__(475);\r\n\tvar complexity_type_service_1 = __webpack_require__(440);\r\n\tvar bpms_modaldialog_1 = __webpack_require__(476);\r\n\tvar bpms_modaldialog_2 = __webpack_require__(476);\r\n\tvar reports_component_service_1 = __webpack_require__(441);\r\n\tvar BpmsComponent = (function () {\r\n\t function BpmsComponent(pagerService, complexityService, sitesService, dialog, viewContainerRef, reportComponentService) {\r\n\t this.pagerService = pagerService;\r\n\t this.complexityService = complexityService;\r\n\t this.sitesService = sitesService;\r\n\t this.dialog = dialog;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.reportComponentService = reportComponentService;\r\n\t this._methodDirectives = [];\r\n\t this.isDesc = false;\r\n\t this.column = 'group';\r\n\t this.finalBPMsList = \"\";\r\n\t this.toggleFlag = false;\r\n\t this.checkedAll = false;\r\n\t this.hidePagination = false;\r\n\t this.toggleFlagPagination = false;\r\n\t this.setFilterColorColumn = '';\r\n\t this.keepAllEnabled = true;\r\n\t this.onChange = new core_1.EventEmitter();\r\n\t this.freezeInputs = false;\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t this.keep = false;\r\n\t this.reviewed = false;\r\n\t this.search = '';\r\n\t this.selectedFilter = {};\r\n\t this.pager = {};\r\n\t this.pageSize = 10;\r\n\t this.filterBPMPipe = new bpms_pipe_1.FilterBPMPipe();\r\n\t this.clickedOutside = false;\r\n\t }\r\n\t Object.defineProperty(BpmsComponent.prototype, \"data\", {\r\n\t get: function () { return this._methodDirectives; },\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t if (data.methodDirectives) {\r\n\t this._methodDirectives = data.methodDirectives;\r\n\t this._methodDirectives.forEach(function (element) {\r\n\t if (element.hasOwnProperty('cloudComplexity') == false) {\r\n\t element.cloudComplexity = false;\r\n\t }\r\n\t if (element.hasOwnProperty('cloudComplexityType') == false) {\r\n\t element.cloudComplexityType = 'None';\r\n\t }\r\n\t if (element.hasOwnProperty('cloudComplexityDescription') == false) {\r\n\t element.cloudComplexityDescription = '';\r\n\t }\r\n\t });\r\n\t }\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t BpmsComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.onFilterCustom.subscribe(function (res) {\r\n\t _this.selectedFilter = res;\r\n\t _this.filterCustom(_this.selectedFilter, 1);\r\n\t });\r\n\t this.onAnalysisRefresh.subscribe(function (res) {\r\n\t _this.freezeInputs = res;\r\n\t });\r\n\t this.setPage(1);\r\n\t };\r\n\t BpmsComponent.prototype.filterCustom = function (filter, page) {\r\n\t var bpms = this._methodDirectives;\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t bpms = this.setBPMFilter(filter, bpms);\r\n\t this.pager = this.pagerService.getPager(bpms.length, page, this.pageSize);\r\n\t this.pagedItems = bpms.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t BpmsComponent.prototype.setBPMFilter = function (filter, bpms) {\r\n\t bpms = this.pagerService.filter('custom', bpms, filter);\r\n\t return bpms;\r\n\t };\r\n\t BpmsComponent.prototype.filterBPM = function (query, page) {\r\n\t var bpms = this._methodDirectives;\r\n\t if (query === '') {\r\n\t this.setPage(1);\r\n\t }\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t bpms = this.filterBPMPipe.transform(bpms, query);\r\n\t bpms = this.setBPMFilter(this.selectedFilter, bpms);\r\n\t this.pager = this.pagerService.getPager(bpms.length, page, this.pageSize);\r\n\t this.pagedItems = bpms.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t BpmsComponent.prototype.toggle = function () {\r\n\t if (this.opened) {\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t else {\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t };\r\n\t BpmsComponent.prototype.previewCode = function (url, name, language) {\r\n\t var _this = this;\r\n\t if (url) {\r\n\t this.sitesService.getFile(url + this.sas).subscribe(function (res) {\r\n\t var preview = {\r\n\t source: res.text(),\r\n\t language: language,\r\n\t downloadUrl: url + _this.sas,\r\n\t name: name\r\n\t };\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = _this.viewContainerRef;\r\n\t _this.codeDialogRef = _this.dialog.open(code_dialog_component_1.CodeDialog, config);\r\n\t _this.codeDialogRef.componentInstance.render(preview);\r\n\t _this.codeDialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.codeDialogRef = null;\r\n\t });\r\n\t });\r\n\t }\r\n\t };\r\n\t BpmsComponent.prototype.keepAll = function (checked) {\r\n\t this._methodDirectives.forEach(function (bpms) {\r\n\t bpms.keep = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t BpmsComponent.prototype.reviewedAll = function (checked) {\r\n\t this._methodDirectives.forEach(function (bpms) {\r\n\t bpms.reviewed = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t BpmsComponent.prototype.countReviewed = function () {\r\n\t var count = 0;\r\n\t this._methodDirectives.forEach(function (bpms) {\r\n\t count += bpms.reviewed ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t BpmsComponent.prototype.countKeep = function () {\r\n\t var count = 0;\r\n\t this._methodDirectives.forEach(function (bpms) {\r\n\t count += bpms.keep ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t BpmsComponent.prototype.previewCodeDisabled = function (md) {\r\n\t if (md.sourceFiles && md.sourceFiles.length > 0 && md.sourceFiles[0].cloudFilename) {\r\n\t return false;\r\n\t }\r\n\t return true;\r\n\t };\r\n\t BpmsComponent.prototype.previewCodeIcon = function (md) {\r\n\t if (this.previewCodeDisabled(md)) {\r\n\t return \"cloud_download\";\r\n\t }\r\n\t return \"cloud_download\";\r\n\t };\r\n\t BpmsComponent.prototype.KeepCheckBoxEnabled = function (item) {\r\n\t this.freezeInputs = false;\r\n\t return false;\r\n\t };\r\n\t BpmsComponent.prototype.openWizardDialog = function (md) {\r\n\t this.wizardDialogRef = this.dialog.open(WizardDialog, {\r\n\t disableClose: false\r\n\t });\r\n\t this.wizardDialogRef.componentInstance.render(md);\r\n\t };\r\n\t BpmsComponent.prototype.setPage = function (page) {\r\n\t if (page < 1 || page > this.pager.totalPages) {\r\n\t return;\r\n\t }\r\n\t if (this.search !== '') {\r\n\t this.filterBPM(this.search, page);\r\n\t }\r\n\t else {\r\n\t this.pager = this.pagerService.getPager(this._methodDirectives.length, page, this.pageSize);\r\n\t this.pagedItems = this._methodDirectives.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t this.finalBPMsList = \"\";\r\n\t this.checkedAll = false;\r\n\t this.reportComponentService.ngInitBPMsFlag(this.pagedItems);\r\n\t this.sort(this.column);\r\n\t }\r\n\t };\r\n\t BpmsComponent.prototype.openDialog = function (colElem) {\r\n\t var _this = this;\r\n\t var bpmsDialogInput = {\r\n\t pagedItems: this.pagedItems,\r\n\t finalBPMsList: this.finalBPMsList,\r\n\t selectedColumn: colElem,\r\n\t checkedAll: this.checkedAll,\r\n\t bpmsReportType: bpms_modaldialog_2.BPMsReportType[bpms_modaldialog_2.BPMsReportType.BPMs]\r\n\t };\r\n\t this.setFilterColorColumn = colElem;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.reportBPMsRef = this.dialog.open(bpms_modaldialog_1.BPMsReportDialog, config);\r\n\t this.reportBPMsRef.componentInstance.render(bpmsDialogInput);\r\n\t this.reportBPMsRef.afterClosed().subscribe(function (result) {\r\n\t _this.clickedOutside = _this.reportBPMsRef.componentInstance.clickedOutside;\r\n\t if (!_this.clickedOutside) {\r\n\t _this.selectedItems = [];\r\n\t _this.finalBPMsList = _this.reportBPMsRef.componentInstance.finalBPMsList;\r\n\t _this.checkedAll = _this.reportBPMsRef.componentInstance.checkedAll;\r\n\t if (_this.finalBPMsList != null && _this.finalBPMsList != undefined && _this.finalBPMsList.length > 0) {\r\n\t _this.finalBPMsList.split(',').forEach(function (item) {\r\n\t _this.selectedItems.push(item);\r\n\t });\r\n\t if (_this.selectedItems.length != _this.pagedItems.length)\r\n\t _this.hidePagination = true;\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t _this.reportBPMsRef = null;\r\n\t });\r\n\t };\r\n\t BpmsComponent.prototype.sort = function (property) {\r\n\t this.isDesc = !this.isDesc;\r\n\t this.column = property;\r\n\t this.direction = this.isDesc ? 1 : -1;\r\n\t };\r\n\t ;\r\n\t BpmsComponent.prototype.setFilterColorGroup = function () {\r\n\t return this.reportComponentService.setFilterColorGroup(this.finalBPMsList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t BpmsComponent.prototype.setFilterColorName = function () {\r\n\t return this.reportComponentService.setFilterColorName(this.finalBPMsList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t BpmsComponent.prototype.setFilterColorComplexity = function () {\r\n\t return this.reportComponentService.setFilterColorComplexity(this.finalBPMsList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t BpmsComponent.prototype.setFilterColorMethod = function () {\r\n\t return this.reportComponentService.setFilterColorMethod(this.finalBPMsList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t BpmsComponent.prototype.setFilterColorLOC = function () {\r\n\t return this.reportComponentService.setFilterColorLOC(this.finalBPMsList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], BpmsComponent.prototype, \"onAnalysisRefresh\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], BpmsComponent.prototype, \"onFilterCustom\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", String)\r\n\t ], BpmsComponent.prototype, \"sas\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], BpmsComponent.prototype, \"data\", null);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], BpmsComponent.prototype, \"onChange\", void 0);\r\n\t BpmsComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'bpms',\r\n\t template: __webpack_require__(477),\r\n\t providers: [sites_service_1.SitesService, pager_service_1.PagerService, complexity_type_service_1.ComplexityService, reports_component_service_1.ReportComponentService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [pager_service_1.PagerService,\r\n\t complexity_type_service_1.ComplexityService,\r\n\t sites_service_1.SitesService,\r\n\t material_1.MdDialog,\r\n\t core_1.ViewContainerRef,\r\n\t reports_component_service_1.ReportComponentService])\r\n\t ], BpmsComponent);\r\n\t return BpmsComponent;\r\n\t}());\r\n\texports.BpmsComponent = BpmsComponent;\r\n\tvar WizardDialog = (function () {\r\n\t function WizardDialog(dialogRef) {\r\n\t this.dialogRef = dialogRef;\r\n\t }\r\n\t WizardDialog.prototype.render = function (md) {\r\n\t this.action.nativeElement.innerHTML = md.actionText;\r\n\t this.condition.nativeElement.innerHTML = md.conditionText;\r\n\t };\r\n\t WizardDialog.prototype.close = function () {\r\n\t this.dialogRef.close();\r\n\t };\r\n\t __decorate([\r\n\t core_1.ViewChild('action'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], WizardDialog.prototype, \"action\", void 0);\r\n\t __decorate([\r\n\t core_1.ViewChild('condition'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], WizardDialog.prototype, \"condition\", void 0);\r\n\t WizardDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'wizard-dialog',\r\n\t template: \"\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n

\\n
\\n
\\n \\n

\\n
\\n
\\n \"\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef])\r\n\t ], WizardDialog);\r\n\t return WizardDialog;\r\n\t}());\r\n\texports.WizardDialog = WizardDialog;\r\n\n\n/***/ },\n/* 475 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar FilterBPMPipe = (function () {\r\n\t function FilterBPMPipe() {\r\n\t }\r\n\t FilterBPMPipe.prototype.transform = function (bpms, query) {\r\n\t if (query === '') {\r\n\t return bpms;\r\n\t }\r\n\t return bpms.filter(function (md) {\r\n\t return md.group.toLowerCase().indexOf(query.toLowerCase()) !== -1 ||\r\n\t md.name.toLowerCase().indexOf(query.toLowerCase()) !== -1 ||\r\n\t md.businessObject.toLowerCase().indexOf(query.toLowerCase()) !== -1;\r\n\t });\r\n\t };\r\n\t FilterBPMPipe = __decorate([\r\n\t core_1.Pipe({ name: 'filterBPM' })\r\n\t ], FilterBPMPipe);\r\n\t return FilterBPMPipe;\r\n\t}());\r\n\texports.FilterBPMPipe = FilterBPMPipe;\r\n\n\n/***/ },\n/* 476 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar bpms_search_pipe_1 = __webpack_require__(442);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar reports_component_service_1 = __webpack_require__(441);\r\n\tvar BPMsReportDialog = (function () {\r\n\t function BPMsReportDialog(dialogRef, errorChangeDetectorRef, viewContainerRef, dialog, elementRef) {\r\n\t this.dialogRef = dialogRef;\r\n\t this.errorChangeDetectorRef = errorChangeDetectorRef;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.dialog = dialog;\r\n\t this.elementRef = elementRef;\r\n\t this.checkedAll = false;\r\n\t this.selectedColumn = \"\";\r\n\t this.columnDisplayName = \"\";\r\n\t this.selectedColumnGroupBy = \"\";\r\n\t this.hidePagination = false;\r\n\t this.disableApplyButton = false;\r\n\t this.bpmsReportType = '';\r\n\t this.bpmsList = [];\r\n\t this.clickedOutside = false;\r\n\t this.tempList = [];\r\n\t }\r\n\t BPMsReportDialog.prototype.render = function (bpmsDetails) {\r\n\t var _this = this;\r\n\t this.pagedItems = bpmsDetails.pagedItems;\r\n\t this.finalBPMsList = bpmsDetails.finalBPMsList;\r\n\t this.tempList = this.finalBPMsList;\r\n\t this.checkedAll = bpmsDetails.checkedAll;\r\n\t this.selectedColumn = bpmsDetails.selectedColumn;\r\n\t this.bpmsReportType = this.getDisplayName(bpmsDetails.bpmsReportType);\r\n\t this.selectedColumnGroupBy = this.getGroupByColumnName();\r\n\t if (this.finalBPMsList != undefined && this.finalBPMsList.length > 0) {\r\n\t this.finalBPMsList.split(',').forEach(function (id) {\r\n\t _this.bpmsList.push(Number(id));\r\n\t _this.pagedItems.filter(function (item) { return item.rowIndex == id; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t });\r\n\t }\r\n\t this.container.nativeElement.children[1].style.maxHeight = \"30vh\";\r\n\t this.container.nativeElement.children[1].style.overflow = \"auto\";\r\n\t this.container.nativeElement.children[2].style.float = \"right\";\r\n\t this.container.nativeElement.children[2].style.position = \"relative\";\r\n\t this.container.nativeElement.children[2].style.top = \"1vh\";\r\n\t };\r\n\t BPMsReportDialog.prototype.applyModal = function () {\r\n\t var _this = this;\r\n\t if (this.bpmsList.length > 0 && (this.pagedItems.filter(function (item) { return item.isChecked == true; }).length == 0)) {\r\n\t this.showErrorMessage();\r\n\t this.disableApplyButton = true;\r\n\t return;\r\n\t }\r\n\t this.disableApplyButton = false;\r\n\t this.bpmsList = [];\r\n\t this.pagedItems.filter(function (item) { return item.isChecked == true; }).forEach(function (item) {\r\n\t _this.bpmsList.push(item.rowIndex);\r\n\t });\r\n\t this.finalBPMsList = this.bpmsList.toString();\r\n\t this.dialogRef.close();\r\n\t };\r\n\t BPMsReportDialog.prototype.checkboxFieldChange = function (event, colElem) {\r\n\t if (!event.checked) {\r\n\t this.checkedAll = false;\r\n\t }\r\n\t this.checkboxFieldChangedProcess(this.pagedItems, event, colElem);\r\n\t };\r\n\t BPMsReportDialog.prototype.close = function () {\r\n\t this.checkedAll = false;\r\n\t this.finalBPMsList = this.tempList.toString();\r\n\t this.dialogRef.close();\r\n\t };\r\n\t BPMsReportDialog.prototype.toggleAll = function (event) {\r\n\t this.disableApplyButton = false;\r\n\t this.finalBPMsList = this.setToggleValue(this.pagedItems);\r\n\t };\r\n\t BPMsReportDialog.prototype.getDisplayName = function (bpmsReportType) {\r\n\t if (bpmsReportType == BPMsReportType[BPMsReportType.BPMs])\r\n\t return \"BPMs\";\r\n\t else if (bpmsReportType == BPMsReportType[BPMsReportType.BPMsDataDirective])\r\n\t return \"BPMs (Data Directives)\";\r\n\t else\r\n\t return \"BPMs (Updatable BAQs)\";\r\n\t };\r\n\t BPMsReportDialog.prototype.getGroupByColumnName = function () {\r\n\t if (this.selectedColumn == bpms_search_pipe_1.BPMsFilterColumnName[bpms_search_pipe_1.BPMsFilterColumnName.Group])\r\n\t return \"group\";\r\n\t else if (this.selectedColumn == bpms_search_pipe_1.BPMsFilterColumnName[bpms_search_pipe_1.BPMsFilterColumnName.Name])\r\n\t return \"name\";\r\n\t else if (this.selectedColumn == bpms_search_pipe_1.BPMsFilterColumnName[bpms_search_pipe_1.BPMsFilterColumnName.Method])\r\n\t if (this.bpmsReportType == BPMsReportType[BPMsReportType.BPMsUpdatableBAQs])\r\n\t return \"businessObject\";\r\n\t else\r\n\t return \"customMethod\";\r\n\t else if (this.selectedColumn == bpms_search_pipe_1.BPMsFilterColumnName[bpms_search_pipe_1.BPMsFilterColumnName.Complexity])\r\n\t return \"customComplexity\";\r\n\t else\r\n\t return \"linesOfCode\";\r\n\t };\r\n\t BPMsReportDialog.prototype.checkboxFieldChangedProcess = function (items, event, colElem) {\r\n\t if (colElem == bpms_search_pipe_1.BPMsFilterColumnName[bpms_search_pipe_1.BPMsFilterColumnName.Group]) {\r\n\t return this.groupFieldProcess(items, event);\r\n\t }\r\n\t else if (colElem == bpms_search_pipe_1.BPMsFilterColumnName[bpms_search_pipe_1.BPMsFilterColumnName.Name]) {\r\n\t return this.nameFieldProcess(items, event);\r\n\t }\r\n\t else if (colElem == bpms_search_pipe_1.BPMsFilterColumnName[bpms_search_pipe_1.BPMsFilterColumnName.Method]) {\r\n\t return this.methodFieldProcess(items, event);\r\n\t }\r\n\t else if (colElem == bpms_search_pipe_1.BPMsFilterColumnName[bpms_search_pipe_1.BPMsFilterColumnName.Complexity]) {\r\n\t return this.complexityFieldProcess(items, event);\r\n\t }\r\n\t else if (colElem == bpms_search_pipe_1.BPMsFilterColumnName[bpms_search_pipe_1.BPMsFilterColumnName.LOC]) {\r\n\t return this.locFieldProcess(items, event);\r\n\t }\r\n\t };\r\n\t BPMsReportDialog.prototype.groupFieldProcess = function (items, event) {\r\n\t var group = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t group = getRowDetails[0].group;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.group == group; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.group == group; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t BPMsReportDialog.prototype.nameFieldProcess = function (items, event) {\r\n\t var name = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t name = getRowDetails[0].name;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.name == name; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.name == name; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t BPMsReportDialog.prototype.methodFieldProcess = function (items, event) {\r\n\t if (this.bpmsReportType != BPMsReportType[BPMsReportType.BPMsUpdatableBAQs]) {\r\n\t var customMethod_1 = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t customMethod_1 = getRowDetails[0].customMethod;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.customMethod == customMethod_1; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.customMethod == customMethod_1; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t }\r\n\t else {\r\n\t var businessObject_1 = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t businessObject_1 = getRowDetails[0].businessObject;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.businessObject == businessObject_1; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.businessObject == businessObject_1; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t }\r\n\t };\r\n\t BPMsReportDialog.prototype.complexityFieldProcess = function (items, event) {\r\n\t var customComplexity = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t customComplexity = getRowDetails[0].customComplexity;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.customComplexity == customComplexity; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.customComplexity == customComplexity; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t BPMsReportDialog.prototype.locFieldProcess = function (items, event) {\r\n\t var linesOfCode = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t linesOfCode = getRowDetails[0].linesOfCode;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.linesOfCode == linesOfCode; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.linesOfCode == linesOfCode; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t BPMsReportDialog.prototype.setToggleValue = function (items) {\r\n\t var _this = this;\r\n\t var toggleFlag = this.checkedAll;\r\n\t items.forEach(function (item) {\r\n\t item.isChecked = toggleFlag;\r\n\t });\r\n\t this.bpmsList = [];\r\n\t if (toggleFlag) {\r\n\t items.forEach(function (item) {\r\n\t _this.bpmsList.push(Number(item.rowIndex));\r\n\t });\r\n\t }\r\n\t return this.bpmsList.toString();\r\n\t };\r\n\t BPMsReportDialog.prototype.showErrorMessage = function () {\r\n\t var _this = this;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.errorDialogRef = this.dialog.open(reports_component_service_1.ErrorMessageDialog, config);\r\n\t this.errorDialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.errorDialogRef = null;\r\n\t });\r\n\t };\r\n\t BPMsReportDialog.prototype.onClick = function (event) {\r\n\t var clickedOutsideDialog = event.target;\r\n\t var inside = false;\r\n\t do {\r\n\t if (clickedOutsideDialog === this.elementRef.nativeElement) {\r\n\t inside = true;\r\n\t }\r\n\t clickedOutsideDialog = clickedOutsideDialog.parentNode;\r\n\t } while (clickedOutsideDialog);\r\n\t if (inside) {\r\n\t this.clickedOutside = false;\r\n\t }\r\n\t else {\r\n\t this.clickedOutside = true;\r\n\t }\r\n\t };\r\n\t __decorate([\r\n\t core_1.ViewChild('container'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], BPMsReportDialog.prototype, \"container\", void 0);\r\n\t BPMsReportDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'bpms-dialog',\r\n\t host: {\r\n\t '(document:click)': 'onClick($event)',\r\n\t },\r\n\t template: \"\\n\\n \\n\\n
{{ bpmsReportType}} - {{selectedColumn}}
\\n
\\n\\n \\n \\n \\n\\n
\\n (Select All) \\n
\\n
\\n {{md.value[0].group}} \\n
\\n
\\n \\n
\\n
\\n {{md.value[0].name}}\\n
\\n
\\n\\n
\\n
\\n
\\n {{md.value[0].businessObject}}\\n
\\n
\\n
\\n
\\n {{md.value[0].customMethod}}\\n
\\n
\\n
\\n\\n
\\n
\\n {{md.value[0].customComplexity}}\\n
\\n
\\n \\n
\\n
\\n {{md.value[0].linesOfCode}}\\n
\\n
\\n
\\n \\n
\\n \\n \\n
\\n
\\n\",\r\n\t providers: [pager_service_1.PagerService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef,\r\n\t core_1.ChangeDetectorRef,\r\n\t core_1.ViewContainerRef,\r\n\t material_1.MdDialog,\r\n\t core_1.ElementRef])\r\n\t ], BPMsReportDialog);\r\n\t return BPMsReportDialog;\r\n\t}());\r\n\texports.BPMsReportDialog = BPMsReportDialog;\r\n\tvar BPMsReportType;\r\n\t(function (BPMsReportType) {\r\n\t BPMsReportType[BPMsReportType[\"BPMs\"] = 0] = \"BPMs\";\r\n\t BPMsReportType[BPMsReportType[\"BPMsDataDirective\"] = 1] = \"BPMsDataDirective\";\r\n\t BPMsReportType[BPMsReportType[\"BPMsUpdatableBAQs\"] = 2] = \"BPMsUpdatableBAQs\";\r\n\t})(BPMsReportType = exports.BPMsReportType || (exports.BPMsReportType = {}));\r\n\n\n/***/ },\n/* 477 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tBPMs ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_methodDirectives?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_methodDirectives?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t\\t\\t\\r\\n \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t
CompanyGroup\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tName\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tMethod\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tComplexity\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tLOC\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tBPM TypeCodeCompatibleCloud WarningKeepReviewed
{{md.company}}{{md.group}}{{md.name}}{{md.customMethod}}{{md.customComplexity}}{{md.linesOfCode}}{{md.transactionScope}} 0\\\" class=\\\"mdl-data-table__cell--non-numeric\\\">\\r\\n \\r\\n\\t\\t\\t\\t\\t\\r\\n \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n
\\r\\n\\t\\t\\t\\t\\t\\t\\t No \\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
10\\\">\\r\\n\\t\\t\\t\\t View: \\r\\n\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n/***/ },\n/* 478 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar IncompatibilitiesComponent = (function () {\r\n\t function IncompatibilitiesComponent() {\r\n\t this.visible = false;\r\n\t }\r\n\t IncompatibilitiesComponent.prototype.ngOnInit = function () {\r\n\t if (this.incompatibilities == null) {\r\n\t this.incompatibilities = [];\r\n\t this.incompatibilities.push(\"ABL Code will not upgrade to C#\");\r\n\t }\r\n\t };\r\n\t IncompatibilitiesComponent.prototype.open = function () {\r\n\t if (this.visible) {\r\n\t this.visible = false;\r\n\t }\r\n\t else {\r\n\t this.visible = true;\r\n\t }\r\n\t };\r\n\t IncompatibilitiesComponent.prototype.close = function () {\r\n\t this.visible = false;\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Array)\r\n\t ], IncompatibilitiesComponent.prototype, \"incompatibilities\", void 0);\r\n\t IncompatibilitiesComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'incompatibilities',\r\n\t template: __webpack_require__(479),\r\n\t styles: [__webpack_require__(480)]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [])\r\n\t ], IncompatibilitiesComponent);\r\n\t return IncompatibilitiesComponent;\r\n\t}());\r\n\texports.IncompatibilitiesComponent = IncompatibilitiesComponent;\r\n\n\n/***/ },\n/* 479 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n {{ item }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 480 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \".container {\\r\\n /*visibility: hidden;*/\\r\\n background-color: #fff;\\r\\n color: #000;\\r\\n border-radius: 2px;\\r\\n box-shadow: 0 19px 38px rgba(0,0,0,0.30), 0 15px 12px rgba(0,0,0,0.22);\\r\\n position: fixed;\\r\\n margin: auto 0px;\\r\\n z-index: 1; \\r\\n display:flex;\\r\\n flex-direction:column; \\r\\n width:150px;\\r\\n padding: 5px 0;\\r\\n}\\r\\n\\r\\n/*#incompatibilities:hover .container {\\r\\n visibility: visible;\\r\\n}*/\\r\\n\\r\\n.item { \\r\\n font-size:10px;\\r\\n display:flex;\\r\\n justify-content: flex-start;\\r\\n padding:2px;\\r\\n width:80px;\\r\\n height:25px;\\r\\n}\\r\\n\"\n\n/***/ },\n/* 481 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar sites_service_1 = __webpack_require__(371);\r\n\tvar code_dialog_component_1 = __webpack_require__(454);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar complexity_type_service_1 = __webpack_require__(440);\r\n\tvar reports_component_service_1 = __webpack_require__(441);\r\n\tvar changelogs_modaldialog_1 = __webpack_require__(447);\r\n\tvar ChangeLogsComponent = (function () {\r\n\t function ChangeLogsComponent(pagerService, sitesService, dialog, viewContainerRef, complexityService, reportComponentService) {\r\n\t this.pagerService = pagerService;\r\n\t this.sitesService = sitesService;\r\n\t this.dialog = dialog;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.complexityService = complexityService;\r\n\t this.reportComponentService = reportComponentService;\r\n\t this._changeLogs = [];\r\n\t this._changeLogsAll = [];\r\n\t this.onChange = new core_1.EventEmitter();\r\n\t this.freezeInputs = false;\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t this.keep = false;\r\n\t this.reviewed = false;\r\n\t this.search = '';\r\n\t this.selectedFilter = '';\r\n\t this.pager = {};\r\n\t this.pageSize = 10;\r\n\t this.isDesc = false;\r\n\t this.column = 'group';\r\n\t this.finalChangeLogsList = \"\";\r\n\t this.hidePagination = false;\r\n\t this.toggleFlagPagination = false;\r\n\t this.setFilterColorColumn = \"\";\r\n\t this.checkedAll = false;\r\n\t this.clickedOutside = false;\r\n\t this.sortAsc = -1;\r\n\t }\r\n\t Object.defineProperty(ChangeLogsComponent.prototype, \"data\", {\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t if (data.changeLogsABLCode) {\r\n\t this._changeLogs = data.changeLogsABLCode;\r\n\t }\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t ChangeLogsComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.onFilterCustom.subscribe(function (res) {\r\n\t _this.selectedFilter = res;\r\n\t _this.filterCustom(_this.selectedFilter, 1);\r\n\t });\r\n\t this.onAnalysisRefresh.subscribe(function (res) {\r\n\t _this.freezeInputs = res;\r\n\t });\r\n\t this.setPage(1);\r\n\t };\r\n\t ChangeLogsComponent.prototype.filterCustom = function (filter, page) {\r\n\t };\r\n\t ChangeLogsComponent.prototype.setChangeLogfilter = function () {\r\n\t };\r\n\t ChangeLogsComponent.prototype.filterChangeLog = function (query, page) {\r\n\t };\r\n\t ChangeLogsComponent.prototype.toggle = function () {\r\n\t if (this.opened) {\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t else {\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t };\r\n\t ChangeLogsComponent.prototype.previewCode = function (url, name, language) {\r\n\t var _this = this;\r\n\t if (url) {\r\n\t this.sitesService.getFile(url + this.sas).subscribe(function (res) {\r\n\t var preview = {\r\n\t source: res.text(),\r\n\t language: language,\r\n\t downloadUrl: url + _this.sas,\r\n\t name: name\r\n\t };\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = _this.viewContainerRef;\r\n\t _this.dialogRef = _this.dialog.open(code_dialog_component_1.CodeDialog, config);\r\n\t _this.dialogRef.componentInstance.render(preview);\r\n\t _this.dialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.dialogRef = null;\r\n\t });\r\n\t });\r\n\t }\r\n\t };\r\n\t ChangeLogsComponent.prototype.keepAll = function (checked) {\r\n\t this._changeLogs.forEach(function (bpms) {\r\n\t bpms.keep = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t ChangeLogsComponent.prototype.reviewedAll = function (checked) {\r\n\t this._changeLogs.forEach(function (bpms) {\r\n\t bpms.reviewed = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t ChangeLogsComponent.prototype.countReviewed = function () {\r\n\t var count = 0;\r\n\t this._changeLogs.forEach(function (bpms) {\r\n\t count += bpms.reviewed ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t ChangeLogsComponent.prototype.countKeep = function () {\r\n\t var count = 0;\r\n\t this._changeLogs.forEach(function (bpms) {\r\n\t count += bpms.keep ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t ChangeLogsComponent.prototype.toggleDetails = function (cl) {\r\n\t cl.moreDetails = !cl.moreDetails;\r\n\t };\r\n\t ChangeLogsComponent.prototype.sortItems = function (sortby) {\r\n\t var sortAsc = this.sortAsc;\r\n\t this._changeLogs = this._changeLogs.sort(function (a, b) {\r\n\t if (a[sortby] > b[sortby]) {\r\n\t return -1 * sortAsc;\r\n\t }\r\n\t else\r\n\t return 1 * sortAsc;\r\n\t });\r\n\t sortAsc = sortAsc * -1;\r\n\t };\r\n\t ChangeLogsComponent.prototype.previewCodeDisabled = function (item) {\r\n\t if (item.alertProgram && item.alertProgram.length > 0 && item.alertProgram[0].cloudFilename) {\r\n\t return false;\r\n\t }\r\n\t return true;\r\n\t };\r\n\t ChangeLogsComponent.prototype.previewCodeIcon = function (item) {\r\n\t if (this.previewCodeDisabled(item)) {\r\n\t return \"cloud_download\";\r\n\t }\r\n\t return \"cloud_download\";\r\n\t };\r\n\t ChangeLogsComponent.prototype.setPage = function (page) {\r\n\t if (page < 1 || page > this.pager.totalPages) {\r\n\t return;\r\n\t }\r\n\t this.pager = this.pagerService.getPager(this._changeLogs.length, page, this.pageSize);\r\n\t this.pagedItems = this._changeLogs.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t this.finalChangeLogsList = \"\";\r\n\t this.checkedAll = false;\r\n\t this.reportComponentService.ngInitChangeLogsFlag(this.pagedItems);\r\n\t this.sort(this.column);\r\n\t };\r\n\t ChangeLogsComponent.prototype.sort = function (property) {\r\n\t this.isDesc = !this.isDesc;\r\n\t this.column = property;\r\n\t this.direction = this.isDesc ? 1 : -1;\r\n\t };\r\n\t ChangeLogsComponent.prototype.openDialog = function (colElem) {\r\n\t var _this = this;\r\n\t var ChangeLogsDialogInput = {\r\n\t pagedItems: this.pagedItems,\r\n\t finalChangeLogsList: this.finalChangeLogsList,\r\n\t selectedColumn: colElem,\r\n\t checkedAll: this.checkedAll,\r\n\t };\r\n\t this.setFilterColorColumn = colElem;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.dialogChangeLogsRef = this.dialog.open(changelogs_modaldialog_1.ChangeLogsReportDialog, config);\r\n\t this.dialogChangeLogsRef.componentInstance.render(ChangeLogsDialogInput);\r\n\t this.dialogChangeLogsRef.afterClosed().subscribe(function (result) {\r\n\t _this.clickedOutside = _this.dialogChangeLogsRef.componentInstance.clickedOutside;\r\n\t if (!_this.clickedOutside) {\r\n\t _this.selectedItems = [];\r\n\t _this.finalChangeLogsList = _this.dialogChangeLogsRef.componentInstance.finalChangeLogsList;\r\n\t _this.checkedAll = _this.dialogChangeLogsRef.componentInstance.checkedAll;\r\n\t if (_this.finalChangeLogsList != null && _this.finalChangeLogsList != undefined && _this.finalChangeLogsList.length > 0) {\r\n\t _this.finalChangeLogsList.split(',').forEach(function (item) {\r\n\t _this.selectedItems.push(item);\r\n\t });\r\n\t if (_this.selectedItems.length != _this.pagedItems.length)\r\n\t _this.hidePagination = true;\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t _this.dialogChangeLogsRef = null;\r\n\t });\r\n\t };\r\n\t ChangeLogsComponent.prototype.setFilterColorDesc = function () {\r\n\t return this.reportComponentService.setFilterColorDesc(this.finalChangeLogsList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t ChangeLogsComponent.prototype.setFilterColorTable = function () {\r\n\t return this.reportComponentService.setFilterColorTable(this.finalChangeLogsList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t ChangeLogsComponent.prototype.setFilterColorLOC = function () {\r\n\t return this.reportComponentService.setFilterColorLOC(this.finalChangeLogsList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t ChangeLogsComponent.prototype.setFilterColorComplexity = function () {\r\n\t return this.reportComponentService.setFilterColorComplexity(this.finalChangeLogsList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], ChangeLogsComponent.prototype, \"onAnalysisRefresh\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], ChangeLogsComponent.prototype, \"onFilterCustom\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", String)\r\n\t ], ChangeLogsComponent.prototype, \"sas\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", String)\r\n\t ], ChangeLogsComponent.prototype, \"filter\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], ChangeLogsComponent.prototype, \"data\", null);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], ChangeLogsComponent.prototype, \"onChange\", void 0);\r\n\t ChangeLogsComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'changelogs',\r\n\t template: __webpack_require__(482),\r\n\t providers: [sites_service_1.SitesService, pager_service_1.PagerService, complexity_type_service_1.ComplexityService, reports_component_service_1.ReportComponentService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [pager_service_1.PagerService,\r\n\t sites_service_1.SitesService,\r\n\t material_1.MdDialog,\r\n\t core_1.ViewContainerRef,\r\n\t complexity_type_service_1.ComplexityService,\r\n\t reports_component_service_1.ReportComponentService])\r\n\t ], ChangeLogsComponent);\r\n\t return ChangeLogsComponent;\r\n\t}());\r\n\texports.ChangeLogsComponent = ChangeLogsComponent;\r\n\n\n/***/ },\n/* 482 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tChange Logs (ABL) ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_changeLogs?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_changeLogs?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
Description\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tTable\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tCodeLOC\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tComplexity\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tKeepReviewedMore
{{cl?.description}}{{cl?.tableName}}\\r\\n \\r\\n\\r\\n\\t\\t\\t\\t\\t\\t{{cl?.linesOfCode}}{{cl?.complexity}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
Field List:\\r\\n\\t\\t\\t\\t\\t\\t\\t{{cl?.useFieldList}}\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\t\\r\\n\\t\\t\\t\\t
10\\\">\\r\\n\\t\\t\\t\\t\\t View: \\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n/***/ },\n/* 483 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar sites_service_1 = __webpack_require__(371);\r\n\tvar code_dialog_component_1 = __webpack_require__(454);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar bankInterfaces_pipe_1 = __webpack_require__(484);\r\n\tvar complexity_type_service_1 = __webpack_require__(440);\r\n\tvar reports_component_service_1 = __webpack_require__(441);\r\n\tvar bankInterfaces_modaldialog_1 = __webpack_require__(446);\r\n\tvar BankInterfacesComponent = (function () {\r\n\t function BankInterfacesComponent(pagerService, sitesService, complexityService, dialog, viewContainerRef, reportComponentService) {\r\n\t this.pagerService = pagerService;\r\n\t this.sitesService = sitesService;\r\n\t this.complexityService = complexityService;\r\n\t this.dialog = dialog;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.reportComponentService = reportComponentService;\r\n\t this._bankInterfaces = [];\r\n\t this.onChange = new core_1.EventEmitter();\r\n\t this.freezeInputs = false;\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t this.keep = false;\r\n\t this.reviewed = false;\r\n\t this.search = '';\r\n\t this.selectedFilter = {};\r\n\t this.pager = {};\r\n\t this.pageSize = 10;\r\n\t this.filterBankInterfacePipe = new bankInterfaces_pipe_1.FilterBankInterfacePipe();\r\n\t this.isDesc = false;\r\n\t this.column = 'group';\r\n\t this.finalBankInterfaceList = \"\";\r\n\t this.hidePagination = false;\r\n\t this.toggleFlagPagination = false;\r\n\t this.setFilterColorColumn = \"\";\r\n\t this.checkedAll = false;\r\n\t this.clickedOutside = false;\r\n\t this.sortAsc = -1;\r\n\t }\r\n\t Object.defineProperty(BankInterfacesComponent.prototype, \"data\", {\r\n\t get: function () { return this._bankInterfaces; },\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t if (data.electronicBankInterfaces) {\r\n\t this._bankInterfaces = data.electronicBankInterfaces;\r\n\t }\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t BankInterfacesComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.onFilterCustom.subscribe(function (res) {\r\n\t _this.selectedFilter = res;\r\n\t _this.filterCustom(_this.selectedFilter, 1);\r\n\t });\r\n\t this.onAnalysisRefresh.subscribe(function (res) {\r\n\t _this.freezeInputs = res;\r\n\t });\r\n\t this.setPage(1);\r\n\t };\r\n\t BankInterfacesComponent.prototype.filterCustom = function (filter, page) {\r\n\t var bankInterfaces = this._bankInterfaces;\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t bankInterfaces = this.setBankInterfaceFilter(filter, bankInterfaces);\r\n\t this.pager = this.pagerService.getPager(bankInterfaces.length, page, this.pageSize);\r\n\t this.pagedItems = bankInterfaces.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t BankInterfacesComponent.prototype.setBankInterfaceFilter = function (filter, bankInterfaces) {\r\n\t bankInterfaces = this.pagerService.filter('custom', bankInterfaces, filter);\r\n\t return bankInterfaces;\r\n\t };\r\n\t BankInterfacesComponent.prototype.filterBankInterface = function (query, page) {\r\n\t var bankInterfaces = this._bankInterfaces;\r\n\t if (query === '') {\r\n\t this.setPage(1);\r\n\t }\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t bankInterfaces = this.filterBankInterfacePipe.transform(bankInterfaces, query);\r\n\t bankInterfaces = this.setBankInterfaceFilter(this.selectedFilter, bankInterfaces);\r\n\t this.pager = this.pagerService.getPager(bankInterfaces.length, page, this.pageSize);\r\n\t this.pagedItems = bankInterfaces.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t BankInterfacesComponent.prototype.toggle = function () {\r\n\t if (this.opened) {\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t else {\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t };\r\n\t BankInterfacesComponent.prototype.previewCode = function (url, name, language) {\r\n\t var _this = this;\r\n\t if (url) {\r\n\t this.sitesService.getFile(url + this.sas).subscribe(function (res) {\r\n\t var preview = {\r\n\t source: res.text(),\r\n\t language: language,\r\n\t downloadUrl: url + _this.sas,\r\n\t name: name\r\n\t };\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = _this.viewContainerRef;\r\n\t _this.dialogRef = _this.dialog.open(code_dialog_component_1.CodeDialog, config);\r\n\t _this.dialogRef.componentInstance.render(preview);\r\n\t _this.dialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.dialogRef = null;\r\n\t });\r\n\t });\r\n\t }\r\n\t };\r\n\t BankInterfacesComponent.prototype.keepAll = function (checked) {\r\n\t this._bankInterfaces.forEach(function (item) {\r\n\t item.keep = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t BankInterfacesComponent.prototype.reviewedAll = function (checked) {\r\n\t this._bankInterfaces.forEach(function (item) {\r\n\t item.reviewed = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t BankInterfacesComponent.prototype.countReviewed = function () {\r\n\t var count = 0;\r\n\t this._bankInterfaces.forEach(function (item) {\r\n\t count += item.reviewed ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t BankInterfacesComponent.prototype.countKeep = function () {\r\n\t var count = 0;\r\n\t this._bankInterfaces.forEach(function (item) {\r\n\t count += item.keep ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t BankInterfacesComponent.prototype.toggleDetails = function (cl) {\r\n\t cl.moreDetails = !cl.moreDetails;\r\n\t };\r\n\t BankInterfacesComponent.prototype.sortItems = function (sortby) {\r\n\t var sortAsc = this.sortAsc;\r\n\t this._bankInterfaces = this._bankInterfaces.sort(function (a, b) {\r\n\t if (a[sortby] > b[sortby]) {\r\n\t return -1 * sortAsc;\r\n\t }\r\n\t else\r\n\t return 1 * sortAsc;\r\n\t });\r\n\t sortAsc = sortAsc * -1;\r\n\t };\r\n\t BankInterfacesComponent.prototype.previewCodeDisabled = function (item) {\r\n\t if (item.program && item.program.cloudFilename) {\r\n\t return false;\r\n\t }\r\n\t return true;\r\n\t };\r\n\t BankInterfacesComponent.prototype.previewCodeIcon = function (item) {\r\n\t if (this.previewCodeDisabled(item)) {\r\n\t return \"cloud_download\";\r\n\t }\r\n\t return \"cloud_download\";\r\n\t };\r\n\t BankInterfacesComponent.prototype.setPage = function (page) {\r\n\t if (page < 1 || page > this.pager.totalPages) {\r\n\t return;\r\n\t }\r\n\t if (this.search !== '') {\r\n\t this.filterBankInterface(this.search, page);\r\n\t }\r\n\t else {\r\n\t this.pager = this.pagerService.getPager(this._bankInterfaces.length, page, this.pageSize);\r\n\t this.pagedItems = this._bankInterfaces.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t this.finalBankInterfaceList = \"\";\r\n\t this.checkedAll = false;\r\n\t this.reportComponentService.ngInitBankInterfaceFlag(this.pagedItems);\r\n\t this.sort(this.column);\r\n\t }\r\n\t };\r\n\t BankInterfacesComponent.prototype.sort = function (property) {\r\n\t this.isDesc = !this.isDesc;\r\n\t this.column = property;\r\n\t this.direction = this.isDesc ? 1 : -1;\r\n\t };\r\n\t BankInterfacesComponent.prototype.openDialog = function (colElem) {\r\n\t var _this = this;\r\n\t var BankInerfaceDialogInput = {\r\n\t pagedItems: this.pagedItems,\r\n\t finalBankInterfaceList: this.finalBankInterfaceList,\r\n\t selectedColumn: colElem,\r\n\t checkedAll: this.checkedAll,\r\n\t };\r\n\t this.setFilterColorColumn = colElem;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.dialogBankInterfaceRef = this.dialog.open(bankInterfaces_modaldialog_1.BankInterfaceReportDialog, config);\r\n\t this.dialogBankInterfaceRef.componentInstance.render(BankInerfaceDialogInput);\r\n\t this.dialogBankInterfaceRef.afterClosed().subscribe(function (result) {\r\n\t _this.clickedOutside = _this.dialogBankInterfaceRef.componentInstance.clickedOutside;\r\n\t if (!_this.clickedOutside) {\r\n\t _this.selectedItems = [];\r\n\t _this.finalBankInterfaceList = _this.dialogBankInterfaceRef.componentInstance.finalBankInterfaceList;\r\n\t _this.checkedAll = _this.dialogBankInterfaceRef.componentInstance.checkedAll;\r\n\t if (_this.finalBankInterfaceList != null && _this.finalBankInterfaceList != undefined && _this.finalBankInterfaceList.length > 0) {\r\n\t _this.finalBankInterfaceList.split(',').forEach(function (item) {\r\n\t _this.selectedItems.push(item);\r\n\t });\r\n\t if (_this.selectedItems.length != _this.pagedItems.length)\r\n\t _this.hidePagination = true;\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t _this.dialogBankInterfaceRef = null;\r\n\t });\r\n\t };\r\n\t BankInterfacesComponent.prototype.setFilterColorCompanies = function () {\r\n\t return this.reportComponentService.setFilterColorCompanies(this.finalBankInterfaceList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t BankInterfacesComponent.prototype.setFilterColorType = function () {\r\n\t return this.reportComponentService.setFilterColorType(this.finalBankInterfaceList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t BankInterfacesComponent.prototype.setFilterColorName = function () {\r\n\t return this.reportComponentService.setFilterColorName(this.finalBankInterfaceList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t BankInterfacesComponent.prototype.setFilterColorComplexity = function () {\r\n\t return this.reportComponentService.setFilterColorComplexity(this.finalBankInterfaceList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t BankInterfacesComponent.prototype.setFilterColorLOC = function () {\r\n\t return this.reportComponentService.setFilterColorLOC(this.finalBankInterfaceList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], BankInterfacesComponent.prototype, \"onAnalysisRefresh\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], BankInterfacesComponent.prototype, \"onFilterCustom\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", String)\r\n\t ], BankInterfacesComponent.prototype, \"sas\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], BankInterfacesComponent.prototype, \"data\", null);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], BankInterfacesComponent.prototype, \"onChange\", void 0);\r\n\t BankInterfacesComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'bankInterfaces',\r\n\t template: __webpack_require__(485),\r\n\t providers: [sites_service_1.SitesService, pager_service_1.PagerService, complexity_type_service_1.ComplexityService, reports_component_service_1.ReportComponentService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [pager_service_1.PagerService,\r\n\t sites_service_1.SitesService,\r\n\t complexity_type_service_1.ComplexityService,\r\n\t material_1.MdDialog,\r\n\t core_1.ViewContainerRef,\r\n\t reports_component_service_1.ReportComponentService])\r\n\t ], BankInterfacesComponent);\r\n\t return BankInterfacesComponent;\r\n\t}());\r\n\texports.BankInterfacesComponent = BankInterfacesComponent;\r\n\n\n/***/ },\n/* 484 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar FilterBankInterfacePipe = (function () {\r\n\t function FilterBankInterfacePipe() {\r\n\t }\r\n\t FilterBankInterfacePipe.prototype.transform = function (bankInterfaces, query) {\r\n\t if (query === '') {\r\n\t return bankInterfaces;\r\n\t }\r\n\t return bankInterfaces.filter(function (bi) {\r\n\t return bi.company.toLowerCase().indexOf(query.toLowerCase()) !== -1 ||\r\n\t bi.interfaceType.toLowerCase().indexOf(query.toLowerCase()) !== -1 ||\r\n\t bi.interfaceName.toLowerCase().indexOf(query.toLowerCase()) !== -1;\r\n\t });\r\n\t };\r\n\t FilterBankInterfacePipe = __decorate([\r\n\t core_1.Pipe({ name: 'filterBankInterface' })\r\n\t ], FilterBankInterfacePipe);\r\n\t return FilterBankInterfacePipe;\r\n\t}());\r\n\texports.FilterBankInterfacePipe = FilterBankInterfacePipe;\r\n\n\n/***/ },\n/* 485 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tBank Interfaces ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_bankInterfaces?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_bankInterfaces?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
Companies\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tType\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tName\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tCodeLOC\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tComplexity\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tKeepReviewed
{{bi?.company}}{{bi?.interfaceType}}{{bi?.interfaceName}} \\r\\n\\t\\t\\t\\t\\t\\t{{bi?.linesOfCode}}{{bi?.complexity}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
\\t\\t\\r\\n\\t\\t\\t
10\\\">\\r\\n\\t\\t\\t\\t View: \\r\\n\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\\r\\n\\r\\n\\r\\n\";\n\n/***/ },\n/* 486 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar sites_service_1 = __webpack_require__(371);\r\n\tvar code_dialog_component_1 = __webpack_require__(454);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar dataDirectives_pipe_1 = __webpack_require__(487);\r\n\tvar complexity_type_service_1 = __webpack_require__(440);\r\n\tvar bpms_modaldialog_1 = __webpack_require__(476);\r\n\tvar bpms_modaldialog_2 = __webpack_require__(476);\r\n\tvar reports_component_service_1 = __webpack_require__(441);\r\n\tvar DataDirectivesComponent = (function () {\r\n\t function DataDirectivesComponent(pagerService, complexityService, sitesService, dialog, viewContainerRef, reportComponentService) {\r\n\t this.pagerService = pagerService;\r\n\t this.complexityService = complexityService;\r\n\t this.sitesService = sitesService;\r\n\t this.dialog = dialog;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.reportComponentService = reportComponentService;\r\n\t this._dataDirectives = [];\r\n\t this.onChange = new core_1.EventEmitter();\r\n\t this.freezeInputs = false;\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t this.keep = false;\r\n\t this.reviewed = false;\r\n\t this.search = '';\r\n\t this.selectedFilter = {};\r\n\t this.pager = {};\r\n\t this.pageSize = 10;\r\n\t this.filterDataDirectivePipe = new dataDirectives_pipe_1.FilterDataDirectivePipe();\r\n\t this.isDesc = false;\r\n\t this.column = 'group';\r\n\t this.finalBPMsDDList = \"\";\r\n\t this.checkedAll = false;\r\n\t this.hidePagination = false;\r\n\t this.toggleFlagPagination = false;\r\n\t this.setFilterColorColumn = '';\r\n\t this.clickedOutside = false;\r\n\t }\r\n\t Object.defineProperty(DataDirectivesComponent.prototype, \"data\", {\r\n\t get: function () { return this._dataDirectives; },\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t if (data.dataDirectives) {\r\n\t this._dataDirectives = data.dataDirectives;\r\n\t this._dataDirectives.forEach(function (element) {\r\n\t if (element.hasOwnProperty('cloudComplexity') == false) {\r\n\t element.cloudComplexity = false;\r\n\t }\r\n\t if (element.hasOwnProperty('cloudComplexityType') == false) {\r\n\t element.cloudComplexityType = 'None';\r\n\t }\r\n\t if (element.hasOwnProperty('cloudComplexityDescription') == false) {\r\n\t element.cloudComplexityDescription = '';\r\n\t }\r\n\t });\r\n\t }\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t DataDirectivesComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.onFilterCustom.subscribe(function (res) {\r\n\t _this.selectedFilter = res;\r\n\t _this.filterCustom(_this.selectedFilter, 1);\r\n\t });\r\n\t this.onAnalysisRefresh.subscribe(function (res) {\r\n\t _this.freezeInputs = res;\r\n\t });\r\n\t this.setPage(1);\r\n\t };\r\n\t DataDirectivesComponent.prototype.filterCustom = function (filter, page) {\r\n\t var dataDirectives = this._dataDirectives;\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t dataDirectives = this.setDataDirectiveFilter(filter, dataDirectives);\r\n\t this.pager = this.pagerService.getPager(dataDirectives.length, page, this.pageSize);\r\n\t this.pagedItems = dataDirectives.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t DataDirectivesComponent.prototype.setDataDirectiveFilter = function (filter, dataDirectives) {\r\n\t dataDirectives = this.pagerService.filter('custom', dataDirectives, filter);\r\n\t return dataDirectives;\r\n\t };\r\n\t DataDirectivesComponent.prototype.filterDataDirective = function (query, page) {\r\n\t var dataDirectives = this._dataDirectives;\r\n\t if (query === '') {\r\n\t this.setPage(1);\r\n\t }\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t dataDirectives = this.filterDataDirectivePipe.transform(dataDirectives, query);\r\n\t dataDirectives = this.setDataDirectiveFilter(this.selectedFilter, dataDirectives);\r\n\t this.pager = this.pagerService.getPager(dataDirectives.length, page, this.pageSize);\r\n\t this.pagedItems = dataDirectives.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t DataDirectivesComponent.prototype.toggle = function () {\r\n\t if (this.opened) {\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t else {\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t };\r\n\t DataDirectivesComponent.prototype.previewCode = function (url, name, language) {\r\n\t var _this = this;\r\n\t if (url) {\r\n\t this.sitesService.getFile(url + this.sas).subscribe(function (res) {\r\n\t var preview = {\r\n\t source: res.text(),\r\n\t language: language,\r\n\t downloadUrl: url + _this.sas,\r\n\t name: name\r\n\t };\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = _this.viewContainerRef;\r\n\t _this.dialogRef = _this.dialog.open(code_dialog_component_1.CodeDialog, config);\r\n\t _this.dialogRef.componentInstance.render(preview);\r\n\t _this.dialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.dialogRef = null;\r\n\t });\r\n\t });\r\n\t }\r\n\t };\r\n\t DataDirectivesComponent.prototype.keepAll = function (checked) {\r\n\t this._dataDirectives.forEach(function (bpms) {\r\n\t bpms.keep = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t DataDirectivesComponent.prototype.reviewedAll = function (checked) {\r\n\t this._dataDirectives.forEach(function (bpms) {\r\n\t bpms.reviewed = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t DataDirectivesComponent.prototype.countReviewed = function () {\r\n\t var count = 0;\r\n\t this._dataDirectives.forEach(function (bpms) {\r\n\t count += bpms.reviewed ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t DataDirectivesComponent.prototype.countKeep = function () {\r\n\t var count = 0;\r\n\t this._dataDirectives.forEach(function (bpms) {\r\n\t count += bpms.keep ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t DataDirectivesComponent.prototype.previewCodeDisabled = function (md) {\r\n\t if (md.sourceFiles && md.sourceFiles.length > 0 && md.sourceFiles[0].cloudFilename) {\r\n\t return false;\r\n\t }\r\n\t return true;\r\n\t };\r\n\t DataDirectivesComponent.prototype.previewCodeIcon = function (md) {\r\n\t if (this.previewCodeDisabled(md)) {\r\n\t return \"cloud_download\";\r\n\t }\r\n\t return \"cloud_download\";\r\n\t };\r\n\t DataDirectivesComponent.prototype.setPage = function (page) {\r\n\t if (page < 1 || page > this.pager.totalPages) {\r\n\t return;\r\n\t }\r\n\t if (this.search !== '') {\r\n\t this.filterDataDirective(this.search, page);\r\n\t }\r\n\t else {\r\n\t this.pager = this.pagerService.getPager(this._dataDirectives.length, page, this.pageSize);\r\n\t this.pagedItems = this._dataDirectives.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t this.finalBPMsDDList = \"\";\r\n\t this.checkedAll = false;\r\n\t this.reportComponentService.ngInitBPMsFlag(this.pagedItems);\r\n\t this.sort(this.column);\r\n\t }\r\n\t };\r\n\t DataDirectivesComponent.prototype.sort = function (property) {\r\n\t this.isDesc = !this.isDesc;\r\n\t this.column = property;\r\n\t this.direction = this.isDesc ? 1 : -1;\r\n\t };\r\n\t DataDirectivesComponent.prototype.openDialog = function (colElem) {\r\n\t var _this = this;\r\n\t var BPMsDialogInput = {\r\n\t pagedItems: this.pagedItems,\r\n\t finalBPMsList: this.finalBPMsDDList,\r\n\t selectedColumn: colElem,\r\n\t checkedAll: this.checkedAll,\r\n\t bpmsReportType: bpms_modaldialog_2.BPMsReportType[bpms_modaldialog_2.BPMsReportType.BPMsDataDirective]\r\n\t };\r\n\t this.setFilterColorColumn = colElem;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.dialogBPMsDDRef = this.dialog.open(bpms_modaldialog_1.BPMsReportDialog, config);\r\n\t this.dialogBPMsDDRef.componentInstance.render(BPMsDialogInput);\r\n\t this.dialogBPMsDDRef.afterClosed().subscribe(function (result) {\r\n\t _this.clickedOutside = _this.dialogBPMsDDRef.componentInstance.clickedOutside;\r\n\t if (!_this.clickedOutside) {\r\n\t _this.selectedItems = [];\r\n\t _this.finalBPMsDDList = _this.dialogBPMsDDRef.componentInstance.finalBPMsList;\r\n\t _this.checkedAll = _this.dialogBPMsDDRef.componentInstance.checkedAll;\r\n\t if (_this.finalBPMsDDList != null && _this.finalBPMsDDList != undefined && _this.finalBPMsDDList.length > 0) {\r\n\t _this.finalBPMsDDList.split(',').forEach(function (item) {\r\n\t _this.selectedItems.push(item);\r\n\t });\r\n\t if (_this.selectedItems.length != _this.pagedItems.length)\r\n\t _this.hidePagination = true;\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t _this.dialogBPMsDDRef = null;\r\n\t });\r\n\t };\r\n\t DataDirectivesComponent.prototype.setFilterColorGroup = function () {\r\n\t return this.reportComponentService.setFilterColorGroup(this.finalBPMsDDList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t DataDirectivesComponent.prototype.setFilterColorName = function () {\r\n\t return this.reportComponentService.setFilterColorName(this.finalBPMsDDList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t DataDirectivesComponent.prototype.setFilterColorComplexity = function () {\r\n\t return this.reportComponentService.setFilterColorComplexity(this.finalBPMsDDList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t DataDirectivesComponent.prototype.setFilterColorMethod = function () {\r\n\t return this.reportComponentService.setFilterColorMethod(this.finalBPMsDDList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t DataDirectivesComponent.prototype.setFilterColorLOC = function () {\r\n\t return this.reportComponentService.setFilterColorLOC(this.finalBPMsDDList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], DataDirectivesComponent.prototype, \"onAnalysisRefresh\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], DataDirectivesComponent.prototype, \"onFilterCustom\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", String)\r\n\t ], DataDirectivesComponent.prototype, \"sas\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], DataDirectivesComponent.prototype, \"data\", null);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], DataDirectivesComponent.prototype, \"onChange\", void 0);\r\n\t DataDirectivesComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'dataDirectives',\r\n\t template: __webpack_require__(488),\r\n\t providers: [sites_service_1.SitesService, pager_service_1.PagerService, complexity_type_service_1.ComplexityService, reports_component_service_1.ReportComponentService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [pager_service_1.PagerService,\r\n\t complexity_type_service_1.ComplexityService,\r\n\t sites_service_1.SitesService,\r\n\t material_1.MdDialog,\r\n\t core_1.ViewContainerRef,\r\n\t reports_component_service_1.ReportComponentService])\r\n\t ], DataDirectivesComponent);\r\n\t return DataDirectivesComponent;\r\n\t}());\r\n\texports.DataDirectivesComponent = DataDirectivesComponent;\r\n\n\n/***/ },\n/* 487 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar FilterDataDirectivePipe = (function () {\r\n\t function FilterDataDirectivePipe() {\r\n\t }\r\n\t FilterDataDirectivePipe.prototype.transform = function (dataDirectives, query) {\r\n\t if (query === '') {\r\n\t return dataDirectives;\r\n\t }\r\n\t return dataDirectives.filter(function (dd) {\r\n\t return dd.name.toLowerCase().indexOf(query.toLowerCase()) !== -1;\r\n\t });\r\n\t };\r\n\t FilterDataDirectivePipe = __decorate([\r\n\t core_1.Pipe({ name: 'filterDataDirective' })\r\n\t ], FilterDataDirectivePipe);\r\n\t return FilterDataDirectivePipe;\r\n\t}());\r\n\texports.FilterDataDirectivePipe = FilterDataDirectivePipe;\r\n\n\n/***/ },\n/* 488 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tBPM (Data Directives) ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_dataDirectives?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_dataDirectives?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t
CompanyGroup\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tName\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tMethod\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tComplexity\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tLOC\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tCodeCompatibleCloud WarningKeepReviewed
{{dd.company}}{{dd.group}}{{dd.name}}{{dd.customMethod}}{{dd.customComplexity }}{{dd.linesOfCode}} 0\\\" class=\\\"mdl-data-table__cell--non-numeric\\\">\\r\\n \\r\\n\\t\\t\\t\\t\\t\\r\\n \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n
\\r\\n\\t\\t\\t\\t\\t\\t\\t No \\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
10\\\">\\r\\n\\t\\t\\t\\t View: \\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n/***/ },\n/* 489 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar sites_service_1 = __webpack_require__(371);\r\n\tvar code_dialog_component_1 = __webpack_require__(454);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar sqlViews_pipe_1 = __webpack_require__(490);\r\n\tvar complexity_type_service_1 = __webpack_require__(440);\r\n\tvar sql_modaldialog_1 = __webpack_require__(451);\r\n\tvar sql_modaldialog_2 = __webpack_require__(451);\r\n\tvar reports_component_service_1 = __webpack_require__(441);\r\n\tvar SqlViewsComponent = (function () {\r\n\t function SqlViewsComponent(pagerService, complexityService, sitesService, dialog, viewContainerRef, reportComponentService) {\r\n\t this.pagerService = pagerService;\r\n\t this.complexityService = complexityService;\r\n\t this.sitesService = sitesService;\r\n\t this.dialog = dialog;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.reportComponentService = reportComponentService;\r\n\t this._sqlViews = [];\r\n\t this.onChange = new core_1.EventEmitter();\r\n\t this.freezeInputs = false;\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t this.keep = false;\r\n\t this.reviewed = false;\r\n\t this.search = '';\r\n\t this.selectedFilter = {};\r\n\t this.pager = {};\r\n\t this.pageSize = 10;\r\n\t this.filterSqlViewPipe = new sqlViews_pipe_1.FilterSqlViewPipe();\r\n\t this.isDesc = false;\r\n\t this.column = 'name';\r\n\t this.finalSQLList = \"\";\r\n\t this.toggleFlag = false;\r\n\t this.checkedAll = false;\r\n\t this.hidePagination = false;\r\n\t this.setFilterColorColumn = '';\r\n\t this.clickedOutside = false;\r\n\t }\r\n\t Object.defineProperty(SqlViewsComponent.prototype, \"data\", {\r\n\t get: function () { return this._sqlViews; },\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t if (data.sqlViews) {\r\n\t this._sqlViews = data.sqlViews;\r\n\t this._sqlViews.forEach(function (element) {\r\n\t if (element.hasOwnProperty('cloudComplexity') == false) {\r\n\t element.cloudComplexity = true;\r\n\t }\r\n\t if (element.hasOwnProperty('cloudComplexityType') == false) {\r\n\t element.cloudComplexityType = 'None';\r\n\t }\r\n\t if (element.hasOwnProperty('cloudComplexityDescription') == false) {\r\n\t element.cloudComplexityDescription = '';\r\n\t }\r\n\t });\r\n\t }\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t SqlViewsComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.onFilterCustom.subscribe(function (res) {\r\n\t _this.selectedFilter = res;\r\n\t _this.filterCustom(_this.selectedFilter, 1);\r\n\t });\r\n\t this.onAnalysisRefresh.subscribe(function (res) {\r\n\t _this.freezeInputs = res;\r\n\t });\r\n\t this.setPage(1);\r\n\t };\r\n\t SqlViewsComponent.prototype.filterCustom = function (filter, page) {\r\n\t var sqlViews = this._sqlViews;\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t sqlViews = this.setSqlViewFilter(filter, sqlViews);\r\n\t this.pager = this.pagerService.getPager(sqlViews.length, page, this.pageSize);\r\n\t this.pagedItems = sqlViews.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t SqlViewsComponent.prototype.setSqlViewFilter = function (filter, sqlViews) {\r\n\t sqlViews = this.pagerService.filter('custom', sqlViews, filter);\r\n\t return sqlViews;\r\n\t };\r\n\t SqlViewsComponent.prototype.filterSqlView = function (query, page) {\r\n\t var sqlViews = this._sqlViews;\r\n\t if (query === '') {\r\n\t this.setPage(1);\r\n\t }\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t sqlViews = this.filterSqlViewPipe.transform(this._sqlViews, query);\r\n\t sqlViews = this.setSqlViewFilter(this.selectedFilter, sqlViews);\r\n\t this.pager = this.pagerService.getPager(sqlViews.length, page, this.pageSize);\r\n\t this.pagedItems = sqlViews.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t SqlViewsComponent.prototype.toggle = function () {\r\n\t if (this.opened) {\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t else {\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t };\r\n\t SqlViewsComponent.prototype.previewCode = function (url, name, language) {\r\n\t var _this = this;\r\n\t if (url) {\r\n\t this.sitesService.getFile(url + this.sas).subscribe(function (res) {\r\n\t var preview = {\r\n\t source: res.text(),\r\n\t language: language,\r\n\t downloadUrl: url + _this.sas,\r\n\t name: name\r\n\t };\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = _this.viewContainerRef;\r\n\t _this.dialogRef = _this.dialog.open(code_dialog_component_1.CodeDialog, config);\r\n\t _this.dialogRef.componentInstance.render(preview);\r\n\t _this.dialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.dialogRef = null;\r\n\t });\r\n\t });\r\n\t }\r\n\t };\r\n\t SqlViewsComponent.prototype.keepAll = function (checked) {\r\n\t this._sqlViews.forEach(function (bpms) {\r\n\t bpms.keep = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t SqlViewsComponent.prototype.reviewedAll = function (checked) {\r\n\t this._sqlViews.forEach(function (bpms) {\r\n\t bpms.reviewed = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t SqlViewsComponent.prototype.countReviewed = function () {\r\n\t var count = 0;\r\n\t this._sqlViews.forEach(function (bpms) {\r\n\t count += bpms.reviewed ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t SqlViewsComponent.prototype.countKeep = function () {\r\n\t var count = 0;\r\n\t this._sqlViews.forEach(function (bpms) {\r\n\t count += bpms.keep ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t SqlViewsComponent.prototype.toggleDetails = function (cl) {\r\n\t cl.moreDetails = !cl.moreDetails;\r\n\t };\r\n\t SqlViewsComponent.prototype.previewCodeDisabled = function (item) {\r\n\t if (item.definition && item.definition.cloudFilename) {\r\n\t return false;\r\n\t }\r\n\t return true;\r\n\t };\r\n\t SqlViewsComponent.prototype.previewCodeIcon = function (item) {\r\n\t if (this.previewCodeDisabled(item)) {\r\n\t return \"cloud_download\";\r\n\t }\r\n\t return \"cloud_download\";\r\n\t };\r\n\t SqlViewsComponent.prototype.setPage = function (page) {\r\n\t if (page < 1 || page > this.pager.totalPages) {\r\n\t return;\r\n\t }\r\n\t if (this.search !== '') {\r\n\t this.filterSqlView(this.search, page);\r\n\t }\r\n\t else {\r\n\t this.pager = this.pagerService.getPager(this._sqlViews.length, page, this.pageSize);\r\n\t this.pagedItems = this._sqlViews.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t this.finalSQLList = \"\";\r\n\t this.checkedAll = false;\r\n\t this.reportComponentService.ngSQLInitFlag(this.pagedItems);\r\n\t this.sort(this.column);\r\n\t }\r\n\t };\r\n\t SqlViewsComponent.prototype.openDialog = function (colElem) {\r\n\t var _this = this;\r\n\t var sqlViewsDialogInput = {\r\n\t pagedItems: this.pagedItems,\r\n\t finalSQLList: this.finalSQLList,\r\n\t selectedColumn: colElem,\r\n\t checkedAll: this.checkedAll,\r\n\t sqlReportType: sql_modaldialog_2.SQLReportType[sql_modaldialog_2.SQLReportType.Views]\r\n\t };\r\n\t this.setFilterColorColumn = colElem;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.sqlViewsDialogRef = this.dialog.open(sql_modaldialog_1.SQLReportDialog, config);\r\n\t this.sqlViewsDialogRef.componentInstance.render(sqlViewsDialogInput);\r\n\t this.sqlViewsDialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.clickedOutside = _this.sqlViewsDialogRef.componentInstance.clickedOutside;\r\n\t if (!_this.clickedOutside) {\r\n\t _this.selectedItems = [];\r\n\t _this.finalSQLList = _this.sqlViewsDialogRef.componentInstance.finalSQLList;\r\n\t _this.checkedAll = _this.sqlViewsDialogRef.componentInstance.checkedAll;\r\n\t if (_this.finalSQLList != null && _this.finalSQLList != undefined && _this.finalSQLList.length > 0) {\r\n\t _this.finalSQLList.split(',').forEach(function (item) {\r\n\t _this.selectedItems.push(item);\r\n\t });\r\n\t if (_this.selectedItems.length != _this.pagedItems.length)\r\n\t _this.hidePagination = true;\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t _this.sqlViewsDialogRef = null;\r\n\t });\r\n\t };\r\n\t SqlViewsComponent.prototype.sort = function (property) {\r\n\t this.isDesc = !this.isDesc;\r\n\t this.column = property;\r\n\t this.direction = this.isDesc ? 1 : -1;\r\n\t };\r\n\t ;\r\n\t SqlViewsComponent.prototype.setFilterColorName = function () {\r\n\t return this.reportComponentService.setFilterColorName(this.finalSQLList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t SqlViewsComponent.prototype.setFilterColorComplexity = function () {\r\n\t return this.reportComponentService.setFilterColorComplexity(this.finalSQLList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t SqlViewsComponent.prototype.setFilterColorLOC = function () {\r\n\t return this.reportComponentService.setFilterColorLOC(this.finalSQLList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], SqlViewsComponent.prototype, \"onAnalysisRefresh\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], SqlViewsComponent.prototype, \"onFilterCustom\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", String)\r\n\t ], SqlViewsComponent.prototype, \"sas\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], SqlViewsComponent.prototype, \"data\", null);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], SqlViewsComponent.prototype, \"onChange\", void 0);\r\n\t SqlViewsComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'sqlViews',\r\n\t template: __webpack_require__(491),\r\n\t providers: [sites_service_1.SitesService, pager_service_1.PagerService, complexity_type_service_1.ComplexityService, reports_component_service_1.ReportComponentService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [pager_service_1.PagerService,\r\n\t complexity_type_service_1.ComplexityService,\r\n\t sites_service_1.SitesService,\r\n\t material_1.MdDialog,\r\n\t core_1.ViewContainerRef,\r\n\t reports_component_service_1.ReportComponentService])\r\n\t ], SqlViewsComponent);\r\n\t return SqlViewsComponent;\r\n\t}());\r\n\texports.SqlViewsComponent = SqlViewsComponent;\r\n\n\n/***/ },\n/* 490 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar FilterSqlViewPipe = (function () {\r\n\t function FilterSqlViewPipe() {\r\n\t }\r\n\t FilterSqlViewPipe.prototype.transform = function (sqlViews, query) {\r\n\t if (query === '') {\r\n\t return sqlViews;\r\n\t }\r\n\t return sqlViews.filter(function (sv) {\r\n\t return sv.name.toLowerCase().indexOf(query.toLowerCase()) !== -1;\r\n\t });\r\n\t };\r\n\t FilterSqlViewPipe = __decorate([\r\n\t core_1.Pipe({ name: 'filterSqlView' })\r\n\t ], FilterSqlViewPipe);\r\n\t return FilterSqlViewPipe;\r\n\t}());\r\n\texports.FilterSqlViewPipe = FilterSqlViewPipe;\r\n\n\n/***/ },\n/* 491 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tSQL Views ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_sqlViews?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_sqlViews?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
Name\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tCodeLOC\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tComplexity\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tKeepReviewed
{{dataItem?.name}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t{{dataItem?.linesOfCode}}{{dataItem?.complexity}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\t\\t\\t\\r\\n\\t\\t\\t\\t
10\\\">\\r\\n\\t\\t\\t\\t\\t View: \\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n/***/ },\n/* 492 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar sites_service_1 = __webpack_require__(371);\r\n\tvar code_dialog_component_1 = __webpack_require__(454);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar sqlStoredProcedures_pipe_1 = __webpack_require__(493);\r\n\tvar complexity_type_service_1 = __webpack_require__(440);\r\n\tvar sql_modaldialog_1 = __webpack_require__(451);\r\n\tvar sql_modaldialog_2 = __webpack_require__(451);\r\n\tvar reports_component_service_1 = __webpack_require__(441);\r\n\tvar SQLStoredProceduresComponent = (function () {\r\n\t function SQLStoredProceduresComponent(pagerService, complexityService, sitesService, dialog, viewContainerRef, reportComponentService) {\r\n\t this.pagerService = pagerService;\r\n\t this.complexityService = complexityService;\r\n\t this.sitesService = sitesService;\r\n\t this.dialog = dialog;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.reportComponentService = reportComponentService;\r\n\t this._sqlStoredProcedures = [];\r\n\t this.onChange = new core_1.EventEmitter();\r\n\t this.freezeInputs = false;\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t this.keep = false;\r\n\t this.reviewed = false;\r\n\t this.search = '';\r\n\t this.selectedFilter = '';\r\n\t this.pager = {};\r\n\t this.filterSqlStoredProcedurePipe = new sqlStoredProcedures_pipe_1.FilterSqlStoredProcedurePipe();\r\n\t this.pageSize = 10;\r\n\t this.isDesc = false;\r\n\t this.column = 'name';\r\n\t this.finalSQLList = \"\";\r\n\t this.toggleFlag = false;\r\n\t this.checkedAll = false;\r\n\t this.hidePagination = false;\r\n\t this.setFilterColorColumn = '';\r\n\t this.clickedOutside = false;\r\n\t }\r\n\t Object.defineProperty(SQLStoredProceduresComponent.prototype, \"data\", {\r\n\t get: function () { return this._sqlStoredProcedures; },\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t if (data.sqlStoredProcedures) {\r\n\t this._sqlStoredProcedures = data.sqlStoredProcedures;\r\n\t this._sqlStoredProcedures.forEach(function (element) {\r\n\t if (element.hasOwnProperty('cloudComplexity') == false) {\r\n\t element.cloudComplexity = true;\r\n\t }\r\n\t if (element.hasOwnProperty('cloudComplexityType') == false) {\r\n\t element.cloudComplexityType = 'None';\r\n\t }\r\n\t if (element.hasOwnProperty('cloudComplexityDescription') == false) {\r\n\t element.cloudComplexityDescription = '';\r\n\t }\r\n\t });\r\n\t }\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t SQLStoredProceduresComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.onFilterCustom.subscribe(function (res) {\r\n\t _this.selectedFilter = res;\r\n\t _this.filterCustom(_this.selectedFilter, 1);\r\n\t });\r\n\t this.onAnalysisRefresh.subscribe(function (res) {\r\n\t _this.freezeInputs = res;\r\n\t });\r\n\t this.setPage(1);\r\n\t };\r\n\t SQLStoredProceduresComponent.prototype.filterCustom = function (filter, page) {\r\n\t var sqlStoredProcedures = this._sqlStoredProcedures;\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t sqlStoredProcedures = this.setSqlStoredProcedureFilter(filter, sqlStoredProcedures);\r\n\t this.pager = this.pagerService.getPager(sqlStoredProcedures.length, page, this.pageSize);\r\n\t this.pagedItems = sqlStoredProcedures.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t SQLStoredProceduresComponent.prototype.setSqlStoredProcedureFilter = function (filter, sqlStoredProcedures) {\r\n\t sqlStoredProcedures = this.pagerService.filter('custom', sqlStoredProcedures, filter);\r\n\t return sqlStoredProcedures;\r\n\t };\r\n\t SQLStoredProceduresComponent.prototype.filterSqlStoredProcedure = function (query, page) {\r\n\t var sqlStoredProcedures = this._sqlStoredProcedures;\r\n\t if (query === '') {\r\n\t this.setPage(1);\r\n\t }\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t sqlStoredProcedures = this.filterSqlStoredProcedurePipe.transform(this._sqlStoredProcedures, query);\r\n\t sqlStoredProcedures = this.setSqlStoredProcedureFilter(this.selectedFilter, sqlStoredProcedures);\r\n\t this.pager = this.pagerService.getPager(sqlStoredProcedures.length, page, this.pageSize);\r\n\t this.pagedItems = sqlStoredProcedures.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t SQLStoredProceduresComponent.prototype.toggle = function () {\r\n\t if (this.opened) {\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t else {\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t };\r\n\t SQLStoredProceduresComponent.prototype.previewCode = function (url, name, language) {\r\n\t var _this = this;\r\n\t if (url) {\r\n\t this.sitesService.getFile(url + this.sas).subscribe(function (res) {\r\n\t var preview = {\r\n\t source: res.text(),\r\n\t language: language,\r\n\t downloadUrl: url + _this.sas,\r\n\t name: name\r\n\t };\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = _this.viewContainerRef;\r\n\t _this.dialogRef = _this.dialog.open(code_dialog_component_1.CodeDialog, config);\r\n\t _this.dialogRef.componentInstance.render(preview);\r\n\t _this.dialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.dialogRef = null;\r\n\t });\r\n\t });\r\n\t }\r\n\t };\r\n\t SQLStoredProceduresComponent.prototype.keepAll = function (checked) {\r\n\t this._sqlStoredProcedures.forEach(function (sqlStoredProcedure) {\r\n\t sqlStoredProcedure.keep = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t SQLStoredProceduresComponent.prototype.reviewedAll = function (checked) {\r\n\t this._sqlStoredProcedures.forEach(function (sqlStoredProcedure) {\r\n\t sqlStoredProcedure.reviewed = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t SQLStoredProceduresComponent.prototype.countReviewed = function () {\r\n\t var count = 0;\r\n\t this._sqlStoredProcedures.forEach(function (sqlStoredProcedure) {\r\n\t count += sqlStoredProcedure.reviewed ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t SQLStoredProceduresComponent.prototype.countKeep = function () {\r\n\t var count = 0;\r\n\t this._sqlStoredProcedures.forEach(function (sqlStoredProcedure) {\r\n\t count += sqlStoredProcedure.keep ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t SQLStoredProceduresComponent.prototype.previewCodeDisabled = function (item) {\r\n\t if (item.definition && item.definition.cloudFilename) {\r\n\t return false;\r\n\t }\r\n\t return true;\r\n\t };\r\n\t SQLStoredProceduresComponent.prototype.previewCodeIcon = function (item) {\r\n\t if (this.previewCodeDisabled(item)) {\r\n\t return \"cloud_download\";\r\n\t }\r\n\t return \"cloud_download\";\r\n\t };\r\n\t SQLStoredProceduresComponent.prototype.setPage = function (page) {\r\n\t if (page < 1 || page > this.pager.totalPages) {\r\n\t return;\r\n\t }\r\n\t if (this.search !== '') {\r\n\t this.filterSqlStoredProcedure(this.search, page);\r\n\t }\r\n\t else {\r\n\t this.pager = this.pagerService.getPager(this._sqlStoredProcedures.length, page, this.pageSize);\r\n\t this.pagedItems = this._sqlStoredProcedures.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t this.finalSQLList = \"\";\r\n\t this.checkedAll = false;\r\n\t this.reportComponentService.ngSQLInitFlag(this.pagedItems);\r\n\t this.sort(this.column);\r\n\t }\r\n\t };\r\n\t SQLStoredProceduresComponent.prototype.openDialog = function (colElem) {\r\n\t var _this = this;\r\n\t var SqlSprocDialogInput = {\r\n\t pagedItems: this.pagedItems,\r\n\t finalSQLList: this.finalSQLList,\r\n\t selectedColumn: colElem,\r\n\t checkedAll: this.checkedAll,\r\n\t sqlReportType: sql_modaldialog_2.SQLReportType[sql_modaldialog_2.SQLReportType.StoredProcedure]\r\n\t };\r\n\t this.setFilterColorColumn = colElem;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.sqlSprocDialogRef = this.dialog.open(sql_modaldialog_1.SQLReportDialog, config);\r\n\t this.sqlSprocDialogRef.componentInstance.render(SqlSprocDialogInput);\r\n\t this.sqlSprocDialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.clickedOutside = _this.sqlSprocDialogRef.componentInstance.clickedOutside;\r\n\t if (!_this.clickedOutside) {\r\n\t _this.selectedItems = [];\r\n\t _this.finalSQLList = _this.sqlSprocDialogRef.componentInstance.finalSQLList;\r\n\t _this.checkedAll = _this.sqlSprocDialogRef.componentInstance.checkedAll;\r\n\t if (_this.finalSQLList != null && _this.finalSQLList != undefined && _this.finalSQLList.length > 0) {\r\n\t _this.finalSQLList.split(',').forEach(function (item) {\r\n\t _this.selectedItems.push(item);\r\n\t });\r\n\t if (_this.selectedItems.length != _this.pagedItems.length)\r\n\t _this.hidePagination = true;\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t _this.sqlSprocDialogRef = null;\r\n\t });\r\n\t };\r\n\t SQLStoredProceduresComponent.prototype.sort = function (property) {\r\n\t this.isDesc = !this.isDesc;\r\n\t this.column = property;\r\n\t this.direction = this.isDesc ? 1 : -1;\r\n\t };\r\n\t ;\r\n\t SQLStoredProceduresComponent.prototype.setFilterColorName = function () {\r\n\t return this.reportComponentService.setFilterColorName(this.finalSQLList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t SQLStoredProceduresComponent.prototype.setFilterColorComplexity = function () {\r\n\t return this.reportComponentService.setFilterColorComplexity(this.finalSQLList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t SQLStoredProceduresComponent.prototype.setFilterColorLOC = function () {\r\n\t return this.reportComponentService.setFilterColorLOC(this.finalSQLList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], SQLStoredProceduresComponent.prototype, \"onAnalysisRefresh\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], SQLStoredProceduresComponent.prototype, \"onFilterCustom\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", String)\r\n\t ], SQLStoredProceduresComponent.prototype, \"sas\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], SQLStoredProceduresComponent.prototype, \"data\", null);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], SQLStoredProceduresComponent.prototype, \"onChange\", void 0);\r\n\t SQLStoredProceduresComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'sqlStoredProcedures',\r\n\t template: __webpack_require__(494),\r\n\t providers: [pager_service_1.PagerService, reports_component_service_1.ReportComponentService, complexity_type_service_1.ComplexityService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [pager_service_1.PagerService,\r\n\t complexity_type_service_1.ComplexityService,\r\n\t sites_service_1.SitesService,\r\n\t material_1.MdDialog,\r\n\t core_1.ViewContainerRef,\r\n\t reports_component_service_1.ReportComponentService])\r\n\t ], SQLStoredProceduresComponent);\r\n\t return SQLStoredProceduresComponent;\r\n\t}());\r\n\texports.SQLStoredProceduresComponent = SQLStoredProceduresComponent;\r\n\n\n/***/ },\n/* 493 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar FilterSqlStoredProcedurePipe = (function () {\r\n\t function FilterSqlStoredProcedurePipe() {\r\n\t }\r\n\t FilterSqlStoredProcedurePipe.prototype.transform = function (sqlStoredProcedures, query) {\r\n\t if (query === '') {\r\n\t return sqlStoredProcedures;\r\n\t }\r\n\t return sqlStoredProcedures.filter(function (ssp) {\r\n\t return ssp.name.toLowerCase().indexOf(query.toLowerCase()) !== -1;\r\n\t });\r\n\t };\r\n\t FilterSqlStoredProcedurePipe = __decorate([\r\n\t core_1.Pipe({ name: 'filterSqlStoredProcedure' })\r\n\t ], FilterSqlStoredProcedurePipe);\r\n\t return FilterSqlStoredProcedurePipe;\r\n\t}());\r\n\texports.FilterSqlStoredProcedurePipe = FilterSqlStoredProcedurePipe;\r\n\n\n/***/ },\n/* 494 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
0\\\">\\r\\n
\\r\\n
\\r\\n Keep All\\r\\n Reviewed All\\r\\n
\\r\\n
\\r\\n\\t\\r\\n SQL Stored Procedures ({{pager?.totalItems}})\\r\\n \\r\\n Keep ({{ countKeep() }}/{{_sqlStoredProcedures?.length}})\\r\\n Reviewed ({{ countReviewed() }}/{{_sqlStoredProcedures?.length}})\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Name\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tCodeLOC\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tComplexity\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tKeepReviewed
{{dataItem?.name}}\\r\\n \\r\\n {{dataItem?.linesOfCode}}{{dataItem?.complexity}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\t\\t\\t
\\t\\t\\t\\r\\n
10\\\">\\r\\n View: \\r\\n \\r\\n
1\\\" style=\\\"display:inline-block\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\t\\t\\t
\\r\\n
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 495 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar sites_service_1 = __webpack_require__(371);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar customReports_pipe_1 = __webpack_require__(496);\r\n\tvar CustomReportsComponent = (function () {\r\n\t function CustomReportsComponent(pagerService, sitesService, dialog, viewContainerRef) {\r\n\t this.pagerService = pagerService;\r\n\t this.sitesService = sitesService;\r\n\t this.dialog = dialog;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this._reports = [];\r\n\t this.onChange = new core_1.EventEmitter();\r\n\t this.freezeInputs = false;\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t this.keep = false;\r\n\t this.reviewed = false;\r\n\t this.search = '';\r\n\t this.selectedFilter = '';\r\n\t this.reportsCount = 0;\r\n\t this.fileAssetPath = {};\r\n\t this.pager = {};\r\n\t this.pageSize = 10;\r\n\t this.filterCustomReportPipe = new customReports_pipe_1.FilterCustomReportPipe();\r\n\t this.setParentRptCheckbox = false;\r\n\t this.setParentRvwCheckbox = false;\r\n\t this.childReportRptID = '';\r\n\t this.childReviewRptID = '';\r\n\t }\r\n\t Object.defineProperty(CustomReportsComponent.prototype, \"data\", {\r\n\t get: function () { return this._reports; },\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t if (data.reports) {\r\n\t this._reports = data.reports;\r\n\t this.reportsCount = this.countReportStyles();\r\n\t }\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t CustomReportsComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.onFilterCustom.subscribe(function (res) {\r\n\t _this.selectedFilter = res;\r\n\t _this.filterCustom(_this.selectedFilter, 1);\r\n\t });\r\n\t this.onAnalysisRefresh.subscribe(function (res) {\r\n\t _this.freezeInputs = res;\r\n\t });\r\n\t this.setPage(1);\r\n\t };\r\n\t CustomReportsComponent.prototype.filterCustom = function (filter, page) {\r\n\t var customReports = this._reports;\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t if (filter.status == 'Keep') {\r\n\t for (var _i = 0, customReports_1 = customReports; _i < customReports_1.length; _i++) {\r\n\t var report = customReports_1[_i];\r\n\t for (var _a = 0, _b = report.reportStyles; _a < _b.length; _a++) {\r\n\t var subreport = _b[_a];\r\n\t if (subreport.keep) {\r\n\t report.keep = true;\r\n\t break;\r\n\t }\r\n\t }\r\n\t }\r\n\t }\r\n\t customReports = this.setCustomReportFilter(filter, customReports);\r\n\t this.pager = this.pagerService.getPager(customReports.length, page, this.pageSize);\r\n\t this.pagedItems = customReports.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t CustomReportsComponent.prototype.setCustomReportFilter = function (filter, customReports) {\r\n\t customReports = this.pagerService.filter('custom', customReports, filter);\r\n\t return customReports;\r\n\t };\r\n\t CustomReportsComponent.prototype.filterCustomReport = function (query, page) {\r\n\t var customReports = this._reports;\r\n\t if (query === '') {\r\n\t this.setPage(1);\r\n\t }\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t customReports = this.filterCustomReportPipe.transform(customReports, query);\r\n\t customReports = this.setCustomReportFilter(this.selectedFilter, customReports);\r\n\t this.pager = this.pagerService.getPager(customReports.length, page, this.pageSize);\r\n\t this.pagedItems = customReports.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t CustomReportsComponent.prototype.toggle = function () {\r\n\t if (this.opened) {\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t else {\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t };\r\n\t CustomReportsComponent.prototype.previewCode = function (url, name, language) {\r\n\t if (url) {\r\n\t if (this.sas) {\r\n\t window.open(url + this.sas, \"_self\");\r\n\t }\r\n\t }\r\n\t };\r\n\t CustomReportsComponent.prototype.keepAll = function (checked) {\r\n\t this._reports.forEach(function (report) {\r\n\t report.keep = checked;\r\n\t if (report.reportStyles) {\r\n\t report.reportStyles.forEach(function (style) {\r\n\t style.keep = checked;\r\n\t });\r\n\t }\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t CustomReportsComponent.prototype.reviewedAll = function (checked) {\r\n\t this._reports.forEach(function (report) {\r\n\t report.reviewed = checked;\r\n\t if (report.reportStyles) {\r\n\t report.reportStyles.forEach(function (style) {\r\n\t style.reviewed = checked;\r\n\t });\r\n\t }\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t CustomReportsComponent.prototype.countReportStyles = function () {\r\n\t var stylesCount = 0;\r\n\t this._reports.forEach(function (report) {\r\n\t stylesCount += report.reportStyles.length;\r\n\t });\r\n\t return stylesCount;\r\n\t };\r\n\t CustomReportsComponent.prototype.countCloudWarningReport = function (data) {\r\n\t var count = 0;\r\n\t count = data.filter(function (d) { return d.cloudComplexity === true; }).length;\r\n\t return count;\r\n\t };\r\n\t CustomReportsComponent.prototype.countReports = function () {\r\n\t var count = this.reportsCount;\r\n\t var filter = this.selectedFilter;\r\n\t if (filter.status == 'Keep') {\r\n\t count = this.countKeep();\r\n\t }\r\n\t if (filter.status == 'Cloud Warning') {\r\n\t count = this.countCloudWarningReport(this.data);\r\n\t }\r\n\t return count;\r\n\t };\r\n\t CustomReportsComponent.prototype.countReviewed = function () {\r\n\t var count = 0;\r\n\t this._reports.forEach(function (report) {\r\n\t report.reportStyles.forEach(function (subreport) {\r\n\t count += subreport.reviewed ? 1 : 0;\r\n\t });\r\n\t });\r\n\t return count;\r\n\t };\r\n\t CustomReportsComponent.prototype.countKeep = function () {\r\n\t var count = 0;\r\n\t this._reports.forEach(function (report) {\r\n\t report.reportStyles.forEach(function (subreport) {\r\n\t count += subreport.keep ? 1 : 0;\r\n\t });\r\n\t });\r\n\t return count;\r\n\t };\r\n\t CustomReportsComponent.prototype.previewCodeDisabled = function (item) {\r\n\t if (item && item.reportFileAssets && item.reportFileAssets.length > 0 && item.reportFileAssets[0].cloudFilename) {\r\n\t return false;\r\n\t }\r\n\t return true;\r\n\t };\r\n\t CustomReportsComponent.prototype.previewCodeIcon = function (item) {\r\n\t if (this.previewCodeDisabled(item)) {\r\n\t return \"cloud_download\";\r\n\t }\r\n\t return \"cloud_download\";\r\n\t };\r\n\t CustomReportsComponent.prototype.setPage = function (page) {\r\n\t if (page < 1 || page > this.pager.totalPages) {\r\n\t return;\r\n\t }\r\n\t this.pager = this.pagerService.getPager(this._reports.length, page, this.pageSize);\r\n\t this.pagedItems = this._reports.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t CustomReportsComponent.prototype.setParentReportCheckbox = function (event, item) {\r\n\t this.childReportRptID = '';\r\n\t for (var i = 0; i < item.reportStyles.length; i++) {\r\n\t if (item.reportStyles[i].keep == true) {\r\n\t this.setParentRptCheckbox = true;\r\n\t this.childReportRptID = item.reportID;\r\n\t break;\r\n\t }\r\n\t }\r\n\t };\r\n\t CustomReportsComponent.prototype.setParentReviewCheckbox = function (event, item) {\r\n\t this.childReviewRptID = '';\r\n\t for (var i = 0; i < item.reportStyles.length; i++) {\r\n\t if (item.reportStyles[i].reviewed == true) {\r\n\t this.setParentRvwCheckbox = true;\r\n\t this.childReviewRptID = item.reportID;\r\n\t break;\r\n\t }\r\n\t }\r\n\t };\r\n\t CustomReportsComponent.prototype.groupReferencesArray = function (data, n) {\r\n\t var group = new Array();\r\n\t for (var i = 0, j = 0; i < data.length; i++) {\r\n\t if (i >= n && i % n === 0)\r\n\t j++;\r\n\t group[j] = group[j] || [];\r\n\t group[j].push(data[i]);\r\n\t }\r\n\t return group;\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], CustomReportsComponent.prototype, \"onAnalysisRefresh\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], CustomReportsComponent.prototype, \"onFilterCustom\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", String)\r\n\t ], CustomReportsComponent.prototype, \"sas\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], CustomReportsComponent.prototype, \"data\", null);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], CustomReportsComponent.prototype, \"onChange\", void 0);\r\n\t CustomReportsComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'customReports',\r\n\t template: __webpack_require__(497),\r\n\t providers: [sites_service_1.SitesService, pager_service_1.PagerService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [pager_service_1.PagerService,\r\n\t sites_service_1.SitesService,\r\n\t material_1.MdDialog,\r\n\t core_1.ViewContainerRef])\r\n\t ], CustomReportsComponent);\r\n\t return CustomReportsComponent;\r\n\t}());\r\n\texports.CustomReportsComponent = CustomReportsComponent;\r\n\n\n/***/ },\n/* 496 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar FilterCustomReportPipe = (function () {\r\n\t function FilterCustomReportPipe() {\r\n\t }\r\n\t FilterCustomReportPipe.prototype.transform = function (customReports, query) {\r\n\t if (query === '') {\r\n\t return customReports;\r\n\t }\r\n\t return customReports.filter(function (cr) {\r\n\t return cr.reportDescription.toLowerCase().indexOf(query.toLowerCase()) !== -1;\r\n\t });\r\n\t };\r\n\t FilterCustomReportPipe = __decorate([\r\n\t core_1.Pipe({ name: 'filterCustomReport' })\r\n\t ], FilterCustomReportPipe);\r\n\t return FilterCustomReportPipe;\r\n\t}());\r\n\texports.FilterCustomReportPipe = FilterCustomReportPipe;\r\n\n\n/***/ },\n/* 497 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tReports ({{countReports()}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{reportsCount}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{reportsCount}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t 0\\\" colspan=\\\"6\\\" style=\\\"position: relative; top:-10px\\\" >\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t {{baqId}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tReport Style\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{subDataItem?.styleNum}}{{subDataItem?.printProgram}}{{subDataItem?.complexity}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{ fileAsset.cloudFilename?.substring(fileAsset.cloudFilename.lastIndexOf(\\\"/\\\") + 1, fileAsset.cloudFilename.length) }}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tKeep\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tReviewed\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tExternal Report\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tKeep\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{subDataItem?.printProgram}}{{subDataItem?.complexity}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{ fileAsset.cloudFilename?.substring(fileAsset.cloudFilename.lastIndexOf(\\\"/\\\") + 1, fileAsset.cloudFilename.length) }}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{subDataItem?.numFormula}}
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
10\\\">\\r\\n\\t\\t\\t\\t View: \\r\\n\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\";\n\n/***/ },\n/* 498 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar sites_service_1 = __webpack_require__(371);\r\n\tvar analysis_report_interface_1 = __webpack_require__(499);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar baqReports_pipe_1 = __webpack_require__(500);\r\n\tvar BaqReportsComponent = (function () {\r\n\t function BaqReportsComponent(pagerService, sitesService, dialog, viewContainerRef) {\r\n\t this.pagerService = pagerService;\r\n\t this.sitesService = sitesService;\r\n\t this.dialog = dialog;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this._reports = [];\r\n\t this.onChange = new core_1.EventEmitter();\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t this.keep = false;\r\n\t this.reviewed = false;\r\n\t this.search = '';\r\n\t this.selectedFilter = '';\r\n\t this.reportsCount = 0;\r\n\t this.fileAssetPath = {};\r\n\t this.pager = {};\r\n\t this.filterBaqReportPipe = new baqReports_pipe_1.FilterBaqReportPipe();\r\n\t this.setParentRptCheckbox = false;\r\n\t this.setParentRvwCheckbox = false;\r\n\t this.childReportRptID = '';\r\n\t this.childReviewRptID = '';\r\n\t this.reportTab = analysis_report_interface_1.AnalyserReportTab[analysis_report_interface_1.AnalyserReportTab.Custom];\r\n\t this.reportSection = analysis_report_interface_1.AnalyserReportSection[analysis_report_interface_1.AnalyserReportSection.Report];\r\n\t this.AnalyserReportDocAction = analysis_report_interface_1.AnalyserReportDocAction;\r\n\t }\r\n\t Object.defineProperty(BaqReportsComponent.prototype, \"data\", {\r\n\t get: function () { return this._reports; },\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t if (data.reports) {\r\n\t this._reports = data.reports;\r\n\t this._reports = this._reports.filter(function (objReport) {\r\n\t return objReport.reportDescription.startsWith(\"Report used by BAQReport\");\r\n\t });\r\n\t this.reportsCount = this.countReportStyles();\r\n\t }\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t BaqReportsComponent.prototype.ngOnInit = function () {\r\n\t if (this.countData != null) {\r\n\t }\r\n\t };\r\n\t BaqReportsComponent.prototype.filterBaq = function (filter, page) {\r\n\t var baqReports = this._reports;\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t baqReports = this.setBaqReportFilter(filter, baqReports);\r\n\t this.pager = this.pagerService.getPager(baqReports.length, page);\r\n\t this.pagedItems = baqReports.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t BaqReportsComponent.prototype.setBaqReportFilter = function (filter, baqReports) {\r\n\t baqReports = this.pagerService.filter('custom', baqReports, filter);\r\n\t return baqReports;\r\n\t };\r\n\t BaqReportsComponent.prototype.filterBaqReport = function (query, page) {\r\n\t var baqReports = this._reports;\r\n\t if (query === '') {\r\n\t this.setPage(1);\r\n\t }\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t baqReports = this.filterBaqReportPipe.transform(baqReports, query);\r\n\t baqReports = this.setBaqReportFilter(this.selectedFilter, baqReports);\r\n\t this.pager = this.pagerService.getPager(baqReports.length, page);\r\n\t this.pagedItems = baqReports.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t BaqReportsComponent.prototype.toggle = function () {\r\n\t if (this.opened) {\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t else {\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t };\r\n\t BaqReportsComponent.prototype.previewCode = function (url, name, language) {\r\n\t if (url) {\r\n\t if (this.sas) {\r\n\t window.open(url + this.sas, \"_self\");\r\n\t }\r\n\t }\r\n\t };\r\n\t BaqReportsComponent.prototype.keepAll = function (checked) {\r\n\t this._reports.forEach(function (report) {\r\n\t report.keep = checked;\r\n\t if (report.reportStyles) {\r\n\t report.reportStyles.forEach(function (style) {\r\n\t style.keep = checked;\r\n\t });\r\n\t }\r\n\t });\r\n\t };\r\n\t BaqReportsComponent.prototype.reviewedAll = function (checked) {\r\n\t this._reports.forEach(function (report) {\r\n\t report.reviewed = checked;\r\n\t if (report.reportStyles) {\r\n\t report.reportStyles.forEach(function (style) {\r\n\t style.reviewed = checked;\r\n\t });\r\n\t }\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t BaqReportsComponent.prototype.countReportStyles = function () {\r\n\t var stylesCount = 0;\r\n\t this._reports.forEach(function (report) {\r\n\t stylesCount += report.reportStyles.length;\r\n\t });\r\n\t return stylesCount;\r\n\t };\r\n\t BaqReportsComponent.prototype.countReviewed = function () {\r\n\t var count = 0;\r\n\t this._reports.forEach(function (report) {\r\n\t report.reportStyles.forEach(function (subreport) {\r\n\t count += subreport.reviewed ? 1 : 0;\r\n\t });\r\n\t });\r\n\t return count;\r\n\t };\r\n\t BaqReportsComponent.prototype.countKeep = function () {\r\n\t var count = 0;\r\n\t this._reports.forEach(function (report) {\r\n\t report.reportStyles.forEach(function (subreport) {\r\n\t count += subreport.keep ? 1 : 0;\r\n\t });\r\n\t });\r\n\t return count;\r\n\t };\r\n\t BaqReportsComponent.prototype.previewCodeDisabled = function (item) {\r\n\t if (item && item.reportFileAssets && item.reportFileAssets.length > 0 && item.reportFileAssets[0].cloudFilename) {\r\n\t return false;\r\n\t }\r\n\t return true;\r\n\t };\r\n\t BaqReportsComponent.prototype.previewCodeIcon = function (item) {\r\n\t if (this.previewCodeDisabled(item)) {\r\n\t return \"cloud_download\";\r\n\t }\r\n\t return \"cloud_download\";\r\n\t };\r\n\t BaqReportsComponent.prototype.setPage = function (page) {\r\n\t if (page < 1 || page > this.pager.totalPages) {\r\n\t return;\r\n\t }\r\n\t this.pager = this.pagerService.getPager(this._reports.length, page);\r\n\t this.pagedItems = this._reports.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t BaqReportsComponent.prototype.setParentReportCheckbox = function (event, item) {\r\n\t this.childReportRptID = '';\r\n\t for (var i = 0; i < item.reportStyles.length; i++) {\r\n\t if (item.reportStyles[i].keep == true) {\r\n\t this.setParentRptCheckbox = true;\r\n\t this.childReportRptID = item.reportID;\r\n\t break;\r\n\t }\r\n\t }\r\n\t };\r\n\t BaqReportsComponent.prototype.setParentReviewCheckbox = function (event, item) {\r\n\t this.childReviewRptID = '';\r\n\t for (var i = 0; i < item.reportStyles.length; i++) {\r\n\t if (item.reportStyles[i].reviewed == true) {\r\n\t this.setParentRvwCheckbox = true;\r\n\t this.childReviewRptID = item.reportID;\r\n\t break;\r\n\t }\r\n\t }\r\n\t };\r\n\t BaqReportsComponent.prototype.updateCustomReport = function (customReport, action, actionValue) {\r\n\t var docId = customReport.id;\r\n\t var docAction = analysis_report_interface_1.AnalyserReportDocAction[action];\r\n\t if (docId) {\r\n\t this.sitesService.updateAnalyserReportSectionDocument(this.siteId, this.reportVersion, this.reportTab, this.reportSection, docId, docAction, actionValue).subscribe(function (res) {\r\n\t });\r\n\t }\r\n\t };\r\n\t BaqReportsComponent.prototype.updateCustomReports = function (action, actionValue) {\r\n\t var docAction = analysis_report_interface_1.AnalyserReportDocAction[action];\r\n\t this.sitesService.updateAnalyserReportSectionDocuments(this.siteId, this.reportVersion, this.reportTab, this.reportSection, docAction, actionValue).subscribe(function (res) {\r\n\t });\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Number)\r\n\t ], BaqReportsComponent.prototype, \"siteId\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Number)\r\n\t ], BaqReportsComponent.prototype, \"reportVersion\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], BaqReportsComponent.prototype, \"onFilterCustom\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", String)\r\n\t ], BaqReportsComponent.prototype, \"sas\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], BaqReportsComponent.prototype, \"data\", null);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], BaqReportsComponent.prototype, \"countData\", void 0);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], BaqReportsComponent.prototype, \"onChange\", void 0);\r\n\t BaqReportsComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'baqReports',\r\n\t template: __webpack_require__(501),\r\n\t providers: [sites_service_1.SitesService, pager_service_1.PagerService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [pager_service_1.PagerService,\r\n\t sites_service_1.SitesService,\r\n\t material_1.MdDialog,\r\n\t core_1.ViewContainerRef])\r\n\t ], BaqReportsComponent);\r\n\t return BaqReportsComponent;\r\n\t}());\r\n\texports.BaqReportsComponent = BaqReportsComponent;\r\n\n\n/***/ },\n/* 499 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar AnalyserReportTab;\r\n\t(function (AnalyserReportTab) {\r\n\t AnalyserReportTab[AnalyserReportTab[\"Environment\"] = 0] = \"Environment\";\r\n\t AnalyserReportTab[AnalyserReportTab[\"Licenses\"] = 1] = \"Licenses\";\r\n\t AnalyserReportTab[AnalyserReportTab[\"Companies\"] = 2] = \"Companies\";\r\n\t AnalyserReportTab[AnalyserReportTab[\"Other\"] = 3] = \"Other\";\r\n\t AnalyserReportTab[AnalyserReportTab[\"Custom\"] = 4] = \"Custom\";\r\n\t})(AnalyserReportTab = exports.AnalyserReportTab || (exports.AnalyserReportTab = {}));\r\n\tvar AnalyserReportSection;\r\n\t(function (AnalyserReportSection) {\r\n\t AnalyserReportSection[AnalyserReportSection[\"Environment\"] = 0] = \"Environment\";\r\n\t AnalyserReportSection[AnalyserReportSection[\"License\"] = 1] = \"License\";\r\n\t AnalyserReportSection[AnalyserReportSection[\"Company\"] = 2] = \"Company\";\r\n\t AnalyserReportSection[AnalyserReportSection[\"Conversion\"] = 3] = \"Conversion\";\r\n\t AnalyserReportSection[AnalyserReportSection[\"HealthCheck\"] = 4] = \"HealthCheck\";\r\n\t AnalyserReportSection[AnalyserReportSection[\"PreUpgradeCheck\"] = 5] = \"PreUpgradeCheck\";\r\n\t AnalyserReportSection[AnalyserReportSection[\"ChangeLogABLCode\"] = 6] = \"ChangeLogABLCode\";\r\n\t AnalyserReportSection[AnalyserReportSection[\"CustomTable\"] = 7] = \"CustomTable\";\r\n\t AnalyserReportSection[AnalyserReportSection[\"SQLView\"] = 8] = \"SQLView\";\r\n\t AnalyserReportSection[AnalyserReportSection[\"Dashboard\"] = 9] = \"Dashboard\";\r\n\t AnalyserReportSection[AnalyserReportSection[\"NonUpdatableBAQ\"] = 10] = \"NonUpdatableBAQ\";\r\n\t AnalyserReportSection[AnalyserReportSection[\"UpdatableBAQ\"] = 11] = \"UpdatableBAQ\";\r\n\t AnalyserReportSection[AnalyserReportSection[\"Menu\"] = 12] = \"Menu\";\r\n\t AnalyserReportSection[AnalyserReportSection[\"ReportDataDef\"] = 13] = \"ReportDataDef\";\r\n\t AnalyserReportSection[AnalyserReportSection[\"ExternalReport\"] = 14] = \"ExternalReport\";\r\n\t AnalyserReportSection[AnalyserReportSection[\"Report\"] = 15] = \"Report\";\r\n\t AnalyserReportSection[AnalyserReportSection[\"UserDefinedForm\"] = 16] = \"UserDefinedForm\";\r\n\t AnalyserReportSection[AnalyserReportSection[\"ElectronicBankInterface\"] = 17] = \"ElectronicBankInterface\";\r\n\t AnalyserReportSection[AnalyserReportSection[\"IndustryExtension\"] = 18] = \"IndustryExtension\";\r\n\t AnalyserReportSection[AnalyserReportSection[\"ClientCustomizationAsset\"] = 19] = \"ClientCustomizationAsset\";\r\n\t AnalyserReportSection[AnalyserReportSection[\"SDKModification\"] = 20] = \"SDKModification\";\r\n\t AnalyserReportSection[AnalyserReportSection[\"Configurator\"] = 21] = \"Configurator\";\r\n\t AnalyserReportSection[AnalyserReportSection[\"BPMDataForm\"] = 22] = \"BPMDataForm\";\r\n\t AnalyserReportSection[AnalyserReportSection[\"ExternalABLFile\"] = 23] = \"ExternalABLFile\";\r\n\t AnalyserReportSection[AnalyserReportSection[\"BAQMethodDirective\"] = 24] = \"BAQMethodDirective\";\r\n\t AnalyserReportSection[AnalyserReportSection[\"DataDirective\"] = 25] = \"DataDirective\";\r\n\t AnalyserReportSection[AnalyserReportSection[\"MethodDirective\"] = 26] = \"MethodDirective\";\r\n\t AnalyserReportSection[AnalyserReportSection[\"UICustomization\"] = 27] = \"UICustomization\";\r\n\t AnalyserReportSection[AnalyserReportSection[\"SQLStoredProcedure\"] = 28] = \"SQLStoredProcedure\";\r\n\t})(AnalyserReportSection = exports.AnalyserReportSection || (exports.AnalyserReportSection = {}));\r\n\tvar AnalyserReportDocAction;\r\n\t(function (AnalyserReportDocAction) {\r\n\t AnalyserReportDocAction[AnalyserReportDocAction[\"Keep\"] = 0] = \"Keep\";\r\n\t AnalyserReportDocAction[AnalyserReportDocAction[\"Reviewed\"] = 1] = \"Reviewed\";\r\n\t AnalyserReportDocAction[AnalyserReportDocAction[\"KeepAll\"] = 2] = \"KeepAll\";\r\n\t AnalyserReportDocAction[AnalyserReportDocAction[\"ReviewedAll\"] = 3] = \"ReviewedAll\";\r\n\t})(AnalyserReportDocAction = exports.AnalyserReportDocAction || (exports.AnalyserReportDocAction = {}));\r\n\n\n/***/ },\n/* 500 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar FilterBaqReportPipe = (function () {\r\n\t function FilterBaqReportPipe() {\r\n\t }\r\n\t FilterBaqReportPipe.prototype.transform = function (baqReports, query) {\r\n\t if (query === '') {\r\n\t return baqReports;\r\n\t }\r\n\t return baqReports.filter(function (cr) {\r\n\t return cr.reportDescription.toLowerCase().indexOf(query.toLowerCase()) !== -1;\r\n\t });\r\n\t };\r\n\t FilterBaqReportPipe = __decorate([\r\n\t core_1.Pipe({ name: 'filterBaqReport' })\r\n\t ], FilterBaqReportPipe);\r\n\t return FilterBaqReportPipe;\r\n\t}());\r\n\texports.FilterBaqReportPipe = FilterBaqReportPipe;\r\n\n\n/***/ },\n/* 501 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tBAQ Reports ({{reportsCount}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{reportsCount}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{reportsCount}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tReport Style\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
{{subDataItem?.styleNum}}{{subDataItem?.printProgram}}{{subDataItem?.complexity}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{ fileAsset.cloudFilename?.substring(fileAsset.cloudFilename.lastIndexOf(\\\"/\\\") + 1, fileAsset.cloudFilename.length) }}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tKeep\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tReviewed\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tExternal Report\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tKeep\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{subDataItem?.printProgram}}{{subDataItem?.complexity}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{ fileAsset.cloudFilename?.substring(fileAsset.cloudFilename.lastIndexOf(\\\"/\\\") + 1, fileAsset.cloudFilename.length) }}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{subDataItem?.numFormula}}
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
1\\\">\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\";\n\n/***/ },\n/* 502 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar sites_service_1 = __webpack_require__(371);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar externalReports_pipe_1 = __webpack_require__(503);\r\n\tvar reports_component_service_1 = __webpack_require__(441);\r\n\tvar externalReports_modaldialog_1 = __webpack_require__(504);\r\n\tvar complexity_type_service_1 = __webpack_require__(440);\r\n\tvar ExternalReportsComponent = (function () {\r\n\t function ExternalReportsComponent(pagerService, sitesService, dialog, viewContainerRef, reportComponentService) {\r\n\t this.pagerService = pagerService;\r\n\t this.sitesService = sitesService;\r\n\t this.dialog = dialog;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.reportComponentService = reportComponentService;\r\n\t this._externalReports = [];\r\n\t this._reports = [];\r\n\t this.onChange = new core_1.EventEmitter();\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t this.search = '';\r\n\t this.selectedFilter = '';\r\n\t this.fileAssetPath = {};\r\n\t this.pager = {};\r\n\t this.pageSize = 10;\r\n\t this.filterExternalReportPipe = new externalReports_pipe_1.FilterExternalReportPipe();\r\n\t this.freezeInputs = false;\r\n\t this.isDesc = false;\r\n\t this.column = 'description';\r\n\t this.finalExternalReportList = \"\";\r\n\t this.hidePagination = false;\r\n\t this.toggleFlagPagination = false;\r\n\t this.setFilterColorColumn = \"\";\r\n\t this.checkedAll = false;\r\n\t this.clickedOutside = false;\r\n\t this.sortAsc = -1;\r\n\t }\r\n\t Object.defineProperty(ExternalReportsComponent.prototype, \"data\", {\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t if (data.externalReports) {\r\n\t this._reports = data.externalReports;\r\n\t this._reports.forEach(function (element) {\r\n\t if (element.hasOwnProperty('cloudComplexity') == false) {\r\n\t element.cloudComplexity = false;\r\n\t }\r\n\t });\r\n\t this._externalReports = this._reports;\r\n\t }\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t ExternalReportsComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.onFilterCustom.subscribe(function (res) {\r\n\t _this.selectedFilter = res;\r\n\t _this.filterCustom(_this.selectedFilter, 1);\r\n\t });\r\n\t this.onAnalysisRefresh.subscribe(function (res) {\r\n\t _this.freezeInputs = res;\r\n\t });\r\n\t this.setPage(1);\r\n\t };\r\n\t ExternalReportsComponent.prototype.filterCustom = function (filter, page) {\r\n\t var externalReports = this._externalReports;\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t externalReports = this.setExternalReportFilter(filter, externalReports);\r\n\t this.pager = this.pagerService.getPager(externalReports.length, page, this.pageSize);\r\n\t this.pagedItems = externalReports.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t ExternalReportsComponent.prototype.setExternalReportFilter = function (filter, externalReports) {\r\n\t externalReports = this.pagerService.filter('custom', externalReports, filter);\r\n\t console.log(externalReports);\r\n\t return externalReports;\r\n\t };\r\n\t ExternalReportsComponent.prototype.filterExternalReport = function (query, page) {\r\n\t var externalReports = this._externalReports;\r\n\t if (query === '') {\r\n\t this.setPage(1);\r\n\t }\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t externalReports = this.filterExternalReportPipe.transform(externalReports, query);\r\n\t externalReports = this.setExternalReportFilter(this.selectedFilter, externalReports);\r\n\t this.pager = this.pagerService.getPager(externalReports.length, page, this.pageSize);\r\n\t this.pagedItems = externalReports.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t ExternalReportsComponent.prototype.toggle = function () {\r\n\t if (this.opened) {\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t else {\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t };\r\n\t ExternalReportsComponent.prototype.previewCode = function (url, name) {\r\n\t if (url) {\r\n\t if (this.sas) {\r\n\t window.open(url + this.sas, \"_self\");\r\n\t }\r\n\t }\r\n\t };\r\n\t ExternalReportsComponent.prototype.keepAll = function (checked) {\r\n\t this._externalReports.forEach(function (dataItem) {\r\n\t (dataItem).keep = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t ExternalReportsComponent.prototype.reviewedAll = function (checked) {\r\n\t this._externalReports.forEach(function (dataItem) {\r\n\t (dataItem).reviewed = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t ExternalReportsComponent.prototype.countReviewed = function () {\r\n\t var count = 0;\r\n\t this._externalReports.forEach(function (dataItem) {\r\n\t count += (dataItem).reviewed ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t ExternalReportsComponent.prototype.countKeep = function () {\r\n\t var count = 0;\r\n\t this._externalReports.forEach(function (dataItem) {\r\n\t count += (dataItem).keep ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t ExternalReportsComponent.prototype.sortItems = function (sortby) {\r\n\t var sortAsc = this.sortAsc;\r\n\t this._externalReports = this._externalReports.sort(function (a, b) {\r\n\t if (a[sortby] > b[sortby]) {\r\n\t return -1 * sortAsc;\r\n\t }\r\n\t else\r\n\t return 1 * sortAsc;\r\n\t });\r\n\t sortAsc = sortAsc * -1;\r\n\t };\r\n\t ExternalReportsComponent.prototype.previewCodeDisabled = function (item) {\r\n\t if (item && item.reportFileAssets && item.reportFileAssets.length > 0 && item.reportFileAssets[0].cloudFilename) {\r\n\t return false;\r\n\t }\r\n\t return true;\r\n\t };\r\n\t ExternalReportsComponent.prototype.previewCodeIcon = function (item) {\r\n\t if (this.previewCodeDisabled(item)) {\r\n\t return 'cloud_download';\r\n\t }\r\n\t return 'cloud_download';\r\n\t };\r\n\t ExternalReportsComponent.prototype.setPage = function (page) {\r\n\t if (page < 1 || page > this.pager.totalPages) {\r\n\t return;\r\n\t }\r\n\t this.pager = this.pagerService.getPager(this._externalReports.length, page, this.pageSize);\r\n\t this.pagedItems = this._externalReports.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t this.finalExternalReportList = \"\";\r\n\t this.checkedAll = false;\r\n\t this.reportComponentService.ngExternalReportInitFlag(this.pagedItems);\r\n\t this.sort(this.column);\r\n\t };\r\n\t ExternalReportsComponent.prototype.sort = function (property) {\r\n\t this.isDesc = !this.isDesc;\r\n\t this.column = property;\r\n\t this.direction = this.isDesc ? 1 : -1;\r\n\t };\r\n\t ExternalReportsComponent.prototype.openDialog = function (colElem) {\r\n\t var _this = this;\r\n\t var ExternalReportDialogInput = {\r\n\t pagedItems: this.pagedItems,\r\n\t finalExternalReportList: this.finalExternalReportList,\r\n\t selectedColumn: colElem,\r\n\t checkedAll: this.checkedAll,\r\n\t };\r\n\t this.setFilterColorColumn = colElem;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.dialogExternalReportRef = this.dialog.open(externalReports_modaldialog_1.ExternalReportDialog, config);\r\n\t this.dialogExternalReportRef.componentInstance.render(ExternalReportDialogInput);\r\n\t this.dialogExternalReportRef.afterClosed().subscribe(function (result) {\r\n\t _this.clickedOutside = _this.dialogExternalReportRef.componentInstance.clickedOutside;\r\n\t if (!_this.clickedOutside) {\r\n\t _this.selectedItems = [];\r\n\t _this.finalExternalReportList = _this.dialogExternalReportRef.componentInstance.finalExternalReportList;\r\n\t _this.checkedAll = _this.dialogExternalReportRef.componentInstance.checkedAll;\r\n\t if (_this.finalExternalReportList != null && _this.finalExternalReportList != undefined && _this.finalExternalReportList.length > 0) {\r\n\t _this.finalExternalReportList.split(',').forEach(function (item) {\r\n\t _this.selectedItems.push(item);\r\n\t });\r\n\t if (_this.selectedItems.length != _this.pagedItems.length)\r\n\t _this.hidePagination = true;\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t _this.dialogExternalReportRef = null;\r\n\t });\r\n\t };\r\n\t ExternalReportsComponent.prototype.setFilterColorDesc = function () {\r\n\t return this.reportComponentService.setFilterColorDesc(this.finalExternalReportList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t ExternalReportsComponent.prototype.setFilterColorType = function () {\r\n\t return this.reportComponentService.setFilterColorType(this.finalExternalReportList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t ExternalReportsComponent.prototype.setFilterColorID = function () {\r\n\t return this.reportComponentService.setFilterColorID(this.finalExternalReportList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t ExternalReportsComponent.prototype.setFilterColorComplexity = function () {\r\n\t return this.reportComponentService.setFilterColorComplexity(this.finalExternalReportList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], ExternalReportsComponent.prototype, \"onAnalysisRefresh\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], ExternalReportsComponent.prototype, \"onFilterCustom\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", String)\r\n\t ], ExternalReportsComponent.prototype, \"sas\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], ExternalReportsComponent.prototype, \"data\", null);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], ExternalReportsComponent.prototype, \"onChange\", void 0);\r\n\t ExternalReportsComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'externalReports',\r\n\t template: __webpack_require__(505),\r\n\t providers: [pager_service_1.PagerService, reports_component_service_1.ReportComponentService, complexity_type_service_1.ComplexityService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [pager_service_1.PagerService,\r\n\t sites_service_1.SitesService,\r\n\t material_1.MdDialog,\r\n\t core_1.ViewContainerRef,\r\n\t reports_component_service_1.ReportComponentService])\r\n\t ], ExternalReportsComponent);\r\n\t return ExternalReportsComponent;\r\n\t}());\r\n\texports.ExternalReportsComponent = ExternalReportsComponent;\r\n\n\n/***/ },\n/* 503 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar FilterExternalReportPipe = (function () {\r\n\t function FilterExternalReportPipe() {\r\n\t }\r\n\t FilterExternalReportPipe.prototype.transform = function (externalReports, query) {\r\n\t if (query === '') {\r\n\t return externalReports;\r\n\t }\r\n\t return externalReports.filter(function (er) {\r\n\t return er.description.toLowerCase().indexOf(query.toLowerCase()) !== -1;\r\n\t });\r\n\t };\r\n\t FilterExternalReportPipe = __decorate([\r\n\t core_1.Pipe({ name: 'filterExternalReport' })\r\n\t ], FilterExternalReportPipe);\r\n\t return FilterExternalReportPipe;\r\n\t}());\r\n\texports.FilterExternalReportPipe = FilterExternalReportPipe;\r\n\n\n/***/ },\n/* 504 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar reports_component_service_1 = __webpack_require__(441);\r\n\tvar ExternalReportDialog = (function () {\r\n\t function ExternalReportDialog(dialogRef, errorChangeDetectorRef, viewContainerRef, dialog, elementRef) {\r\n\t this.dialogRef = dialogRef;\r\n\t this.errorChangeDetectorRef = errorChangeDetectorRef;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.dialog = dialog;\r\n\t this.elementRef = elementRef;\r\n\t this.checkedAll = false;\r\n\t this.selectedColumn = \"\";\r\n\t this.selectedColumnGroupBy = \"\";\r\n\t this.hidePagination = false;\r\n\t this.externalReportList = [];\r\n\t this.disableApplyButton = false;\r\n\t this.clickedOutside = false;\r\n\t this.tempList = [];\r\n\t }\r\n\t ExternalReportDialog.prototype.render = function (externalReportDetails) {\r\n\t var _this = this;\r\n\t this.pagedItems = externalReportDetails.pagedItems;\r\n\t this.finalExternalReportList = externalReportDetails.finalExternalReportList;\r\n\t this.tempList = this.finalExternalReportList;\r\n\t this.checkedAll = externalReportDetails.checkedAll;\r\n\t this.selectedColumn = externalReportDetails.selectedColumn;\r\n\t this.selectedColumnGroupBy = this.getGroupByColumnName();\r\n\t if (this.finalExternalReportList != undefined && this.finalExternalReportList.length > 0) {\r\n\t this.finalExternalReportList.split(',').forEach(function (id) {\r\n\t _this.externalReportList.push(Number(id));\r\n\t _this.pagedItems.filter(function (item) { return item.rowIndex == id; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t });\r\n\t }\r\n\t this.container.nativeElement.children[1].style.maxHeight = \"30vh\";\r\n\t this.container.nativeElement.children[1].style.overflow = \"auto\";\r\n\t this.container.nativeElement.children[2].style.float = \"right\";\r\n\t this.container.nativeElement.children[2].style.position = \"relative\";\r\n\t this.container.nativeElement.children[2].style.top = \"1vh\";\r\n\t };\r\n\t ExternalReportDialog.prototype.applyModal = function () {\r\n\t var _this = this;\r\n\t if (this.externalReportList.length > 0 && this.pagedItems.filter(function (item) { return item.isChecked == true; }).length == 0) {\r\n\t this.showErrorMessage();\r\n\t this.disableApplyButton = true;\r\n\t return;\r\n\t }\r\n\t this.disableApplyButton = false;\r\n\t this.externalReportList = [];\r\n\t this.pagedItems.filter(function (item) { return item.isChecked == true; }).forEach(function (item) {\r\n\t _this.externalReportList.push(item.rowIndex);\r\n\t });\r\n\t this.finalExternalReportList = this.externalReportList.toString();\r\n\t this.dialogRef.close();\r\n\t };\r\n\t ExternalReportDialog.prototype.checkboxFieldChange = function (event, colElem) {\r\n\t if (!event.checked) {\r\n\t this.checkedAll = false;\r\n\t }\r\n\t this.checkboxFieldChangedProcess(this.pagedItems, event, colElem);\r\n\t };\r\n\t ExternalReportDialog.prototype.close = function () {\r\n\t this.checkedAll = false;\r\n\t this.finalExternalReportList = this.tempList.toString();\r\n\t this.dialogRef.close();\r\n\t };\r\n\t ExternalReportDialog.prototype.toggleAll = function (event) {\r\n\t this.disableApplyButton = false;\r\n\t this.finalExternalReportList = this.setToggleValue(this.pagedItems);\r\n\t };\r\n\t ExternalReportDialog.prototype.getGroupByColumnName = function () {\r\n\t if (this.selectedColumn == ExternalReportsFilterColumnName[ExternalReportsFilterColumnName.Description])\r\n\t return 'description';\r\n\t else if (this.selectedColumn == ExternalReportsFilterColumnName[ExternalReportsFilterColumnName.ID])\r\n\t return \"id\";\r\n\t else if (this.selectedColumn == ExternalReportsFilterColumnName[ExternalReportsFilterColumnName.Type])\r\n\t return \"reportType\";\r\n\t else\r\n\t return \"complexity\";\r\n\t };\r\n\t ExternalReportDialog.prototype.checkboxFieldChangedProcess = function (items, event, colElem) {\r\n\t if (colElem == ExternalReportsFilterColumnName[ExternalReportsFilterColumnName.Description]) {\r\n\t this.descFieldProcess(items, event);\r\n\t }\r\n\t else if (colElem == ExternalReportsFilterColumnName[ExternalReportsFilterColumnName.ID]) {\r\n\t this.idTypeProcess(items, event);\r\n\t }\r\n\t else if (colElem == ExternalReportsFilterColumnName[ExternalReportsFilterColumnName.Type]) {\r\n\t this.reportTypeFieldProcess(items, event);\r\n\t }\r\n\t else if (colElem == ExternalReportsFilterColumnName[ExternalReportsFilterColumnName.Complexity]) {\r\n\t this.complexityFieldProcess(items, event);\r\n\t }\r\n\t };\r\n\t ExternalReportDialog.prototype.descFieldProcess = function (items, event) {\r\n\t var description = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t description = getRowDetails[0].description;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.description == description; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.description == description; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t ExternalReportDialog.prototype.idTypeProcess = function (items, event) {\r\n\t var id = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t id = getRowDetails[0].id;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.id == id; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.id == id; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t ExternalReportDialog.prototype.reportTypeFieldProcess = function (items, event) {\r\n\t var reportType = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t reportType = getRowDetails[0].reportType;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.reportType == reportType; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.reportType == reportType; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t ExternalReportDialog.prototype.complexityFieldProcess = function (items, event) {\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t var complexity = getRowDetails[0].complexity;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.complexity == complexity; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.complexity == complexity; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t ExternalReportDialog.prototype.setToggleValue = function (items) {\r\n\t var _this = this;\r\n\t var toggleFlag = this.checkedAll;\r\n\t items.forEach(function (item) {\r\n\t item.isChecked = toggleFlag;\r\n\t });\r\n\t this.externalReportList = [];\r\n\t if (toggleFlag) {\r\n\t items.forEach(function (item) {\r\n\t _this.externalReportList.push(Number(item.rowIndex));\r\n\t });\r\n\t }\r\n\t return this.externalReportList.toString();\r\n\t };\r\n\t ExternalReportDialog.prototype.showErrorMessage = function () {\r\n\t var _this = this;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.errorDialogRef = this.dialog.open(reports_component_service_1.ErrorMessageDialog, config);\r\n\t this.errorDialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.errorDialogRef = null;\r\n\t });\r\n\t };\r\n\t ExternalReportDialog.prototype.onClick = function (event) {\r\n\t var clickedOutsideDialog = event.target;\r\n\t var inside = false;\r\n\t do {\r\n\t if (clickedOutsideDialog === this.elementRef.nativeElement) {\r\n\t inside = true;\r\n\t }\r\n\t clickedOutsideDialog = clickedOutsideDialog.parentNode;\r\n\t } while (clickedOutsideDialog);\r\n\t if (inside) {\r\n\t this.clickedOutside = false;\r\n\t }\r\n\t else {\r\n\t this.clickedOutside = true;\r\n\t }\r\n\t };\r\n\t __decorate([\r\n\t core_1.ViewChild('container'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], ExternalReportDialog.prototype, \"container\", void 0);\r\n\t ExternalReportDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'externalreport.dialog',\r\n\t host: {\r\n\t '(document:click)': 'onClick($event)',\r\n\t },\r\n\t template: \"\\n\\n
External Reports - {{selectedColumn}}
\\n\\n
\\n \\n \\n \\n\\n
\\n (Select All) \\n
\\n
\\n {{md.value[0].description}} \\n
\\n
\\n\\n
\\n
\\n {{md.value[0].id}} \\n
\\n
\\n \\n
\\n
\\n {{md.value[0].reportType}} \\n
\\n
\\n \\n
\\n
\\n {{md.value[0].complexity}} \\n
\\n
\\n\\n
\\n \\n
\\n \\n \\n
\\n
\\n\",\r\n\t providers: [pager_service_1.PagerService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef,\r\n\t core_1.ChangeDetectorRef,\r\n\t core_1.ViewContainerRef,\r\n\t material_1.MdDialog,\r\n\t core_1.ElementRef])\r\n\t ], ExternalReportDialog);\r\n\t return ExternalReportDialog;\r\n\t}());\r\n\texports.ExternalReportDialog = ExternalReportDialog;\r\n\tvar ExternalReportsFilterColumnName;\r\n\t(function (ExternalReportsFilterColumnName) {\r\n\t ExternalReportsFilterColumnName[ExternalReportsFilterColumnName[\"Description\"] = 0] = \"Description\";\r\n\t ExternalReportsFilterColumnName[ExternalReportsFilterColumnName[\"ID\"] = 1] = \"ID\";\r\n\t ExternalReportsFilterColumnName[ExternalReportsFilterColumnName[\"Type\"] = 2] = \"Type\";\r\n\t ExternalReportsFilterColumnName[ExternalReportsFilterColumnName[\"Complexity\"] = 3] = \"Complexity\";\r\n\t})(ExternalReportsFilterColumnName = exports.ExternalReportsFilterColumnName || (exports.ExternalReportsFilterColumnName = {}));\r\n\n\n/***/ },\n/* 505 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tExternal Reports ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_externalReports?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_externalReports?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
Description\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tID\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tType\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tPathComplexity\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tCloud WarningKeepReviewed
{{dataItem?.description}}{{dataItem?.id}}{{dataItem?.reportType}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{ fileAsset.cloudFilename?.substring(fileAsset.cloudFilename.lastIndexOf(\\\"/\\\") + 1, fileAsset.cloudFilename.length) }}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n \\r\\n\\t\\t\\t\\t\\t\\t{{dataItem?.complexity}}\\r\\n\\t\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t Yes \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t No \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\t\\t\\t\\r\\n\\t\\t\\t\\t
10\\\">\\r\\n\\t\\t\\t\\t\\t View: \\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n/***/ },\n/* 506 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar menus_pipe_1 = __webpack_require__(507);\r\n\tvar menus_dialog_1 = __webpack_require__(444);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar complexity_type_service_1 = __webpack_require__(440);\r\n\tvar reports_component_service_1 = __webpack_require__(441);\r\n\tvar MenusComponent = (function () {\r\n\t function MenusComponent(pagerService, dialog, viewContainerRef, reportComponentService, complexityService) {\r\n\t this.pagerService = pagerService;\r\n\t this.dialog = dialog;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.reportComponentService = reportComponentService;\r\n\t this.complexityService = complexityService;\r\n\t this._menus = [];\r\n\t this.onChange = new core_1.EventEmitter();\r\n\t this.freezeInputs = false;\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t this.keep = false;\r\n\t this.reviewed = false;\r\n\t this.search = '';\r\n\t this.selectedFilter = '';\r\n\t this.pager = {};\r\n\t this.pageSize = 10;\r\n\t this.filterMenuPipe = new menus_pipe_1.FilterMenuPipe();\r\n\t this.finalMenusList = \"\";\r\n\t this.isDesc = false;\r\n\t this.column = 'menuID';\r\n\t this.checkedAll = false;\r\n\t this.selectedMenusCount = 0;\r\n\t this.selectedMenus = [];\r\n\t this.hidePagination = false;\r\n\t this.toggleFlagPagination = false;\r\n\t this.setFilterColorColumn = '';\r\n\t this.clickedOutside = false;\r\n\t }\r\n\t Object.defineProperty(MenusComponent.prototype, \"data\", {\r\n\t get: function () { return this._menus; },\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t if (data.menus) {\r\n\t this._menus = data.menus;\r\n\t }\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t MenusComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.onFilterCustom.subscribe(function (res) {\r\n\t _this.selectedFilter = res;\r\n\t _this.filterCustom(_this.selectedFilter, 1);\r\n\t });\r\n\t this.onAnalysisRefresh.subscribe(function (res) {\r\n\t _this.freezeInputs = res;\r\n\t });\r\n\t this.setPage(1);\r\n\t };\r\n\t MenusComponent.prototype.filterCustom = function (filter, page) {\r\n\t var menus = this._menus;\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t menus = this.setMenuFilter(filter, menus);\r\n\t this.pager = this.pagerService.getPager(menus.length, page, this.pageSize);\r\n\t this.pagedItems = menus.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t MenusComponent.prototype.setMenuFilter = function (filter, menus) {\r\n\t menus = this.pagerService.filter('custom', menus, filter);\r\n\t return menus;\r\n\t };\r\n\t MenusComponent.prototype.filterMenu = function (query, page) {\r\n\t var menus = this._menus;\r\n\t if (query === '') {\r\n\t this.setPage(1);\r\n\t }\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t menus = this.filterMenuPipe.transform(menus, query);\r\n\t menus = this.setMenuFilter(this.selectedFilter, menus);\r\n\t this.pager = this.pagerService.getPager(menus.length, page, this.pageSize);\r\n\t this.pagedItems = menus.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t MenusComponent.prototype.toggle = function () {\r\n\t if (this.opened) {\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t else {\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t };\r\n\t MenusComponent.prototype.keepAll = function (checked) {\r\n\t this._menus.forEach(function (bpms) {\r\n\t bpms.keep = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t MenusComponent.prototype.reviewedAll = function (checked) {\r\n\t this._menus.forEach(function (bpms) {\r\n\t bpms.reviewed = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t MenusComponent.prototype.countReviewed = function () {\r\n\t var count = 0;\r\n\t this._menus.forEach(function (bpms) {\r\n\t count += bpms.reviewed ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t MenusComponent.prototype.countKeep = function () {\r\n\t var count = 0;\r\n\t this._menus.forEach(function (bpms) {\r\n\t count += bpms.keep ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t MenusComponent.prototype.setPage = function (page) {\r\n\t if (page < 1 || page > this.pager.totalPages) {\r\n\t return;\r\n\t }\r\n\t if (this.search !== '') {\r\n\t this.filterMenu(this.search, page);\r\n\t }\r\n\t else {\r\n\t this.pager = this.pagerService.getPager(this._menus.length, page, this.pageSize);\r\n\t this.pagedItems = this._menus.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t this.finalMenusList = \"\";\r\n\t this.checkedAll = false;\r\n\t this.reportComponentService.ngMenusInitFlag(this.pagedItems);\r\n\t this.sort(this.column);\r\n\t }\r\n\t };\r\n\t MenusComponent.prototype.openDialog = function (colElem) {\r\n\t var _this = this;\r\n\t var menusDialogInput = {\r\n\t pagedItems: this.pagedItems,\r\n\t finalMenusList: this.finalMenusList,\r\n\t selectedColumn: colElem,\r\n\t checkedAll: this.checkedAll\r\n\t };\r\n\t this.setFilterColorColumn = colElem;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.dialogMenusRef = this.dialog.open(menus_dialog_1.MenusReportDialog, config);\r\n\t this.dialogMenusRef.componentInstance.render(menusDialogInput);\r\n\t this.dialogMenusRef.afterClosed().subscribe(function (result) {\r\n\t _this.clickedOutside = _this.dialogMenusRef.componentInstance.clickedOutside;\r\n\t if (!_this.clickedOutside) {\r\n\t _this.selectedMenus = [];\r\n\t _this.finalMenusList = _this.dialogMenusRef.componentInstance.finalMenusList;\r\n\t _this.checkedAll = _this.dialogMenusRef.componentInstance.checkedAll;\r\n\t if (_this.finalMenusList != null && _this.finalMenusList != undefined && _this.finalMenusList.length > 0) {\r\n\t _this.finalMenusList.split(',').forEach(function (item) {\r\n\t _this.selectedMenus.push(item);\r\n\t });\r\n\t if (_this.selectedMenus.length != _this.pagedItems.length)\r\n\t _this.hidePagination = true;\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t _this.dialogMenusRef = null;\r\n\t });\r\n\t };\r\n\t MenusComponent.prototype.sort = function (property) {\r\n\t this.isDesc = !this.isDesc;\r\n\t this.column = property;\r\n\t this.direction = this.isDesc ? 1 : -1;\r\n\t };\r\n\t MenusComponent.prototype.setFilterColorID = function () {\r\n\t return this.reportComponentService.setFilterColorID(this.finalMenusList, this.setFilterColorColumn);\r\n\t };\r\n\t MenusComponent.prototype.setFilterColorName = function () {\r\n\t return this.reportComponentService.setFilterColorName(this.finalMenusList, this.setFilterColorColumn);\r\n\t };\r\n\t MenusComponent.prototype.setFilterColorProgram = function () {\r\n\t return this.reportComponentService.setFilterColorProgram(this.finalMenusList, this.setFilterColorColumn);\r\n\t };\r\n\t MenusComponent.prototype.setFilterColorArguments = function () {\r\n\t return this.reportComponentService.setFilterColorArguments(this.finalMenusList, this.setFilterColorColumn);\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], MenusComponent.prototype, \"onAnalysisRefresh\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], MenusComponent.prototype, \"onFilterCustom\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], MenusComponent.prototype, \"data\", null);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], MenusComponent.prototype, \"onChange\", void 0);\r\n\t MenusComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'menus',\r\n\t template: __webpack_require__(508),\r\n\t providers: [pager_service_1.PagerService, reports_component_service_1.ReportComponentService, complexity_type_service_1.ComplexityService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [pager_service_1.PagerService,\r\n\t material_1.MdDialog,\r\n\t core_1.ViewContainerRef,\r\n\t reports_component_service_1.ReportComponentService,\r\n\t complexity_type_service_1.ComplexityService])\r\n\t ], MenusComponent);\r\n\t return MenusComponent;\r\n\t}());\r\n\texports.MenusComponent = MenusComponent;\r\n\n\n/***/ },\n/* 507 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar FilterMenuPipe = (function () {\r\n\t function FilterMenuPipe() {\r\n\t }\r\n\t FilterMenuPipe.prototype.transform = function (menus, query) {\r\n\t if (query === '') {\r\n\t return menus;\r\n\t }\r\n\t return menus.filter(function (m) {\r\n\t return m.menuDesc.toLowerCase().indexOf(query.toLowerCase()) !== -1;\r\n\t });\r\n\t };\r\n\t FilterMenuPipe = __decorate([\r\n\t core_1.Pipe({ name: 'filterMenu' })\r\n\t ], FilterMenuPipe);\r\n\t return FilterMenuPipe;\r\n\t}());\r\n\texports.FilterMenuPipe = FilterMenuPipe;\r\n\n\n/***/ },\n/* 508 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tMenus ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_menus\\r\\n ?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_menus\\r\\n ?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
ID\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tName\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tProgram\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tArguments\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tKeepReviewed
{{dataItem?.menuID}}{{dataItem?.menuDesc}}{{dataItem?.program}}{{dataItem?.arguments}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t
10\\\">\\r\\n\\t\\t\\t\\t\\t View: \\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n/***/ },\n/* 509 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar udforms_modaldialog_1 = __webpack_require__(445);\r\n\tvar reports_component_service_1 = __webpack_require__(441);\r\n\tvar complexity_type_service_1 = __webpack_require__(440);\r\n\tvar UDFormsComponent = (function () {\r\n\t function UDFormsComponent(pagerService, dialog, viewContainerRef, reportComponentService, complexityService) {\r\n\t this.pagerService = pagerService;\r\n\t this.dialog = dialog;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.reportComponentService = reportComponentService;\r\n\t this.complexityService = complexityService;\r\n\t this._udforms = [];\r\n\t this.onChange = new core_1.EventEmitter();\r\n\t this.freezeInputs = false;\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t this.keep = false;\r\n\t this.reviewed = false;\r\n\t this.search = '';\r\n\t this.pager = {};\r\n\t this.pageSize = 10;\r\n\t this.finalUDTablesList = \"\";\r\n\t this.isDesc = false;\r\n\t this.column = 'udFormName';\r\n\t this.checkedAll = false;\r\n\t this.rowIndex = 1;\r\n\t this.selectedUdTablesCount = 0;\r\n\t this.hidePagination = false;\r\n\t this.toggleFlagPagination = false;\r\n\t this.setFilterColorColumn = '';\r\n\t this.clickedOutside = false;\r\n\t this.selectedFilter = {};\r\n\t this.sortAsc = -1;\r\n\t }\r\n\t Object.defineProperty(UDFormsComponent.prototype, \"data\", {\r\n\t get: function () { return this._udforms; },\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t if (data.userDefinedForms) {\r\n\t this._udforms = data.userDefinedForms;\r\n\t }\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t UDFormsComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.onFilterCustom.subscribe(function (res) {\r\n\t _this.selectedFilter = res;\r\n\t _this.filterCustom(_this.selectedFilter, 1);\r\n\t });\r\n\t this.onAnalysisRefresh.subscribe(function (res) {\r\n\t _this.freezeInputs = res;\r\n\t });\r\n\t this.setPage(1);\r\n\t };\r\n\t UDFormsComponent.prototype.toggle = function () {\r\n\t if (this.opened) {\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t else {\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t };\r\n\t UDFormsComponent.prototype.filterCustom = function (filter, page) {\r\n\t var udForms = this._udforms;\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t udForms = this.setUDFormsFilter(filter, udForms);\r\n\t this.pager = this.pagerService.getPager(udForms.length, page, this.pageSize);\r\n\t this.pagedItems = udForms.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t UDFormsComponent.prototype.setUDFormsFilter = function (filter, udForms) {\r\n\t udForms = this.pagerService.filter('custom', udForms, filter);\r\n\t return udForms;\r\n\t };\r\n\t UDFormsComponent.prototype.keepAll = function (checked) {\r\n\t this._udforms.forEach(function (bpms) {\r\n\t bpms.keep = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t UDFormsComponent.prototype.reviewedAll = function (checked) {\r\n\t this._udforms.forEach(function (bpms) {\r\n\t bpms.reviewed = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t UDFormsComponent.prototype.countReviewed = function () {\r\n\t var count = 0;\r\n\t this._udforms.forEach(function (bpms) {\r\n\t count += bpms.reviewed ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t UDFormsComponent.prototype.countKeep = function () {\r\n\t var count = 0;\r\n\t this._udforms.forEach(function (bpms) {\r\n\t count += bpms.keep ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t UDFormsComponent.prototype.sortItems = function (sortby) {\r\n\t var sortAsc = this.sortAsc;\r\n\t this._udforms = this._udforms.sort(function (a, b) {\r\n\t if (a[sortby] > b[sortby]) {\r\n\t return -1 * sortAsc;\r\n\t }\r\n\t else\r\n\t return 1 * sortAsc;\r\n\t });\r\n\t sortAsc = sortAsc * -1;\r\n\t };\r\n\t UDFormsComponent.prototype.setPage = function (page) {\r\n\t if (page < 1 || page > this.pager.totalPages) {\r\n\t return;\r\n\t }\r\n\t this.pager = this.pagerService.getPager(this._udforms.length, page, this.pageSize);\r\n\t this.pagedItems = this._udforms.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t this.finalUDTablesList = \"\";\r\n\t this.checkedAll = false;\r\n\t this.reportComponentService.ngUdFormsInitFlag(this.pagedItems);\r\n\t this.sort(this.column);\r\n\t };\r\n\t UDFormsComponent.prototype.openDialog = function (colElem) {\r\n\t var _this = this;\r\n\t var udTablesDialogInput = {\r\n\t pagedItems: this.pagedItems,\r\n\t finalUDTablesList: this.finalUDTablesList,\r\n\t selectedColumn: colElem,\r\n\t checkedAll: this.checkedAll\r\n\t };\r\n\t this.setFilterColorColumn = colElem;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.udTablesdialogRef = this.dialog.open(udforms_modaldialog_1.UDTablesReportDialog, config);\r\n\t this.udTablesdialogRef.componentInstance.render(udTablesDialogInput);\r\n\t this.udTablesdialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.clickedOutside = _this.udTablesdialogRef.componentInstance.clickedOutside;\r\n\t if (!_this.clickedOutside) {\r\n\t _this.selectedItems = [];\r\n\t _this.finalUDTablesList = _this.udTablesdialogRef.componentInstance.finalUDTablesList;\r\n\t _this.checkedAll = _this.udTablesdialogRef.componentInstance.checkedAll;\r\n\t if (_this.finalUDTablesList != null && _this.finalUDTablesList != undefined && _this.finalUDTablesList.length > 0) {\r\n\t _this.finalUDTablesList.split(',').forEach(function (item) {\r\n\t _this.selectedItems.push(item);\r\n\t });\r\n\t if (_this.selectedItems.length != _this.pagedItems.length)\r\n\t _this.hidePagination = true;\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t _this.udTablesdialogRef = null;\r\n\t });\r\n\t };\r\n\t UDFormsComponent.prototype.sort = function (property) {\r\n\t this.isDesc = !this.isDesc;\r\n\t this.column = property;\r\n\t this.direction = this.isDesc ? 1 : -1;\r\n\t };\r\n\t ;\r\n\t UDFormsComponent.prototype.setFilterColorName = function () {\r\n\t return this.reportComponentService.setFilterColorName(this.finalUDTablesList, this.setFilterColorColumn);\r\n\t };\r\n\t UDFormsComponent.prototype.setFilterColorDesc = function () {\r\n\t return this.reportComponentService.setFilterColorDesc(this.finalUDTablesList, this.setFilterColorColumn);\r\n\t };\r\n\t UDFormsComponent.prototype.setFilterColorRows = function () {\r\n\t return this.reportComponentService.setFilterColorRows(this.finalUDTablesList, this.setFilterColorColumn);\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], UDFormsComponent.prototype, \"onAnalysisRefresh\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], UDFormsComponent.prototype, \"onFilterCustom\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], UDFormsComponent.prototype, \"data\", null);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], UDFormsComponent.prototype, \"onChange\", void 0);\r\n\t UDFormsComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'udForms',\r\n\t template: __webpack_require__(510),\r\n\t providers: [pager_service_1.PagerService, reports_component_service_1.ReportComponentService, complexity_type_service_1.ComplexityService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [pager_service_1.PagerService,\r\n\t material_1.MdDialog,\r\n\t core_1.ViewContainerRef,\r\n\t reports_component_service_1.ReportComponentService,\r\n\t complexity_type_service_1.ComplexityService])\r\n\t ], UDFormsComponent);\r\n\t return UDFormsComponent;\r\n\t}());\r\n\texports.UDFormsComponent = UDFormsComponent;\r\n\n\n/***/ },\n/* 510 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tUD Tables ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_udforms?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_udforms?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
Name \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tDescription\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tRows\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tKeepReviewed
{{dataItem?.udFormName}}{{dataItem?.description}}{{dataItem?.parentCount}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t
10\\\">\\r\\n\\t\\t\\t\\t\\t View: \\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n/***/ },\n/* 511 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar sdk_modaldialog_1 = __webpack_require__(512);\r\n\tvar reports_component_service_1 = __webpack_require__(441);\r\n\tvar complexity_type_service_1 = __webpack_require__(440);\r\n\tvar SdkComponent = (function () {\r\n\t function SdkComponent(pagerService, dialog, viewContainerRef, reportComponentService, complexityService) {\r\n\t this.pagerService = pagerService;\r\n\t this.dialog = dialog;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.reportComponentService = reportComponentService;\r\n\t this.complexityService = complexityService;\r\n\t this._sdk = [];\r\n\t this.onChange = new core_1.EventEmitter();\r\n\t this.freezeInputs = false;\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t this.keep = false;\r\n\t this.reviewed = false;\r\n\t this.search = '';\r\n\t this.pager = {};\r\n\t this.pageSize = 10;\r\n\t this.finalFilterList = \"\";\r\n\t this.isDesc = false;\r\n\t this.column = 'SDK';\r\n\t this.checkedAll = false;\r\n\t this.rowIndex = 1;\r\n\t this.selectedUdTablesCount = 0;\r\n\t this.hidePagination = false;\r\n\t this.toggleFlagPagination = false;\r\n\t this.setFilterColorColumn = '';\r\n\t this.clickedOutside = false;\r\n\t this.selectedFilter = {};\r\n\t this.sortAsc = -1;\r\n\t }\r\n\t Object.defineProperty(SdkComponent.prototype, \"data\", {\r\n\t get: function () { return this._sdk; },\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t if (data.sdkModifications) {\r\n\t this._sdk = data.sdkModifications;\r\n\t }\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t SdkComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.onFilterCustom.subscribe(function (res) {\r\n\t _this.selectedFilter = res;\r\n\t _this.filterCustom(_this.selectedFilter, 1);\r\n\t });\r\n\t this.onAnalysisRefresh.subscribe(function (res) {\r\n\t _this.freezeInputs = res;\r\n\t });\r\n\t this.setPage(1);\r\n\t };\r\n\t SdkComponent.prototype.toggle = function () {\r\n\t if (this.opened) {\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t else {\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t };\r\n\t SdkComponent.prototype.filterCustom = function (filter, page) {\r\n\t var sdk = this._sdk;\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t sdk = this.setSDKFilter(filter, sdk);\r\n\t this.pager = this.pagerService.getPager(sdk.length, page, this.pageSize);\r\n\t this.pagedItems = sdk.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t SdkComponent.prototype.setSDKFilter = function (filter, sdk) {\r\n\t sdk = this.pagerService.filter('custom', sdk, filter);\r\n\t return sdk;\r\n\t };\r\n\t SdkComponent.prototype.keepAll = function (checked) {\r\n\t this._sdk.forEach(function (sdk) {\r\n\t sdk.keep = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t SdkComponent.prototype.reviewedAll = function (checked) {\r\n\t this._sdk.forEach(function (sdk) {\r\n\t sdk.reviewed = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t SdkComponent.prototype.countReviewed = function () {\r\n\t var count = 0;\r\n\t this._sdk.forEach(function (sdk) {\r\n\t count += sdk.reviewed ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t SdkComponent.prototype.countKeep = function () {\r\n\t var count = 0;\r\n\t this._sdk.forEach(function (sdk) {\r\n\t count += sdk.keep ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t SdkComponent.prototype.sortItems = function (sortby) {\r\n\t var sortAsc = this.sortAsc;\r\n\t this._sdk = this._sdk.sort(function (a, b) {\r\n\t if (a[sortby] > b[sortby]) {\r\n\t return -1 * sortAsc;\r\n\t }\r\n\t else\r\n\t return 1 * sortAsc;\r\n\t });\r\n\t sortAsc = sortAsc * -1;\r\n\t };\r\n\t SdkComponent.prototype.setPage = function (page) {\r\n\t if (page < 1 || page > this.pager.totalPages) {\r\n\t return;\r\n\t }\r\n\t this.pager = this.pagerService.getPager(this._sdk.length, page, this.pageSize);\r\n\t this.pagedItems = this._sdk.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t this.finalFilterList = \"\";\r\n\t this.checkedAll = false;\r\n\t this.reportComponentService.ngSdkInitFlag(this.pagedItems);\r\n\t this.sort(this.column);\r\n\t };\r\n\t SdkComponent.prototype.openDialog = function (colElem) {\r\n\t var _this = this;\r\n\t var FilterInput = {\r\n\t pagedItems: this.pagedItems,\r\n\t finalFilterList: this.finalFilterList,\r\n\t selectedColumn: colElem,\r\n\t checkedAll: this.checkedAll\r\n\t };\r\n\t this.setFilterColorColumn = colElem;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.FilterDialogRef = this.dialog.open(sdk_modaldialog_1.SdkReportDialog, config);\r\n\t this.FilterDialogRef.componentInstance.render(FilterInput);\r\n\t this.FilterDialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.clickedOutside = _this.FilterDialogRef.componentInstance.clickedOutside;\r\n\t if (!_this.clickedOutside) {\r\n\t _this.selectedItems = [];\r\n\t _this.finalFilterList = _this.FilterDialogRef.componentInstance.finalFilterList;\r\n\t _this.checkedAll = _this.FilterDialogRef.componentInstance.checkedAll;\r\n\t if (_this.finalFilterList != null && _this.finalFilterList != undefined && _this.finalFilterList.length > 0) {\r\n\t _this.finalFilterList.split(',').forEach(function (item) {\r\n\t _this.selectedItems.push(item);\r\n\t });\r\n\t if (_this.selectedItems.length != _this.pagedItems.length)\r\n\t _this.hidePagination = true;\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t _this.FilterDialogRef = null;\r\n\t });\r\n\t };\r\n\t SdkComponent.prototype.sort = function (property) {\r\n\t this.isDesc = !this.isDesc;\r\n\t this.column = property;\r\n\t this.direction = this.isDesc ? 1 : -1;\r\n\t };\r\n\t ;\r\n\t SdkComponent.prototype.setFilterColorName = function () {\r\n\t return this.reportComponentService.setFilterColorName(this.finalFilterList, this.setFilterColorColumn);\r\n\t };\r\n\t SdkComponent.prototype.setFilterColorDesc = function () {\r\n\t return this.reportComponentService.setFilterColorDesc(this.finalFilterList, this.setFilterColorColumn);\r\n\t };\r\n\t SdkComponent.prototype.setFilterColorRows = function () {\r\n\t return this.reportComponentService.setFilterColorRows(this.finalFilterList, this.setFilterColorColumn);\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], SdkComponent.prototype, \"data\", null);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], SdkComponent.prototype, \"onAnalysisRefresh\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], SdkComponent.prototype, \"onFilterCustom\", void 0);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], SdkComponent.prototype, \"onChange\", void 0);\r\n\t SdkComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'sdk',\r\n\t template: __webpack_require__(513),\r\n\t providers: [pager_service_1.PagerService, reports_component_service_1.ReportComponentService, complexity_type_service_1.ComplexityService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [pager_service_1.PagerService,\r\n\t material_1.MdDialog,\r\n\t core_1.ViewContainerRef,\r\n\t reports_component_service_1.ReportComponentService,\r\n\t complexity_type_service_1.ComplexityService])\r\n\t ], SdkComponent);\r\n\t return SdkComponent;\r\n\t}());\r\n\texports.SdkComponent = SdkComponent;\r\n\n\n/***/ },\n/* 512 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar reports_component_service_1 = __webpack_require__(441);\r\n\tvar SdkReportDialog = (function () {\r\n\t function SdkReportDialog(dialogRef, errorChangeDetectorRef, viewContainerRef, dialog, elementRef) {\r\n\t this.dialogRef = dialogRef;\r\n\t this.errorChangeDetectorRef = errorChangeDetectorRef;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.dialog = dialog;\r\n\t this.elementRef = elementRef;\r\n\t this.checkedAll = false;\r\n\t this.selectedColumn = \"\";\r\n\t this.selectedColumnGroupBy = \"\";\r\n\t this.hidePagination = false;\r\n\t this.filterList = [];\r\n\t this.disableApplyButton = false;\r\n\t this.clickedOutside = false;\r\n\t this.tempList = [];\r\n\t }\r\n\t SdkReportDialog.prototype.render = function (details) {\r\n\t var _this = this;\r\n\t this.pagedItems = details.pagedItems;\r\n\t this.finalFilterList = details.finalFilterList;\r\n\t this.tempList = this.finalFilterList;\r\n\t this.checkedAll = details.checkedAll;\r\n\t this.selectedColumn = details.selectedColumn;\r\n\t this.selectedColumnGroupBy = this.getGroupByColumnName();\r\n\t if (this.finalFilterList != undefined && this.finalFilterList.length > 0) {\r\n\t this.finalFilterList.split(',').forEach(function (id) {\r\n\t _this.filterList.push(Number(id));\r\n\t _this.pagedItems.filter(function (item) { return item.rowIndex == id; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t });\r\n\t }\r\n\t this.container.nativeElement.children[1].style.maxHeight = \"30vh\";\r\n\t this.container.nativeElement.children[1].style.overflow = \"auto\";\r\n\t this.container.nativeElement.children[2].style.float = \"right\";\r\n\t this.container.nativeElement.children[2].style.position = \"relative\";\r\n\t this.container.nativeElement.children[2].style.top = \"1vh\";\r\n\t };\r\n\t SdkReportDialog.prototype.applyModal = function () {\r\n\t var _this = this;\r\n\t var anythingChoosen = false;\r\n\t if (this.filterList.length > 0 && this.pagedItems.filter(function (item) { return item.isChecked == true; }).length == 0) {\r\n\t this.showErrorMessage();\r\n\t this.disableApplyButton = true;\r\n\t return;\r\n\t }\r\n\t this.disableApplyButton = false;\r\n\t this.filterList = [];\r\n\t this.pagedItems.filter(function (item) { return item.isChecked == true; }).forEach(function (item) {\r\n\t _this.filterList.push(item.rowIndex);\r\n\t });\r\n\t this.finalFilterList = this.filterList.toString();\r\n\t this.dialogRef.close();\r\n\t };\r\n\t SdkReportDialog.prototype.checkboxFieldChange = function (event, colElem) {\r\n\t if (!event.checked) {\r\n\t this.checkedAll = false;\r\n\t }\r\n\t this.checkboxFieldChangedProcess(this.pagedItems, event, colElem);\r\n\t };\r\n\t SdkReportDialog.prototype.close = function () {\r\n\t this.checkedAll = false;\r\n\t this.finalFilterList = this.tempList.toString();\r\n\t this.dialogRef.close();\r\n\t };\r\n\t SdkReportDialog.prototype.toggleAll = function (event) {\r\n\t this.disableApplyButton = false;\r\n\t this.finalFilterList = this.setToggleValue(this.pagedItems);\r\n\t };\r\n\t SdkReportDialog.prototype.getGroupByColumnName = function () {\r\n\t if (this.selectedColumn == SdkFilterColumnName[SdkFilterColumnName.ClassName])\r\n\t return \"className\";\r\n\t else if (this.selectedColumn == SdkFilterColumnName[SdkFilterColumnName.Description])\r\n\t return \"description\";\r\n\t else if (this.selectedColumn == SdkFilterColumnName[SdkFilterColumnName.ClassType])\r\n\t return \"classType\";\r\n\t };\r\n\t SdkReportDialog.prototype.checkboxFieldChangedProcess = function (items, event, colElem) {\r\n\t if (colElem == SdkFilterColumnName[SdkFilterColumnName.ClassName]) {\r\n\t this.classNameFieldProcess(items, event);\r\n\t }\r\n\t else if (colElem == SdkFilterColumnName[SdkFilterColumnName.Description]) {\r\n\t this.descFieldProcess(items, event);\r\n\t }\r\n\t else if (colElem == SdkFilterColumnName[SdkFilterColumnName.ClassType]) {\r\n\t this.classTypeFieldProcess(items, event);\r\n\t }\r\n\t };\r\n\t SdkReportDialog.prototype.classNameFieldProcess = function (items, event) {\r\n\t var field = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t field = getRowDetails[0].className;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.className == field; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.className == field; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t SdkReportDialog.prototype.descFieldProcess = function (items, event) {\r\n\t var field = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t field = getRowDetails[0].description;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.description == field; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.description == field; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t SdkReportDialog.prototype.classTypeFieldProcess = function (items, event) {\r\n\t var field = '';\r\n\t var getRowDetails = items.filter(function (item) { return item.rowIndex == event.source.name; });\r\n\t field = getRowDetails[0].classType;\r\n\t if (event.checked) {\r\n\t this.disableApplyButton = false;\r\n\t items.filter(function (item) { return item.classType == field; }).forEach(function (item) {\r\n\t item.isChecked = true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t items.filter(function (item) { return item.classType == field; }).forEach(function (item) {\r\n\t item.isChecked = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t SdkReportDialog.prototype.setToggleValue = function (items) {\r\n\t var _this = this;\r\n\t var toggleFlag = this.checkedAll;\r\n\t items.forEach(function (item) {\r\n\t item.isChecked = toggleFlag;\r\n\t });\r\n\t this.filterList = [];\r\n\t if (toggleFlag) {\r\n\t items.forEach(function (item) {\r\n\t _this.filterList.push(Number(item.rowIndex));\r\n\t });\r\n\t }\r\n\t return this.filterList.toString();\r\n\t };\r\n\t SdkReportDialog.prototype.showErrorMessage = function () {\r\n\t var _this = this;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.errorDialogRef = this.dialog.open(reports_component_service_1.ErrorMessageDialog, config);\r\n\t this.errorDialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.errorDialogRef = null;\r\n\t });\r\n\t };\r\n\t SdkReportDialog.prototype.onClick = function (event) {\r\n\t var clickedOutsideDialog = event.target;\r\n\t var inside = false;\r\n\t do {\r\n\t if (clickedOutsideDialog === this.elementRef.nativeElement) {\r\n\t inside = true;\r\n\t }\r\n\t clickedOutsideDialog = clickedOutsideDialog.parentNode;\r\n\t } while (clickedOutsideDialog);\r\n\t if (inside) {\r\n\t this.clickedOutside = false;\r\n\t }\r\n\t else {\r\n\t this.clickedOutside = true;\r\n\t }\r\n\t };\r\n\t __decorate([\r\n\t core_1.ViewChild('container'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], SdkReportDialog.prototype, \"container\", void 0);\r\n\t SdkReportDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'sdk.modaldialog',\r\n\t host: {\r\n\t '(document:click)': 'onClick($event)',\r\n\t },\r\n\t template: \"\\n\\n\\n\\n\\n
SDK - {{selectedColumn}}
\\n\\n
\\n \\n \\n \\n\\n
\\n (Select All) \\n
\\n
\\n {{md.value[0].className}}\\n
\\n
\\n
\\n
\\n {{md.value[0].description}}\\n
\\n
\\n \\n
\\n
\\n {{md.value[0].classType}}\\n
\\n
\\n
\\n \\n
\\n \\n \\n
\\n
\\n\",\r\n\t providers: [pager_service_1.PagerService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef,\r\n\t core_1.ChangeDetectorRef,\r\n\t core_1.ViewContainerRef,\r\n\t material_1.MdDialog,\r\n\t core_1.ElementRef])\r\n\t ], SdkReportDialog);\r\n\t return SdkReportDialog;\r\n\t}());\r\n\texports.SdkReportDialog = SdkReportDialog;\r\n\tvar SdkFilterColumnName;\r\n\t(function (SdkFilterColumnName) {\r\n\t SdkFilterColumnName[SdkFilterColumnName[\"ClassName\"] = 0] = \"ClassName\";\r\n\t SdkFilterColumnName[SdkFilterColumnName[\"Description\"] = 1] = \"Description\";\r\n\t SdkFilterColumnName[SdkFilterColumnName[\"ClassType\"] = 2] = \"ClassType\";\r\n\t})(SdkFilterColumnName = exports.SdkFilterColumnName || (exports.SdkFilterColumnName = {}));\r\n\n\n/***/ },\n/* 513 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tSDK ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_sdk?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_sdk?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
Name \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tDescription\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tType\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tKeepReviewed
{{dataItem?.className}}{{dataItem?.description}}{{dataItem?.classType}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t
10\\\">\\r\\n\\t\\t\\t\\t\\t View: \\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n/***/ },\n/* 514 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar sites_service_1 = __webpack_require__(371);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar CustomTablesComponent = (function () {\r\n\t function CustomTablesComponent(pagerService, sitesService) {\r\n\t this.pagerService = pagerService;\r\n\t this.sitesService = sitesService;\r\n\t this._customTables = [];\r\n\t this.onChange = new core_1.EventEmitter();\r\n\t this.freezeInputs = false;\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t this.keep = false;\r\n\t this.reviewed = false;\r\n\t this.search = '';\r\n\t this.pager = {};\r\n\t this.pageSize = 10;\r\n\t this.selectedFilter = {};\r\n\t this.sortAsc = -1;\r\n\t }\r\n\t Object.defineProperty(CustomTablesComponent.prototype, \"data\", {\r\n\t get: function () { return this._customTables; },\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t if (data.customTables) {\r\n\t this._customTables = data.customTables;\r\n\t }\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t CustomTablesComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.onAnalysisRefresh.subscribe(function (res) {\r\n\t _this.freezeInputs = res;\r\n\t });\r\n\t this.onFilterCustom.subscribe(function (res) {\r\n\t _this.selectedFilter = res;\r\n\t _this.filterCustom(_this.selectedFilter, 1);\r\n\t });\r\n\t this.setPage(1);\r\n\t };\r\n\t CustomTablesComponent.prototype.toggle = function () {\r\n\t if (this.opened) {\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t else {\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t };\r\n\t CustomTablesComponent.prototype.filterCustom = function (filter, page) {\r\n\t var customTbls = this._customTables;\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t customTbls = this.setcustomTblsFilter(filter, customTbls);\r\n\t this.pager = this.pagerService.getPager(customTbls.length, page, this.pageSize);\r\n\t this.pagedItems = customTbls.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t CustomTablesComponent.prototype.setcustomTblsFilter = function (filter, customTbls) {\r\n\t customTbls = this.pagerService.filter('custom', customTbls, filter);\r\n\t return customTbls;\r\n\t };\r\n\t CustomTablesComponent.prototype.keepAll = function (checked) {\r\n\t this._customTables.forEach(function (bpms) {\r\n\t bpms.keep = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t CustomTablesComponent.prototype.reviewedAll = function (checked) {\r\n\t this._customTables.forEach(function (bpms) {\r\n\t bpms.reviewed = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t CustomTablesComponent.prototype.countReviewed = function () {\r\n\t var count = 0;\r\n\t this._customTables.forEach(function (bpms) {\r\n\t count += bpms.reviewed ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t CustomTablesComponent.prototype.countKeep = function () {\r\n\t var count = 0;\r\n\t this._customTables.forEach(function (bpms) {\r\n\t count += bpms.keep ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t CustomTablesComponent.prototype.toggleDetails = function (cl) {\r\n\t cl.moreDetails = !cl.moreDetails;\r\n\t };\r\n\t CustomTablesComponent.prototype.sortItems = function (sortby) {\r\n\t var sortAsc = this.sortAsc;\r\n\t this._customTables = this._customTables.sort(function (a, b) {\r\n\t if (a[sortby] > b[sortby]) {\r\n\t return -1 * sortAsc;\r\n\t }\r\n\t else\r\n\t return 1 * sortAsc;\r\n\t });\r\n\t sortAsc = sortAsc * -1;\r\n\t };\r\n\t CustomTablesComponent.prototype.setPage = function (page) {\r\n\t if (page < 1 || page > this.pager.totalPages) {\r\n\t return;\r\n\t }\r\n\t this.pager = this.pagerService.getPager(this._customTables.length, page, this.pageSize);\r\n\t this.pagedItems = this._customTables.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], CustomTablesComponent.prototype, \"data\", null);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], CustomTablesComponent.prototype, \"onAnalysisRefresh\", void 0);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], CustomTablesComponent.prototype, \"onChange\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], CustomTablesComponent.prototype, \"onFilterCustom\", void 0);\r\n\t CustomTablesComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'customTables',\r\n\t template: __webpack_require__(515),\r\n\t providers: [sites_service_1.SitesService, pager_service_1.PagerService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [pager_service_1.PagerService,\r\n\t sites_service_1.SitesService])\r\n\t ], CustomTablesComponent);\r\n\t return CustomTablesComponent;\r\n\t}());\r\n\texports.CustomTablesComponent = CustomTablesComponent;\r\n\n\n/***/ },\n/* 515 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tTables / UD Fields Used ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_customTables?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_customTables?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tKeep\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tReviewed\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
10\\\">\\r\\n\\t\\t\\t\\t View: \\r\\n\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\";\n\n/***/ },\n/* 516 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar dashboards_pipe_1 = __webpack_require__(517);\r\n\tvar DashboardsComponent = (function () {\r\n\t function DashboardsComponent(pagerService) {\r\n\t this.pagerService = pagerService;\r\n\t this._dashboards = [];\r\n\t this.onChange = new core_1.EventEmitter();\r\n\t this.freezeInputs = false;\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t this.keep = false;\r\n\t this.reviewed = false;\r\n\t this.search = '';\r\n\t this.selectedFilter = {};\r\n\t this.pager = {};\r\n\t this.pageSize = 10;\r\n\t this.filterDashboardPipe = new dashboards_pipe_1.FilterDashboardPipe();\r\n\t }\r\n\t Object.defineProperty(DashboardsComponent.prototype, \"data\", {\r\n\t get: function () { return this._dashboards; },\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t if (data.dashboards) {\r\n\t this._dashboards = data.dashboards;\r\n\t }\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t DashboardsComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.onFilterCustom.subscribe(function (res) {\r\n\t _this.selectedFilter = res;\r\n\t _this.filterCustom(_this.selectedFilter, 1);\r\n\t });\r\n\t this.onAnalysisRefresh.subscribe(function (res) {\r\n\t _this.freezeInputs = res;\r\n\t });\r\n\t this.setPage(1);\r\n\t };\r\n\t DashboardsComponent.prototype.filterCustom = function (filter, page) {\r\n\t var dashboards = this._dashboards;\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t dashboards = this.setDashboardFilter(filter, dashboards);\r\n\t this.pager = this.pagerService.getPager(dashboards.length, page, this.pageSize);\r\n\t this.pagedItems = dashboards.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t DashboardsComponent.prototype.setDashboardFilter = function (filter, dashboards) {\r\n\t dashboards = this.pagerService.filter('custom', dashboards, filter);\r\n\t return dashboards;\r\n\t };\r\n\t DashboardsComponent.prototype.filterDashboard = function (query, page) {\r\n\t var dashboards = this._dashboards;\r\n\t if (query === '') {\r\n\t this.setPage(1);\r\n\t }\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t dashboards = this.filterDashboardPipe.transform(dashboards, query);\r\n\t dashboards = this.setDashboardFilter(this.selectedFilter, dashboards);\r\n\t this.pager = this.pagerService.getPager(dashboards.length, page, this.pageSize);\r\n\t this.pagedItems = dashboards.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t DashboardsComponent.prototype.toggle = function () {\r\n\t if (this.opened) {\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t else {\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t };\r\n\t DashboardsComponent.prototype.keepAll = function (checked) {\r\n\t this._dashboards.forEach(function (dashboard) {\r\n\t dashboard.keep = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t DashboardsComponent.prototype.reviewedAll = function (checked) {\r\n\t this._dashboards.forEach(function (dashboard) {\r\n\t dashboard.reviewed = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t DashboardsComponent.prototype.countReviewed = function () {\r\n\t var count = 0;\r\n\t this._dashboards.forEach(function (dashboard) {\r\n\t count += dashboard.reviewed ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t DashboardsComponent.prototype.countKeep = function () {\r\n\t var count = 0;\r\n\t this._dashboards.forEach(function (dashboard) {\r\n\t count += dashboard.keep ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t DashboardsComponent.prototype.setPage = function (page) {\r\n\t if (page < 1 || page > this.pager.totalPages) {\r\n\t return;\r\n\t }\r\n\t if (this.search !== '') {\r\n\t this.filterDashboard(this.search, page);\r\n\t }\r\n\t else {\r\n\t this.pager = this.pagerService.getPager(this._dashboards.length, page, this.pageSize);\r\n\t this.pagedItems = this._dashboards.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t }\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], DashboardsComponent.prototype, \"onAnalysisRefresh\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], DashboardsComponent.prototype, \"onFilterCustom\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], DashboardsComponent.prototype, \"data\", null);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], DashboardsComponent.prototype, \"onChange\", void 0);\r\n\t DashboardsComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'dashboards',\r\n\t template: __webpack_require__(518),\r\n\t providers: [pager_service_1.PagerService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [pager_service_1.PagerService])\r\n\t ], DashboardsComponent);\r\n\t return DashboardsComponent;\r\n\t}());\r\n\texports.DashboardsComponent = DashboardsComponent;\r\n\n\n/***/ },\n/* 517 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar FilterDashboardPipe = (function () {\r\n\t function FilterDashboardPipe() {\r\n\t }\r\n\t FilterDashboardPipe.prototype.transform = function (dashboards, query) {\r\n\t if (query === '') {\r\n\t return dashboards;\r\n\t }\r\n\t return dashboards.filter(function (d) {\r\n\t return d.company.toLowerCase().indexOf(query.toLowerCase()) !== -1 ||\r\n\t d.definitionID.toLowerCase().indexOf(query.toLowerCase()) !== -1 ||\r\n\t d.description.toLowerCase().indexOf(query.toLowerCase()) !== -1;\r\n\t });\r\n\t };\r\n\t FilterDashboardPipe = __decorate([\r\n\t core_1.Pipe({ name: 'filterDashboard' })\r\n\t ], FilterDashboardPipe);\r\n\t return FilterDashboardPipe;\r\n\t}());\r\n\texports.FilterDashboardPipe = FilterDashboardPipe;\r\n\n\n/***/ },\n/* 518 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tDashboards ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_dashboards?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_dashboards?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\tKeep\\r\\n\\t\\t\\t\\tReviewed \\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t 0\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n \\t{{menuLink.location}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
10\\\">\\r\\n\\t\\t\\t View: \\r\\n\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n/***/ },\n/* 519 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar updatableBAQ_pipe_1 = __webpack_require__(520);\r\n\tvar complexity_type_service_1 = __webpack_require__(440);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar reports_component_service_1 = __webpack_require__(441);\r\n\tvar baqs_modaldialog_1 = __webpack_require__(443);\r\n\tvar baqs_modaldialog_2 = __webpack_require__(443);\r\n\tvar UpdatableBAQsComponent = (function () {\r\n\t function UpdatableBAQsComponent(pagerService, complexityService, dialog, viewContainerRef, reportComponentService) {\r\n\t this.pagerService = pagerService;\r\n\t this.complexityService = complexityService;\r\n\t this.dialog = dialog;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.reportComponentService = reportComponentService;\r\n\t this.onChange = new core_1.EventEmitter();\r\n\t this._updatableBAQs = [];\r\n\t this.freezeInputs = false;\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t this.keep = false;\r\n\t this.reviewed = false;\r\n\t this.search = '';\r\n\t this.selectedFilter = {};\r\n\t this.pager = {};\r\n\t this.pageSize = 10;\r\n\t this.filterUpdatableBAQPipe = new updatableBAQ_pipe_1.FilterUpdatableBAQ();\r\n\t this.finalUpdatableBAQsList = \"\";\r\n\t this.isDesc = false;\r\n\t this.column = 'company';\r\n\t this.checkedAll = false;\r\n\t this.hidePagination = false;\r\n\t this.setFilterColorColumn = '';\r\n\t this.clickedOutside = false;\r\n\t }\r\n\t Object.defineProperty(UpdatableBAQsComponent.prototype, \"data\", {\r\n\t get: function () { return this._updatableBAQs; },\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t if (data.updatableBAQs) {\r\n\t this._updatableBAQs = data.updatableBAQs;\r\n\t }\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t UpdatableBAQsComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.onFilterCustom.subscribe(function (res) {\r\n\t _this.selectedFilter = res;\r\n\t _this.filterCustom(_this.selectedFilter, 1);\r\n\t });\r\n\t this.onAnalysisRefresh.subscribe(function (res) {\r\n\t _this.freezeInputs = res;\r\n\t });\r\n\t this.setPage(1);\r\n\t };\r\n\t UpdatableBAQsComponent.prototype.filterCustom = function (filter, page) {\r\n\t var updatableBAQs = this._updatableBAQs;\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t updatableBAQs = this.setUpdatableBAQFilter(filter, updatableBAQs);\r\n\t this.pager = this.pagerService.getPager(updatableBAQs.length, page, this.pageSize);\r\n\t this.pagedItems = updatableBAQs.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t UpdatableBAQsComponent.prototype.filterUpdatableBAQ = function (query, page) {\r\n\t var updatableBAQs = this._updatableBAQs;\r\n\t if (query === '') {\r\n\t this.setPage(1);\r\n\t }\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t updatableBAQs = this.filterUpdatableBAQPipe.transform(updatableBAQs, query);\r\n\t updatableBAQs = this.setUpdatableBAQFilter(this.selectedFilter, updatableBAQs);\r\n\t this.pager = this.pagerService.getPager(updatableBAQs.length, page, this.pageSize);\r\n\t this.pagedItems = updatableBAQs.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t UpdatableBAQsComponent.prototype.setUpdatableBAQFilter = function (filter, updatableBAQs) {\r\n\t updatableBAQs = this.pagerService.filter('custom', updatableBAQs, filter, 'updatableBAQs');\r\n\t return updatableBAQs;\r\n\t };\r\n\t UpdatableBAQsComponent.prototype.countReviewed = function () {\r\n\t var count = 0;\r\n\t this._updatableBAQs.forEach(function (updatableBAQ) {\r\n\t count += updatableBAQ.reviewed ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t UpdatableBAQsComponent.prototype.countKeep = function () {\r\n\t var count = 0;\r\n\t this._updatableBAQs.forEach(function (updatableBAQ) {\r\n\t count += updatableBAQ.keep ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t UpdatableBAQsComponent.prototype.keepAll = function (checked) {\r\n\t this._updatableBAQs.forEach(function (updatableBAQ) {\r\n\t updatableBAQ.keep = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t UpdatableBAQsComponent.prototype.reviewedAll = function (checked) {\r\n\t this._updatableBAQs.forEach(function (updatableBAQ) {\r\n\t updatableBAQ.reviewed = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t UpdatableBAQsComponent.prototype.toggle = function () {\r\n\t if (this.opened) {\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t else {\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t };\r\n\t UpdatableBAQsComponent.prototype.setPage = function (page) {\r\n\t if (page < 1 || page > this.pager.totalPages) {\r\n\t return;\r\n\t }\r\n\t if (this.search !== '') {\r\n\t this.filterUpdatableBAQ(this.search, page);\r\n\t }\r\n\t else {\r\n\t this.pager = this.pagerService.getPager(this._updatableBAQs.length, page, this.pageSize);\r\n\t this.pagedItems = this._updatableBAQs.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t this.finalUpdatableBAQsList = \"\";\r\n\t this.checkedAll = false;\r\n\t this.reportComponentService.ngBAQsInitFlag(this.pagedItems);\r\n\t this.sort(this.column);\r\n\t }\r\n\t };\r\n\t UpdatableBAQsComponent.prototype.sort = function (property) {\r\n\t this.isDesc = !this.isDesc;\r\n\t this.column = property;\r\n\t this.direction = this.isDesc ? 1 : -1;\r\n\t };\r\n\t ;\r\n\t UpdatableBAQsComponent.prototype.openDialog = function (colElem) {\r\n\t var _this = this;\r\n\t var menusDialogInput = {\r\n\t pagedItems: this.pagedItems,\r\n\t finalBAQsList: this.finalUpdatableBAQsList,\r\n\t selectedColumn: colElem,\r\n\t checkedAll: this.checkedAll,\r\n\t baqsReportType: baqs_modaldialog_2.BAQsReportType[baqs_modaldialog_2.BAQsReportType.UpdatableBAQs]\r\n\t };\r\n\t this.setFilterColorColumn = colElem;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.BAQsRef = this.dialog.open(baqs_modaldialog_1.BAQsReportDialog, config);\r\n\t this.BAQsRef.componentInstance.render(menusDialogInput);\r\n\t this.BAQsRef.afterClosed().subscribe(function (result) {\r\n\t _this.clickedOutside = _this.BAQsRef.componentInstance.clickedOutside;\r\n\t if (!_this.clickedOutside) {\r\n\t _this.selectedItems = [];\r\n\t _this.finalUpdatableBAQsList = _this.BAQsRef.componentInstance.finalBAQsList;\r\n\t _this.checkedAll = _this.BAQsRef.componentInstance.checkedAll;\r\n\t if (_this.finalUpdatableBAQsList != null && _this.finalUpdatableBAQsList != undefined && _this.finalUpdatableBAQsList.length > 0) {\r\n\t _this.finalUpdatableBAQsList.split(',').forEach(function (item) {\r\n\t _this.selectedItems.push(item);\r\n\t });\r\n\t if (_this.selectedItems.length != _this.pagedItems.length)\r\n\t _this.hidePagination = true;\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t _this.BAQsRef = null;\r\n\t });\r\n\t };\r\n\t UpdatableBAQsComponent.prototype.setFilterColorCompany = function () {\r\n\t return this.reportComponentService.setFilterColorCompany(this.finalUpdatableBAQsList, this.setFilterColorColumn);\r\n\t };\r\n\t UpdatableBAQsComponent.prototype.setFilterColorQueryId = function () {\r\n\t return this.reportComponentService.setFilterColorQueryId(this.finalUpdatableBAQsList, this.setFilterColorColumn);\r\n\t };\r\n\t UpdatableBAQsComponent.prototype.setFilterColorDesc = function () {\r\n\t return this.reportComponentService.setFilterColorDesc(this.finalUpdatableBAQsList, this.setFilterColorColumn);\r\n\t };\r\n\t UpdatableBAQsComponent.prototype.setFilterColorAuthor = function () {\r\n\t return this.reportComponentService.setFilterColorAuthor(this.finalUpdatableBAQsList, this.setFilterColorColumn);\r\n\t };\r\n\t UpdatableBAQsComponent.prototype.setFilterColorComplexity = function () {\r\n\t return this.reportComponentService.setFilterColorComplexity(this.finalUpdatableBAQsList, this.setFilterColorColumn);\r\n\t };\r\n\t UpdatableBAQsComponent.prototype.setFilterColorCompatible = function () {\r\n\t return this.reportComponentService.setFilterColorCompatible(this.finalUpdatableBAQsList, this.setFilterColorColumn);\r\n\t };\r\n\t UpdatableBAQsComponent.prototype.setFilterColorShared = function () {\r\n\t return this.reportComponentService.setFilterColorShared(this.finalUpdatableBAQsList, this.setFilterColorColumn);\r\n\t };\r\n\t UpdatableBAQsComponent.prototype.setFilterColorTables = function () {\r\n\t return this.reportComponentService.setFilterColorTables(this.finalUpdatableBAQsList, this.setFilterColorColumn);\r\n\t };\r\n\t UpdatableBAQsComponent.prototype.setFilterColorExternal = function () {\r\n\t return this.reportComponentService.setFilterColorExternal(this.finalUpdatableBAQsList, this.setFilterColorColumn);\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], UpdatableBAQsComponent.prototype, \"data\", null);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], UpdatableBAQsComponent.prototype, \"onAnalysisRefresh\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], UpdatableBAQsComponent.prototype, \"onFilterCustom\", void 0);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], UpdatableBAQsComponent.prototype, \"onChange\", void 0);\r\n\t UpdatableBAQsComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'updatableBAQs',\r\n\t template: __webpack_require__(521),\r\n\t providers: [pager_service_1.PagerService, complexity_type_service_1.ComplexityService, reports_component_service_1.ReportComponentService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [pager_service_1.PagerService,\r\n\t complexity_type_service_1.ComplexityService,\r\n\t material_1.MdDialog,\r\n\t core_1.ViewContainerRef,\r\n\t reports_component_service_1.ReportComponentService])\r\n\t ], UpdatableBAQsComponent);\r\n\t return UpdatableBAQsComponent;\r\n\t}());\r\n\texports.UpdatableBAQsComponent = UpdatableBAQsComponent;\r\n\n\n/***/ },\n/* 520 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar FilterUpdatableBAQ = (function () {\r\n\t function FilterUpdatableBAQ() {\r\n\t }\r\n\t FilterUpdatableBAQ.prototype.transform = function (updatableBAQs, query) {\r\n\t if (query === '') {\r\n\t return updatableBAQs;\r\n\t }\r\n\t return updatableBAQs.filter(function (ubaq) {\r\n\t return ubaq.queryID.toLowerCase().indexOf(query.toLowerCase()) !== -1 ||\r\n\t ubaq.description.toLowerCase().indexOf(query.toLowerCase()) !== -1;\r\n\t });\r\n\t };\r\n\t FilterUpdatableBAQ = __decorate([\r\n\t core_1.Pipe({ name: 'filterUpdatableBAQ' })\r\n\t ], FilterUpdatableBAQ);\r\n\t return FilterUpdatableBAQ;\r\n\t}());\r\n\texports.FilterUpdatableBAQ = FilterUpdatableBAQ;\r\n\n\n/***/ },\n/* 521 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n \\r\\n Updatable BAQs ({{pager?.totalItems}})\\r\\n \\r\\n Keep ({{ countKeep() }}/{{_updatableBAQs?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_updatableBAQs?.length}})\\r\\n\\t\\t\\r\\n \\r\\n
\\r\\n \\r\\n\\t\\t \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Company\\r\\n \\r\\n \\r\\n Query ID\\r\\n \\r\\n \\r\\n Description\\r\\n \\r\\n \\r\\n Author\\r\\n \\r\\n \\r\\n Complexity\\r\\n \\r\\n \\r\\n Compatible\\r\\n \\r\\n \\r\\n Shared\\r\\n \\r\\n \\r\\n Tables\\r\\n \\r\\n \\r\\n External\\r\\n \\r\\n \\r\\n CompatibleKeepReviewed
{{ item?.company }}{{ item?.queryID }}{{ item?.description }}{{ item?.author }}{{ item?.customComplexity }}{{ item?.compatible}}{{ item?.shared}}{{ item?.tables}}\\r\\n
\\r\\n \\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes\\r\\n
\\r\\n
\\r\\n
\\r\\n\\t\\t\\t\\t\\t\\t\\t No \\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t
\\r\\n
10\\\">\\r\\n View: \\r\\n \\r\\n
1\\\" style=\\\"display:inline-block\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\t
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 522 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar sites_service_1 = __webpack_require__(371);\r\n\tvar code_dialog_component_1 = __webpack_require__(454);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar baqMethodDirectives_pipe_1 = __webpack_require__(523);\r\n\tvar complexity_type_service_1 = __webpack_require__(440);\r\n\tvar bpms_modaldialog_1 = __webpack_require__(476);\r\n\tvar bpms_modaldialog_2 = __webpack_require__(476);\r\n\tvar reports_component_service_1 = __webpack_require__(441);\r\n\tvar BAQMethodDirectives = (function () {\r\n\t function BAQMethodDirectives(pagerService, sitesService, complexityService, dialog, viewContainerRef, reportComponentService) {\r\n\t this.pagerService = pagerService;\r\n\t this.sitesService = sitesService;\r\n\t this.complexityService = complexityService;\r\n\t this.dialog = dialog;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.reportComponentService = reportComponentService;\r\n\t this.onChange = new core_1.EventEmitter();\r\n\t this.freezeInputs = false;\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t this.keep = false;\r\n\t this.reviewed = false;\r\n\t this.search = '';\r\n\t this.selectedFilter = {};\r\n\t this.pager = {};\r\n\t this._baqMethodDirectives = [];\r\n\t this.filterBAQMethodDirectivePipe = new baqMethodDirectives_pipe_1.FilterBAQMethodDirectivePipe();\r\n\t this.pageSize = 10;\r\n\t this.isDesc = false;\r\n\t this.column = 'group';\r\n\t this.finalBPMsDDList = \"\";\r\n\t this.hidePagination = false;\r\n\t this.toggleFlagPagination = false;\r\n\t this.setFilterColorColumn = \"\";\r\n\t this.checkedAll = false;\r\n\t this.clickedOutside = false;\r\n\t }\r\n\t Object.defineProperty(BAQMethodDirectives.prototype, \"data\", {\r\n\t get: function () { return this._baqMethodDirectives; },\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t if (data.baqMethodDirectives) {\r\n\t this._baqMethodDirectives = data.baqMethodDirectives;\r\n\t this._baqMethodDirectives.forEach(function (element) {\r\n\t if (element.hasOwnProperty('cloudComplexity') == false) {\r\n\t element.cloudComplexity = false;\r\n\t }\r\n\t if (element.hasOwnProperty('cloudComplexityType') == false) {\r\n\t element.cloudComplexityType = 'None';\r\n\t }\r\n\t if (element.hasOwnProperty('cloudComplexityDescription') == false) {\r\n\t element.cloudComplexityDescription = '';\r\n\t }\r\n\t });\r\n\t }\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t BAQMethodDirectives.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.onFilterCustom.subscribe(function (res) {\r\n\t _this.selectedFilter = res;\r\n\t _this.filterCustom(_this.selectedFilter, 1);\r\n\t });\r\n\t this.onAnalysisRefresh.subscribe(function (res) {\r\n\t _this.freezeInputs = res;\r\n\t });\r\n\t this.setPage(1);\r\n\t };\r\n\t BAQMethodDirectives.prototype.filterCustom = function (filter, page) {\r\n\t var baqMethodDirectives = this._baqMethodDirectives;\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t baqMethodDirectives = this.setBAQMethodDirectiveFilter(filter, baqMethodDirectives);\r\n\t this.pager = this.pagerService.getPager(baqMethodDirectives.length, page, this.pageSize);\r\n\t this.pagedItems = baqMethodDirectives.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t BAQMethodDirectives.prototype.setBAQMethodDirectiveFilter = function (filter, baqMethodDirectives) {\r\n\t baqMethodDirectives = this.pagerService.filter('custom', baqMethodDirectives, filter);\r\n\t return baqMethodDirectives;\r\n\t };\r\n\t BAQMethodDirectives.prototype.filterBAQMethodDirective = function (query, page) {\r\n\t var baqMethodDirectives = this._baqMethodDirectives;\r\n\t if (query === '') {\r\n\t this.setPage(1);\r\n\t }\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t baqMethodDirectives = this.filterBAQMethodDirectivePipe.transform(baqMethodDirectives, query);\r\n\t baqMethodDirectives = this.setBAQMethodDirectiveFilter(this.selectedFilter, baqMethodDirectives);\r\n\t this.pager = this.pagerService.getPager(baqMethodDirectives.length, page, this.pageSize);\r\n\t this.pagedItems = baqMethodDirectives.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t BAQMethodDirectives.prototype.toggle = function () {\r\n\t if (this.opened) {\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t else {\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t };\r\n\t BAQMethodDirectives.prototype.countReviewed = function () {\r\n\t var count = 0;\r\n\t this._baqMethodDirectives.forEach(function (baqMethodDirective) {\r\n\t count += baqMethodDirective.reviewed ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t BAQMethodDirectives.prototype.countKeep = function () {\r\n\t var count = 0;\r\n\t this._baqMethodDirectives.forEach(function (baqMethodDirective) {\r\n\t count += baqMethodDirective.keep ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t BAQMethodDirectives.prototype.keepAll = function (checked) {\r\n\t this._baqMethodDirectives.forEach(function (baqMethodDirective) {\r\n\t baqMethodDirective.keep = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t BAQMethodDirectives.prototype.reviewedAll = function (checked) {\r\n\t this._baqMethodDirectives.forEach(function (baqMethodDirective) {\r\n\t baqMethodDirective.reviewed = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t BAQMethodDirectives.prototype.setPage = function (page) {\r\n\t if (page < 1 || page > this.pager.totalPages) {\r\n\t return;\r\n\t }\r\n\t if (this.search !== '') {\r\n\t this.filterBAQMethodDirective(this.search, page);\r\n\t }\r\n\t else {\r\n\t this.pager = this.pagerService.getPager(this._baqMethodDirectives.length, page, this.pageSize);\r\n\t this.pagedItems = this._baqMethodDirectives.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t this.finalBPMsDDList = \"\";\r\n\t this.checkedAll = false;\r\n\t this.reportComponentService.ngInitBPMsFlag(this.pagedItems);\r\n\t this.sort(this.column);\r\n\t }\r\n\t };\r\n\t BAQMethodDirectives.prototype.previewCode = function (url, name, language) {\r\n\t var _this = this;\r\n\t if (url) {\r\n\t this.sitesService.getFile(url + this.sas).subscribe(function (res) {\r\n\t var preview = {\r\n\t source: res.text(),\r\n\t language: language,\r\n\t downloadUrl: url + _this.sas,\r\n\t name: name\r\n\t };\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = _this.viewContainerRef;\r\n\t _this.dialogRef = _this.dialog.open(code_dialog_component_1.CodeDialog, config);\r\n\t _this.dialogRef.componentInstance.render(preview);\r\n\t _this.dialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.dialogRef = null;\r\n\t });\r\n\t });\r\n\t }\r\n\t };\r\n\t BAQMethodDirectives.prototype.previewCodeDisabled = function (baqMethodDirective) {\r\n\t if (baqMethodDirective.sourceFiles && baqMethodDirective.sourceFiles.length > 0 && baqMethodDirective.sourceFiles[0].cloudFilename) {\r\n\t return false;\r\n\t }\r\n\t return true;\r\n\t };\r\n\t BAQMethodDirectives.prototype.previewCodeIcon = function (baqMethodDirective) {\r\n\t if (this.previewCodeDisabled(baqMethodDirective)) {\r\n\t return 'cloud_download';\r\n\t }\r\n\t return 'cloud_download';\r\n\t };\r\n\t BAQMethodDirectives.prototype.sort = function (property) {\r\n\t this.isDesc = !this.isDesc;\r\n\t this.column = property;\r\n\t this.direction = this.isDesc ? 1 : -1;\r\n\t };\r\n\t BAQMethodDirectives.prototype.openDialog = function (colElem) {\r\n\t var _this = this;\r\n\t var BPMsDdDialogInput = {\r\n\t pagedItems: this.pagedItems,\r\n\t finalBPMsList: this.finalBPMsDDList,\r\n\t selectedColumn: colElem,\r\n\t checkedAll: this.checkedAll,\r\n\t bpmsReprtType: bpms_modaldialog_2.BPMsReportType[bpms_modaldialog_2.BPMsReportType.BPMsUpdatableBAQs]\r\n\t };\r\n\t this.setFilterColorColumn = colElem;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.dialogBPMsDDRef = this.dialog.open(bpms_modaldialog_1.BPMsReportDialog, config);\r\n\t this.dialogBPMsDDRef.componentInstance.render(BPMsDdDialogInput);\r\n\t this.dialogBPMsDDRef.afterClosed().subscribe(function (result) {\r\n\t _this.clickedOutside = _this.dialogBPMsDDRef.componentInstance.clickedOutside;\r\n\t if (!_this.clickedOutside) {\r\n\t _this.selectedItems = [];\r\n\t _this.finalBPMsDDList = _this.dialogBPMsDDRef.componentInstance.finalBPMsList;\r\n\t _this.checkedAll = _this.dialogBPMsDDRef.componentInstance.checkedAll;\r\n\t if (_this.finalBPMsDDList != null && _this.finalBPMsDDList != undefined && _this.finalBPMsDDList.length > 0) {\r\n\t _this.finalBPMsDDList.split(',').forEach(function (item) {\r\n\t _this.selectedItems.push(item);\r\n\t });\r\n\t if (_this.selectedItems.length != _this.pagedItems.length)\r\n\t _this.hidePagination = true;\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t _this.dialogBPMsDDRef = null;\r\n\t });\r\n\t };\r\n\t BAQMethodDirectives.prototype.setFilterColorGroup = function () {\r\n\t return this.reportComponentService.setFilterColorGroup(this.finalBPMsDDList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t BAQMethodDirectives.prototype.setFilterColorName = function () {\r\n\t return this.reportComponentService.setFilterColorName(this.finalBPMsDDList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t BAQMethodDirectives.prototype.setFilterColorComplexity = function () {\r\n\t return this.reportComponentService.setFilterColorComplexity(this.finalBPMsDDList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t BAQMethodDirectives.prototype.setFilterColorMethod = function () {\r\n\t return this.reportComponentService.setFilterColorMethod(this.finalBPMsDDList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t BAQMethodDirectives.prototype.setFilterColorLOC = function () {\r\n\t return this.reportComponentService.setFilterColorLOC(this.finalBPMsDDList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], BAQMethodDirectives.prototype, \"data\", null);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], BAQMethodDirectives.prototype, \"onAnalysisRefresh\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], BAQMethodDirectives.prototype, \"onFilterCustom\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", String)\r\n\t ], BAQMethodDirectives.prototype, \"sas\", void 0);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], BAQMethodDirectives.prototype, \"onChange\", void 0);\r\n\t BAQMethodDirectives = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'baqMethodDirectives',\r\n\t template: __webpack_require__(524),\r\n\t providers: [sites_service_1.SitesService, pager_service_1.PagerService, complexity_type_service_1.ComplexityService, reports_component_service_1.ReportComponentService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [pager_service_1.PagerService,\r\n\t sites_service_1.SitesService,\r\n\t complexity_type_service_1.ComplexityService,\r\n\t material_1.MdDialog,\r\n\t core_1.ViewContainerRef,\r\n\t reports_component_service_1.ReportComponentService])\r\n\t ], BAQMethodDirectives);\r\n\t return BAQMethodDirectives;\r\n\t}());\r\n\texports.BAQMethodDirectives = BAQMethodDirectives;\r\n\n\n/***/ },\n/* 523 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar FilterBAQMethodDirectivePipe = (function () {\r\n\t function FilterBAQMethodDirectivePipe() {\r\n\t }\r\n\t FilterBAQMethodDirectivePipe.prototype.transform = function (baqMethodDirectives, query) {\r\n\t if (query === '') {\r\n\t return baqMethodDirectives;\r\n\t }\r\n\t return baqMethodDirectives.filter(function (baqmd) {\r\n\t return baqmd.name.toLowerCase().indexOf(query.toLowerCase()) !== -1 ||\r\n\t baqmd.businessObject.toLowerCase().indexOf(query.toLowerCase()) !== -1;\r\n\t });\r\n\t };\r\n\t FilterBAQMethodDirectivePipe = __decorate([\r\n\t core_1.Pipe({ name: 'filterBAQMethodDirective' })\r\n\t ], FilterBAQMethodDirectivePipe);\r\n\t return FilterBAQMethodDirectivePipe;\r\n\t}());\r\n\texports.FilterBAQMethodDirectivePipe = FilterBAQMethodDirectivePipe;\r\n\n\n/***/ },\n/* 524 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n \\r\\n BPM (Updatable BAQs) ({{pager?.totalItems}})\\r\\n \\r\\n Keep ({{ countKeep() }}/{{_baqMethodDirectives?.length}})\\r\\n Reviewed ({{ countReviewed() }}/{{_baqMethodDirectives?.length}})\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\t\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Group\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tName\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tMethod\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tComplexity\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tLOC\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tCodeCompatibleCloud WarningKeepReviewed
{{ item?.group }}{{ item?.name }}{{ item?.businessObject }}{{ item?.customComplexity }}{{ item?.linesOfCode }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n
\\r\\n\\t\\t\\t\\t\\t\\t\\t No \\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
10\\\">\\r\\n
10\\\">\\r\\n View: \\r\\n \\r\\n
1\\\" style=\\\"display:inline-block\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 525 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar nonUpdatableBAQs_pipe_1 = __webpack_require__(526);\r\n\tvar complexity_type_service_1 = __webpack_require__(440);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar reports_component_service_1 = __webpack_require__(441);\r\n\tvar baqs_modaldialog_1 = __webpack_require__(443);\r\n\tvar baqs_modaldialog_2 = __webpack_require__(443);\r\n\tvar NonUpdatableBAQs = (function () {\r\n\t function NonUpdatableBAQs(pagerService, complexityService, dialog, viewContainerRef, reportComponentService) {\r\n\t this.pagerService = pagerService;\r\n\t this.complexityService = complexityService;\r\n\t this.dialog = dialog;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.reportComponentService = reportComponentService;\r\n\t this._nonUpdatableBAQs = [];\r\n\t this.onChange = new core_1.EventEmitter();\r\n\t this.freezeInputs = false;\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t this.keep = false;\r\n\t this.reviewed = false;\r\n\t this.search = '';\r\n\t this.selectedFilter = {};\r\n\t this.pager = {};\r\n\t this.filterNonUpdatableBAQPipe = new nonUpdatableBAQs_pipe_1.FilterNonUpdatableBAQPipe();\r\n\t this.pageSize = 10;\r\n\t this.finalBAQsList = \"\";\r\n\t this.isDesc = false;\r\n\t this.column = 'company';\r\n\t this.hidePagination = false;\r\n\t this.toggleFlagPagination = false;\r\n\t this.setFilterColorColumn = '';\r\n\t this.checkedAll = false;\r\n\t this.clickedOutside = false;\r\n\t }\r\n\t Object.defineProperty(NonUpdatableBAQs.prototype, \"data\", {\r\n\t get: function () { return this._nonUpdatableBAQs; },\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t if (data.nonUpdatableBAQs) {\r\n\t this._nonUpdatableBAQs = data.nonUpdatableBAQs;\r\n\t }\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t NonUpdatableBAQs.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.onFilterCustom.subscribe(function (res) {\r\n\t _this.selectedFilter = res;\r\n\t _this.filterCustom(_this.selectedFilter, 1);\r\n\t });\r\n\t this.onAnalysisRefresh.subscribe(function (res) {\r\n\t _this.freezeInputs = res;\r\n\t });\r\n\t this.setPage(1);\r\n\t };\r\n\t NonUpdatableBAQs.prototype.filterCustom = function (filter, page) {\r\n\t var nonUpdatableBAQs = this._nonUpdatableBAQs;\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t nonUpdatableBAQs = this.setNonUpdatableBAQFilter(filter, nonUpdatableBAQs);\r\n\t this.pager = this.pagerService.getPager(nonUpdatableBAQs.length, page, this.pageSize);\r\n\t this.pagedItems = nonUpdatableBAQs.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t NonUpdatableBAQs.prototype.setNonUpdatableBAQFilter = function (filter, nonUpdatableBAQs) {\r\n\t nonUpdatableBAQs = this.pagerService.filter('custom', nonUpdatableBAQs, filter, 'updatableBAQs');\r\n\t return nonUpdatableBAQs;\r\n\t };\r\n\t NonUpdatableBAQs.prototype.filterNonUpdatableBAQ = function (query, page) {\r\n\t var nonUpdatableBAQs = this._nonUpdatableBAQs;\r\n\t if (query === '') {\r\n\t this.setPage(1);\r\n\t }\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t nonUpdatableBAQs = this.filterNonUpdatableBAQPipe.transform(nonUpdatableBAQs, query);\r\n\t nonUpdatableBAQs = this.setNonUpdatableBAQFilter(this.selectedFilter, nonUpdatableBAQs);\r\n\t this.pager = this.pagerService.getPager(nonUpdatableBAQs.length, page, this.pageSize);\r\n\t this.pagedItems = nonUpdatableBAQs.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t NonUpdatableBAQs.prototype.toggle = function () {\r\n\t if (this.opened) {\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t else {\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t };\r\n\t NonUpdatableBAQs.prototype.keepAll = function (checked) {\r\n\t this._nonUpdatableBAQs.forEach(function (nonUpdatableBAQ) {\r\n\t nonUpdatableBAQ.keep = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t NonUpdatableBAQs.prototype.reviewedAll = function (checked) {\r\n\t this._nonUpdatableBAQs.forEach(function (nonUpdatableBAQ) {\r\n\t nonUpdatableBAQ.reviewed = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t NonUpdatableBAQs.prototype.countReviewed = function () {\r\n\t var count = 0;\r\n\t this._nonUpdatableBAQs.forEach(function (nonUpdatableBAQ) {\r\n\t count += nonUpdatableBAQ.reviewed ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t NonUpdatableBAQs.prototype.countKeep = function () {\r\n\t var count = 0;\r\n\t this._nonUpdatableBAQs.forEach(function (nonUpdatableBAQ) {\r\n\t count += nonUpdatableBAQ.keep ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t NonUpdatableBAQs.prototype.setPage = function (page) {\r\n\t if (page < 1 || page > this.pager.totalPages) {\r\n\t return;\r\n\t }\r\n\t if (this.search !== '') {\r\n\t this.filterNonUpdatableBAQ(this.search, page);\r\n\t }\r\n\t else {\r\n\t this.pager = this.pagerService.getPager(this._nonUpdatableBAQs.length, page, this.pageSize);\r\n\t this.pagedItems = this._nonUpdatableBAQs.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t this.finalBAQsList = \"\";\r\n\t this.checkedAll = false;\r\n\t this.reportComponentService.ngBAQsInitFlag(this.pagedItems);\r\n\t this.sort(this.column);\r\n\t }\r\n\t };\r\n\t NonUpdatableBAQs.prototype.openDialog = function (colElem) {\r\n\t var _this = this;\r\n\t var nonUpdatableBAQsDialogInput = {\r\n\t pagedItems: this.pagedItems,\r\n\t finalBAQsList: this.finalBAQsList,\r\n\t selectedColumn: colElem,\r\n\t checkedAll: this.checkedAll,\r\n\t baqsReportType: baqs_modaldialog_2.BAQsReportType[baqs_modaldialog_2.BAQsReportType.BAQs]\r\n\t };\r\n\t this.setFilterColorColumn = colElem;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.dialogNonBAQRef = this.dialog.open(baqs_modaldialog_1.BAQsReportDialog, config);\r\n\t this.dialogNonBAQRef.componentInstance.render(nonUpdatableBAQsDialogInput);\r\n\t this.dialogNonBAQRef.afterClosed().subscribe(function (result) {\r\n\t _this.clickedOutside = _this.dialogNonBAQRef.componentInstance.clickedOutside;\r\n\t if (!_this.clickedOutside) {\r\n\t _this.selectedItems = [];\r\n\t _this.finalBAQsList = _this.dialogNonBAQRef.componentInstance.finalBAQsList;\r\n\t _this.checkedAll = _this.dialogNonBAQRef.componentInstance.checkedAll;\r\n\t if (_this.finalBAQsList != null && _this.finalBAQsList != undefined && _this.finalBAQsList.length > 0) {\r\n\t _this.finalBAQsList.split(',').forEach(function (item) {\r\n\t _this.selectedItems.push(item);\r\n\t });\r\n\t if (_this.selectedItems.length != _this.pagedItems.length)\r\n\t _this.hidePagination = true;\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t _this.dialogNonBAQRef = null;\r\n\t });\r\n\t };\r\n\t NonUpdatableBAQs.prototype.sort = function (property) {\r\n\t this.isDesc = !this.isDesc;\r\n\t this.column = property;\r\n\t this.direction = this.isDesc ? 1 : -1;\r\n\t };\r\n\t ;\r\n\t NonUpdatableBAQs.prototype.setFilterColorCompany = function () {\r\n\t return this.reportComponentService.setFilterColorCompany(this.finalBAQsList, this.setFilterColorColumn);\r\n\t };\r\n\t NonUpdatableBAQs.prototype.setFilterColorQueryId = function () {\r\n\t return this.reportComponentService.setFilterColorQueryId(this.finalBAQsList, this.setFilterColorColumn);\r\n\t };\r\n\t NonUpdatableBAQs.prototype.setFilterColorDesc = function () {\r\n\t return this.reportComponentService.setFilterColorDesc(this.finalBAQsList, this.setFilterColorColumn);\r\n\t };\r\n\t NonUpdatableBAQs.prototype.setFilterColorComplexity = function () {\r\n\t return this.reportComponentService.setFilterColorComplexity(this.finalBAQsList, this.setFilterColorColumn);\r\n\t };\r\n\t NonUpdatableBAQs.prototype.setFilterColorExternal = function () {\r\n\t return this.reportComponentService.setFilterColorExternal(this.finalBAQsList, this.setFilterColorColumn);\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], NonUpdatableBAQs.prototype, \"data\", null);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], NonUpdatableBAQs.prototype, \"onAnalysisRefresh\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], NonUpdatableBAQs.prototype, \"onFilterCustom\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", String)\r\n\t ], NonUpdatableBAQs.prototype, \"sas\", void 0);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], NonUpdatableBAQs.prototype, \"onChange\", void 0);\r\n\t NonUpdatableBAQs = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'nonUpdatableBAQs',\r\n\t template: __webpack_require__(527),\r\n\t providers: [pager_service_1.PagerService, complexity_type_service_1.ComplexityService, reports_component_service_1.ReportComponentService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [pager_service_1.PagerService,\r\n\t complexity_type_service_1.ComplexityService,\r\n\t material_1.MdDialog,\r\n\t core_1.ViewContainerRef,\r\n\t reports_component_service_1.ReportComponentService])\r\n\t ], NonUpdatableBAQs);\r\n\t return NonUpdatableBAQs;\r\n\t}());\r\n\texports.NonUpdatableBAQs = NonUpdatableBAQs;\r\n\n\n/***/ },\n/* 526 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar FilterNonUpdatableBAQPipe = (function () {\r\n\t function FilterNonUpdatableBAQPipe() {\r\n\t }\r\n\t FilterNonUpdatableBAQPipe.prototype.transform = function (nonUpdatableBAQs, query) {\r\n\t if (query === '') {\r\n\t return nonUpdatableBAQs;\r\n\t }\r\n\t return nonUpdatableBAQs.filter(function (nubaq) {\r\n\t return nubaq.company.toLowerCase().indexOf(query.toLowerCase()) !== -1 ||\r\n\t nubaq.description.toLowerCase().indexOf(query.toLowerCase()) !== -1 ||\r\n\t nubaq.queryID.toLowerCase().indexOf(query.toLowerCase()) !== -1;\r\n\t });\r\n\t };\r\n\t FilterNonUpdatableBAQPipe = __decorate([\r\n\t core_1.Pipe({ name: 'filterNonUpdatableBAQ' })\r\n\t ], FilterNonUpdatableBAQPipe);\r\n\t return FilterNonUpdatableBAQPipe;\r\n\t}());\r\n\texports.FilterNonUpdatableBAQPipe = FilterNonUpdatableBAQPipe;\r\n\n\n/***/ },\n/* 527 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
0\\\">\\r\\n
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n \\r\\n\\t\\tBAQs ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_nonUpdatableBAQs?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_nonUpdatableBAQs?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Company\\r\\n \\r\\n \\r\\n Query ID\\r\\n \\r\\n \\r\\n Description\\r\\n \\r\\n \\r\\n Complexity\\r\\n \\r\\n \\r\\n Cloud Warning\\r\\n \\r\\n \\r\\n CompatibleKeepReviewed
{{ item?.company }}{{ item?.queryID }}{{ item?.description }}{{ item?.customComplexity }}\\r\\n
\\r\\n \\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes\\r\\n
\\r\\n
\\r\\n
\\r\\n\\t\\t\\t\\t\\t\\t\\t No \\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n
\\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t
\\r\\n
10\\\">\\r\\n View: \\r\\n \\r\\n
1\\\" style=\\\"display:inline-block\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\t\\t
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 528 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar sites_service_1 = __webpack_require__(371);\r\n\tvar code_dialog_component_1 = __webpack_require__(454);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar customTriggers_pipe_1 = __webpack_require__(529);\r\n\tvar complexity_type_service_1 = __webpack_require__(440);\r\n\tvar customTriggers_modaldialog_1 = __webpack_require__(450);\r\n\tvar sql_modaldialog_1 = __webpack_require__(451);\r\n\tvar reports_component_service_1 = __webpack_require__(441);\r\n\tvar CustomTriggersComponent = (function () {\r\n\t function CustomTriggersComponent(pagerService, complexityService, sitesService, dialog, viewContainerRef, reportComponentService) {\r\n\t this.pagerService = pagerService;\r\n\t this.complexityService = complexityService;\r\n\t this.sitesService = sitesService;\r\n\t this.dialog = dialog;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.reportComponentService = reportComponentService;\r\n\t this._customTriggers = [];\r\n\t this.onChange = new core_1.EventEmitter();\r\n\t this.freezeInputs = false;\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t this.keep = false;\r\n\t this.reviewed = false;\r\n\t this.search = '';\r\n\t this.selectedFilter = '';\r\n\t this.pager = {};\r\n\t this.filteCustomTriggersPipe = new customTriggers_pipe_1.FilterTriggersPipe();\r\n\t this.pageSize = 10;\r\n\t this.isDesc = false;\r\n\t this.column = 'name';\r\n\t this.finalSQLList = \"\";\r\n\t this.toggleFlag = false;\r\n\t this.checkedAll = false;\r\n\t this.hidePagination = false;\r\n\t this.setFilterColorColumn = '';\r\n\t this.clickedOutside = false;\r\n\t }\r\n\t Object.defineProperty(CustomTriggersComponent.prototype, \"data\", {\r\n\t get: function () { return this._customTriggers; },\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t if (data.customTriggers) {\r\n\t this._customTriggers = data.customTriggers;\r\n\t }\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t CustomTriggersComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.onFilterCustom.subscribe(function (res) {\r\n\t _this.selectedFilter = res;\r\n\t _this.filterCustom(_this.selectedFilter, 1);\r\n\t });\r\n\t this.onAnalysisRefresh.subscribe(function (res) {\r\n\t _this.freezeInputs = res;\r\n\t });\r\n\t this.setPage(1);\r\n\t };\r\n\t CustomTriggersComponent.prototype.filterCustom = function (filter, page) {\r\n\t var customTriggers = this._customTriggers;\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t customTriggers = this.setCustomTriggerFilter(filter, customTriggers);\r\n\t this.pager = this.pagerService.getPager(customTriggers.length, page, this.pageSize);\r\n\t this.pagedItems = customTriggers.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t CustomTriggersComponent.prototype.setCustomTriggerFilter = function (filter, customTriggers) {\r\n\t customTriggers = this.pagerService.filter('custom', customTriggers, filter);\r\n\t return customTriggers;\r\n\t };\r\n\t CustomTriggersComponent.prototype.filterCustomTrigger = function (query, page) {\r\n\t var customTriggers = this._customTriggers;\r\n\t if (query === '') {\r\n\t this.setPage(1);\r\n\t }\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t customTriggers = this.filteCustomTriggersPipe.transform(this._customTriggers, query);\r\n\t customTriggers = this.setCustomTriggerFilter(this.selectedFilter, customTriggers);\r\n\t this.pager = this.pagerService.getPager(customTriggers.length, page, this.pageSize);\r\n\t this.pagedItems = customTriggers.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t CustomTriggersComponent.prototype.toggle = function () {\r\n\t if (this.opened) {\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t else {\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t };\r\n\t CustomTriggersComponent.prototype.previewCode = function (url, name, language) {\r\n\t var _this = this;\r\n\t if (url) {\r\n\t this.sitesService.getFile(url + this.sas).subscribe(function (res) {\r\n\t var preview = {\r\n\t source: res.text(),\r\n\t language: language,\r\n\t downloadUrl: url + _this.sas,\r\n\t name: name\r\n\t };\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = _this.viewContainerRef;\r\n\t _this.dialogRef = _this.dialog.open(code_dialog_component_1.CodeDialog, config);\r\n\t _this.dialogRef.componentInstance.render(preview);\r\n\t _this.dialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.dialogRef = null;\r\n\t });\r\n\t });\r\n\t }\r\n\t };\r\n\t CustomTriggersComponent.prototype.keepAll = function (checked) {\r\n\t this._customTriggers.forEach(function (customTriggers) {\r\n\t customTriggers.keep = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t CustomTriggersComponent.prototype.reviewedAll = function (checked) {\r\n\t this._customTriggers.forEach(function (customTriggers) {\r\n\t customTriggers.reviewed = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t CustomTriggersComponent.prototype.countReviewed = function () {\r\n\t var count = 0;\r\n\t this._customTriggers.forEach(function (customTriggers) {\r\n\t count += customTriggers.reviewed ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t CustomTriggersComponent.prototype.countKeep = function () {\r\n\t var count = 0;\r\n\t this._customTriggers.forEach(function (customTriggers) {\r\n\t count += customTriggers.keep ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t CustomTriggersComponent.prototype.previewCodeDisabled = function (item) {\r\n\t if (item.definition && item.definition.cloudFilename) {\r\n\t return false;\r\n\t }\r\n\t return true;\r\n\t };\r\n\t CustomTriggersComponent.prototype.previewCodeIcon = function (item) {\r\n\t if (this.previewCodeDisabled(item)) {\r\n\t return \"cloud_download\";\r\n\t }\r\n\t return \"cloud_download\";\r\n\t };\r\n\t CustomTriggersComponent.prototype.setPage = function (page) {\r\n\t if (page < 1 || page > this.pager.totalPages) {\r\n\t return;\r\n\t }\r\n\t if (this.search !== '') {\r\n\t this.filterCustomTrigger(this.search, page);\r\n\t }\r\n\t else {\r\n\t this.pager = this.pagerService.getPager(this._customTriggers.length, page, this.pageSize);\r\n\t this.pagedItems = this._customTriggers.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t this.finalSQLList = \"\";\r\n\t this.checkedAll = false;\r\n\t this.reportComponentService.ngSQLInitFlag(this.pagedItems);\r\n\t this.sort(this.column);\r\n\t }\r\n\t };\r\n\t CustomTriggersComponent.prototype.openDialog = function (colElem) {\r\n\t var _this = this;\r\n\t var customTriggerDialogInput = {\r\n\t pagedItems: this.pagedItems,\r\n\t finalSQLList: this.finalSQLList,\r\n\t selectedColumn: colElem,\r\n\t checkedAll: this.checkedAll,\r\n\t sqlReportType: sql_modaldialog_1.SQLReportType[sql_modaldialog_1.SQLReportType.Trigger]\r\n\t };\r\n\t this.setFilterColorColumn = colElem;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.customTriggersDialogRef = this.dialog.open(customTriggers_modaldialog_1.CustomTriggerDialog, config);\r\n\t this.customTriggersDialogRef.componentInstance.render(customTriggerDialogInput);\r\n\t this.customTriggersDialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.clickedOutside = _this.customTriggersDialogRef.componentInstance.clickedOutside;\r\n\t if (!_this.clickedOutside) {\r\n\t _this.selectedItems = [];\r\n\t _this.finalSQLList = _this.customTriggersDialogRef.componentInstance.finalSQLList;\r\n\t _this.checkedAll = _this.customTriggersDialogRef.componentInstance.checkedAll;\r\n\t if (_this.finalSQLList != null && _this.finalSQLList != undefined && _this.finalSQLList.length > 0) {\r\n\t _this.finalSQLList.split(',').forEach(function (item) {\r\n\t _this.selectedItems.push(item);\r\n\t });\r\n\t if (_this.selectedItems.length != _this.pagedItems.length)\r\n\t _this.hidePagination = true;\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t _this.customTriggersDialogRef = null;\r\n\t });\r\n\t };\r\n\t CustomTriggersComponent.prototype.sort = function (property) {\r\n\t this.isDesc = !this.isDesc;\r\n\t this.column = property;\r\n\t this.direction = this.isDesc ? 1 : -1;\r\n\t };\r\n\t ;\r\n\t CustomTriggersComponent.prototype.setFilterColorName = function () {\r\n\t return this.reportComponentService.setFilterColorName(this.finalSQLList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t CustomTriggersComponent.prototype.setFilterColorTableName = function () {\r\n\t return this.reportComponentService.setFilterColorTableName(this.finalSQLList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t CustomTriggersComponent.prototype.setFilterColorComplexity = function () {\r\n\t return this.reportComponentService.setFilterColorComplexity(this.finalSQLList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t CustomTriggersComponent.prototype.setFilterColorLOC = function () {\r\n\t return this.reportComponentService.setFilterColorLOC(this.finalSQLList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], CustomTriggersComponent.prototype, \"onAnalysisRefresh\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], CustomTriggersComponent.prototype, \"onFilterCustom\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", String)\r\n\t ], CustomTriggersComponent.prototype, \"sas\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], CustomTriggersComponent.prototype, \"data\", null);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], CustomTriggersComponent.prototype, \"onChange\", void 0);\r\n\t CustomTriggersComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'customTriggers',\r\n\t template: __webpack_require__(530),\r\n\t providers: [pager_service_1.PagerService, reports_component_service_1.ReportComponentService, complexity_type_service_1.ComplexityService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [pager_service_1.PagerService,\r\n\t complexity_type_service_1.ComplexityService,\r\n\t sites_service_1.SitesService,\r\n\t material_1.MdDialog,\r\n\t core_1.ViewContainerRef,\r\n\t reports_component_service_1.ReportComponentService])\r\n\t ], CustomTriggersComponent);\r\n\t return CustomTriggersComponent;\r\n\t}());\r\n\texports.CustomTriggersComponent = CustomTriggersComponent;\r\n\n\n/***/ },\n/* 529 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar FilterTriggersPipe = (function () {\r\n\t function FilterTriggersPipe() {\r\n\t }\r\n\t FilterTriggersPipe.prototype.transform = function (customTriggers, query) {\r\n\t if (query === '') {\r\n\t return customTriggers;\r\n\t }\r\n\t return customTriggers.filter(function (strg) {\r\n\t return strg.name.toLowerCase().indexOf(query.toLowerCase()) !== -1;\r\n\t });\r\n\t };\r\n\t FilterTriggersPipe = __decorate([\r\n\t core_1.Pipe({ name: 'filterTriggers' })\r\n\t ], FilterTriggersPipe);\r\n\t return FilterTriggersPipe;\r\n\t}());\r\n\texports.FilterTriggersPipe = FilterTriggersPipe;\r\n\n\n/***/ },\n/* 530 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
0\\\">\\r\\n
\\r\\n
\\r\\n Keep All\\r\\n Reviewed All\\r\\n
\\r\\n
\\r\\n\\t\\r\\n Triggers ({{pager?.totalItems}})\\r\\n \\r\\n Keep ({{ countKeep() }}/{{_customTriggers?.length}})\\r\\n Reviewed ({{ countReviewed() }}/{{_customTriggers?.length}})\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n \\t\\t\\t\\t\\t\\t\\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Trigger Name\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tTable Name\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tCodeLOC\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tComplexity\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tKeepReviewed
{{dataItem?.name}}{{dataItem?.tableName}}\\r\\n \\r\\n {{dataItem?.linesOfCode}}{{dataItem?.complexity}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\t\\t\\t
\\t\\t\\t\\r\\n
10\\\">\\r\\n View: \\r\\n \\r\\n
1\\\" style=\\\"display:inline-block\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\t\\t\\t
\\r\\n
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 531 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar sites_service_1 = __webpack_require__(371);\r\n\tvar code_dialog_component_1 = __webpack_require__(454);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar sqlFunctions_pipe_1 = __webpack_require__(532);\r\n\tvar complexity_type_service_1 = __webpack_require__(440);\r\n\tvar sql_modaldialog_1 = __webpack_require__(451);\r\n\tvar sql_modaldialog_2 = __webpack_require__(451);\r\n\tvar reports_component_service_1 = __webpack_require__(441);\r\n\tvar SQLFunctionsComponent = (function () {\r\n\t function SQLFunctionsComponent(pagerService, complexityService, sitesService, dialog, viewContainerRef, reportComponentService) {\r\n\t this.pagerService = pagerService;\r\n\t this.complexityService = complexityService;\r\n\t this.sitesService = sitesService;\r\n\t this.dialog = dialog;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.reportComponentService = reportComponentService;\r\n\t this._sqlFunctions = [];\r\n\t this.onChange = new core_1.EventEmitter();\r\n\t this.freezeInputs = false;\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t this.keep = false;\r\n\t this.reviewed = false;\r\n\t this.search = '';\r\n\t this.selectedFilter = '';\r\n\t this.pager = {};\r\n\t this.filterSqlFunctionsPipe = new sqlFunctions_pipe_1.FiltersqlFunctionsPipe();\r\n\t this.pageSize = 10;\r\n\t this.isDesc = false;\r\n\t this.column = 'name';\r\n\t this.finalSQLList = \"\";\r\n\t this.toggleFlag = false;\r\n\t this.checkedAll = false;\r\n\t this.hidePagination = false;\r\n\t this.setFilterColorColumn = '';\r\n\t this.clickedOutside = false;\r\n\t }\r\n\t Object.defineProperty(SQLFunctionsComponent.prototype, \"data\", {\r\n\t get: function () { return this._sqlFunctions; },\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t if (data.sqlFunctions) {\r\n\t this._sqlFunctions = data.sqlFunctions;\r\n\t this._sqlFunctions.forEach(function (element) {\r\n\t if (element.hasOwnProperty('cloudComplexity') == false) {\r\n\t element.cloudComplexity = true;\r\n\t }\r\n\t if (element.hasOwnProperty('cloudComplexityType') == false) {\r\n\t element.cloudComplexityType = 'None';\r\n\t }\r\n\t if (element.hasOwnProperty('cloudComplexityDescription') == false) {\r\n\t element.cloudComplexityDescription = '';\r\n\t }\r\n\t });\r\n\t }\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t SQLFunctionsComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.onFilterCustom.subscribe(function (res) {\r\n\t _this.selectedFilter = res;\r\n\t _this.filterCustom(_this.selectedFilter, 1);\r\n\t });\r\n\t this.onAnalysisRefresh.subscribe(function (res) {\r\n\t _this.freezeInputs = res;\r\n\t });\r\n\t this.setPage(1);\r\n\t };\r\n\t SQLFunctionsComponent.prototype.filterCustom = function (filter, page) {\r\n\t var sqlFunctions = this._sqlFunctions;\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t sqlFunctions = this.setsqlFunctionsFilter(filter, sqlFunctions);\r\n\t this.pager = this.pagerService.getPager(sqlFunctions.length, page, this.pageSize);\r\n\t this.pagedItems = sqlFunctions.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t SQLFunctionsComponent.prototype.setsqlFunctionsFilter = function (filter, sqlFunctions) {\r\n\t sqlFunctions = this.pagerService.filter('custom', sqlFunctions, filter);\r\n\t return sqlFunctions;\r\n\t };\r\n\t SQLFunctionsComponent.prototype.filterSqlFunctions = function (query, page) {\r\n\t var sqlFunctions = this._sqlFunctions;\r\n\t if (query === '') {\r\n\t this.setPage(1);\r\n\t }\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t sqlFunctions = this.filterSqlFunctionsPipe.transform(this._sqlFunctions, query);\r\n\t sqlFunctions = this.setsqlFunctionsFilter(this.selectedFilter, sqlFunctions);\r\n\t this.pager = this.pagerService.getPager(sqlFunctions.length, page, this.pageSize);\r\n\t this.pagedItems = sqlFunctions.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t SQLFunctionsComponent.prototype.toggle = function () {\r\n\t if (this.opened) {\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t else {\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t };\r\n\t SQLFunctionsComponent.prototype.previewCode = function (url, name, language) {\r\n\t var _this = this;\r\n\t if (url) {\r\n\t this.sitesService.getFile(url + this.sas).subscribe(function (res) {\r\n\t var preview = {\r\n\t source: res.text(),\r\n\t language: language,\r\n\t downloadUrl: url + _this.sas,\r\n\t name: name\r\n\t };\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = _this.viewContainerRef;\r\n\t _this.dialogRef = _this.dialog.open(code_dialog_component_1.CodeDialog, config);\r\n\t _this.dialogRef.componentInstance.render(preview);\r\n\t _this.dialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.dialogRef = null;\r\n\t });\r\n\t });\r\n\t }\r\n\t };\r\n\t SQLFunctionsComponent.prototype.keepAll = function (checked) {\r\n\t this._sqlFunctions.forEach(function (sqlFunc) {\r\n\t sqlFunc.keep = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t SQLFunctionsComponent.prototype.reviewedAll = function (checked) {\r\n\t this._sqlFunctions.forEach(function (sqlFunc) {\r\n\t sqlFunc.reviewed = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t SQLFunctionsComponent.prototype.countReviewed = function () {\r\n\t var count = 0;\r\n\t this._sqlFunctions.forEach(function (sqlFunc) {\r\n\t count += sqlFunc.reviewed ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t SQLFunctionsComponent.prototype.countKeep = function () {\r\n\t var count = 0;\r\n\t this._sqlFunctions.forEach(function (sqlFunc) {\r\n\t count += sqlFunc.keep ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t SQLFunctionsComponent.prototype.previewCodeDisabled = function (item) {\r\n\t if (item.definition && item.definition.cloudFilename) {\r\n\t return false;\r\n\t }\r\n\t return true;\r\n\t };\r\n\t SQLFunctionsComponent.prototype.previewCodeIcon = function (item) {\r\n\t if (this.previewCodeDisabled(item)) {\r\n\t return \"cloud_download\";\r\n\t }\r\n\t return \"cloud_download\";\r\n\t };\r\n\t SQLFunctionsComponent.prototype.setPage = function (page) {\r\n\t if (page < 1 || page > this.pager.totalPages) {\r\n\t return;\r\n\t }\r\n\t if (this.search !== '') {\r\n\t this.filterSqlFunctions(this.search, page);\r\n\t }\r\n\t else {\r\n\t this.pager = this.pagerService.getPager(this._sqlFunctions.length, page, this.pageSize);\r\n\t this.pagedItems = this._sqlFunctions.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t this.finalSQLList = \"\";\r\n\t this.checkedAll = false;\r\n\t this.reportComponentService.ngSQLInitFlag(this.pagedItems);\r\n\t this.sort(this.column);\r\n\t }\r\n\t };\r\n\t SQLFunctionsComponent.prototype.openDialog = function (colElem) {\r\n\t var _this = this;\r\n\t var SqlSprocDialogInput = {\r\n\t pagedItems: this.pagedItems,\r\n\t finalSQLList: this.finalSQLList,\r\n\t selectedColumn: colElem,\r\n\t checkedAll: this.checkedAll,\r\n\t sqlReportType: sql_modaldialog_2.SQLReportType[sql_modaldialog_2.SQLReportType.Function]\r\n\t };\r\n\t this.setFilterColorColumn = colElem;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.sqlFunctionDialogRef = this.dialog.open(sql_modaldialog_1.SQLReportDialog, config);\r\n\t this.sqlFunctionDialogRef.componentInstance.render(SqlSprocDialogInput);\r\n\t this.sqlFunctionDialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.clickedOutside = _this.sqlFunctionDialogRef.componentInstance.clickedOutside;\r\n\t if (!_this.clickedOutside) {\r\n\t _this.selectedItems = [];\r\n\t _this.finalSQLList = _this.sqlFunctionDialogRef.componentInstance.finalSQLList;\r\n\t _this.checkedAll = _this.sqlFunctionDialogRef.componentInstance.checkedAll;\r\n\t if (_this.finalSQLList != null && _this.finalSQLList != undefined && _this.finalSQLList.length > 0) {\r\n\t _this.finalSQLList.split(',').forEach(function (item) {\r\n\t _this.selectedItems.push(item);\r\n\t });\r\n\t if (_this.selectedItems.length != _this.pagedItems.length)\r\n\t _this.hidePagination = true;\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t _this.sqlFunctionDialogRef = null;\r\n\t });\r\n\t };\r\n\t SQLFunctionsComponent.prototype.sort = function (property) {\r\n\t this.isDesc = !this.isDesc;\r\n\t this.column = property;\r\n\t this.direction = this.isDesc ? 1 : -1;\r\n\t };\r\n\t ;\r\n\t SQLFunctionsComponent.prototype.setFilterColorName = function () {\r\n\t return this.reportComponentService.setFilterColorName(this.finalSQLList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t SQLFunctionsComponent.prototype.setFilterColorComplexity = function () {\r\n\t return this.reportComponentService.setFilterColorComplexity(this.finalSQLList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t SQLFunctionsComponent.prototype.setFilterColorLOC = function () {\r\n\t return this.reportComponentService.setFilterColorLOC(this.finalSQLList.toString(), this.setFilterColorColumn);\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], SQLFunctionsComponent.prototype, \"onAnalysisRefresh\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], SQLFunctionsComponent.prototype, \"onFilterCustom\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", String)\r\n\t ], SQLFunctionsComponent.prototype, \"sas\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], SQLFunctionsComponent.prototype, \"data\", null);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], SQLFunctionsComponent.prototype, \"onChange\", void 0);\r\n\t SQLFunctionsComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'sqlFunctions',\r\n\t template: __webpack_require__(533),\r\n\t providers: [pager_service_1.PagerService, reports_component_service_1.ReportComponentService, complexity_type_service_1.ComplexityService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [pager_service_1.PagerService,\r\n\t complexity_type_service_1.ComplexityService,\r\n\t sites_service_1.SitesService,\r\n\t material_1.MdDialog,\r\n\t core_1.ViewContainerRef,\r\n\t reports_component_service_1.ReportComponentService])\r\n\t ], SQLFunctionsComponent);\r\n\t return SQLFunctionsComponent;\r\n\t}());\r\n\texports.SQLFunctionsComponent = SQLFunctionsComponent;\r\n\n\n/***/ },\n/* 532 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar FiltersqlFunctionsPipe = (function () {\r\n\t function FiltersqlFunctionsPipe() {\r\n\t }\r\n\t FiltersqlFunctionsPipe.prototype.transform = function (sqlFunctions, query) {\r\n\t if (query === '') {\r\n\t return sqlFunctions;\r\n\t }\r\n\t return sqlFunctions.filter(function (strg) {\r\n\t return strg.name.toLowerCase().indexOf(query.toLowerCase()) !== -1;\r\n\t });\r\n\t };\r\n\t FiltersqlFunctionsPipe = __decorate([\r\n\t core_1.Pipe({ name: 'filterFunctions' })\r\n\t ], FiltersqlFunctionsPipe);\r\n\t return FiltersqlFunctionsPipe;\r\n\t}());\r\n\texports.FiltersqlFunctionsPipe = FiltersqlFunctionsPipe;\r\n\n\n/***/ },\n/* 533 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
0\\\">\\r\\n
\\r\\n
\\r\\n Keep All\\r\\n Reviewed All\\r\\n
\\r\\n
\\r\\n\\t\\r\\n SQL Functions ({{pager?.totalItems}})\\r\\n \\r\\n Keep ({{ countKeep() }}/{{_sqlFunctions?.length}})\\r\\n Reviewed ({{ countReviewed() }}/{{_sqlFunctions?.length}})\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Name\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tCodeLOC\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tComplexity\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tKeepReviewed
{{dataItem?.name}}\\r\\n \\r\\n {{dataItem?.linesOfCode}}{{dataItem?.complexity}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\t\\t\\t
\\t\\t\\t\\r\\n
10\\\">\\r\\n View: \\r\\n \\r\\n
1\\\" style=\\\"display:inline-block\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\t\\t\\t
\\r\\n
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 534 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar userDefinedTables_modaldialog_1 = __webpack_require__(535);\r\n\tvar reports_component_service_1 = __webpack_require__(441);\r\n\tvar complexity_type_service_1 = __webpack_require__(440);\r\n\tvar UserDefinedTableComponent = (function () {\r\n\t function UserDefinedTableComponent(pagerService, dialog, viewContainerRef, reportComponentService, complexityService) {\r\n\t this.pagerService = pagerService;\r\n\t this.dialog = dialog;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.reportComponentService = reportComponentService;\r\n\t this.complexityService = complexityService;\r\n\t this._userDefinedTables = [];\r\n\t this.onChange = new core_1.EventEmitter();\r\n\t this.freezeInputs = false;\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t this.keep = false;\r\n\t this.reviewed = false;\r\n\t this.search = '';\r\n\t this.pager = {};\r\n\t this.pageSize = 10;\r\n\t this.finalUserDefinedTablesList = \"\";\r\n\t this.isDesc = false;\r\n\t this.column = 'udFormName';\r\n\t this.checkedAll = false;\r\n\t this.rowIndex = 1;\r\n\t this.selectedUdTablesCount = 0;\r\n\t this.hidePagination = false;\r\n\t this.toggleFlagPagination = false;\r\n\t this.setFilterColorColumn = '';\r\n\t this.clickedOutside = false;\r\n\t this.selectedFilter = {};\r\n\t this.sortAsc = -1;\r\n\t }\r\n\t Object.defineProperty(UserDefinedTableComponent.prototype, \"data\", {\r\n\t get: function () { return this._userDefinedTables; },\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t if (data.userDefinedTables) {\r\n\t this._userDefinedTables = data.userDefinedTables;\r\n\t this._userDefinedTables.forEach(function (element) {\r\n\t if (element.hasOwnProperty('cloudComplexity') == false) {\r\n\t element.cloudComplexity = true;\r\n\t }\r\n\t if (element.hasOwnProperty('cloudComplexityType') == false) {\r\n\t element.cloudComplexityType = 'None';\r\n\t }\r\n\t if (element.hasOwnProperty('cloudComplexityDescription') == false) {\r\n\t element.cloudComplexityDescription = '';\r\n\t }\r\n\t });\r\n\t }\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t UserDefinedTableComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.onAnalysisRefresh.subscribe(function (res) {\r\n\t _this.freezeInputs = res;\r\n\t });\r\n\t this.onFilterCustom.subscribe(function (res) {\r\n\t _this.selectedFilter = res;\r\n\t _this.filterCustom(_this.selectedFilter, 1);\r\n\t });\r\n\t this.setPage(1);\r\n\t };\r\n\t UserDefinedTableComponent.prototype.toggle = function () {\r\n\t if (this.opened) {\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t else {\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t };\r\n\t UserDefinedTableComponent.prototype.filterCustom = function (filter, page) {\r\n\t var customTbls = this._userDefinedTables;\r\n\t if (!page) {\r\n\t page = 1;\r\n\t }\r\n\t customTbls = this.setUserDefinedTblsFilter(filter, customTbls);\r\n\t this.pager = this.pagerService.getPager(customTbls.length, page, this.pageSize);\r\n\t this.pagedItems = customTbls.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t UserDefinedTableComponent.prototype.setUserDefinedTblsFilter = function (filter, customTbls) {\r\n\t customTbls = this.pagerService.filter('custom', customTbls, filter);\r\n\t return customTbls;\r\n\t };\r\n\t UserDefinedTableComponent.prototype.keepAll = function (checked) {\r\n\t this._userDefinedTables.forEach(function (customTable) {\r\n\t customTable.keep = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t UserDefinedTableComponent.prototype.reviewedAll = function (checked) {\r\n\t this._userDefinedTables.forEach(function (customTable) {\r\n\t customTable.reviewed = checked;\r\n\t });\r\n\t this.onChange.emit(true);\r\n\t };\r\n\t UserDefinedTableComponent.prototype.countReviewed = function () {\r\n\t var count = 0;\r\n\t this._userDefinedTables.forEach(function (customTable) {\r\n\t count += customTable.reviewed ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t UserDefinedTableComponent.prototype.countKeep = function () {\r\n\t var count = 0;\r\n\t this._userDefinedTables.forEach(function (customTable) {\r\n\t count += customTable.keep ? 1 : 0;\r\n\t });\r\n\t return count;\r\n\t };\r\n\t UserDefinedTableComponent.prototype.sortItems = function (sortby) {\r\n\t var sortAsc = this.sortAsc;\r\n\t this._userDefinedTables = this._userDefinedTables.sort(function (a, b) {\r\n\t if (a[sortby] > b[sortby]) {\r\n\t return -1 * sortAsc;\r\n\t }\r\n\t else\r\n\t return 1 * sortAsc;\r\n\t });\r\n\t sortAsc = sortAsc * -1;\r\n\t };\r\n\t UserDefinedTableComponent.prototype.setPage = function (page) {\r\n\t if (page < 1 || page > this.pager.totalPages) {\r\n\t return;\r\n\t }\r\n\t this.pager = this.pagerService.getPager(this._userDefinedTables.length, page, this.pageSize);\r\n\t this.pagedItems = this._userDefinedTables.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t this.finalUserDefinedTablesList = \"\";\r\n\t this.checkedAll = false;\r\n\t this.reportComponentService.ngUdFormsInitFlag(this.pagedItems);\r\n\t this.sort(this.column);\r\n\t };\r\n\t UserDefinedTableComponent.prototype.openDialog = function (colElem) {\r\n\t var _this = this;\r\n\t var userDefinedTablesDialogInput = {\r\n\t pagedItems: this.pagedItems,\r\n\t finalUserDefinedTablesList: this.finalUserDefinedTablesList,\r\n\t selectedColumn: colElem,\r\n\t checkedAll: this.checkedAll\r\n\t };\r\n\t this.setFilterColorColumn = colElem;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.customTabledialogRef = this.dialog.open(userDefinedTables_modaldialog_1.UserDefinedTablesReportDialog, config);\r\n\t this.customTabledialogRef.componentInstance.render(userDefinedTablesDialogInput);\r\n\t this.customTabledialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.clickedOutside = _this.customTabledialogRef.componentInstance.clickedOutside;\r\n\t if (!_this.clickedOutside) {\r\n\t _this.selectedItems = [];\r\n\t _this.finalUserDefinedTablesList = _this.customTabledialogRef.componentInstance.finalUserDefinedTablesList;\r\n\t _this.checkedAll = _this.customTabledialogRef.componentInstance.checkedAll;\r\n\t if (_this.finalUserDefinedTablesList != null && _this.finalUserDefinedTablesList != undefined && _this.finalUserDefinedTablesList.length > 0) {\r\n\t _this.finalUserDefinedTablesList.split(',').forEach(function (item) {\r\n\t _this.selectedItems.push(item);\r\n\t });\r\n\t if (_this.selectedItems.length != _this.pagedItems.length)\r\n\t _this.hidePagination = true;\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t else\r\n\t _this.hidePagination = false;\r\n\t }\r\n\t _this.customTabledialogRef = null;\r\n\t });\r\n\t };\r\n\t UserDefinedTableComponent.prototype.sort = function (property) {\r\n\t this.isDesc = !this.isDesc;\r\n\t this.column = property;\r\n\t this.direction = this.isDesc ? 1 : -1;\r\n\t };\r\n\t ;\r\n\t UserDefinedTableComponent.prototype.setFilterColorName = function () {\r\n\t return this.reportComponentService.setFilterColorName(this.finalUserDefinedTablesList, this.setFilterColorColumn);\r\n\t };\r\n\t UserDefinedTableComponent.prototype.setFilterColorRows = function () {\r\n\t return this.reportComponentService.setFilterColorRowCount(this.finalUserDefinedTablesList, this.setFilterColorColumn);\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], UserDefinedTableComponent.prototype, \"onAnalysisRefresh\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], UserDefinedTableComponent.prototype, \"onFilterCustom\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], UserDefinedTableComponent.prototype, \"data\", null);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], UserDefinedTableComponent.prototype, \"onChange\", void 0);\r\n\t UserDefinedTableComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'userDefinedTables',\r\n\t template: __webpack_require__(536),\r\n\t providers: [pager_service_1.PagerService, reports_component_service_1.ReportComponentService, complexity_type_service_1.ComplexityService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [pager_service_1.PagerService,\r\n\t material_1.MdDialog,\r\n\t core_1.ViewContainerRef,\r\n\t reports_component_service_1.ReportComponentService,\r\n\t complexity_type_service_1.ComplexityService])\r\n\t ], UserDefinedTableComponent);\r\n\t return UserDefinedTableComponent;\r\n\t}());\r\n\texports.UserDefinedTableComponent = UserDefinedTableComponent;\r\n\n\n/***/ },\n/* 535 */\n449,\n/* 536 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tCustom Tables ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_userDefinedTables?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_userDefinedTables?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
Name \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tRows\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tKeepReviewed
{{dataItem?.name}}{{dataItem?.rowCount}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t
10\\\">\\r\\n\\t\\t\\t\\t\\t View: \\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n/***/ },\n/* 537 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar SoftwareAndPlatformComponent = (function () {\r\n\t function SoftwareAndPlatformComponent(pagerService) {\r\n\t this.pagerService = pagerService;\r\n\t this._isCloud = false;\r\n\t this._isMultiTenant = false;\r\n\t this.hidePagination = false;\r\n\t this.pager = {};\r\n\t this.pageSize = 10;\r\n\t this.opened = true;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t Object.defineProperty(SoftwareAndPlatformComponent.prototype, \"data\", {\r\n\t get: function () { return this._sas; },\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t this._isMultiTenant = data.isMultiTenant;\r\n\t if (data.softwareAndPlatform) {\r\n\t this._sas = data.softwareAndPlatform;\r\n\t }\r\n\t if (this._sas.collation != null && this._sas.collation.tableCollation != null) {\r\n\t this.pager = this.pagerService.getPager(this._sas.collation.tableCollation.length, 1, this.pageSize);\r\n\t this.pagedItems = this._sas.collation.tableCollation.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t }\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t Object.defineProperty(SoftwareAndPlatformComponent.prototype, \"isCloud\", {\r\n\t get: function () { return this._isCloud; },\r\n\t set: function (input) {\r\n\t this._isCloud = input;\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t SoftwareAndPlatformComponent.prototype.toggle = function () {\r\n\t this.opened = !this.opened;\r\n\t if (this.opened) {\r\n\t this.expandLess();\r\n\t }\r\n\t else {\r\n\t this.expandMore();\r\n\t }\r\n\t };\r\n\t SoftwareAndPlatformComponent.prototype.expandLess = function () {\r\n\t this.icon = 'expand_less';\r\n\t };\r\n\t SoftwareAndPlatformComponent.prototype.expandMore = function () {\r\n\t this.icon = 'expand_more';\r\n\t };\r\n\t SoftwareAndPlatformComponent.prototype.formatDataSize = function (sizeInMB) {\r\n\t if (sizeInMB < 1000)\r\n\t return Math.round(sizeInMB) + \" MB\";\r\n\t else\r\n\t return Math.round(sizeInMB / 1000) + ' GB';\r\n\t };\r\n\t SoftwareAndPlatformComponent.prototype.setPage = function (page) {\r\n\t if (page < 1 || page > this.pager.totalPages) {\r\n\t return;\r\n\t }\r\n\t if (this._sas.collation != null && this._sas.collation.tableCollation != null) {\r\n\t this.pager = this.pagerService.getPager(this._sas.collation.tableCollation.length, page, this.pageSize);\r\n\t this.pagedItems = this._sas.collation.tableCollation.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t }\r\n\t };\r\n\t SoftwareAndPlatformComponent.prototype.getTenancyType = function () {\r\n\t return this._isMultiTenant ? \"Multi-Tenant\" : \"Dedicated\";\r\n\t };\r\n\t SoftwareAndPlatformComponent.prototype.hideTenancyType = function () {\r\n\t return !this._isCloud || this._isMultiTenant === undefined;\r\n\t };\r\n\t SoftwareAndPlatformComponent.prototype.getModifiedERPProductVersion = function (version) {\r\n\t if (version.productVersion && version.productVersion.indexOf('11.') === 0) {\r\n\t var _a = version.productVersion.split('.'), minor = _a[1], patch = _a[2], build = _a[3];\r\n\t var versionString = void 0;\r\n\t if (minor === '1') {\r\n\t if (patch === '100') {\r\n\t versionString = \"2021.1.\" + build;\r\n\t }\r\n\t else if (patch === '200') {\r\n\t versionString = \"2021.2.\" + build;\r\n\t }\r\n\t }\r\n\t else if (minor === '2') {\r\n\t if (patch === '100') {\r\n\t versionString = \"2022.1.\" + build;\r\n\t }\r\n\t else if (patch === '200') {\r\n\t versionString = \"2022.2.\" + build;\r\n\t }\r\n\t else if (patch === '300') {\r\n\t versionString = \"2023.1.\" + build;\r\n\t }\r\n\t else if (patch === '400') {\r\n\t versionString = \"2023.2.\" + build;\r\n\t }\r\n\t }\r\n\t else if (minor === '3') {\r\n\t if (patch === '100') {\r\n\t versionString = \"2024.1.\" + build;\r\n\t }\r\n\t else if (patch === '200') {\r\n\t versionString = \"2024.2.\" + build;\r\n\t }\r\n\t }\r\n\t return \"Kinetic \" + versionString;\r\n\t }\r\n\t return version.productVersion || 'NONE';\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], SoftwareAndPlatformComponent.prototype, \"data\", null);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Boolean),\r\n\t __metadata(\"design:paramtypes\", [Boolean])\r\n\t ], SoftwareAndPlatformComponent.prototype, \"isCloud\", null);\r\n\t SoftwareAndPlatformComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'software-and-platform',\r\n\t template: __webpack_require__(538),\r\n\t providers: [pager_service_1.PagerService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [pager_service_1.PagerService])\r\n\t ], SoftwareAndPlatformComponent);\r\n\t return SoftwareAndPlatformComponent;\r\n\t}());\r\n\texports.SoftwareAndPlatformComponent = SoftwareAndPlatformComponent;\r\n\n\n/***/ },\n/* 538 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n Software And Platform\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n Analysis Run By {{ _sas?.osUsername }} \\r\\n \\r\\n \\r\\n ERP Version {{ getModifiedERPProductVersion(_sas) }}\\r\\n \\r\\n \\r\\n Database Type {{ _sas?.databaseType }}\\r\\n \\r\\n
\\r\\n \\r\\n Environment Name {{ _sas?.name }}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Cloud Deployment {{ getTenancyType() }}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n App Server Name {{ _sas?.appServerName }}\\r\\n \\r\\n
\\r\\n
= 10}\\\"> \\r\\n \\r\\n Open Edge Version {{ _sas?.openEdgeVersion }}\\r\\n \\r\\n \\r\\n Open Edge 64Bit {{ _sas?.openEdgeIs64Bit }}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Operating System {{ _sas?.operatingSystem }} \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n SQL Server {{ _sas?.sqlServerName }}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n SQL Version {{ _sas?.sqlVersion }}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Database Collation Name {{_sas?.collation?.dbCollation}}\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Last DB Backup {{ _sas?.lastFullDBBackup | date: 'dd-MMM-y, H:mm:ss (Z)' }}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Database Total Size {{ formatDataSize(_sas?.databaseTotalSizeMB)}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Database Table Size {{ formatDataSize(_sas?.databaseTableSizeMB)}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Database Index Size {{ formatDataSize(_sas?.databaseIndexSizeMB)}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Database Top {{_sas.top10LargestTables?.length}} Tables\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
SchemaTableTable SizeIndex SizeRows
{{table?.schemaName}}{{table?.tableName}}{{formatDataSize(table?.tableSizeMB)}}{{formatDataSize(table?.indexSizeMB)}}{{table?.rows | number:0}}
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Database Top {{_sas?.topLargestTables?.length}} Tables\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
SchemaTableTable SizeIndex SizeRows
{{table?.schemaName}}{{table?.tableName}}{{formatDataSize(table?.tableSizeMB)}}{{formatDataSize(table?.indexSizeMB)}}{{table?.rows | number:0}}
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
0\\\">\\r\\n \\r\\n Collation \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
SchemaTableColumnCollation
{{table?.schemaName}}{{table?.tableName}}{{table?.columnName}}{{table?.collationName}}
\\r\\n
\\t\\t\\t\\r\\n
10\\\">\\r\\n
10\\\">\\r\\n View: \\r\\n \\r\\n
1\\\" style=\\\"display:inline-block\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 539 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar ConnectivityComponent = (function () {\r\n\t function ConnectivityComponent() {\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t Object.defineProperty(ConnectivityComponent.prototype, \"data\", {\r\n\t get: function () { return this._c; },\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t if (data.connectivity) {\r\n\t this._c = data.connectivity;\r\n\t }\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t ConnectivityComponent.prototype.toggle = function () {\r\n\t this.opened = !this.opened;\r\n\t if (this.opened) {\r\n\t this.expandLess();\r\n\t }\r\n\t else {\r\n\t this.expandMore();\r\n\t }\r\n\t };\r\n\t ConnectivityComponent.prototype.expandLess = function () {\r\n\t this.icon = 'expand_less';\r\n\t };\r\n\t ConnectivityComponent.prototype.expandMore = function () {\r\n\t this.icon = 'expand_more';\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], ConnectivityComponent.prototype, \"data\", null);\r\n\t ConnectivityComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'connectivity',\r\n\t template: __webpack_require__(540)\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [])\r\n\t ], ConnectivityComponent);\r\n\t return ConnectivityComponent;\r\n\t}());\r\n\texports.ConnectivityComponent = ConnectivityComponent;\r\n\n\n/***/ },\n/* 540 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n Connectivity\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n Upload Speed {{ _c?.uploadSpeed }} \\r\\n \\r\\n \\r\\n Download Speed {{ _c?.downloadSpeed}}\\r\\n \\r\\n \\r\\n IP Address {{ _c?.ipAddress }}\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\";\n\n/***/ },\n/* 541 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar LicensesComponent = (function () {\r\n\t function LicensesComponent(auth) {\r\n\t this.auth = auth;\r\n\t this._licenses = [];\r\n\t this.opened = true;\r\n\t this.icon = 'expand_more';\r\n\t this.search = '';\r\n\t this.companiesList = [];\r\n\t }\r\n\t Object.defineProperty(LicensesComponent.prototype, \"data\", {\r\n\t get: function () { return this._licenses; },\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t this._licenses = data;\r\n\t this._licenses.forEach(function (lic) {\r\n\t lic.icon = 'expand_less';\r\n\t lic.openedChild = true;\r\n\t });\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t LicensesComponent.prototype.ngOnInit = function () {\r\n\t this.companiesList = [];\r\n\t if (this._licenses[0] != null) {\r\n\t var tempCompaniesList = this._licenses[0].assignedCompanies;\r\n\t var colCount = 10;\r\n\t for (var i = 0; i < tempCompaniesList.length; i = i + colCount) {\r\n\t var element = tempCompaniesList[i];\r\n\t var row = [];\r\n\t while (row.length < colCount) {\r\n\t var company = tempCompaniesList[i + row.length];\r\n\t if (!company) {\r\n\t break;\r\n\t }\r\n\t row.push(company);\r\n\t }\r\n\t this.companiesList.push(row);\r\n\t }\r\n\t }\r\n\t };\r\n\t LicensesComponent.prototype.toggle = function (license) {\r\n\t this.opened = !this.opened;\r\n\t if (this.opened) {\r\n\t this.expandLess();\r\n\t }\r\n\t else {\r\n\t this.expandMore();\r\n\t }\r\n\t };\r\n\t LicensesComponent.prototype.expandLess = function () {\r\n\t this.icon = 'expand_less';\r\n\t };\r\n\t LicensesComponent.prototype.expandMore = function () {\r\n\t this.icon = 'expand_more';\r\n\t };\r\n\t LicensesComponent.prototype.toggleChild = function (lic) {\r\n\t lic.openedChild = !lic.openedChild;\r\n\t if (lic.openedChild) {\r\n\t this.expandLessChild(lic);\r\n\t }\r\n\t else {\r\n\t this.expandMoreChild(lic);\r\n\t }\r\n\t };\r\n\t LicensesComponent.prototype.expandLessChild = function (lic) {\r\n\t lic.icon = 'expand_less';\r\n\t };\r\n\t LicensesComponent.prototype.expandMoreChild = function (lic) {\r\n\t lic.icon = 'expand_more';\r\n\t };\r\n\t LicensesComponent.prototype.getLicensedIcon = function (enabled) {\r\n\t if (enabled) {\r\n\t return 'check_circle';\r\n\t }\r\n\t return 'cancel';\r\n\t };\r\n\t LicensesComponent.prototype.getLicensedIconColour = function (enabled) {\r\n\t if (enabled) {\r\n\t return 'rgb(29, 233, 182)';\r\n\t }\r\n\t return 'rgb(255, 23, 68)';\r\n\t };\r\n\t LicensesComponent.prototype.getInUseIcon = function (module) {\r\n\t if (module.enabled && module.inUse) {\r\n\t return 'check_circle';\r\n\t }\r\n\t else if (module.enabled && !module.detectedUse) {\r\n\t return 'radio_button_unchecked';\r\n\t }\r\n\t else {\r\n\t return 'cancel';\r\n\t }\r\n\t };\r\n\t LicensesComponent.prototype.showInUseTooltip = function (module) {\r\n\t if (module.enabled && !module.detectedUse) {\r\n\t return true;\r\n\t }\r\n\t return false;\r\n\t };\r\n\t LicensesComponent.prototype.getInUseIconColour = function (module) {\r\n\t if (module.enabled && module.inUse) {\r\n\t return 'rgb(29, 233, 182)';\r\n\t }\r\n\t else if (module.enabled && !module.detectedUse) {\r\n\t return '';\r\n\t }\r\n\t else {\r\n\t return 'rgb(255, 23, 68)';\r\n\t }\r\n\t };\r\n\t LicensesComponent.prototype.getIconColour = function (module) {\r\n\t if (module.enabled && module.inUse) {\r\n\t return 'rgb(29, 233, 182)';\r\n\t }\r\n\t else if (module.enabled && !module.detectedUse) {\r\n\t return 'rgb(255, 23, 68)';\r\n\t }\r\n\t else {\r\n\t return '';\r\n\t }\r\n\t };\r\n\t LicensesComponent.prototype.hideInUse = function () {\r\n\t if (this.auth.hasRole(auth_service_1.Role.Administrator) || this.auth.hasRole(auth_service_1.Role.EpicorEmployee)) {\r\n\t return false;\r\n\t }\r\n\t return true;\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], LicensesComponent.prototype, \"data\", null);\r\n\t LicensesComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'licenses',\r\n\t template: __webpack_require__(542),\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [auth_service_1.AuthService])\r\n\t ], LicensesComponent);\r\n\t return LicensesComponent;\r\n\t}());\r\n\texports.LicensesComponent = LicensesComponent;\r\n\n\n/***/ },\n/* 542 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n Licenses ({{_licenses?.length}})\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n Serial : {{lic?.serialNumber}} Companies({{lic?.assignedCompanies?.length}})\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Modules\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Module NameCodeLicensedIn Use
{{mod?.name}}{{mod?.moduleCode}}\\r\\n {{getLicensedIcon(mod.enabled)}}\\r\\n \\r\\n \\r\\n {{getInUseIcon(mod)}}\\r\\n \\r\\n {{getInUseIcon(mod)}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 543 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar PreUpgradeComponent = (function () {\r\n\t function PreUpgradeComponent() {\r\n\t this._preUpgrade = [];\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t Object.defineProperty(PreUpgradeComponent.prototype, \"data\", {\r\n\t get: function () { return this._preUpgrade; },\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t if (data.preUpgrade) {\r\n\t this._preUpgrade = data.preUpgrade;\r\n\t }\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t PreUpgradeComponent.prototype.toggle = function () {\r\n\t if (this.opened) {\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t else {\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], PreUpgradeComponent.prototype, \"data\", null);\r\n\t PreUpgradeComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'preUpgrade',\r\n\t template: __webpack_require__(544)\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [])\r\n\t ], PreUpgradeComponent);\r\n\t return PreUpgradeComponent;\r\n\t}());\r\n\texports.PreUpgradeComponent = PreUpgradeComponent;\r\n\n\n/***/ },\n/* 544 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
0\\\">\\r\\n 0) ? 'report-section-warning' : 'report-section'\\\" (click)=\\\"toggle()\\\">\\r\\n Pre Upgrade Check ({{_preUpgrade?.length}})\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
CompanyDescriptionCount
{{dataItem?.company}}{{dataItem?.name}}{{dataItem?.recordCount}}
\\r\\n
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 545 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar HealthChecksComponent = (function () {\r\n\t function HealthChecksComponent(dialog, viewContainerRef) {\r\n\t this.dialog = dialog;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this._healthChecks = [];\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t Object.defineProperty(HealthChecksComponent.prototype, \"data\", {\r\n\t get: function () { return this._healthChecks; },\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t if (data.healthChecks) {\r\n\t this._healthChecks = data.healthChecks;\r\n\t }\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t HealthChecksComponent.prototype.toggle = function () {\r\n\t if (this.opened) {\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t else {\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], HealthChecksComponent.prototype, \"data\", null);\r\n\t HealthChecksComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'healthChecks',\r\n\t template: __webpack_require__(546)\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialog,\r\n\t core_1.ViewContainerRef])\r\n\t ], HealthChecksComponent);\r\n\t return HealthChecksComponent;\r\n\t}());\r\n\texports.HealthChecksComponent = HealthChecksComponent;\r\n\n\n/***/ },\n/* 546 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
0\\\">\\r\\n \\r\\n Health Checks ({{_healthChecks?.length}})\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
IdTableDescription
{{healthCheck?.id}}{{healthCheck?.tableName}}{{healthCheck?.description}}
\\r\\n
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 547 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar DataConversionsComponent = (function () {\r\n\t function DataConversionsComponent() {\r\n\t this._conversions = [];\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t Object.defineProperty(DataConversionsComponent.prototype, \"data\", {\r\n\t get: function () { return this._conversions; },\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t if (data.conversionsRunLast12Months) {\r\n\t this._conversions = data.conversionsRunLast12Months;\r\n\t }\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t DataConversionsComponent.prototype.toggle = function () {\r\n\t if (this.opened) {\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t else {\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], DataConversionsComponent.prototype, \"data\", null);\r\n\t DataConversionsComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'data-conversions',\r\n\t template: __webpack_require__(548)\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [])\r\n\t ], DataConversionsComponent);\r\n\t return DataConversionsComponent;\r\n\t}());\r\n\texports.DataConversionsComponent = DataConversionsComponent;\r\n\n\n/***/ },\n/* 548 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
0\\\">\\r\\n\\r\\n Conversions Run Last 12 Months ({{_conversions?.length}})\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
SequenceDescriptionProgramLast Run
{{cl?.sequence}}{{cl?.description}}{{cl?.program}}{{cl?.lastRun | date:'MM/dd/yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 549 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar NonupgradableComponent = (function () {\r\n\t function NonupgradableComponent() {\r\n\t this._nonupgradable = [];\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t Object.defineProperty(NonupgradableComponent.prototype, \"data\", {\r\n\t get: function () { return this._nonupgradable; },\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t if (data.nonupgradable) {\r\n\t this._nonupgradable = data.nonupgradable;\r\n\t }\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t NonupgradableComponent.prototype.toggle = function () {\r\n\t if (this.opened) {\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t else {\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], NonupgradableComponent.prototype, \"data\", null);\r\n\t NonupgradableComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'nonupgradable',\r\n\t template: __webpack_require__(550)\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [])\r\n\t ], NonupgradableComponent);\r\n\t return NonupgradableComponent;\r\n\t}());\r\n\texports.NonupgradableComponent = NonupgradableComponent;\r\n\n\n/***/ },\n/* 550 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
0\\\">\\r\\n 0) ? 'report-section-error' : 'report-section'\\\">\\r\\n Non Upgradable ({{_nonupgradable?.length}})\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
IdDescription
{{dataItem?.id}}{{dataItem?.description}}
\\r\\n
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 551 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar ThirdPartyModuleComponent = (function () {\r\n\t function ThirdPartyModuleComponent() {\r\n\t this._thirdPartyModules = [];\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t Object.defineProperty(ThirdPartyModuleComponent.prototype, \"data\", {\r\n\t get: function () { return this._thirdPartyModules; },\r\n\t set: function (data) {\r\n\t if (data) {\r\n\t if (data.thirdPartyModules) {\r\n\t this._thirdPartyModules = data.thirdPartyModules;\r\n\t }\r\n\t }\r\n\t },\r\n\t enumerable: true,\r\n\t configurable: true\r\n\t });\r\n\t ThirdPartyModuleComponent.prototype.toggle = function () {\r\n\t if (this.opened) {\r\n\t this.opened = false;\r\n\t this.icon = 'expand_more';\r\n\t }\r\n\t else {\r\n\t this.opened = true;\r\n\t this.icon = 'expand_less';\r\n\t }\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object),\r\n\t __metadata(\"design:paramtypes\", [Object])\r\n\t ], ThirdPartyModuleComponent.prototype, \"data\", null);\r\n\t ThirdPartyModuleComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'thirdPartyModules',\r\n\t template: __webpack_require__(552)\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [])\r\n\t ], ThirdPartyModuleComponent);\r\n\t return ThirdPartyModuleComponent;\r\n\t}());\r\n\texports.ThirdPartyModuleComponent = ThirdPartyModuleComponent;\r\n\n\n/***/ },\n/* 552 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
0\\\">\\r\\n 0) ? 'report-section-warning' : 'report-section'\\\" (click)=\\\"toggle()\\\">\\r\\n Third Party Modules ({{_thirdPartyModules?.length}})\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Name
{{dataItem?.name}}
\\r\\n
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 553 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar dom_events_1 = __webpack_require__(329);\r\n\tvar conversions_service_1 = __webpack_require__(378);\r\n\tvar conversion_form_component_1 = __webpack_require__(554);\r\n\tvar CreateConversionComponent = (function () {\r\n\t function CreateConversionComponent(route, router, domEvents, conversionsService) {\r\n\t var _this = this;\r\n\t this.route = route;\r\n\t this.router = router;\r\n\t this.domEvents = domEvents;\r\n\t this.conversionsService = conversionsService;\r\n\t this.conversionFormAction = conversion_form_component_1.ConversionFormAction;\r\n\t this.submitting = false;\r\n\t this.route.params.subscribe(function (params) {\r\n\t _this.siteId = +params['siteId'];\r\n\t });\r\n\t }\r\n\t CreateConversionComponent.prototype.ngOnInit = function () {\r\n\t this.domEvents.triggerOnDocument('appready');\r\n\t };\r\n\t CreateConversionComponent.prototype.onSubmit = function (conversionData) {\r\n\t var _this = this;\r\n\t if (conversionData) {\r\n\t this.submitting = true;\r\n\t this.conversionsService.createConversion(conversionData).subscribe(function (conversion) {\r\n\t _this.submitting = false;\r\n\t if (conversion) {\r\n\t _this.router.navigateByUrl(\"/sites/\" + conversionData.siteId + \"/conversions/\" + conversion.id);\r\n\t }\r\n\t }, function (err) {\r\n\t _this.submitting = false;\r\n\t });\r\n\t }\r\n\t };\r\n\t CreateConversionComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'create-conversion',\r\n\t template: __webpack_require__(563),\r\n\t providers: [conversions_service_1.ConversionsService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [router_1.ActivatedRoute,\r\n\t router_1.Router,\r\n\t dom_events_1.DOMEvents,\r\n\t conversions_service_1.ConversionsService])\r\n\t ], CreateConversionComponent);\r\n\t return CreateConversionComponent;\r\n\t}());\r\n\texports.CreateConversionComponent = CreateConversionComponent;\r\n\n\n/***/ },\n/* 554 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar forms_1 = __webpack_require__(50);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar sites_service_1 = __webpack_require__(371);\r\n\tvar conversions_service_1 = __webpack_require__(378);\r\n\tvar region_service_1 = __webpack_require__(391);\r\n\tvar users_service_1 = __webpack_require__(333);\r\n\tvar reports_service_1 = __webpack_require__(355);\r\n\tvar product_service_1 = __webpack_require__(555);\r\n\tvar conversion_configuration_dialog_1 = __webpack_require__(556);\r\n\tvar string_pipe_1 = __webpack_require__(368);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar timezone_1 = __webpack_require__(559);\r\n\tvar mock_timezones_1 = __webpack_require__(560);\r\n\tvar zone_service_1 = __webpack_require__(394);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar ConversionFormComponent = (function () {\r\n\t function ConversionFormComponent(router, dialog, viewContainerRef, sitesService, conversionsService, regionService, productService, usersService, elementRef, zoneServices, auth, reportsService) {\r\n\t this.router = router;\r\n\t this.dialog = dialog;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.sitesService = sitesService;\r\n\t this.conversionsService = conversionsService;\r\n\t this.regionService = regionService;\r\n\t this.productService = productService;\r\n\t this.usersService = usersService;\r\n\t this.elementRef = elementRef;\r\n\t this.zoneServices = zoneServices;\r\n\t this.auth = auth;\r\n\t this.reportsService = reportsService;\r\n\t this.onSubmit = new core_1.EventEmitter();\r\n\t this.myDatePickerOptions = {\r\n\t dateFormat: 'yyyy-mm-dd',\r\n\t inline: false,\r\n\t markCurrentDay: true,\r\n\t openSelectorOnInputClick: true\r\n\t };\r\n\t this.formLoaded = false;\r\n\t this.removeWhiteSpace = new string_pipe_1.RemoveWhiteSpacePipe();\r\n\t this.users = [];\r\n\t this.doesCustomerSpecificFileExist = false;\r\n\t this.loadingCSF = true;\r\n\t this.csfUOMAvailable = false;\r\n\t this.csfScriptAvailable = false;\r\n\t this.proceedSubmit = false;\r\n\t this.isLoading = true;\r\n\t this.isNotificationEmailsValid = true;\r\n\t this.initFromProduct = \"\";\r\n\t this.initFromVersion = \"\";\r\n\t this.initToProduct = \"\";\r\n\t this.initToVersion = \"\";\r\n\t this.region = \"\";\r\n\t this.regionDisable = true;\r\n\t this.conversion = {\r\n\t siteId: null,\r\n\t siteName: null,\r\n\t live: false,\r\n\t status: null,\r\n\t configuration: {\r\n\t fromProduct: null,\r\n\t toProduct: null,\r\n\t conversionProcess: 'Cloud Converter',\r\n\t fromVersion: null,\r\n\t toVersion: null,\r\n\t conversionType: 'Upgrade',\r\n\t deployment: null,\r\n\t goLiveDate: null,\r\n\t enableDbPacker: false,\r\n\t enableCloudView: false,\r\n\t enableSendToSupport: true,\r\n\t dbBackupLocation: null,\r\n\t region: null,\r\n\t passesLimit: null,\r\n\t advanced: {\r\n\t toolingVersion: 'Latest',\r\n\t vmSize: 'Standard_DS13_V2',\r\n\t diskSize: '512GB',\r\n\t historicalTransactionDays: 365,\r\n\t UOMTemplate: null,\r\n\t shutdownAfter: 72,\r\n\t deleteAfter: 120\r\n\t },\r\n\t notificationEmails: null,\r\n\t projectCode: null,\r\n\t plannedDate: null,\r\n\t plannedTimezone: null,\r\n\t goLivePass: false,\r\n\t assignedUser: null,\r\n\t projectType: null,\r\n\t csfs: null,\r\n\t sendEmail: false,\r\n\t databaseVerification: false,\r\n\t owningCompanyID: null,\r\n\t owningCompanyName: null\r\n\t },\r\n\t uom: {\r\n\t Xml: null,\r\n\t Spreadsheet: null\r\n\t }\r\n\t };\r\n\t this.regions = [];\r\n\t this.productNames = [];\r\n\t this.fromVersions = [];\r\n\t this.toVersions = [];\r\n\t this.gaVersions = [];\r\n\t this.conversionProcess = this.conversionsService.getConversionProcessTypes();\r\n\t this.conversionType = this.conversionsService.getConversionTypes();\r\n\t this.deployment = this.conversionsService.getConversionDeploymentTypes();\r\n\t this.projectType = this.conversionsService.getConversionProjectTypes();\r\n\t this.toolingVersions = [];\r\n\t this.displayUOMFiles = false;\r\n\t this.uomFiles = [];\r\n\t this.verifyingUOMFiles = false;\r\n\t this.regionChanged = true;\r\n\t this.initRegionValue = \"\";\r\n\t this.currentRegionValue = \"\";\r\n\t this.remainingPasses = -1;\r\n\t this.txtremainingPasses = \"\";\r\n\t this.createConversion = false;\r\n\t this.isDirty = false;\r\n\t this.totalPassesRan = 0;\r\n\t this.hideDatabaseVerification = true;\r\n\t this.currentMappingType = \"\";\r\n\t this.selectedMappingType = \"\";\r\n\t this.previouslySelectedMappingType = \"\";\r\n\t this.editUOMMapping = false;\r\n\t this.confirmMapping = false;\r\n\t this.validatingUOMFile = false;\r\n\t this.uomFileValid = false;\r\n\t this.uomFileValidationMessage = \"\";\r\n\t this.timezones = mock_timezones_1.TIMEZONES;\r\n\t this.planTimeZone = new timezone_1.Timezone();\r\n\t this.planDate = null;\r\n\t this.planTime = null;\r\n\t this.restrictedSite = true;\r\n\t this.zoneRegions = [];\r\n\t this.toVersionsFiltered = [];\r\n\t this.companyDisable = false;\r\n\t this.owningCompanyDisable = true;\r\n\t this.searchText = \"\";\r\n\t this.goLiveUsers = [];\r\n\t }\r\n\t ConversionFormComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.getUsers();\r\n\t this.getCloudConverterToolingVersions();\r\n\t this.getProducts();\r\n\t if (this.action == 0)\r\n\t this.regionDisable = false;\r\n\t this.conversionsService.getSiteConversions(this.id).subscribe(function (conversions) {\r\n\t if (conversions.filter(function (x) { return x.status === 0; }).length > 0) {\r\n\t _this.router.navigate(['/login']);\r\n\t }\r\n\t });\r\n\t if (this.action == ConversionFormAction.Edit) {\r\n\t this.conversionsService.getRemainingPasses(this.id).subscribe(function (remainingPasses) {\r\n\t if (typeof remainingPasses === \"number\") {\r\n\t _this.remainingPasses = remainingPasses;\r\n\t }\r\n\t else {\r\n\t _this.remainingPasses = 0;\r\n\t }\r\n\t });\r\n\t }\r\n\t if (this.action == ConversionFormAction.Create) {\r\n\t this.goLivePassSelected = false;\r\n\t this.conversion.configuration.enableDbPacker = true;\r\n\t this.conversion.configuration.enableSendToSupport = true;\r\n\t }\r\n\t this.setTotalPassesRan();\r\n\t };\r\n\t ConversionFormComponent.prototype.getCloudConverterToolingVersions = function () {\r\n\t var _this = this;\r\n\t this.conversionsService.getCloudConverterToolingVersions().subscribe(function (versions) {\r\n\t _this.toolingVersions = versions;\r\n\t });\r\n\t };\r\n\t ConversionFormComponent.prototype.getUsers = function () {\r\n\t var _this = this;\r\n\t this.usersService.getUsersInRoles([\"Administrator\", \"EpicorEmployee\"]).subscribe(function (users) {\r\n\t _this.users = users;\r\n\t _this.goLiveUsers = _this.users;\r\n\t });\r\n\t };\r\n\t ConversionFormComponent.prototype.getRegions = function () {\r\n\t var _this = this;\r\n\t this.regionService.getRegions().subscribe(function (regions) {\r\n\t _this.regions = regions;\r\n\t });\r\n\t };\r\n\t ConversionFormComponent.prototype.getOwningCompanies = function (siteId) {\r\n\t var _this = this;\r\n\t this.reportsService.getOwningCompanies(siteId).subscribe(function (companyDetails) {\r\n\t _this.companies = companyDetails.companies;\r\n\t if (companyDetails.companies == null) {\r\n\t _this.owningCompanyDisable = true;\r\n\t _this.conversion.configuration.owningCompanyID = null;\r\n\t _this.conversion.configuration.owningCompanyName = null;\r\n\t }\r\n\t else {\r\n\t _this.owningCompanyDisable = false;\r\n\t if (companyDetails.companies.length == 1)\r\n\t _this.companyDisable = true;\r\n\t if (companyDetails.companies.length >= 1) {\r\n\t if (_this.conversion.configuration.owningCompanyID == null && companyDetails.companies.length > 0) {\r\n\t _this.conversion.configuration.owningCompanyID = _this.companies[0].CompanyID;\r\n\t _this.conversion.configuration.owningCompanyName = _this.companies[0].Name;\r\n\t }\r\n\t }\r\n\t }\r\n\t });\r\n\t };\r\n\t ConversionFormComponent.prototype.getProducts = function () {\r\n\t var _this = this;\r\n\t this.productService.getProducts().subscribe(function (products) {\r\n\t _this.products = products;\r\n\t _this.productNames = _this.products.map(function (p) { return p.name; });\r\n\t if (typeof _this.id === \"number\") {\r\n\t _this.getPassesLimit();\r\n\t _this.loadingCSF = false;\r\n\t _this.sitesService.getReportAndSiteDetails(_this.id).subscribe(function (conversion) {\r\n\t _this.isLoading = false,\r\n\t _this.conversion.siteId = conversion.siteId,\r\n\t _this.conversion.siteName = conversion.siteName;\r\n\t _this.conversion.configuration.region = conversion.region;\r\n\t _this.getSite(_this.conversion.siteId);\r\n\t _this.getOwningCompanies(_this.conversion.siteId);\r\n\t if (_this.conversion.configuration.advanced.UOMTemplate == null) {\r\n\t _this.conversion.configuration.advanced.UOMTemplate = (_this.conversion.configuration.region == \"eastus\" || _this.conversion.configuration.region == \"westus\") ? \"US\" : \"Metric\";\r\n\t }\r\n\t _this.previouslySelectedMappingType = _this.selectedMappingType = _this.currentMappingType = _this.conversion.configuration.advanced.UOMTemplate;\r\n\t _this.conversion.status = \"NotStarted\";\r\n\t if (conversion.environment !== null) {\r\n\t _this.conversion.configuration.fromProduct = _this.getProductFromReport(conversion.environment.softwareAndPlatform.name);\r\n\t _this.setFromVersions(_this.conversion.configuration.fromProduct, conversion.environment.softwareAndPlatform.productVersion);\r\n\t _this.conversion.configuration.fromVersion = conversion.environment.softwareAndPlatform.productVersion;\r\n\t }\r\n\t }, function (err) {\r\n\t _this.isLoading = false;\r\n\t });\r\n\t }\r\n\t if (typeof _this.id === \"string\") {\r\n\t _this.conversionsService.getConversion(_this.id).subscribe(function (conversion) {\r\n\t _this.isLoading = false;\r\n\t _this.conversion.siteId = conversion.siteId;\r\n\t _this.conversion.siteName = conversion.siteName;\r\n\t _this.conversion.live = conversion.live;\r\n\t _this.conversion.status = conversion.status;\r\n\t _this.conversion.configuration = conversion.configuration;\r\n\t _this.region = conversion.configuration.region;\r\n\t _this.getSite(_this.conversion.siteId);\r\n\t if (_this.conversion.configuration.advanced === null) {\r\n\t _this.conversion.configuration.advanced = {\r\n\t toolingVersion: 'Latest',\r\n\t vmSize: 'Standard_DS13_V2',\r\n\t diskSize: '512GB',\r\n\t historicalTransactionDays: 365,\r\n\t UOMTemplate: null,\r\n\t shutdownAfter: 72,\r\n\t deleteAfter: 120\r\n\t };\r\n\t }\r\n\t _this.setFromVersions(conversion.configuration.fromProduct, conversion.configuration.fromVersion);\r\n\t _this.setToVersions(conversion.configuration.toProduct, conversion.configuration.toVersion, 'load');\r\n\t _this.setProductName(conversion.configuration.fromProduct, conversion.configuration.toProduct);\r\n\t _this.initFromProduct = _this.conversion.configuration.fromProduct;\r\n\t _this.initFromVersion = _this.conversion.configuration.fromVersion;\r\n\t _this.initToProduct = _this.conversion.configuration.toProduct;\r\n\t _this.initToVersion = _this.conversion.configuration.toVersion;\r\n\t _this.initConversionInfo = _this.currentProduct + conversion.configuration.fromVersion + \"-\" + _this.currentProduct + conversion.configuration.toVersion;\r\n\t _this.conversionsService.getCustomerSpecificDetails(_this.conversion.siteId, _this.region, _this.currentProduct + conversion.configuration.fromVersion, _this.currentProduct + conversion.configuration.toVersion).subscribe(function (result) {\r\n\t _this.loadingCSF = false;\r\n\t _this.conversion.configuration.csfs = result;\r\n\t if (_this.conversion.configuration.csfs != null) {\r\n\t var csfs = [].concat(_this.conversion.configuration.csfs);\r\n\t if (csfs.length > 0 && typeof csfs[0] == \"string\") {\r\n\t csfs.forEach(function (x) {\r\n\t if (x.endsWith(\".xlsx\")) {\r\n\t _this.csfUOMAvailable = true;\r\n\t }\r\n\t });\r\n\t csfs.forEach(function (x) {\r\n\t if (!x.endsWith(\".xlsx\")) {\r\n\t _this.csfScriptAvailable = true;\r\n\t }\r\n\t });\r\n\t }\r\n\t }\r\n\t if (result.length != undefined)\r\n\t _this.doesCustomerSpecificFileExist = true;\r\n\t else\r\n\t _this.doesCustomerSpecificFileExist = false;\r\n\t _this.regionDisable = false;\r\n\t });\r\n\t _this.verifyUOMExists(_this.conversion.siteId, _this.conversion.configuration.fromVersion, _this.conversion.configuration.region);\r\n\t _this.getOwningCompanies(_this.conversion.siteId);\r\n\t _this.dateFieldChanged();\r\n\t if (_this.action == ConversionFormAction.Edit) {\r\n\t _this.editConversionOnLoad();\r\n\t }\r\n\t if (_this.conversion.configuration.deployment == 'DT SaaS')\r\n\t _this.conversion.configuration.deployment = 'Epicor ERP Public Cloud';\r\n\t if (_this.conversion.configuration.goLivePass)\r\n\t _this.goLivePassSelected = true;\r\n\t else\r\n\t _this.goLivePassSelected = false;\r\n\t sessionStorage.setItem('initConversion', JSON.stringify(Object.assign({}, _this.conversion)));\r\n\t sessionStorage.removeItem('isDirty');\r\n\t sessionStorage.removeItem('isDirtyAdvanced');\r\n\t });\r\n\t }\r\n\t if (_this.action == ConversionFormAction.Create) {\r\n\t _this.toolbarTitle = \"Create Conversion\";\r\n\t _this.createConversion = true;\r\n\t _this.goLivePassSelected = false;\r\n\t _this.setDatabaseVerificationFlag();\r\n\t }\r\n\t if (_this.action == ConversionFormAction.Edit) {\r\n\t _this.toolbarTitle = \"Edit Conversion\";\r\n\t _this.createConversion = false;\r\n\t }\r\n\t _this.formLoaded = true;\r\n\t });\r\n\t };\r\n\t ConversionFormComponent.prototype.filterUsers = function () {\r\n\t var _this = this;\r\n\t if (this.searchText == '')\r\n\t this.goLiveUsers = this.users;\r\n\t else {\r\n\t this.goLiveUsers = this.users.filter(function (user) { return user.emailAddress.toLowerCase().match(_this.searchText.toLowerCase()); });\r\n\t }\r\n\t return this.goLiveUsers;\r\n\t };\r\n\t ConversionFormComponent.prototype.onFileChange = function (event, type) {\r\n\t var _this = this;\r\n\t var reader = new FileReader();\r\n\t if (event.target.files && event.target.files.length > 0) {\r\n\t var file_1 = event.target.files[0];\r\n\t reader.readAsDataURL(file_1);\r\n\t reader.onload = function () {\r\n\t _this.conversion.uom[type] = {\r\n\t fileName: file_1.name,\r\n\t fileType: file_1.type,\r\n\t value: reader.result.split(',')[1]\r\n\t };\r\n\t _this.uomFileValid = false;\r\n\t _this.validatingUOMFile = true;\r\n\t _this.conversionsService.validateUomMappingFile(_this.conversion).subscribe(function (d) {\r\n\t _this.validatingUOMFile = false;\r\n\t _this.uomFileValid = d.valid;\r\n\t _this.uomFileValidationMessage = d.error;\r\n\t }, function (err) { _this.validatingUOMFile = false; _this.uomFileValid = false; });\r\n\t };\r\n\t }\r\n\t };\r\n\t ConversionFormComponent.prototype.getPassesLimit = function () {\r\n\t var _this = this;\r\n\t this.conversionsService.getConversionPassesLimitDefault().subscribe(function (passesLimit) {\r\n\t _this.conversion.configuration.passesLimit = passesLimit;\r\n\t });\r\n\t };\r\n\t ConversionFormComponent.prototype.getSite = function (siteId) {\r\n\t var _this = this;\r\n\t this.isLoading = true;\r\n\t this.sitesService.getSite(siteId).subscribe(function (site) {\r\n\t _this.site = site;\r\n\t _this.isLoading = false;\r\n\t _this.setZoneRegions();\r\n\t _this.restrictedSite = _this.site.restricted;\r\n\t _this.conversion.configuration.enableCloudView = _this.site.restricted ? false : _this.conversion.configuration.enableCloudView;\r\n\t }, function (err) { _this.isLoading = false; });\r\n\t };\r\n\t ConversionFormComponent.prototype.onRegionChange = function (conversion) {\r\n\t var _this = this;\r\n\t if (this.currentMappingType == \"Metric\" || this.currentMappingType == \"US\" || this.currentMappingType == \"\") {\r\n\t this.conversion.configuration.advanced.UOMTemplate = (this.conversion.configuration.region == \"eastus\" || this.conversion.configuration.region == \"westus\") ? \"US\" : \"Metric\";\r\n\t this.selectedMappingType = this.currentMappingType = this.conversion.configuration.advanced.UOMTemplate;\r\n\t }\r\n\t var initRegion = this.region;\r\n\t var currentRegion = conversion.region;\r\n\t var tempInitRegion = this.regions.filter(function (region) { return region.value == initRegion; });\r\n\t this.initRegionValue = tempInitRegion[0].key;\r\n\t var tempCurrentRegion = this.regions.filter(function (region) { return region.value == currentRegion; });\r\n\t this.currentRegionValue = tempCurrentRegion[0].key;\r\n\t this.setProductName(this.initFromProduct, this.initToProduct);\r\n\t var initConversionInfo = this.currentProduct + this.initFromVersion + \"-\" + this.currentProduct + this.initToVersion;\r\n\t this.regionChanged = false;\r\n\t if (this.doesCustomerSpecificFileExist == true) {\r\n\t if (this.region != conversion.region) {\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.warningDialogRef = this.dialog.open(AlertMessageDialog, config);\r\n\t var customerSpecificInfo = {\r\n\t initConversionInfo: initConversionInfo,\r\n\t initRegion: this.initRegionValue,\r\n\t currentRegion: this.currentRegionValue,\r\n\t submitFlag: false\r\n\t };\r\n\t this.warningDialogRef.componentInstance.render(customerSpecificInfo);\r\n\t this.warningDialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.proceedSubmit = _this.warningDialogRef.componentInstance.proceedSubmit;\r\n\t if (!_this.proceedSubmit) {\r\n\t _this.conversion.configuration.region = initRegion;\r\n\t _this.regionChanged = false;\r\n\t }\r\n\t else\r\n\t _this.regionChanged = true;\r\n\t _this.warningDialogRef = null;\r\n\t });\r\n\t }\r\n\t }\r\n\t this.fieldChanged();\r\n\t };\r\n\t ConversionFormComponent.prototype.openAdvancedConfiguration = function () {\r\n\t if (this.conversion.configuration.advanced) {\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.dialogRef = this.dialog.open(conversion_configuration_dialog_1.ConversionConfigurationDialog, config);\r\n\t this.dialogRef.componentInstance.toolingVersions = this.toolingVersions;\r\n\t this.dialogRef.componentInstance.vmSizes = this.conversionsService.getVMSizes();\r\n\t this.dialogRef.componentInstance.diskSizes = this.conversionsService.getDiskSizes();\r\n\t this.dialogRef.componentInstance.advanced = this.conversion.configuration.advanced;\r\n\t this.dialogRef.componentInstance.fromVersion = this.conversion.configuration.fromVersion;\r\n\t }\r\n\t };\r\n\t ConversionFormComponent.prototype.setFromVersions = function (fromProduct, fromVersion) {\r\n\t if (fromProduct != null && fromProduct != '') {\r\n\t var product = this.products.filter(function (p) {\r\n\t if (p.name === fromProduct) {\r\n\t return p;\r\n\t }\r\n\t });\r\n\t if (product.length === 1) {\r\n\t this.fromVersions = product[0].fromVersions;\r\n\t this.fromVersions.pop();\r\n\t if (fromVersion == null) {\r\n\t this.conversion.configuration.fromVersion = this.fromVersions[0];\r\n\t if (this.conversion.configuration.fromVersion.startsWith(\"8.\")) {\r\n\t this.verifyUOMExists(this.conversion.siteId, this.conversion.configuration.fromVersion, this.conversion.configuration.region);\r\n\t }\r\n\t }\r\n\t }\r\n\t }\r\n\t else {\r\n\t this.fromVersions = [];\r\n\t }\r\n\t };\r\n\t ConversionFormComponent.prototype.verifyUOMExists = function (siteId, fromVersion, region) {\r\n\t var _this = this;\r\n\t var sourceVersion = \"8.03.410\";\r\n\t var sourceVersionParts = sourceVersion.split('.');\r\n\t var sourceVersionMajor = +sourceVersionParts[0];\r\n\t var sourceVersionMinor = +sourceVersionParts[1];\r\n\t var versionParts = fromVersion.split('.');\r\n\t var major = +versionParts[0];\r\n\t var minor = +versionParts[1];\r\n\t if (major <= sourceVersionMajor && minor <= sourceVersionMinor) {\r\n\t this.displayUOMFiles = true;\r\n\t this.verifyingUOMFiles = true;\r\n\t this.conversionsService.verifyUOMExists(siteId, region).subscribe(function (files) {\r\n\t _this.uomFiles = files;\r\n\t _this.currentMappingType = _this.conversion.configuration.advanced.UOMTemplate;\r\n\t _this.uomFiles.forEach(function (x) { if (x.exists) {\r\n\t _this.currentMappingType = x.fileType;\r\n\t } });\r\n\t _this.uomFiles.forEach(function (x) { if (x.exists) {\r\n\t x.lastModifiedDate = _this.getLocalDateString(x.lastModifiedDate);\r\n\t } });\r\n\t _this.previouslySelectedMappingType = _this.selectedMappingType = _this.currentMappingType;\r\n\t _this.verifyingUOMFiles = false;\r\n\t _this.editUOMMapping = false;\r\n\t }, function (err) { return _this.verifyingUOMFiles = false; });\r\n\t }\r\n\t else {\r\n\t this.displayUOMFiles = false;\r\n\t }\r\n\t };\r\n\t ConversionFormComponent.prototype.getLocalDateString = function (dateString) {\r\n\t var date = new Date(dateString);\r\n\t return date.getFullYear() + \"-\" +\r\n\t (\"00\" + (date.getMonth() + 1)).slice(-2) + \"-\" +\r\n\t (\"00\" + date.getDate()).slice(-2) + \" \" +\r\n\t (\"00\" + date.getHours()).slice(-2) + \":\" +\r\n\t (\"00\" + date.getMinutes()).slice(-2);\r\n\t };\r\n\t ConversionFormComponent.prototype.downloadUOMFile = function (siteId, region, type) {\r\n\t var _this = this;\r\n\t var uri = null;\r\n\t this.uomFiles.forEach(function (x) { if (x.exists) {\r\n\t uri = x.uri;\r\n\t } });\r\n\t if (uri) {\r\n\t this.conversionsService.createUnitOfMeasureDownloadToken(uri).subscribe(function (result) {\r\n\t var sas = result.sas;\r\n\t _this.conversionsService.downloadUnitOfMeasures(uri, sas);\r\n\t });\r\n\t }\r\n\t };\r\n\t ConversionFormComponent.prototype.selectMappingType = function (event) {\r\n\t var _this = this;\r\n\t this.confirmMapping = false;\r\n\t this.conversion.uom[\"Xml\"] = null;\r\n\t this.conversion.uom[\"Spreadsheet\"] = null;\r\n\t this.uomFileValid = false;\r\n\t this.uomFileValidationMessage = \"\";\r\n\t if (this.currentMappingType == \"Xml\" || this.currentMappingType == \"Spreadsheet\") {\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.uomMappingChangeConfirmationDialogRef = this.dialog.open(UomMappingChangeConfirmationDialog, config);\r\n\t this.uomMappingChangeConfirmationDialogRef.componentInstance.render(this.currentMappingType, this.selectedMappingType);\r\n\t this.uomMappingChangeConfirmationDialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.confirmMapping = _this.uomMappingChangeConfirmationDialogRef.componentInstance.confirm;\r\n\t if (_this.confirmMapping && _this.previouslySelectedMappingType != event) {\r\n\t _this.selectedMappingType = event;\r\n\t _this.previouslySelectedMappingType = event;\r\n\t }\r\n\t else {\r\n\t _this.selectedMappingType = _this.previouslySelectedMappingType;\r\n\t }\r\n\t _this.uomMappingChangeConfirmationDialogRef = null;\r\n\t });\r\n\t }\r\n\t };\r\n\t ConversionFormComponent.prototype.toggleUOMMapping = function () {\r\n\t this.editUOMMapping = !this.editUOMMapping;\r\n\t this.uomFileValid = false;\r\n\t this.uomFileValidationMessage = \"\";\r\n\t };\r\n\t ConversionFormComponent.prototype.setToVersions = function (toProduct, toVersion, event) {\r\n\t var _this = this;\r\n\t var versionFound = false;\r\n\t if (toProduct != null && toProduct != '') {\r\n\t var product = this.products.filter(function (p) {\r\n\t if (p.name === toProduct) {\r\n\t return p;\r\n\t }\r\n\t });\r\n\t if (product.length === 1) {\r\n\t this.toVersions = product[0].toVersions;\r\n\t this.gaVersions = product[0].gaVersions;\r\n\t if (this.conversion.configuration.deployment == 'On Premise') {\r\n\t var gaVersionList = [];\r\n\t for (var toV in this.toVersions) {\r\n\t for (var gaV in this.gaVersions) {\r\n\t if (this.toVersions[toV].indexOf(this.gaVersions[gaV]) !== -1) {\r\n\t gaVersionList.push(this.toVersions[toV]);\r\n\t }\r\n\t }\r\n\t }\r\n\t this.toVersions = gaVersionList;\r\n\t }\r\n\t this.compareProductVersions(this.conversion.configuration.fromVersion);\r\n\t if (this.conversion.configuration.toVersion != null) {\r\n\t if (this.initToVersion == '')\r\n\t this.initToVersion = this.conversion.configuration.toVersion;\r\n\t var result = this.toVersionsFiltered.find(function (v) { return v == _this.initToVersion; });\r\n\t if (result != null) {\r\n\t versionFound = true;\r\n\t toVersion = this.initToVersion;\r\n\t this.conversion.configuration.toVersion = this.initToVersion;\r\n\t }\r\n\t if (versionFound == false) {\r\n\t toVersion = this.toVersionsFiltered[0];\r\n\t this.conversion.configuration.toVersion = toVersion;\r\n\t }\r\n\t }\r\n\t if (toVersion == null) {\r\n\t this.conversion.configuration.toVersion = this.toVersionsFiltered[0];\r\n\t }\r\n\t }\r\n\t }\r\n\t else {\r\n\t this.toVersions = [];\r\n\t this.toVersionsFiltered = [];\r\n\t }\r\n\t if (event != 'load')\r\n\t this.setDatabaseVerificationFlag();\r\n\t };\r\n\t ConversionFormComponent.prototype.editConversionOnLoad = function () {\r\n\t if (this.auth.hasPermission(auth_service_1.Permission.DatabaseVerification)\r\n\t && this.conversion.configuration.fromVersion.startsWith('10.') == true)\r\n\t this.hideDatabaseVerification = false;\r\n\t else\r\n\t this.hideDatabaseVerification = true;\r\n\t };\r\n\t ConversionFormComponent.prototype.setDatabaseVerificationFlag = function () {\r\n\t if (this.conversion.configuration.fromVersion != null &&\r\n\t this.conversion.configuration.fromVersion.startsWith('10.') == true) {\r\n\t this.conversion.configuration.databaseVerification = true;\r\n\t if (this.auth.hasPermission(auth_service_1.Permission.DatabaseVerification) == true)\r\n\t this.hideDatabaseVerification = false;\r\n\t else\r\n\t this.hideDatabaseVerification = true;\r\n\t }\r\n\t else {\r\n\t this.conversion.configuration.databaseVerification = false;\r\n\t this.hideDatabaseVerification = true;\r\n\t }\r\n\t };\r\n\t ConversionFormComponent.prototype.setZoneRegions = function () {\r\n\t var _this = this;\r\n\t this.siteZone = this.site.zoneId;\r\n\t this.zoneServices.getZoneRegions(this.siteZone).subscribe(function (regions) {\r\n\t _this.zoneRegions = regions;\r\n\t });\r\n\t };\r\n\t ConversionFormComponent.prototype.getNotificationEmailsCount = function () {\r\n\t if (this.conversion.configuration.notificationEmails) {\r\n\t return this.conversion.configuration.notificationEmails.split(';').length;\r\n\t }\r\n\t return 0;\r\n\t };\r\n\t ConversionFormComponent.prototype.validateEmails = function () {\r\n\t if (this.conversion.configuration.notificationEmails) {\r\n\t this.conversion.configuration.notificationEmails = this.removeWhiteSpace.transform(this.conversion.configuration.notificationEmails);\r\n\t }\r\n\t };\r\n\t ConversionFormComponent.prototype.clearPlannedDate = function () {\r\n\t this.conversion.configuration.plannedDate = null;\r\n\t this.planDate = null;\r\n\t this.planTime = null;\r\n\t this.planTimeZone = null;\r\n\t this.plannedDateTime();\r\n\t };\r\n\t ConversionFormComponent.prototype.isNullOrEmpty = function (val) {\r\n\t if (val == null || val == \"\") {\r\n\t return true;\r\n\t }\r\n\t return false;\r\n\t };\r\n\t ConversionFormComponent.prototype.submit = function () {\r\n\t var _this = this;\r\n\t if (this.action == ConversionFormAction.Edit && this.remainingPasses <= 0) {\r\n\t if (!confirm(\"This conversion configuration has zero passes remaining.\\nThe customer will not be able to initiate a new upgrade pass.\\nPress OK to save the configuration,\\n or Cancel if you would like to update the number of passes remaining\")) {\r\n\t return;\r\n\t }\r\n\t }\r\n\t if (this.createConversion && this.conversion.configuration.goLivePass) {\r\n\t alert(\"A successful test pass must be completed at the selected dot release prior to the go live.\");\r\n\t return;\r\n\t }\r\n\t if (this.editUOMMapping) {\r\n\t if ((this.selectedMappingType == 'Spreadsheet' && this.isNullOrEmpty(this.fileInputSpreadsheet.nativeElement.value))\r\n\t || (this.selectedMappingType == 'Xml' && this.isNullOrEmpty(this.fileInputXml.nativeElement.value))) {\r\n\t alert(\"Please choose the UOM mapping file\");\r\n\t return;\r\n\t }\r\n\t if ((this.selectedMappingType == 'Spreadsheet' && !this.isNullOrEmpty(this.fileInputSpreadsheet.nativeElement.value) && !this.uomFileValid)\r\n\t || (this.selectedMappingType == 'Xml' && !this.isNullOrEmpty(this.fileInputXml.nativeElement.value) && !this.uomFileValid)) {\r\n\t alert(\"UOM mapping file is invalid. Please correct the mapping file and reupload.\");\r\n\t return;\r\n\t }\r\n\t this.conversion.configuration.advanced.UOMTemplate = this.selectedMappingType;\r\n\t }\r\n\t else {\r\n\t this.conversion.uom[\"Xml\"] = null;\r\n\t this.conversion.uom[\"Spreadsheet\"] = null;\r\n\t }\r\n\t if (this.site.restricted && this.conversion.configuration.enableCloudView) {\r\n\t this.conversion.configuration.enableCloudView = false;\r\n\t }\r\n\t if ((this.initFromProduct != this.conversion.configuration.fromProduct ||\r\n\t this.initFromVersion != this.conversion.configuration.fromVersion ||\r\n\t this.initToProduct != this.conversion.configuration.toProduct ||\r\n\t this.initToVersion != this.conversion.configuration.toVersion) && this.doesCustomerSpecificFileExist) {\r\n\t var conversionPasses_1;\r\n\t var toVersion = this.conversion.configuration.toVersion;\r\n\t this.conversionsService.getLatestConversionPass(this.id).subscribe(function (data) {\r\n\t conversionPasses_1 = data;\r\n\t }, null, function () {\r\n\t var validPass;\r\n\t if (_this.conversion.configuration.goLivePass) {\r\n\t for (var _i = 0, conversionPasses_2 = conversionPasses_1; _i < conversionPasses_2.length; _i++) {\r\n\t var conv = conversionPasses_2[_i];\r\n\t if (_this.conversion.configuration.toVersion == conv.toVersion) {\r\n\t validPass = true;\r\n\t }\r\n\t }\r\n\t if (conversionPasses_1.length == 0 || !validPass) {\r\n\t alert('A successful test pass must be completed at the selected dot release prior to the go live.');\r\n\t return;\r\n\t }\r\n\t }\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = _this.viewContainerRef;\r\n\t _this.setProductName(_this.conversion.configuration.fromProduct, _this.conversion.configuration.toProduct);\r\n\t _this.currentConversionInfo = _this.currentProduct + _this.conversion.configuration.fromVersion + \"-\" + _this.currentProduct + _this.conversion.configuration.toVersion;\r\n\t var customerSpecificInfo = {\r\n\t initConversionInfo: _this.initConversionInfo,\r\n\t currentConversionInfo: _this.currentConversionInfo,\r\n\t regionChanged: _this.regionChanged,\r\n\t initRegion: _this.initRegionValue,\r\n\t currentRegion: _this.currentRegionValue,\r\n\t submitFlag: true\r\n\t };\r\n\t _this.warningDialogRef = _this.dialog.open(AlertMessageDialog, config);\r\n\t _this.warningDialogRef.componentInstance.render(customerSpecificInfo);\r\n\t _this.warningDialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.proceedSubmit = _this.warningDialogRef.componentInstance.proceedSubmit;\r\n\t if (_this.proceedSubmit)\r\n\t if (_this.ValidateNotificationEmails()) {\r\n\t _this.submitConfiguration();\r\n\t }\r\n\t else {\r\n\t alert(\"Invalid characters in notification email.\\nPlease correct and retry to submit.\");\r\n\t }\r\n\t else {\r\n\t _this.conversion.configuration.region = _this.region;\r\n\t _this.conversion.configuration.fromProduct = _this.initFromProduct;\r\n\t _this.conversion.configuration.fromVersion = _this.initFromVersion;\r\n\t _this.conversion.configuration.toVersion = _this.initToVersion;\r\n\t _this.conversion.configuration.toProduct = _this.initToProduct;\r\n\t }\r\n\t _this.warningDialogRef = null;\r\n\t });\r\n\t });\r\n\t }\r\n\t else {\r\n\t if (this.ValidateNotificationEmails()) {\r\n\t this.validateTestPass();\r\n\t }\r\n\t else {\r\n\t alert(\"Invalid characters in notification email.\\nPlease correct and retry to submit.\");\r\n\t }\r\n\t }\r\n\t };\r\n\t ConversionFormComponent.prototype.ValidateNotificationEmails = function () {\r\n\t var emailValid = true;\r\n\t if (this.getNotificationEmailsCount() == 0) {\r\n\t return emailValid;\r\n\t }\r\n\t var re = /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n\t var emails = this.conversion.configuration.notificationEmails.split(';');\r\n\t emails.forEach(function (mail) {\r\n\t if (!re.test(mail)) {\r\n\t emailValid = false;\r\n\t }\r\n\t });\r\n\t return emailValid;\r\n\t };\r\n\t ConversionFormComponent.prototype.setProductName = function (fromProduct, toProduct) {\r\n\t if ((fromProduct == \"Epicor ERP\" && toProduct == \"Epicor ERP\") || toProduct == \"Kinetic\") {\r\n\t this.currentProduct = \"ERP\";\r\n\t }\r\n\t };\r\n\t ConversionFormComponent.prototype.getProductFromReport = function (productName) {\r\n\t if (productName.match(/^Epicor([0-9]+)$/) || productName.match(/^ERP([0-9]+)$/)\r\n\t || productName.search(/mfgsys/) || productName.search(/mfgPilot/) || productName.search(/mfgTrain/)\r\n\t || productName.search(/Epicor/) || productName.search(/ERP/)) {\r\n\t return \"Epicor ERP\";\r\n\t }\r\n\t return null;\r\n\t };\r\n\t ConversionFormComponent.prototype.plannedDateTime = function () {\r\n\t if (this.planDate == null) {\r\n\t this.conversion.configuration.plannedDate = null;\r\n\t }\r\n\t else {\r\n\t var selectedDate = new Date(this.planDate.toString());\r\n\t var selectedTime = this.planTime;\r\n\t var selectedZone = this.planTimeZone.gmtAdjustment;\r\n\t var conversionDate = new Date();\r\n\t var year = selectedDate.getFullYear();\r\n\t var month = (selectedDate.getMonth() + 1).toString();\r\n\t var day = selectedDate.getDate().toString();\r\n\t if (selectedTime == null) {\r\n\t selectedTime = \"00:00\";\r\n\t }\r\n\t if (selectedZone == null) {\r\n\t selectedZone = \"+00:00\";\r\n\t }\r\n\t if (day.length == 1) {\r\n\t day = \"0\" + day;\r\n\t }\r\n\t if (month.length == 1) {\r\n\t month = \"0\" + month;\r\n\t }\r\n\t var selectedPlannedDate = year + \"-\" + month + \"-\" + day + \"T\" + selectedTime + \":00\";\r\n\t this.conversion.configuration.plannedDate = selectedPlannedDate;\r\n\t this.conversion.configuration.plannedTimezone = selectedZone;\r\n\t }\r\n\t };\r\n\t ConversionFormComponent.prototype.dateFieldChanged = function () {\r\n\t if (this.conversion.configuration.plannedDate == null) {\r\n\t this.planDate = null;\r\n\t this.planTime = null;\r\n\t this.planTimeZone = null;\r\n\t }\r\n\t else {\r\n\t this.planDate = this.conversion.configuration.plannedDate;\r\n\t var savedPlannedDate = new Date(this.conversion.configuration.plannedDate);\r\n\t var stringPlannedDate = this.conversion.configuration.plannedDate;\r\n\t var m = savedPlannedDate.getMinutes();\r\n\t var h = savedPlannedDate.getHours();\r\n\t var minutes = \"\";\r\n\t if (m == 0 || m.toString().length == 1) {\r\n\t minutes = \"0\" + m;\r\n\t this.planTime = h + \":\" + minutes;\r\n\t }\r\n\t else {\r\n\t minutes = m.toString();\r\n\t }\r\n\t if (h.toString().length == 1) {\r\n\t this.planTime = \"0\" + h + \":\" + minutes;\r\n\t }\r\n\t else {\r\n\t this.planTime = h + \":\" + minutes;\r\n\t }\r\n\t var timezone_2 = this.conversion.configuration.plannedTimezone;\r\n\t if (timezone_2 == null || timezone_2.includes(\"Z\")) {\r\n\t timezone_2 = \"+00:00\";\r\n\t }\r\n\t var savedTimezone = this.timezones.find(function (vtime) { return vtime.gmtAdjustment == timezone_2; });\r\n\t this.planTimeZone = savedTimezone;\r\n\t }\r\n\t };\r\n\t ConversionFormComponent.prototype.isVantage = function () {\r\n\t if (this.conversion.configuration.fromVersion) {\r\n\t return this.conversion.configuration.fromVersion.startsWith(\"8.\");\r\n\t }\r\n\t return false;\r\n\t };\r\n\t ConversionFormComponent.prototype.deleteConversion = function () {\r\n\t var _this = this;\r\n\t if (confirm(\"Are you sure you want to delete the conversion? This action cannot be undone later.\")) {\r\n\t this.conversionsService.deleteConversion(this.id).subscribe(function (res) {\r\n\t _this.router.navigate(['/sites/' + _this.conversion.siteId]);\r\n\t });\r\n\t }\r\n\t };\r\n\t ConversionFormComponent.prototype.setTotalPassesRan = function () {\r\n\t var _this = this;\r\n\t this.conversionsService.getConversionPassSummaries(null, null, this.id).subscribe(function (response) {\r\n\t _this.totalPassesRan = response.result.length;\r\n\t });\r\n\t };\r\n\t ConversionFormComponent.prototype.submitConfiguration = function () {\r\n\t var _this = this;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.configDialogRef = this.dialog.open(ConfigurationMessageDialog, config);\r\n\t this.configDialogRef.componentInstance.render(this.createConversion);\r\n\t this.configDialogRef.afterClosed().subscribe(function (result) {\r\n\t if (_this.configDialogRef.componentInstance.sendEmail == true)\r\n\t _this.conversion.configuration.sendEmail = true;\r\n\t else\r\n\t _this.conversion.configuration.sendEmail = false;\r\n\t if (_this.conversion.configuration.deployment == 'Epicor ERP Public Cloud')\r\n\t _this.conversion.configuration.deployment = 'DT SaaS';\r\n\t _this.onSubmit.emit(_this.conversion);\r\n\t });\r\n\t };\r\n\t ConversionFormComponent.prototype.validateTestPass = function () {\r\n\t var _this = this;\r\n\t if (!this.conversion.configuration['goLivePass'] || this.createConversion) {\r\n\t this.submitConfiguration();\r\n\t return;\r\n\t }\r\n\t if (!this.conversion.configuration.plannedDate && !this.conversion.configuration.plannedTimezone) {\r\n\t alert('You must enter the expected date and time the final cutover pass will begin.');\r\n\t return;\r\n\t }\r\n\t var conversionPasses;\r\n\t var toVersion = this.conversion.configuration.toVersion;\r\n\t this.conversionsService.getLatestConversionPass(this.id).subscribe(function (data) {\r\n\t conversionPasses = data;\r\n\t }, null, function () {\r\n\t var validPass;\r\n\t if (_this.conversion.configuration.goLivePass) {\r\n\t for (var _i = 0, conversionPasses_3 = conversionPasses; _i < conversionPasses_3.length; _i++) {\r\n\t var conv = conversionPasses_3[_i];\r\n\t if (_this.conversion.configuration.toVersion == conv.toVersion) {\r\n\t validPass = true;\r\n\t }\r\n\t }\r\n\t if (conversionPasses.length == 0 || !validPass) {\r\n\t alert('A successful test pass must be completed at the selected dot release prior to the go live.');\r\n\t return;\r\n\t }\r\n\t }\r\n\t _this.submitConfiguration();\r\n\t });\r\n\t };\r\n\t ConversionFormComponent.prototype.owningCompanyFieldChanged = function () {\r\n\t var _this = this;\r\n\t if (this.conversion.configuration.deployment != 'Epicor ERP Public Cloud'\r\n\t && this.conversion.configuration.deployment != 'Epicor ERP Government Cloud'\r\n\t && this.conversion.configuration.deployment != 'DT SaaS') {\r\n\t this.conversion.configuration.owningCompanyID = null;\r\n\t this.conversion.configuration.owningCompanyName = null;\r\n\t }\r\n\t else {\r\n\t if (this.companies != null) {\r\n\t if (this.conversion.configuration.owningCompanyID != null) {\r\n\t this.companies.filter(function (item) { return item.CompanyID == _this.conversion.configuration.owningCompanyID; }).forEach(function (element) {\r\n\t _this.conversion.configuration.owningCompanyID = element.CompanyID;\r\n\t _this.conversion.configuration.owningCompanyName = element.Name;\r\n\t });\r\n\t }\r\n\t else {\r\n\t this.conversion.configuration.owningCompanyID = this.companies[0].CompanyID;\r\n\t this.conversion.configuration.owningCompanyName = this.companies[0].Name;\r\n\t if (this.companies.length == 1)\r\n\t this.companyDisable = true;\r\n\t }\r\n\t }\r\n\t }\r\n\t };\r\n\t ConversionFormComponent.prototype.fieldChanged = function () {\r\n\t var _this = this;\r\n\t if (this.action == ConversionFormAction.Edit) {\r\n\t this.conversionsService.getRemainingPasses(this.id).subscribe(function (remainingPasses) {\r\n\t if (typeof remainingPasses === \"number\") {\r\n\t _this.remainingPasses = remainingPasses;\r\n\t }\r\n\t else {\r\n\t _this.remainingPasses = 0;\r\n\t }\r\n\t if (typeof _this.conversion.configuration.passesLimit === \"number\") {\r\n\t _this.txtremainingPasses = _this.conversion.configuration.passesLimit;\r\n\t }\r\n\t else {\r\n\t _this.txtremainingPasses = 0;\r\n\t }\r\n\t _this.remainingPasses = _this.txtremainingPasses - _this.totalPassesRan;\r\n\t if (_this.remainingPasses < 0) {\r\n\t _this.remainingPasses = 0;\r\n\t alert(\"Passes Limit is less than the Total Passes Already Executed: \" + _this.totalPassesRan + \" Passes Executed\");\r\n\t }\r\n\t });\r\n\t }\r\n\t var isDirty = false;\r\n\t var initConversion = JSON.parse(sessionStorage.getItem('initConversion'));\r\n\t if (initConversion != null) {\r\n\t for (var initalConversion in initConversion.configuration) {\r\n\t for (var currentConversion in this.conversion.configuration) {\r\n\t if (initalConversion == currentConversion && currentConversion != 'ProductPasswordMaxLength') {\r\n\t if (initalConversion == 'enableCloudView' || initalConversion == 'goLivePass')\r\n\t this.conversion.configuration[currentConversion] = this.conversion.configuration[currentConversion] == null ? false : this.conversion.configuration[currentConversion];\r\n\t if (initalConversion == 'projectCode' || initalConversion == 'assignedUser' || initalConversion == 'notificationEmails')\r\n\t this.conversion.configuration[currentConversion] = this.conversion.configuration[currentConversion] == \"\" ? null : this.conversion.configuration[currentConversion];\r\n\t if (initalConversion != 'advanced' && (initConversion.configuration[initalConversion] != this.conversion.configuration[currentConversion])) {\r\n\t isDirty = true;\r\n\t break;\r\n\t }\r\n\t }\r\n\t }\r\n\t }\r\n\t if (initConversion.live != this.conversion.live)\r\n\t isDirty = true;\r\n\t }\r\n\t if (this.conversion.configuration.goLivePass) {\r\n\t this.goLivePassSelected = true;\r\n\t this.conversion.configuration.goLiveDate = this.conversion.configuration.plannedDate;\r\n\t }\r\n\t else {\r\n\t this.goLivePassSelected = false;\r\n\t this.conversion.configuration.goLiveDate = null;\r\n\t }\r\n\t this.setDatabaseVerificationFlag();\r\n\t if (isDirty)\r\n\t sessionStorage.setItem('isDirty', 'true');\r\n\t else\r\n\t sessionStorage.setItem('isDirty', 'false');\r\n\t };\r\n\t ConversionFormComponent.prototype.splitProductVersion = function (version) {\r\n\t var v = version.split(\".\");\r\n\t if (v.length == 4) {\r\n\t var maj = parseInt(v[0]);\r\n\t var min = parseInt(v[1]);\r\n\t var build = parseInt(v[2]);\r\n\t var rev = parseInt(v[3]);\r\n\t }\r\n\t else {\r\n\t var maj = 0;\r\n\t var min = 0;\r\n\t var build = 0;\r\n\t var rev = 0;\r\n\t }\r\n\t return { maj: maj, min: min, build: build, revision: rev };\r\n\t };\r\n\t ConversionFormComponent.prototype.compareProductVersions = function (fromVersion) {\r\n\t var _this = this;\r\n\t var fv = this.splitProductVersion(fromVersion);\r\n\t this.toVersionsFiltered = [];\r\n\t this.toVersions.forEach(function (element) {\r\n\t var tv = _this.splitProductVersion(element);\r\n\t if (tv.maj > fv.maj) {\r\n\t _this.toVersionsFiltered.push(element);\r\n\t }\r\n\t else {\r\n\t if (tv.min > fv.min && tv.maj >= fv.maj) {\r\n\t _this.toVersionsFiltered.push(element);\r\n\t }\r\n\t else {\r\n\t if (tv.build > fv.build && tv.min >= fv.min && tv.maj >= fv.maj) {\r\n\t _this.toVersionsFiltered.push(element);\r\n\t }\r\n\t else {\r\n\t if (tv.revision > fv.revision && tv.build >= fv.build && tv.min >= fv.min && tv.maj >= fv.maj) {\r\n\t _this.toVersionsFiltered.push(element);\r\n\t }\r\n\t }\r\n\t }\r\n\t }\r\n\t });\r\n\t if (this.conversion.configuration.toVersion == null || this.conversion.configuration.toVersion == '')\r\n\t this.conversion.configuration.toVersion = this.toVersionsFiltered[0];\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], ConversionFormComponent.prototype, \"id\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Number)\r\n\t ], ConversionFormComponent.prototype, \"action\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Boolean)\r\n\t ], ConversionFormComponent.prototype, \"submitting\", void 0);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], ConversionFormComponent.prototype, \"onSubmit\", void 0);\r\n\t __decorate([\r\n\t core_1.ViewChild('conversionForm'),\r\n\t __metadata(\"design:type\", forms_1.NgForm)\r\n\t ], ConversionFormComponent.prototype, \"currentForm\", void 0);\r\n\t __decorate([\r\n\t core_1.ViewChild('fileInputSpreadsheet'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], ConversionFormComponent.prototype, \"fileInputSpreadsheet\", void 0);\r\n\t __decorate([\r\n\t core_1.ViewChild('fileInputXml'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], ConversionFormComponent.prototype, \"fileInputXml\", void 0);\r\n\t ConversionFormComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'conversion-form',\r\n\t template: __webpack_require__(561),\r\n\t styles: [__webpack_require__(562)],\r\n\t providers: [sites_service_1.SitesService, conversions_service_1.ConversionsService, region_service_1.RegionService, product_service_1.ProductService, users_service_1.UsersService, zone_service_1.ZoneService, reports_service_1.ReportsService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [router_1.Router,\r\n\t material_1.MdDialog,\r\n\t core_1.ViewContainerRef,\r\n\t sites_service_1.SitesService,\r\n\t conversions_service_1.ConversionsService,\r\n\t region_service_1.RegionService,\r\n\t product_service_1.ProductService,\r\n\t users_service_1.UsersService,\r\n\t core_1.ElementRef,\r\n\t zone_service_1.ZoneService,\r\n\t auth_service_1.AuthService,\r\n\t reports_service_1.ReportsService])\r\n\t ], ConversionFormComponent);\r\n\t return ConversionFormComponent;\r\n\t}());\r\n\texports.ConversionFormComponent = ConversionFormComponent;\r\n\tvar AlertMessageDialog = (function () {\r\n\t function AlertMessageDialog(dialogRef) {\r\n\t this.dialogRef = dialogRef;\r\n\t this.proceedSubmit = false;\r\n\t this.initConversionInfo = \"\";\r\n\t this.currentConversionInfo = \"\";\r\n\t this.submitFlag = false;\r\n\t this.initRegion = \"\";\r\n\t this.currentRegion = \"\";\r\n\t this.regionChanged = null;\r\n\t }\r\n\t AlertMessageDialog.prototype.render = function (customerSpecificInfo) {\r\n\t if (customerSpecificInfo.submitFlag) {\r\n\t this.initConversionInfo = customerSpecificInfo.initConversionInfo;\r\n\t this.currentConversionInfo = customerSpecificInfo.currentConversionInfo;\r\n\t this.initRegion = customerSpecificInfo.initRegion,\r\n\t this.currentRegion = customerSpecificInfo.currentRegion;\r\n\t this.submitFlag = true;\r\n\t }\r\n\t else {\r\n\t this.initConversionInfo = customerSpecificInfo.initConversionInfo;\r\n\t this.initRegion = customerSpecificInfo.initRegion,\r\n\t this.currentRegion = customerSpecificInfo.currentRegion;\r\n\t this.submitFlag = false;\r\n\t }\r\n\t this.regionChanged = customerSpecificInfo.regionChanged;\r\n\t this.container.nativeElement.parentElement.parentElement.style.width = \"638px\";\r\n\t };\r\n\t AlertMessageDialog.prototype.ok = function () {\r\n\t this.proceedSubmit = true;\r\n\t this.dialogRef.close();\r\n\t };\r\n\t AlertMessageDialog.prototype.cancel = function () {\r\n\t this.proceedSubmit = false;\r\n\t this.dialogRef.close();\r\n\t };\r\n\t __decorate([\r\n\t core_1.ViewChild('container'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], AlertMessageDialog.prototype, \"container\", void 0);\r\n\t AlertMessageDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'alert-dialog',\r\n\t template: \"\\n
\\n
\\n
\\n Warning \\n
\\n Target version of this conversion pass has changed from {{initConversionInfo}} to {{currentConversionInfo}} and there was a\\n customer specific fix in place. Please review if this should be moved to the new target.\\n
\\n
\\n Click OK to Submit
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n Warning \\n
\\n A customer specific fix is required for this conversion. Now that you have updated Region from {{initRegion}} to {{currentRegion}} , \\n the fix needs to be moved to the new region before the customer starts their next conversion pass. \\n Please wait for confirmation from the monitoring team before starting the upgrade.\\n
\\n
\\n Click OK to Submit
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n Warning \\n
\\n A customer specific fix is required for this conversion. \\n Now that you have updated the conversion configuration from {{initConversionInfo}} to {{currentConversionInfo}} the fix needs to be reviewed and possibly moved to the new target before the customer starts their next conversion pass.\\n Please wait for confirmation from the monitoring team before starting the upgrade.\\n
\\n
\\n Click OK to Submit
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n\"\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef])\r\n\t ], AlertMessageDialog);\r\n\t return AlertMessageDialog;\r\n\t}());\r\n\texports.AlertMessageDialog = AlertMessageDialog;\r\n\tvar ConfigurationMessageDialog = (function () {\r\n\t function ConfigurationMessageDialog(dialogRef) {\r\n\t this.dialogRef = dialogRef;\r\n\t this.sendEmail = false;\r\n\t }\r\n\t ConfigurationMessageDialog.prototype.render = function (createConversion) {\r\n\t this.container.nativeElement.childNodes[1].childNodes[1].childNodes[0].childNodes[0].style.height = \"31px\";\r\n\t this.container.nativeElement.parentElement.parentElement.style.width = \"556px\";\r\n\t this.createConversion = createConversion;\r\n\t };\r\n\t ConfigurationMessageDialog.prototype.ok = function () {\r\n\t this.sendEmail = true;\r\n\t this.dialogRef.close();\r\n\t };\r\n\t ConfigurationMessageDialog.prototype.cancel = function () {\r\n\t this.sendEmail = false;\r\n\t this.dialogRef.close();\r\n\t };\r\n\t __decorate([\r\n\t core_1.ViewChild('container'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], ConfigurationMessageDialog.prototype, \"container\", void 0);\r\n\t ConfigurationMessageDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'configuration-dialog',\r\n\t template: \"\\n
\\n
\\n Email Notification \\n
\\n
\\n Send Begin your Upgrade Email?\\n
\\n
\\n Click YES to send the upgrade email.
\\n
\\n
\\n
\\n
\\n Resend Begin your Upgrade Email?\\n
\\n
\\n Click YES to resend the upgrade email again.
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n\"\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef])\r\n\t ], ConfigurationMessageDialog);\r\n\t return ConfigurationMessageDialog;\r\n\t}());\r\n\texports.ConfigurationMessageDialog = ConfigurationMessageDialog;\r\n\tvar UomMappingChangeConfirmationDialog = (function () {\r\n\t function UomMappingChangeConfirmationDialog(dialogRef) {\r\n\t this.dialogRef = dialogRef;\r\n\t this.confirm = false;\r\n\t }\r\n\t UomMappingChangeConfirmationDialog.prototype.render = function (currentMappingType, selectedMappingType) {\r\n\t this.container.nativeElement.childNodes[1].childNodes[1].childNodes[0].childNodes[0].style.height = \"31px\";\r\n\t this.container.nativeElement.parentElement.parentElement.style.width = \"556px\";\r\n\t this.currentMappingType = currentMappingType;\r\n\t this.selectedMappingType = selectedMappingType;\r\n\t };\r\n\t UomMappingChangeConfirmationDialog.prototype.ok = function () {\r\n\t this.confirm = true;\r\n\t this.dialogRef.close();\r\n\t };\r\n\t UomMappingChangeConfirmationDialog.prototype.cancel = function () {\r\n\t this.confirm = false;\r\n\t this.dialogRef.close();\r\n\t };\r\n\t __decorate([\r\n\t core_1.ViewChild('container'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], UomMappingChangeConfirmationDialog.prototype, \"container\", void 0);\r\n\t UomMappingChangeConfirmationDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'uommappingchangeconfirmation-dialog',\r\n\t template: \"\\n
\\n
\\n UOM Mapping Replacement \\n
\\n
\\n Choosing {{selectedMappingType}} mappingtemplate will remove the existing {{currentMappingType}} mapping.
Are you sure you want to apply new mapping? \\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n\"\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef])\r\n\t ], UomMappingChangeConfirmationDialog);\r\n\t return UomMappingChangeConfirmationDialog;\r\n\t}());\r\n\texports.UomMappingChangeConfirmationDialog = UomMappingChangeConfirmationDialog;\r\n\tvar ConversionFormAction;\r\n\t(function (ConversionFormAction) {\r\n\t ConversionFormAction[ConversionFormAction[\"Create\"] = 0] = \"Create\";\r\n\t ConversionFormAction[ConversionFormAction[\"Edit\"] = 1] = \"Edit\";\r\n\t})(ConversionFormAction = exports.ConversionFormAction || (exports.ConversionFormAction = {}));\r\n\n\n/***/ },\n/* 555 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar http_1 = __webpack_require__(57);\r\n\tvar angular2_jwt_1 = __webpack_require__(278);\r\n\tvar config_service_1 = __webpack_require__(300);\r\n\tvar ProductService = (function () {\r\n\t function ProductService(http, authHttp) {\r\n\t this.http = http;\r\n\t this.authHttp = authHttp;\r\n\t this.serviceBase = new config_service_1.ConfigService().getApiURI();\r\n\t this.productsAPI = this.serviceBase + \"products\";\r\n\t }\r\n\t ProductService.prototype.getProducts = function () {\r\n\t var url = \"\" + this.productsAPI;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ProductService.prototype.getProduct = function (id) {\r\n\t var url = this.productsAPI + \"/\" + id;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ProductService.prototype.extractData = function (res) {\r\n\t var body = res.json();\r\n\t return body || {};\r\n\t };\r\n\t ProductService = __decorate([\r\n\t core_1.Injectable(),\r\n\t __metadata(\"design:paramtypes\", [http_1.Http,\r\n\t angular2_jwt_1.AuthHttp])\r\n\t ], ProductService);\r\n\t return ProductService;\r\n\t}());\r\n\texports.ProductService = ProductService;\r\n\n\n/***/ },\n/* 556 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar ConversionConfigurationDialog = (function () {\r\n\t function ConversionConfigurationDialog(dialogRef) {\r\n\t this.dialogRef = dialogRef;\r\n\t this.toolingVersions = [];\r\n\t this.vmSizes = [];\r\n\t this.diskSizes = [];\r\n\t }\r\n\t ConversionConfigurationDialog.prototype.ngOnInit = function () {\r\n\t this.advanced = this.dialogRef.componentInstance.advanced;\r\n\t sessionStorage.removeItem('isDirtyAdvanced');\r\n\t };\r\n\t ConversionConfigurationDialog.prototype.clickOutsideWindow = function (event) {\r\n\t var target = event.target || event.srcElement;\r\n\t var initConversion = JSON.parse(sessionStorage.getItem('initConversion'));\r\n\t if (target.className.indexOf(\"cdk-overlay-backdrop\") == 0) {\r\n\t if (JSON.stringify(this.advanced) != JSON.stringify(initConversion.configuration.advanced))\r\n\t sessionStorage.setItem('isDirtyAdvanced', 'true');\r\n\t else\r\n\t sessionStorage.setItem('isDirtyAdvanced', 'false');\r\n\t this.dialogRef.close();\r\n\t }\r\n\t };\r\n\t ConversionConfigurationDialog.prototype.isVantage = function () {\r\n\t return this.fromVersion.startsWith(\"8.\");\r\n\t };\r\n\t ConversionConfigurationDialog.prototype.close = function () {\r\n\t this.dialogRef.close();\r\n\t };\r\n\t ConversionConfigurationDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'conversion-configuration-dialog',\r\n\t template: __webpack_require__(557),\r\n\t styles: [__webpack_require__(558)],\r\n\t host: {\r\n\t '(document:click)': 'clickOutsideWindow($event)',\r\n\t }\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef])\r\n\t ], ConversionConfigurationDialog);\r\n\t return ConversionConfigurationDialog;\r\n\t}());\r\n\texports.ConversionConfigurationDialog = ConversionConfigurationDialog;\r\n\n\n/***/ },\n/* 557 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
\\r\\n

Advanced configuration

\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{ version }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{ vmSize }}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{ diskSize }}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n

TIME TO LIVE (hours)

\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\";\n\n/***/ },\n/* 558 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \".field-spacer {\\r\\n margin:16px 0\\r\\n}\\r\\n\\r\\n.field-input {\\r\\n height:38px;\\r\\n}\\r\\n\\r\\n.field-input-fill-remaining-space {\\r\\n width: 100%;\\r\\n height: 38px;\\r\\n border: 1px solid #CCC;\\r\\n}\"\n\n/***/ },\n/* 559 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar Timezone = (function () {\r\n\t function Timezone() {\r\n\t }\r\n\t return Timezone;\r\n\t}());\r\n\texports.Timezone = Timezone;\r\n\n\n/***/ },\n/* 560 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\texports.TIMEZONES = [\r\n\t { timeZoneId: 1, gmtAdjustment: \"-12:00\", name: \"(GMT-12:00) International Date Line West\" },\r\n\t { timeZoneId: 2, gmtAdjustment: \"-11:00\", name: \"(GMT-11:00) Midway Island, Samoa\" },\r\n\t { timeZoneId: 3, gmtAdjustment: \"-10:00\", name: \"(GMT-10:00) Hawaii\" },\r\n\t { timeZoneId: 4, gmtAdjustment: \"-09:50\", name: \"(GMT-09:30) Taiohae\" },\r\n\t { timeZoneId: 5, gmtAdjustment: \"-09:00\", name: \"(GMT-09:00) Alaska\" },\r\n\t { timeZoneId: 6, gmtAdjustment: \"-08:00\", name: \"(GMT-08:00) Pacific Time (US & Canada)\" },\r\n\t { timeZoneId: 7, gmtAdjustment: \"-07:00\", name: \"(GMT-07:00) Mountain Time (US & Canada)\" },\r\n\t { timeZoneId: 8, gmtAdjustment: \"-06:00\", name: \"(GMT-06:00) Central Time (US & Canada), Mexico City, Monterrey\" },\r\n\t { timeZoneId: 9, gmtAdjustment: \"-05:00\", name: \"(GMT-05:00) Eastern Time (US & Canada), Bogota, Lima\" },\r\n\t { timeZoneId: 10, gmtAdjustment: \"-04:50\", name: \"(GMT-04:30) Caracas\" },\r\n\t { timeZoneId: 11, gmtAdjustment: \"-04:00\", name: \"(GMT-04:00) Atlantic Time (Canada)\" },\r\n\t { timeZoneId: 12, gmtAdjustment: \"-03:50\", name: \"(GMT-03:30) Newfoundland\" },\r\n\t { timeZoneId: 13, gmtAdjustment: \"-03:00\", name: \"(GMT-03:00) Brazil, Buenos Aires, Georgetown\" },\r\n\t { timeZoneId: 14, gmtAdjustment: \"-02:00\", name: \"(GMT-02:00) Mid-Atlantic\" },\r\n\t { timeZoneId: 15, gmtAdjustment: \"-01:00\", name: \"(GMT-01:00) Azores, Cape Verde Islands\" },\r\n\t { timeZoneId: 16, gmtAdjustment: \"+00:00\", name: \"(GMT+00:00) Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London\" },\r\n\t { timeZoneId: 17, gmtAdjustment: \"+01:00\", name: \"(GMT+01:00) Brussels, Copenhagen, Madrid, Paris\" },\r\n\t { timeZoneId: 18, gmtAdjustment: \"+02:00\", name: \"(GMT+02:00) Kaliningrad, South Africa\" },\r\n\t { timeZoneId: 19, gmtAdjustment: \"+03:00\", name: \"(GMT+03:00) Baghdad, Riyadh, Moscow, St. Petersburg\" },\r\n\t { timeZoneId: 20, gmtAdjustment: \"+03:50\", name: \"(GMT+03:30) Tehran\" },\r\n\t { timeZoneId: 21, gmtAdjustment: \"+04:00\", name: \"(GMT+04:00) Abu Dhabi, Muscat, Baku, Tbilisi\" },\r\n\t { timeZoneId: 22, gmtAdjustment: \"+04:50\", name: \"(GMT+04:30) Kabul\" },\r\n\t { timeZoneId: 23, gmtAdjustment: \"+05:00\", name: \"(GMT+05:00) Ekaterinburg, Islamabad, Karachi, Tashkent\" },\r\n\t { timeZoneId: 24, gmtAdjustment: \"+05:50\", name: \"(GMT+05:30) Bombay, Calcutta, Madras, New Delhi\" },\r\n\t { timeZoneId: 25, gmtAdjustment: \"+05:75\", name: \"(GMT+05:45) Kathmandu, Pokhara\" },\r\n\t { timeZoneId: 26, gmtAdjustment: \"+06:00\", name: \"(GMT+06:00) Almaty, Dhaka, Colombo\" },\r\n\t { timeZoneId: 27, gmtAdjustment: \"+06:50\", name: \"(GMT+06:30) Yangon, Mandalay\" },\r\n\t { timeZoneId: 28, gmtAdjustment: \"+07:00\", name: \"(GMT+07:00) Bangkok, Hanoi, Jakarta\" },\r\n\t { timeZoneId: 29, gmtAdjustment: \"+08:00\", name: \"(GMT+08:00) Beijing, Perth, Singapore, Hong Kong\" },\r\n\t { timeZoneId: 30, gmtAdjustment: \"+08:75\", name: \"(GMT+08:45) Eucla\" },\r\n\t { timeZoneId: 31, gmtAdjustment: \"+09:00\", name: \"(GMT+09:00) Tokyo, Seoul, Osaka, Sapporo, Yakutsk\" },\r\n\t { timeZoneId: 32, gmtAdjustment: \"+09:50\", name: \"(GMT+09:30) Adelaide, Darwin\" },\r\n\t { timeZoneId: 33, gmtAdjustment: \"+10:00\", name: \"(GMT+10:00) Eastern Australia, Guam, Vladivostok\" },\r\n\t { timeZoneId: 34, gmtAdjustment: \"+10:50\", name: \"(GMT+10:30) Lord Howe Island\" },\r\n\t { timeZoneId: 35, gmtAdjustment: \"+11:00\", name: \"(GMT+11:00) Magadan, Solomon Islands, New Caledonia\" },\r\n\t { timeZoneId: 36, gmtAdjustment: \"+11:50\", name: \"(GMT+11:30) Norfolk Island\" },\r\n\t { timeZoneId: 37, gmtAdjustment: \"+12:00\", name: \"(GMT+12:00) Auckland, Wellington, Fiji, Kamchatka\" },\r\n\t { timeZoneId: 38, gmtAdjustment: \"+12:75\", name: \"(GMT+12:45) Chatham Islands\" },\r\n\t { timeZoneId: 49, gmtAdjustment: \"+13:00\", name: \"(GMT+13:00) Apia, Nukualofa\" },\r\n\t { timeZoneId: 50, gmtAdjustment: \"+14:00\", name: \"(GMT+14:00) Line Islands, Tokelau\" }\r\n\t];\r\n\n\n/***/ },\n/* 561 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
\\r\\n \\r\\n {{ toolbarTitle }}\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
From
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
To
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
Current Mapping:  \\r\\n {{currentMappingType}}\\r\\n cloud_download\\r\\n  \\r\\n \\r\\n Change\\r\\n \\r\\n
\\r\\n Last modified on {{file.lastModifiedDate}}\\r\\n
\\r\\n
\\r\\n Cancel Changes\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Validating the UOM file... Please wait...
\\r\\n
\\r\\n check_circle_outline UOM file is valid.
\\r\\n
\\r\\n highlight_off UOM file has below error(s):\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Multiple emails need to be seperated by a semi-colon.

\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Go Live Pass\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n clear\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ user.emailAddress }}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Customer Specific Fix\\r\\n \\r\\n \\r\\n {{loadingCSF ? 'Loading...' : doesCustomerSpecificFileExist? 'Available' : 'Not Available'}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
UOM
\\r\\n
\\r\\n \\r\\n {{csf}}\\r\\n {{csf}}\\r\\n
\\r\\n
\\r\\n Warning: UOM sheet will not be applied due to incorrect file location.\\r\\n Please make sure the spreadsheet is placed in the root folder.
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Scripts and other files
\\r\\n
\\r\\n \\r\\n
{{csf}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Enable Db Packer\\r\\n \\r\\n \\r\\n \\r\\n Enable Send To Support\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Database Verification\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 562 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \".field-spacer {\\r\\n margin:12px 0\\r\\n}\\r\\n\\r\\n.field-input {\\r\\n height:38px;\\r\\n border:1px solid #CCC;\\r\\n}\\r\\n\\r\\n.field-input-fill-remaining-space {\\r\\n width: 100%;\\r\\n height: 38px;\\r\\n border:1px solid #CCC;\\r\\n}\\r\\n.field-input-date {\\r\\n width: 68%;\\r\\n height: 38px;\\r\\n border:1px solid #CCC;\\r\\n}\\r\\n\\r\\n.field-input-time {\\r\\n width: 30%;\\r\\n height: 30px;\\r\\n border:1px solid #CCC;\\r\\n}\\r\\n\\r\\n.field-input-timezone {\\r\\n width: 68%;\\r\\n border:1px solid #CCC;\\r\\n height: 34px;\\r\\n margin-top:1px;\\r\\n}\\r\\n\\r\\ninput[type=time]{\\r\\n font-size: 16px;\\r\\n}\\r\\n\\r\\n.group-go-live{\\r\\n border: 1px solid #CCC;\\r\\n padding: 8px 8px 8px 8px;\\r\\n}\"\n\n/***/ },\n/* 563 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\";\n\n/***/ },\n/* 564 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar dom_events_1 = __webpack_require__(329);\r\n\tvar conversions_service_1 = __webpack_require__(378);\r\n\tvar conversion_form_component_1 = __webpack_require__(554);\r\n\tvar EditConversionComponent = (function () {\r\n\t function EditConversionComponent(route, router, domEvents, conversionsService) {\r\n\t var _this = this;\r\n\t this.route = route;\r\n\t this.router = router;\r\n\t this.domEvents = domEvents;\r\n\t this.conversionsService = conversionsService;\r\n\t this.conversionFormAction = conversion_form_component_1.ConversionFormAction;\r\n\t this.submitting = false;\r\n\t this.isDirty = false;\r\n\t this.isDirtyAdvanced = false;\r\n\t this.route.params.subscribe(function (params) {\r\n\t _this.conversionId = params['conversionId'];\r\n\t });\r\n\t }\r\n\t EditConversionComponent.prototype.ngOnInit = function () {\r\n\t this.domEvents.triggerOnDocument('appready');\r\n\t };\r\n\t EditConversionComponent.prototype.onSubmit = function (conversionData) {\r\n\t var _this = this;\r\n\t if (conversionData) {\r\n\t this.submitting = true;\r\n\t this.conversionsService.updateConversion(this.conversionId, conversionData).subscribe(function (res) {\r\n\t _this.submitting = false;\r\n\t _this.router.navigateByUrl(\"/sites/\" + conversionData.siteId + \"/conversions/\" + _this.conversionId);\r\n\t }, function (err) {\r\n\t _this.submitting = false;\r\n\t });\r\n\t sessionStorage.removeItem('isDirty');\r\n\t sessionStorage.removeItem('initConversion');\r\n\t sessionStorage.removeItem('isDirtyAdvanced');\r\n\t }\r\n\t };\r\n\t EditConversionComponent.prototype.canDeactivate = function () {\r\n\t this.isDirty = sessionStorage.getItem('isDirty') == 'true' ? true : false;\r\n\t this.isDirtyAdvanced = sessionStorage.getItem('isDirtyAdvanced') == 'true' ? true : false;\r\n\t if (this.isDirty || this.isDirtyAdvanced) {\r\n\t var confirmationMessage = 'It looks like you have been editing something. '\r\n\t + 'If you leave before saving, your changes will be lost.';\r\n\t var confirm = window.confirm(confirmationMessage);\r\n\t if (confirm) {\r\n\t sessionStorage.removeItem('isDirty');\r\n\t sessionStorage.removeItem('initConversion');\r\n\t sessionStorage.removeItem('isDirtyAdvanced');\r\n\t }\r\n\t return confirm;\r\n\t }\r\n\t return true;\r\n\t };\r\n\t EditConversionComponent.prototype.unloadNotification = function () {\r\n\t if (this.isDirty || this.isDirtyAdvanced) {\r\n\t return window.confirm();\r\n\t }\r\n\t };\r\n\t __decorate([\r\n\t core_1.HostListener('window:beforeunload', ['$event']),\r\n\t __metadata(\"design:type\", Function),\r\n\t __metadata(\"design:paramtypes\", []),\r\n\t __metadata(\"design:returntype\", void 0)\r\n\t ], EditConversionComponent.prototype, \"unloadNotification\", null);\r\n\t EditConversionComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'edit-conversion',\r\n\t template: __webpack_require__(565),\r\n\t providers: [conversions_service_1.ConversionsService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [router_1.ActivatedRoute,\r\n\t router_1.Router,\r\n\t dom_events_1.DOMEvents,\r\n\t conversions_service_1.ConversionsService])\r\n\t ], EditConversionComponent);\r\n\t return EditConversionComponent;\r\n\t}());\r\n\texports.EditConversionComponent = EditConversionComponent;\r\n\n\n/***/ },\n/* 565 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\";\n\n/***/ },\n/* 566 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar conversions_service_1 = __webpack_require__(378);\r\n\tvar conversion_hub_service_1 = __webpack_require__(302);\r\n\tvar storage_account_service_1 = __webpack_require__(390);\r\n\tvar conversions_pipe_1 = __webpack_require__(567);\r\n\tvar interfaces_1 = __webpack_require__(304);\r\n\tvar remote_desktop_service_1 = __webpack_require__(568);\r\n\tvar interfaces_2 = __webpack_require__(304);\r\n\tvar conversion_pass_tasks_dialog_1 = __webpack_require__(569);\r\n\tvar incident_dialog_1 = __webpack_require__(571);\r\n\tvar time_to_live_dialog_1 = __webpack_require__(573);\r\n\tvar conversion_status_dialog_1 = __webpack_require__(575);\r\n\tvar add_ip_address_to_nsg_dialog_1 = __webpack_require__(577);\r\n\tvar dom_events_1 = __webpack_require__(329);\r\n\tvar ng2_toastr_1 = __webpack_require__(306);\r\n\tvar ConversionPassComponent = (function () {\r\n\t function ConversionPassComponent(conversionPassTaskDialog, incidentDialog, timeToLiveDialog, conversionStatusDialog, addIPAddressToNSGDialog, domEvents, auth, router, route, conversionHubService, conversionsService, remoteDesktopService, storageAccountService, toastr) {\r\n\t var _this = this;\r\n\t this.conversionPassTaskDialog = conversionPassTaskDialog;\r\n\t this.incidentDialog = incidentDialog;\r\n\t this.timeToLiveDialog = timeToLiveDialog;\r\n\t this.conversionStatusDialog = conversionStatusDialog;\r\n\t this.addIPAddressToNSGDialog = addIPAddressToNSGDialog;\r\n\t this.domEvents = domEvents;\r\n\t this.auth = auth;\r\n\t this.router = router;\r\n\t this.route = route;\r\n\t this.conversionHubService = conversionHubService;\r\n\t this.conversionsService = conversionsService;\r\n\t this.remoteDesktopService = remoteDesktopService;\r\n\t this.storageAccountService = storageAccountService;\r\n\t this.toastr = toastr;\r\n\t this.Role = auth_service_1.Role;\r\n\t this.Permission = auth_service_1.Permission;\r\n\t this.loading = false;\r\n\t this.logType = interfaces_1.ConversionPassLogType;\r\n\t this.displayGantt = false;\r\n\t this.resubmitting = false;\r\n\t this.logs = [];\r\n\t this.logsContainer = {\r\n\t icon: 'expand_less',\r\n\t open: true\r\n\t };\r\n\t this.VirtualMachineStatus = conversions_service_1.VirtualMachineStatus;\r\n\t this.filterLogByType = new conversions_pipe_1.FilterConvesionPassLogByType();\r\n\t this.loadAllSelected = false;\r\n\t this.logsLoader = false;\r\n\t this.loadMoreLogsToken = null;\r\n\t this.logsHasMoreResult = false;\r\n\t this.errorsCount = 0;\r\n\t this.warningsCount = 0;\r\n\t this.informationCount = 0;\r\n\t this.incidentsCount = 0;\r\n\t this.isProduction = false;\r\n\t this.selectedTab = 'progress';\r\n\t this.ConversionStatus = interfaces_1.ConversionStatus;\r\n\t this.product = {\r\n\t description: null,\r\n\t source: null,\r\n\t target: null\r\n\t };\r\n\t this.uomFileExists = false;\r\n\t this.enableRDP = false;\r\n\t this.route.params.subscribe(function (params) {\r\n\t _this.conversionId = params['conversionId'];\r\n\t _this.passNumber = +params['passNumber'];\r\n\t });\r\n\t this.zone = new core_1.NgZone({ enableLongStackTrace: false });\r\n\t }\r\n\t ConversionPassComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.resubmitSubcription = this.route.params.subscribe(function (params) {\r\n\t var passNumber = params['passNumber'];\r\n\t _this.logs = [];\r\n\t _this.getPreviousSuccessConversionPass(_this.conversionId, passNumber);\r\n\t _this.listenForConnection();\r\n\t _this.conversionHubService.connectionState.subscribe(function (connectionState) {\r\n\t if (connectionState == interfaces_2.SignalRConnectionStatus.Connected) {\r\n\t console.log('Connected!');\r\n\t }\r\n\t else {\r\n\t console.log(connectionState.toString());\r\n\t }\r\n\t }, function (error) {\r\n\t console.log(error);\r\n\t });\r\n\t });\r\n\t if (true) {\r\n\t this.isProduction = true;\r\n\t }\r\n\t this.domEvents.triggerOnDocument('appready');\r\n\t };\r\n\t ConversionPassComponent.prototype.toggleTab = function (tab) {\r\n\t this.selectedTab = tab;\r\n\t };\r\n\t ConversionPassComponent.prototype.updateTaskProgress = function (task, status) {\r\n\t var tasks = this.ganttProject.tasks;\r\n\t var previousPassDetails = null;\r\n\t var foundPreviousPassDetals = false;\r\n\t if (this.ganttPreviousSuccessTask.map(function (obj) { return obj.treePath; }).indexOf(task.treePath) < 0) {\r\n\t var tempTask = Object.assign({}, task);\r\n\t tempTask.start = null;\r\n\t tempTask.end = null;\r\n\t previousPassDetails = tempTask;\r\n\t foundPreviousPassDetals = true;\r\n\t }\r\n\t if (!foundPreviousPassDetals) {\r\n\t if (this.ganttPreviousSuccessTask.map(function (obj) { return obj.treePath; }).indexOf(task.treePath) >= 0) {\r\n\t this.ganttPreviousSuccessTask.map(function (obj) {\r\n\t if (obj.name == task.name) {\r\n\t var tempTask = Object.assign({}, obj);\r\n\t tempTask.start = tempTask.start == null ? null : new Date(tempTask.start);\r\n\t tempTask.end = tempTask.end == null ? null : new Date(tempTask.end);\r\n\t previousPassDetails = tempTask;\r\n\t }\r\n\t });\r\n\t }\r\n\t }\r\n\t foundPreviousPassDetals = false;\r\n\t var taskIndex = this.ganttProject.tasks.findIndex(function (t) {\r\n\t return t.id == task.id;\r\n\t });\r\n\t if (taskIndex === -1) {\r\n\t task.start = new Date(task.start);\r\n\t task.end = new Date(task.end);\r\n\t task.previousPassDetails = previousPassDetails;\r\n\t tasks.push(task);\r\n\t }\r\n\t else {\r\n\t this.ganttProject.tasks[taskIndex].start = new Date(task.start);\r\n\t this.ganttProject.tasks[taskIndex].end = new Date(task.end);\r\n\t this.ganttProject.tasks[taskIndex].percentComplete = task.percentComplete;\r\n\t this.ganttProject.tasks[taskIndex].status = status;\r\n\t this.ganttProject.tasks[taskIndex].previousPassDetails = previousPassDetails;\r\n\t }\r\n\t };\r\n\t ConversionPassComponent.prototype.getPreviousSuccessConversionPass = function (conversionId, passNumber) {\r\n\t var _this = this;\r\n\t this.loading = true;\r\n\t this.conversionsService.getPreviousSuccessConversionPass(conversionId, passNumber).subscribe(function (conversionPass) {\r\n\t _this.conversionPass = conversionPass;\r\n\t var successTasks = _this.conversionPass.tasks;\r\n\t _this.previousSuccessPassNumber = _this.conversionPass.passNumber;\r\n\t if (!Array.isArray(successTasks)) {\r\n\t successTasks = [];\r\n\t }\r\n\t _this.ganttPreviousSuccessTask = successTasks.map(function (task) {\r\n\t task.start = task.start == null ? null : new Date(task.start);\r\n\t task.end = task.end == null ? null : new Date(task.end);\r\n\t return task;\r\n\t });\r\n\t _this.setSubscription(true);\r\n\t _this.getConversionPass(conversionId, passNumber);\r\n\t });\r\n\t };\r\n\t ConversionPassComponent.prototype.getConversionPass = function (conversionId, passNumber) {\r\n\t var _this = this;\r\n\t this.conversionsService.getConversionPass(conversionId, passNumber).subscribe(function (conversionPass) {\r\n\t _this.conversionPass = conversionPass;\r\n\t _this.conversionPassId = _this.conversionPass.conversionPassId;\r\n\t var tasks = _this.conversionPass.tasks;\r\n\t _this.checkUOMFileExists(_this.conversionPassId);\r\n\t _this.remoteDesktopService.getConversionPassRDPToken(_this.conversionPassId).subscribe(function (result) { _this.enableRDP = true; }, function (err) { if (err.status == \"403\")\r\n\t _this.enableRDP = false; });\r\n\t if (!Array.isArray(tasks)) {\r\n\t tasks = [];\r\n\t }\r\n\t _this.ganttOptions = {\r\n\t scale: {\r\n\t start: new Date(conversionPass.startDate)\r\n\t },\r\n\t zooming: \"hours\"\r\n\t };\r\n\t _this.product = {\r\n\t source: conversionPass.fromProduct + \" \" + conversionPass.fromVersion,\r\n\t target: conversionPass.toProduct + \" \" + conversionPass.toVersion,\r\n\t goLive: \"\" + (conversionPass.goLive ? \"Yes\" : \"No\")\r\n\t };\r\n\t _this.ganttProject = {\r\n\t id: conversionPass.conversionPassId,\r\n\t name: conversionPass.fromProduct + \" \" + conversionPass.fromVersion + \" to \" + conversionPass.toProduct + \" \" + conversionPass.toVersion + \", Go Live: \" + (conversionPass.goLive ? \"Yes\" : \"No\") + \", Tooling Version : \" + conversionPass.toolingVersion,\r\n\t startDate: new Date(conversionPass.startDate),\r\n\t previousSuccessPassNumber: _this.previousSuccessPassNumber,\r\n\t tasks: tasks.map(function (task) {\r\n\t if (_this.ganttPreviousSuccessTask.map(function (obj) { return obj.treePath; }).indexOf(task.treePath) < 0) {\r\n\t var tempTask = Object.assign({}, task);\r\n\t tempTask.start = null;\r\n\t tempTask.end = null;\r\n\t task.previousPassDetails = tempTask;\r\n\t }\r\n\t if (_this.ganttPreviousSuccessTask.map(function (obj) { return obj.treePath; }).indexOf(task.treePath) >= 0) {\r\n\t _this.ganttPreviousSuccessTask.map(function (obj) {\r\n\t if (obj.name == task.name) {\r\n\t var tempTask = Object.assign({}, obj);\r\n\t tempTask.start = tempTask.start == null ? null : new Date(tempTask.start);\r\n\t tempTask.end = tempTask.end == null ? null : new Date(tempTask.end);\r\n\t task.previousPassDetails = tempTask;\r\n\t }\r\n\t });\r\n\t }\r\n\t task.start = task.start == null ? null : new Date(task.start);\r\n\t task.end = task.end == null ? null : new Date(task.end);\r\n\t return task;\r\n\t })\r\n\t };\r\n\t _this.displayGantt = true;\r\n\t _this.getVMStatus(_this.conversionPassId);\r\n\t _this.getConversionPassLogs(_this.conversionPassId);\r\n\t _this.getReconciliationReports(_this.conversionPassId);\r\n\t _this.getReconciliationReportsCount(_this.conversionPassId);\r\n\t _this.setSubscription(true);\r\n\t _this.loading = false;\r\n\t });\r\n\t this.conversionHubService.addPassLogEntry.subscribe(function (data) {\r\n\t var log = data.log;\r\n\t var task = data.task;\r\n\t var logs = data.logs;\r\n\t var tasks = data.tasks;\r\n\t if (log) {\r\n\t if (log.description) {\r\n\t _this.logs.unshift(log);\r\n\t }\r\n\t _this.zone.run(function () {\r\n\t _this.updateTaskProgress(task, interfaces_1.ConversionPassLogType[log.type]);\r\n\t });\r\n\t }\r\n\t if (logs) {\r\n\t logs.forEach(function (log) {\r\n\t if (log.description) {\r\n\t _this.logs.unshift(log);\r\n\t switch (log.type) {\r\n\t case interfaces_1.ConversionPassLogType.Error:\r\n\t _this.errorsCount += 1;\r\n\t break;\r\n\t case interfaces_1.ConversionPassLogType.Warning:\r\n\t _this.warningsCount += 1;\r\n\t break;\r\n\t case interfaces_1.ConversionPassLogType.Information:\r\n\t _this.informationCount += 1;\r\n\t break;\r\n\t case interfaces_1.ConversionPassLogType.Incident:\r\n\t _this.incidentsCount += 1;\r\n\t break;\r\n\t }\r\n\t }\r\n\t var task = tasks.filter(function (t) { return t.treePath === log.taskId; })[0];\r\n\t if (task) {\r\n\t _this.zone.run(function () {\r\n\t _this.updateTaskProgress(task, interfaces_1.ConversionPassLogType[log.type]);\r\n\t });\r\n\t }\r\n\t });\r\n\t }\r\n\t }, function (err) { return console.log(err); });\r\n\t this.conversionHubService.addConversionPassIncidentEntry.subscribe(function (log) {\r\n\t _this.logs.unshift(log);\r\n\t _this.incidentsCount += 1;\r\n\t }, function (err) { return console.log(err); });\r\n\t };\r\n\t ConversionPassComponent.prototype.loadMoreLogs = function () {\r\n\t this.getConversionPassLogs(this.conversionPassId, this.loadMoreLogsToken, this.filterLogByTypeSelected);\r\n\t };\r\n\t ConversionPassComponent.prototype.loadAllLogs = function () {\r\n\t this.loadAllSelected = !this.loadAllSelected;\r\n\t if (this.loadAllSelected) {\r\n\t this.getAllConversionPassLogs(this.conversionPassId);\r\n\t }\r\n\t else {\r\n\t this.logs = [];\r\n\t this.getConversionPassLogs(this.conversionPassId, null, this.filterLogByTypeSelected);\r\n\t }\r\n\t };\r\n\t ConversionPassComponent.prototype.setSubscription = function (val) {\r\n\t try {\r\n\t if (this.conversionPass.conversionPassId != null && this.conversionPass.conversionPassId != undefined) {\r\n\t this.subscribed = val;\r\n\t var subscription = {\r\n\t subscribe: val,\r\n\t groupName: this.conversionPass.conversionPassId\r\n\t };\r\n\t this.updateSubscription(subscription);\r\n\t }\r\n\t }\r\n\t catch (err) {\r\n\t console.error(\"Unable to subscribe to conversion hub\");\r\n\t this.subscribed = false;\r\n\t }\r\n\t };\r\n\t ConversionPassComponent.prototype.listenForConnection = function () {\r\n\t var _this = this;\r\n\t this.conversionHubService.setConnectionId.subscribe(function (id) {\r\n\t console.log(id);\r\n\t _this.connectionId = id;\r\n\t }, function (err) { return console.log(err); });\r\n\t };\r\n\t ConversionPassComponent.prototype.updateSubscription = function (subscription) {\r\n\t if (subscription.subscribe === true) {\r\n\t this.conversionHubService.subscribeToFeed(subscription.groupName);\r\n\t }\r\n\t else {\r\n\t this.conversionHubService.unsubscribeFromFeed(subscription.groupName);\r\n\t }\r\n\t };\r\n\t ConversionPassComponent.prototype.toggleContainer = function (container) {\r\n\t if (container.open) {\r\n\t container.open = false;\r\n\t container.icon = 'expand_more';\r\n\t }\r\n\t else {\r\n\t container.open = true;\r\n\t container.icon = 'expand_less';\r\n\t }\r\n\t };\r\n\t ConversionPassComponent.prototype.filterLogs = function (type) {\r\n\t this.logs = [];\r\n\t if (this.filterLogByTypeSelected == type) {\r\n\t this.filterLogByTypeSelected = null;\r\n\t }\r\n\t else {\r\n\t this.filterLogByTypeSelected = type;\r\n\t }\r\n\t if (this.loadAllSelected) {\r\n\t this.getAllConversionPassLogs(this.conversionPassId);\r\n\t }\r\n\t else {\r\n\t this.getConversionPassLogs(this.conversionPassId, null, this.filterLogByTypeSelected);\r\n\t }\r\n\t };\r\n\t ConversionPassComponent.prototype.getConversionPassLogs = function (conversionPassId, token, logType) {\r\n\t var _this = this;\r\n\t if (token == null) {\r\n\t this.logsLoader = true;\r\n\t }\r\n\t this.conversionsService.getConversionPassLogs(conversionPassId, token, logType).subscribe(function (pagedLogResult) {\r\n\t pagedLogResult.result.forEach(function (log) {\r\n\t _this.logs.push(log);\r\n\t });\r\n\t _this.logsLoader = false;\r\n\t if (pagedLogResult.hasMoreResults) {\r\n\t var rcToken = JSON.parse(pagedLogResult.requestContinuation).token;\r\n\t _this.loadMoreLogsToken = rcToken;\r\n\t }\r\n\t _this.logsHasMoreResult = pagedLogResult.hasMoreResults;\r\n\t _this.getLogsTypeCount();\r\n\t }, function (err) { return _this.logsLoader = false; });\r\n\t };\r\n\t ConversionPassComponent.prototype.getAllConversionPassLogs = function (conversionPassId) {\r\n\t var _this = this;\r\n\t this.logsLoader = true;\r\n\t this.conversionsService.getAllConversionPassLogs(conversionPassId).subscribe(function (pagedLogResult) {\r\n\t if (_this.filterLogByTypeSelected === _this.logType.Error) {\r\n\t _this.logs = pagedLogResult.result.filter(function (log) { return log.type === interfaces_1.ConversionPassLogType.Error; });\r\n\t }\r\n\t else if (_this.filterLogByTypeSelected === _this.logType.Warning) {\r\n\t _this.logs = pagedLogResult.result.filter(function (log) { return log.type === interfaces_1.ConversionPassLogType.Warning; });\r\n\t }\r\n\t else if (_this.filterLogByTypeSelected === _this.logType.Information) {\r\n\t _this.logs = pagedLogResult.result.filter(function (log) { return log.type === interfaces_1.ConversionPassLogType.Information; });\r\n\t }\r\n\t else if (_this.filterLogByTypeSelected === _this.logType.Incident) {\r\n\t _this.logs = pagedLogResult.result.filter(function (log) { return log.type === interfaces_1.ConversionPassLogType.Incident; });\r\n\t }\r\n\t else {\r\n\t _this.logs = pagedLogResult.result;\r\n\t }\r\n\t _this.logsLoader = false;\r\n\t _this.logsHasMoreResult = pagedLogResult.hasMoreResults;\r\n\t _this.getLogsTypeCount();\r\n\t }, function (err) { return _this.logsLoader = false; });\r\n\t };\r\n\t ConversionPassComponent.prototype.getTypeIcon = function (type) {\r\n\t if (interfaces_1.ConversionPassLogType.Information === type) {\r\n\t return \"event_note\";\r\n\t }\r\n\t else if (interfaces_1.ConversionPassLogType.Warning === type) {\r\n\t return \"warning\";\r\n\t }\r\n\t else if (interfaces_1.ConversionPassLogType.Error === type) {\r\n\t return \"clear\";\r\n\t }\r\n\t else if (interfaces_1.ConversionPassLogType.Incident === type) {\r\n\t return \"person\";\r\n\t }\r\n\t };\r\n\t ConversionPassComponent.prototype.getTypeIconClass = function (type) {\r\n\t if (interfaces_1.ConversionPassLogType.Information === type || interfaces_1.ConversionPassLogType.Incident === type) {\r\n\t return '';\r\n\t }\r\n\t else if (interfaces_1.ConversionPassLogType.Warning === type) {\r\n\t return 'warning';\r\n\t }\r\n\t else if (interfaces_1.ConversionPassLogType.Error === type) {\r\n\t return 'error';\r\n\t }\r\n\t };\r\n\t ConversionPassComponent.prototype.getLoadAllCount = function () {\r\n\t if (this.filterLogByTypeSelected == null) {\r\n\t return this.incidentsCount + this.informationCount + this.warningsCount + this.errorsCount;\r\n\t }\r\n\t else {\r\n\t switch (this.filterLogByTypeSelected) {\r\n\t case this.logType.Error:\r\n\t return this.errorsCount;\r\n\t case this.logType.Warning:\r\n\t return this.warningsCount;\r\n\t case this.logType.Information:\r\n\t return this.informationCount;\r\n\t case this.logType.Incident:\r\n\t return this.incidentsCount;\r\n\t }\r\n\t }\r\n\t };\r\n\t ConversionPassComponent.prototype.getLogsTypeCount = function () {\r\n\t var _this = this;\r\n\t var passId = this.conversionPassId;\r\n\t this.conversionsService.getConversionPassLogsCount(passId, interfaces_1.ConversionPassLogType.Error).subscribe(function (data) {\r\n\t _this.errorsCount = data.count;\r\n\t });\r\n\t this.conversionsService.getConversionPassLogsCount(passId, interfaces_1.ConversionPassLogType.Warning).subscribe(function (data) {\r\n\t _this.warningsCount = data.count;\r\n\t });\r\n\t this.conversionsService.getConversionPassLogsCount(passId, interfaces_1.ConversionPassLogType.Information).subscribe(function (data) {\r\n\t _this.informationCount = data.count;\r\n\t });\r\n\t this.conversionsService.getConversionPassLogsCount(passId, interfaces_1.ConversionPassLogType.Incident).subscribe(function (data) {\r\n\t _this.incidentsCount = data.count;\r\n\t });\r\n\t };\r\n\t ConversionPassComponent.prototype.refreshLogs = function () {\r\n\t this.logs = [];\r\n\t this.getConversionPassLogs(this.conversionPass.conversionPassId, null, this.filterLogByTypeSelected);\r\n\t };\r\n\t ConversionPassComponent.prototype.downloadRDP = function () {\r\n\t var _this = this;\r\n\t var conversionPassId = this.conversionPass.conversionPassId;\r\n\t var validMultiDownload = (this.conversionPass.toVersion.startsWith(\"11\") && Number(this.conversionPass.toVersion.split('.')[2]) > 100 ||\r\n\t this.conversionPass.toVersion.startsWith(\"11\") && Number(this.conversionPass.toVersion.split('.')[1]) >= 2) || this.conversionPass.toVersion.startsWith(\"12\")\r\n\t && (this.conversionPass.fromVersion.startsWith('9.') || this.conversionPass.fromVersion.startsWith('8.'));\r\n\t if (validMultiDownload && (this.conversionPass.fromVersion.startsWith('9.') || this.conversionPass.fromVersion.startsWith('8.'))) {\r\n\t this.remoteDesktopService.getConversionPassRDPToken(conversionPassId).subscribe(function (data) {\r\n\t if (data != null) {\r\n\t var downloadUrl = _this.remoteDesktopService.getConversionPassRDPDownloadUrl(conversionPassId, data.token, true);\r\n\t var newWindow = window.open(downloadUrl, '_self');\r\n\t newWindow = null;\r\n\t }\r\n\t });\r\n\t }\r\n\t if (validMultiDownload && this.conversionPass.tasks.filter(function (task) { return (task.treePath === \"ERP Cloud Worker\" || task.treePath === \"Cloud Worker\"); }).length == 0) {\r\n\t return;\r\n\t }\r\n\t this.remoteDesktopService.getConversionPassRDPToken(conversionPassId).subscribe(function (data) {\r\n\t if (data != null) {\r\n\t var downloadUrl = _this.remoteDesktopService.getConversionPassRDPDownloadUrl(conversionPassId, data.token, false);\r\n\t var newWindow = window.open(downloadUrl, '_self');\r\n\t newWindow = null;\r\n\t }\r\n\t });\r\n\t };\r\n\t ConversionPassComponent.prototype.showPassword = function (timeout) {\r\n\t var _this = this;\r\n\t if (timeout === void 0) { timeout = 60000; }\r\n\t this.password = null;\r\n\t this.conversionsService.getConversionPassRDPPassword(this.conversionPass.conversionPassId).subscribe(function (rdp) {\r\n\t _this.password = rdp.rdpPassword;\r\n\t setTimeout(function () {\r\n\t _this.password = null;\r\n\t }, timeout);\r\n\t });\r\n\t };\r\n\t ConversionPassComponent.prototype.showProductPassword = function (timeout) {\r\n\t var _this = this;\r\n\t if (timeout === void 0) { timeout = 60000; }\r\n\t this.password = null;\r\n\t this.conversionsService.getConversionPassProductPassword(this.conversionPass.conversionPassId).subscribe(function (product) {\r\n\t _this.password = product.productUserPassword;\r\n\t setTimeout(function () {\r\n\t _this.password = null;\r\n\t }, timeout);\r\n\t });\r\n\t };\r\n\t ConversionPassComponent.prototype.openEditTasksDialog = function () {\r\n\t var _this = this;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = null;\r\n\t var parentTasks = this.conversionPass.tasks.filter(function (t) {\r\n\t if (t.treePath.split('/').length === 1) {\r\n\t t[\"selected\"] = false;\r\n\t return t;\r\n\t }\r\n\t });\r\n\t this.conversionPassTaskDialogRef = this.conversionPassTaskDialog.open(conversion_pass_tasks_dialog_1.ConversionPassTasksDialog, config);\r\n\t this.conversionPassTaskDialogRef.componentInstance.parentTasks = parentTasks;\r\n\t this.conversionPassTaskDialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.deleteTasks(result);\r\n\t });\r\n\t };\r\n\t ConversionPassComponent.prototype.resubmitPass = function () {\r\n\t var _this = this;\r\n\t if (confirm(\"Are you sure you want to resubmit?\")) {\r\n\t if (this.resubmitting) {\r\n\t this.toastr.info('This pass has already been resubmitted');\r\n\t }\r\n\t if (!this.resubmitting) {\r\n\t this.resubmitting = true;\r\n\t this.toastr.success('Conversion pass has been resubmitted');\r\n\t this.conversionsService.resubmitConversionPass(this.conversionPass.conversionId, this.conversionPass.conversionPassId).subscribe(function (data) {\r\n\t _this.resubmitting = false;\r\n\t var conversionPassUri = \"/conversions/\" + _this.conversionPass.conversionId + \"/passes/\" + data.passNumber;\r\n\t _this.conversionsService.logConversionPassIncident(_this.conversionPass.conversionPassId, {\r\n\t description: \"Conversion pass has been resubmitted and can be viewed at \" + conversionPassUri\r\n\t }).subscribe(function (res) {\r\n\t _this.router.navigateByUrl(conversionPassUri);\r\n\t });\r\n\t }, function (err) { return _this.resubmitting = false; });\r\n\t }\r\n\t }\r\n\t };\r\n\t ConversionPassComponent.prototype.openIncidentDialog = function () {\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = null;\r\n\t this.incidentDialogRef = this.incidentDialog.open(incident_dialog_1.IncidentDialog, config);\r\n\t this.incidentDialogRef.componentInstance.conversionPassId = this.conversionPass.conversionPassId;\r\n\t };\r\n\t ConversionPassComponent.prototype.openChangeStatusDialog = function () {\r\n\t var _this = this;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = null;\r\n\t this.conversionStatusDialogRef = this.conversionStatusDialog.open(conversion_status_dialog_1.ConversionStatusDialog, config);\r\n\t this.conversionStatusDialogRef.componentInstance.conversionPassId = this.conversionPass.conversionPassId;\r\n\t this.conversionStatusDialogRef.componentInstance.conversionPassStatus = this.conversionPass.status;\r\n\t this.conversionStatusDialogRef.afterClosed().subscribe(function (result) {\r\n\t if (result) {\r\n\t _this.getPreviousSuccessConversionPass(_this.conversionId, _this.passNumber);\r\n\t }\r\n\t });\r\n\t };\r\n\t ConversionPassComponent.prototype.openTimeToLiveDialog = function () {\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = null;\r\n\t this.timeToLiveDialogRef = this.timeToLiveDialog.open(time_to_live_dialog_1.TimeToLiveDialog, config);\r\n\t this.timeToLiveDialogRef.componentInstance.conversionPassId = this.conversionPass.conversionPassId;\r\n\t };\r\n\t ConversionPassComponent.prototype.deleteTasks = function (ids) {\r\n\t var _this = this;\r\n\t if (Array.isArray(ids)) {\r\n\t if (ids.length > 0) {\r\n\t this.conversionsService.deleteConversionPassTasks(this.conversionPass.conversionPassId, ids).subscribe(function (res) {\r\n\t _this.getPreviousSuccessConversionPass(_this.conversionId, _this.passNumber);\r\n\t });\r\n\t }\r\n\t }\r\n\t };\r\n\t ConversionPassComponent.prototype.selectAllText = function (input) {\r\n\t input.setSelectionRange(0, input.value.length);\r\n\t };\r\n\t ConversionPassComponent.prototype.copyToClipboard = function (input, button) {\r\n\t input.focus();\r\n\t try {\r\n\t var copied = document.execCommand('copy');\r\n\t if (copied) {\r\n\t button.innerHTML = 'Copied!';\r\n\t this.password = null;\r\n\t }\r\n\t }\r\n\t catch (err) {\r\n\t console.log('Unable to copy');\r\n\t }\r\n\t };\r\n\t ConversionPassComponent.prototype.getVMStatus = function (conversionPassId) {\r\n\t var _this = this;\r\n\t this.conversionsService.getConversionPassTTL(conversionPassId).subscribe(function (ttl) {\r\n\t var shutdownOn = new Date(ttl.shutdownOn).getTime();\r\n\t var deleteOn = new Date(ttl.deleteOn).getTime();\r\n\t var today = new Date().getTime();\r\n\t if (today > shutdownOn) {\r\n\t _this.vmStatus = conversions_service_1.VirtualMachineStatus.SHUTDOWN;\r\n\t }\r\n\t if (today > deleteOn) {\r\n\t _this.vmStatus = conversions_service_1.VirtualMachineStatus.DELETED;\r\n\t }\r\n\t if (today < shutdownOn && today < deleteOn) {\r\n\t _this.vmStatus = conversions_service_1.VirtualMachineStatus.ONLINE;\r\n\t }\r\n\t });\r\n\t };\r\n\t ConversionPassComponent.prototype.getVMStatusClass = function () {\r\n\t var vmStatusClass = '';\r\n\t switch (this.vmStatus) {\r\n\t case conversions_service_1.VirtualMachineStatus.ONLINE:\r\n\t vmStatusClass = 'vm-online';\r\n\t break;\r\n\t case conversions_service_1.VirtualMachineStatus.SHUTDOWN:\r\n\t vmStatusClass = 'vm-shutdown';\r\n\t break;\r\n\t case conversions_service_1.VirtualMachineStatus.DELETED:\r\n\t vmStatusClass = 'vm-deleted';\r\n\t break;\r\n\t default:\r\n\t vmStatusClass = 'vm-undefined';\r\n\t break;\r\n\t }\r\n\t return vmStatusClass;\r\n\t };\r\n\t ConversionPassComponent.prototype.getVMStatusText = function () {\r\n\t var vmStatusText = '';\r\n\t switch (this.vmStatus) {\r\n\t case conversions_service_1.VirtualMachineStatus.ONLINE:\r\n\t vmStatusText = conversions_service_1.VirtualMachineStatus[conversions_service_1.VirtualMachineStatus.ONLINE];\r\n\t break;\r\n\t case conversions_service_1.VirtualMachineStatus.SHUTDOWN:\r\n\t vmStatusText = conversions_service_1.VirtualMachineStatus[conversions_service_1.VirtualMachineStatus.SHUTDOWN];\r\n\t break;\r\n\t case conversions_service_1.VirtualMachineStatus.DELETED:\r\n\t vmStatusText = conversions_service_1.VirtualMachineStatus[conversions_service_1.VirtualMachineStatus.DELETED];\r\n\t break;\r\n\t default:\r\n\t vmStatusText = 'N/A';\r\n\t break;\r\n\t }\r\n\t return vmStatusText;\r\n\t };\r\n\t ConversionPassComponent.prototype.startVM = function () {\r\n\t this.conversionsService.startVM(this.conversionPass.conversionPassId).subscribe(function (res) {\r\n\t });\r\n\t };\r\n\t ConversionPassComponent.prototype.escalateToDevelopment = function () {\r\n\t var _this = this;\r\n\t this.conversionsService.escalateConversionPassToDevelopment(this.conversionPass.conversionPassId).subscribe(function (res) {\r\n\t _this.toastr.success('Conversion pass has been moved to development');\r\n\t _this.openConversionPassInStaging();\r\n\t }, function (err) {\r\n\t _this.toastr.error('Failed to move conversion pass to development');\r\n\t });\r\n\t };\r\n\t ConversionPassComponent.prototype.openConfiguration = function () {\r\n\t this.router.navigateByUrl(\"/sites/\" + this.conversionPass.siteId + \"/conversions/\" + this.conversionPass.conversionId);\r\n\t };\r\n\t ConversionPassComponent.prototype.openConversionPassInStaging = function () {\r\n\t var url = \"https://cloudfactoryportal-staging.azurewebsites.net/#/conversions/\" + this.conversionId + \"/passes/\" + this.conversionPass.passNumber;\r\n\t window.open(url, \"_blank\");\r\n\t };\r\n\t ConversionPassComponent.prototype.addIPToNSG = function () {\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = null;\r\n\t this.addIPAddressToNSGDialogRef = this.addIPAddressToNSGDialog.open(add_ip_address_to_nsg_dialog_1.AddIPAddressToNSGDialog, config);\r\n\t this.addIPAddressToNSGDialogRef.componentInstance.conversionPassId = this.conversionPass.conversionPassId;\r\n\t this.addIPAddressToNSGDialogRef.afterClosed().subscribe(function (result) {\r\n\t });\r\n\t };\r\n\t ConversionPassComponent.prototype.getReconciliationReports = function (conversionPassId, companyId, category, difference) {\r\n\t var _this = this;\r\n\t this.conversionsService.getConversionPassReconciliationReports(conversionPassId, companyId, category, difference).subscribe(function (reports) {\r\n\t _this.reconciliationReports = reports;\r\n\t });\r\n\t };\r\n\t ConversionPassComponent.prototype.getReconciliationReportsCount = function (conversionPassId, companyId, category, difference) {\r\n\t var _this = this;\r\n\t this.conversionsService.getConversionPassReconciliationReportsCount(conversionPassId, companyId, category, difference).subscribe(function (reportsCount) {\r\n\t _this.reconciliationReportsCount = reportsCount.count;\r\n\t });\r\n\t };\r\n\t ConversionPassComponent.prototype.reconciliationReportsChanged = function (filters) {\r\n\t var conversionPassId = this.conversionPassId;\r\n\t var companyId = filters[\"companyId\"];\r\n\t var category = filters[\"category\"];\r\n\t var difference = filters[\"difference\"];\r\n\t this.getReconciliationReports(conversionPassId, companyId, category, difference);\r\n\t this.getReconciliationReportsCount(conversionPassId, companyId, category, difference);\r\n\t };\r\n\t ConversionPassComponent.prototype.checkUOMFileExists = function (conversionPassId) {\r\n\t var _this = this;\r\n\t this.conversionsService.checkUnitOfMeasuresFileExists(conversionPassId).subscribe(function (uom) {\r\n\t if (uom.exists) {\r\n\t _this.uomFileExists = true;\r\n\t _this.uom = uom;\r\n\t }\r\n\t console.log(_this.conversionPass.fromVersion);\r\n\t if (_this.conversionPass.fromVersion.startsWith(\"8.\")) {\r\n\t _this.showUOMTemplate();\r\n\t }\r\n\t });\r\n\t };\r\n\t ConversionPassComponent.prototype.downloadUOM = function () {\r\n\t var _this = this;\r\n\t if (this.uomFileExists) {\r\n\t this.conversionsService.createUnitOfMeasureDownloadToken(this.uom.uri).subscribe(function (result) {\r\n\t var sas = result.sas;\r\n\t _this.conversionsService.downloadUnitOfMeasures(_this.uom.uri, sas);\r\n\t });\r\n\t }\r\n\t };\r\n\t ConversionPassComponent.prototype.ngOnDestroy = function () {\r\n\t this.setSubscription(false);\r\n\t };\r\n\t ConversionPassComponent.prototype.showToolingVersion = function () {\r\n\t console.log(this.conversionPass);\r\n\t };\r\n\t ConversionPassComponent.prototype.showUOMTemplate = function () {\r\n\t var lbl = '';\r\n\t var uomMapping = this.conversionPass.uomMapping;\r\n\t console.log(uomMapping);\r\n\t switch (uomMapping) {\r\n\t case 'Custom':\r\n\t case 'Xml':\r\n\t case 'Spreadsheet':\r\n\t lbl = \", UOMs: Custom Mapping Sheet\";\r\n\t break;\r\n\t case 'Metric':\r\n\t case 'US':\r\n\t lbl = \", UOMs: \" + uomMapping + \" Template\";\r\n\t break;\r\n\t case null:\r\n\t default:\r\n\t lbl = '';\r\n\t break;\r\n\t }\r\n\t this.ganttProject.name += \"\" + lbl;\r\n\t };\r\n\t ConversionPassComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'conversion-pass',\r\n\t template: __webpack_require__(579),\r\n\t styles: [__webpack_require__(580)],\r\n\t providers: [conversions_service_1.ConversionsService, remote_desktop_service_1.RemoteDesktopService, storage_account_service_1.StorageAccountService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialog,\r\n\t material_1.MdDialog,\r\n\t material_1.MdDialog,\r\n\t material_1.MdDialog,\r\n\t material_1.MdDialog,\r\n\t dom_events_1.DOMEvents,\r\n\t auth_service_1.AuthService,\r\n\t router_1.Router,\r\n\t router_1.ActivatedRoute,\r\n\t conversion_hub_service_1.ConversionHubService,\r\n\t conversions_service_1.ConversionsService,\r\n\t remote_desktop_service_1.RemoteDesktopService,\r\n\t storage_account_service_1.StorageAccountService,\r\n\t ng2_toastr_1.ToastsManager])\r\n\t ], ConversionPassComponent);\r\n\t return ConversionPassComponent;\r\n\t}());\r\n\texports.ConversionPassComponent = ConversionPassComponent;\r\n\tvar LogEntry = (function () {\r\n\t function LogEntry() {\r\n\t }\r\n\t return LogEntry;\r\n\t}());\r\n\tvar ConversionPassTask = (function () {\r\n\t function ConversionPassTask() {\r\n\t }\r\n\t return ConversionPassTask;\r\n\t}());\r\n\n\n/***/ },\n/* 567 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar FilterConversionPassLog = (function () {\r\n\t function FilterConversionPassLog() {\r\n\t }\r\n\t FilterConversionPassLog.prototype.transform = function (logs, filter) {\r\n\t if (filter === '') {\r\n\t return logs;\r\n\t }\r\n\t return logs.filter(function (l) {\r\n\t if (l.id.toString().toLowerCase().indexOf(filter.toString().toLowerCase()) !== -1 ||\r\n\t l.description.toString().toLowerCase().indexOf(filter.toString().toLowerCase()) !== -1) {\r\n\t return l;\r\n\t }\r\n\t });\r\n\t };\r\n\t FilterConversionPassLog = __decorate([\r\n\t core_1.Pipe({ name: 'filterConversionPassLog' })\r\n\t ], FilterConversionPassLog);\r\n\t return FilterConversionPassLog;\r\n\t}());\r\n\texports.FilterConversionPassLog = FilterConversionPassLog;\r\n\tvar FilterConvesionPassLogByType = (function () {\r\n\t function FilterConvesionPassLogByType() {\r\n\t }\r\n\t FilterConvesionPassLogByType.prototype.transform = function (logs, type) {\r\n\t if (typeof type === \"number\") {\r\n\t return logs.filter(function (l) {\r\n\t if (l.type === type) {\r\n\t return l;\r\n\t }\r\n\t });\r\n\t }\r\n\t return logs;\r\n\t };\r\n\t FilterConvesionPassLogByType = __decorate([\r\n\t core_1.Pipe({ name: 'filterConversionPassLogByType' })\r\n\t ], FilterConvesionPassLogByType);\r\n\t return FilterConvesionPassLogByType;\r\n\t}());\r\n\texports.FilterConvesionPassLogByType = FilterConvesionPassLogByType;\r\n\tvar FilterConversionPassByStatus = (function () {\r\n\t function FilterConversionPassByStatus() {\r\n\t }\r\n\t FilterConversionPassByStatus.prototype.transform = function (conversionPasses, status) {\r\n\t if (typeof status === 'number') {\r\n\t return conversionPasses.filter(function (cp) {\r\n\t if (cp.status === status) {\r\n\t return cp;\r\n\t }\r\n\t });\r\n\t }\r\n\t return conversionPasses;\r\n\t };\r\n\t FilterConversionPassByStatus = __decorate([\r\n\t core_1.Pipe({\r\n\t name: 'filterConversionPassByStatus',\r\n\t pure: false\r\n\t })\r\n\t ], FilterConversionPassByStatus);\r\n\t return FilterConversionPassByStatus;\r\n\t}());\r\n\texports.FilterConversionPassByStatus = FilterConversionPassByStatus;\r\n\n\n/***/ },\n/* 568 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar http_1 = __webpack_require__(57);\r\n\tvar angular2_jwt_1 = __webpack_require__(278);\r\n\tvar config_service_1 = __webpack_require__(300);\r\n\t__webpack_require__(55);\r\n\tvar RemoteDesktopService = (function () {\r\n\t function RemoteDesktopService(http, authHttp) {\r\n\t this.http = http;\r\n\t this.authHttp = authHttp;\r\n\t this.serviceBase = new config_service_1.ConfigService().getApiURI();\r\n\t this.remoteDesktopAPI = this.serviceBase + \"remotedesktop\";\r\n\t }\r\n\t RemoteDesktopService.prototype.getConversionPassRDPDownloadUrl = function (conversionPassId, token, multiDownload) {\r\n\t var env = '';\r\n\t if (false) {\r\n\t env = 's';\r\n\t }\r\n\t return this.remoteDesktopAPI + \"/conversion/\" + conversionPassId + \"?token=\" + encodeURIComponent(token) + \"&environment=\" + env + \"&legacyRdpDownload=\" + multiDownload;\r\n\t };\r\n\t RemoteDesktopService.prototype.getConversionPassRDPToken = function (conversionPassId) {\r\n\t var url = this.remoteDesktopAPI + \"/conversion/\" + conversionPassId + \"/download/token\";\r\n\t return this.authHttp.get(url).map(this.extractData);\r\n\t };\r\n\t RemoteDesktopService.prototype.getCloudViewInstanceRDPDownloadUrl = function (cloudviewInstanceId, token) {\r\n\t var env = '';\r\n\t if (false) {\r\n\t env = 's';\r\n\t }\r\n\t return this.remoteDesktopAPI + \"/cloudview/\" + cloudviewInstanceId + \"?token=\" + encodeURIComponent(token) + \"&env=\" + env;\r\n\t };\r\n\t RemoteDesktopService.prototype.getCloudViewInstanceRDPToken = function (cloudviewInstanceId) {\r\n\t var url = this.remoteDesktopAPI + \"/cloudview/\" + cloudviewInstanceId + \"/download/token\";\r\n\t return this.authHttp.get(url).map(this.extractData);\r\n\t };\r\n\t RemoteDesktopService.prototype.extractData = function (res) {\r\n\t var body = res.json();\r\n\t return body || {};\r\n\t };\r\n\t RemoteDesktopService = __decorate([\r\n\t core_1.Injectable(),\r\n\t __metadata(\"design:paramtypes\", [http_1.Http,\r\n\t angular2_jwt_1.AuthHttp])\r\n\t ], RemoteDesktopService);\r\n\t return RemoteDesktopService;\r\n\t}());\r\n\texports.RemoteDesktopService = RemoteDesktopService;\r\n\n\n/***/ },\n/* 569 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar ConversionPassTasksDialog = (function () {\r\n\t function ConversionPassTasksDialog(dialogRef) {\r\n\t this.dialogRef = dialogRef;\r\n\t }\r\n\t ConversionPassTasksDialog.prototype.deleteTasks = function () {\r\n\t var ids = this.parentTasks.filter(function (task, index) {\r\n\t if (task.selected) {\r\n\t return task;\r\n\t }\r\n\t }).map(function (t) { return t.id; });\r\n\t this.close(ids);\r\n\t };\r\n\t ConversionPassTasksDialog.prototype.close = function (ids) {\r\n\t this.dialogRef.close(ids);\r\n\t };\r\n\t ConversionPassTasksDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'conversion-pass-tasks-dialog',\r\n\t template: __webpack_require__(570),\r\n\t providers: []\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef])\r\n\t ], ConversionPassTasksDialog);\r\n\t return ConversionPassTasksDialog;\r\n\t}());\r\n\texports.ConversionPassTasksDialog = ConversionPassTasksDialog;\r\n\n\n/***/ },\n/* 570 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \" Delete Tasks\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n {{ task.name }}\\r\\n
  • \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\";\n\n/***/ },\n/* 571 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar conversions_service_1 = __webpack_require__(378);\r\n\tvar IncidentDialog = (function () {\r\n\t function IncidentDialog(dialogRef, conversionsService) {\r\n\t this.dialogRef = dialogRef;\r\n\t this.conversionsService = conversionsService;\r\n\t this.createAnother = false;\r\n\t this.conversionPassId = '';\r\n\t this.incident = {\r\n\t description: ''\r\n\t };\r\n\t }\r\n\t IncidentDialog.prototype.createIncident = function () {\r\n\t var _this = this;\r\n\t this.conversionsService.logConversionPassIncident(this.conversionPassId, this.incident).subscribe(function (res) {\r\n\t _this.close();\r\n\t });\r\n\t };\r\n\t IncidentDialog.prototype.close = function () {\r\n\t this.dialogRef.close();\r\n\t };\r\n\t IncidentDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'incident-dialog',\r\n\t template: __webpack_require__(572),\r\n\t providers: [conversions_service_1.ConversionsService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef, conversions_service_1.ConversionsService])\r\n\t ], IncidentDialog);\r\n\t return IncidentDialog;\r\n\t}());\r\n\texports.IncidentDialog = IncidentDialog;\r\n\n\n/***/ },\n/* 572 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n Log Incident\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\";\n\n/***/ },\n/* 573 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar conversions_service_1 = __webpack_require__(378);\r\n\tvar TimeToLiveDialog = (function () {\r\n\t function TimeToLiveDialog(dialogRef, conversionsService) {\r\n\t this.dialogRef = dialogRef;\r\n\t this.conversionsService = conversionsService;\r\n\t this.conversionPassId = '';\r\n\t this.ttl = {\r\n\t shutdownOn: null,\r\n\t deleteOn: null\r\n\t };\r\n\t }\r\n\t TimeToLiveDialog.prototype.ngOnInit = function () {\r\n\t this.getConversionPassTTL();\r\n\t };\r\n\t TimeToLiveDialog.prototype.getConversionPassTTL = function () {\r\n\t var _this = this;\r\n\t this.conversionsService.getConversionPassTTL(this.conversionPassId).subscribe(function (ttl) {\r\n\t _this.ttl.shutdownOn = ttl.shutdownOn.substr(0, 16);\r\n\t _this.ttl.deleteOn = ttl.deleteOn.substr(0, 16);\r\n\t });\r\n\t };\r\n\t TimeToLiveDialog.prototype.updateConversionPassTTL = function () {\r\n\t var _this = this;\r\n\t this.conversionsService.updateConversionPassTTL(this.conversionPassId, this.ttl).subscribe(function (ttl) {\r\n\t _this.ttl = ttl;\r\n\t _this.close();\r\n\t });\r\n\t };\r\n\t TimeToLiveDialog.prototype.close = function () {\r\n\t this.dialogRef.close();\r\n\t };\r\n\t TimeToLiveDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'time-to-live-dialog',\r\n\t template: __webpack_require__(574),\r\n\t styles: [\"\\n .field-spacer {\\n margin:16px 0\\n }\\n\\n .field-input {\\n height:38px;\\n }\\n\\n .field-input-fill-remaining-space {\\n width: 100%;\\n height: 38px;\\n border: 1px solid #9E9E9E;\\n }\\n \\n \"],\r\n\t providers: [conversions_service_1.ConversionsService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef, conversions_service_1.ConversionsService])\r\n\t ], TimeToLiveDialog);\r\n\t return TimeToLiveDialog;\r\n\t}());\r\n\texports.TimeToLiveDialog = TimeToLiveDialog;\r\n\n\n/***/ },\n/* 574 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n Time To Live\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
Shutdown on
\\r\\n \\r\\n
\\r\\n
\\r\\n
Delete on
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\";\n\n/***/ },\n/* 575 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar conversions_service_1 = __webpack_require__(378);\r\n\tvar ConversionStatusDialog = (function () {\r\n\t function ConversionStatusDialog(dialogRef, conversionsService) {\r\n\t this.dialogRef = dialogRef;\r\n\t this.conversionsService = conversionsService;\r\n\t this.conversionPassId = '';\r\n\t this.changed = false;\r\n\t }\r\n\t ConversionStatusDialog.prototype.ngOnInit = function () {\r\n\t };\r\n\t ConversionStatusDialog.prototype.updateConversionPassStatus = function () {\r\n\t var _this = this;\r\n\t this.conversionsService.updateConversionPassStatus(this.conversionPassId, this.conversionPassStatus).subscribe(function (res) {\r\n\t _this.changed = true;\r\n\t _this.close();\r\n\t });\r\n\t };\r\n\t ConversionStatusDialog.prototype.close = function () {\r\n\t this.dialogRef.close(this.changed);\r\n\t };\r\n\t ConversionStatusDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'conversion-status-dialog',\r\n\t template: __webpack_require__(576),\r\n\t styles: [\"\\n .field-spacer {\\n margin:16px 0\\n }\\n\\n .field-input {\\n height:38px;\\n }\\n\\n .field-input-fill-remaining-space {\\n width: 100%;\\n height: 38px;\\n border: 1px solid #9E9E9E;\\n }\\n \"],\r\n\t providers: [conversions_service_1.ConversionsService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef,\r\n\t conversions_service_1.ConversionsService])\r\n\t ], ConversionStatusDialog);\r\n\t return ConversionStatusDialog;\r\n\t}());\r\n\texports.ConversionStatusDialog = ConversionStatusDialog;\r\n\n\n/***/ },\n/* 576 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n Status\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\";\n\n/***/ },\n/* 577 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar conversions_service_1 = __webpack_require__(378);\r\n\tvar AddIPAddressToNSGDialog = (function () {\r\n\t function AddIPAddressToNSGDialog(dialogRef, conversionsService) {\r\n\t this.dialogRef = dialogRef;\r\n\t this.conversionsService = conversionsService;\r\n\t }\r\n\t AddIPAddressToNSGDialog.prototype.ngOnInit = function () {\r\n\t };\r\n\t AddIPAddressToNSGDialog.prototype.close = function () {\r\n\t this.dialogRef.close();\r\n\t };\r\n\t AddIPAddressToNSGDialog.prototype.onSubmit = function (form) {\r\n\t var _this = this;\r\n\t var ipAddressCtrl = form.controls['ipAddress'];\r\n\t this.conversionsService.addIPAddressToNSG(this.conversionPassId, this.ipAddress).subscribe(function (res) {\r\n\t _this.close();\r\n\t }, function (err) {\r\n\t ipAddressCtrl.setErrors({ 'invalidFormat': true });\r\n\t });\r\n\t };\r\n\t AddIPAddressToNSGDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'add-ip-address-to-nsg-dialog',\r\n\t template: __webpack_require__(578),\r\n\t providers: [conversions_service_1.ConversionsService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef,\r\n\t conversions_service_1.ConversionsService])\r\n\t ], AddIPAddressToNSGDialog);\r\n\t return AddIPAddressToNSGDialog;\r\n\t}());\r\n\texports.AddIPAddressToNSGDialog = AddIPAddressToNSGDialog;\r\n\n\n/***/ },\n/* 578 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n Add IP to NSG\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\";\n\n/***/ },\n/* 579 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n security\\r\\n Conversion Pass {{ conversionPass?.passNumber}} ({{ conversionPass?.siteName }} - {{ conversionPass?.siteId}})\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Cloud Converter {{ getVMStatusText() }}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n clear Errors ({{ errorsCount }})\\r\\n warning Warnings ({{ warningsCount }}) \\r\\n event_note Messages ({{ informationCount }})\\r\\n person Incidents ({{ incidentsCount }})\\r\\n
\\r\\n
\\r\\n assignment Load all ({{ getLoadAllCount() }})\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n 0 && !logsLoader\\\" id=\\\"logs\\\" class=\\\"fixed_headers\\\" style=\\\"width:100%; font-size:.85em\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
TimeTypeDetails
{{ log?.eventTimestamp | date: 'dd-MMM-y, H:mm:ss (Z)' }}{{ getTypeIcon(log?.type) }}
{{ log?.taskId }}: {{ log?.description }}
\\r\\n
\\r\\n Load More\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\";\n\n/***/ },\n/* 580 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \".fixed_headers {\\r\\n width: 750px;\\r\\n table-layout: fixed;\\r\\n border-collapse: collapse;\\r\\n}\\r\\n.fixed_headers th {\\r\\n text-decoration: underline;\\r\\n}\\r\\n.fixed_headers th,\\r\\n.fixed_headers td {\\r\\n padding: 5px;\\r\\n text-align: left;\\r\\n}\\r\\n.fixed_headers td:nth-child(1),\\r\\n.fixed_headers th:nth-child(1) {\\r\\n min-width: 200px;\\r\\n}\\r\\n.fixed_headers td:nth-child(2),\\r\\n.fixed_headers th:nth-child(2) {\\r\\n min-width: 30px;\\r\\n}\\r\\n.fixed_headers td:nth-child(3),\\r\\n.fixed_headers th:nth-child(3) {\\r\\n width: 100%;\\r\\n}\\r\\n/*.fixed_headers thead {\\r\\n background-color: #333;\\r\\n color: #FDFDFD;\\r\\n}*/\\r\\n.fixed_headers thead tr {\\r\\n display: block;\\r\\n position: relative;\\r\\n}\\r\\n.fixed_headers tbody {\\r\\n display: block;\\r\\n overflow: auto;\\r\\n width: 100%;\\r\\n height: 450px;\\r\\n}\\r\\n/*.fixed_headers tbody tr:nth-child(even) {\\r\\n background-color: #DDD;\\r\\n}*/\\r\\n.old_ie_wrapper {\\r\\n height: 300px;\\r\\n width: 750px;\\r\\n overflow-x: hidden;\\r\\n overflow-y: auto;\\r\\n}\\r\\n.old_ie_wrapper tbody {\\r\\n height: auto;\\r\\n}\\r\\n\\r\\n.subscribed-section {\\r\\n animation: subscribe_pulse 5s infinite;\\r\\n color:#fff;\\r\\n}\\r\\n\\r\\n@keyframes subscribe_pulse {\\r\\n 0% {\\r\\n background-color: rgb(18, 195, 244);\\r\\n }\\r\\n 100% {\\r\\n background-color: rgb(33, 150, 243);\\r\\n }\\r\\n}\\r\\n\\r\\n.warning {\\r\\n color: rgb(255,140,0);\\r\\n}\\r\\n\\r\\n.error {\\r\\n color: rgb(236,0,140);\\r\\n}\\r\\n\\r\\n.logs-header {\\r\\n background-color:whitesmoke;\\r\\n color: #000;\\r\\n height: 50px;\\r\\n border: 1px solid #e0e0e0;\\r\\n display:flex;\\r\\n justify-content: space-between;\\r\\n align-items:center;\\r\\n}\\r\\n\\r\\n@media only screen and (max-width: 550px) {\\r\\n .logs-header {\\r\\n height: 120px;\\r\\n }\\r\\n}\\r\\n\\r\\n.schedule-header {\\r\\n background-color:whitesmoke;\\r\\n color: #000;\\r\\n height: 50px;\\r\\n border: 1px solid #e0e0e0;\\r\\n}\\r\\n\\r\\n.log-filter-button {\\r\\n cursor:pointer;\\r\\n padding:4px;\\r\\n}\\r\\n\\r\\n.log-filter-button:hover {\\r\\n background:#d8d8d8;\\r\\n padding:4px;\\r\\n}\\r\\n\\r\\n.active-filter {\\r\\n background: #d8d8d8;\\r\\n /*border: 1px solid #e0e0e0;*/\\r\\n}\\r\\n\\r\\ntable {\\r\\n border-collapse: collapse;\\r\\n background-color:#fff;\\r\\n}\\r\\n\\r\\ntbody, th, td {\\r\\n border-bottom: 1px solid #e0e0e0;\\r\\n}\\r\\n\\r\\n.vm-status {\\r\\n padding: 2px;\\r\\n}\\r\\n\\r\\n.vm-undefined {\\r\\n\\r\\n}\\r\\n\\r\\n.vm-online {\\r\\n background-color:green;\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n.vm-shutdown {\\r\\n background-color: orange;\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n.vm-deleted {\\r\\n background-color: red;\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n.active-tab { \\r\\n color: #0d6b9e;\\r\\n background: #f5f5f5;\\r\\n /* border-radius: 2px 2px 0px 0px; */\\r\\n border: 1px solid #e0e0e0;\\r\\n border-bottom: none; \\r\\n}\\r\\n\\r\\na:hover {\\r\\n color:#0d6b9e;\\r\\n}\\r\\n\\r\\n.conversion-status-bar {\\r\\n color: #fff;\\r\\n padding-left:14px;\\r\\n height:20px;\\r\\n border-top: 1px solid #e0e0e0;\\r\\n}\\r\\n\\r\\n.tab-bar {\\r\\n /* background: whitesmoke;\\r\\n border-top: 1px solid #e0e0e0; */\\r\\n display:flex;\\r\\n justify-content: space-between;\\r\\n}\\r\\n\\r\\n.InProgress {\\r\\n background:rgb(33, 150, 243);\\r\\n}\\r\\n\\r\\n.Stopped {\\r\\n background:red;\\r\\n}\\r\\n\\r\\n.Completed {\\r\\n background:green;\\r\\n}\"\n\n/***/ },\n/* 581 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar conversions_interface_1 = __webpack_require__(392);\r\n\tvar conversions_service_1 = __webpack_require__(378);\r\n\tvar conversion_hub_service_1 = __webpack_require__(302);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar interfaces_1 = __webpack_require__(304);\r\n\tvar date_pipe_1 = __webpack_require__(582);\r\n\tvar interfaces_2 = __webpack_require__(304);\r\n\tvar dom_events_1 = __webpack_require__(329);\r\n\tvar date_service_1 = __webpack_require__(583);\r\n\tvar util_1 = __webpack_require__(584);\r\n\tvar sites_service_1 = __webpack_require__(371);\r\n\tvar ConversionsComponent = (function () {\r\n\t function ConversionsComponent(sitesService, domEvents, router, route, conversionsService, conversionHubService, dateService, auth) {\r\n\t var _this = this;\r\n\t this.sitesService = sitesService;\r\n\t this.domEvents = domEvents;\r\n\t this.router = router;\r\n\t this.route = route;\r\n\t this.conversionsService = conversionsService;\r\n\t this.conversionHubService = conversionHubService;\r\n\t this.dateService = dateService;\r\n\t this.auth = auth;\r\n\t this.status = conversions_interface_1.ConversionStatus;\r\n\t this.docState = interfaces_2.DocumentState;\r\n\t this.conversionPasses = [];\r\n\t this.conversionPassesLoader = false;\r\n\t this.timeSpan = new date_pipe_1.TimeSpanPipe();\r\n\t this.groupName = 'conversions';\r\n\t this.stoppedCount = 0;\r\n\t this.inProgressCount = 0;\r\n\t this.completedCount = 0;\r\n\t this.archiveCount = 0;\r\n\t this.scheduleVisible = false;\r\n\t this.searchText = '';\r\n\t this.pageIndex = 0;\r\n\t this.tokens = [\"\"];\r\n\t this.hasMoreResults = false;\r\n\t this.pageSize = 25;\r\n\t this.Role = auth_service_1.Role;\r\n\t this.Permission = auth_service_1.Permission;\r\n\t this.sortColumn = \"\";\r\n\t this.sortAsc = null;\r\n\t this.site = null;\r\n\t this.zone = new core_1.NgZone({ enableLongStackTrace: false });\r\n\t this.route.params.subscribe(function (params) {\r\n\t _this.site = params['siteId'];\r\n\t });\r\n\t }\r\n\t ConversionsComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.currentDate = new Date();\r\n\t this.listenForConnection();\r\n\t if (!util_1.isUndefined(this.site)) {\r\n\t this.statusFilter = conversions_interface_1.ConversionStatus[conversions_interface_1.ConversionStatus.InProgress];\r\n\t sessionStorage.setItem('isFirstLoad', 'true');\r\n\t this.isFirstLoad = true;\r\n\t this.siteFilter = true;\r\n\t sessionStorage.setItem('siteFilter', 'true');\r\n\t this.searchText = this.site;\r\n\t this.filterSiteConversions();\r\n\t this.getConversionPassesCount([this.searchText]);\r\n\t }\r\n\t else {\r\n\t this.setSelectedTab();\r\n\t this.searchText = '';\r\n\t this.siteFilter = false;\r\n\t sessionStorage.setItem('siteFilter', 'false');\r\n\t this.unfilterSiteConversions();\r\n\t sessionStorage.setItem('searchText', this.searchText);\r\n\t this.getConversionPassesCount();\r\n\t }\r\n\t this.user = this.auth.getUser();\r\n\t this.conversionHubService.connectionState.subscribe(function (connectionState) {\r\n\t if (connectionState == interfaces_1.SignalRConnectionStatus.Connected) {\r\n\t console.log('Connected!');\r\n\t }\r\n\t else {\r\n\t console.log(connectionState.toString());\r\n\t }\r\n\t }, function (error) {\r\n\t console.log(error);\r\n\t });\r\n\t this.conversionHubService.addConversionPassEntry.subscribe(function (conversionPass) {\r\n\t _this.zone.run(function () {\r\n\t if (_this.isAdmin || _this.isEpicorEmployee || _this.user.sites.includes(conversionPass.siteId)) {\r\n\t _this.currentDate = new Date();\r\n\t _this.conversionPasses.push(conversionPass);\r\n\t }\r\n\t });\r\n\t });\r\n\t this.conversionHubService.updateConversionPassEntry.subscribe(function (conversionPass) {\r\n\t _this.zone.run(function () {\r\n\t _this.currentDate = new Date();\r\n\t var updateIndex = _this.conversionPasses.findIndex(function (item) { return item.passId === conversionPass.passId; });\r\n\t if (updateIndex != -1) {\r\n\t _this.conversionPasses[updateIndex].status = conversionPass.status;\r\n\t }\r\n\t });\r\n\t });\r\n\t this.isAdmin = this.auth.hasRole(auth_service_1.Role.Administrator);\r\n\t this.isEpicorEmployee = this.auth.hasRole(auth_service_1.Role.EpicorEmployee);\r\n\t this.domEvents.triggerOnDocument('appready');\r\n\t };\r\n\t ConversionsComponent.prototype.getConversionPasses = function (status, token, sortColumn, sortAsc, pageSize, docState, searchText) {\r\n\t var _this = this;\r\n\t if (token === void 0) { token = \"\"; }\r\n\t if (sortColumn === void 0) { sortColumn = null; }\r\n\t if (sortAsc === void 0) { sortAsc = null; }\r\n\t if (pageSize === void 0) { pageSize = 25; }\r\n\t if (searchText === void 0) { searchText = \"\"; }\r\n\t this.conversionPasses = [];\r\n\t this.conversionPassesLoader = true;\r\n\t if (status == 'Completed' || docState == 'Archived') {\r\n\t if (!this.siteFilter) {\r\n\t this.conversionPassesLoader = false;\r\n\t return;\r\n\t }\r\n\t }\r\n\t if (searchText == null)\r\n\t searchText = '';\r\n\t this.conversionsService.getConversionPassSummaries(searchText, status, null, token, sortColumn, sortAsc, pageSize, docState).subscribe(function (pagedResult) {\r\n\t _this.conversionPasses = pagedResult.result;\r\n\t _this.hasMoreResults = pagedResult.hasMoreResults;\r\n\t if (pagedResult.requestContinuation != null) {\r\n\t var token = JSON.parse(pagedResult.requestContinuation).token;\r\n\t if (typeof _this.tokens[_this.pageIndex + 1] === 'undefined') {\r\n\t _this.tokens.push(token);\r\n\t }\r\n\t }\r\n\t _this.conversionPassesLoader = false;\r\n\t _this.setSubscription(true);\r\n\t }, function (err) { return _this.conversionPassesLoader = false; });\r\n\t this.getConversionPassesCount([searchText]);\r\n\t };\r\n\t ConversionsComponent.prototype.getConversionPassesCompletedOrArchived = function (status, token, sortColumn, sortAsc, pageSize, docState, searchText) {\r\n\t var _this = this;\r\n\t if (token === void 0) { token = \"\"; }\r\n\t if (sortColumn === void 0) { sortColumn = null; }\r\n\t if (sortAsc === void 0) { sortAsc = null; }\r\n\t if (pageSize === void 0) { pageSize = 25; }\r\n\t if (searchText === void 0) { searchText = \"\"; }\r\n\t this.conversionPasses = [];\r\n\t this.conversionPassesLoader = true;\r\n\t this.conversionsService.getConversionPassSummaries(searchText, status, null, token, sortColumn, sortAsc, pageSize, docState).subscribe(function (pagedResult) {\r\n\t _this.conversionPasses = pagedResult.result;\r\n\t _this.hasMoreResults = pagedResult.hasMoreResults;\r\n\t if (pagedResult.requestContinuation != null) {\r\n\t var token = JSON.parse(pagedResult.requestContinuation).token;\r\n\t if (typeof _this.tokens[_this.pageIndex + 1] === 'undefined') {\r\n\t _this.tokens.push(token);\r\n\t }\r\n\t }\r\n\t _this.conversionPassesLoader = false;\r\n\t _this.setSubscription(true);\r\n\t }, function (err) { return _this.conversionPassesLoader = false; });\r\n\t this.getConversionPassesCount([searchText]);\r\n\t };\r\n\t ConversionsComponent.prototype.setSubscription = function (val) {\r\n\t try {\r\n\t this.subscribed = val;\r\n\t var subscription = {\r\n\t subscribe: val,\r\n\t groupName: this.groupName\r\n\t };\r\n\t this.updateSubscription(subscription);\r\n\t }\r\n\t catch (err) {\r\n\t console.error(\"Unable to subscribe to conversion hub\");\r\n\t this.subscribed = false;\r\n\t }\r\n\t };\r\n\t ConversionsComponent.prototype.listenForConnection = function () {\r\n\t var _this = this;\r\n\t this.conversionHubService.setConnectionId.subscribe(function (id) {\r\n\t console.log(id);\r\n\t _this.connectionId = id;\r\n\t }, function (err) { return console.log(err); });\r\n\t };\r\n\t ConversionsComponent.prototype.updateSubscription = function (subscription) {\r\n\t if (subscription.subscribe === true) {\r\n\t this.conversionHubService.subscribeToFeed(subscription.groupName);\r\n\t }\r\n\t else {\r\n\t this.conversionHubService.unsubscribeFromFeed(subscription.groupName);\r\n\t }\r\n\t };\r\n\t ConversionsComponent.prototype.getConversionPassesCount = function (siteId) {\r\n\t var _this = this;\r\n\t this.conversionsService.getConversionPassSummariesCount(conversions_interface_1.ConversionStatus[conversions_interface_1.ConversionStatus.Stopped], null, null, siteId).subscribe(function (res) {\r\n\t _this.stoppedCount = res.count;\r\n\t });\r\n\t this.conversionsService.getConversionPassSummariesCount(conversions_interface_1.ConversionStatus[conversions_interface_1.ConversionStatus.InProgress], null, null, siteId).subscribe(function (res) {\r\n\t _this.inProgressCount = res.count;\r\n\t });\r\n\t this.conversionsService.getConversionPassSummariesCount(conversions_interface_1.ConversionStatus[conversions_interface_1.ConversionStatus.Completed], null, null, siteId).subscribe(function (res) {\r\n\t _this.completedCount = res.count;\r\n\t });\r\n\t this.conversionsService.getConversionPassSummariesCount(null, null, interfaces_2.DocumentState[interfaces_2.DocumentState.Archived], siteId).subscribe(function (res) {\r\n\t _this.archiveCount = res.count;\r\n\t });\r\n\t };\r\n\t ConversionsComponent.prototype.filterConversionPasses = function (status, docState) {\r\n\t this.tokens = [\"\"];\r\n\t this.pageIndex = 0;\r\n\t this.sortColumn = \"\";\r\n\t this.sortAsc = null;\r\n\t this.isFirstLoad = false;\r\n\t if (!util_1.isUndefined(this.site)) {\r\n\t sessionStorage.setItem('isFirstLoad', 'false');\r\n\t this.siteFilter = sessionStorage.getItem('siteFilter');\r\n\t if (this.siteFilter === 'true' && this.isFirstLoad) {\r\n\t this.searchText = this.site;\r\n\t }\r\n\t else {\r\n\t this.searchText = sessionStorage.getItem('searchText');\r\n\t }\r\n\t }\r\n\t else {\r\n\t sessionStorage.removeItem('searchText');\r\n\t }\r\n\t if (typeof status === \"number\") {\r\n\t if (this.statusFilter === conversions_interface_1.ConversionStatus[status]) {\r\n\t this.statusFilter = null;\r\n\t this.getConversionPasses(this.statusFilter, null, this.sortColumn, this.sortAsc, this.pageSize, null, this.searchText);\r\n\t }\r\n\t else {\r\n\t this.statusFilter = conversions_interface_1.ConversionStatus[status];\r\n\t this.getConversionPasses(this.statusFilter, null, this.sortColumn, this.sortAsc, this.pageSize, null, this.searchText);\r\n\t this.scheduleVisible = false;\r\n\t }\r\n\t }\r\n\t if (typeof docState === \"number\") {\r\n\t if (this.statusFilter === interfaces_2.DocumentState[docState]) {\r\n\t this.statusFilter = null;\r\n\t this.getConversionPasses(this.statusFilter, null, this.sortColumn, this.sortAsc, this.pageSize, null, this.searchText);\r\n\t }\r\n\t else {\r\n\t this.statusFilter = interfaces_2.DocumentState[docState];\r\n\t this.getConversionPasses(null, null, this.sortColumn, this.sortAsc, this.pageSize, this.statusFilter, this.searchText);\r\n\t this.scheduleVisible = false;\r\n\t }\r\n\t }\r\n\t };\r\n\t ConversionsComponent.prototype.unfilterSiteConversions = function () {\r\n\t if (this.statusFilter === interfaces_2.DocumentState[interfaces_2.DocumentState.Archived])\r\n\t this.getConversionPasses(null, null, null, null, null, this.statusFilter, '');\r\n\t else\r\n\t this.getConversionPasses(this.statusFilter, null, null, null, null, null, '');\r\n\t };\r\n\t ConversionsComponent.prototype.filterSiteConversions = function () {\r\n\t this.getConversionPasses(this.statusFilter, null, this.sortColumn, this.sortAsc, this.pageSize, null, this.site);\r\n\t };\r\n\t ConversionsComponent.prototype.openSchedule = function () {\r\n\t if (this.scheduleVisible) {\r\n\t this.scheduleVisible = false;\r\n\t this.statusFilter = null;\r\n\t }\r\n\t else {\r\n\t this.scheduleVisible = true;\r\n\t this.statusFilter = null;\r\n\t }\r\n\t };\r\n\t ConversionsComponent.prototype.previousPassesPage = function () {\r\n\t this.sortColumn = sessionStorage.getItem('sortColumn');\r\n\t this.sortAsc = sessionStorage.getItem('sortAsc') == 'true' ? true : false;\r\n\t var searchText = sessionStorage.getItem('searchText');\r\n\t this.pageIndex -= 1;\r\n\t var token = this.tokens[this.pageIndex];\r\n\t if (typeof token !== 'undefined') {\r\n\t if (this.statusFilter === interfaces_2.DocumentState[interfaces_2.DocumentState.Archived]) {\r\n\t this.getConversionPasses(null, token, this.sortColumn, this.sortAsc, this.pageSize, this.statusFilter, searchText);\r\n\t }\r\n\t else {\r\n\t this.getConversionPasses(this.statusFilter, token, this.sortColumn, this.sortAsc, this.pageSize, null, searchText);\r\n\t }\r\n\t }\r\n\t else {\r\n\t this.pageIndex += 1;\r\n\t }\r\n\t };\r\n\t ConversionsComponent.prototype.nextPassesPage = function () {\r\n\t this.sortColumn = sessionStorage.getItem('sortColumn');\r\n\t this.sortAsc = sessionStorage.getItem('sortAsc') == 'true' ? true : false;\r\n\t var searchText = sessionStorage.getItem('searchText');\r\n\t this.pageIndex += 1;\r\n\t var token = this.tokens[this.pageIndex];\r\n\t if (typeof token !== 'undefined') {\r\n\t if (this.statusFilter === interfaces_2.DocumentState[interfaces_2.DocumentState.Archived]) {\r\n\t this.getConversionPasses(null, token, this.sortColumn, this.sortAsc, this.pageSize, this.statusFilter, searchText);\r\n\t }\r\n\t else {\r\n\t this.getConversionPasses(this.statusFilter, token, this.sortColumn, this.sortAsc, this.pageSize, null, searchText);\r\n\t }\r\n\t }\r\n\t else {\r\n\t this.pageIndex -= 1;\r\n\t }\r\n\t };\r\n\t ConversionsComponent.prototype.nextCompletedPassesPage = function (data) {\r\n\t this.tokens = data;\r\n\t this.sortColumn = sessionStorage.getItem('sortColumn');\r\n\t this.sortAsc = sessionStorage.getItem('sortAsc') == 'true' ? true : false;\r\n\t var searchText = sessionStorage.getItem('searchText');\r\n\t this.pageIndex += 1;\r\n\t var token = this.tokens[this.pageIndex];\r\n\t if (typeof token !== 'undefined') {\r\n\t if (this.statusFilter === interfaces_2.DocumentState[interfaces_2.DocumentState.Archived]) {\r\n\t this.getConversionPassesCompletedOrArchived(null, token, this.sortColumn, this.sortAsc, this.pageSize, this.statusFilter, searchText);\r\n\t }\r\n\t else {\r\n\t this.getConversionPassesCompletedOrArchived(this.statusFilter, token, this.sortColumn, this.sortAsc, this.pageSize, null, searchText);\r\n\t }\r\n\t }\r\n\t else {\r\n\t this.pageIndex -= 1;\r\n\t }\r\n\t };\r\n\t ConversionsComponent.prototype.previousCompletedPassesPage = function (data) {\r\n\t this.tokens = data;\r\n\t this.sortColumn = sessionStorage.getItem('sortColumn');\r\n\t this.sortAsc = sessionStorage.getItem('sortAsc') == 'true' ? true : false;\r\n\t var searchText = sessionStorage.getItem('searchText');\r\n\t this.pageIndex -= 1;\r\n\t var token = this.tokens[this.pageIndex];\r\n\t if (typeof token !== 'undefined') {\r\n\t if (this.statusFilter === interfaces_2.DocumentState[interfaces_2.DocumentState.Archived]) {\r\n\t this.getConversionPassesCompletedOrArchived(null, token, this.sortColumn, this.sortAsc, this.pageSize, this.statusFilter, searchText);\r\n\t }\r\n\t else {\r\n\t this.getConversionPassesCompletedOrArchived(this.statusFilter, token, this.sortColumn, this.sortAsc, this.pageSize, null, searchText);\r\n\t }\r\n\t }\r\n\t else {\r\n\t this.pageIndex += 1;\r\n\t }\r\n\t };\r\n\t ConversionsComponent.prototype.sorting = function () {\r\n\t this.tokens = [\"\"];\r\n\t this.pageIndex = 0;\r\n\t this.sortColumn = sessionStorage.getItem('sortColumn');\r\n\t this.sortAsc = sessionStorage.getItem('sortAsc') == 'true' ? true : false;\r\n\t var searchText = sessionStorage.getItem('searchText');\r\n\t if (this.statusFilter === interfaces_2.DocumentState[interfaces_2.DocumentState.Archived]) {\r\n\t this.getConversionPasses(null, null, this.sortColumn, this.sortAsc, this.pageSize, this.statusFilter, searchText);\r\n\t }\r\n\t else {\r\n\t this.getConversionPasses(this.statusFilter, null, this.sortColumn, this.sortAsc, this.pageSize, null, searchText);\r\n\t }\r\n\t };\r\n\t ConversionsComponent.prototype.refreshPasses = function () {\r\n\t this.tokens = [\"\"];\r\n\t this.pageIndex = 0;\r\n\t var searchText = sessionStorage.getItem('searchText');\r\n\t if (this.statusFilter === interfaces_2.DocumentState[interfaces_2.DocumentState.Archived]) {\r\n\t this.getConversionPassesCompletedOrArchived(null, null, this.sortColumn, this.sortAsc, this.pageSize, this.statusFilter, searchText);\r\n\t }\r\n\t else {\r\n\t this.getConversionPassesCompletedOrArchived(this.statusFilter, null, this.sortColumn, this.sortAsc, this.pageSize, null, searchText);\r\n\t }\r\n\t };\r\n\t ConversionsComponent.prototype.onRefresh = function (data) {\r\n\t if (data.pageSize) {\r\n\t this.pageSize = data.pageSize;\r\n\t }\r\n\t this.refreshPasses();\r\n\t };\r\n\t ConversionsComponent.prototype.ngOnDestroy = function () {\r\n\t this.setSubscription(false);\r\n\t };\r\n\t ConversionsComponent.prototype.onUpdateConversionsCount = function (data) {\r\n\t this.getConversionPassesCount(data);\r\n\t };\r\n\t ConversionsComponent.prototype.setSelectedTab = function () {\r\n\t var selectedStatus = sessionStorage.getItem('currentStatus');\r\n\t var selectedDocState = sessionStorage.getItem('currentDocState');\r\n\t var selectedSchedule = sessionStorage.getItem('currentSchedule');\r\n\t if (selectedSchedule === 'true') {\r\n\t this.scheduleVisible = true;\r\n\t }\r\n\t else {\r\n\t if (selectedStatus == null && selectedDocState == null) {\r\n\t this.statusFilter = conversions_interface_1.ConversionStatus[conversions_interface_1.ConversionStatus.InProgress];\r\n\t }\r\n\t else {\r\n\t if (selectedStatus != null) {\r\n\t switch (selectedStatus) {\r\n\t case 'InProgress':\r\n\t this.statusFilter = conversions_interface_1.ConversionStatus[conversions_interface_1.ConversionStatus.InProgress];\r\n\t break;\r\n\t case 'Stopped':\r\n\t this.statusFilter = conversions_interface_1.ConversionStatus[conversions_interface_1.ConversionStatus.Stopped];\r\n\t break;\r\n\t case 'Completed':\r\n\t this.statusFilter = conversions_interface_1.ConversionStatus[conversions_interface_1.ConversionStatus.Completed];\r\n\t break;\r\n\t }\r\n\t }\r\n\t if (selectedDocState != null && (selectedStatus == null || selectedDocState != 'null')) {\r\n\t this.statusFilter = interfaces_2.DocumentState[interfaces_2.DocumentState.Archived];\r\n\t }\r\n\t }\r\n\t }\r\n\t sessionStorage.removeItem('currentStatus');\r\n\t sessionStorage.removeItem('currentDocState');\r\n\t sessionStorage.removeItem('currentSchedule');\r\n\t };\r\n\t ConversionsComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'conversions',\r\n\t template: __webpack_require__(587),\r\n\t providers: [conversions_service_1.ConversionsService, date_service_1.DateService, sites_service_1.SitesService],\r\n\t styles: [__webpack_require__(588), __webpack_require__(589)]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [sites_service_1.SitesService,\r\n\t dom_events_1.DOMEvents,\r\n\t router_1.Router,\r\n\t router_1.ActivatedRoute,\r\n\t conversions_service_1.ConversionsService,\r\n\t conversion_hub_service_1.ConversionHubService,\r\n\t date_service_1.DateService,\r\n\t auth_service_1.AuthService])\r\n\t ], ConversionsComponent);\r\n\t return ConversionsComponent;\r\n\t}());\r\n\texports.ConversionsComponent = ConversionsComponent;\r\n\n\n/***/ },\n/* 582 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar TimeSpanPipe = (function () {\r\n\t function TimeSpanPipe() {\r\n\t }\r\n\t TimeSpanPipe.prototype.transform = function (start, end) {\r\n\t try {\r\n\t var diffHours = (Math.abs(start.getTime() - end.getTime()) / MS_IN_HOUR);\r\n\t var duration = diffHours;\r\n\t if (duration > 24) {\r\n\t return Math.round(duration / 24) + \" day(s)\";\r\n\t }\r\n\t else if (duration > 1) {\r\n\t return Math.round(duration) + \" hr(s)\";\r\n\t }\r\n\t else {\r\n\t var minutes = duration * 60;\r\n\t if (minutes < 1) {\r\n\t return Math.round(minutes * 60) + \" second(s)\";\r\n\t }\r\n\t return Math.round(minutes) + \" min(s)\";\r\n\t }\r\n\t }\r\n\t catch (err) {\r\n\t return '';\r\n\t }\r\n\t };\r\n\t TimeSpanPipe = __decorate([\r\n\t core_1.Pipe({ name: 'timespan' })\r\n\t ], TimeSpanPipe);\r\n\t return TimeSpanPipe;\r\n\t}());\r\n\texports.TimeSpanPipe = TimeSpanPipe;\r\n\tvar MS_IN_HOUR = 60 * 60 * 1000;\r\n\n\n/***/ },\n/* 583 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar date_pipe_1 = __webpack_require__(582);\r\n\tvar DateService = (function () {\r\n\t function DateService() {\r\n\t this.timeSpan = new date_pipe_1.TimeSpanPipe();\r\n\t }\r\n\t DateService.prototype.getTimeSpan = function (start, end) {\r\n\t if (start !== null && end !== null) {\r\n\t if (typeof start === \"string\") {\r\n\t start = new Date(start);\r\n\t }\r\n\t if (typeof end === \"string\") {\r\n\t end = new Date(end);\r\n\t }\r\n\t return this.timeSpan.transform(start, end) + \" ago\";\r\n\t }\r\n\t };\r\n\t DateService.prototype.getDate = function (start) {\r\n\t if (start !== null) {\r\n\t if (typeof start === \"string\") {\r\n\t start = new Date(start);\r\n\t }\r\n\t return \"\" + start;\r\n\t }\r\n\t };\r\n\t DateService = __decorate([\r\n\t core_1.Injectable()\r\n\t ], DateService);\r\n\t return DateService;\r\n\t}());\r\n\texports.DateService = DateService;\r\n\n\n/***/ },\n/* 584 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors.\n\t//\n\t// Permission is hereby granted, free of charge, to any person obtaining a\n\t// copy of this software and associated documentation files (the\n\t// \"Software\"), to deal in the Software without restriction, including\n\t// without limitation the rights to use, copy, modify, merge, publish,\n\t// distribute, sublicense, and/or sell copies of the Software, and to permit\n\t// persons to whom the Software is furnished to do so, subject to the\n\t// following conditions:\n\t//\n\t// The above copyright notice and this permission notice shall be included\n\t// in all copies or substantial portions of the Software.\n\t//\n\t// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n\t// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n\t// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n\t// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n\t// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n\t// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n\t// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\t\n\tvar formatRegExp = /%[sdj%]/g;\n\texports.format = function(f) {\n\t if (!isString(f)) {\n\t var objects = [];\n\t for (var i = 0; i < arguments.length; i++) {\n\t objects.push(inspect(arguments[i]));\n\t }\n\t return objects.join(' ');\n\t }\n\t\n\t var i = 1;\n\t var args = arguments;\n\t var len = args.length;\n\t var str = String(f).replace(formatRegExp, function(x) {\n\t if (x === '%%') return '%';\n\t if (i >= len) return x;\n\t switch (x) {\n\t case '%s': return String(args[i++]);\n\t case '%d': return Number(args[i++]);\n\t case '%j':\n\t try {\n\t return JSON.stringify(args[i++]);\n\t } catch (_) {\n\t return '[Circular]';\n\t }\n\t default:\n\t return x;\n\t }\n\t });\n\t for (var x = args[i]; i < len; x = args[++i]) {\n\t if (isNull(x) || !isObject(x)) {\n\t str += ' ' + x;\n\t } else {\n\t str += ' ' + inspect(x);\n\t }\n\t }\n\t return str;\n\t};\n\t\n\t\n\t// Mark that a method should not be used.\n\t// Returns a modified function which warns once by default.\n\t// If --no-deprecation is set, then it is a no-op.\n\texports.deprecate = function(fn, msg) {\n\t // Allow for deprecating things in the process of starting up.\n\t if (isUndefined(global.process)) {\n\t return function() {\n\t return exports.deprecate(fn, msg).apply(this, arguments);\n\t };\n\t }\n\t\n\t if (process.noDeprecation === true) {\n\t return fn;\n\t }\n\t\n\t var warned = false;\n\t function deprecated() {\n\t if (!warned) {\n\t if (process.throwDeprecation) {\n\t throw new Error(msg);\n\t } else if (process.traceDeprecation) {\n\t console.trace(msg);\n\t } else {\n\t console.error(msg);\n\t }\n\t warned = true;\n\t }\n\t return fn.apply(this, arguments);\n\t }\n\t\n\t return deprecated;\n\t};\n\t\n\t\n\tvar debugs = {};\n\tvar debugEnviron;\n\texports.debuglog = function(set) {\n\t if (isUndefined(debugEnviron))\n\t debugEnviron = ({\"ENV\":\"production\"}).NODE_DEBUG || '';\n\t set = set.toUpperCase();\n\t if (!debugs[set]) {\n\t if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n\t var pid = process.pid;\n\t debugs[set] = function() {\n\t var msg = exports.format.apply(exports, arguments);\n\t console.error('%s %d: %s', set, pid, msg);\n\t };\n\t } else {\n\t debugs[set] = function() {};\n\t }\n\t }\n\t return debugs[set];\n\t};\n\t\n\t\n\t/**\n\t * Echos the value of a value. Trys to print the value out\n\t * in the best way possible given the different types.\n\t *\n\t * @param {Object} obj The object to print out.\n\t * @param {Object} opts Optional options object that alters the output.\n\t */\n\t/* legacy: obj, showHidden, depth, colors*/\n\tfunction inspect(obj, opts) {\n\t // default options\n\t var ctx = {\n\t seen: [],\n\t stylize: stylizeNoColor\n\t };\n\t // legacy...\n\t if (arguments.length >= 3) ctx.depth = arguments[2];\n\t if (arguments.length >= 4) ctx.colors = arguments[3];\n\t if (isBoolean(opts)) {\n\t // legacy...\n\t ctx.showHidden = opts;\n\t } else if (opts) {\n\t // got an \"options\" object\n\t exports._extend(ctx, opts);\n\t }\n\t // set default options\n\t if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n\t if (isUndefined(ctx.depth)) ctx.depth = 2;\n\t if (isUndefined(ctx.colors)) ctx.colors = false;\n\t if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n\t if (ctx.colors) ctx.stylize = stylizeWithColor;\n\t return formatValue(ctx, obj, ctx.depth);\n\t}\n\texports.inspect = inspect;\n\t\n\t\n\t// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\n\tinspect.colors = {\n\t 'bold' : [1, 22],\n\t 'italic' : [3, 23],\n\t 'underline' : [4, 24],\n\t 'inverse' : [7, 27],\n\t 'white' : [37, 39],\n\t 'grey' : [90, 39],\n\t 'black' : [30, 39],\n\t 'blue' : [34, 39],\n\t 'cyan' : [36, 39],\n\t 'green' : [32, 39],\n\t 'magenta' : [35, 39],\n\t 'red' : [31, 39],\n\t 'yellow' : [33, 39]\n\t};\n\t\n\t// Don't use 'blue' not visible on cmd.exe\n\tinspect.styles = {\n\t 'special': 'cyan',\n\t 'number': 'yellow',\n\t 'boolean': 'yellow',\n\t 'undefined': 'grey',\n\t 'null': 'bold',\n\t 'string': 'green',\n\t 'date': 'magenta',\n\t // \"name\": intentionally not styling\n\t 'regexp': 'red'\n\t};\n\t\n\t\n\tfunction stylizeWithColor(str, styleType) {\n\t var style = inspect.styles[styleType];\n\t\n\t if (style) {\n\t return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n\t '\\u001b[' + inspect.colors[style][1] + 'm';\n\t } else {\n\t return str;\n\t }\n\t}\n\t\n\t\n\tfunction stylizeNoColor(str, styleType) {\n\t return str;\n\t}\n\t\n\t\n\tfunction arrayToHash(array) {\n\t var hash = {};\n\t\n\t array.forEach(function(val, idx) {\n\t hash[val] = true;\n\t });\n\t\n\t return hash;\n\t}\n\t\n\t\n\tfunction formatValue(ctx, value, recurseTimes) {\n\t // Provide a hook for user-specified inspect functions.\n\t // Check that value is an object with an inspect function on it\n\t if (ctx.customInspect &&\n\t value &&\n\t isFunction(value.inspect) &&\n\t // Filter out the util module, it's inspect function is special\n\t value.inspect !== exports.inspect &&\n\t // Also filter out any prototype objects using the circular check.\n\t !(value.constructor && value.constructor.prototype === value)) {\n\t var ret = value.inspect(recurseTimes, ctx);\n\t if (!isString(ret)) {\n\t ret = formatValue(ctx, ret, recurseTimes);\n\t }\n\t return ret;\n\t }\n\t\n\t // Primitive types cannot have properties\n\t var primitive = formatPrimitive(ctx, value);\n\t if (primitive) {\n\t return primitive;\n\t }\n\t\n\t // Look up the keys of the object.\n\t var keys = Object.keys(value);\n\t var visibleKeys = arrayToHash(keys);\n\t\n\t if (ctx.showHidden) {\n\t keys = Object.getOwnPropertyNames(value);\n\t }\n\t\n\t // IE doesn't make error fields non-enumerable\n\t // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n\t if (isError(value)\n\t && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n\t return formatError(value);\n\t }\n\t\n\t // Some type of object without properties can be shortcutted.\n\t if (keys.length === 0) {\n\t if (isFunction(value)) {\n\t var name = value.name ? ': ' + value.name : '';\n\t return ctx.stylize('[Function' + name + ']', 'special');\n\t }\n\t if (isRegExp(value)) {\n\t return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n\t }\n\t if (isDate(value)) {\n\t return ctx.stylize(Date.prototype.toString.call(value), 'date');\n\t }\n\t if (isError(value)) {\n\t return formatError(value);\n\t }\n\t }\n\t\n\t var base = '', array = false, braces = ['{', '}'];\n\t\n\t // Make Array say that they are Array\n\t if (isArray(value)) {\n\t array = true;\n\t braces = ['[', ']'];\n\t }\n\t\n\t // Make functions say that they are functions\n\t if (isFunction(value)) {\n\t var n = value.name ? ': ' + value.name : '';\n\t base = ' [Function' + n + ']';\n\t }\n\t\n\t // Make RegExps say that they are RegExps\n\t if (isRegExp(value)) {\n\t base = ' ' + RegExp.prototype.toString.call(value);\n\t }\n\t\n\t // Make dates with properties first say the date\n\t if (isDate(value)) {\n\t base = ' ' + Date.prototype.toUTCString.call(value);\n\t }\n\t\n\t // Make error with message first say the error\n\t if (isError(value)) {\n\t base = ' ' + formatError(value);\n\t }\n\t\n\t if (keys.length === 0 && (!array || value.length == 0)) {\n\t return braces[0] + base + braces[1];\n\t }\n\t\n\t if (recurseTimes < 0) {\n\t if (isRegExp(value)) {\n\t return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n\t } else {\n\t return ctx.stylize('[Object]', 'special');\n\t }\n\t }\n\t\n\t ctx.seen.push(value);\n\t\n\t var output;\n\t if (array) {\n\t output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n\t } else {\n\t output = keys.map(function(key) {\n\t return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n\t });\n\t }\n\t\n\t ctx.seen.pop();\n\t\n\t return reduceToSingleString(output, base, braces);\n\t}\n\t\n\t\n\tfunction formatPrimitive(ctx, value) {\n\t if (isUndefined(value))\n\t return ctx.stylize('undefined', 'undefined');\n\t if (isString(value)) {\n\t var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n\t .replace(/'/g, \"\\\\'\")\n\t .replace(/\\\\\"/g, '\"') + '\\'';\n\t return ctx.stylize(simple, 'string');\n\t }\n\t if (isNumber(value))\n\t return ctx.stylize('' + value, 'number');\n\t if (isBoolean(value))\n\t return ctx.stylize('' + value, 'boolean');\n\t // For some reason typeof null is \"object\", so special case here.\n\t if (isNull(value))\n\t return ctx.stylize('null', 'null');\n\t}\n\t\n\t\n\tfunction formatError(value) {\n\t return '[' + Error.prototype.toString.call(value) + ']';\n\t}\n\t\n\t\n\tfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n\t var output = [];\n\t for (var i = 0, l = value.length; i < l; ++i) {\n\t if (hasOwnProperty(value, String(i))) {\n\t output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n\t String(i), true));\n\t } else {\n\t output.push('');\n\t }\n\t }\n\t keys.forEach(function(key) {\n\t if (!key.match(/^\\d+$/)) {\n\t output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n\t key, true));\n\t }\n\t });\n\t return output;\n\t}\n\t\n\t\n\tfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n\t var name, str, desc;\n\t desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n\t if (desc.get) {\n\t if (desc.set) {\n\t str = ctx.stylize('[Getter/Setter]', 'special');\n\t } else {\n\t str = ctx.stylize('[Getter]', 'special');\n\t }\n\t } else {\n\t if (desc.set) {\n\t str = ctx.stylize('[Setter]', 'special');\n\t }\n\t }\n\t if (!hasOwnProperty(visibleKeys, key)) {\n\t name = '[' + key + ']';\n\t }\n\t if (!str) {\n\t if (ctx.seen.indexOf(desc.value) < 0) {\n\t if (isNull(recurseTimes)) {\n\t str = formatValue(ctx, desc.value, null);\n\t } else {\n\t str = formatValue(ctx, desc.value, recurseTimes - 1);\n\t }\n\t if (str.indexOf('\\n') > -1) {\n\t if (array) {\n\t str = str.split('\\n').map(function(line) {\n\t return ' ' + line;\n\t }).join('\\n').substr(2);\n\t } else {\n\t str = '\\n' + str.split('\\n').map(function(line) {\n\t return ' ' + line;\n\t }).join('\\n');\n\t }\n\t }\n\t } else {\n\t str = ctx.stylize('[Circular]', 'special');\n\t }\n\t }\n\t if (isUndefined(name)) {\n\t if (array && key.match(/^\\d+$/)) {\n\t return str;\n\t }\n\t name = JSON.stringify('' + key);\n\t if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n\t name = name.substr(1, name.length - 2);\n\t name = ctx.stylize(name, 'name');\n\t } else {\n\t name = name.replace(/'/g, \"\\\\'\")\n\t .replace(/\\\\\"/g, '\"')\n\t .replace(/(^\"|\"$)/g, \"'\");\n\t name = ctx.stylize(name, 'string');\n\t }\n\t }\n\t\n\t return name + ': ' + str;\n\t}\n\t\n\t\n\tfunction reduceToSingleString(output, base, braces) {\n\t var numLinesEst = 0;\n\t var length = output.reduce(function(prev, cur) {\n\t numLinesEst++;\n\t if (cur.indexOf('\\n') >= 0) numLinesEst++;\n\t return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n\t }, 0);\n\t\n\t if (length > 60) {\n\t return braces[0] +\n\t (base === '' ? '' : base + '\\n ') +\n\t ' ' +\n\t output.join(',\\n ') +\n\t ' ' +\n\t braces[1];\n\t }\n\t\n\t return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n\t}\n\t\n\t\n\t// NOTE: These type checking functions intentionally don't use `instanceof`\n\t// because it is fragile and can be easily faked with `Object.create()`.\n\tfunction isArray(ar) {\n\t return Array.isArray(ar);\n\t}\n\texports.isArray = isArray;\n\t\n\tfunction isBoolean(arg) {\n\t return typeof arg === 'boolean';\n\t}\n\texports.isBoolean = isBoolean;\n\t\n\tfunction isNull(arg) {\n\t return arg === null;\n\t}\n\texports.isNull = isNull;\n\t\n\tfunction isNullOrUndefined(arg) {\n\t return arg == null;\n\t}\n\texports.isNullOrUndefined = isNullOrUndefined;\n\t\n\tfunction isNumber(arg) {\n\t return typeof arg === 'number';\n\t}\n\texports.isNumber = isNumber;\n\t\n\tfunction isString(arg) {\n\t return typeof arg === 'string';\n\t}\n\texports.isString = isString;\n\t\n\tfunction isSymbol(arg) {\n\t return typeof arg === 'symbol';\n\t}\n\texports.isSymbol = isSymbol;\n\t\n\tfunction isUndefined(arg) {\n\t return arg === void 0;\n\t}\n\texports.isUndefined = isUndefined;\n\t\n\tfunction isRegExp(re) {\n\t return isObject(re) && objectToString(re) === '[object RegExp]';\n\t}\n\texports.isRegExp = isRegExp;\n\t\n\tfunction isObject(arg) {\n\t return typeof arg === 'object' && arg !== null;\n\t}\n\texports.isObject = isObject;\n\t\n\tfunction isDate(d) {\n\t return isObject(d) && objectToString(d) === '[object Date]';\n\t}\n\texports.isDate = isDate;\n\t\n\tfunction isError(e) {\n\t return isObject(e) &&\n\t (objectToString(e) === '[object Error]' || e instanceof Error);\n\t}\n\texports.isError = isError;\n\t\n\tfunction isFunction(arg) {\n\t return typeof arg === 'function';\n\t}\n\texports.isFunction = isFunction;\n\t\n\tfunction isPrimitive(arg) {\n\t return arg === null ||\n\t typeof arg === 'boolean' ||\n\t typeof arg === 'number' ||\n\t typeof arg === 'string' ||\n\t typeof arg === 'symbol' || // ES6 symbol\n\t typeof arg === 'undefined';\n\t}\n\texports.isPrimitive = isPrimitive;\n\t\n\texports.isBuffer = __webpack_require__(585);\n\t\n\tfunction objectToString(o) {\n\t return Object.prototype.toString.call(o);\n\t}\n\t\n\t\n\tfunction pad(n) {\n\t return n < 10 ? '0' + n.toString(10) : n.toString(10);\n\t}\n\t\n\t\n\tvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n\t 'Oct', 'Nov', 'Dec'];\n\t\n\t// 26 Feb 16:19:34\n\tfunction timestamp() {\n\t var d = new Date();\n\t var time = [pad(d.getHours()),\n\t pad(d.getMinutes()),\n\t pad(d.getSeconds())].join(':');\n\t return [d.getDate(), months[d.getMonth()], time].join(' ');\n\t}\n\t\n\t\n\t// log is just a thin wrapper to console.log that prepends a timestamp\n\texports.log = function() {\n\t console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n\t};\n\t\n\t\n\t/**\n\t * Inherit the prototype methods from one constructor into another.\n\t *\n\t * The Function.prototype.inherits from lang.js rewritten as a standalone\n\t * function (not on Function.prototype). NOTE: If this file is to be loaded\n\t * during bootstrapping this function needs to be rewritten using some native\n\t * functions as prototype setup using normal JavaScript does not work as\n\t * expected during bootstrapping (see mirror.js in r114903).\n\t *\n\t * @param {function} ctor Constructor function which needs to inherit the\n\t * prototype.\n\t * @param {function} superCtor Constructor function to inherit prototype from.\n\t */\n\texports.inherits = __webpack_require__(586);\n\t\n\texports._extend = function(origin, add) {\n\t // Don't do anything if add isn't an object\n\t if (!add || !isObject(add)) return origin;\n\t\n\t var keys = Object.keys(add);\n\t var i = keys.length;\n\t while (i--) {\n\t origin[keys[i]] = add[keys[i]];\n\t }\n\t return origin;\n\t};\n\t\n\tfunction hasOwnProperty(obj, prop) {\n\t return Object.prototype.hasOwnProperty.call(obj, prop);\n\t}\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(116)))\n\n/***/ },\n/* 585 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function isBuffer(arg) {\n\t return arg && typeof arg === 'object'\n\t && typeof arg.copy === 'function'\n\t && typeof arg.fill === 'function'\n\t && typeof arg.readUInt8 === 'function';\n\t}\n\n/***/ },\n/* 586 */\n/***/ function(module, exports) {\n\n\tif (typeof Object.create === 'function') {\n\t // implementation from standard node.js 'util' module\n\t module.exports = function inherits(ctor, superCtor) {\n\t ctor.super_ = superCtor\n\t ctor.prototype = Object.create(superCtor.prototype, {\n\t constructor: {\n\t value: ctor,\n\t enumerable: false,\n\t writable: true,\n\t configurable: true\n\t }\n\t });\n\t };\n\t} else {\n\t // old school shim for old browsers\n\t module.exports = function inherits(ctor, superCtor) {\n\t ctor.super_ = superCtor\n\t var TempCtor = function () {}\n\t TempCtor.prototype = superCtor.prototype\n\t ctor.prototype = new TempCtor()\n\t ctor.prototype.constructor = ctor\n\t }\n\t}\n\n\n/***/ },\n/* 587 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"Conversions \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \";\n\n/***/ },\n/* 588 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \".subscribed {\\r\\n animation: subscribe_pulse 5s infinite;\\r\\n}\\r\\n\\r\\n@keyframes subscribe_pulse {\\r\\n 0% {\\r\\n color: rgb(18, 195, 244);\\r\\n }\\r\\n 100% {\\r\\n color: #000;\\r\\n }\\r\\n}\\r\\n\\r\\n.warning {\\r\\n color: rgb(255,140,0);\\r\\n}\\r\\n\\r\\n.error {\\r\\n color: rgb(236,0,140);\\r\\n}\\r\\n\\r\\n.info {\\r\\n color: #000;\\r\\n}\\r\\n\\r\\n.completed {\\r\\n color:#1DE9B6;\\r\\n}\\r\\n\\r\\n.active-filter {\\r\\n background: #69c09a;\\r\\n}\\r\\n\\r\\n.hightlight-warning {\\r\\n background: rgb(255,140,0);\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n.hightlight-error {\\r\\n background: rgb(236,0,140);\\r\\n color: #fff;\\r\\n}\"\n\n/***/ },\n/* 589 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"/*\\r\\n * Define the widths: play around with these \\r\\n * to get a best fit.\\r\\n */\\r\\n/*\\r\\n * Basic styles, good for a large display. Everything fits in\\r\\n * one row, no wrapping. All text based cells grow equally.\\r\\n */\\r\\n.table-row {\\r\\n display: flex;\\r\\n display: -webkit-flex;\\r\\n flex-direction: row;\\r\\n -webkit-flex-direction: row;\\r\\n flex-wrap: no-wrap;\\r\\n -webkit-flex-wrap: no-wrap;\\r\\n width: 100%;\\r\\n background-color:#fff;\\r\\n /*padding-left: 15px;\\r\\n padding-right: 15px;*/\\r\\n}\\r\\n\\r\\n.table-row:hover {\\r\\n background-color:whitesmoke;\\r\\n cursor:pointer;\\r\\n}\\r\\n\\r\\n.wrapper {\\r\\n display: flex;\\r\\n display: -webkit-flex;\\r\\n flex-direction: row;\\r\\n -webkit-flex-direction: row;\\r\\n}\\r\\n.column {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n flex-shrink: 0;\\r\\n -webkit-flex-shrink: 0;\\r\\n vertical-align: top;\\r\\n}\\r\\n/*.index {\\r\\n width: 25px;\\r\\n}*/\\r\\n.title {\\r\\n width: 50px;\\r\\n}\\r\\n.module {\\r\\n width: 110px;\\r\\n}\\r\\n.reporter {\\r\\n width: 85px;\\r\\n}\\r\\n.status {\\r\\n width: 95px;\\r\\n}\\r\\n.owner {\\r\\n width: 75px;\\r\\n}\\r\\n.severity {\\r\\n width: 80px;\\r\\n}\\r\\n.watch,\\r\\n.add-comment {\\r\\n width: 18px;\\r\\n}\\r\\n.date {\\r\\n width: 110px;\\r\\n}\\r\\n.index {\\r\\n text-align: center;\\r\\n}\\r\\n.title {\\r\\n /*font-weight: bold;*/\\r\\n /*color: gray;*/\\r\\n}\\r\\n.comment {\\r\\n width: 120px;\\r\\n}\\r\\n.title,\\r\\n.comment {\\r\\n flex-grow: 1;\\r\\n -webkit-flex-grow: 1;\\r\\n overflow: hidden;\\r\\n white-space: pre-wrap;\\r\\n text-overflow: ellipsis;\\r\\n padding-right: 4px;\\r\\n}\\r\\n.date {\\r\\n width: 110px;\\r\\n /*text-align:right;*/\\r\\n padding-right: 4px;\\r\\n}\\r\\n/* growable wrappers */\\r\\n.title-comment,\\r\\n.title-comment-module-reporter,\\r\\n.attributes {\\r\\n flex-grow: 1;\\r\\n -webkit-flex-grow: 1;\\r\\n}\\r\\n/*\\r\\n * Media queries: optimize for different screen widths.\\r\\n */\\r\\n/*\\r\\n * Media breaks.\\r\\n */\\r\\n@media all and (max-width: 1236px) {\\r\\n .title-comment {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n width: 220px;\\r\\n }\\r\\n .title-comment div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n .title-comment > div {\\r\\n width: 100%;\\r\\n }\\r\\n .module-reporter,\\r\\n .status-owner {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n }\\r\\n .module-reporter div,\\r\\n .status-owner div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n}\\r\\n@media all and (max-width: 956px) {\\r\\n .module-reporter {\\r\\n flex-direction: row;\\r\\n -webkit-flex-direction: row;\\r\\n }\\r\\n .title-comment-module-reporter {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n width: 220px;\\r\\n }\\r\\n .title-comment-module-reporter div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n .title-comment-module-reporter > div {\\r\\n width: 100%;\\r\\n }\\r\\n .status-owner-severity {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n }\\r\\n .status-owner-severity div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n .icons {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n }\\r\\n .icons div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n .dates {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n }\\r\\n .dates div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n}\\r\\n@media all and (max-width: 528px) {\\r\\n .table-row {\\r\\n padding-left: 4px;\\r\\n /*padding-right: 4px;*/\\r\\n }\\r\\n .attributes {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n width: 220px;\\r\\n }\\r\\n .attributes div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n .attributes > div {\\r\\n width: 100%;\\r\\n }\\r\\n .module-reporter,\\r\\n .status-owner {\\r\\n flex-direction: row;\\r\\n -webkit-flex-direction: row;\\r\\n }\\r\\n}\\r\\n/*\\r\\n * General good-look styles\\r\\n */\\r\\n.table-row {\\r\\n border-bottom: 1px solid #e0e0e0;\\r\\n border-collapse: collapse;\\r\\n padding-top: 2px;\\r\\n}\\r\\n.table-row.header {\\r\\n background-color: #fff;\\r\\n font-weight: bold;\\r\\n padding-top: 6px;\\r\\n padding-bottom: 6px;\\r\\n color:grey;\\r\\n font-size:12px;\\r\\n}\\r\\n\\r\\n.table-row {\\r\\n border-bottom: 1px solid #e0e0e0;\\r\\n border-collapse: collapse;\\r\\n padding-top: 2px;\\r\\n}\\r\\n\\r\\n.comment {\\r\\n font-style:unset;\\r\\n}\\r\\n.status.inprogress {\\r\\n color: #000;\\r\\n}\\r\\n.status.completed {\\r\\n color: #00E676;\\r\\n}\\r\\n.status.stopped {\\r\\n color: rgb(255, 23, 68);\\r\\n}\\r\\n\"\n\n/***/ },\n/* 590 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar conversions_service_1 = __webpack_require__(378);\r\n\tvar conversion_hub_service_1 = __webpack_require__(302);\r\n\tvar interfaces_1 = __webpack_require__(304);\r\n\tvar date_service_1 = __webpack_require__(583);\r\n\tvar dom_events_1 = __webpack_require__(329);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar sites_service_1 = __webpack_require__(371);\r\n\tvar common_1 = __webpack_require__(44);\r\n\tvar ConversionComponent = (function () {\r\n\t function ConversionComponent(pagerService, domEvents, router, route, conversionHubService, conversionsService, dateService, sitesService, datePipe) {\r\n\t var _this = this;\r\n\t this.pagerService = pagerService;\r\n\t this.domEvents = domEvents;\r\n\t this.router = router;\r\n\t this.route = route;\r\n\t this.conversionHubService = conversionHubService;\r\n\t this.conversionsService = conversionsService;\r\n\t this.dateService = dateService;\r\n\t this.sitesService = sitesService;\r\n\t this.datePipe = datePipe;\r\n\t this.configurationContainer = {\r\n\t icon: 'expand_less',\r\n\t open: true\r\n\t };\r\n\t this.passesContainer = {\r\n\t icon: 'expand_less',\r\n\t open: true\r\n\t };\r\n\t this.status = interfaces_1.ConversionStatus;\r\n\t this.editConfiguration = false;\r\n\t this.remainingPasses = \"\";\r\n\t this.ttl = {\r\n\t shutdownOn: null,\r\n\t deleteOn: null\r\n\t };\r\n\t this.route.params.subscribe(function (params) {\r\n\t _this.conversionId = params['conversionId'];\r\n\t _this.siteId = +params['siteId'];\r\n\t });\r\n\t }\r\n\t ConversionComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.currentDate = new Date();\r\n\t this.getConversion(this.conversionId);\r\n\t this.getConversionPasses(this.conversionId);\r\n\t this.getSite(this.siteId);\r\n\t this.domEvents.triggerOnDocument('appready');\r\n\t this.conversionsService.getRemainingPasses(this.conversionId).subscribe(function (remainingPasses) {\r\n\t if (typeof remainingPasses === \"number\") {\r\n\t _this.remainingPasses = remainingPasses;\r\n\t }\r\n\t else {\r\n\t _this.remainingPasses = 0;\r\n\t }\r\n\t });\r\n\t };\r\n\t ConversionComponent.prototype.getSite = function (siteId) {\r\n\t var _this = this;\r\n\t this.sitesService.getSite(siteId).subscribe(function (site) { return _this.site = site; });\r\n\t };\r\n\t ConversionComponent.prototype.getConversion = function (conversionId) {\r\n\t var _this = this;\r\n\t this.conversionsService.getConversion(conversionId).subscribe(function (conversion) {\r\n\t _this.conversion = conversion;\r\n\t if (_this.conversion.configuration.deployment == 'DT SaaS')\r\n\t _this.conversion.configuration.deployment = 'Epicor ERP Public Cloud';\r\n\t });\r\n\t };\r\n\t ConversionComponent.prototype.editConversion = function () {\r\n\t if (this.conversionId) {\r\n\t this.router.navigateByUrl(\"/conversions/\" + this.conversionId);\r\n\t }\r\n\t };\r\n\t ConversionComponent.prototype.getConversionPasses = function (conversionId) {\r\n\t var _this = this;\r\n\t this.conversionsService.getConversionPassSummaries(null, null, conversionId).subscribe(function (pagedResult) { return _this.conversionPasses = pagedResult.result; });\r\n\t };\r\n\t ConversionComponent.prototype.getConversionStatus = function (status) {\r\n\t return interfaces_1.ConversionStatus[status];\r\n\t };\r\n\t ConversionComponent.prototype.getConversionSubtitle = function (conversion) {\r\n\t if (conversion) {\r\n\t return conversion.configuration.fromProduct + \" \" + conversion.configuration.fromVersion + \" to \" + conversion.configuration.toProduct + \" \" + conversion.configuration.toVersion;\r\n\t }\r\n\t return '';\r\n\t };\r\n\t ConversionComponent.prototype.viewConversionPass = function (conversionPass) {\r\n\t if (conversionPass) {\r\n\t this.router.navigateByUrl(\"/conversions/\" + conversionPass.conversionId + \"/passes/\" + conversionPass.passNumber);\r\n\t }\r\n\t };\r\n\t ConversionComponent.prototype.deleteConversionPass = function (conversionPass) {\r\n\t var _this = this;\r\n\t if (confirm(\"Are you sure you want to delete conversion pass?\")) {\r\n\t this.ttl.shutdownOn = new Date().toISOString().substring(0, 19);\r\n\t this.ttl.deleteOn = new Date().toISOString().substring(0, 19);\r\n\t this.conversionsService.updateConversionPassTTL(conversionPass.passId, this.ttl).subscribe(function (ttl) {\r\n\t _this.conversionsService.deleteConversionPass(conversionPass.passId).subscribe(function (res) {\r\n\t _this.getConversionPasses(_this.conversionId);\r\n\t });\r\n\t });\r\n\t }\r\n\t };\r\n\t ConversionComponent.prototype.getTimeSpanFromNow = function (modifiedDate) {\r\n\t return this.dateService.getTimeSpan(this.currentDate, new Date(modifiedDate));\r\n\t };\r\n\t ConversionComponent.prototype.goLiveDateConversion = function (goLiveDate, plannedTimezone) {\r\n\t if (goLiveDate != null || goLiveDate != \"\") {\r\n\t if (plannedTimezone != null) {\r\n\t var convertedDate = new Date(\"\" + goLiveDate + plannedTimezone);\r\n\t return this.datePipe.transform(convertedDate, 'MMM dd, yyyy hh:mm aa');\r\n\t }\r\n\t else {\r\n\t var convertedDate = new Date(\"\" + goLiveDate);\r\n\t return this.datePipe.transform(convertedDate, 'MMM dd, yyyy hh:mm aa');\r\n\t }\r\n\t }\r\n\t };\r\n\t ConversionComponent.prototype.ngOnDestroy = function () {\r\n\t };\r\n\t ConversionComponent.prototype.back = function () {\r\n\t window.history.back();\r\n\t };\r\n\t ConversionComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'conversion',\r\n\t template: __webpack_require__(591),\r\n\t providers: [conversions_service_1.ConversionsService, pager_service_1.PagerService, sites_service_1.SitesService, date_service_1.DateService, common_1.DatePipe]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [pager_service_1.PagerService,\r\n\t dom_events_1.DOMEvents,\r\n\t router_1.Router,\r\n\t router_1.ActivatedRoute,\r\n\t conversion_hub_service_1.ConversionHubService,\r\n\t conversions_service_1.ConversionsService,\r\n\t date_service_1.DateService,\r\n\t sites_service_1.SitesService,\r\n\t common_1.DatePipe])\r\n\t ], ConversionComponent);\r\n\t return ConversionComponent;\r\n\t}());\r\n\texports.ConversionComponent = ConversionComponent;\r\n\n\n/***/ },\n/* 591 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"Conversion ({{ site.siteName }} - {{site.siteId}})\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n chevron_left\\r\\n \\r\\n Back\\r\\n\\r\\n\\r\\n
\\r\\n {{ getConversionSubtitle(conversion) }}\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
From Product: {{ conversion?.configuration?.fromProduct }}To Product: {{ conversion?.configuration?.toProduct }}Conversion Process: {{ conversion?.configuration?.conversionProcess }}
From Version: {{ conversion?.configuration?.fromVersion }}To Version: {{ conversion?.configuration?.toVersion }}Conversion Type: {{ conversion?.configuration?.conversionType }}
Status: {{ getConversionStatus(conversion?.status) }}Deployment: {{ conversion?.configuration?.deployment }}Go Live Date: {{conversion?.configuration?.goLivePass ? ((conversion?.configuration?.goLiveDate && conversion?.configuration?.goLivePass) ? goLiveDateConversion(conversion?.configuration?.goLiveDate, conversion?.configuration?.plannedTimezone) : (conversion?.configuration?.goLiveDate)) : '' }}
Enable Db Packer: {{ conversion?.configuration?.enableDbPacker === true ? 'Yes': 'No' }}Region: {{ conversion?.configuration?.region }}Passes Limit: {{ conversion?.configuration?.passesLimit }}
Enable Send To Support: {{ conversion?.configuration?.enableSendToSupport === true ? 'Yes': 'No' }}Remaining passes: {{remainingPasses}} Status:
Notification Emails: {{ conversion?.configuration?.notificationEmails }}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Pass NumberStart DateEnd DateStatusLast Modified
{{ conversionPass?.passNumber }}{{ conversionPass?.startDate | date: 'medium' }}{{ conversionPass?.endDate | date: 'medium' }}{{ status[conversionPass?.status] }}{{ getTimeSpanFromNow(conversionPass?.modifiedDate) }}
\\r\\n
\\r\\n
\\r\\n\";\n\n/***/ },\n/* 592 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar conversions_service_1 = __webpack_require__(378);\r\n\tvar util_1 = __webpack_require__(584);\r\n\tvar common_1 = __webpack_require__(44);\r\n\tvar ConversionScheduleComponent = (function () {\r\n\t function ConversionScheduleComponent(conversionsService, auth, router, route, datePipe) {\r\n\t this.conversionsService = conversionsService;\r\n\t this.auth = auth;\r\n\t this.router = router;\r\n\t this.route = route;\r\n\t this.datePipe = datePipe;\r\n\t this.showAll = false;\r\n\t this.loaded = false;\r\n\t this.schedule = [];\r\n\t this.scheduleLoader = false;\r\n\t this.myDatePickerOptions = {\r\n\t dateFormat: 'yyyy-mm-dd',\r\n\t inline: false,\r\n\t markCurrentDay: true,\r\n\t openSelectorOnInputClick: true,\r\n\t height: '18px',\r\n\t width: '160px'\r\n\t };\r\n\t this.users = [];\r\n\t this.searchText = '';\r\n\t this.pageIndex = 0;\r\n\t this.tokens = [\"\"];\r\n\t this.hasMoreResults = false;\r\n\t this.completedFilter = 'No';\r\n\t this.livePassFilter = '';\r\n\t this.plannedDateFilter = '';\r\n\t this.pageSize = 10;\r\n\t this.pageSizes = [\r\n\t { value: 5, viewValue: '5' },\r\n\t { value: 10, viewValue: '10' },\r\n\t { value: 25, viewValue: '25' },\r\n\t { value: 50, viewValue: '50' },\r\n\t { value: 100, viewValue: '100' }\r\n\t ];\r\n\t this.sortAsc = false;\r\n\t this.sortColName = '';\r\n\t this.site = null;\r\n\t this.siteFilter = false;\r\n\t this.isFirstLoad = false;\r\n\t }\r\n\t ConversionScheduleComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.user = this.auth.getUser();\r\n\t this.route.params.subscribe(function (params) {\r\n\t _this.site = params['siteId'];\r\n\t });\r\n\t if (!util_1.isUndefined(this.site)) {\r\n\t this.isFirstLoad = sessionStorage.getItem('isFirstLoad');\r\n\t if (this.isFirstLoad === 'true') {\r\n\t this.siteFilter = true;\r\n\t this.searchText = this.site;\r\n\t this.loadSchedule();\r\n\t this.showAll = true;\r\n\t this.loaded = true;\r\n\t }\r\n\t else {\r\n\t this.siteFilter = false;\r\n\t this.searchText = sessionStorage.getItem('searchText');\r\n\t this.loadSchedule();\r\n\t this.showAll = true;\r\n\t this.loaded = true;\r\n\t }\r\n\t }\r\n\t else {\r\n\t if (sessionStorage.getItem('showAllFromFilter') === 'true') {\r\n\t this.searchText = '';\r\n\t this.loadSchedule();\r\n\t this.showAll = true;\r\n\t this.loaded = true;\r\n\t sessionStorage.setItem('currentSchedule', 'true');\r\n\t sessionStorage.removeItem('showAllFromFilter');\r\n\t }\r\n\t else {\r\n\t this.searchText = '';\r\n\t }\r\n\t }\r\n\t };\r\n\t ConversionScheduleComponent.prototype.showAllSchedule = function () {\r\n\t if (!util_1.isUndefined(this.site)) {\r\n\t sessionStorage.setItem('showAllFromFilter', 'true');\r\n\t sessionStorage.setItem('currentSchedule', 'true');\r\n\t this.router.navigateByUrl('conversions');\r\n\t this.siteFilter = false;\r\n\t }\r\n\t else {\r\n\t if (this.searchText != '' && (util_1.isUndefined(this.site))) {\r\n\t this.searchText = '';\r\n\t this.loadSchedule();\r\n\t }\r\n\t else {\r\n\t this.showAll = !this.showAll;\r\n\t }\r\n\t if (!this.loaded) {\r\n\t this.loadSchedule();\r\n\t this.showAll = true;\r\n\t this.loaded = true;\r\n\t }\r\n\t }\r\n\t };\r\n\t ConversionScheduleComponent.prototype.loadSchedule = function () {\r\n\t if (this.user.admin || this.user.epicorEmployee) {\r\n\t this.getSchedule(this.searchText, null, this.completedFilter, null, null, this.pageSize);\r\n\t }\r\n\t };\r\n\t ConversionScheduleComponent.prototype.getSchedule = function (searchText, token, completed, livePassFilter, plannedDateFilter, pageSize, columnName, sortAsc) {\r\n\t var _this = this;\r\n\t if (searchText === void 0) { searchText = \"\"; }\r\n\t if (token === void 0) { token = \"\"; }\r\n\t if (completed === void 0) { completed = null; }\r\n\t if (livePassFilter === void 0) { livePassFilter = null; }\r\n\t if (plannedDateFilter === void 0) { plannedDateFilter = null; }\r\n\t if (pageSize === void 0) { pageSize = 10; }\r\n\t if (columnName === void 0) { columnName = \"\"; }\r\n\t if (sortAsc === void 0) { sortAsc = null; }\r\n\t this.schedule = [];\r\n\t this.scheduleLoader = true;\r\n\t var completedQueryParam = ((completed) ? ((completed.toUpperCase() == 'YES') ? true : false) : null);\r\n\t var livePassQueryParam = ((livePassFilter) ? ((livePassFilter.toUpperCase() == 'YES') ? true : false) : null);\r\n\t var plannedDateQueryParam = ((plannedDateFilter) ? ((plannedDateFilter.toUpperCase() == 'YES') ? true : false) : null);\r\n\t this.conversionsService.getConversionSchedule({ searchText: searchText, token: token, completedQueryParam: completedQueryParam, livePassQueryParam: livePassQueryParam, plannedDateQueryParam: plannedDateQueryParam, pageSize: pageSize, columnName: columnName, sortAsc: sortAsc }).subscribe(function (schedule) {\r\n\t _this.schedule = schedule.result;\r\n\t _this.hasMoreResults = schedule.hasMoreResults;\r\n\t if (schedule.requestContinuation != null) {\r\n\t var token = JSON.parse(schedule.requestContinuation).token;\r\n\t if (typeof _this.tokens[_this.pageIndex + 1] === \"undefined\") {\r\n\t _this.tokens.push(token);\r\n\t }\r\n\t }\r\n\t _this.loaded = true;\r\n\t _this.scheduleLoader = false;\r\n\t });\r\n\t };\r\n\t ConversionScheduleComponent.prototype.filterSchedule = function () {\r\n\t var _this = this;\r\n\t if (this.searchTimeout != undefined)\r\n\t clearTimeout(this.searchTimeout);\r\n\t this.searchTimeout = setTimeout(function () {\r\n\t _this.pageIndex = 0;\r\n\t _this.tokens = [\"\"];\r\n\t var token = _this.tokens[_this.pageIndex];\r\n\t _this.getSchedule(_this.searchText, token, _this.completedFilter, _this.livePassFilter, _this.plannedDateFilter, _this.pageSize, _this.sortColName, _this.sortAsc);\r\n\t _this.showAll = true;\r\n\t }, 500);\r\n\t };\r\n\t ConversionScheduleComponent.prototype.previousSchedulePage = function () {\r\n\t this.pageIndex -= 1;\r\n\t var token = this.tokens[this.pageIndex];\r\n\t if (util_1.isUndefined(this.site)) {\r\n\t this.searchText = null;\r\n\t }\r\n\t if (typeof token !== 'undefined') {\r\n\t this.getSchedule(this.searchText, token, this.completedFilter, this.livePassFilter, this.plannedDateFilter, this.pageSize, this.sortColName, this.sortAsc);\r\n\t }\r\n\t else {\r\n\t this.pageIndex += 1;\r\n\t }\r\n\t };\r\n\t ConversionScheduleComponent.prototype.nextSchedulePage = function () {\r\n\t this.pageIndex += 1;\r\n\t var token = this.tokens[this.pageIndex];\r\n\t if (util_1.isUndefined(this.site)) {\r\n\t this.searchText = null;\r\n\t }\r\n\t if (typeof token !== 'undefined') {\r\n\t this.getSchedule(this.searchText, token, this.completedFilter, this.livePassFilter, this.plannedDateFilter, this.pageSize, this.sortColName, this.sortAsc);\r\n\t }\r\n\t else {\r\n\t this.pageIndex -= 1;\r\n\t }\r\n\t };\r\n\t ConversionScheduleComponent.prototype.refreshSchedule = function () {\r\n\t this.tokens = [\"\"];\r\n\t this.pageIndex = 0;\r\n\t if (this.site) {\r\n\t if (util_1.isNullOrUndefined(this.site)) {\r\n\t this.searchText = null;\r\n\t }\r\n\t }\r\n\t this.getSchedule(this.searchText, null, this.completedFilter, this.livePassFilter, this.plannedDateFilter, this.pageSize, this.sortColName, this.sortAsc);\r\n\t };\r\n\t ConversionScheduleComponent.prototype.filterScheduleDetails = function () {\r\n\t var _this = this;\r\n\t if (this.searchTimeout != undefined)\r\n\t clearTimeout(this.searchTimeout);\r\n\t this.searchTimeout = setTimeout(function () {\r\n\t _this.pageIndex = 0;\r\n\t _this.tokens = [\"\"];\r\n\t var token = _this.tokens[_this.pageIndex];\r\n\t _this.showAll = _this.searchText == '' ? false : true;\r\n\t if (_this.searchText != '') {\r\n\t _this.siteFilter = true;\r\n\t }\r\n\t else {\r\n\t _this.siteFilter = false;\r\n\t }\r\n\t sessionStorage.setItem('searchText', _this.searchText);\r\n\t if (_this.site) {\r\n\t if (util_1.isNullOrUndefined(_this.site)) {\r\n\t _this.searchText = null;\r\n\t }\r\n\t }\r\n\t _this.getSchedule(_this.searchText, token, _this.completedFilter, _this.livePassFilter, _this.plannedDateFilter, _this.pageSize, _this.sortColName, _this.sortAsc);\r\n\t }, 500);\r\n\t };\r\n\t ConversionScheduleComponent.prototype.viewConversionConfiguration = function (conversion) {\r\n\t if (conversion) {\r\n\t this.router.navigateByUrl(\"/sites/\" + conversion.siteId + \"/conversions/\" + conversion.id);\r\n\t }\r\n\t };\r\n\t ConversionScheduleComponent.prototype.onMenuRefresh = function () {\r\n\t this.refreshSchedule();\r\n\t };\r\n\t ConversionScheduleComponent.prototype.onPageSizeChange = function () {\r\n\t this.refreshSchedule();\r\n\t };\r\n\t ConversionScheduleComponent.prototype.getDSTVal = function () {\r\n\t var d = new Date();\r\n\t var year = d.getFullYear();\r\n\t var jan = new Date(year, 0, 1);\r\n\t var jul = new Date(year, 6, 1);\r\n\t var diff = Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset()) - d.getTimezoneOffset();\r\n\t return diff;\r\n\t };\r\n\t ConversionScheduleComponent.prototype.getDSTTime = function (convertedDate) {\r\n\t var dstTime = this.getDSTVal();\r\n\t if (dstTime != 0) {\r\n\t var hours = (dstTime / 60);\r\n\t var rhours = Math.floor(hours);\r\n\t var minutes = (hours - rhours) * 60;\r\n\t var rminutes = Math.round(minutes);\r\n\t if (convertedDate.getMinutes() - rminutes < 0) {\r\n\t rminutes = 60 + (convertedDate.getMinutes() - rminutes);\r\n\t rhours = rhours + 1;\r\n\t }\r\n\t else if (rminutes > 0) {\r\n\t rminutes = convertedDate.getMinutes() - rminutes;\r\n\t }\r\n\t return convertedDate.setHours(convertedDate.getHours() - rhours, convertedDate.getMinutes() - rminutes, convertedDate.getSeconds());\r\n\t }\r\n\t return convertedDate;\r\n\t };\r\n\t ConversionScheduleComponent.prototype.plannedDateConversion = function (plannedDate, plannedTimezone) {\r\n\t if (plannedDate != null || plannedDate != \"\") {\r\n\t if (plannedTimezone != null) {\r\n\t var convertedDate = new Date(\"\" + plannedDate + plannedTimezone);\r\n\t return this.datePipe.transform(this.getDSTTime(convertedDate), 'MMM dd, yyyy hh:mm aa');\r\n\t }\r\n\t else {\r\n\t var convertedDate = new Date(\"\" + plannedDate);\r\n\t return this.datePipe.transform(convertedDate, 'MMM dd, yyyy hh:mm aa');\r\n\t }\r\n\t }\r\n\t };\r\n\t ConversionScheduleComponent.prototype.sort = function (selectedColumnName, event) {\r\n\t var _this = this;\r\n\t this.sortAsc = !this.sortAsc;\r\n\t this.sortColName = selectedColumnName;\r\n\t this.searchTimeout = setTimeout(function () {\r\n\t _this.pageIndex = 0;\r\n\t _this.tokens = [\"\"];\r\n\t var token = _this.tokens[_this.pageIndex];\r\n\t var columnCount = 0;\r\n\t for (columnCount; columnCount < _this.columnDetails.nativeElement.children.length - 1; columnCount++) {\r\n\t if (_this.columnDetails.nativeElement.children[columnCount].children.length > 0) {\r\n\t _this.columnDetails.nativeElement.children[columnCount].children[0].classList.remove('arrow-down');\r\n\t _this.columnDetails.nativeElement.children[columnCount].children[0].classList.remove('arrow-up');\r\n\t }\r\n\t }\r\n\t if (util_1.isUndefined(_this.site)) {\r\n\t _this.searchText = null;\r\n\t }\r\n\t _this.getSchedule(_this.searchText, token, _this.completedFilter, _this.livePassFilter, _this.plannedDateFilter, _this.pageSize, selectedColumnName, _this.sortAsc);\r\n\t if (_this.sortAsc == true) {\r\n\t event.target.childNodes[1].classList.remove('arrow-down');\r\n\t event.target.childNodes[1].classList.add('arrow-up');\r\n\t }\r\n\t else {\r\n\t event.target.childNodes[1].classList.remove('arrow-up');\r\n\t event.target.childNodes[1].classList.add('arrow-down');\r\n\t }\r\n\t }, 500);\r\n\t };\r\n\t ConversionScheduleComponent.prototype.unfilterSearchConversion = function () {\r\n\t if (util_1.isUndefined(this.site)) {\r\n\t if (this.siteFilter != false) {\r\n\t this.searchText = '';\r\n\t sessionStorage.setItem('searchText', '');\r\n\t this.scheduleLoader = true;\r\n\t this.loadSchedule();\r\n\t this.showAll = true;\r\n\t this.loaded = true;\r\n\t this.siteFilter = false;\r\n\t }\r\n\t else {\r\n\t this.searchText = '';\r\n\t sessionStorage.setItem('searchText', '');\r\n\t }\r\n\t }\r\n\t else {\r\n\t sessionStorage.setItem('currentSchedule', 'true');\r\n\t this.router.navigateByUrl('conversions');\r\n\t this.siteFilter = false;\r\n\t }\r\n\t };\r\n\t __decorate([\r\n\t core_1.ViewChild('columnDetails'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], ConversionScheduleComponent.prototype, \"columnDetails\", void 0);\r\n\t ConversionScheduleComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'conversion-schedule',\r\n\t template: __webpack_require__(593),\r\n\t providers: [conversions_service_1.ConversionsService, common_1.DatePipe],\r\n\t styles: [__webpack_require__(594)]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [conversions_service_1.ConversionsService,\r\n\t auth_service_1.AuthService,\r\n\t router_1.Router,\r\n\t router_1.ActivatedRoute,\r\n\t common_1.DatePipe])\r\n\t ], ConversionScheduleComponent);\r\n\t return ConversionScheduleComponent;\r\n\t}());\r\n\texports.ConversionScheduleComponent = ConversionScheduleComponent;\r\n\tvar ConversionScheduleRemainingPassesComponent = (function () {\r\n\t function ConversionScheduleRemainingPassesComponent(conversionsService) {\r\n\t this.conversionsService = conversionsService;\r\n\t this.remaining = 0;\r\n\t this.loading = false;\r\n\t }\r\n\t ConversionScheduleRemainingPassesComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.loading = true;\r\n\t this.conversionsService.getRemainingPasses(this.conversionId).subscribe(function (remainingPasses) {\r\n\t if (typeof remainingPasses === \"number\") {\r\n\t _this.remaining = remainingPasses;\r\n\t }\r\n\t _this.loading = false;\r\n\t }, function (err) { return _this.loading = false; });\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", String)\r\n\t ], ConversionScheduleRemainingPassesComponent.prototype, \"conversionId\", void 0);\r\n\t ConversionScheduleRemainingPassesComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'conversion-schedule-remaining-passes',\r\n\t template: \"
\\n
{{remaining}}
\",\r\n\t providers: [conversions_service_1.ConversionsService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [conversions_service_1.ConversionsService])\r\n\t ], ConversionScheduleRemainingPassesComponent);\r\n\t return ConversionScheduleRemainingPassesComponent;\r\n\t}());\r\n\texports.ConversionScheduleRemainingPassesComponent = ConversionScheduleRemainingPassesComponent;\r\n\tvar ConversionScheduleNextPassNumberComponent = (function () {\r\n\t function ConversionScheduleNextPassNumberComponent(conversionsService) {\r\n\t this.conversionsService = conversionsService;\r\n\t this.passNumber = 0;\r\n\t this.loading = false;\r\n\t }\r\n\t ConversionScheduleNextPassNumberComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.loading = true;\r\n\t this.conversionsService.getNextPassNumberSchedule(this.conversionId).subscribe(function (nextPassNumber) {\r\n\t if (typeof nextPassNumber === \"number\") {\r\n\t _this.passNumber = nextPassNumber;\r\n\t }\r\n\t _this.loading = false;\r\n\t }, function (err) { return _this.loading = false; });\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", String)\r\n\t ], ConversionScheduleNextPassNumberComponent.prototype, \"conversionId\", void 0);\r\n\t ConversionScheduleNextPassNumberComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'conversion-schedule-next-pass-number',\r\n\t template: \"
\\n
{{passNumber}}
\",\r\n\t providers: [conversions_service_1.ConversionsService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [conversions_service_1.ConversionsService])\r\n\t ], ConversionScheduleNextPassNumberComponent);\r\n\t return ConversionScheduleNextPassNumberComponent;\r\n\t}());\r\n\texports.ConversionScheduleNextPassNumberComponent = ConversionScheduleNextPassNumberComponent;\r\n\n\n/***/ },\n/* 593 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n clear\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Completed: \\r\\n \\r\\n {{option}} \\r\\n \\r\\n Live Pass:\\r\\n \\r\\n {{option}}\\r\\n \\r\\n Planned Date: \\r\\n \\r\\n {{option}} \\r\\n \\r\\n \\r\\n Items per page:\\r\\n \\r\\n \\r\\n {{ pageSize.viewValue }}\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
Site Id Site Name Description Project Code Go Live Pass Next Pass NumberRemaining Passes Assigned User Planned Date
security{{ conversion?.siteId}}{{ conversion?.siteName }}{{ conversion?.fromProduct }} {{ conversion?.fromVersion}} to {{ conversion?.toProduct }} {{ conversion?.toVersion}}{{ conversion?.projectCode }}{{ conversion?.goLivePass ? 'Yes' : 'No' }}\\r\\n \\r\\n \\r\\n \\r\\n {{ conversion?.assignedUser }}{{ conversion.goLivePass ? ((conversion.plannedDate && conversion.goLivePass) ? plannedDateConversion(conversion?.plannedDate, conversion.plannedTimezone) : (conversion?.plannedDate)) : ''}}\\r\\n \\r\\n \\r\\n
\\r\\n\";\n\n/***/ },\n/* 594 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"/*\\r\\n * Define the widths: play around with these \\r\\n * to get a best fit.\\r\\n */\\r\\n/*\\r\\n * Basic styles, good for a large display. Everything fits in\\r\\n * one row, no wrapping. All text based cells grow equally.\\r\\n */\\r\\n.table-row {\\r\\n display: flex;\\r\\n display: -webkit-flex;\\r\\n flex-direction: row;\\r\\n -webkit-flex-direction: row;\\r\\n flex-wrap: no-wrap;\\r\\n -webkit-flex-wrap: no-wrap;\\r\\n width: 100%;\\r\\n background-color:#fff;\\r\\n /*padding-left: 15px;\\r\\n padding-right: 15px;*/\\r\\n}\\r\\n\\r\\n.table-row:hover {\\r\\n background-color:whitesmoke;\\r\\n /*cursor:pointer;*/\\r\\n}\\r\\n\\r\\n.wrapper {\\r\\n display: flex;\\r\\n display: -webkit-flex;\\r\\n flex-direction: row;\\r\\n -webkit-flex-direction: row;\\r\\n}\\r\\n.column {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n flex-shrink: 0;\\r\\n -webkit-flex-shrink: 0;\\r\\n vertical-align: top;\\r\\n}\\r\\n.index {\\r\\n width: 25px;\\r\\n}\\r\\n.title {\\r\\n width: 220px;\\r\\n}\\r\\n.module {\\r\\n width: 110px;\\r\\n}\\r\\n.reporter {\\r\\n width: 85px;\\r\\n}\\r\\n.status {\\r\\n width: 95px;\\r\\n}\\r\\n.owner {\\r\\n width: 75px;\\r\\n}\\r\\n.severity {\\r\\n width: 80px;\\r\\n}\\r\\n.watch,\\r\\n.add-comment {\\r\\n width: 18px;\\r\\n}\\r\\n.date {\\r\\n width: 110px;\\r\\n}\\r\\n.index {\\r\\n text-align: center;\\r\\n}\\r\\n.title {\\r\\n /*font-weight: bold;*/\\r\\n /*color: rgb(18,195,244);*/\\r\\n}\\r\\n.comment {\\r\\n width: 120px;\\r\\n}\\r\\n.title,\\r\\n.comment {\\r\\n flex-grow: 1;\\r\\n -webkit-flex-grow: 1;\\r\\n overflow: hidden;\\r\\n /*white-space: nowrap;*/\\r\\n text-overflow: ellipsis;\\r\\n padding-right: 4px;\\r\\n}\\r\\n.date {\\r\\n width: 110px;\\r\\n /*text-align: right;*/\\r\\n padding-right: 4px;\\r\\n}\\r\\n/* growable wrappers */\\r\\n.title-comment,\\r\\n.title-comment-module-reporter,\\r\\n.attributes {\\r\\n flex-grow: 1;\\r\\n -webkit-flex-grow: 1;\\r\\n}\\r\\n/*\\r\\n * Media queries: optimize for different screen widths.\\r\\n */\\r\\n/*\\r\\n * Media breaks.\\r\\n */\\r\\n@media all and (max-width: 1236px) {\\r\\n .title-comment {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n width: 220px;\\r\\n }\\r\\n .title-comment div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n .title-comment > div {\\r\\n width: 100%;\\r\\n }\\r\\n .module-reporter,\\r\\n .status-owner {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n }\\r\\n .module-reporter div,\\r\\n .status-owner div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n}\\r\\n@media all and (max-width: 956px) {\\r\\n .module-reporter {\\r\\n flex-direction: row;\\r\\n -webkit-flex-direction: row;\\r\\n }\\r\\n .title-comment-module-reporter {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n width: 220px;\\r\\n }\\r\\n .title-comment-module-reporter div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n .title-comment-module-reporter > div {\\r\\n width: 100%;\\r\\n }\\r\\n .status-owner-severity {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n }\\r\\n .status-owner-severity div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n .icons {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n }\\r\\n .icons div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n .dates {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n }\\r\\n .dates div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n}\\r\\n@media all and (max-width: 528px) {\\r\\n .table-row {\\r\\n padding-left: 4px;\\r\\n padding-right: 4px;\\r\\n }\\r\\n .attributes {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n width: 220px;\\r\\n }\\r\\n .attributes div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n .attributes > div {\\r\\n width: 100%;\\r\\n }\\r\\n .module-reporter,\\r\\n .status-owner {\\r\\n flex-direction: row;\\r\\n -webkit-flex-direction: row;\\r\\n }\\r\\n}\\r\\n/*\\r\\n * General good-look styles\\r\\n */\\r\\n.table-row {\\r\\n border-bottom: 1px solid #e0e0e0;\\r\\n border-collapse: collapse;\\r\\n padding-top: 2px;\\r\\n}\\r\\n.table-row.header {\\r\\n background-color: #fff;\\r\\n font-weight: bold;\\r\\n padding-top: 6px;\\r\\n padding-bottom: 6px;\\r\\n color:grey;\\r\\n font-size:12px;\\r\\n}\\r\\n.glyphicon {\\r\\n color: #DDDDDD;\\r\\n}\\r\\n\\r\\n.reporter {\\r\\n color: #999999;\\r\\n}\\r\\n.comment {\\r\\n /*font-style: italic;*/\\r\\n}\\r\\n\\r\\ntd {\\r\\n padding:0;\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.arrow-up {\\r\\n width: 0;\\r\\n height: 0;\\r\\n border-left: 5px solid transparent;\\r\\n border-right: 5px solid transparent;\\r\\n border-bottom: 5px solid black;\\r\\n position: relative;\\r\\n top: -26%;\\r\\n left: 1%;\\r\\n}\\r\\n\\r\\n.arrow-down {\\r\\n width: 0;\\r\\n height: 0;\\r\\n border-left: 5px solid transparent;\\r\\n border-right: 5px solid transparent;\\r\\n border-top: 5px solid #f00;\\r\\n position: relative;\\r\\n top: 26%;\\r\\n left: 1%;\\r\\n}\\r\\n\\r\\ninput:disabled {\\r\\n cursor: not-allowed;\\r\\n}\\r\\n\\r\\n.apply-filter {\\r\\n margin-right: 8px;\\r\\n margin-left: 8px;\\r\\n}\\r\\n\"\n\n/***/ },\n/* 595 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar conversions_service_1 = __webpack_require__(378);\r\n\tvar ConversionScheduleMenuComponent = (function () {\r\n\t function ConversionScheduleMenuComponent(editDialog, conversionsService, auth) {\r\n\t this.editDialog = editDialog;\r\n\t this.conversionsService = conversionsService;\r\n\t this.auth = auth;\r\n\t this.refresh = new core_1.EventEmitter();\r\n\t this.Role = auth_service_1.Role;\r\n\t this.Permission = auth_service_1.Permission;\r\n\t }\r\n\t ConversionScheduleMenuComponent.prototype.openInNewTab = function () {\r\n\t var id = this.conversion.id;\r\n\t var siteId = this.conversion.siteId;\r\n\t var url = window.location.origin + \"/#/conversions/\" + id;\r\n\t window.open(url, \"_blank\");\r\n\t };\r\n\t ConversionScheduleMenuComponent.prototype.markAsComplete = function () {\r\n\t var _this = this;\r\n\t var id = this.conversion.id;\r\n\t var status = 'Completed';\r\n\t this.conversionsService.updateConversionStatus(id, status).subscribe(function (response) {\r\n\t _this.refresh.emit(true);\r\n\t });\r\n\t };\r\n\t ConversionScheduleMenuComponent.prototype.markAsIncomplete = function () {\r\n\t var _this = this;\r\n\t var id = this.conversion.id;\r\n\t var status = 'NotStarted';\r\n\t this.conversionsService.updateConversionStatus(id, status).subscribe(function (response) {\r\n\t _this.refresh.emit(true);\r\n\t });\r\n\t };\r\n\t ConversionScheduleMenuComponent.prototype.delete = function () {\r\n\t var _this = this;\r\n\t var id = this.conversion.id;\r\n\t this.conversionsService.deleteConversion(id).subscribe(function (res) {\r\n\t _this.refresh.emit(true);\r\n\t });\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], ConversionScheduleMenuComponent.prototype, \"conversion\", void 0);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], ConversionScheduleMenuComponent.prototype, \"refresh\", void 0);\r\n\t ConversionScheduleMenuComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'conversion-schedule-menu',\r\n\t template: __webpack_require__(596),\r\n\t providers: [conversions_service_1.ConversionsService],\r\n\t styles: []\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialog, conversions_service_1.ConversionsService,\r\n\t auth_service_1.AuthService])\r\n\t ], ConversionScheduleMenuComponent);\r\n\t return ConversionScheduleMenuComponent;\r\n\t}());\r\n\texports.ConversionScheduleMenuComponent = ConversionScheduleMenuComponent;\r\n\n\n/***/ },\n/* 596 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\";\n\n/***/ },\n/* 597 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar conversions_interface_1 = __webpack_require__(392);\r\n\tvar conversions_service_1 = __webpack_require__(378);\r\n\tvar date_service_1 = __webpack_require__(583);\r\n\tvar interfaces_1 = __webpack_require__(304);\r\n\tvar util_1 = __webpack_require__(584);\r\n\tvar ConversionPassesComponent = (function () {\r\n\t function ConversionPassesComponent(router, route, authService, conversionsService, dateService) {\r\n\t this.router = router;\r\n\t this.route = route;\r\n\t this.authService = authService;\r\n\t this.conversionsService = conversionsService;\r\n\t this.dateService = dateService;\r\n\t this.data = [];\r\n\t this.onPreviousPage = new core_1.EventEmitter();\r\n\t this.onNextPage = new core_1.EventEmitter();\r\n\t this.refresh = new core_1.EventEmitter();\r\n\t this.onSorting = new core_1.EventEmitter();\r\n\t this.onCompletedNextPage = new core_1.EventEmitter();\r\n\t this.onCompletedPreviousPage = new core_1.EventEmitter();\r\n\t this.onCountConversionsSummaries = new core_1.EventEmitter();\r\n\t this.status = conversions_interface_1.ConversionStatus;\r\n\t this.pageSizes = [\r\n\t { value: 5, viewValue: '5' },\r\n\t { value: 10, viewValue: '10' },\r\n\t { value: 25, viewValue: '25' },\r\n\t { value: 50, viewValue: '50' },\r\n\t { value: 100, viewValue: '100' }\r\n\t ];\r\n\t this.searchText = \"\";\r\n\t this.sortAsc = false;\r\n\t this.sortColumn = \"\";\r\n\t this.conversionPassesLoader = false;\r\n\t this.initialLoad = false;\r\n\t this.site = null;\r\n\t this.siteFilter = false;\r\n\t this.isFirstLoad = false;\r\n\t this.user = this.authService.getUser();\r\n\t this.currentDate = new Date();\r\n\t this.currentDate = new Date();\r\n\t }\r\n\t ConversionPassesComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.route.params.subscribe(function (params) {\r\n\t _this.site = params['siteId'];\r\n\t });\r\n\t if (!util_1.isUndefined(this.site)) {\r\n\t this.isFirstLoad = sessionStorage.getItem('isFirstLoad');\r\n\t if (this.isFirstLoad === 'true') {\r\n\t this.siteFilter = true;\r\n\t this.searchText = this.site;\r\n\t this.conversionPassesLoader = true;\r\n\t this.showAll = true;\r\n\t this.initialLoad = true;\r\n\t this.filterConversionDetails();\r\n\t }\r\n\t else {\r\n\t this.siteFilter = false;\r\n\t this.searchText = sessionStorage.getItem('searchText');\r\n\t }\r\n\t }\r\n\t else {\r\n\t var selectedDocState = sessionStorage.getItem('currentDocState');\r\n\t if (selectedDocState != null) {\r\n\t this.statusFilter = interfaces_1.DocumentState[interfaces_1.DocumentState.Archived];\r\n\t }\r\n\t if (sessionStorage.getItem('showAllFromFilter') === 'true') {\r\n\t this.conversionPassesLoader = true;\r\n\t this.filterForShowAll();\r\n\t this.showAll = true;\r\n\t this.initialLoad = true;\r\n\t sessionStorage.removeItem('showAllFromFilter');\r\n\t }\r\n\t else {\r\n\t if (sessionStorage.getItem('status') == null)\r\n\t sessionStorage.setItem('status', this.statusFilter != null ? this.statusFilter : this.docStateFilter);\r\n\t if (sessionStorage.getItem('status') != null) {\r\n\t if (this.statusFilter != null) {\r\n\t if (sessionStorage.getItem('status') != this.statusFilter) {\r\n\t sessionStorage.removeItem('sortAsc');\r\n\t sessionStorage.removeItem('sortColumn');\r\n\t sessionStorage.removeItem('searchText');\r\n\t }\r\n\t }\r\n\t if (this.docStateFilter != null) {\r\n\t if (sessionStorage.getItem('status') != this.docStateFilter) {\r\n\t sessionStorage.removeItem('sortAsc');\r\n\t sessionStorage.removeItem('sortColumn');\r\n\t sessionStorage.removeItem('searchText');\r\n\t }\r\n\t }\r\n\t sessionStorage.setItem('status', this.statusFilter != null ? this.statusFilter : this.docStateFilter);\r\n\t }\r\n\t this.searchText = sessionStorage.getItem('searchText');\r\n\t }\r\n\t }\r\n\t };\r\n\t ConversionPassesComponent.prototype.ngOnChanges = function (changes) {\r\n\t if (typeof changes.statusFilter != 'undefined') {\r\n\t if (changes.statusFilter.currentValue === conversions_interface_1.ConversionStatus[conversions_interface_1.ConversionStatus.Completed]) {\r\n\t this.showAll = false;\r\n\t if (typeof changes.docStateFilter != 'undefined' && changes.docStateFilter.previousValue === interfaces_1.DocumentState[interfaces_1.DocumentState.Archived]) {\r\n\t this.initialLoad = false;\r\n\t this.searchText = sessionStorage.getItem('searchText');\r\n\t }\r\n\t else {\r\n\t this.initialLoad = true;\r\n\t if (typeof changes.pageIndex != 'undefined') {\r\n\t if (changes.pageIndex.currentValue != 0) {\r\n\t this.showAll = true;\r\n\t }\r\n\t else if (changes.pageIndex.currentValue == 0 && changes.data.currentValue.length > 0) {\r\n\t this.showAll = true;\r\n\t }\r\n\t }\r\n\t if (changes.statusFilter.previousValue === conversions_interface_1.ConversionStatus[conversions_interface_1.ConversionStatus.InProgress] || changes.statusFilter.previousValue === conversions_interface_1.ConversionStatus[conversions_interface_1.ConversionStatus.Stopped]) {\r\n\t if (this.searchText != '') {\r\n\t this.searchText = '';\r\n\t }\r\n\t }\r\n\t }\r\n\t if (changes.data.currentValue.length == 0) {\r\n\t this.initialLoad = false;\r\n\t }\r\n\t }\r\n\t }\r\n\t if (typeof changes.docStateFilter != 'undefined') {\r\n\t if (changes.docStateFilter.currentValue === interfaces_1.DocumentState[interfaces_1.DocumentState.Archived]) {\r\n\t this.showAll = false;\r\n\t if (typeof changes.statusFilter != 'undefined' && changes.statusFilter.previousValue === conversions_interface_1.ConversionStatus[conversions_interface_1.ConversionStatus.Completed]) {\r\n\t this.initialLoad = false;\r\n\t this.searchText = sessionStorage.getItem('searchText');\r\n\t }\r\n\t else {\r\n\t this.initialLoad = true;\r\n\t if (typeof changes.pageIndex != 'undefined') {\r\n\t if (changes.pageIndex.currentValue != 0) {\r\n\t this.showAll = true;\r\n\t }\r\n\t else if (changes.pageIndex.currentValue == 0 && changes.data.currentValue.length > 0) {\r\n\t this.showAll = true;\r\n\t }\r\n\t }\r\n\t if (typeof changes.statusFilter != 'undefined' && (changes.statusFilter.previousValue === conversions_interface_1.ConversionStatus[conversions_interface_1.ConversionStatus.InProgress] || changes.statusFilter.previousValue === conversions_interface_1.ConversionStatus[conversions_interface_1.ConversionStatus.Stopped])) {\r\n\t if (this.searchText != '') {\r\n\t this.searchText = '';\r\n\t }\r\n\t }\r\n\t }\r\n\t if (changes.data.currentValue.length == 0) {\r\n\t this.initialLoad = false;\r\n\t }\r\n\t }\r\n\t }\r\n\t if (util_1.isNullOrUndefined(this.searchText)) {\r\n\t this.searchText = '';\r\n\t }\r\n\t if (util_1.isUndefined(this.site)) {\r\n\t this.onCountConversionsSummaries.emit(this.searchText);\r\n\t }\r\n\t };\r\n\t ConversionPassesComponent.prototype.getStatusIcon = function (status) {\r\n\t var icon = '';\r\n\t switch (status) {\r\n\t case conversions_interface_1.ConversionStatus.Stopped:\r\n\t icon = 'cancel';\r\n\t break;\r\n\t case conversions_interface_1.ConversionStatus.InProgress:\r\n\t icon = 'update';\r\n\t break;\r\n\t case conversions_interface_1.ConversionStatus.Completed:\r\n\t icon = 'check_circle';\r\n\t break;\r\n\t }\r\n\t return icon;\r\n\t };\r\n\t ConversionPassesComponent.prototype.getStatusIconColor = function (status) {\r\n\t var color = '';\r\n\t switch (status) {\r\n\t case conversions_interface_1.ConversionStatus.Stopped:\r\n\t color = 'red';\r\n\t break;\r\n\t case conversions_interface_1.ConversionStatus.Completed:\r\n\t color = 'green';\r\n\t break;\r\n\t }\r\n\t return color;\r\n\t };\r\n\t ConversionPassesComponent.prototype.viewConversionPass = function (conversionPass) {\r\n\t if (conversionPass) {\r\n\t this.router.navigate([\"/conversions/\" + conversionPass.conversionId + \"/passes/\" + conversionPass.passNumber]);\r\n\t }\r\n\t };\r\n\t ConversionPassesComponent.prototype.getTimeSpanFromNow = function (modifiedDate) {\r\n\t return this.dateService.getTimeSpan(this.currentDate, new Date(modifiedDate));\r\n\t };\r\n\t ConversionPassesComponent.prototype.getDate = function (modifiedDate) {\r\n\t return this.dateService.getDate(new Date(modifiedDate));\r\n\t };\r\n\t ConversionPassesComponent.prototype.onMenuRefresh = function () {\r\n\t this.refresh.emit(true);\r\n\t };\r\n\t ConversionPassesComponent.prototype.onPageSizeChange = function () {\r\n\t this.refresh.emit({ pageSize: this.pageSize });\r\n\t };\r\n\t ConversionPassesComponent.prototype.previousPage = function () {\r\n\t if (this.statusFilter == conversions_interface_1.ConversionStatus[conversions_interface_1.ConversionStatus.Completed] || this.docStateFilter == interfaces_1.DocumentState[interfaces_1.DocumentState.Archived]) {\r\n\t this.onCompletedPreviousPage.emit(this.tokens);\r\n\t }\r\n\t else {\r\n\t this.onPreviousPage.emit(true);\r\n\t }\r\n\t };\r\n\t ConversionPassesComponent.prototype.nextPage = function () {\r\n\t if (this.statusFilter == conversions_interface_1.ConversionStatus[conversions_interface_1.ConversionStatus.Completed] || this.docStateFilter == interfaces_1.DocumentState[interfaces_1.DocumentState.Archived]) {\r\n\t this.onCompletedNextPage.emit(this.tokens);\r\n\t }\r\n\t else {\r\n\t this.onNextPage.emit(true);\r\n\t }\r\n\t };\r\n\t ConversionPassesComponent.prototype.isAdmin = function () {\r\n\t return this.user.admin === 'true';\r\n\t };\r\n\t ConversionPassesComponent.prototype.initComponentWhenShowAll = function () {\r\n\t if (sessionStorage.getItem('status') == null)\r\n\t sessionStorage.setItem('status', this.statusFilter != null ? this.statusFilter : this.docStateFilter);\r\n\t if (sessionStorage.getItem('status') != null) {\r\n\t if (this.statusFilter != null) {\r\n\t if (sessionStorage.getItem('status') != this.statusFilter) {\r\n\t sessionStorage.removeItem('sortAsc');\r\n\t sessionStorage.removeItem('sortColumn');\r\n\t sessionStorage.removeItem('searchText');\r\n\t this.initialLoad = false;\r\n\t }\r\n\t }\r\n\t if (this.docStateFilter != null) {\r\n\t if (sessionStorage.getItem('status') != this.docStateFilter) {\r\n\t sessionStorage.removeItem('sortAsc');\r\n\t sessionStorage.removeItem('sortColumn');\r\n\t sessionStorage.removeItem('searchText');\r\n\t this.initialLoad = false;\r\n\t }\r\n\t }\r\n\t }\r\n\t sessionStorage.setItem('status', this.statusFilter != null ? this.statusFilter : this.docStateFilter);\r\n\t };\r\n\t ConversionPassesComponent.prototype.showAllConversions = function () {\r\n\t if (!util_1.isUndefined(this.site)) {\r\n\t sessionStorage.setItem('currentStatus', this.statusFilter);\r\n\t sessionStorage.setItem('currentDocState', this.docStateFilter);\r\n\t sessionStorage.setItem('showAllFromFilter', 'true');\r\n\t this.router.navigateByUrl('conversions');\r\n\t this.siteFilter = false;\r\n\t }\r\n\t else {\r\n\t this.initComponentWhenShowAll();\r\n\t this.showAll = !this.showAll;\r\n\t if (!this.initialLoad) {\r\n\t this.searchText = '';\r\n\t this.conversionPassesLoader = true;\r\n\t this.filterForShowAll();\r\n\t this.showAll = true;\r\n\t this.initialLoad = true;\r\n\t }\r\n\t else {\r\n\t this.searchText = '';\r\n\t this.conversionPassesLoader = true;\r\n\t this.filterForShowAll();\r\n\t this.showAll = true;\r\n\t this.initialLoad = true;\r\n\t }\r\n\t }\r\n\t };\r\n\t ConversionPassesComponent.prototype.filterForShowAll = function () {\r\n\t var _this = this;\r\n\t if (this.searchTimeout != undefined)\r\n\t clearTimeout(this.searchTimeout);\r\n\t this.searchTimeout = setTimeout(function () {\r\n\t _this.pageIndex = 0;\r\n\t _this.tokens = [\"\"];\r\n\t var token = _this.tokens[_this.pageIndex];\r\n\t sessionStorage.setItem('searchText', _this.searchText);\r\n\t _this.searchText = sessionStorage.getItem('searchText');\r\n\t if (_this.docStateFilter == interfaces_1.DocumentState[interfaces_1.DocumentState.Archived])\r\n\t _this.getConversionPasses(_this.searchText, null, token, null, null, _this.pageSize, _this.docStateFilter);\r\n\t else\r\n\t _this.getConversionPasses(_this.searchText, _this.statusFilter, token, null, null, _this.pageSize, null);\r\n\t _this.onCountConversionsSummaries.emit(_this.searchText);\r\n\t }, 500);\r\n\t };\r\n\t ConversionPassesComponent.prototype.filterConversionDetails = function () {\r\n\t var _this = this;\r\n\t if (this.searchTimeout != undefined)\r\n\t clearTimeout(this.searchTimeout);\r\n\t this.searchTimeout = setTimeout(function () {\r\n\t _this.pageIndex = 0;\r\n\t _this.tokens = [\"\"];\r\n\t var token = _this.tokens[_this.pageIndex];\r\n\t _this.isFirstLoad = false;\r\n\t if (_this.searchText != '') {\r\n\t _this.siteFilter = true;\r\n\t }\r\n\t else {\r\n\t _this.siteFilter = false;\r\n\t }\r\n\t sessionStorage.setItem('isFirstLoad', 'false');\r\n\t sessionStorage.setItem('siteFilter', 'false');\r\n\t _this.isSiteFilterActive();\r\n\t sessionStorage.setItem('searchText', _this.searchText);\r\n\t _this.searchText = sessionStorage.getItem('searchText');\r\n\t _this.showAll = (_this.searchText == '' && (_this.statusFilter === 'Completed' || _this.docStateFilter === 'Archived')) ? false : true;\r\n\t if (_this.docStateFilter == interfaces_1.DocumentState[interfaces_1.DocumentState.Archived])\r\n\t _this.getConversionPasses(_this.searchText, null, token, null, null, _this.pageSize, _this.docStateFilter);\r\n\t else\r\n\t _this.getConversionPasses(_this.searchText, _this.statusFilter, token, null, null, _this.pageSize, null);\r\n\t _this.onCountConversionsSummaries.emit(_this.searchText);\r\n\t }, 500);\r\n\t };\r\n\t ConversionPassesComponent.prototype.getConversionPasses = function (searchText, status, token, sortColumn, sortAsc, pageSize, docState) {\r\n\t var _this = this;\r\n\t if (token === void 0) { token = \"\"; }\r\n\t if (sortColumn === void 0) { sortColumn = null; }\r\n\t if (sortAsc === void 0) { sortAsc = null; }\r\n\t if (pageSize === void 0) { pageSize = 25; }\r\n\t this.conversionPassesLoader = true;\r\n\t this.conversionsService.getConversionPassSummaries(searchText, status, null, token, sortColumn, sortAsc, pageSize, docState).subscribe(function (pagedResult) {\r\n\t _this.data = pagedResult.result;\r\n\t _this.hasMoreResults = pagedResult.hasMoreResults;\r\n\t if (pagedResult.requestContinuation != null) {\r\n\t var token = JSON.parse(pagedResult.requestContinuation).token;\r\n\t if (typeof _this.tokens[_this.pageIndex + 1] === 'undefined') {\r\n\t _this.tokens.push(token);\r\n\t }\r\n\t }\r\n\t _this.initialLoad = true;\r\n\t _this.conversionPassesLoader = false;\r\n\t }, function (err) {\r\n\t _this.conversionPassesLoader = false;\r\n\t _this.showAll = false;\r\n\t });\r\n\t };\r\n\t ConversionPassesComponent.prototype.sort = function (selectedColumnName) {\r\n\t var columnCount = 1;\r\n\t if (sessionStorage.getItem('sortAsc') == null) {\r\n\t this.sortAsc = false;\r\n\t sessionStorage.setItem('sortAsc', 'false');\r\n\t }\r\n\t else {\r\n\t var tempSortAsc = sessionStorage.getItem('sortAsc') == 'true' ? 'false' : 'true';\r\n\t sessionStorage.setItem('sortAsc', tempSortAsc);\r\n\t this.sortAsc = tempSortAsc == 'true' ? true : false;\r\n\t }\r\n\t sessionStorage.setItem('sortColumn', selectedColumnName);\r\n\t for (columnCount; columnCount < this.columnDetails.nativeElement.children.length - 1; columnCount++) {\r\n\t this.columnDetails.nativeElement.children[columnCount].children[0].classList.remove('arrow-down');\r\n\t this.columnDetails.nativeElement.children[columnCount].children[0].classList.remove('arrow-up');\r\n\t }\r\n\t var status = this.statusFilter == interfaces_1.DocumentState[interfaces_1.DocumentState.Archived] ? null : this.statusFilter;\r\n\t var docStatus = this.docStateFilter != interfaces_1.DocumentState[interfaces_1.DocumentState.Archived] ? null : interfaces_1.DocumentState[interfaces_1.DocumentState.Archived];\r\n\t this.onSorting.emit(true);\r\n\t };\r\n\t ConversionPassesComponent.prototype.ngAfterViewInit = function () {\r\n\t this.sortAsc = sessionStorage.getItem('sortAsc') == 'true' ? true : false;\r\n\t this.sortColumn = sessionStorage.getItem('sortColumn');\r\n\t if (this.sortColumn != null) {\r\n\t if (this.sortColumn == 'siteId')\r\n\t this.setSortingIcons(this.siteId, this.sortAsc);\r\n\t if (this.sortColumn == 'siteName')\r\n\t this.setSortingIcons(this.siteName, this.sortAsc);\r\n\t if (this.sortColumn == 'description')\r\n\t this.setSortingIcons(this.desc, this.sortAsc);\r\n\t if (this.sortColumn == 'modifiedDate')\r\n\t this.setSortingIcons(this.modifiedDate, !this.sortAsc);\r\n\t }\r\n\t };\r\n\t ConversionPassesComponent.prototype.setSortingIcons = function (element, sortAsc) {\r\n\t if (sortAsc == true) {\r\n\t element.nativeElement.childNodes[1].classList.add('arrow-up');\r\n\t element.nativeElement.childNodes[1].classList.remove('arrow-down');\r\n\t }\r\n\t else {\r\n\t element.nativeElement.childNodes[1].classList.remove('arrow-up');\r\n\t element.nativeElement.childNodes[1].classList.add('arrow-down');\r\n\t }\r\n\t };\r\n\t ConversionPassesComponent.prototype.isSiteFilterActive = function () {\r\n\t if (!util_1.isUndefined(this.site)) {\r\n\t if (this.siteFilter) {\r\n\t this.searchText = this.site;\r\n\t }\r\n\t else {\r\n\t sessionStorage.setItem('searchText', this.searchText);\r\n\t }\r\n\t }\r\n\t };\r\n\t ConversionPassesComponent.prototype.unfilterSearchConversion = function () {\r\n\t if (util_1.isUndefined(this.site)) {\r\n\t if (this.siteFilter != false) {\r\n\t this.searchText = '';\r\n\t sessionStorage.setItem('searchText', '');\r\n\t this.conversionPassesLoader = true;\r\n\t this.filterForShowAll();\r\n\t this.showAll = true;\r\n\t this.siteFilter = false;\r\n\t }\r\n\t else {\r\n\t this.searchText = '';\r\n\t sessionStorage.setItem('searchText', '');\r\n\t }\r\n\t }\r\n\t else {\r\n\t sessionStorage.setItem('currentStatus', this.statusFilter);\r\n\t sessionStorage.setItem('currentDocState', this.docStateFilter);\r\n\t this.router.navigateByUrl('conversions');\r\n\t this.siteFilter = false;\r\n\t }\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Array)\r\n\t ], ConversionPassesComponent.prototype, \"data\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], ConversionPassesComponent.prototype, \"statusFilter\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], ConversionPassesComponent.prototype, \"docStateFilter\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Number)\r\n\t ], ConversionPassesComponent.prototype, \"pageSize\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Number)\r\n\t ], ConversionPassesComponent.prototype, \"pageIndex\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Boolean)\r\n\t ], ConversionPassesComponent.prototype, \"hasMoreResults\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Array)\r\n\t ], ConversionPassesComponent.prototype, \"tokens\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Boolean)\r\n\t ], ConversionPassesComponent.prototype, \"showAll\", void 0);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], ConversionPassesComponent.prototype, \"onPreviousPage\", void 0);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], ConversionPassesComponent.prototype, \"onNextPage\", void 0);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], ConversionPassesComponent.prototype, \"refresh\", void 0);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], ConversionPassesComponent.prototype, \"onSorting\", void 0);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], ConversionPassesComponent.prototype, \"onCompletedNextPage\", void 0);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], ConversionPassesComponent.prototype, \"onCompletedPreviousPage\", void 0);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], ConversionPassesComponent.prototype, \"onCountConversionsSummaries\", void 0);\r\n\t __decorate([\r\n\t core_1.ViewChild('columnDetails'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], ConversionPassesComponent.prototype, \"columnDetails\", void 0);\r\n\t __decorate([\r\n\t core_1.ViewChild('siteID'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], ConversionPassesComponent.prototype, \"siteId\", void 0);\r\n\t __decorate([\r\n\t core_1.ViewChild('siteName'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], ConversionPassesComponent.prototype, \"siteName\", void 0);\r\n\t __decorate([\r\n\t core_1.ViewChild('desc'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], ConversionPassesComponent.prototype, \"desc\", void 0);\r\n\t __decorate([\r\n\t core_1.ViewChild('modifiedDate'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], ConversionPassesComponent.prototype, \"modifiedDate\", void 0);\r\n\t ConversionPassesComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'conversion-passes',\r\n\t template: __webpack_require__(598),\r\n\t styles: [__webpack_require__(599)],\r\n\t providers: [conversions_service_1.ConversionsService, date_service_1.DateService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [router_1.Router,\r\n\t router_1.ActivatedRoute,\r\n\t auth_service_1.AuthService,\r\n\t conversions_service_1.ConversionsService,\r\n\t date_service_1.DateService])\r\n\t ], ConversionPassesComponent);\r\n\t return ConversionPassesComponent;\r\n\t}());\r\n\texports.ConversionPassesComponent = ConversionPassesComponent;\r\n\n\n/***/ },\n/* 598 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n clear\\r\\n \\r\\n
Site Id Site Name Description Go Live Completed Date Last Modified Status
security{{ conversionPass?.siteId }}{{ conversionPass?.siteName }} {{ conversionPass?.description }}{{ conversionPass?.goLive === true ? 'GO LIVE' : 'TESTING'}} {{ conversionPass?.passNumber }} \\r\\n {{ getDate(conversionPass?.modifiedDate) | date:'MM/dd/yyyy'}} \\r\\n \\r\\n {{ getTimeSpanFromNow(conversionPass?.modifiedDate) }}\\r\\n \\r\\n
\\r\\n {{ getStatusIcon(conversionPass?.status) }}\\r\\n {{ status[conversionPass?.status] }}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Items per page:\\r\\n \\r\\n \\r\\n {{ pageSize.viewValue }}\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \";\n\n/***/ },\n/* 599 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"td {\\r\\n padding:2px;\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\na {\\r\\n color: #0078d7;\\r\\n}\\r\\n\\r\\na:hover {\\r\\n text-decoration: underline;\\r\\n}\\r\\n\\r\\n.arrow-up {\\r\\n width: 0;\\r\\n height: 0;\\r\\n border-left: 5px solid transparent;\\r\\n border-right: 5px solid transparent;\\r\\n border-bottom: 5px solid black;\\r\\n position: relative;\\r\\n top: -26%;\\r\\n left: 1%;\\r\\n}\\r\\n\\r\\n.arrow-down {\\r\\n width: 0;\\r\\n height: 0;\\r\\n border-left: 5px solid transparent;\\r\\n border-right: 5px solid transparent;\\r\\n border-top: 5px solid #f00;\\r\\n position: relative;\\r\\n top: 26%;\\r\\n left: 1%;\\r\\n}\\r\\n\\r\\ninput:disabled {\\r\\n cursor: not-allowed;\\r\\n}\\r\\n\"\n\n/***/ },\n/* 600 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar conversions_service_1 = __webpack_require__(378);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar interfaces_1 = __webpack_require__(304);\r\n\tvar GoLiveConversionPassesMenuComponent = (function () {\r\n\t function GoLiveConversionPassesMenuComponent(router, auth, conversionsService) {\r\n\t this.router = router;\r\n\t this.auth = auth;\r\n\t this.conversionsService = conversionsService;\r\n\t this.refresh = new core_1.EventEmitter();\r\n\t this.Role = auth_service_1.Role;\r\n\t this.Permission = auth_service_1.Permission;\r\n\t this.isResubmitting = false;\r\n\t this.isDeleting = false;\r\n\t this.states = interfaces_1.ConversionStatus;\r\n\t this.docStates = interfaces_1.DocumentState;\r\n\t this.docState = interfaces_1.DocumentState.Undefined;\r\n\t }\r\n\t GoLiveConversionPassesMenuComponent.prototype.ngOnInit = function () {\r\n\t this.conversionId = this.conversionPass.conversionId;\r\n\t this.passNumber = this.conversionPass.passNumber;\r\n\t };\r\n\t GoLiveConversionPassesMenuComponent.prototype.openInNewTab = function () {\r\n\t var url = window.location.origin + \"/#/conversions/\" + this.conversionId + \"/passes/\" + this.passNumber;\r\n\t window.open(url, \"_blank\");\r\n\t };\r\n\t GoLiveConversionPassesMenuComponent.prototype.viewConversionPass = function () {\r\n\t if (this.conversionPass) {\r\n\t this.router.navigate([\"/conversions/\" + this.conversionPass.conversionId + \"/passes/\" + this.conversionPass.passNumber]);\r\n\t }\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], GoLiveConversionPassesMenuComponent.prototype, \"conversionPass\", void 0);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], GoLiveConversionPassesMenuComponent.prototype, \"refresh\", void 0);\r\n\t GoLiveConversionPassesMenuComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'golive-passes-menu',\r\n\t template: __webpack_require__(601),\r\n\t providers: [conversions_service_1.ConversionsService],\r\n\t styles: []\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [router_1.Router,\r\n\t auth_service_1.AuthService,\r\n\t conversions_service_1.ConversionsService])\r\n\t ], GoLiveConversionPassesMenuComponent);\r\n\t return GoLiveConversionPassesMenuComponent;\r\n\t}());\r\n\texports.GoLiveConversionPassesMenuComponent = GoLiveConversionPassesMenuComponent;\r\n\n\n/***/ },\n/* 601 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n\\r\\n \\r\\n \\r\\n\";\n\n/***/ },\n/* 602 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar conversions_service_1 = __webpack_require__(378);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar interfaces_1 = __webpack_require__(304);\r\n\tvar ConversionPassesMenuComponent = (function () {\r\n\t function ConversionPassesMenuComponent(router, auth, conversionsService) {\r\n\t this.router = router;\r\n\t this.auth = auth;\r\n\t this.conversionsService = conversionsService;\r\n\t this.refresh = new core_1.EventEmitter();\r\n\t this.Role = auth_service_1.Role;\r\n\t this.Permission = auth_service_1.Permission;\r\n\t this.isResubmitting = false;\r\n\t this.isDeleting = false;\r\n\t this.states = interfaces_1.ConversionStatus;\r\n\t this.docStates = interfaces_1.DocumentState;\r\n\t this.docState = interfaces_1.DocumentState.Undefined;\r\n\t }\r\n\t ConversionPassesMenuComponent.prototype.ngOnInit = function () {\r\n\t this.conversionId = this.conversionPass.conversionId;\r\n\t this.conversionPassId = this.conversionPass.passId;\r\n\t this.passNumber = this.conversionPass.passNumber;\r\n\t this.docState = this.conversionPass.docState;\r\n\t this.status = this.conversionPass.status;\r\n\t this.isAdmin = this.auth.hasRole(auth_service_1.Role.Administrator);\r\n\t this.isEpicorEmployeeAndConversionMonitor = this.auth.hasRole(auth_service_1.Role.EpicorEmployee) && this.auth.hasPermission(auth_service_1.Permission.ConversionMonitor);\r\n\t };\r\n\t ConversionPassesMenuComponent.prototype.openInNewTab = function () {\r\n\t var url = window.location.origin + \"/#/conversions/\" + this.conversionId + \"/passes/\" + this.passNumber;\r\n\t window.open(url, \"_blank\");\r\n\t };\r\n\t ConversionPassesMenuComponent.prototype.resubmit = function () {\r\n\t var _this = this;\r\n\t if (confirm(\"Are you sure you want to resubmit?\")) {\r\n\t this.isResubmitting = true;\r\n\t this.conversionsService.resubmitConversionPass(this.conversionId, this.conversionPassId).subscribe(function (res) {\r\n\t _this.isResubmitting = false;\r\n\t _this.refresh.emit(true);\r\n\t });\r\n\t }\r\n\t };\r\n\t ConversionPassesMenuComponent.prototype.viewConversionPass = function () {\r\n\t if (this.conversionPass) {\r\n\t this.router.navigate([\"/conversions/\" + this.conversionPass.conversionId + \"/passes/\" + this.conversionPass.passNumber]);\r\n\t }\r\n\t };\r\n\t ConversionPassesMenuComponent.prototype.delete = function () {\r\n\t var _this = this;\r\n\t if (confirm(\"Are you sure you want to delete this conversion pass?\")) {\r\n\t this.isDeleting = true;\r\n\t this.conversionsService.deleteConversionPass(this.conversionPassId).subscribe(function (res) {\r\n\t _this.isDeleting = false;\r\n\t _this.refresh.emit(true);\r\n\t });\r\n\t }\r\n\t };\r\n\t ConversionPassesMenuComponent.prototype.archive = function () {\r\n\t var _this = this;\r\n\t this.conversionsService.archiveConversionPass(this.conversionPassId).subscribe(function (res) {\r\n\t _this.refresh.emit(true);\r\n\t });\r\n\t };\r\n\t ConversionPassesMenuComponent.prototype.unarchive = function () {\r\n\t var _this = this;\r\n\t this.conversionsService.unarchiveConversionPass(this.conversionPassId).subscribe(function (res) {\r\n\t _this.refresh.emit(true);\r\n\t });\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], ConversionPassesMenuComponent.prototype, \"conversionPass\", void 0);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], ConversionPassesMenuComponent.prototype, \"refresh\", void 0);\r\n\t ConversionPassesMenuComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'conversion-passes-menu',\r\n\t template: __webpack_require__(603),\r\n\t providers: [conversions_service_1.ConversionsService],\r\n\t styles: []\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [router_1.Router,\r\n\t auth_service_1.AuthService,\r\n\t conversions_service_1.ConversionsService])\r\n\t ], ConversionPassesMenuComponent);\r\n\t return ConversionPassesMenuComponent;\r\n\t}());\r\n\texports.ConversionPassesMenuComponent = ConversionPassesMenuComponent;\r\n\n\n/***/ },\n/* 603 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\";\n\n/***/ },\n/* 604 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar region_service_1 = __webpack_require__(391);\r\n\tvar product_service_1 = __webpack_require__(555);\r\n\tvar cloudview_service_1 = __webpack_require__(393);\r\n\tvar cloudview_hub_service_1 = __webpack_require__(305);\r\n\tvar dom_events_1 = __webpack_require__(329);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar cloudview_host_dialog_1 = __webpack_require__(605);\r\n\tvar cloudview_instance_dialog_1 = __webpack_require__(607);\r\n\tvar cloudview_command_dialog_1 = __webpack_require__(609);\r\n\tvar ng2_dragula_1 = __webpack_require__(108);\r\n\tvar Observable_1 = __webpack_require__(4);\r\n\tvar application_service_1 = __webpack_require__(352);\r\n\tvar cloudviewdoc_dialog_1 = __webpack_require__(611);\r\n\tvar CloudViewComponent = (function () {\r\n\t function CloudViewComponent(hostDialog, dialog, instanceDialog, commandDialog, snackBar, router, route, auth, regionService, productService, cloudviewService, cloudviewHubService, domEvents, dragulaService, viewContainerRef, applicationService) {\r\n\t var _this = this;\r\n\t this.hostDialog = hostDialog;\r\n\t this.dialog = dialog;\r\n\t this.instanceDialog = instanceDialog;\r\n\t this.commandDialog = commandDialog;\r\n\t this.snackBar = snackBar;\r\n\t this.router = router;\r\n\t this.route = route;\r\n\t this.auth = auth;\r\n\t this.regionService = regionService;\r\n\t this.productService = productService;\r\n\t this.cloudviewService = cloudviewService;\r\n\t this.cloudviewHubService = cloudviewHubService;\r\n\t this.domEvents = domEvents;\r\n\t this.dragulaService = dragulaService;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.applicationService = applicationService;\r\n\t this.Role = auth_service_1.Role;\r\n\t this.Permission = auth_service_1.Permission;\r\n\t this.hostsDisplay = true;\r\n\t this.appHostsLoader = false;\r\n\t this.appHosts = [];\r\n\t this.appHostsCount = 0;\r\n\t this.dbHostsLoader = false;\r\n\t this.dbHosts = [];\r\n\t this.dbHostsCount = 0;\r\n\t this.unallocatedInstancesLoader = false;\r\n\t this.unallocatedInstances = [];\r\n\t this.unallocatedAppInstances = [];\r\n\t this.unallocatedDbInstances = [];\r\n\t this.unallocatedIntancesCount = 0;\r\n\t this.logsLoader = false;\r\n\t this.logs = [];\r\n\t this.logsPageIndex = 0;\r\n\t this.logsContinuationTokens = [\"\"];\r\n\t this.logsCount = 0;\r\n\t this.logFilter = {\r\n\t type: null,\r\n\t typeUID: null,\r\n\t severity: null,\r\n\t instance: null,\r\n\t debug: false\r\n\t };\r\n\t this.LogSeverity = cloudview_service_1.LogSeverity;\r\n\t this.LogType = cloudview_service_1.LogType;\r\n\t this.hostinstancesLoaded = false;\r\n\t this.settingsMenuOpen = false;\r\n\t this.commandsMenuOpen = false;\r\n\t this.HostAction = HostAction;\r\n\t this.InstanceAction = InstanceAction;\r\n\t this.hostRegion = '';\r\n\t this.HostType = cloudview_service_1.HostType;\r\n\t this.creatingHost = false;\r\n\t this.instanceDetailShow = false;\r\n\t this.instances = [];\r\n\t this.instancesLoader = false;\r\n\t this.sortRefresh = false;\r\n\t this.InstanceStatus = cloudview_service_1.InstanceStatus;\r\n\t this.instanceStates = [\r\n\t { key: 'Offline', value: cloudview_service_1.InstanceStatus.Offline },\r\n\t { key: 'Running', value: cloudview_service_1.InstanceStatus.Running },\r\n\t { key: 'Deleting', value: cloudview_service_1.InstanceStatus.Deleting },\r\n\t { key: 'Deleted', value: cloudview_service_1.InstanceStatus.Deleted },\r\n\t { key: 'Warning', value: cloudview_service_1.InstanceStatus.Warning },\r\n\t { key: 'Error', value: cloudview_service_1.InstanceStatus.Error }\r\n\t ];\r\n\t this.ViewMode = ViewMode;\r\n\t this.instancesFilter = {\r\n\t query: '',\r\n\t region: '',\r\n\t product: '',\r\n\t status: ''\r\n\t };\r\n\t this.applications = [];\r\n\t this.isLoading = false;\r\n\t this.sortAsc = false;\r\n\t this.sortColumn = \"\";\r\n\t this.showAll = false;\r\n\t this.loaded = false;\r\n\t this.zone = new core_1.NgZone({ enableLongStackTrace: false });\r\n\t dragulaService.drop.subscribe(function (value) {\r\n\t var bagName = value[0], e = value[1], el = value[2];\r\n\t _this.onDrop(value.slice(1), bagName);\r\n\t });\r\n\t this.isLoading = true;\r\n\t this.applicationService.getApplications().subscribe(function (applications) {\r\n\t _this.applications = applications;\r\n\t _this.isLoading = false;\r\n\t });\r\n\t }\r\n\t CloudViewComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t if (this.auth.hasRole(auth_service_1.Role.Administrator) ||\r\n\t (this.auth.hasRole(auth_service_1.Role.EpicorEmployee) &&\r\n\t this.auth.hasPermission(auth_service_1.Permission.CloudViewDashboardView)) ||\r\n\t (this.auth.hasRole(auth_service_1.Role.EpicorEmployee) &&\r\n\t this.auth.hasPermission(auth_service_1.Permission.CloudViewAdmin))) {\r\n\t this.searchText = this.route.snapshot.queryParamMap.get('searchText');\r\n\t if (this.searchText) {\r\n\t this.instancesFilter.query = this.searchText;\r\n\t }\r\n\t this.route.queryParams.subscribe(function (params) { return _this.sentViewMode = +params['viewMode']; });\r\n\t if (!this.sentViewMode) {\r\n\t this.selectedViewMode = ViewMode.Dashboard;\r\n\t }\r\n\t else {\r\n\t this.router.navigate(['cloudview']);\r\n\t this.selectedViewMode = this.sentViewMode;\r\n\t }\r\n\t this.getAppHosts();\r\n\t this.getDbHosts();\r\n\t this.getUnallocatedInstances();\r\n\t this.getLogs(null, false);\r\n\t this.getLogsCount();\r\n\t this.getRegions();\r\n\t this.getProducts();\r\n\t }\r\n\t else {\r\n\t this.selectedViewMode = ViewMode.Instances;\r\n\t this.getInstances();\r\n\t }\r\n\t this.domEvents.triggerOnDocument(\"appready\");\r\n\t };\r\n\t CloudViewComponent.prototype.getAppHosts = function () {\r\n\t var _this = this;\r\n\t this.appHosts = [];\r\n\t this.appHostsLoader = true;\r\n\t this.cloudviewService.getAppHosts().subscribe(function (hosts) {\r\n\t _this.appHosts = hosts;\r\n\t _this.appHostsLoader = false;\r\n\t });\r\n\t this.getAppHostsCount();\r\n\t };\r\n\t CloudViewComponent.prototype.getAppHostsCount = function () {\r\n\t var _this = this;\r\n\t this.cloudviewService.getAppHostsCount().subscribe(function (count) {\r\n\t _this.appHostsCount = count;\r\n\t });\r\n\t };\r\n\t CloudViewComponent.prototype.getDbHosts = function () {\r\n\t var _this = this;\r\n\t this.dbHosts = [];\r\n\t this.dbHostsLoader = true;\r\n\t this.cloudviewService.getDbHosts().subscribe(function (hosts) {\r\n\t _this.dbHosts = hosts;\r\n\t _this.dbHostsLoader = false;\r\n\t });\r\n\t this.getDbHostsCount();\r\n\t };\r\n\t CloudViewComponent.prototype.getDbHostsCount = function () {\r\n\t var _this = this;\r\n\t this.cloudviewService.getDbHostsCount().subscribe(function (count) {\r\n\t _this.dbHostsCount = count;\r\n\t });\r\n\t };\r\n\t CloudViewComponent.prototype.getUnallocatedInstances = function () {\r\n\t var _this = this;\r\n\t this.unallocatedInstancesLoader = true;\r\n\t this.cloudviewService.getUnallocatedInstances().subscribe(function (instances) {\r\n\t _this.unallocatedInstances = [];\r\n\t _this.unallocatedAppInstances = [];\r\n\t _this.unallocatedDbInstances = [];\r\n\t _this.unallocatedIntancesCount = instances.length;\r\n\t instances.forEach(function (instance) {\r\n\t var appInstance = Object.assign({}, instance);\r\n\t appInstance[\"type\"] = cloudview_service_1.HostType.APP;\r\n\t var dbInstance = Object.assign({}, instance);\r\n\t dbInstance[\"type\"] = cloudview_service_1.HostType.DB;\r\n\t _this.unallocatedAppInstances.push(appInstance);\r\n\t _this.unallocatedDbInstances.push(dbInstance);\r\n\t });\r\n\t _this.unallocatedInstances = instances;\r\n\t _this.unallocatedInstancesLoader = false;\r\n\t });\r\n\t };\r\n\t CloudViewComponent.prototype.getUnallocatedInstancesCount = function () {\r\n\t var _this = this;\r\n\t this.cloudviewService.getUnallocatedInstancesCount().subscribe(function (count) {\r\n\t _this.unallocatedIntancesCount = count;\r\n\t });\r\n\t };\r\n\t CloudViewComponent.prototype.showAllInstances = function () {\r\n\t if (this.instancesFilter.query != '') {\r\n\t this.instancesFilter.query = '';\r\n\t this.showAll = false;\r\n\t this.getInstances();\r\n\t }\r\n\t else {\r\n\t this.showAll = !this.showAll;\r\n\t }\r\n\t if (!this.loaded) {\r\n\t this.getInstances();\r\n\t this.showAll = true;\r\n\t this.loaded = true;\r\n\t }\r\n\t };\r\n\t CloudViewComponent.prototype.filterInstances = function () {\r\n\t var _this = this;\r\n\t if (this.searchTimeout != undefined)\r\n\t clearTimeout(this.searchTimeout);\r\n\t this.searchTimeout = setTimeout(function () {\r\n\t _this.showAll = _this.instancesFilter.query == '' ? false : true;\r\n\t _this.getInstances();\r\n\t }, 500);\r\n\t };\r\n\t CloudViewComponent.prototype.getInstances = function () {\r\n\t var _this = this;\r\n\t this.instances = [];\r\n\t var query = this.instancesFilter.query;\r\n\t var region = this.instancesFilter.region;\r\n\t var product = this.instancesFilter.product;\r\n\t var status = this.instancesFilter.status;\r\n\t this.instancesLoader = true;\r\n\t this.cloudviewService.getInstances(query, region, product, status, \"\", \"\").subscribe(function (instances) {\r\n\t instances.forEach(function (instance) {\r\n\t if (instance.deleteOn) {\r\n\t instance.deleteOn = instance.deleteOn.substr(0, 16);\r\n\t }\r\n\t });\r\n\t _this.instances = instances;\r\n\t _this.instancesLoader = false;\r\n\t _this.loaded = true;\r\n\t }, function (err) {\r\n\t _this.instancesLoader = false;\r\n\t });\r\n\t };\r\n\t CloudViewComponent.prototype.sort = function (selectedColumnName) {\r\n\t var _this = this;\r\n\t var columnCount = 1;\r\n\t if (sessionStorage.getItem('sortAsc') == null) {\r\n\t this.sortAsc = false;\r\n\t sessionStorage.setItem('sortAsc', 'false');\r\n\t }\r\n\t else {\r\n\t var tempSortAsc = sessionStorage.getItem('sortAsc') == 'true' ? 'false' : 'true';\r\n\t sessionStorage.setItem('sortAsc', tempSortAsc);\r\n\t this.sortAsc = tempSortAsc == 'true' ? true : false;\r\n\t }\r\n\t sessionStorage.setItem('sortColumn', selectedColumnName);\r\n\t for (columnCount; columnCount < this.columnDetails.nativeElement.children.length - 1; columnCount++) {\r\n\t this.columnDetails.nativeElement.children[columnCount].children[0].classList.remove('arrow-down');\r\n\t this.columnDetails.nativeElement.children[columnCount].children[0].classList.remove('arrow-up');\r\n\t }\r\n\t this.sortRefresh = true;\r\n\t this.cloudviewService.getInstances(this.instancesFilter.query, this.instancesFilter.region, this.instancesFilter.product, this.instancesFilter.status, this.sortAsc ? \"asc\" : \"desc\", selectedColumnName).subscribe(function (instances) {\r\n\t instances.forEach(function (instance) {\r\n\t if (instance.deleteOn) {\r\n\t instance.deleteOn = instance.deleteOn.substr(0, 16);\r\n\t }\r\n\t });\r\n\t _this.instances = instances;\r\n\t _this.sortRefresh = false;\r\n\t }, function (err) {\r\n\t _this.sortRefresh = false;\r\n\t });\r\n\t this.SetIcons();\r\n\t };\r\n\t CloudViewComponent.prototype.uploadApplicationDocs = function (applicationName, applicationDocument) {\r\n\t var _this = this;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t config.width = \"500px\";\r\n\t config.height = \"300px\";\r\n\t this.docDialogRef = this.dialog.open(cloudviewdoc_dialog_1.CloudViewDocDialog, config);\r\n\t this.docDialogRef.componentInstance.setCloudView(applicationName, applicationDocument);\r\n\t this.docDialogRef.afterClosed().subscribe(function (result) {\r\n\t if (result === \"cancel\")\r\n\t return;\r\n\t _this.applicationService.getApplications().subscribe(function (applications) {\r\n\t _this.applications = applications;\r\n\t _this.isLoading = false;\r\n\t });\r\n\t });\r\n\t };\r\n\t CloudViewComponent.prototype.SetIcons = function () {\r\n\t this.sortAsc = sessionStorage.getItem('sortAsc') == 'true' ? true : false;\r\n\t this.sortColumn = sessionStorage.getItem('sortColumn');\r\n\t if (this.sortColumn != null) {\r\n\t if (this.sortColumn == 'deleteOn')\r\n\t this.setSortingIcons(this.deletionDate, this.sortAsc);\r\n\t if (this.sortColumn == 'siteName')\r\n\t this.setSortingIcons(this.siteName, this.sortAsc);\r\n\t }\r\n\t };\r\n\t CloudViewComponent.prototype.setSortingIcons = function (element, sortAsc) {\r\n\t if (sortAsc == true) {\r\n\t element.nativeElement.childNodes[1].classList.add('arrow-up');\r\n\t element.nativeElement.childNodes[1].classList.remove('arrow-down');\r\n\t }\r\n\t else {\r\n\t element.nativeElement.childNodes[1].classList.remove('arrow-up');\r\n\t element.nativeElement.childNodes[1].classList.add('arrow-down');\r\n\t }\r\n\t };\r\n\t CloudViewComponent.prototype.getLogs = function (token, clearContinuationTokens) {\r\n\t var _this = this;\r\n\t if (token === void 0) { token = \"\"; }\r\n\t this.logs = [];\r\n\t this.logsCount = 0;\r\n\t this.logsLoader = true;\r\n\t if (clearContinuationTokens) {\r\n\t this.logsContinuationTokens = [\"\"];\r\n\t }\r\n\t this.cloudviewService.getLogs(this.logFilter.type, this.logFilter.typeUID, this.logFilter.severity, this.logFilter.instance, token, this.logFilter.debug, false).subscribe(function (response) {\r\n\t _this.logs = response.result;\r\n\t if (response.requestContinuation != null) {\r\n\t var token = JSON.parse(response.requestContinuation).token;\r\n\t if (typeof _this.logsContinuationTokens[_this.logsPageIndex + 1] === 'undefined') {\r\n\t _this.logsContinuationTokens.push(token);\r\n\t }\r\n\t }\r\n\t _this.logsLoader = false;\r\n\t });\r\n\t };\r\n\t CloudViewComponent.prototype.getHostLogs = function (token, clearContinuationTokens) {\r\n\t var _this = this;\r\n\t if (token === void 0) { token = \"\"; }\r\n\t this.logs = [];\r\n\t this.logsCount = 0;\r\n\t this.logsLoader = true;\r\n\t if (clearContinuationTokens) {\r\n\t this.logsContinuationTokens = [\"\"];\r\n\t }\r\n\t this.cloudviewService.getLogs(this.logFilter.type, this.logFilter.typeUID, this.logFilter.severity, this.logFilter.instance, token, this.logFilter.debug, true).subscribe(function (response) {\r\n\t _this.logs = response.result;\r\n\t if (response.requestContinuation != null) {\r\n\t var token = JSON.parse(response.requestContinuation).token;\r\n\t if (typeof _this.logsContinuationTokens[_this.logsPageIndex + 1] === 'undefined') {\r\n\t _this.logsContinuationTokens.push(token);\r\n\t }\r\n\t }\r\n\t _this.logsLoader = false;\r\n\t });\r\n\t };\r\n\t CloudViewComponent.prototype.RefreshLogs = function (checked) {\r\n\t this.logFilter.debug = checked;\r\n\t this.getLogs(null, true);\r\n\t };\r\n\t CloudViewComponent.prototype.getLogsCount = function () {\r\n\t var _this = this;\r\n\t this.cloudviewService.getLogsCount(this.logFilter.type, this.logFilter.typeUID, this.logFilter.severity, this.logFilter.instance, this.logFilter.debug, false).subscribe(function (data) {\r\n\t _this.logsCount = data.logsCount;\r\n\t });\r\n\t };\r\n\t CloudViewComponent.prototype.getHostLogsCount = function () {\r\n\t var _this = this;\r\n\t this.cloudviewService.getLogsCount(this.logFilter.type, this.logFilter.typeUID, this.logFilter.severity, this.logFilter.instance, false, true).subscribe(function (data) {\r\n\t _this.logsCount = data.logsCount;\r\n\t });\r\n\t };\r\n\t CloudViewComponent.prototype.previousLogsPage = function (host) {\r\n\t if (host === void 0) { host = false; }\r\n\t this.logsPageIndex -= 1;\r\n\t var token = this.logsContinuationTokens[this.logsPageIndex];\r\n\t if (typeof token !== 'undefined') {\r\n\t if (host) {\r\n\t this.getHostLogs(token, false);\r\n\t }\r\n\t else {\r\n\t this.getLogs(token, false);\r\n\t }\r\n\t }\r\n\t else {\r\n\t this.logsPageIndex += 1;\r\n\t }\r\n\t };\r\n\t CloudViewComponent.prototype.nextLogsPage = function (host) {\r\n\t if (host === void 0) { host = false; }\r\n\t this.logsPageIndex += 1;\r\n\t var token = this.logsContinuationTokens[this.logsPageIndex];\r\n\t if (typeof token !== 'undefined') {\r\n\t if (host) {\r\n\t this.getHostLogs(token, false);\r\n\t }\r\n\t else {\r\n\t this.getLogs(token, false);\r\n\t }\r\n\t }\r\n\t else {\r\n\t this.logsPageIndex -= 1;\r\n\t }\r\n\t };\r\n\t CloudViewComponent.prototype.getRegions = function () {\r\n\t var _this = this;\r\n\t this.regions = [];\r\n\t this.regionService.getRegions().subscribe(function (regions) {\r\n\t _this.regions = regions;\r\n\t });\r\n\t };\r\n\t CloudViewComponent.prototype.getProducts = function () {\r\n\t var _this = this;\r\n\t this.products = [];\r\n\t this.productService.getProducts().subscribe(function (products) {\r\n\t _this.products = products;\r\n\t });\r\n\t };\r\n\t CloudViewComponent.prototype.getHostInstances = function () {\r\n\t var _this = this;\r\n\t this.hostinstancesLoaded = false;\r\n\t this.cloudviewService.getHostInstanceCollection().subscribe(function (allInstances) {\r\n\t _this.hostinstancesLoaded = true;\r\n\t _this.hostInstances = allInstances;\r\n\t });\r\n\t };\r\n\t CloudViewComponent.prototype.createHost = function (type) {\r\n\t this.openHostDialog(type);\r\n\t };\r\n\t CloudViewComponent.prototype.listenForConnection = function () {\r\n\t var _this = this;\r\n\t this.cloudviewHubService.setConnectionId.subscribe(function (id) {\r\n\t _this.connectionId = id;\r\n\t }, function (err) { return console.log(err); });\r\n\t };\r\n\t CloudViewComponent.prototype.updateSubScription = function (subscription) {\r\n\t if (subscription.subscribe === true) {\r\n\t this.cloudviewHubService.subscribeToCloudViewHub(subscription.groupName);\r\n\t }\r\n\t else {\r\n\t this.cloudviewHubService.unsubscribeFromCloudViewHub(subscription.groupName);\r\n\t }\r\n\t };\r\n\t CloudViewComponent.prototype.setSubscription = function (val) {\r\n\t try {\r\n\t this.subscribed = val;\r\n\t var subscription = {\r\n\t subscribe: val,\r\n\t groupName: 'cloudview'\r\n\t };\r\n\t this.updateSubScription(subscription);\r\n\t }\r\n\t catch (err) {\r\n\t console.error(\"Unable to subscribe to cloudview hub\");\r\n\t this.subscribed = false;\r\n\t }\r\n\t };\r\n\t CloudViewComponent.prototype.toggleSettings = function () {\r\n\t if (this.settingsMenuOpen) {\r\n\t this.settingsMenuOpen = false;\r\n\t }\r\n\t else {\r\n\t this.settingsMenuOpen = true;\r\n\t }\r\n\t };\r\n\t CloudViewComponent.prototype.openHostDialog = function (hostType) {\r\n\t var _this = this;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = null;\r\n\t config.width = '250px';\r\n\t this.cloudViewHostDialogRef = this.hostDialog.open(cloudview_host_dialog_1.CloudViewHostDialog, config);\r\n\t this.cloudViewHostDialogRef.componentInstance.type = hostType;\r\n\t this.cloudViewHostDialogRef.afterClosed().subscribe(function (result) {\r\n\t if (result) {\r\n\t if (result.created) {\r\n\t _this.getAppHosts();\r\n\t _this.getDbHosts();\r\n\t }\r\n\t }\r\n\t });\r\n\t };\r\n\t CloudViewComponent.prototype.openInstanceDialog = function () {\r\n\t var _this = this;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = null;\r\n\t this.cloudViewInstanceDialogRef = this.instanceDialog.open(cloudview_instance_dialog_1.CloudViewInstanceDialog, config);\r\n\t this.cloudViewInstanceDialogRef.afterClosed().subscribe(function (res) {\r\n\t _this.getInstances();\r\n\t });\r\n\t };\r\n\t CloudViewComponent.prototype.openCommandDialog = function (host) {\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = null;\r\n\t config.width = '500px';\r\n\t this.cloudViewCommandDialogRef = this.commandDialog.open(cloudview_command_dialog_1.CloudViewCommandDialog, config);\r\n\t this.cloudViewCommandDialogRef.componentInstance.hostid = host;\r\n\t };\r\n\t CloudViewComponent.prototype.viewInstance = function (instance) {\r\n\t if (instance.id && instance.appServer && this.instancesFilter.query) {\r\n\t this.router.navigate([\"cloudview/hosts/\" + instance.appServer + \"/instances/\" + instance.id, { searchText: this.instancesFilter.query }]);\r\n\t }\r\n\t if (instance.id && instance.appServer && !this.instancesFilter.query) {\r\n\t this.router.navigate([\"cloudview/hosts/\" + instance.appServer + \"/instances/\" + instance.id]);\r\n\t }\r\n\t };\r\n\t CloudViewComponent.prototype.setViewMode = function (viewMode) {\r\n\t var _this = this;\r\n\t this.selectedViewMode = viewMode;\r\n\t if (this.selectedViewMode === ViewMode.Instances) {\r\n\t this.showAll = false;\r\n\t if (this.logUpdater != null) {\r\n\t this.logUpdater.unsubscribe();\r\n\t }\r\n\t }\r\n\t if (this.selectedViewMode === ViewMode.Hosts) {\r\n\t this.logUpdater = Observable_1.Observable.interval(1000 * 60 * 1).subscribe(function () { return _this.getHostLogs(null, false); });\r\n\t this.getHostLogs(null, false);\r\n\t this.getHostLogsCount();\r\n\t this.getHostInstances();\r\n\t }\r\n\t if (this.selectedViewMode === ViewMode.Dashboard) {\r\n\t this.getLogs(null, false);\r\n\t this.getLogsCount();\r\n\t if (this.logUpdater != null) {\r\n\t this.logUpdater.unsubscribe();\r\n\t }\r\n\t }\r\n\t };\r\n\t CloudViewComponent.prototype.updateInstanceTTL = function (instance) {\r\n\t if (new Date(instance.deleteOn) < new Date()) {\r\n\t if (confirm(\"The date selected for delete is older than current date (This will delete the instance immediately).\\nAre you sure you want to continue?\")) {\r\n\t this.updateTTL(instance);\r\n\t }\r\n\t else {\r\n\t this.getInstances();\r\n\t }\r\n\t }\r\n\t else {\r\n\t this.updateTTL(instance);\r\n\t }\r\n\t };\r\n\t CloudViewComponent.prototype.updateTTL = function (instance) {\r\n\t var _this = this;\r\n\t if (this.searchTimeout != undefined)\r\n\t clearTimeout(this.searchTimeout);\r\n\t this.searchTimeout = setTimeout(function () {\r\n\t _this.cloudviewService.setInstanceTTL(instance.id, instance.deleteOn).subscribe(function (res) {\r\n\t });\r\n\t }, 1000);\r\n\t };\r\n\t CloudViewComponent.prototype.onHostDelete = function (host) {\r\n\t switch (host.type) {\r\n\t case cloudview_service_1.HostType.APP:\r\n\t this.getAppHosts();\r\n\t break;\r\n\t case cloudview_service_1.HostType.DB:\r\n\t this.getDbHosts();\r\n\t break;\r\n\t }\r\n\t };\r\n\t CloudViewComponent.prototype.updateAppServer = function (instance) {\r\n\t var _this = this;\r\n\t var instanceId = instance.id;\r\n\t var appServer = instance.appServer;\r\n\t this.cloudviewService.setAppServer(instanceId, appServer).subscribe(function () {\r\n\t }, function (err) {\r\n\t var snackBarRef = _this.snackBar.open(\"Instance \" + instanceId + \" cannot be assigned to \" + appServer + \" due to product, version or region mismatch. Please assign to valid host.\", null, {\r\n\t duration: 4000\r\n\t });\r\n\t });\r\n\t };\r\n\t CloudViewComponent.prototype.updateDbServer = function (instance) {\r\n\t var instanceId = instance.id;\r\n\t var dbServer = instance.dbServer;\r\n\t this.cloudviewService.setDbServer(instanceId, dbServer).subscribe(function () {\r\n\t }, function (err) {\r\n\t });\r\n\t };\r\n\t CloudViewComponent.prototype.refreshDashboard = function () {\r\n\t this.getInstances();\r\n\t this.getUnallocatedInstances();\r\n\t this.getAppHosts();\r\n\t this.getDbHosts();\r\n\t };\r\n\t CloudViewComponent.prototype.refreshHosts = function () {\r\n\t this.getAppHosts();\r\n\t this.getDbHosts();\r\n\t };\r\n\t CloudViewComponent.prototype.deleteInstance = function (instance) {\r\n\t var _this = this;\r\n\t if (confirm(\"Are you sure you want to delete \" + instance.id + \"?\")) {\r\n\t this.cloudviewService.deleteInstance(instance.id).subscribe(function (res) {\r\n\t _this.refreshDashboard();\r\n\t });\r\n\t }\r\n\t };\r\n\t CloudViewComponent.prototype.runCommand = function (command, host) {\r\n\t this.cloudviewService.runCommandsOnHost(command, host.id).subscribe(function (res) {\r\n\t }, function (err) {\r\n\t });\r\n\t };\r\n\t CloudViewComponent.prototype.toggleCommandMenu = function () {\r\n\t if (this.commandsMenuOpen) {\r\n\t this.commandsMenuOpen = false;\r\n\t }\r\n\t else {\r\n\t this.commandsMenuOpen = true;\r\n\t }\r\n\t };\r\n\t CloudViewComponent.prototype.ngOnDestroy = function () {\r\n\t this.setSubscription(false);\r\n\t };\r\n\t CloudViewComponent.prototype.onDrop = function (args, hostType) {\r\n\t var instance = args[0], container = args[1];\r\n\t var instanceId = instance.dataset.id;\r\n\t var containerId = container.dataset.id;\r\n\t if (instanceId != null) {\r\n\t switch (hostType) {\r\n\t case cloudview_service_1.HostType.APP:\r\n\t if (containerId === 'unallocated') {\r\n\t containerId = null;\r\n\t }\r\n\t this.updateAppServer({ id: instanceId, appServer: containerId });\r\n\t break;\r\n\t case cloudview_service_1.HostType.DB:\r\n\t if (containerId === 'unallocated') {\r\n\t containerId = null;\r\n\t }\r\n\t this.updateDbServer({ id: instanceId, dbServer: containerId });\r\n\t break;\r\n\t }\r\n\t }\r\n\t };\r\n\t __decorate([\r\n\t core_1.ViewChild('siteName'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], CloudViewComponent.prototype, \"siteName\", void 0);\r\n\t __decorate([\r\n\t core_1.ViewChild('deleteOn'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], CloudViewComponent.prototype, \"deletionDate\", void 0);\r\n\t __decorate([\r\n\t core_1.ViewChild('columnDetails'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], CloudViewComponent.prototype, \"columnDetails\", void 0);\r\n\t CloudViewComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'cloudview',\r\n\t template: __webpack_require__(613),\r\n\t styles: [__webpack_require__(614), __webpack_require__(615)],\r\n\t providers: [cloudview_service_1.CloudViewService, cloudview_hub_service_1.CloudViewHubService, region_service_1.RegionService, product_service_1.ProductService, application_service_1.ApplicationService],\r\n\t viewProviders: [\r\n\t ng2_dragula_1.DragulaService\r\n\t ]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialog,\r\n\t material_1.MdDialog,\r\n\t material_1.MdDialog,\r\n\t material_1.MdDialog,\r\n\t material_1.MdSnackBar,\r\n\t router_1.Router,\r\n\t router_1.ActivatedRoute,\r\n\t auth_service_1.AuthService,\r\n\t region_service_1.RegionService,\r\n\t product_service_1.ProductService,\r\n\t cloudview_service_1.CloudViewService,\r\n\t cloudview_hub_service_1.CloudViewHubService,\r\n\t dom_events_1.DOMEvents,\r\n\t ng2_dragula_1.DragulaService,\r\n\t core_1.ViewContainerRef,\r\n\t application_service_1.ApplicationService])\r\n\t ], CloudViewComponent);\r\n\t return CloudViewComponent;\r\n\t}());\r\n\texports.CloudViewComponent = CloudViewComponent;\r\n\tvar HostAction;\r\n\t(function (HostAction) {\r\n\t HostAction[HostAction[\"Create\"] = 0] = \"Create\";\r\n\t HostAction[HostAction[\"Delete\"] = 1] = \"Delete\";\r\n\t})(HostAction = exports.HostAction || (exports.HostAction = {}));\r\n\tvar InstanceAction;\r\n\t(function (InstanceAction) {\r\n\t InstanceAction[InstanceAction[\"Create\"] = 0] = \"Create\";\r\n\t InstanceAction[InstanceAction[\"Delete\"] = 1] = \"Delete\";\r\n\t})(InstanceAction = exports.InstanceAction || (exports.InstanceAction = {}));\r\n\tvar ViewMode;\r\n\t(function (ViewMode) {\r\n\t ViewMode[ViewMode[\"Dashboard\"] = 0] = \"Dashboard\";\r\n\t ViewMode[ViewMode[\"Instances\"] = 1] = \"Instances\";\r\n\t ViewMode[ViewMode[\"Hosts\"] = 2] = \"Hosts\";\r\n\t})(ViewMode = exports.ViewMode || (exports.ViewMode = {}));\r\n\n\n/***/ },\n/* 605 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar cloudview_service_1 = __webpack_require__(393);\r\n\tvar region_service_1 = __webpack_require__(391);\r\n\tvar product_service_1 = __webpack_require__(555);\r\n\tvar CloudViewHostDialog = (function () {\r\n\t function CloudViewHostDialog(dialogRef, regionService, productService, cloudViewService) {\r\n\t this.dialogRef = dialogRef;\r\n\t this.regionService = regionService;\r\n\t this.productService = productService;\r\n\t this.cloudViewService = cloudViewService;\r\n\t this.vmSizes = [\r\n\t { size: 'Standard_DS2_v2', cpuCores: 2, memoryGiB: 7., localSSDGiB: 14 },\r\n\t { size: 'Standard_DS3_v2', cpuCores: 4, memoryGiB: 14, localSSDGiB: 28 },\r\n\t { size: 'Standard_DS4_v2', cpuCores: 8, memoryGiB: 28, localSSDGiB: 56 },\r\n\t { size: 'Standard_DS5_v2', cpuCores: 16, memoryGiB: 56, localSSDGiB: 112 }\r\n\t ];\r\n\t this.HostType = cloudview_service_1.HostType;\r\n\t this.creating = false;\r\n\t this.created = false;\r\n\t this.host = {\r\n\t type: null,\r\n\t region: 'eastus',\r\n\t size: 'Standard_DS2_v2',\r\n\t product: null,\r\n\t version: null\r\n\t };\r\n\t this.vmSizeOverview = {\r\n\t cpuCores: this.vmSizes[0].cpuCores,\r\n\t memoryGiB: this.vmSizes[0].memoryGiB,\r\n\t localSSDGiB: this.vmSizes[0].localSSDGiB\r\n\t };\r\n\t }\r\n\t CloudViewHostDialog.prototype.ngOnInit = function () {\r\n\t this.host.type = cloudview_service_1.HostType[this.type];\r\n\t this.getRegions();\r\n\t this.getProducts();\r\n\t };\r\n\t CloudViewHostDialog.prototype.getProducts = function () {\r\n\t var _this = this;\r\n\t this.products = [];\r\n\t this.productService.getProducts().subscribe(function (products) {\r\n\t _this.products = products;\r\n\t });\r\n\t };\r\n\t CloudViewHostDialog.prototype.getProductVersions = function (product) {\r\n\t this.productVersions = this.uniqueVersions(this.products.find(function (p) { return p.id == product; }).toVersions.map(function (version) {\r\n\t return version.substring(0, version.lastIndexOf('.'));\r\n\t }));\r\n\t };\r\n\t CloudViewHostDialog.prototype.uniqueVersions = function (arr) {\r\n\t var u = {}, a = [];\r\n\t for (var i = 0, l = arr.length; i < l; ++i) {\r\n\t if (!u.hasOwnProperty(arr[i])) {\r\n\t a.push(arr[i]);\r\n\t u[arr[i]] = 1;\r\n\t }\r\n\t }\r\n\t return a;\r\n\t };\r\n\t CloudViewHostDialog.prototype.getRegions = function () {\r\n\t var _this = this;\r\n\t this.regions = [];\r\n\t this.regionService.getRegions().subscribe(function (regions) {\r\n\t _this.regions = regions;\r\n\t });\r\n\t };\r\n\t CloudViewHostDialog.prototype.createHost = function () {\r\n\t var _this = this;\r\n\t var region = this.host.region;\r\n\t var size = this.host.size;\r\n\t this.creating = true;\r\n\t switch (this.type) {\r\n\t case cloudview_service_1.HostType.APP:\r\n\t this.cloudViewService.createHost(this.host).subscribe(function (res) {\r\n\t _this.creating = false;\r\n\t _this.created = true;\r\n\t _this.close();\r\n\t });\r\n\t break;\r\n\t case cloudview_service_1.HostType.DB:\r\n\t this.cloudViewService.createHost(this.host).subscribe(function (res) {\r\n\t _this.creating = false;\r\n\t _this.created = true;\r\n\t _this.close();\r\n\t });\r\n\t break;\r\n\t }\r\n\t };\r\n\t CloudViewHostDialog.prototype.onVMSizeChange = function () {\r\n\t var _this = this;\r\n\t this.vmSizeOverview = this.vmSizes.find(function (vm) { return vm.size == _this.host.size; });\r\n\t };\r\n\t CloudViewHostDialog.prototype.close = function () {\r\n\t this.dialogRef.close({ created: this.created });\r\n\t };\r\n\t CloudViewHostDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'cloudview-host-dialog',\r\n\t template: __webpack_require__(606),\r\n\t providers: [cloudview_service_1.CloudViewService, region_service_1.RegionService, product_service_1.ProductService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef,\r\n\t region_service_1.RegionService,\r\n\t product_service_1.ProductService,\r\n\t cloudview_service_1.CloudViewService])\r\n\t ], CloudViewHostDialog);\r\n\t return CloudViewHostDialog;\r\n\t}());\r\n\texports.CloudViewHostDialog = CloudViewHostDialog;\r\n\n\n/***/ },\n/* 606 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"

Create host

\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n {{ region?.key }} \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{ vmSize.size }} \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Cores{{ vmSizeOverview?.cpuCores }}
Memory{{ vmSizeOverview?.memoryGiB }} GB
SSD{{ vmSizeOverview?.localSSDGiB }} GB
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{ product.name }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{ version }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\";\n\n/***/ },\n/* 607 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar sites_service_1 = __webpack_require__(371);\r\n\tvar region_service_1 = __webpack_require__(391);\r\n\tvar product_service_1 = __webpack_require__(555);\r\n\tvar cloudview_service_1 = __webpack_require__(393);\r\n\tvar string_pipe_1 = __webpack_require__(368);\r\n\tvar CloudViewInstanceDialog = (function () {\r\n\t function CloudViewInstanceDialog(dialogRef, regionService, productService, cloudViewService, sitesService) {\r\n\t this.dialogRef = dialogRef;\r\n\t this.regionService = regionService;\r\n\t this.productService = productService;\r\n\t this.cloudViewService = cloudViewService;\r\n\t this.sitesService = sitesService;\r\n\t this.removeWhiteSpace = new string_pipe_1.RemoveWhiteSpacePipe();\r\n\t this.creating = false;\r\n\t this.buttonText = 'Create';\r\n\t this.instanceLimitExceeded = false;\r\n\t this.instance = {\r\n\t siteId: null,\r\n\t siteName: null,\r\n\t region: null,\r\n\t product: null,\r\n\t version: null,\r\n\t dbPath: null,\r\n\t vanilla: false,\r\n\t siteExists: false,\r\n\t configExists: false\r\n\t };\r\n\t this.getRegions();\r\n\t this.getProducts();\r\n\t }\r\n\t CloudViewInstanceDialog.prototype.getSite = function (siteId) {\r\n\t var _this = this;\r\n\t this.message = \"\";\r\n\t if (this.searchTimeout != undefined)\r\n\t clearTimeout(this.searchTimeout);\r\n\t this.searchTimeout = setTimeout(function () {\r\n\t _this.sitesService.getSite(siteId).subscribe(function (site) {\r\n\t _this.site = site;\r\n\t _this.instance.siteId = _this.site.siteId;\r\n\t _this.instance.siteName = _this.site.siteName;\r\n\t _this.instance.siteExists = true;\r\n\t if (_this.site.region != null) {\r\n\t _this.instance.region = _this.site.region;\r\n\t }\r\n\t }, function (err) {\r\n\t _this.instance.siteId = null;\r\n\t _this.instance.siteName = null;\r\n\t _this.instance.siteExists = false;\r\n\t });\r\n\t _this.cloudViewService.getSiteConfig(siteId).subscribe(function (config) {\r\n\t _this.instance.configExists = true;\r\n\t });\r\n\t _this.cloudViewService.hasInstanceLimitExceeded(siteId).subscribe(function (res) {\r\n\t _this.instanceLimitExceeded = false;\r\n\t }, function (err) {\r\n\t _this.message = err._body;\r\n\t _this.instanceLimitExceeded = true;\r\n\t });\r\n\t }, 1000);\r\n\t };\r\n\t CloudViewInstanceDialog.prototype.getRegions = function () {\r\n\t var _this = this;\r\n\t this.regionService.getRegions().subscribe(function (regions) {\r\n\t _this.regions = regions;\r\n\t });\r\n\t };\r\n\t CloudViewInstanceDialog.prototype.getProducts = function () {\r\n\t var _this = this;\r\n\t this.productService.getProducts().subscribe(function (products) {\r\n\t _this.products = products;\r\n\t });\r\n\t };\r\n\t CloudViewInstanceDialog.prototype.getProductVersions = function (productName) {\r\n\t var productVersions = this.products.filter(function (p) { return p.name === productName; });\r\n\t if (productVersions.length > 0) {\r\n\t return productVersions[0].toVersions;\r\n\t }\r\n\t return [];\r\n\t };\r\n\t CloudViewInstanceDialog.prototype.validateDBPath = function () {\r\n\t this.instance.dbPath = this.removeWhiteSpace.transform(this.instance.dbPath);\r\n\t };\r\n\t CloudViewInstanceDialog.prototype.createInstance = function () {\r\n\t var _this = this;\r\n\t this.creating = true;\r\n\t this.buttonText = 'Creating...';\r\n\t this.cloudViewService.createInstance(this.instance).subscribe(function (res) {\r\n\t _this.close();\r\n\t _this.buttonText = 'Create';\r\n\t }, function (err) {\r\n\t if (err._body) {\r\n\t _this.error = err._body;\r\n\t }\r\n\t _this.creating = false;\r\n\t _this.buttonText = 'Create';\r\n\t });\r\n\t };\r\n\t CloudViewInstanceDialog.prototype.close = function () {\r\n\t this.dialogRef.close();\r\n\t };\r\n\t CloudViewInstanceDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'cloudview-instance-dialog',\r\n\t template: __webpack_require__(608),\r\n\t providers: [cloudview_service_1.CloudViewService, product_service_1.ProductService, region_service_1.RegionService, sites_service_1.SitesService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef,\r\n\t region_service_1.RegionService,\r\n\t product_service_1.ProductService,\r\n\t cloudview_service_1.CloudViewService,\r\n\t sites_service_1.SitesService])\r\n\t ], CloudViewInstanceDialog);\r\n\t return CloudViewInstanceDialog;\r\n\t}());\r\n\texports.CloudViewInstanceDialog = CloudViewInstanceDialog;\r\n\n\n/***/ },\n/* 608 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"

Create instance

\\r\\n

{{message}}

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{region.key}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{product.name}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{version}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\";\n\n/***/ },\n/* 609 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar cloudview_service_1 = __webpack_require__(393);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar CloudViewCommandDialog = (function () {\r\n\t function CloudViewCommandDialog(dialogRef, cloudViewService) {\r\n\t this.dialogRef = dialogRef;\r\n\t this.cloudViewService = cloudViewService;\r\n\t this.executing = false;\r\n\t this.success = false;\r\n\t this.error = false;\r\n\t }\r\n\t CloudViewCommandDialog.prototype.ngOnInit = function () {\r\n\t };\r\n\t CloudViewCommandDialog.prototype.Execute = function (command) {\r\n\t var _this = this;\r\n\t this.executing = true;\r\n\t this.cloudViewService.runCommandsOnHost(command, this.hostid).subscribe(function (res) {\r\n\t _this.success = true;\r\n\t _this.executing = false;\r\n\t setTimeout(function () {\r\n\t _this.success = false;\r\n\t }, 3600);\r\n\t }, function (err) {\r\n\t _this.error = true;\r\n\t _this.executing = false;\r\n\t _this.message = err._body;\r\n\t setTimeout(function () {\r\n\t _this.error = false;\r\n\t }, 3600);\r\n\t });\r\n\t };\r\n\t CloudViewCommandDialog.prototype.close = function () {\r\n\t this.dialogRef.close();\r\n\t };\r\n\t CloudViewCommandDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'cloudview-command-dialog',\r\n\t template: __webpack_require__(610),\r\n\t providers: [cloudview_service_1.CloudViewService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef,\r\n\t cloudview_service_1.CloudViewService])\r\n\t ], CloudViewCommandDialog);\r\n\t return CloudViewCommandDialog;\r\n\t}());\r\n\texports.CloudViewCommandDialog = CloudViewCommandDialog;\r\n\n\n/***/ },\n/* 610 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"

Run Command

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

{{hostid}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
check_circle_outlineSuccess
\\r\\n
error_outlineError

{{message}}

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 611 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar application_service_1 = __webpack_require__(352);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar ng2_toastr_1 = __webpack_require__(306);\r\n\tvar CloudViewDocDialog = (function () {\r\n\t function CloudViewDocDialog(dialogRef, auth, applicationService, toastr) {\r\n\t this.dialogRef = dialogRef;\r\n\t this.auth = auth;\r\n\t this.applicationService = applicationService;\r\n\t this.toastr = toastr;\r\n\t this.fileNameLbl = \"\";\r\n\t }\r\n\t CloudViewDocDialog.prototype.setCloudView = function (applicationName, applicationDocument) {\r\n\t applicationName = \"CloudView\";\r\n\t };\r\n\t CloudViewDocDialog.prototype.onChange = function (event) {\r\n\t var files = event.target.files;\r\n\t if (files.length === 0) {\r\n\t return;\r\n\t }\r\n\t this.file = files[0];\r\n\t this.fileNameLbl = this.file.name;\r\n\t };\r\n\t CloudViewDocDialog.prototype.submit = function () {\r\n\t var _this = this;\r\n\t if (this.file == null) {\r\n\t return;\r\n\t }\r\n\t var fileToUpload = this.file;\r\n\t var formData = new FormData();\r\n\t formData.append('file', fileToUpload, fileToUpload.name);\r\n\t this.applicationService.uploadcloudviewDoc('CloudView.pdf', formData)\r\n\t .subscribe(function (res) {\r\n\t _this.toastr.success('upload successful');\r\n\t window.open(res.uri, \"_self\");\r\n\t }, function (err) {\r\n\t _this.toastr.error('failed to upload');\r\n\t err.status;\r\n\t });\r\n\t this.close();\r\n\t };\r\n\t CloudViewDocDialog.prototype.close = function () {\r\n\t this.dialogRef.close();\r\n\t };\r\n\t CloudViewDocDialog = __decorate([\r\n\t core_1.Component({\r\n\t styles: [__webpack_require__(380)],\r\n\t selector: 'cloudviewdocdoc-dialog',\r\n\t template: __webpack_require__(612),\r\n\t providers: [application_service_1.ApplicationService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef,\r\n\t auth_service_1.AuthService,\r\n\t application_service_1.ApplicationService,\r\n\t ng2_toastr_1.ToastsManager])\r\n\t ], CloudViewDocDialog);\r\n\t return CloudViewDocDialog;\r\n\t}());\r\n\texports.CloudViewDocDialog = CloudViewDocDialog;\r\n\n\n/***/ },\n/* 612 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n Upload a file\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\";\n\n/***/ },\n/* 613 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"Cloud View\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Unallocated ({{ unallocatedIntancesCount }})\\r\\n refresh\\r\\n
\\r\\n
\\r\\n
Applications
\\r\\n
\\r\\n \\r\\n
{{ instance.id }}\\r\\n \\r\\n
\\r\\n
{{ instance?.id }}
\\r\\n
{{ instance?.siteName }} - {{ instance?.siteId }}
\\r\\n
{{ instance?.product }} {{ instance?.version }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Databases
\\r\\n
\\r\\n \\r\\n
{{ instance.id }}\\r\\n \\r\\n
\\r\\n
{{ instance?.id }}
\\r\\n
{{ instance?.siteName }} - {{ instance?.siteId }}
\\r\\n
{{ instance?.product }} {{ instance?.version }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Application Hosts ({{ appHostsCount }}) \\r\\n add_box\\r\\n refresh\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Database Hosts ({{ dbHostsCount }})\\r\\n add_box\\r\\n refresh\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Logs ({{logsCount}})\\r\\n Debug\\r\\n \\r\\n Severity\\r\\n \\r\\n Type\\r\\n \\r\\n Instance\\r\\n \\r\\n\\r\\n chevron_left\\r\\n chevron_right\\r\\n refresh\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
TIMESEVERITYTYPETYPE UIDDESCRIPTION
\\r\\n
{{ log?.eventTimeStamp | date: 'dd-MMM-y, H:mm:ss (Z)' }}
\\r\\n
\\r\\n
{{ LogSeverity[log?.severity] }}
\\r\\n
\\r\\n
{{ LogType[log?.type] }}
\\r\\n
\\r\\n
{{ log?.typeUID }}
\\r\\n
\\r\\n
{{ log?.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 \\r\\n Instances\\r\\n 0\\\">  ({{instances.length}}) \\r\\n add_box\\r\\n refresh\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Id\\r\\n \\r\\n Site Id\\r\\n \\r\\n Site Name\\r\\n \\r\\n Region\\r\\n \\r\\n Product\\r\\n \\r\\n Application Server\\r\\n \\r\\n Database Server\\r\\n \\r\\n Delete On\\r\\n \\r\\n Status\\r\\n \\r\\n
\\r\\n security\\r\\n {{ instance?.id}}{{ instance?.siteId}}{{ instance?.siteName }}{{ instance?.region}}{{ instance?.product}} {{ instance?.version }}\\r\\n \\r\\n {{ instance?.appServer }}\\r\\n \\r\\n \\r\\n {{ instance?.dbServer }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n {{ instance?.deleteOn | date: 'medium' }}\\r\\n \\r\\n {{ InstanceStatus[instance?.status] }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Hosts\\r\\n refresh\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
ServerInstancesTypeRegionStatus
{{ apphost?.id}}\\r\\n \\r\\n \\r\\n {{ HostType[apphost?.type]}}{{ apphost?.region}}{{ InstanceStatus[apphost?.status]}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{ dbhost?.id}}\\r\\n \\r\\n \\r\\n {{ HostType[dbhost?.type]}}{{ dbhost?.region}}{{ InstanceStatus[dbhost?.status]}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Monitor ({{logsCount}})\\r\\n chevron_left\\r\\n chevron_right\\r\\n refresh\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
TIMESEVERITYSERVERRESPONSE
\\r\\n
{{ log?.eventTimeStamp | date: 'dd-MMM-y, H:mm:ss (Z)' }}
\\r\\n
\\r\\n
{{ LogSeverity[log?.severity] }}
\\r\\n
\\r\\n
{{ log?.typeUID }}
\\r\\n
\\r\\n
{{ log?.description}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 614 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \".status-container {\\r\\n display:flex;\\r\\n flex-wrap: wrap;\\r\\n justify-content: flex-start;\\r\\n padding: 10px;\\r\\n}\\r\\n\\r\\n.status-item {\\r\\n margin:2px;\\r\\n display: flex;\\r\\n justify-content: center;\\r\\n align-items: center\\r\\n}\\r\\n\\r\\n.status {\\r\\n height: 10px;\\r\\n width: 10px;\\r\\n margin-right: 2px;\\r\\n}\\r\\n\\r\\n.containers {\\r\\n display: flex;\\r\\n flex-wrap: wrap;\\r\\n justify-content: unset;\\r\\n}\\r\\n\\r\\n.instance-container {\\r\\n height: 50px;\\r\\n width: 50px;\\r\\n border: 1px dashed #fff;\\r\\n display: flex;\\r\\n justify-content: center;\\r\\n align-items: center;\\r\\n flex-wrap: nowrap;\\r\\n cursor: pointer;\\r\\n user-select: none;\\r\\n font-size:10px\\r\\n}\\r\\n\\r\\n.instance-container:hover {\\r\\n background:whitesmoke;\\r\\n color:#000;\\r\\n}\\r\\n\\r\\n.running {\\r\\n background:#1DE9B6;\\r\\n color: #000;\\r\\n}\\r\\n\\r\\n.error {\\r\\n background: rgb(255,23,68);\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n.warning {\\r\\n background:#FF9100;\\r\\n color: #000;\\r\\n}\\r\\n\\r\\n.offline {\\r\\n background: #B0BEC5;\\r\\n color: #000;\\r\\n}\\r\\n\\r\\n.log-error {\\r\\n color: rgb(255,23,68);\\r\\n font-weight:bold;\\r\\n}\\r\\n\\r\\n.log-warn {\\r\\n color: #FF9100;\\r\\n font-weight:bold;\\r\\n}\\r\\n\\r\\n.empty {\\r\\n background: #fff;\\r\\n border: 1px dashed #e0e0e0;\\r\\n}\\r\\n\\r\\n.host-container {\\r\\n border: 1px solid #e0e0e0;\\r\\n margin: 4px;\\r\\n display: flex;\\r\\n flex-wrap: wrap;\\r\\n width:160px;\\r\\n background:#fff;\\r\\n justify-content: flex-end;\\r\\n}\\r\\n\\r\\n.host-header {\\r\\n display: flex;\\r\\n flex-wrap: wrap;\\r\\n align-items: center;\\r\\n padding: 6px;\\r\\n font-size:14px;\\r\\n width:100%;\\r\\n font-weight:bold;\\r\\n}\\r\\n\\r\\n.host-header-item {\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.host-instances {\\r\\n display: flex;\\r\\n flex-wrap: wrap;\\r\\n justify-content: unset;\\r\\n /*flex:1;*/\\r\\n}\\r\\n\\r\\n.arrow-up {\\r\\n width: 0;\\r\\n height: 0;\\r\\n border-left: 5px solid transparent;\\r\\n border-right: 5px solid transparent;\\r\\n border-bottom: 5px solid black;\\r\\n position: relative;\\r\\n top: -26%;\\r\\n left: 1%;\\r\\n}\\r\\n\\r\\n.arrow-down {\\r\\n width: 0;\\r\\n height: 0;\\r\\n border-left: 5px solid transparent;\\r\\n border-right: 5px solid transparent;\\r\\n border-top: 5px solid #f00;\\r\\n position: relative;\\r\\n top: 26%;\\r\\n left: 1%;\\r\\n}\\r\\n/*\\r\\n.loader,\\r\\n.loader:after {\\r\\n border-radius: 50%;\\r\\n width: 10em;\\r\\n height: 10em;\\r\\n}\\r\\n.loader {\\r\\n font-size: 7px;\\r\\n position: relative;\\r\\n text-indent: -9999em;\\r\\n border-top: 1.1em solid rgba(0,0,0, 0.2);\\r\\n border-right: 1.1em solid rgba(0,0,0, 0.2);\\r\\n border-bottom: 1.1em solid rgba(0,0,0, 0.2);\\r\\n border-left: 1.1em solid #000000;\\r\\n -webkit-transform: translateZ(0);\\r\\n -ms-transform: translateZ(0);\\r\\n transform: translateZ(0);\\r\\n -webkit-animation: load8 1.1s infinite linear;\\r\\n animation: load8 1.1s infinite linear;\\r\\n}\\r\\n@-webkit-keyframes load8 {\\r\\n 0% {\\r\\n -webkit-transform: rotate(0deg);\\r\\n transform: rotate(0deg);\\r\\n }\\r\\n 100% {\\r\\n -webkit-transform: rotate(360deg);\\r\\n transform: rotate(360deg);\\r\\n }\\r\\n}\\r\\n@keyframes load8 {\\r\\n 0% {\\r\\n -webkit-transform: rotate(0deg);\\r\\n transform: rotate(0deg);\\r\\n }\\r\\n 100% {\\r\\n -webkit-transform: rotate(360deg);\\r\\n transform: rotate(360deg);\\r\\n }\\r\\n}*/\\r\\n\\r\\n.container {\\r\\n margin:10px; \\r\\n border: 1px solid #e0e0e0;\\r\\n}\\r\\n\\r\\n.container-header {\\r\\n padding:6px;\\r\\n border-bottom:1px solid #e0e0e0;\\r\\n font-size:12px;\\r\\n font-weight:bold;\\r\\n background: #fff;\\r\\n display:flex;\\r\\n justify-content: flex-end;\\r\\n align-items: center;\\r\\n}\\r\\n\\r\\n.container-header span {\\r\\n width:100%;\\r\\n}\\r\\n\\r\\n.container-header-button {\\r\\n font-size:14px; \\r\\n margin-left:10px; \\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.container-header-button:hover {\\r\\n background-color: #fff;\\r\\n border-radius: 2px;\\r\\n}\\r\\n\\r\\n.host-button {\\r\\n background: #fff;\\r\\n border:none;\\r\\n font-size:16px;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.actions-menu {\\r\\n z-index:10; \\r\\n padding:0; \\r\\n margin:0; \\r\\n position:fixed; \\r\\n margin-top:28px; \\r\\n width:160px; \\r\\n background:#fff; \\r\\n border-top:1px solid #e0e0e0; \\r\\n border-bottom:1px solid #e0e0e0;\\r\\n font-size:10px;\\r\\n}\\r\\n\\r\\n/* Tooltip container */\\r\\n/*.tooltip {\\r\\n position: relative;\\r\\n display: inline-block;\\r\\n border-bottom: 1px dotted black; /* If you want dots under the hoverable text\\r\\n}*/\\r\\n\\r\\n/* Tooltip text */\\r\\n .instance-container .tooltiptext {\\r\\n font-size:12px;\\r\\n visibility: hidden;\\r\\n width: 120px;\\r\\n background-color: #fff;\\r\\n color: #000;\\r\\n text-align: center;\\r\\n padding: 5px 0;\\r\\n border-radius: 2px;\\r\\n box-shadow: 0 19px 38px rgba(0,0,0,0.30), 0 15px 12px rgba(0,0,0,0.22);\\r\\n\\r\\n /* Position the tooltip text - see examples below! */\\r\\n position: absolute;\\r\\n z-index: 1;\\r\\n}\\r\\n\\r\\n/* Show the tooltip text when you mouse over the tooltip container */\\r\\n.instance-container:hover .tooltiptext {\\r\\n visibility: visible;\\r\\n}\\r\\n\\r\\n.instance-detail-container {\\r\\n display:flex;\\r\\n flex-wrap: wrap;\\r\\n font-size:9px;\\r\\n}\\r\\n\\r\\n.instance-detail-row {\\r\\n width:100%;\\r\\n}\\r\\n\\r\\n.active-filter {\\r\\n background: #69c09a;\\r\\n}\\r\\n\\r\\n.icon-button {\\r\\n font-size:20px; \\r\\n margin-left:10px; \\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.icon-button:hover {\\r\\n color:#025064;\\r\\n}\\r\\n\\r\\ntd {\\r\\n padding: 2px;\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n#search:disabled {\\r\\n cursor: not-allowed;\\r\\n}\"\n\n/***/ },\n/* 615 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"/*\\r\\n * Define the widths: play around with these \\r\\n * to get a best fit.\\r\\n */\\r\\n/*\\r\\n * Basic styles, good for a large display. Everything fits in\\r\\n * one row, no wrapping. All text based cells grow equally.\\r\\n */\\r\\n.table-row {\\r\\n display: flex;\\r\\n display: -webkit-flex;\\r\\n flex-direction: row;\\r\\n -webkit-flex-direction: row;\\r\\n flex-wrap: nowrap;\\r\\n -webkit-flex-wrap: nowrap;\\r\\n /*width: 100%;*/\\r\\n padding-left: 6px;\\r\\n /*padding-right: 15px;*/\\r\\n background-color:#fff;\\r\\n}\\r\\n.wrapper {\\r\\n display: flex;\\r\\n display: -webkit-flex;\\r\\n flex-direction: row;\\r\\n -webkit-flex-direction: row;\\r\\n}\\r\\n.column {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n flex-shrink: 0;\\r\\n -webkit-flex-shrink: 0;\\r\\n vertical-align: top;\\r\\n}\\r\\n/*.index {\\r\\n width: 25px;\\r\\n}*/\\r\\n.title {\\r\\n width: 50px;\\r\\n}\\r\\n.module {\\r\\n width: 110px;\\r\\n}\\r\\n.reporter {\\r\\n width: 85px;\\r\\n}\\r\\n.status {\\r\\n width: 95px;\\r\\n}\\r\\n.owner {\\r\\n width: 75px;\\r\\n}\\r\\n.severity {\\r\\n width: 80px;\\r\\n}\\r\\n.watch,\\r\\n.add-comment {\\r\\n width: 18px;\\r\\n}\\r\\n.date {\\r\\n width: 110px;\\r\\n}\\r\\n.index {\\r\\n text-align: center;\\r\\n}\\r\\n.title {\\r\\n /*font-weight: bold;*/\\r\\n /*color: gray;*/\\r\\n}\\r\\n.comment {\\r\\n width: 120px;\\r\\n}\\r\\n.title,\\r\\n.comment {\\r\\n flex-grow: 1;\\r\\n -webkit-flex-grow: 1;\\r\\n overflow: hidden;\\r\\n white-space: pre-wrap;\\r\\n text-overflow: ellipsis;\\r\\n padding-right: 4px;\\r\\n}\\r\\n.date {\\r\\n width: 180px;\\r\\n /*text-align:right;*/\\r\\n padding-right: 4px;\\r\\n}\\r\\n/* growable wrappers */\\r\\n.title-comment,\\r\\n.title-comment-module-reporter,\\r\\n.attributes {\\r\\n flex-grow: 1;\\r\\n -webkit-flex-grow: 1;\\r\\n}\\r\\n/*\\r\\n * Media queries: optimize for different screen widths.\\r\\n */\\r\\n/*\\r\\n * Media breaks.\\r\\n */\\r\\n@media all and (max-width: 1236px) {\\r\\n .title-comment {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n width: 220px;\\r\\n }\\r\\n .title-comment div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n .title-comment > div {\\r\\n width: 100%;\\r\\n }\\r\\n .module-reporter,\\r\\n .status-owner {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n }\\r\\n .module-reporter div,\\r\\n .status-owner div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n}\\r\\n@media all and (max-width: 956px) {\\r\\n .module-reporter {\\r\\n flex-direction: row;\\r\\n -webkit-flex-direction: row;\\r\\n }\\r\\n .title-comment-module-reporter {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n width: 220px;\\r\\n }\\r\\n .title-comment-module-reporter div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n .title-comment-module-reporter > div {\\r\\n width: 100%;\\r\\n }\\r\\n .status-owner-severity {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n }\\r\\n .status-owner-severity div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n .icons {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n }\\r\\n .icons div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n .dates {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n }\\r\\n .dates div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n}\\r\\n@media all and (max-width: 528px) {\\r\\n .table-row {\\r\\n padding-left: 4px;\\r\\n /*padding-right: 4px;*/\\r\\n }\\r\\n .attributes {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n width: 220px;\\r\\n }\\r\\n .attributes div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n .attributes > div {\\r\\n width: 100%;\\r\\n }\\r\\n .module-reporter,\\r\\n .status-owner {\\r\\n flex-direction: row;\\r\\n -webkit-flex-direction: row;\\r\\n }\\r\\n}\\r\\n/*\\r\\n * General good-look styles\\r\\n */\\r\\n.table-row {\\r\\n border-bottom: 1px solid #e0e0e0;\\r\\n border-collapse: collapse;\\r\\n padding-top: 2px;\\r\\n font-size:12px;\\r\\n}\\r\\n\\r\\n.table-row:hover {\\r\\n background-color:whitesmoke;\\r\\n cursor:pointer;\\r\\n}\\r\\n\\r\\n.table-row.header {\\r\\n /*background-color: rgba(18,195,244, 0.1);*/\\r\\n font-weight: bold;\\r\\n padding-top: 6px;\\r\\n padding-bottom: 6px;\\r\\n font-size:12px;\\r\\n}\\r\\n.glyphicon {\\r\\n color: #DDDDDD;\\r\\n}\\r\\n.header .glyphicon {\\r\\n color: #333;\\r\\n}\\r\\n.glyphicon-eye-open.active {\\r\\n color: blue;\\r\\n}\\r\\n.glyphicon-comment.active {\\r\\n color: #3EBB0D;\\r\\n}\\r\\n.glyphicon:hover {\\r\\n color: #666;\\r\\n cursor: pointer;\\r\\n text-decoration: underline;\\r\\n}\\r\\n.reporter {\\r\\n color: #999999;\\r\\n}\\r\\n.comment {\\r\\n font-style:unset;\\r\\n}\\r\\n.status.inprogress {\\r\\n color: #000;\\r\\n}\\r\\n.status.completed {\\r\\n color: #00E676;\\r\\n}\\r\\n.status.stopped {\\r\\n color: rgb(255, 23, 68);\\r\\n}\"\n\n/***/ },\n/* 616 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar cloudview_service_1 = __webpack_require__(393);\r\n\tvar CloudViewHostComponent = (function () {\r\n\t function CloudViewHostComponent(auth, cloudviewService) {\r\n\t this.auth = auth;\r\n\t this.cloudviewService = cloudviewService;\r\n\t this.delete = new core_1.EventEmitter();\r\n\t this.InstanceStatus = cloudview_service_1.InstanceStatus;\r\n\t this.Role = auth_service_1.Role;\r\n\t this.Permission = auth_service_1.Permission;\r\n\t this.HostType = cloudview_service_1.HostType;\r\n\t }\r\n\t CloudViewHostComponent.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.hostHeartbeatSubscription = this.cloudviewService.pollHostHeartbeat(this.host.id).subscribe(function (host) {\r\n\t _this.host = host;\r\n\t });\r\n\t };\r\n\t CloudViewHostComponent.prototype.deleteHost = function (host) {\r\n\t var _this = this;\r\n\t if (confirm(\"Are you sure you want to delete HOST \\\"\" + host.id + \"\\\"\")) {\r\n\t this.cloudviewService.deleteHost(host.id).subscribe(function (res) {\r\n\t _this.delete.emit(host);\r\n\t });\r\n\t }\r\n\t };\r\n\t CloudViewHostComponent.prototype.ngOnDestroy = function () {\r\n\t this.hostHeartbeatSubscription.unsubscribe();\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], CloudViewHostComponent.prototype, \"host\", void 0);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], CloudViewHostComponent.prototype, \"delete\", void 0);\r\n\t CloudViewHostComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'cloudview-host',\r\n\t template: __webpack_require__(617),\r\n\t styles: [__webpack_require__(614)],\r\n\t providers: [cloudview_service_1.CloudViewService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [auth_service_1.AuthService, cloudview_service_1.CloudViewService])\r\n\t ], CloudViewHostComponent);\r\n\t return CloudViewHostComponent;\r\n\t}());\r\n\texports.CloudViewHostComponent = CloudViewHostComponent;\r\n\n\n/***/ },\n/* 617 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
\\r\\n
\\r\\n
\\r\\n {{ host?.displayName }} \\r\\n \\r\\n
\\r\\n
{{ host?.region }}
\\r\\n
{{ host?.vmSize }}
\\r\\n
{{ InstanceStatus[host?.status] }}
\\r\\n
{{ host?.product?.name }}
\\r\\n
{{ host?.product?.version }}
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\";\n\n/***/ },\n/* 618 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar cloudview_service_1 = __webpack_require__(393);\r\n\tvar cloudview_instance_dialog_1 = __webpack_require__(607);\r\n\tvar CloudViewHostInstancesComponent = (function () {\r\n\t function CloudViewHostInstancesComponent(instanceDialog, router, cloudviewService) {\r\n\t this.instanceDialog = instanceDialog;\r\n\t this.router = router;\r\n\t this.cloudviewService = cloudviewService;\r\n\t this.loading = false;\r\n\t this.instances = [];\r\n\t this.instancesViewModel = [];\r\n\t this.InstanceStatus = cloudview_service_1.InstanceStatus;\r\n\t }\r\n\t CloudViewHostInstancesComponent.prototype.ngOnInit = function () {\r\n\t this.getInstances(this.host);\r\n\t };\r\n\t CloudViewHostInstancesComponent.prototype.getInstances = function (host) {\r\n\t var _this = this;\r\n\t this.loading = true;\r\n\t this.instancesViewModel = new Array(this.host.slots);\r\n\t this.cloudviewService.getHostInstances(host.id).subscribe(function (instances) {\r\n\t if (Array.isArray(instances)) {\r\n\t if (instances.length > 0) {\r\n\t _this.instances = instances;\r\n\t for (var i = 0; i < instances.length; i++) {\r\n\t var instance = instances[i];\r\n\t _this.instancesViewModel[i] = instances[i];\r\n\t }\r\n\t }\r\n\t }\r\n\t _this.loading = false;\r\n\t }, function (err) { return _this.loading = false; });\r\n\t };\r\n\t CloudViewHostInstancesComponent.prototype.getContainerDisplayName = function (instanceId) {\r\n\t if (instanceId) {\r\n\t return \"\" + instanceId;\r\n\t }\r\n\t return '';\r\n\t };\r\n\t CloudViewHostInstancesComponent.prototype.openInstanceDialog = function (hostId) {\r\n\t var _this = this;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = null;\r\n\t this.cloudViewInstanceDialogRef = this.instanceDialog.open(cloudview_instance_dialog_1.CloudViewInstanceDialog, config);\r\n\t this.cloudViewInstanceDialogRef.componentInstance.hostId = hostId;\r\n\t this.cloudViewInstanceDialogRef.componentInstance.instances = this.instances;\r\n\t this.cloudViewInstanceDialogRef.afterClosed().subscribe(function (result) {\r\n\t _this.getInstances(hostId);\r\n\t });\r\n\t };\r\n\t CloudViewHostInstancesComponent.prototype.viewInstance = function (host, instance) {\r\n\t if (host && instance) {\r\n\t if (host.type === cloudview_service_1.HostType.APP) {\r\n\t this.router.navigate([\"cloudview/hosts/\" + host.id + \"/instances/\" + instance.id]);\r\n\t }\r\n\t }\r\n\t };\r\n\t CloudViewHostInstancesComponent.prototype.deleteInstance = function (instance) {\r\n\t var _this = this;\r\n\t if (confirm(\"Are you sure you want to delete \" + instance.id + \"?\")) {\r\n\t this.cloudviewService.deleteInstance(instance.id).subscribe(function (res) {\r\n\t _this.getInstances(_this.host);\r\n\t });\r\n\t }\r\n\t };\r\n\t CloudViewHostInstancesComponent.prototype.unallocatedInstance = function (host, instance) {\r\n\t var _this = this;\r\n\t this.cloudviewService.unallocatedInstance(host.id, instance.id).subscribe(function (res) {\r\n\t _this.getInstances(_this.host);\r\n\t });\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], CloudViewHostInstancesComponent.prototype, \"host\", void 0);\r\n\t CloudViewHostInstancesComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'cloudview-host-instances',\r\n\t template: __webpack_require__(619),\r\n\t styles: [__webpack_require__(614)],\r\n\t providers: [cloudview_service_1.CloudViewService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialog,\r\n\t router_1.Router,\r\n\t cloudview_service_1.CloudViewService])\r\n\t ], CloudViewHostInstancesComponent);\r\n\t return CloudViewHostInstancesComponent;\r\n\t}());\r\n\texports.CloudViewHostInstancesComponent = CloudViewHostInstancesComponent;\r\n\n\n/***/ },\n/* 619 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n
\\r\\n
{{ getContainerDisplayName(instance?.id) }} \\r\\n\\r\\n \\r\\n
\\r\\n
{{ instance?.id }}
\\r\\n
{{ instance?.siteName }} - {{ instance?.siteId }}
\\r\\n
{{ instance?.product }} {{ instance?.version }}
\\r\\n
Status: {{ InstanceStatus[instance?.appServerStatus] }}
\\r\\n
Status: {{ InstanceStatus[instance?.dbServerStatus] }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 620 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar platform_browser_1 = __webpack_require__(45);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar dom_events_1 = __webpack_require__(329);\r\n\tvar cloudview_service_1 = __webpack_require__(393);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar remote_desktop_service_1 = __webpack_require__(568);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar cloudview_component_1 = __webpack_require__(604);\r\n\tvar CloudViewInstanceComponent = (function () {\r\n\t function CloudViewInstanceComponent(domSantizer, dialog, route, router, domEvents, authService, cloudViewService, viewContainerRef, remoteDesktopService) {\r\n\t var _this = this;\r\n\t this.domSantizer = domSantizer;\r\n\t this.dialog = dialog;\r\n\t this.route = route;\r\n\t this.router = router;\r\n\t this.domEvents = domEvents;\r\n\t this.authService = authService;\r\n\t this.cloudViewService = cloudViewService;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.remoteDesktopService = remoteDesktopService;\r\n\t this.instanceId = '';\r\n\t this.iframeLoader = true;\r\n\t this.settingsMenuOpen = false;\r\n\t this.stagingSuffix = true;\r\n\t this.route.params.subscribe(function (params) {\r\n\t _this.instanceId = params['instanceId'];\r\n\t });\r\n\t if (true) {\r\n\t this.stagingSuffix = false;\r\n\t }\r\n\t this.user = this.authService.getUser();\r\n\t }\r\n\t CloudViewInstanceComponent.prototype.ngOnInit = function () {\r\n\t this.domEvents.triggerOnDocument(\"appready\");\r\n\t this.getAccessToken(this.instanceId);\r\n\t this.sentText = this.route.snapshot.paramMap.get('searchText');\r\n\t };\r\n\t CloudViewInstanceComponent.prototype.getAccessToken = function (instanceId) {\r\n\t var _this = this;\r\n\t this.cloudViewService.getInstanceAccessToken(instanceId).subscribe(function (res) {\r\n\t _this.load(instanceId, res.access_token);\r\n\t });\r\n\t };\r\n\t CloudViewInstanceComponent.prototype.load = function (instanceId, access_token) {\r\n\t var suffix = this.stagingSuffix ? '-s' : '';\r\n\t var srcURL = \"https://\" + instanceId + suffix + \".cloudview.epicor.com/admin/#/connect/\" + access_token;\r\n\t this.srcValue = this.domSantizer.bypassSecurityTrustResourceUrl(srcURL);\r\n\t this.iframeLoader = false;\r\n\t };\r\n\t CloudViewInstanceComponent.prototype.downloadRDP = function () {\r\n\t var _this = this;\r\n\t var instanceId = this.instanceId;\r\n\t this.remoteDesktopService.getCloudViewInstanceRDPToken(instanceId).subscribe(function (data) {\r\n\t if (data != null) {\r\n\t var downloadUrl = _this.remoteDesktopService.getCloudViewInstanceRDPDownloadUrl(instanceId, data.token);\r\n\t var newWindow = window.open(downloadUrl, '_self');\r\n\t newWindow = null;\r\n\t _this.toggleSettings();\r\n\t }\r\n\t });\r\n\t };\r\n\t CloudViewInstanceComponent.prototype.showAccessToken = function () {\r\n\t var _this = this;\r\n\t var timeout = 60000;\r\n\t this.cloudViewService.getInstanceAccessToken(this.instanceId).subscribe(function (data) {\r\n\t _this.accessToken = data.access_token;\r\n\t setTimeout(function () {\r\n\t _this.accessToken = null;\r\n\t }, timeout);\r\n\t _this.settingsMenuOpen = false;\r\n\t });\r\n\t };\r\n\t CloudViewInstanceComponent.prototype.refreshAccessToken = function () {\r\n\t var _this = this;\r\n\t this.accessToken = null;\r\n\t this.cloudViewService.refreshInstanceAccessToken(this.instanceId).subscribe(function (res) {\r\n\t _this.getAccessToken(_this.instanceId);\r\n\t });\r\n\t };\r\n\t CloudViewInstanceComponent.prototype.restartCloudViewWorker = function (instanceId) {\r\n\t var _this = this;\r\n\t this.settingsMenuOpen = false;\r\n\t this.cloudViewService.getInstance(instanceId).subscribe(function (instance) {\r\n\t _this.cloudViewService.runCommandsOnHost(\"RestartCloudViewWorker\", instance.appServer).subscribe(function (res) {\r\n\t _this.alertDialogRef = _this.dialog.open(RestartServiceDialog);\r\n\t _this.alertDialogRef.componentInstance.message = 'CloudView worker restarted successfully.Please wait 5 minutes for the service to initialize...';\r\n\t }, function (err) {\r\n\t _this.alertDialogRef = _this.dialog.open(RestartServiceDialog);\r\n\t _this.alertDialogRef.componentInstance.message = err._body;\r\n\t });\r\n\t });\r\n\t };\r\n\t CloudViewInstanceComponent.prototype.downloadHelp = function () {\r\n\t this.cloudViewService.getHelp();\r\n\t };\r\n\t CloudViewInstanceComponent.prototype.toggleSettings = function () {\r\n\t if (this.settingsMenuOpen) {\r\n\t this.settingsMenuOpen = false;\r\n\t }\r\n\t else {\r\n\t this.settingsMenuOpen = true;\r\n\t }\r\n\t };\r\n\t CloudViewInstanceComponent.prototype.copyToClipboard = function (input, button) {\r\n\t input.focus();\r\n\t try {\r\n\t var copied = document.execCommand('copy');\r\n\t if (copied) {\r\n\t button.innerHTML = 'Copied!';\r\n\t this.accessToken = null;\r\n\t }\r\n\t }\r\n\t catch (err) {\r\n\t console.log('Unable to copy');\r\n\t }\r\n\t };\r\n\t CloudViewInstanceComponent.prototype.selectAllText = function (input) {\r\n\t input.setSelectionRange(0, input.value.length);\r\n\t };\r\n\t CloudViewInstanceComponent.prototype.back = function () {\r\n\t this.router.navigate(['cloudview'], { queryParams: { viewMode: cloudview_component_1.ViewMode.Instances, searchText: this.sentText } });\r\n\t };\r\n\t CloudViewInstanceComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'cloudview-instance',\r\n\t template: __webpack_require__(621),\r\n\t styles: [__webpack_require__(614)],\r\n\t providers: [cloudview_service_1.CloudViewService, remote_desktop_service_1.RemoteDesktopService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [platform_browser_1.DomSanitizer,\r\n\t material_1.MdDialog,\r\n\t router_1.ActivatedRoute,\r\n\t router_1.Router,\r\n\t dom_events_1.DOMEvents,\r\n\t auth_service_1.AuthService,\r\n\t cloudview_service_1.CloudViewService,\r\n\t core_1.ViewContainerRef,\r\n\t remote_desktop_service_1.RemoteDesktopService])\r\n\t ], CloudViewInstanceComponent);\r\n\t return CloudViewInstanceComponent;\r\n\t}());\r\n\texports.CloudViewInstanceComponent = CloudViewInstanceComponent;\r\n\tvar RestartServiceDialog = (function () {\r\n\t function RestartServiceDialog(dialogRef) {\r\n\t this.dialogRef = dialogRef;\r\n\t }\r\n\t RestartServiceDialog.prototype.render = function () {\r\n\t this.container.nativeElement.parentElement.parentElement.style.width = \"638px\";\r\n\t };\r\n\t RestartServiceDialog.prototype.ok = function () {\r\n\t this.dialogRef.close();\r\n\t };\r\n\t __decorate([\r\n\t core_1.ViewChild('container'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], RestartServiceDialog.prototype, \"container\", void 0);\r\n\t RestartServiceDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'restartservicedialog',\r\n\t template: \"\\n
\\n
\\n
\\n {{message}}\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n\"\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef])\r\n\t ], RestartServiceDialog);\r\n\t return RestartServiceDialog;\r\n\t}());\r\n\texports.RestartServiceDialog = RestartServiceDialog;\r\n\n\n/***/ },\n/* 621 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"Cloud View {{ instanceId }}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Restart Cloud View Worker\\r\\n RDP Connect\\r\\n Show Access Token\\r\\n Refresh Access Token\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n chevron_left\\r\\n \\r\\n Back\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\";\n\n/***/ },\n/* 622 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar CloudViewHostStatisticsComponent = (function () {\r\n\t function CloudViewHostStatisticsComponent() {\r\n\t this.stats = {\r\n\t cpu: {\r\n\t utilisation: \"10\",\r\n\t speed: \"2.69\"\r\n\t },\r\n\t memory: {\r\n\t inUse: \"6.5\",\r\n\t available: \"9.3\",\r\n\t commited: \"8.3/18.3 GB\"\r\n\t },\r\n\t disk: {\r\n\t usedSpace: \"206GB\",\r\n\t freeSpace: \"15.8GB\",\r\n\t capacity: \"222GB\"\r\n\t }\r\n\t };\r\n\t }\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], CloudViewHostStatisticsComponent.prototype, \"host\", void 0);\r\n\t CloudViewHostStatisticsComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'cloudview-host-statistics',\r\n\t template: __webpack_require__(623),\r\n\t styles: [__webpack_require__(614)]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [])\r\n\t ], CloudViewHostStatisticsComponent);\r\n\t return CloudViewHostStatisticsComponent;\r\n\t}());\r\n\texports.CloudViewHostStatisticsComponent = CloudViewHostStatisticsComponent;\r\n\n\n/***/ },\n/* 623 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
\\r\\n
Performance
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 624 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar dom_events_1 = __webpack_require__(329);\r\n\tvar cloudview_service_1 = __webpack_require__(393);\r\n\tvar cloudview_config_form_component_1 = __webpack_require__(625);\r\n\tvar CreateSiteCloudViewConfigComponent = (function () {\r\n\t function CreateSiteCloudViewConfigComponent(route, router, cloudviewService, domEvents) {\r\n\t var _this = this;\r\n\t this.route = route;\r\n\t this.router = router;\r\n\t this.cloudviewService = cloudviewService;\r\n\t this.domEvents = domEvents;\r\n\t this.action = cloudview_config_form_component_1.CloudViewConfigAction;\r\n\t this.route.params.subscribe(function (params) {\r\n\t _this.siteId = +params['siteId'];\r\n\t });\r\n\t }\r\n\t CreateSiteCloudViewConfigComponent.prototype.ngOnInit = function () {\r\n\t this.domEvents.triggerOnDocument(\"appready\");\r\n\t };\r\n\t CreateSiteCloudViewConfigComponent.prototype.onSubmit = function (config) {\r\n\t var _this = this;\r\n\t if (config) {\r\n\t this.cloudviewService.createSiteConfig(config).subscribe(function (res) {\r\n\t _this.router.navigateByUrl(\"/sites/\" + config.siteId);\r\n\t });\r\n\t }\r\n\t };\r\n\t CreateSiteCloudViewConfigComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'create-site-cloudview-config',\r\n\t template: __webpack_require__(627),\r\n\t providers: [cloudview_service_1.CloudViewService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [router_1.ActivatedRoute,\r\n\t router_1.Router,\r\n\t cloudview_service_1.CloudViewService,\r\n\t dom_events_1.DOMEvents])\r\n\t ], CreateSiteCloudViewConfigComponent);\r\n\t return CreateSiteCloudViewConfigComponent;\r\n\t}());\r\n\texports.CreateSiteCloudViewConfigComponent = CreateSiteCloudViewConfigComponent;\r\n\n\n/***/ },\n/* 625 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar sites_service_1 = __webpack_require__(371);\r\n\tvar region_service_1 = __webpack_require__(391);\r\n\tvar cloudview_service_1 = __webpack_require__(393);\r\n\tvar CloudViewConfigFormComponent = (function () {\r\n\t function CloudViewConfigFormComponent(regionService, cloudviewService, sitesService) {\r\n\t this.regionService = regionService;\r\n\t this.cloudviewService = cloudviewService;\r\n\t this.sitesService = sitesService;\r\n\t this.onSubmit = new core_1.EventEmitter();\r\n\t this.formLoaded = false;\r\n\t this.submitButtonText = 'submit';\r\n\t this.config = {\r\n\t siteId: null,\r\n\t siteName: null,\r\n\t instances: 3,\r\n\t region: null,\r\n\t deleteAfter: 2190\r\n\t };\r\n\t }\r\n\t CloudViewConfigFormComponent.prototype.ngOnInit = function () {\r\n\t if (this.action == CloudViewConfigAction.Create) {\r\n\t this.toolbarTitle = 'Create Cloud View Configuration';\r\n\t this.submitButtonText = 'Create';\r\n\t this.getSite(this.siteId);\r\n\t this.getRegions();\r\n\t this.formLoaded = true;\r\n\t }\r\n\t if (this.action == CloudViewConfigAction.Edit) {\r\n\t this.toolbarTitle = 'Edit Cloud View Configuration';\r\n\t this.submitButtonText = 'Save Changes';\r\n\t this.getRegions();\r\n\t this.getConfig();\r\n\t this.formLoaded = true;\r\n\t }\r\n\t };\r\n\t CloudViewConfigFormComponent.prototype.getSite = function (siteId) {\r\n\t var _this = this;\r\n\t this.sitesService.getSite(siteId).subscribe(function (site) {\r\n\t _this.config.siteId = site.siteId;\r\n\t _this.config.siteName = site.siteName;\r\n\t });\r\n\t };\r\n\t CloudViewConfigFormComponent.prototype.getRegions = function () {\r\n\t var _this = this;\r\n\t this.regionService.getRegions().subscribe(function (regions) {\r\n\t _this.regions = regions;\r\n\t });\r\n\t };\r\n\t CloudViewConfigFormComponent.prototype.getConfig = function () {\r\n\t var _this = this;\r\n\t this.cloudviewService.getSiteConfig(this.siteId).subscribe(function (config) {\r\n\t _this.config = config;\r\n\t });\r\n\t };\r\n\t CloudViewConfigFormComponent.prototype.submit = function () {\r\n\t this.onSubmit.emit(this.config);\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Number)\r\n\t ], CloudViewConfigFormComponent.prototype, \"siteId\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Number)\r\n\t ], CloudViewConfigFormComponent.prototype, \"action\", void 0);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], CloudViewConfigFormComponent.prototype, \"onSubmit\", void 0);\r\n\t CloudViewConfigFormComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'cloudview-config-form',\r\n\t template: __webpack_require__(626),\r\n\t styles: [\"\\n .field-spacer {\\n margin:16px 0\\n }\\n\\n .field-input {\\n height:38px;\\n }\\n\\n .field-input-fill-remaining-space {\\n width: 100%;\\n height: 38px;\\n }\\n \"],\r\n\t providers: [region_service_1.RegionService, cloudview_service_1.CloudViewService, sites_service_1.SitesService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [region_service_1.RegionService,\r\n\t cloudview_service_1.CloudViewService,\r\n\t sites_service_1.SitesService])\r\n\t ], CloudViewConfigFormComponent);\r\n\t return CloudViewConfigFormComponent;\r\n\t}());\r\n\texports.CloudViewConfigFormComponent = CloudViewConfigFormComponent;\r\n\tvar CloudViewConfigAction;\r\n\t(function (CloudViewConfigAction) {\r\n\t CloudViewConfigAction[CloudViewConfigAction[\"Create\"] = 0] = \"Create\";\r\n\t CloudViewConfigAction[CloudViewConfigAction[\"Edit\"] = 1] = \"Edit\";\r\n\t})(CloudViewConfigAction = exports.CloudViewConfigAction || (exports.CloudViewConfigAction = {}));\r\n\n\n/***/ },\n/* 626 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
\\r\\n \\r\\n {{ toolbarTitle }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 627 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\";\n\n/***/ },\n/* 628 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar dom_events_1 = __webpack_require__(329);\r\n\tvar cloudview_service_1 = __webpack_require__(393);\r\n\tvar cloudview_config_form_component_1 = __webpack_require__(625);\r\n\tvar EditSiteCloudViewConfigComponent = (function () {\r\n\t function EditSiteCloudViewConfigComponent(route, router, cloudviewService, domEvents) {\r\n\t var _this = this;\r\n\t this.route = route;\r\n\t this.router = router;\r\n\t this.cloudviewService = cloudviewService;\r\n\t this.domEvents = domEvents;\r\n\t this.action = cloudview_config_form_component_1.CloudViewConfigAction;\r\n\t this.route.params.subscribe(function (params) {\r\n\t _this.siteId = +params['siteId'];\r\n\t });\r\n\t }\r\n\t EditSiteCloudViewConfigComponent.prototype.ngOnInit = function () {\r\n\t this.domEvents.triggerOnDocument(\"appready\");\r\n\t };\r\n\t EditSiteCloudViewConfigComponent.prototype.onSubmit = function (config) {\r\n\t var _this = this;\r\n\t if (config) {\r\n\t this.cloudviewService.updateSiteConfig(config).subscribe(function (res) {\r\n\t _this.router.navigateByUrl(\"/sites/\" + config.siteId);\r\n\t });\r\n\t }\r\n\t };\r\n\t EditSiteCloudViewConfigComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'edit-site-cloudview-config',\r\n\t template: __webpack_require__(629),\r\n\t providers: [cloudview_service_1.CloudViewService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [router_1.ActivatedRoute,\r\n\t router_1.Router,\r\n\t cloudview_service_1.CloudViewService,\r\n\t dom_events_1.DOMEvents])\r\n\t ], EditSiteCloudViewConfigComponent);\r\n\t return EditSiteCloudViewConfigComponent;\r\n\t}());\r\n\texports.EditSiteCloudViewConfigComponent = EditSiteCloudViewConfigComponent;\r\n\n\n/***/ },\n/* 629 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\";\n\n/***/ },\n/* 630 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar CloudViewHostPerformanceComponent = (function () {\r\n\t function CloudViewHostPerformanceComponent() {\r\n\t this.visible = false;\r\n\t this.cpu = '';\r\n\t this.memory = '';\r\n\t this.disk = '';\r\n\t }\r\n\t CloudViewHostPerformanceComponent.prototype.ngOnInit = function () {\r\n\t this.getCPUInfo();\r\n\t this.getMemoryInfo();\r\n\t this.getDiskInfo();\r\n\t };\r\n\t CloudViewHostPerformanceComponent.prototype.getCPUInfo = function () {\r\n\t try {\r\n\t var utilization = Math.ceil(this.host.performance.cpu.utilization);\r\n\t this.cpu = \"CPU: \" + utilization + \"%\";\r\n\t }\r\n\t catch (err) {\r\n\t }\r\n\t };\r\n\t CloudViewHostPerformanceComponent.prototype.getMemoryInfo = function () {\r\n\t try {\r\n\t var inUse = this.round(this.host.performance.memory.inUse / 1000, 1);\r\n\t var total = this.round(this.host.performance.memory.total / 1000, 1);\r\n\t this.memory = \"Memory: \" + inUse + \"/\" + total + \" GB\";\r\n\t }\r\n\t catch (err) {\r\n\t }\r\n\t };\r\n\t CloudViewHostPerformanceComponent.prototype.getDiskInfo = function () {\r\n\t try {\r\n\t var usedSpace = this.host.performance.disks[0].usedSpace;\r\n\t var capacity = this.host.performance.disks[0].capacity;\r\n\t this.disk = \"Disk: \" + usedSpace + \"/\" + capacity + \" GB\";\r\n\t }\r\n\t catch (err) {\r\n\t }\r\n\t };\r\n\t CloudViewHostPerformanceComponent.prototype.round = function (value, precision) {\r\n\t var multiplier = Math.pow(10, precision || 0);\r\n\t return Math.round(value * multiplier) / multiplier;\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], CloudViewHostPerformanceComponent.prototype, \"host\", void 0);\r\n\t CloudViewHostPerformanceComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'cloudview-host-performance',\r\n\t template: __webpack_require__(631),\r\n\t styles: [\"\\n .info {\\n display: flex;\\n justify-content:flex-start;\\n flex-direction:column;\\n font-size:1em;\\n font-weight:normal;\\n }\\n \"]\r\n\t })\r\n\t ], CloudViewHostPerformanceComponent);\r\n\t return CloudViewHostPerformanceComponent;\r\n\t}());\r\n\texports.CloudViewHostPerformanceComponent = CloudViewHostPerformanceComponent;\r\n\n\n/***/ },\n/* 631 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
\\r\\n
{{ cpu }}
\\r\\n
{{ memory }}
\\r\\n
{{ disk }}
\\r\\n
\";\n\n/***/ },\n/* 632 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar DeactivateGuardService = (function () {\r\n\t function DeactivateGuardService() {\r\n\t }\r\n\t DeactivateGuardService.prototype.canDeactivate = function (component) {\r\n\t return component.canDeactivate ? component.canDeactivate() : true;\r\n\t };\r\n\t DeactivateGuardService = __decorate([\r\n\t core_1.Injectable()\r\n\t ], DeactivateGuardService);\r\n\t return DeactivateGuardService;\r\n\t}());\r\n\texports.DeactivateGuardService = DeactivateGuardService;\r\n\n\n/***/ },\n/* 633 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar dom_events_1 = __webpack_require__(329);\r\n\tvar zone_service_1 = __webpack_require__(394);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar ZonesComponent = (function () {\r\n\t function ZonesComponent(domEvents, zoneService, router, auth) {\r\n\t this.domEvents = domEvents;\r\n\t this.zoneService = zoneService;\r\n\t this.router = router;\r\n\t this.auth = auth;\r\n\t this.searchText = '';\r\n\t this.regions = [];\r\n\t this.zones = [];\r\n\t this.zoneRegions = [];\r\n\t this.Role = auth_service_1.Role;\r\n\t this.Permission = auth_service_1.Permission;\r\n\t this.zonesLoader = false;\r\n\t this.showZoneDetail = false;\r\n\t }\r\n\t ZonesComponent.prototype.ngOnInit = function () {\r\n\t this.domEvents.triggerOnDocument('appready');\r\n\t this.getZonesDetails();\r\n\t };\r\n\t ZonesComponent.prototype.filterZone = function () {\r\n\t var _this = this;\r\n\t if (this.searchTimeout != undefined)\r\n\t clearTimeout(this.searchTimeout);\r\n\t this.searchTimeout = setTimeout(function () {\r\n\t if (_this.searchText == '') {\r\n\t _this.getZonesDetails();\r\n\t }\r\n\t else {\r\n\t _this.getZone(_this.searchText);\r\n\t }\r\n\t }, 500);\r\n\t };\r\n\t ZonesComponent.prototype.getZonesDetails = function () {\r\n\t var _this = this;\r\n\t this.zonesLoader = true;\r\n\t this.zoneService.getZonesDetails().subscribe(function (data) {\r\n\t _this.zones = data;\r\n\t _this.zonesLoader = false;\r\n\t }, function (err) {\r\n\t _this.zonesLoader = false;\r\n\t });\r\n\t };\r\n\t ZonesComponent.prototype.getZone = function (id) {\r\n\t var _this = this;\r\n\t if (id === void 0) { id = ''; }\r\n\t this.zonesLoader = true;\r\n\t this.zoneService.getZone(id).subscribe(function (data) {\r\n\t _this.zones = [data];\r\n\t _this.zonesLoader = false;\r\n\t }, function (err) {\r\n\t _this.zonesLoader = false;\r\n\t });\r\n\t };\r\n\t ZonesComponent.prototype.getZoneRegions = function (id) {\r\n\t var _this = this;\r\n\t if (id === void 0) { id = ''; }\r\n\t this.zoneService.getZoneRegions('').subscribe(function (data) {\r\n\t _this.region = data;\r\n\t }, function (err) {\r\n\t console.log(err);\r\n\t });\r\n\t };\r\n\t ZonesComponent.prototype.getRegions = function (zone) {\r\n\t this.zoneRegions = zone.regions.map(function (reg) { return reg.key; });\r\n\t return this.zoneRegions;\r\n\t };\r\n\t ZonesComponent.prototype.create = function () {\r\n\t this.router.navigateByUrl('/zones/create');\r\n\t };\r\n\t ZonesComponent.prototype.delete = function (id) {\r\n\t var _this = this;\r\n\t if (confirm(\"Are you sure you want to delete zone \\\"\" + id + \"\\\"?\")) {\r\n\t this.zoneService.deleteZone(id).subscribe(function () {\r\n\t _this.getZonesDetails();\r\n\t });\r\n\t }\r\n\t };\r\n\t ZonesComponent.prototype.edit = function (id) {\r\n\t this.router.navigateByUrl(\"/zones/\" + id);\r\n\t };\r\n\t ZonesComponent.prototype.viewZone = function (zone) {\r\n\t this.zone = zone;\r\n\t this.showZoneDetail = !this.showZoneDetail;\r\n\t };\r\n\t ZonesComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'zones',\r\n\t template: __webpack_require__(634),\r\n\t styles: [__webpack_require__(635)],\r\n\t providers: [zone_service_1.ZoneService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [dom_events_1.DOMEvents,\r\n\t zone_service_1.ZoneService,\r\n\t router_1.Router,\r\n\t auth_service_1.AuthService])\r\n\t ], ZonesComponent);\r\n\t return ZonesComponent;\r\n\t}());\r\n\texports.ZonesComponent = ZonesComponent;\r\n\n\n/***/ },\n/* 634 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n Zones\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
Zone IdNameSubscription IdDefault storageCountryRegions
\\r\\n expand_more\\r\\n {{zone.id}}{{zone.name}}{{zone.subscriptionId}}{{zone.defaultStorage}}{{zone.country}}{{getRegions(zone)}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\";\n\n/***/ },\n/* 635 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"td {\\r\\n padding: 2px;\\r\\n margin: 0;\\r\\n}\"\n\n/***/ },\n/* 636 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar dom_events_1 = __webpack_require__(329);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar zone_service_1 = __webpack_require__(394);\r\n\tvar region_service_1 = __webpack_require__(391);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar ZoneComponent = (function () {\r\n\t function ZoneComponent(domEvents, auth, route, router, zoneService, regionService) {\r\n\t var _this = this;\r\n\t this.domEvents = domEvents;\r\n\t this.auth = auth;\r\n\t this.route = route;\r\n\t this.router = router;\r\n\t this.zoneService = zoneService;\r\n\t this.regionService = regionService;\r\n\t this.zone = {\r\n\t id: '',\r\n\t name: '',\r\n\t country: '',\r\n\t subscriptionId: '',\r\n\t defaultStorage: '',\r\n\t regions: []\r\n\t };\r\n\t this.selectedRegions = [];\r\n\t this.regions = [];\r\n\t this.route.params.subscribe(function (params) {\r\n\t _this.zoneId = params['zoneId'];\r\n\t });\r\n\t this.regionService.getCountryCodes().subscribe(function (countryCodes) {\r\n\t _this.countryCodes = countryCodes;\r\n\t });\r\n\t }\r\n\t ZoneComponent.prototype.ngOnInit = function () {\r\n\t this.domEvents.triggerOnDocument('appready');\r\n\t if (this.selectedZone == null) {\r\n\t this.getZone();\r\n\t }\r\n\t else {\r\n\t this.zone = this.selectedZone;\r\n\t }\r\n\t this.getRegions();\r\n\t };\r\n\t ZoneComponent.prototype.getZone = function () {\r\n\t var _this = this;\r\n\t this.zoneService.getZone(this.zoneId).subscribe(function (data) {\r\n\t _this.zone = data;\r\n\t });\r\n\t };\r\n\t ZoneComponent.prototype.selectRegion = function (region) {\r\n\t region.isSelected = !region.isSelected;\r\n\t if (region.isSelected) {\r\n\t this.selectedRegions.push(region);\r\n\t }\r\n\t if (this.selectedRegions.find(function (r) { return r.value === region.value; }) && !region.isSelected) {\r\n\t this.selectedRegions = this.selectedRegions.filter(function (r) { return r.value !== region.value; });\r\n\t }\r\n\t };\r\n\t ZoneComponent.prototype.onSubmit = function (form) {\r\n\t var _this = this;\r\n\t if (form.valid && this.selectedRegions.length > 0) {\r\n\t this.zone.regions = this.selectedRegions.map(function (r) {\r\n\t return { key: r.key, value: r.value };\r\n\t });\r\n\t this.zoneService.updateZone(this.zone).subscribe(function () {\r\n\t _this.router.navigateByUrl('/zones');\r\n\t }, function (err) {\r\n\t _this.auth.unauthorized(err);\r\n\t });\r\n\t }\r\n\t };\r\n\t ZoneComponent.prototype.cancel = function () {\r\n\t if (confirm('Are you sure you want to cancel?')) {\r\n\t this.router.navigateByUrl('/zones');\r\n\t }\r\n\t };\r\n\t ZoneComponent.prototype.getRegions = function () {\r\n\t var _this = this;\r\n\t this.regionService.getRegions().subscribe(function (data) {\r\n\t _this.regions = data;\r\n\t }, null, function () {\r\n\t var _loop_1 = function (region) {\r\n\t region.isSelected = _this.zone.regions.find(function (r) { return r.value === region.value; }) == undefined ? false : true;\r\n\t };\r\n\t for (var _i = 0, _a = _this.regions; _i < _a.length; _i++) {\r\n\t var region = _a[_i];\r\n\t _loop_1(region);\r\n\t }\r\n\t _this.selectedRegions = _this.regions.filter(function (r) { return r.isSelected; });\r\n\t });\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], ZoneComponent.prototype, \"selectedZone\", void 0);\r\n\t ZoneComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'zone',\r\n\t template: __webpack_require__(637),\r\n\t providers: [zone_service_1.ZoneService, region_service_1.RegionService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [dom_events_1.DOMEvents,\r\n\t auth_service_1.AuthService,\r\n\t router_1.ActivatedRoute,\r\n\t router_1.Router,\r\n\t zone_service_1.ZoneService,\r\n\t region_service_1.RegionService])\r\n\t ], ZoneComponent);\r\n\t return ZoneComponent;\r\n\t}());\r\n\texports.ZoneComponent = ZoneComponent;\r\n\n\n/***/ },\n/* 637 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n
\\r\\n \\r\\n Edit Zone\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{countryCode?.country}} ({{ countryCode?.continent }})\\r\\n \\r\\n \\r\\n \\r\\n

\\r\\n Regions:\\r\\n
\\r\\n {{ region.key }}\\r\\n
\\r\\n

\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 638 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar zone_service_1 = __webpack_require__(394);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar dom_events_1 = __webpack_require__(329);\r\n\tvar region_service_1 = __webpack_require__(391);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar ZoneCreateComponent = (function () {\r\n\t function ZoneCreateComponent(router, domEvents, auth, zoneService, regionService) {\r\n\t var _this = this;\r\n\t this.router = router;\r\n\t this.domEvents = domEvents;\r\n\t this.auth = auth;\r\n\t this.zoneService = zoneService;\r\n\t this.regionService = regionService;\r\n\t this.regions = [];\r\n\t this.zone = {\r\n\t id: '',\r\n\t name: '',\r\n\t country: '',\r\n\t subscriptionId: '',\r\n\t defaultStorage: '',\r\n\t regions: []\r\n\t };\r\n\t this.selectedRegion = {\r\n\t key: '',\r\n\t value: ''\r\n\t };\r\n\t this.selectedRegions = [];\r\n\t this.regionService.getCountryCodes().subscribe(function (countryCodes) {\r\n\t _this.countryCodes = countryCodes;\r\n\t });\r\n\t }\r\n\t ZoneCreateComponent.prototype.ngOnInit = function () {\r\n\t this.domEvents.triggerOnDocument('appready');\r\n\t this.getRegions();\r\n\t };\r\n\t ZoneCreateComponent.prototype.getRegions = function () {\r\n\t var _this = this;\r\n\t this.regionService.getRegions().subscribe(function (data) {\r\n\t _this.regions = data;\r\n\t });\r\n\t };\r\n\t ZoneCreateComponent.prototype.onSubmit = function (form) {\r\n\t var _this = this;\r\n\t if (form.valid && this.selectedRegions.length > 0) {\r\n\t this.zone.regions = this.selectedRegions;\r\n\t this.zoneService.addZone(this.zone).subscribe(function () {\r\n\t _this.router.navigateByUrl('/zones');\r\n\t }, function (err) {\r\n\t _this.auth.unauthorized(err);\r\n\t });\r\n\t }\r\n\t };\r\n\t ZoneCreateComponent.prototype.cancel = function () {\r\n\t if (confirm('Are you sure you want to cancel?')) {\r\n\t this.router.navigateByUrl('/zones');\r\n\t }\r\n\t };\r\n\t ZoneCreateComponent.prototype.selectRegion = function (region) {\r\n\t this.selectedRegion = {\r\n\t key: '',\r\n\t value: ''\r\n\t };\r\n\t if (region.value) {\r\n\t this.selectedRegion.key = region.name.key;\r\n\t this.selectedRegion.value = region.name.value;\r\n\t this.selectedRegions.push(this.selectedRegion);\r\n\t }\r\n\t if (this.selectedRegions.filter(function (r) { return r.value === region.name.value; }) && !region.value) {\r\n\t this.selectedRegions = this.selectedRegions.filter(function (r) { return r.value != region.name.value; });\r\n\t }\r\n\t };\r\n\t ZoneCreateComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'zone-create',\r\n\t template: __webpack_require__(639),\r\n\t styles: [__webpack_require__(640)],\r\n\t providers: [zone_service_1.ZoneService, region_service_1.RegionService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [router_1.Router,\r\n\t dom_events_1.DOMEvents,\r\n\t auth_service_1.AuthService,\r\n\t zone_service_1.ZoneService,\r\n\t region_service_1.RegionService])\r\n\t ], ZoneCreateComponent);\r\n\t return ZoneCreateComponent;\r\n\t}());\r\n\texports.ZoneCreateComponent = ZoneCreateComponent;\r\n\n\n/***/ },\n/* 639 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
0\\\" class=\\\"card-container\\\">\\r\\n \\r\\n Create Zone\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{countryCode?.country}} ({{ countryCode?.continent }})\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Regions:\\r\\n
\\r\\n {{ region.key }}\\r\\n
\\r\\n

\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 640 */\n437,\n/* 641 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar dom_events_1 = __webpack_require__(329);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar new_features_editor_dialog_1 = __webpack_require__(642);\r\n\tvar notification_dialog_1 = __webpack_require__(646);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar new_features_service_1 = __webpack_require__(643);\r\n\tvar date_service_1 = __webpack_require__(583);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar common_1 = __webpack_require__(44);\r\n\tvar NewFeaturesComponent = (function () {\r\n\t function NewFeaturesComponent(NewFeaturesEditorDialog, NotificationDialog, domEvents, auth, newFeaturesService, dateService, pagerService, datePipe) {\r\n\t this.NewFeaturesEditorDialog = NewFeaturesEditorDialog;\r\n\t this.NotificationDialog = NotificationDialog;\r\n\t this.domEvents = domEvents;\r\n\t this.auth = auth;\r\n\t this.newFeaturesService = newFeaturesService;\r\n\t this.dateService = dateService;\r\n\t this.pagerService = pagerService;\r\n\t this.datePipe = datePipe;\r\n\t this.Role = auth_service_1.Role;\r\n\t this.Permission = auth_service_1.Permission;\r\n\t this.isNewRelease = false;\r\n\t this.isLoadingRel = false;\r\n\t this.isLoadingTBR = false;\r\n\t this.todayDate = new Date();\r\n\t this.pager = {\r\n\t totalItems: 0,\r\n\t currentPage: 1,\r\n\t totalPages: 1\r\n\t };\r\n\t this.pagerToBeReleased = {\r\n\t totalItems: 0,\r\n\t currentPage: 1,\r\n\t totalPages: 1\r\n\t };\r\n\t }\r\n\t NewFeaturesComponent.prototype.ngOnInit = function () {\r\n\t this.user = this.auth.getUser();\r\n\t this.getReleases();\r\n\t this.getToBeReleased();\r\n\t this.domEvents.triggerOnDocument(\"appready\");\r\n\t };\r\n\t NewFeaturesComponent.prototype.openReleasesEditor = function (release) {\r\n\t var _this = this;\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.height = \"auto\";\r\n\t config.viewContainerRef = null;\r\n\t if (release != null)\r\n\t this.NewFeaturesEditorDialogRef = this.NewFeaturesEditorDialog.open(new_features_editor_dialog_1.NewFeaturesEditorDialog, {\r\n\t height: \"auto\",\r\n\t data: {\r\n\t release: release\r\n\t }\r\n\t });\r\n\t else\r\n\t this.NewFeaturesEditorDialogRef = this.NewFeaturesEditorDialog.open(new_features_editor_dialog_1.NewFeaturesEditorDialog, config);\r\n\t this.NewFeaturesEditorDialogRef.afterClosed().subscribe(function (result) {\r\n\t if (result === \"cancel\")\r\n\t return;\r\n\t var snackBarMessage = result === \"register\" ? \"created\" : (result === \"update\" ? \"updated\" : \"\");\r\n\t if (snackBarMessage != \"\") {\r\n\t _this.NotificationDialogRef = _this.NotificationDialog.open(notification_dialog_1.NotificationDialog, {\r\n\t data: {\r\n\t message: snackBarMessage\r\n\t }\r\n\t }).updatePosition({ top: '50px', left: '43%' });\r\n\t }\r\n\t _this.getReleases();\r\n\t _this.getToBeReleased();\r\n\t });\r\n\t };\r\n\t NewFeaturesComponent.prototype.getReleases = function () {\r\n\t var _this = this;\r\n\t this.isLoadingRel = true;\r\n\t this.newFeaturesService.getReleases().subscribe(function (releases) {\r\n\t _this.releases = releases;\r\n\t _this.getPagerForReleases();\r\n\t _this.isLoadingRel = false;\r\n\t });\r\n\t };\r\n\t NewFeaturesComponent.prototype.getToBeReleased = function () {\r\n\t var _this = this;\r\n\t this.isLoadingTBR = true;\r\n\t this.newFeaturesService.getToBeReleased().subscribe(function (toBeReleasedDocs) {\r\n\t _this.toBeReleasedDocs = toBeReleasedDocs;\r\n\t _this.filterToBeReleasedDocs();\r\n\t _this.getPagerForToBeReleased();\r\n\t _this.isLoadingTBR = false;\r\n\t });\r\n\t };\r\n\t NewFeaturesComponent.prototype.getDate = function (modifiedDate) {\r\n\t return this.dateService.getDate(new Date(modifiedDate));\r\n\t };\r\n\t NewFeaturesComponent.prototype.getFeaturesFromDescription = function (description) {\r\n\t if (description != null) {\r\n\t return description.split('\\n').slice(1);\r\n\t }\r\n\t };\r\n\t NewFeaturesComponent.prototype.deleteRelease = function (releaseId) {\r\n\t var _this = this;\r\n\t if (window.confirm(\"Are you sure you want to delete release?\")) {\r\n\t if (releaseId != \"\") {\r\n\t this.newFeaturesService.deleteRelease(releaseId).subscribe(function (res) {\r\n\t _this.getReleases();\r\n\t _this.getToBeReleased();\r\n\t _this.NotificationDialogRef = _this.NotificationDialog.open(notification_dialog_1.NotificationDialog, {\r\n\t data: {\r\n\t message: \"deleted\"\r\n\t }\r\n\t }).updatePosition({ top: '50px', left: '43%' });\r\n\t }, function (err) { return console.log(err); });\r\n\t }\r\n\t }\r\n\t };\r\n\t NewFeaturesComponent.prototype.getPagerForReleases = function () {\r\n\t this.pager = this.pagerService.getPager(this.releases.length, 1, 5);\r\n\t this.pagedItems = this.releases.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t NewFeaturesComponent.prototype.setPage = function (page) {\r\n\t if (page < 1 || page > this.pager.totalPages) {\r\n\t return;\r\n\t }\r\n\t this.pager = this.pagerService.getPager(this.releases.length, page, 5);\r\n\t this.pagedItems = this.releases.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\t };\r\n\t NewFeaturesComponent.prototype.getPagerForToBeReleased = function () {\r\n\t this.pagerToBeReleased = this.pagerService.getPager(this.toBeReleasedDocs.length, 1, 3);\r\n\t this.pagedItemsToBeReleased = this.toBeReleasedDocs.slice(this.pagerToBeReleased.startIndex, this.pagerToBeReleased.endIndex + 1);\r\n\t };\r\n\t NewFeaturesComponent.prototype.setPageForToBeReleased = function (page) {\r\n\t if (page < 1 || page > this.pagerToBeReleased.totalPages) {\r\n\t return;\r\n\t }\r\n\t this.pagerToBeReleased = this.pagerService.getPager(this.toBeReleasedDocs.length, page, 3);\r\n\t this.pagedItemsToBeReleased = this.toBeReleasedDocs.slice(this.pagerToBeReleased.startIndex, this.pagerToBeReleased.endIndex + 1);\r\n\t };\r\n\t NewFeaturesComponent.prototype.filterToBeReleasedDocs = function () {\r\n\t var _this = this;\r\n\t this.toBeReleasedDocs = this.toBeReleasedDocs.filter(function (release) {\r\n\t return new Date(_this.datePipe.transform(release.releaseDate, 'MM/dd/yyyy')) >= new Date(_this.datePipe.transform(_this.todayDate, 'MM/dd/yyyy'));\r\n\t });\r\n\t };\r\n\t NewFeaturesComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'app-new-features',\r\n\t template: __webpack_require__(648),\r\n\t styles: [__webpack_require__(649)],\r\n\t providers: [new_features_service_1.NewFeaturesService, date_service_1.DateService, pager_service_1.PagerService, common_1.DatePipe]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialog,\r\n\t material_1.MdDialog,\r\n\t dom_events_1.DOMEvents,\r\n\t auth_service_1.AuthService,\r\n\t new_features_service_1.NewFeaturesService,\r\n\t date_service_1.DateService,\r\n\t pager_service_1.PagerService,\r\n\t common_1.DatePipe])\r\n\t ], NewFeaturesComponent);\r\n\t return NewFeaturesComponent;\r\n\t}());\r\n\texports.NewFeaturesComponent = NewFeaturesComponent;\r\n\n\n/***/ },\n/* 642 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n\t return function (target, key) { decorator(target, key, paramIndex); }\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar new_features_service_1 = __webpack_require__(643);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar NewFeaturesEditorDialog = (function () {\r\n\t function NewFeaturesEditorDialog(dialogRef, newFeaturesService, auth, router, data) {\r\n\t this.dialogRef = dialogRef;\r\n\t this.newFeaturesService = newFeaturesService;\r\n\t this.auth = auth;\r\n\t this.router = router;\r\n\t this.data = data;\r\n\t this.Role = auth_service_1.Role;\r\n\t this.Permission = auth_service_1.Permission;\r\n\t this.selected = \"category1\";\r\n\t this.releaseDate = new Date();\r\n\t this.releaseDescription = \"\";\r\n\t this.isUpdate = false;\r\n\t if (data != null) {\r\n\t this.isUpdate = true;\r\n\t this.releaseToEdit = data.release;\r\n\t }\r\n\t }\r\n\t NewFeaturesEditorDialog.prototype.ngOnInit = function () {\r\n\t this.isAdmin = this.auth.hasRole(auth_service_1.Role.Administrator);\r\n\t this.isEpicorEmployee = this.auth.hasRole(auth_service_1.Role.EpicorEmployee);\r\n\t this.user = this.auth.getUser();\r\n\t if (this.isUpdate) {\r\n\t this.selected = this.releaseToEdit.releaseDate == null ? \"category1\" : \"category2\";\r\n\t this.releaseDate = this.releaseToEdit.releaseDate;\r\n\t this.releaseDescription = this.releaseToEdit.description;\r\n\t }\r\n\t };\r\n\t NewFeaturesEditorDialog.prototype.close = function (result) {\r\n\t this.dialogRef.close(result);\r\n\t };\r\n\t NewFeaturesEditorDialog.prototype.areFieldsValid = function () {\r\n\t if (this.releaseDescription.length > 0) {\r\n\t if (this.selected == \"category2\")\r\n\t return this.releaseDate != null ? false : true;\r\n\t return false;\r\n\t }\r\n\t return true;\r\n\t };\r\n\t NewFeaturesEditorDialog.prototype.onSubmit = function () {\r\n\t if (this.isUpdate)\r\n\t this.updateRelease();\r\n\t else\r\n\t this.registerRelease();\r\n\t };\r\n\t NewFeaturesEditorDialog.prototype.registerRelease = function () {\r\n\t var _this = this;\r\n\t var newRelease = {\r\n\t id: '',\r\n\t category: this.selected === \"category1\" ? \"released\" : \"toBeReleased\",\r\n\t createdDate: new Date(),\r\n\t releaseDate: this.selected === \"category1\" ? null : this.releaseDate,\r\n\t description: this.releaseDescription,\r\n\t author: this.user.emailAddress\r\n\t };\r\n\t this.newFeaturesService.registerRelease(newRelease).subscribe(function () {\r\n\t _this.close('register');\r\n\t _this.router.navigate([\"/whatsnew\"]);\r\n\t }, function (err) {\r\n\t console.log(err);\r\n\t });\r\n\t };\r\n\t NewFeaturesEditorDialog.prototype.updateRelease = function () {\r\n\t var _this = this;\r\n\t var releaseUpdated = {\r\n\t id: this.releaseToEdit.id,\r\n\t category: this.selected === \"category1\" ? \"released\" : \"toBeReleased\",\r\n\t createdDate: this.releaseToEdit.createdDate,\r\n\t releaseDate: this.selected === \"category1\" ? null : this.releaseDate,\r\n\t description: this.releaseDescription,\r\n\t author: this.user.emailAddress\r\n\t };\r\n\t this.newFeaturesService.updateRelease(releaseUpdated).subscribe(function () {\r\n\t _this.close('update');\r\n\t _this.router.navigate([\"/whatsnew\"]);\r\n\t }, function (err) {\r\n\t console.log(err);\r\n\t });\r\n\t };\r\n\t NewFeaturesEditorDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'new-features-editor-dialog',\r\n\t template: __webpack_require__(644),\r\n\t styles: [__webpack_require__(645)],\r\n\t providers: [new_features_service_1.NewFeaturesService]\r\n\t }),\r\n\t __param(4, core_1.Inject(material_1.MD_DIALOG_DATA)),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef,\r\n\t new_features_service_1.NewFeaturesService,\r\n\t auth_service_1.AuthService,\r\n\t router_1.Router, Object])\r\n\t ], NewFeaturesEditorDialog);\r\n\t return NewFeaturesEditorDialog;\r\n\t}());\r\n\texports.NewFeaturesEditorDialog = NewFeaturesEditorDialog;\r\n\n\n/***/ },\n/* 643 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar http_1 = __webpack_require__(57);\r\n\tvar angular2_jwt_1 = __webpack_require__(278);\r\n\tvar config_service_1 = __webpack_require__(300);\r\n\tvar NewFeaturesService = (function () {\r\n\t function NewFeaturesService(http, authHttp) {\r\n\t this.http = http;\r\n\t this.authHttp = authHttp;\r\n\t this.serviceBase = new config_service_1.ConfigService().getApiURI();\r\n\t }\r\n\t NewFeaturesService.prototype.registerRelease = function (release) {\r\n\t var url = this.serviceBase + \"release/registerrelease\";\r\n\t var body = release;\r\n\t return this.authHttp.post(url, body);\r\n\t };\r\n\t NewFeaturesService.prototype.getReleases = function () {\r\n\t var url = this.serviceBase + \"release/getreleases\";\r\n\t return this.authHttp.get(url).map(this.extractData);\r\n\t };\r\n\t NewFeaturesService.prototype.getToBeReleased = function () {\r\n\t var url = this.serviceBase + \"release/gettobereleased\";\r\n\t return this.authHttp.get(url).map(this.extractData);\r\n\t };\r\n\t NewFeaturesService.prototype.deleteRelease = function (releaseId) {\r\n\t var url = this.serviceBase + \"release/deleterelease/\" + releaseId;\r\n\t return this.authHttp.delete(url);\r\n\t };\r\n\t NewFeaturesService.prototype.updateRelease = function (release) {\r\n\t var url = this.serviceBase + \"release/updaterelease/\";\r\n\t var body = release;\r\n\t return this.authHttp.put(url, body);\r\n\t };\r\n\t NewFeaturesService.prototype.extractData = function (res) {\r\n\t var body = res.json();\r\n\t return body || {};\r\n\t };\r\n\t NewFeaturesService = __decorate([\r\n\t core_1.Injectable(),\r\n\t __metadata(\"design:paramtypes\", [http_1.Http,\r\n\t angular2_jwt_1.AuthHttp])\r\n\t ], NewFeaturesService);\r\n\t return NewFeaturesService;\r\n\t}());\r\n\texports.NewFeaturesService = NewFeaturesService;\r\n\n\n/***/ },\n/* 644 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \" \\r\\n {{ isUpdate ? 'Update release' : 'Create a new release' }}\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Release\\r\\n Coming Soon\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\";\n\n/***/ },\n/* 645 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \".releaseDescritpion {\\r\\n border: 1px solid rgba(0,0,0,.12) !important;\\r\\n color: black;\\r\\n}\\r\\n.releaseDescritpion:focus {\\r\\n border: 1px solid #288fc7 !important;\\r\\n outline-offset: -2px;\\r\\n outline: -webkit-focus-ring-color auto 1px;\\r\\n}\\r\\n\"\n\n/***/ },\n/* 646 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n\t return function (target, key) { decorator(target, key, paramIndex); }\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar NotificationDialog = (function () {\r\n\t function NotificationDialog(dialogRef, data) {\r\n\t this.dialogRef = dialogRef;\r\n\t this.data = data;\r\n\t this.message = \"\";\r\n\t if (data != null) {\r\n\t this.message = data.message;\r\n\t }\r\n\t }\r\n\t NotificationDialog.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t setTimeout(function () { _this.close(); }, 2000);\r\n\t };\r\n\t NotificationDialog.prototype.close = function () {\r\n\t this.dialogRef.close();\r\n\t };\r\n\t NotificationDialog.prototype.getColorForMessage = function () {\r\n\t if (this.message === \"created\")\r\n\t return \"#2cac36\";\r\n\t else if (this.message === \"updated\")\r\n\t return \"#288fc7\";\r\n\t else if (this.message === \"deleted\")\r\n\t return \"rgb(201, 38, 38)\";\r\n\t };\r\n\t NotificationDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'notification-dialog',\r\n\t template: __webpack_require__(647)\r\n\t }),\r\n\t __param(1, core_1.Inject(material_1.MD_DIALOG_DATA)),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef, Object])\r\n\t ], NotificationDialog);\r\n\t return NotificationDialog;\r\n\t}());\r\n\texports.NotificationDialog = NotificationDialog;\r\n\n\n/***/ },\n/* 647 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
\\r\\n \\r\\n
\";\n\n/***/ },\n/* 648 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"\\r\\n
\\r\\n \\r\\n \\r\\n What's new\\r\\n \\r\\n
\\r\\n \\r\\n Releases\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{ getDate(release?.createdDate) | date:'MM/dd/yyyy' }} : {{ release?.description.includes('\\\\n') ? release?.description.split('\\\\n')[0] : release?.description }}\\r\\n \\r\\n \\r\\n \\r\\n {{ feature }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ pager.currentPage + \\\"/\\\" + pager.totalPages}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Coming Soon\\r\\n
\\r\\n {{ toBeReleased?.description.includes('\\\\n') ? toBeReleased?.description.split('\\\\n')[0] : toBeReleased?.description }}\\r\\n \\r\\n \\r\\n Expected release date: {{ getDate(toBeReleased?.releaseDate) | date:'MM/dd/yyyy' }}\\r\\n
\\r\\n
\\r\\n {{ pagerToBeReleased.currentPage + \\\"/\\\" + pagerToBeReleased.totalPages}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\";\n\n/***/ },\n/* 649 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"::ng-deep .mat-list .mat-list-item .mat-list-item-content {\\r\\n height: auto !important;\\r\\n}\"\n\n/***/ },\n/* 650 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar dom_events_1 = __webpack_require__(329);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar configurations_service_1 = __webpack_require__(651);\r\n\tvar ConfigurationsComponent = (function () {\r\n\t function ConfigurationsComponent(domEvents, auth, configServices) {\r\n\t this.domEvents = domEvents;\r\n\t this.auth = auth;\r\n\t this.configServices = configServices;\r\n\t this.Role = auth_service_1.Role;\r\n\t this.Permission = auth_service_1.Permission;\r\n\t this.sectionSiteHide = false;\r\n\t this.sectionConversionHide = true;\r\n\t this.sectionUserHide = true;\r\n\t this.todayDate = new Date();\r\n\t this.executing = false;\r\n\t this.isLoading = true;\r\n\t this.disableCAM = false;\r\n\t }\r\n\t ConfigurationsComponent.prototype.ngOnInit = function () {\r\n\t this.user = this.auth.getUser();\r\n\t this.getLatestJobDetails();\r\n\t this.domEvents.triggerOnDocument(\"appready\");\r\n\t };\r\n\t ConfigurationsComponent.prototype.toggleSection = function (event) {\r\n\t var element = event.target;\r\n\t var section = element.id.split('-')[1];\r\n\t this.sectionSiteHide = true;\r\n\t this.sectionConversionHide = true;\r\n\t this.sectionUserHide = true;\r\n\t switch (section) {\r\n\t case \"site\":\r\n\t this.sectionSiteHide = false;\r\n\t break;\r\n\t case \"conversion\":\r\n\t this.sectionConversionHide = false;\r\n\t break;\r\n\t case \"user\":\r\n\t this.sectionUserHide = false;\r\n\t break;\r\n\t }\r\n\t };\r\n\t ConfigurationsComponent.prototype.UpdateLatestChildSites = function () {\r\n\t var _this = this;\r\n\t this.configServices.executePartnerChildSync().subscribe(function () {\r\n\t _this.executing = true;\r\n\t _this.getLatestJobDetails();\r\n\t });\r\n\t };\r\n\t ConfigurationsComponent.prototype.UpdateCAMDetails = function () {\r\n\t var _this = this;\r\n\t this.configServices.camUpdateDetails().subscribe(function () {\r\n\t _this.executing = true;\r\n\t _this.getLatestJobDetails();\r\n\t });\r\n\t };\r\n\t ConfigurationsComponent.prototype.getLatestJobDetails = function () {\r\n\t var _this = this;\r\n\t this.configServices.getLatestJobDetails().subscribe(function (res) {\r\n\t _this.jobs = res;\r\n\t _this.isLoading = false;\r\n\t _this.disableCAMUpdate();\r\n\t });\r\n\t };\r\n\t ConfigurationsComponent.prototype.disableCAMUpdate = function () {\r\n\t console.log((\"production\"));\r\n\t if (false) {\r\n\t this.disableCAM = true;\r\n\t }\r\n\t };\r\n\t ConfigurationsComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'configurations',\r\n\t template: __webpack_require__(652),\r\n\t styles: [__webpack_require__(653)],\r\n\t providers: [configurations_service_1.ConfigurationService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [dom_events_1.DOMEvents,\r\n\t auth_service_1.AuthService,\r\n\t configurations_service_1.ConfigurationService])\r\n\t ], ConfigurationsComponent);\r\n\t return ConfigurationsComponent;\r\n\t}());\r\n\texports.ConfigurationsComponent = ConfigurationsComponent;\r\n\n\n/***/ },\n/* 651 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar http_1 = __webpack_require__(57);\r\n\tvar angular2_jwt_1 = __webpack_require__(278);\r\n\tvar config_service_1 = __webpack_require__(300);\r\n\tvar ConfigurationService = (function () {\r\n\t function ConfigurationService(http, authHttp) {\r\n\t this.http = http;\r\n\t this.authHttp = authHttp;\r\n\t this.serviceBase = new config_service_1.ConfigService().getApiURI();\r\n\t }\r\n\t ConfigurationService.prototype.executePartnerChildSync = function () {\r\n\t var url = this.serviceBase + \"configuration/updatepartnerchild\";\r\n\t return this.authHttp.post(url, null);\r\n\t };\r\n\t ConfigurationService.prototype.camUpdateDetails = function () {\r\n\t var url = this.serviceBase + \"configuration/camupdate\";\r\n\t return this.authHttp.post(url, null);\r\n\t };\r\n\t ConfigurationService.prototype.getLatestJobDetails = function () {\r\n\t var url = this.serviceBase + \"configuration/fetchdetails\";\r\n\t return this.authHttp.get(url).map(this.extractData);\r\n\t };\r\n\t ConfigurationService.prototype.extractData = function (res) {\r\n\t var body = res.json();\r\n\t return body || {};\r\n\t };\r\n\t ConfigurationService = __decorate([\r\n\t core_1.Injectable(),\r\n\t __metadata(\"design:paramtypes\", [http_1.Http,\r\n\t angular2_jwt_1.AuthHttp])\r\n\t ], ConfigurationService);\r\n\t return ConfigurationService;\r\n\t}());\r\n\texports.ConfigurationService = ConfigurationService;\r\n\n\n/***/ },\n/* 652 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
\\r\\n\\r\\n \\r\\n Configurations\\r\\n \\r\\n
\\r\\n
Sites
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
Update partner child sites
\\r\\n
CAM Update
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
{{job.lastexecutionstatus}}Last executed by {{job.lastexecutedby}} on {{job.lastexecutedtime}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • Reserved for conversion related configurations
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • Reserved for user related configurations
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\";\n\n/***/ },\n/* 653 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"::ng-deep .mat-list .mat-list-item .mat-list-item-content {\\r\\n height: auto !important;\\r\\n}\\r\\n\\r\\n.sidenav {\\r\\n height: 70%;\\r\\n width: 140px;\\r\\n position: relative;\\r\\n z-index: 1;\\r\\n top: 0;\\r\\n left: 0;\\r\\n background-color: #025064;\\r\\n overflow-x: hidden;\\r\\n padding-top: 20px;\\r\\n float: left;\\r\\n }\\r\\n \\r\\n .sidenav a {\\r\\n padding: 6px 8px 6px 16px;\\r\\n text-decoration: none;\\r\\n font-size: 25px;\\r\\n color: #818181;\\r\\n display: block;\\r\\n }\\r\\n \\r\\n .sidenav a:hover {\\r\\n color: #f1f1f1;\\r\\n }\\r\\n \\r\\n .sidenav div {\\r\\n font-size: 18px;\\r\\n text-align: center;\\r\\n color: white;\\r\\n cursor: pointer;\\r\\n padding-top: 10px;\\r\\n padding-bottom: 10px;\\r\\n }\\r\\n\\r\\n .sidenav div:hover{\\r\\n background-color: aliceblue;\\r\\n color: black;\\r\\n }\\r\\n \\r\\n .nav-highlight {\\r\\n background-color: aliceblue;\\r\\n color: black;\\r\\n }\\r\\n\\r\\n table tr td {\\r\\n text-align: center;\\r\\n font-weight: bold;\\r\\n }\\r\\n\\r\\n .main {\\r\\n margin-left: 140px; /* Same as the width of the sidenav */\\r\\n font-size: 20px; /* Increased text to enable scrolling */\\r\\n padding: 0px 10px;\\r\\n }\\r\\n \\r\\n @media screen and (max-height: 450px) {\\r\\n .sidenav {padding-top: 15px;}\\r\\n .sidenav a {font-size: 18px;}\\r\\n }\\r\\n\\r\\n .list-options {\\r\\n font-size: 17px;\\r\\n font-family: 'Source Sans Pro', 'Helvetica Neue';\\r\\n }\"\n\n/***/ },\n/* 654 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar dom_events_1 = __webpack_require__(329);\r\n\tvar conversions_interface_1 = __webpack_require__(392);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar conversion_assesment_service_1 = __webpack_require__(655);\r\n\tvar conversions_service_1 = __webpack_require__(378);\r\n\tvar date_service_1 = __webpack_require__(583);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar common_1 = __webpack_require__(44);\r\n\tvar sites_service_1 = __webpack_require__(371);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar mock_timezones_1 = __webpack_require__(560);\r\n\tvar ConversionAssesmentComponent = (function () {\r\n\t function ConversionAssesmentComponent(router, sitesService, NewFeaturesEditorDialog, NotificationDialog, domEvents, auth, conversionAssesmentService, conversionsService, dateService, pagerService) {\r\n\t this.router = router;\r\n\t this.sitesService = sitesService;\r\n\t this.NewFeaturesEditorDialog = NewFeaturesEditorDialog;\r\n\t this.NotificationDialog = NotificationDialog;\r\n\t this.domEvents = domEvents;\r\n\t this.auth = auth;\r\n\t this.conversionAssesmentService = conversionAssesmentService;\r\n\t this.conversionsService = conversionsService;\r\n\t this.dateService = dateService;\r\n\t this.pagerService = pagerService;\r\n\t this.status = conversions_interface_1.ConversionStatus;\r\n\t this.searchText = '';\r\n\t this.pageSize = 25;\r\n\t this.pageIndex = 0;\r\n\t this.sitesPageIndex = 0;\r\n\t this.tokens = [\"\"];\r\n\t this.tokensSites = [\"\"];\r\n\t this.hasMoreResults = false;\r\n\t this.sitesHasMoreResults = false;\r\n\t this.Role = auth_service_1.Role;\r\n\t this.Permission = auth_service_1.Permission;\r\n\t this.sortColumn = \"startDate\";\r\n\t this.sortAsc = false;\r\n\t this.timezones = mock_timezones_1.TIMEZONES;\r\n\t this.pageSizes = [\r\n\t { value: 5, viewValue: '5' },\r\n\t { value: 10, viewValue: '10' },\r\n\t { value: 25, viewValue: '25' },\r\n\t { value: 50, viewValue: '50' },\r\n\t { value: 100, viewValue: '100' }\r\n\t ];\r\n\t this.isLoadingScreen = true;\r\n\t this.isLoadingConfig = true;\r\n\t this.conversionPassesLoader = false;\r\n\t this.noPasses = false;\r\n\t this.noConfig = false;\r\n\t this.showUOM = false;\r\n\t this.sitesLoader = false;\r\n\t this.currentSiteConfig = [];\r\n\t this.totalConversions = 0;\r\n\t this.totalLiveConversions = 0;\r\n\t this.completedCount = 0;\r\n\t this.conversionPasses = [];\r\n\t this.user = this.auth.getUser();\r\n\t }\r\n\t ConversionAssesmentComponent.prototype.ngOnInit = function () {\r\n\t this.isFirstLoad = true;\r\n\t this.getConversionPassesCount();\r\n\t this.domEvents.triggerOnDocument(\"appready\");\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.ngAfterViewInit = function () {\r\n\t this.sorting();\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.onRefresh = function (data) {\r\n\t if (data.pageSize) {\r\n\t this.pageSize = data.pageSize;\r\n\t }\r\n\t this.refreshPasses();\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.getDate = function (date) {\r\n\t return this.dateService.getDate(new Date(date));\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.getElapsedTime = function (startDate, endDate) {\r\n\t return endDate === null ? \"\" : this.msToTime((new Date(endDate)).valueOf() - (new Date(startDate)).valueOf());\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.msToTime = function (duration) {\r\n\t return this.fixNumberTwoDecimals(duration / (1000 * 60 * 60)) + \" hrs.\";\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.fixNumberTwoDecimals = function (num) {\r\n\t return num >= 0 ? num.toFixed(2) : \"\";\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.filterConversions = function (siteId) {\r\n\t var _this = this;\r\n\t if (this.searchTimeout != undefined)\r\n\t clearTimeout(this.searchTimeout);\r\n\t this.searchTimeout = setTimeout(function () {\r\n\t _this.getConversionPasses(null, null, _this.sortColumn, _this.sortAsc, _this.pageSize, null, siteId);\r\n\t }, 500);\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.unfilterSearchConversion = function () {\r\n\t this.searchText = '';\r\n\t this.sortColumn = 'startDate';\r\n\t this.conversionPasses = [];\r\n\t this.sites = [];\r\n\t this.sitesLoader = false;\r\n\t this.conversionPassesLoader = false;\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.getConversionPasses = function (status, token, sortColumn, sortAsc, pageSize, docState, searchText) {\r\n\t var _this = this;\r\n\t if (token === void 0) { token = \"\"; }\r\n\t if (sortColumn === void 0) { sortColumn = null; }\r\n\t if (sortAsc === void 0) { sortAsc = null; }\r\n\t if (pageSize === void 0) { pageSize = 25; }\r\n\t if (searchText === void 0) { searchText = \"\"; }\r\n\t this.conversionPasses = [];\r\n\t if (searchText === null || searchText === \"\") {\r\n\t return;\r\n\t }\r\n\t if (!this.isFirstLoad) {\r\n\t this.beforeloadingPasses();\r\n\t }\r\n\t this.isFirstLoad = false;\r\n\t this.noPasses = false;\r\n\t this.conversionPassesLoader = true;\r\n\t this.conversionsService.getConversionPassSummaries(searchText, status, null, token, sortColumn, sortAsc, pageSize, docState).subscribe(function (pagedResult) {\r\n\t _this.conversionPasses = pagedResult.result;\r\n\t _this.hasMoreResults = pagedResult.hasMoreResults;\r\n\t if (pagedResult.requestContinuation != null) {\r\n\t var token = JSON.parse(pagedResult.requestContinuation).token;\r\n\t if (typeof _this.tokens[_this.pageIndex + 1] === 'undefined') {\r\n\t _this.tokens.push(token);\r\n\t }\r\n\t }\r\n\t if (pagedResult.result.length > 0) {\r\n\t _this.conversionPasses.forEach(function (cp, index) {\r\n\t _this.conversionsService.getConversionPass(cp.conversionId, cp.passNumber).subscribe(function (res) {\r\n\t cp.toolingVersion = res.toolingVersion;\r\n\t cp.configuration = [];\r\n\t cp.openedChild = false;\r\n\t _this.conversionsService.getEffectiveTimeConversionPass(res.conversionPassId, cp.modifiedDate).subscribe(function (res) {\r\n\t cp.effectiveTime = res.effectiveTime;\r\n\t cp.hasErrors = res.numErrors > 0 ? true : false;\r\n\t if (index === _this.conversionPasses.length - 1)\r\n\t _this.conversionPassesLoader = false;\r\n\t });\r\n\t });\r\n\t });\r\n\t }\r\n\t else {\r\n\t _this.conversionPassesLoader = false;\r\n\t _this.noPasses = true;\r\n\t }\r\n\t }, function (err) { return _this.conversionPassesLoader = false; });\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.getConversionPassesCount = function () {\r\n\t var _this = this;\r\n\t this.totalConversions = 0;\r\n\t this.totalLiveConversions = 0;\r\n\t this.conversionsService.getConversionLivePassSummariesCount(null, null, \"-1\", null).subscribe(function (res) {\r\n\t _this.totalConversions += res.goLiveCount + res.noGoLiveCount;\r\n\t _this.totalLiveConversions += res.goLiveCount;\r\n\t _this.isLoadingScreen = false;\r\n\t });\r\n\t this.conversionsService.getConversionPassSummariesCount(conversions_interface_1.ConversionStatus[conversions_interface_1.ConversionStatus.Completed], null, null, null).subscribe(function (res) {\r\n\t _this.completedCount = res.count;\r\n\t });\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.getSiteLatestConfig = function (siteId) {\r\n\t var _this = this;\r\n\t this.isLoadingConfig = true;\r\n\t this.noConfig = false;\r\n\t this.conversionAssesmentService.getSiteLatestConfig(siteId).subscribe(function (res) {\r\n\t _this.currentSiteConfig[0] = res;\r\n\t _this.noConfig = false;\r\n\t _this.isLoadingConfig = false;\r\n\t }, function (err) { _this.noConfig = true; _this.isLoadingConfig = false; });\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.previousPassesPage = function () {\r\n\t this.pageIndex -= 1;\r\n\t var token = this.tokens[this.pageIndex];\r\n\t if (typeof token !== 'undefined') {\r\n\t this.getConversionPasses(null, token, this.sortColumn, this.sortAsc, this.pageSize, null, this.searchText);\r\n\t }\r\n\t else {\r\n\t this.pageIndex += 1;\r\n\t }\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.nextPassesPage = function () {\r\n\t this.pageIndex += 1;\r\n\t var token = this.tokens[this.pageIndex];\r\n\t if (typeof token !== 'undefined') {\r\n\t this.getConversionPasses(null, token, this.sortColumn, this.sortAsc, this.pageSize, null, this.searchText);\r\n\t }\r\n\t else {\r\n\t this.pageIndex -= 1;\r\n\t }\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.onPageSizeChange = function () {\r\n\t this.onRefresh({ pageSize: this.pageSize });\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.sort = function (selectedColumnName) {\r\n\t var columnCount = 0;\r\n\t if (this.sortAsc == null) {\r\n\t this.sortAsc = false;\r\n\t }\r\n\t else {\r\n\t var tempSortAsc = this.sortAsc == true ? false : true;\r\n\t this.sortAsc = tempSortAsc;\r\n\t }\r\n\t this.sortColumn = selectedColumnName;\r\n\t for (columnCount; columnCount < this.columnDetails.nativeElement.children.length - 1; columnCount++) {\r\n\t this.columnDetails.nativeElement.children[columnCount].children[0].classList.remove('arrow-down');\r\n\t this.columnDetails.nativeElement.children[columnCount].children[0].classList.remove('arrow-up');\r\n\t }\r\n\t this.sorting();\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.sorting = function () {\r\n\t this.tokens = [\"\"];\r\n\t this.pageIndex = 0;\r\n\t this.getConversionPasses(null, null, this.sortColumn, this.sortAsc, this.pageSize, null, this.searchText);\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.refreshPasses = function () {\r\n\t this.tokens = [\"\"];\r\n\t this.pageIndex = 0;\r\n\t this.getConversionPasses(null, null, this.sortColumn, this.sortAsc, this.pageSize, null, this.searchText);\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.beforeloadingPasses = function () {\r\n\t if (this.sortColumn != null) {\r\n\t if (this.sortColumn == 'passNumber')\r\n\t this.setSortingIcons(this.PassNum, this.sortAsc);\r\n\t if (this.sortColumn == 'startDate')\r\n\t this.setSortingIcons(this.StartDate, this.sortAsc);\r\n\t if (this.sortColumn == 'modifiedDate')\r\n\t this.setSortingIcons(this.CompletedDate, this.sortAsc);\r\n\t }\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.getStatusIcon = function (status) {\r\n\t var icon = '';\r\n\t switch (status) {\r\n\t case conversions_interface_1.ConversionStatus.Stopped:\r\n\t icon = 'cancel';\r\n\t break;\r\n\t case conversions_interface_1.ConversionStatus.InProgress:\r\n\t icon = 'update';\r\n\t break;\r\n\t case conversions_interface_1.ConversionStatus.Completed:\r\n\t icon = 'check_circle';\r\n\t break;\r\n\t }\r\n\t return icon;\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.getStatusIconColor = function (status) {\r\n\t var color = '';\r\n\t switch (status) {\r\n\t case conversions_interface_1.ConversionStatus.Stopped:\r\n\t color = 'red';\r\n\t break;\r\n\t case conversions_interface_1.ConversionStatus.Completed:\r\n\t color = 'green';\r\n\t break;\r\n\t }\r\n\t return color;\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.setSortingIcons = function (element, sortAsc) {\r\n\t if (sortAsc == true) {\r\n\t element.nativeElement.childNodes[1].classList.add('arrow-up');\r\n\t element.nativeElement.childNodes[1].classList.remove('arrow-down');\r\n\t }\r\n\t else {\r\n\t element.nativeElement.childNodes[1].classList.remove('arrow-up');\r\n\t element.nativeElement.childNodes[1].classList.add('arrow-down');\r\n\t }\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.toggleChild = function (child) {\r\n\t child.openedChild = !child.openedChild;\r\n\t if (child.openedChild) {\r\n\t this.sites.forEach(function (site, index) {\r\n\t if (site.openedChild && site.siteId != child.siteId && site.siteName != child.siteName)\r\n\t site.openedChild = false;\r\n\t });\r\n\t this.noPasses = false;\r\n\t this.noConfig = true;\r\n\t this.conversionPasses = [];\r\n\t this.currentSiteConfig = [];\r\n\t this.expandLessChild(child);\r\n\t }\r\n\t else {\r\n\t this.expandMoreChild(child);\r\n\t }\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.expandLessChild = function (child) {\r\n\t child.icon = 'expand_less';\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.expandMoreChild = function (child) {\r\n\t child.icon = 'expand_more';\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.viewConversionConfiguration = function (conversionId) {\r\n\t this.router.navigate([\"/conversions/\" + conversionId]);\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.openInNewTab = function (conversionId) {\r\n\t var url = window.location.origin + \"/#/conversions/\" + conversionId;\r\n\t window.open(url, \"_blank\");\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.openConversionInNewTab = function (conversionId, passNumber) {\r\n\t var url = window.location.origin + \"/#/conversions/\" + conversionId + \"/passes/\" + passNumber;\r\n\t window.open(url, \"_blank\");\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.filterSite = function () {\r\n\t var _this = this;\r\n\t if (this.searchTimeoutSites != undefined)\r\n\t clearTimeout(this.searchTimeoutSites);\r\n\t this.searchTimeoutSites = setTimeout(function () {\r\n\t _this.sitesPageIndex = 0;\r\n\t _this.tokensSites = [\"\"];\r\n\t var token = _this.tokensSites[_this.sitesPageIndex];\r\n\t _this.sites = [];\r\n\t _this.getSites(_this.searchText, token);\r\n\t }, 500);\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.getSites = function (searchTerm, token) {\r\n\t var _this = this;\r\n\t if (searchTerm === void 0) { searchTerm = \"\"; }\r\n\t if (token === void 0) { token = \"\"; }\r\n\t this.sitesLoader = true;\r\n\t this.sitesService.getSitesDTO(searchTerm, token).subscribe(function (response) {\r\n\t _this.sites = response.result;\r\n\t _this.sitesHasMoreResults = response.hasMoreResults;\r\n\t _this.sites.forEach(function (site, index) {\r\n\t site.openedChild = false;\r\n\t });\r\n\t if (response.requestContinuation != null) {\r\n\t var token = JSON.parse(response.requestContinuation).token;\r\n\t if (typeof _this.tokensSites[_this.sitesPageIndex + 1] === 'undefined') {\r\n\t _this.tokensSites.push(token);\r\n\t }\r\n\t }\r\n\t _this.sitesLoader = false;\r\n\t });\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.previousSite = function () {\r\n\t this.sitesPageIndex -= 1;\r\n\t var token = this.tokensSites[this.sitesPageIndex];\r\n\t if (typeof token !== 'undefined') {\r\n\t this.getSites(this.searchText, token);\r\n\t }\r\n\t else {\r\n\t this.sitesPageIndex += 1;\r\n\t }\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.nextSite = function () {\r\n\t this.sitesPageIndex += 1;\r\n\t var token = this.tokensSites[this.sitesPageIndex];\r\n\t if (typeof token !== 'undefined') {\r\n\t this.getSites(this.searchText, token);\r\n\t }\r\n\t else {\r\n\t this.sitesPageIndex -= 1;\r\n\t }\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.convertTimeZone = function (timeZone) {\r\n\t var zone = this.timezones.find(function (vtime) { return vtime.gmtAdjustment == timeZone; });\r\n\t return zone == null ? \"\" : zone.name;\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.FormatDeployment = function (deployment) {\r\n\t return deployment == null ? \"\" : (deployment == \"DT SaaS\" ? \"Epicor ERP Public Cloud (US)\" : deployment);\r\n\t };\r\n\t ConversionAssesmentComponent.prototype.IsUOMValid = function (fromVersion) {\r\n\t if (fromVersion != null && fromVersion.startsWith(\"8.\")) {\r\n\t return true;\r\n\t }\r\n\t return false;\r\n\t };\r\n\t __decorate([\r\n\t core_1.ViewChild('columnDetails'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], ConversionAssesmentComponent.prototype, \"columnDetails\", void 0);\r\n\t __decorate([\r\n\t core_1.ViewChild('passNum'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], ConversionAssesmentComponent.prototype, \"PassNum\", void 0);\r\n\t __decorate([\r\n\t core_1.ViewChild('startDate'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], ConversionAssesmentComponent.prototype, \"StartDate\", void 0);\r\n\t __decorate([\r\n\t core_1.ViewChild('completedDate'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], ConversionAssesmentComponent.prototype, \"CompletedDate\", void 0);\r\n\t __decorate([\r\n\t core_1.ViewChild('effective'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], ConversionAssesmentComponent.prototype, \"Effective\", void 0);\r\n\t ConversionAssesmentComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'app-conversion-assesment',\r\n\t template: __webpack_require__(656),\r\n\t styles: [__webpack_require__(657)],\r\n\t providers: [conversion_assesment_service_1.ConversionAssesmentService, date_service_1.DateService, pager_service_1.PagerService, common_1.DatePipe, sites_service_1.SitesService, conversions_service_1.ConversionsService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [router_1.Router,\r\n\t sites_service_1.SitesService,\r\n\t material_1.MdDialog,\r\n\t material_1.MdDialog,\r\n\t dom_events_1.DOMEvents,\r\n\t auth_service_1.AuthService,\r\n\t conversion_assesment_service_1.ConversionAssesmentService,\r\n\t conversions_service_1.ConversionsService,\r\n\t date_service_1.DateService,\r\n\t pager_service_1.PagerService])\r\n\t ], ConversionAssesmentComponent);\r\n\t return ConversionAssesmentComponent;\r\n\t}());\r\n\texports.ConversionAssesmentComponent = ConversionAssesmentComponent;\r\n\n\n/***/ },\n/* 655 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar http_1 = __webpack_require__(57);\r\n\tvar angular2_jwt_1 = __webpack_require__(278);\r\n\tvar config_service_1 = __webpack_require__(300);\r\n\tvar url_pipe_1 = __webpack_require__(372);\r\n\tvar ConversionAssesmentService = (function () {\r\n\t function ConversionAssesmentService(http, authHttp) {\r\n\t this.http = http;\r\n\t this.authHttp = authHttp;\r\n\t this.serviceBase = new config_service_1.ConfigService().getApiURI();\r\n\t this.conversionsAPI = this.serviceBase + 'conversions';\r\n\t this.queryStringPipe = new url_pipe_1.QueryStringPipe();\r\n\t }\r\n\t ConversionAssesmentService.prototype.getSiteLatestConfig = function (siteId) {\r\n\t var url = this.conversionsAPI + \"/configuration/\" + siteId;\r\n\t return this.authHttp.get(url)\r\n\t .map(this.extractData);\r\n\t };\r\n\t ConversionAssesmentService.prototype.extractData = function (res) {\r\n\t var body = res.json();\r\n\t return body || {};\r\n\t };\r\n\t ConversionAssesmentService = __decorate([\r\n\t core_1.Injectable(),\r\n\t __metadata(\"design:paramtypes\", [http_1.Http,\r\n\t angular2_jwt_1.AuthHttp])\r\n\t ], ConversionAssesmentService);\r\n\t return ConversionAssesmentService;\r\n\t}());\r\n\texports.ConversionAssesmentService = ConversionAssesmentService;\r\n\n\n/***/ },\n/* 656 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"Site Planner\\r\\n\\r\\n
\\r\\n
\\r\\n
Total conversions to date: {{ totalConversions }}
\\r\\n
Total Go-Live conversions: {{ totalLiveConversions }}
\\r\\n
Total Successful conversions: {{ completedCount }}
\\r\\n
\\r\\n \\r\\n Sites\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n clear\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{sitegroup?.siteId}} - {{sitegroup?.siteName}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n

No conversion configuration found for this site.

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

Current Configuration

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

No conversion passes found for this site.

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Pass Tooling\\r\\n Version Start Datetime \\r\\n Go-Live?\\r\\n Status Completed\\r\\n Datetime \\r\\n Errors Found?\\r\\n \\r\\n \\r\\n Elapsed Time \\r\\n \\r\\n Effective Time \\r\\n \\r\\n
\\r\\n {{conversion?.passNumber}}\\r\\n {{conversion?.toolingVersion}}\\r\\n {{getDate(conversion?.startDate) | date:'MM/dd/yyyy HH:mm:ss'}}\\r\\n \\r\\n \\r\\n
\\r\\n {{ getStatusIcon(conversion?.status) }}\\r\\n {{ status[conversion?.status]}}\\r\\n \\r\\n
\\r\\n
\\r\\n {{ conversion?.status === 5 ? ((conversion?.modifiedDate) | date:'MM/dd/yyyy HH:mm:ss') : null}}\\r\\n \\r\\n \\r\\n \\r\\n {{getElapsedTime(conversion?.startDate, conversion?.modifiedDate)}}\\r\\n {{fixNumberTwoDecimals(conversion?.effectiveTime)}} hrs.\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 657 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"::ng-deep .mat-list .mat-list-item .mat-list-item-content {\\r\\n height: auto !important;\\r\\n}\\r\\n.arrow-up {\\r\\n width: 0;\\r\\n height: 0;\\r\\n border-left: 5px solid transparent;\\r\\n border-right: 5px solid transparent;\\r\\n border-bottom: 5px solid black;\\r\\n position: relative;\\r\\n top: -26%;\\r\\n left: 1%;\\r\\n}\\r\\n\\r\\n.arrow-down {\\r\\n width: 0;\\r\\n height: 0;\\r\\n border-left: 5px solid transparent;\\r\\n border-right: 5px solid transparent;\\r\\n border-top: 5px solid #f00;\\r\\n position: relative;\\r\\n top: 26%;\\r\\n left: 1%;\\r\\n}\"\n\n/***/ },\n/* 658 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar dom_events_1 = __webpack_require__(329);\r\n\tvar auth_service_1 = __webpack_require__(299);\r\n\tvar date_service_1 = __webpack_require__(583);\r\n\tvar pager_service_1 = __webpack_require__(334);\r\n\tvar common_1 = __webpack_require__(44);\r\n\tvar users_service_1 = __webpack_require__(333);\r\n\tvar conversions_service_1 = __webpack_require__(378);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar router_1 = __webpack_require__(284);\r\n\tvar region_service_1 = __webpack_require__(391);\r\n\tvar GoLiveReportComponent = (function () {\r\n\t function GoLiveReportComponent(domEvents, auth, dateService, pagerService, datePipe, usersService, ConversionsService, snackBar, router, regionService) {\r\n\t this.domEvents = domEvents;\r\n\t this.auth = auth;\r\n\t this.dateService = dateService;\r\n\t this.pagerService = pagerService;\r\n\t this.datePipe = datePipe;\r\n\t this.usersService = usersService;\r\n\t this.ConversionsService = ConversionsService;\r\n\t this.snackBar = snackBar;\r\n\t this.router = router;\r\n\t this.regionService = regionService;\r\n\t this.months = [];\r\n\t this.today = new Date();\r\n\t this.toDate = new Date(this.today.getFullYear(), this.today.getMonth(), this.today.getDate());\r\n\t this.fromDate = new Date(\"01-01-2017\");\r\n\t this.planTime = null;\r\n\t this.hasMoreResults = false;\r\n\t this.selectedToDate = '';\r\n\t this.selectedFromDate = '';\r\n\t this.myDatePickerOptions = {\r\n\t dateFormat: 'yyyy-mm-dd',\r\n\t inline: false,\r\n\t markCurrentDay: true,\r\n\t openSelectorOnInputClick: true\r\n\t };\r\n\t this.pageIndex = 0;\r\n\t this.tokens = [\"\"];\r\n\t this.searchText = '';\r\n\t this.conversionPassesLoader = null;\r\n\t this.isLoading = false;\r\n\t this.goLiveCount = 0;\r\n\t this.download = false;\r\n\t }\r\n\t GoLiveReportComponent.prototype.downloadFile = function (data, filename) {\r\n\t if (filename === void 0) { filename = 'data'; }\r\n\t var arrHeader = [\"restricted\", \"siteId\", \"siteName\", \"region\", \"deployment\", \"projectCode\", \"projectType\", \"fromVersion\", \"toVersion\", \"passNumber\", \"plannedDate\", \"startDate\", \"endDate\", \"conversionStatus\", \"totalDuration\", \"conversionUrl\"];\r\n\t var csvData = this.ConvertToCSV(data, arrHeader);\r\n\t var blob = new Blob(['\\ufeff' + csvData], { type: 'text/csv;charset=utf-8;' });\r\n\t var dwldLink = document.createElement(\"a\");\r\n\t var url = URL.createObjectURL(blob);\r\n\t var isSafariBrowser = navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1;\r\n\t if (isSafariBrowser) {\r\n\t dwldLink.setAttribute(\"target\", \"_blank\");\r\n\t }\r\n\t dwldLink.setAttribute(\"href\", url);\r\n\t dwldLink.setAttribute(\"download\", filename);\r\n\t dwldLink.style.visibility = \"hidden\";\r\n\t document.body.appendChild(dwldLink);\r\n\t dwldLink.click();\r\n\t document.body.removeChild(dwldLink);\r\n\t };\r\n\t GoLiveReportComponent.prototype.ConvertToCSV = function (objArray, headerList) {\r\n\t var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;\r\n\t var str = '';\r\n\t var row = 'S.No,';\r\n\t var newHeaders = [\"ITAR\", \"Site ID\", \"Site Name\", \"Region\", \"Deployment\", \"Project Code\", \"Project Type\", \"From Version\", \"To Version\", \"Pass Number\", \"GoLive Date\", \"Start Date\", \"Completed Date\", \"Status\", \"Duration (in Hrs)\", \"Conversion Url\"];\r\n\t for (var index in newHeaders) {\r\n\t row += newHeaders[index] + ',';\r\n\t }\r\n\t row = row.slice(0, -1);\r\n\t str += row + '\\r\\n';\r\n\t for (var i = 0; i < array.length; i++) {\r\n\t var line = (i + 1) + '';\r\n\t for (var index in headerList) {\r\n\t var head = headerList[index];\r\n\t line += ',' + this.strRep(array[i][head], head);\r\n\t }\r\n\t str += line + '\\r\\n';\r\n\t }\r\n\t return str;\r\n\t };\r\n\t GoLiveReportComponent.prototype.strRep = function (data, header) {\r\n\t if (header.indexOf('Date') !== -1 && !isNaN(Date.parse(data)) == true) {\r\n\t return this.datePipe.transform(data, 'MMM dd yyyy hh:mm aa');\r\n\t }\r\n\t else if (header == \"restricted\") {\r\n\t if (data)\r\n\t return 'Yes';\r\n\t else\r\n\t return 'No';\r\n\t }\r\n\t else if (typeof data == \"undefined\") {\r\n\t return \"-\";\r\n\t }\r\n\t else if (typeof data == \"number\") {\r\n\t return data.toString();\r\n\t }\r\n\t else if (typeof data == \"string\") {\r\n\t var newData = data.replace(/,/g, \" \");\r\n\t return newData;\r\n\t }\r\n\t else {\r\n\t return data;\r\n\t }\r\n\t };\r\n\t GoLiveReportComponent.prototype.ngOnInit = function () {\r\n\t this.domEvents.triggerOnDocument(\"appready\");\r\n\t this.getRegions();\r\n\t this.duration = 'currentMonth';\r\n\t this.golivestatus = 'success';\r\n\t this.teststatus = 'success';\r\n\t };\r\n\t GoLiveReportComponent.prototype.viewConversionPass = function (conversionPass) {\r\n\t if (conversionPass) {\r\n\t this.router.navigate([\"/conversions/\" + conversionPass.conversionId + \"/passes/\" + conversionPass.passNumber]);\r\n\t }\r\n\t };\r\n\t GoLiveReportComponent.prototype.getRegions = function () {\r\n\t var _this = this;\r\n\t this.regionService.getRegions().subscribe(function (regions) {\r\n\t _this.regions = regions;\r\n\t });\r\n\t };\r\n\t GoLiveReportComponent.prototype.getGoLive = function (searchText, token) {\r\n\t var _this = this;\r\n\t if (searchText === void 0) { searchText = \"\"; }\r\n\t if (token === void 0) { token = \"\"; }\r\n\t var pageSize = 25;\r\n\t var fromDate = this.selectedFromDate;\r\n\t var toDate = this.selectedToDate;\r\n\t var download = this.download;\r\n\t this.conversionPassesLoader = false;\r\n\t this.isLoading = true;\r\n\t var goliveConversionStatus = this.golivestatus;\r\n\t var testConversionStatus = this.teststatus;\r\n\t this.ConversionsService.getConversionGoLive({ searchText: searchText, token: token, fromDate: fromDate, toDate: toDate, goliveConversionStatus: goliveConversionStatus, testConversionStatus: testConversionStatus, pageSize: pageSize, download: download }).subscribe(function (response) {\r\n\t _this.conversions = response.result;\r\n\t _this.hasMoreResults = response.hasMoreResults;\r\n\t if (_this.conversions.length > 0) {\r\n\t _this.goLiveCount = _this.conversions.length;\r\n\t }\r\n\t if (response.requestContinuation != null) {\r\n\t var token_1 = JSON.parse(response.requestContinuation).token;\r\n\t if (token_1 == null) {\r\n\t token_1 = JSON.parse(response.requestContinuation)[0].token;\r\n\t }\r\n\t if (typeof _this.tokens[_this.pageIndex + 1] === 'undefined') {\r\n\t _this.tokens.push(token_1);\r\n\t }\r\n\t }\r\n\t _this.conversionPassesLoader = true;\r\n\t _this.isLoading = false;\r\n\t _this.ConversionsService.getGoLiveCount({ searchText: searchText, token: token, fromDate: fromDate, toDate: toDate, goliveConversionStatus: goliveConversionStatus, testConversionStatus: testConversionStatus }).subscribe(function (response) {\r\n\t _this.goLiveCount = response.result;\r\n\t });\r\n\t });\r\n\t };\r\n\t GoLiveReportComponent.prototype.exportAsCsv = function () {\r\n\t var _this = this;\r\n\t var pageSize = 25;\r\n\t var fromDate = this.selectedFromDate;\r\n\t var toDate = this.selectedToDate;\r\n\t var download = true;\r\n\t var searchText = this.searchText;\r\n\t var token = \"\";\r\n\t var filename = \"GoLiveReport_\" + this.selectedFromDate + \"_\" + this.selectedToDate + \".csv\";\r\n\t var goliveConversionStatus = this.golivestatus;\r\n\t var testConversionStatus = this.teststatus;\r\n\t var snackBarDownloading = this.snackBar.open(\"Please wait. File \" + filename + \" is downloading..\");\r\n\t this.ConversionsService.getConversionGoLive({ searchText: searchText, token: token, fromDate: fromDate, toDate: toDate, goliveConversionStatus: goliveConversionStatus, testConversionStatus: testConversionStatus, pageSize: pageSize, download: download }).subscribe(function (response) {\r\n\t var conversions = response.result;\r\n\t _this.downloadFile(conversions, filename);\r\n\t var snackBarDownloaded = _this.snackBar.open(\"File \" + filename + \" is successfully downloaded.\", null, {\r\n\t duration: 2000\r\n\t });\r\n\t });\r\n\t };\r\n\t GoLiveReportComponent.prototype.onSubmit = function () {\r\n\t this.goLiveCount = 0;\r\n\t var durationDate = new Date();\r\n\t if (this.duration == 'currentMonth') {\r\n\t this.durationStartDate = new Date(durationDate.getFullYear(), durationDate.getMonth(), 1);\r\n\t this.durationEndDate = new Date(this.durationStartDate.getFullYear(), this.durationStartDate.getMonth() + 1, 0);\r\n\t }\r\n\t if (this.duration == 'previousMonth') {\r\n\t this.durationStartDate = new Date(durationDate.getFullYear(), durationDate.getMonth() - 1, 1);\r\n\t this.durationEndDate = new Date(durationDate.getFullYear(), durationDate.getMonth(), 1);\r\n\t }\r\n\t if (this.duration == 'period') {\r\n\t if (this.fromDate == null || this.toDate == null) {\r\n\t alert('Please select valid date');\r\n\t return;\r\n\t }\r\n\t else {\r\n\t this.durationStartDate = new Date(this.fromDate.toString());\r\n\t this.durationEndDate = new Date(this.toDate.toString());\r\n\t }\r\n\t }\r\n\t if (this.duration == 'currentYear') {\r\n\t this.durationStartDate = new Date(durationDate.getFullYear(), 0, 1);\r\n\t this.durationEndDate = new Date(durationDate.getFullYear(), durationDate.getMonth(), durationDate.getDate());\r\n\t }\r\n\t if (this.duration == 'previousYear') {\r\n\t this.durationStartDate = new Date(durationDate.getFullYear() - 1, 0, 1);\r\n\t this.durationEndDate = new Date(durationDate.getFullYear(), 0, 1);\r\n\t }\r\n\t if (this.duration == 'all') {\r\n\t this.durationStartDate = new Date(2017, 0, 1);\r\n\t this.durationEndDate = new Date(durationDate.getFullYear(), durationDate.getMonth(), durationDate.getDate());\r\n\t }\r\n\t var fyear = this.durationStartDate.getFullYear();\r\n\t var fmonth = (this.durationStartDate.getMonth() + 1).toString();\r\n\t var fday = this.durationStartDate.getDate().toString();\r\n\t this.selectedFromDate = fyear + \"-\" + fmonth + \"-\" + fday;\r\n\t var toDate = new Date(this.durationEndDate.getFullYear(), this.durationEndDate.getMonth(), this.durationEndDate.getDate() + 1);\r\n\t var tyear = toDate.getFullYear();\r\n\t var tmonth = (toDate.getMonth() + 1).toString();\r\n\t var tday = toDate.getDate().toString();\r\n\t this.selectedToDate = tyear + \"-\" + tmonth + \"-\" + tday;\r\n\t if (this.durationStartDate > this.durationEndDate) {\r\n\t alert('From Date should be less than End Date');\r\n\t this.fromDate = null;\r\n\t this.toDate = null;\r\n\t return;\r\n\t }\r\n\t this.getGoLive(this.searchText);\r\n\t };\r\n\t GoLiveReportComponent.prototype.previous = function () {\r\n\t this.pageIndex -= 1;\r\n\t var token = this.tokens[this.pageIndex];\r\n\t if (typeof token !== 'undefined') {\r\n\t this.getGoLive(this.searchText, token);\r\n\t }\r\n\t else {\r\n\t this.pageIndex += 1;\r\n\t }\r\n\t };\r\n\t GoLiveReportComponent.prototype.next = function () {\r\n\t this.pageIndex += 1;\r\n\t var token = this.tokens[this.pageIndex];\r\n\t if (typeof token !== 'undefined') {\r\n\t this.getGoLive(this.searchText, token);\r\n\t }\r\n\t else {\r\n\t this.pageIndex -= 1;\r\n\t }\r\n\t };\r\n\t GoLiveReportComponent.prototype.filterConversion = function () {\r\n\t var _this = this;\r\n\t this.searchTimeout = setTimeout(function () {\r\n\t _this.pageIndex = 0;\r\n\t _this.tokens = [\"\"];\r\n\t var token = _this.tokens[_this.pageIndex];\r\n\t _this.getGoLive(_this.searchText, token);\r\n\t }, 500);\r\n\t };\r\n\t GoLiveReportComponent.prototype.getStatusIconColor = function (status) {\r\n\t var color = '';\r\n\t switch (status) {\r\n\t case \"Stopped\":\r\n\t color = 'red';\r\n\t break;\r\n\t case \"Completed\":\r\n\t color = 'green';\r\n\t break;\r\n\t }\r\n\t return color;\r\n\t };\r\n\t GoLiveReportComponent.prototype.getStatusIcon = function (status) {\r\n\t var icon = '';\r\n\t switch (status) {\r\n\t case \"Stopped\":\r\n\t icon = 'cancel';\r\n\t break;\r\n\t case \"Completed\":\r\n\t icon = 'check_circle';\r\n\t break;\r\n\t case \"InProgress\":\r\n\t icon = 'update';\r\n\t break;\r\n\t }\r\n\t return icon;\r\n\t };\r\n\t GoLiveReportComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'golive-report',\r\n\t template: __webpack_require__(659),\r\n\t styles: [__webpack_require__(660)],\r\n\t providers: [date_service_1.DateService, pager_service_1.PagerService, common_1.DatePipe, users_service_1.UsersService, conversions_service_1.ConversionsService, region_service_1.RegionService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [dom_events_1.DOMEvents,\r\n\t auth_service_1.AuthService,\r\n\t date_service_1.DateService,\r\n\t pager_service_1.PagerService,\r\n\t common_1.DatePipe,\r\n\t users_service_1.UsersService,\r\n\t conversions_service_1.ConversionsService,\r\n\t material_1.MdSnackBar,\r\n\t router_1.Router,\r\n\t region_service_1.RegionService])\r\n\t ], GoLiveReportComponent);\r\n\t return GoLiveReportComponent;\r\n\t}());\r\n\texports.GoLiveReportComponent = GoLiveReportComponent;\r\n\n\n/***/ },\n/* 659 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"Go Live Report ({{goLiveCount}})\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Success\\r\\n Failed\\r\\n All\\r\\n None\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Success\\r\\n Failed\\r\\n All\\r\\n None\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Current Month\\r\\n Previous Month\\r\\n Duration\\r\\n Current Year\\r\\n Previous Year\\r\\n All\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Site IDSite NameDescriptionPass NumberGoLive DateStart DateEnd DateStatus
security{{conversion?.siteId}}{{conversion?.siteName}}{{conversion?.fromProduct}} {{conversion?.fromVersion}} to {{conversion?.toProduct}} {{conversion?.toVersion}} Go-LiveTest {{ conversion?.passNumber }}{{conversion.plannedDate | date:'MM/dd/yyyy'}}{{conversion.startDate | date:'MM/dd/yyyy'}}{{conversion.endDate | date:'MM/dd/yyyy'}}\\r\\n
\\r\\n {{ getStatusIcon(conversion?.conversionStatus) }}\\r\\n {{ conversion?.conversionStatus }}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n \";\n\n/***/ },\n/* 660 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"a {\\r\\n color: #0078d7;\\r\\n }\\r\\n \\r\\n a:hover {\\r\\n text-decoration: underline;\\r\\n }\"\n\n/***/ },\n/* 661 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar configurators_pipe_1 = __webpack_require__(458);\r\n\tvar customisations_pipe_1 = __webpack_require__(461);\r\n\tvar user_provision_pipe_1 = __webpack_require__(662);\r\n\tvar reports_pipe_1 = __webpack_require__(663);\r\n\tvar customTables_pipe_1 = __webpack_require__(664);\r\n\tvar licenses_pipe_1 = __webpack_require__(665);\r\n\tvar number_pipe_1 = __webpack_require__(666);\r\n\tvar conversions_pipe_1 = __webpack_require__(567);\r\n\tvar reportorderby_pipe_1 = __webpack_require__(667);\r\n\tvar reportgroupby_pipe_1 = __webpack_require__(668);\r\n\tvar reportfilter_pipe_1 = __webpack_require__(669);\r\n\tvar bpms_search_pipe_1 = __webpack_require__(442);\r\n\tvar baqs_search_pipe_1 = __webpack_require__(670);\r\n\tvar menus_search_pipe_1 = __webpack_require__(671);\r\n\tvar udforms_search_pipe_1 = __webpack_require__(672);\r\n\tvar sdk_search_pipe_1 = __webpack_require__(673);\r\n\tvar userDefinedTables_search_pipe_1 = __webpack_require__(674);\r\n\tvar customTriggers_search_pipe_1 = __webpack_require__(675);\r\n\tvar bankInterfaces_search_pipe_1 = __webpack_require__(676);\r\n\tvar externalReports_search_pipe_1 = __webpack_require__(677);\r\n\tvar changelogs_search_pipe_1 = __webpack_require__(678);\r\n\tvar apmObjects_search_pipe_1 = __webpack_require__(679);\r\n\texports.AppPipes = [\r\n\t configurators_pipe_1.FilterConfiguratorPipe,\r\n\t customisations_pipe_1.FilterCustomisationPipe,\r\n\t user_provision_pipe_1.FilterProvisionSitesPipe,\r\n\t reports_pipe_1.FilterReportsPipe,\r\n\t customTables_pipe_1.FilterCustomTablePipe,\r\n\t licenses_pipe_1.FilterLicensesPipe,\r\n\t number_pipe_1.RoundNumberPipe,\r\n\t conversions_pipe_1.FilterConvesionPassLogByType,\r\n\t conversions_pipe_1.FilterConversionPassByStatus,\r\n\t reportorderby_pipe_1.ReportOrderByPipe,\r\n\t reportgroupby_pipe_1.ReportGroupByPipe,\r\n\t reportfilter_pipe_1.ReportFilterPipe,\r\n\t bpms_search_pipe_1.BPMsSearchPipe,\r\n\t baqs_search_pipe_1.BAQsSearchPipe,\r\n\t menus_search_pipe_1.MenusSearchPipe,\r\n\t udforms_search_pipe_1.UDFormSearchPipe,\r\n\t sdk_search_pipe_1.SdkSearchPipe,\r\n\t bankInterfaces_search_pipe_1.BankInterfaceSearchPipe,\r\n\t externalReports_search_pipe_1.ExternalReportSearchPipe,\r\n\t changelogs_search_pipe_1.ChangeLogsSearchPipe,\r\n\t apmObjects_search_pipe_1.APMObjectSearchPipe,\r\n\t userDefinedTables_search_pipe_1.UserDefinedTablesSearchPipe,\r\n\t customTriggers_search_pipe_1.CustomTriggerSearchPipe\r\n\t];\r\n\n\n/***/ },\n/* 662 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar FilterProvisionSitesPipe = (function () {\r\n\t function FilterProvisionSitesPipe() {\r\n\t }\r\n\t FilterProvisionSitesPipe.prototype.transform = function (sites, query, custType) {\r\n\t if (query === '') {\r\n\t return sites.filter(function (s) {\r\n\t if (s.detail.custType === custType) {\r\n\t return s;\r\n\t }\r\n\t });\r\n\t }\r\n\t return sites.filter(function (s) {\r\n\t return (s.id.toString().indexOf(query) !== -1 ||\r\n\t s.detail.orgName.toLowerCase().indexOf(query.toLowerCase()) !== -1) &&\r\n\t s.detail.custType === custType;\r\n\t });\r\n\t };\r\n\t FilterProvisionSitesPipe = __decorate([\r\n\t core_1.Pipe({ name: 'filterProvisionSites' })\r\n\t ], FilterProvisionSitesPipe);\r\n\t return FilterProvisionSitesPipe;\r\n\t}());\r\n\texports.FilterProvisionSitesPipe = FilterProvisionSitesPipe;\r\n\n\n/***/ },\n/* 663 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar FilterReportsPipe = (function () {\r\n\t function FilterReportsPipe() {\r\n\t }\r\n\t FilterReportsPipe.prototype.transform = function (reports, query) {\r\n\t if (query === '') {\r\n\t return reports;\r\n\t }\r\n\t return reports.filter(function (r) {\r\n\t return r.siteId.toString().indexOf(query.toString()) !== -1 ||\r\n\t r.siteName.toLowerCase().indexOf(query.toLowerCase()) !== -1;\r\n\t });\r\n\t };\r\n\t FilterReportsPipe = __decorate([\r\n\t core_1.Pipe({ name: 'filterReports' })\r\n\t ], FilterReportsPipe);\r\n\t return FilterReportsPipe;\r\n\t}());\r\n\texports.FilterReportsPipe = FilterReportsPipe;\r\n\n\n/***/ },\n/* 664 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar FilterCustomTablePipe = (function () {\r\n\t function FilterCustomTablePipe() {\r\n\t }\r\n\t FilterCustomTablePipe.prototype.transform = function (customTable, query) {\r\n\t if (query === '') {\r\n\t return customTable;\r\n\t }\r\n\t return customTable.filter(function (c) {\r\n\t return c.name.toLowerCase().indexOf(query.toLowerCase()) !== -1;\r\n\t });\r\n\t };\r\n\t FilterCustomTablePipe = __decorate([\r\n\t core_1.Pipe({ name: 'filterCustomTable' })\r\n\t ], FilterCustomTablePipe);\r\n\t return FilterCustomTablePipe;\r\n\t}());\r\n\texports.FilterCustomTablePipe = FilterCustomTablePipe;\r\n\n\n/***/ },\n/* 665 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar FilterLicensesPipe = (function () {\r\n\t function FilterLicensesPipe() {\r\n\t }\r\n\t FilterLicensesPipe.prototype.transform = function (licenses, query) {\r\n\t if (query === '') {\r\n\t return licenses;\r\n\t }\r\n\t return licenses.filter(function (l) {\r\n\t return l.name.toLowerCase().indexOf(query.toLowerCase()) !== -1;\r\n\t });\r\n\t };\r\n\t FilterLicensesPipe = __decorate([\r\n\t core_1.Pipe({ name: 'filterLicenses' })\r\n\t ], FilterLicensesPipe);\r\n\t return FilterLicensesPipe;\r\n\t}());\r\n\texports.FilterLicensesPipe = FilterLicensesPipe;\r\n\n\n/***/ },\n/* 666 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar RoundNumberPipe = (function () {\r\n\t function RoundNumberPipe() {\r\n\t }\r\n\t RoundNumberPipe.prototype.transform = function (value) {\r\n\t return Math.round(value);\r\n\t };\r\n\t RoundNumberPipe = __decorate([\r\n\t core_1.Pipe({ name: 'roundNumber' })\r\n\t ], RoundNumberPipe);\r\n\t return RoundNumberPipe;\r\n\t}());\r\n\texports.RoundNumberPipe = RoundNumberPipe;\r\n\n\n/***/ },\n/* 667 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar ReportOrderByPipe = (function () {\r\n\t function ReportOrderByPipe() {\r\n\t }\r\n\t ReportOrderByPipe.prototype.transform = function (records, args) {\r\n\t return records.sort(function (a, b) {\r\n\t if (a[args.property] < b[args.property]) {\r\n\t return -1 * args.direction;\r\n\t }\r\n\t else if (a[args.property] > b[args.property]) {\r\n\t return 1 * args.direction;\r\n\t }\r\n\t else {\r\n\t return 0;\r\n\t }\r\n\t });\r\n\t };\r\n\t ;\r\n\t ReportOrderByPipe = __decorate([\r\n\t core_1.Pipe({ name: 'reportorderby' })\r\n\t ], ReportOrderByPipe);\r\n\t return ReportOrderByPipe;\r\n\t}());\r\n\texports.ReportOrderByPipe = ReportOrderByPipe;\r\n\n\n/***/ },\n/* 668 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar ReportGroupByPipe = (function () {\r\n\t function ReportGroupByPipe() {\r\n\t }\r\n\t ReportGroupByPipe.prototype.transform = function (value, field) {\r\n\t var tempValue = [];\r\n\t var groupedObj = value.reduce(function (prev, cur) {\r\n\t if (!prev[cur[field]]) {\r\n\t prev[cur[field]] = [cur];\r\n\t }\r\n\t else {\r\n\t prev[cur[field]].push(cur);\r\n\t }\r\n\t return prev;\r\n\t }, {});\r\n\t return Object.keys(groupedObj).map(function (key) { return ({ key: key, value: groupedObj[key] }); });\r\n\t };\r\n\t ReportGroupByPipe = __decorate([\r\n\t core_1.Pipe({\r\n\t name: 'reportgroupby'\r\n\t })\r\n\t ], ReportGroupByPipe);\r\n\t return ReportGroupByPipe;\r\n\t}());\r\n\texports.ReportGroupByPipe = ReportGroupByPipe;\r\n\n\n/***/ },\n/* 669 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar ReportFilterPipe = (function () {\r\n\t function ReportFilterPipe() {\r\n\t }\r\n\t ReportFilterPipe.prototype.transform = function (items, searchField) {\r\n\t var filteredList = [];\r\n\t if (searchField == undefined) {\r\n\t return items;\r\n\t }\r\n\t else if (items && items.length) {\r\n\t items.forEach(function (item) {\r\n\t if (searchField != null) {\r\n\t var splitIDs = searchField.split(',');\r\n\t splitIDs.forEach(function (id) {\r\n\t if (id.length > 0) {\r\n\t if (item.rowIndex == id) {\r\n\t filteredList.push(item);\r\n\t }\r\n\t }\r\n\t else {\r\n\t filteredList.push(item);\r\n\t }\r\n\t });\r\n\t }\r\n\t });\r\n\t return filteredList;\r\n\t }\r\n\t else {\r\n\t return items;\r\n\t }\r\n\t };\r\n\t ReportFilterPipe = __decorate([\r\n\t core_1.Pipe({\r\n\t name: 'reportfilter'\r\n\t })\r\n\t ], ReportFilterPipe);\r\n\t return ReportFilterPipe;\r\n\t}());\r\n\texports.ReportFilterPipe = ReportFilterPipe;\r\n\n\n/***/ },\n/* 670 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar baqs_modaldialog_1 = __webpack_require__(443);\r\n\tvar BAQsSearchPipe = (function () {\r\n\t function BAQsSearchPipe() {\r\n\t }\r\n\t BAQsSearchPipe.prototype.transform = function (items, Search) {\r\n\t var search = Object.keys(Search[0]).toString();\r\n\t if (items && items.length) {\r\n\t return items.filter(function (item) {\r\n\t if (search.toString() == baqs_modaldialog_1.BAQsFilterColumnName[baqs_modaldialog_1.BAQsFilterColumnName.Company]) {\r\n\t if (Search[0].Company && item.key.toString().toLowerCase().indexOf(Search[0].Company) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == baqs_modaldialog_1.BAQsFilterColumnName[baqs_modaldialog_1.BAQsFilterColumnName.QueryId]) {\r\n\t if (Search[0].QueryId && item.key.toString().toLowerCase().indexOf(Search[0].QueryId) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == baqs_modaldialog_1.BAQsFilterColumnName[baqs_modaldialog_1.BAQsFilterColumnName.Description]) {\r\n\t if (Search[0].Description && item.key.toString().toLowerCase().indexOf(Search[0].Description) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == baqs_modaldialog_1.BAQsFilterColumnName[baqs_modaldialog_1.BAQsFilterColumnName.Author]) {\r\n\t if (Search[0].Author && item.key.toString().toLowerCase().indexOf(Search[0].Author) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == baqs_modaldialog_1.BAQsFilterColumnName[baqs_modaldialog_1.BAQsFilterColumnName.Complexity]) {\r\n\t if (Search[0].Complexity && item.key.toString().toLowerCase().indexOf(Search[0].Complexity) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == baqs_modaldialog_1.BAQsFilterColumnName[baqs_modaldialog_1.BAQsFilterColumnName.Compatible]) {\r\n\t if (Search[0].Compatible && item.key.toString().toLowerCase().indexOf(Search[0].Compatible) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == baqs_modaldialog_1.BAQsFilterColumnName[baqs_modaldialog_1.BAQsFilterColumnName.Shared]) {\r\n\t if (Search[0].Shared && item.key.toString().toLowerCase().indexOf(Search[0].Shared) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == baqs_modaldialog_1.BAQsFilterColumnName[baqs_modaldialog_1.BAQsFilterColumnName.Tables]) {\r\n\t if (Search[0].Tables && item.key.toString().toLowerCase().indexOf(Search[0].Tables) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == baqs_modaldialog_1.BAQsFilterColumnName[baqs_modaldialog_1.BAQsFilterColumnName.External]) {\r\n\t if (Search[0].External && item.key.toString().toLowerCase().indexOf(Search[0].External) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t return true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t return items;\r\n\t }\r\n\t };\r\n\t BAQsSearchPipe = __decorate([\r\n\t core_1.Pipe({\r\n\t name: 'baqssearch'\r\n\t })\r\n\t ], BAQsSearchPipe);\r\n\t return BAQsSearchPipe;\r\n\t}());\r\n\texports.BAQsSearchPipe = BAQsSearchPipe;\r\n\n\n/***/ },\n/* 671 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar menus_dialog_1 = __webpack_require__(444);\r\n\tvar MenusSearchPipe = (function () {\r\n\t function MenusSearchPipe() {\r\n\t }\r\n\t MenusSearchPipe.prototype.transform = function (items, Search) {\r\n\t var search = Object.keys(Search[0]).toString();\r\n\t if (items && items.length) {\r\n\t return items.filter(function (item) {\r\n\t if (search.toString() == menus_dialog_1.MenusFilterColumnName[menus_dialog_1.MenusFilterColumnName.ID]) {\r\n\t if (Search[0].ID && item.key.toString().toLowerCase().indexOf(Search[0].ID) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == menus_dialog_1.MenusFilterColumnName[menus_dialog_1.MenusFilterColumnName.Name]) {\r\n\t if (Search[0].Name && item.key.toString().toLowerCase().indexOf(Search[0].Name) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == menus_dialog_1.MenusFilterColumnName[menus_dialog_1.MenusFilterColumnName.Program]) {\r\n\t if (Search[0].Program && item.key.toString().toLowerCase().indexOf(Search[0].Program) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == menus_dialog_1.MenusFilterColumnName[menus_dialog_1.MenusFilterColumnName.Arguments]) {\r\n\t if (Search[0].Arguments && item.key.toString().toLowerCase().indexOf(Search[0].Arguments) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t return true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t return items;\r\n\t }\r\n\t };\r\n\t MenusSearchPipe = __decorate([\r\n\t core_1.Pipe({\r\n\t name: 'menussearch'\r\n\t })\r\n\t ], MenusSearchPipe);\r\n\t return MenusSearchPipe;\r\n\t}());\r\n\texports.MenusSearchPipe = MenusSearchPipe;\r\n\n\n/***/ },\n/* 672 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar udforms_modaldialog_1 = __webpack_require__(445);\r\n\tvar UDFormSearchPipe = (function () {\r\n\t function UDFormSearchPipe() {\r\n\t }\r\n\t UDFormSearchPipe.prototype.transform = function (items, Search) {\r\n\t var search = Object.keys(Search[0]).toString();\r\n\t if (items && items.length) {\r\n\t return items.filter(function (item) {\r\n\t if (search.toString() == udforms_modaldialog_1.UDFormsFilterColumnName[udforms_modaldialog_1.UDFormsFilterColumnName.Name]) {\r\n\t if (Search[0].Name && item.key.toString().toLowerCase().indexOf(Search[0].Name) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == udforms_modaldialog_1.UDFormsFilterColumnName[udforms_modaldialog_1.UDFormsFilterColumnName.Description]) {\r\n\t if (Search[0].Description && item.key.toString().toLowerCase().indexOf(Search[0].Description) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == udforms_modaldialog_1.UDFormsFilterColumnName[udforms_modaldialog_1.UDFormsFilterColumnName.Rows]) {\r\n\t if (Search[0].Rows && item.key.toString().toLowerCase().indexOf(Search[0].Rows) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t return true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t return items;\r\n\t }\r\n\t };\r\n\t UDFormSearchPipe = __decorate([\r\n\t core_1.Pipe({\r\n\t name: 'udformsearch'\r\n\t })\r\n\t ], UDFormSearchPipe);\r\n\t return UDFormSearchPipe;\r\n\t}());\r\n\texports.UDFormSearchPipe = UDFormSearchPipe;\r\n\n\n/***/ },\n/* 673 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar sdk_modaldialog_1 = __webpack_require__(512);\r\n\tvar SdkSearchPipe = (function () {\r\n\t function SdkSearchPipe() {\r\n\t }\r\n\t SdkSearchPipe.prototype.transform = function (items, Search) {\r\n\t var search = Object.keys(Search[0]).toString();\r\n\t if (items && items.length) {\r\n\t return items.filter(function (item) {\r\n\t if (search.toString() == sdk_modaldialog_1.SdkFilterColumnName[sdk_modaldialog_1.SdkFilterColumnName.ClassName]) {\r\n\t if (Search[0].ClassName && item.key.toString().toLowerCase().indexOf(Search[0].ClassName) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == sdk_modaldialog_1.SdkFilterColumnName[sdk_modaldialog_1.SdkFilterColumnName.Description]) {\r\n\t if (Search[0].Description && item.key.toString().toLowerCase().indexOf(Search[0].Description) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == sdk_modaldialog_1.SdkFilterColumnName[sdk_modaldialog_1.SdkFilterColumnName.ClassType]) {\r\n\t if (Search[0].ClassType && item.key.toString().toLowerCase().indexOf(Search[0].ClassType) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t return true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t return items;\r\n\t }\r\n\t };\r\n\t SdkSearchPipe = __decorate([\r\n\t core_1.Pipe({\r\n\t name: 'sdksearch'\r\n\t })\r\n\t ], SdkSearchPipe);\r\n\t return SdkSearchPipe;\r\n\t}());\r\n\texports.SdkSearchPipe = SdkSearchPipe;\r\n\n\n/***/ },\n/* 674 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar userDefinedTables_modaldialog_1 = __webpack_require__(449);\r\n\tvar UserDefinedTablesSearchPipe = (function () {\r\n\t function UserDefinedTablesSearchPipe() {\r\n\t }\r\n\t UserDefinedTablesSearchPipe.prototype.transform = function (items, Search) {\r\n\t var search = Object.keys(Search[0]).toString();\r\n\t if (items && items.length) {\r\n\t return items.filter(function (item) {\r\n\t if (search.toString() == userDefinedTables_modaldialog_1.UserDefinedTablesFilterColumnName[userDefinedTables_modaldialog_1.UserDefinedTablesFilterColumnName.Name]) {\r\n\t if (Search[0].Name && item.key.toString().toLowerCase().indexOf(Search[0].Name) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == userDefinedTables_modaldialog_1.UserDefinedTablesFilterColumnName[userDefinedTables_modaldialog_1.UserDefinedTablesFilterColumnName.RowCount]) {\r\n\t if (Search[0].RowCount && item.key.toString().toLowerCase().indexOf(Search[0].RowCount) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t return true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t return items;\r\n\t }\r\n\t };\r\n\t UserDefinedTablesSearchPipe = __decorate([\r\n\t core_1.Pipe({\r\n\t name: 'userDefinedTables'\r\n\t })\r\n\t ], UserDefinedTablesSearchPipe);\r\n\t return UserDefinedTablesSearchPipe;\r\n\t}());\r\n\texports.UserDefinedTablesSearchPipe = UserDefinedTablesSearchPipe;\r\n\n\n/***/ },\n/* 675 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar customTriggers_modaldialog_1 = __webpack_require__(450);\r\n\tvar CustomTriggerSearchPipe = (function () {\r\n\t function CustomTriggerSearchPipe() {\r\n\t }\r\n\t CustomTriggerSearchPipe.prototype.transform = function (items, Search) {\r\n\t var search = Object.keys(Search[0]).toString();\r\n\t var tempItem = [];\r\n\t if (items && items.length) {\r\n\t return items.filter(function (item) {\r\n\t if (search.toString() == customTriggers_modaldialog_1.CustomTriggersFilterColumnName[customTriggers_modaldialog_1.CustomTriggersFilterColumnName.Name]) {\r\n\t if (Search[0].Name && item.key.toString().toLowerCase().indexOf(Search[0].Name) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t if (search.toString() == customTriggers_modaldialog_1.CustomTriggersFilterColumnName[customTriggers_modaldialog_1.CustomTriggersFilterColumnName.TableName]) {\r\n\t if (Search[0].TableName && item.key.toString().toLowerCase().indexOf(Search[0].TableName) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == customTriggers_modaldialog_1.CustomTriggersFilterColumnName[customTriggers_modaldialog_1.CustomTriggersFilterColumnName.LOC]) {\r\n\t if (Search[0].LOC && item.key.toString().toLowerCase().indexOf(Search[0].LOC) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == customTriggers_modaldialog_1.CustomTriggersFilterColumnName[customTriggers_modaldialog_1.CustomTriggersFilterColumnName.Complexity]) {\r\n\t if (Search[0].Complexity && item.key.toString().toLowerCase().indexOf(Search[0].Complexity) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t return true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t return items;\r\n\t }\r\n\t };\r\n\t CustomTriggerSearchPipe = __decorate([\r\n\t core_1.Pipe({\r\n\t name: 'customTriggers'\r\n\t })\r\n\t ], CustomTriggerSearchPipe);\r\n\t return CustomTriggerSearchPipe;\r\n\t}());\r\n\texports.CustomTriggerSearchPipe = CustomTriggerSearchPipe;\r\n\n\n/***/ },\n/* 676 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar bankInterfaces_modaldialog_1 = __webpack_require__(446);\r\n\tvar BankInterfaceSearchPipe = (function () {\r\n\t function BankInterfaceSearchPipe() {\r\n\t }\r\n\t BankInterfaceSearchPipe.prototype.transform = function (items, Search) {\r\n\t var search = Object.keys(Search[0]).toString();\r\n\t if (items && items.length) {\r\n\t return items.filter(function (item) {\r\n\t if (search.toString() == bankInterfaces_modaldialog_1.BankInterfaceFilterColumnName[bankInterfaces_modaldialog_1.BankInterfaceFilterColumnName.Companies]) {\r\n\t if (Search[0].Companies && item.key.toString().toLowerCase().indexOf(Search[0].Companies) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == bankInterfaces_modaldialog_1.BankInterfaceFilterColumnName[bankInterfaces_modaldialog_1.BankInterfaceFilterColumnName.Name]) {\r\n\t if (Search[0].Name && item.key.toString().toLowerCase().indexOf(Search[0].Name) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == bankInterfaces_modaldialog_1.BankInterfaceFilterColumnName[bankInterfaces_modaldialog_1.BankInterfaceFilterColumnName.Type]) {\r\n\t if (Search[0].Type && item.key.toString().toLowerCase().indexOf(Search[0].Type) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == bankInterfaces_modaldialog_1.BankInterfaceFilterColumnName[bankInterfaces_modaldialog_1.BankInterfaceFilterColumnName.LOC]) {\r\n\t if (Search[0].LOC && item.key.toString().toLowerCase().indexOf(Search[0].LOC) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == bankInterfaces_modaldialog_1.BankInterfaceFilterColumnName[bankInterfaces_modaldialog_1.BankInterfaceFilterColumnName.Complexity]) {\r\n\t if (Search[0].Complexity && item.key.toString().toLowerCase().indexOf(Search[0].Complexity) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t return true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t return items;\r\n\t }\r\n\t };\r\n\t BankInterfaceSearchPipe = __decorate([\r\n\t core_1.Pipe({\r\n\t name: 'bankinterfacesearch'\r\n\t })\r\n\t ], BankInterfaceSearchPipe);\r\n\t return BankInterfaceSearchPipe;\r\n\t}());\r\n\texports.BankInterfaceSearchPipe = BankInterfaceSearchPipe;\r\n\n\n/***/ },\n/* 677 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar externalReports_modaldialog_1 = __webpack_require__(504);\r\n\tvar ExternalReportSearchPipe = (function () {\r\n\t function ExternalReportSearchPipe() {\r\n\t }\r\n\t ExternalReportSearchPipe.prototype.transform = function (items, Search) {\r\n\t var search = Object.keys(Search[0]).toString();\r\n\t if (items && items.length) {\r\n\t return items.filter(function (item) {\r\n\t if (search.toString() == externalReports_modaldialog_1.ExternalReportsFilterColumnName[externalReports_modaldialog_1.ExternalReportsFilterColumnName.Description]) {\r\n\t if (Search[0].Description && item.key.toString().toLowerCase().indexOf(Search[0].Description) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == externalReports_modaldialog_1.ExternalReportsFilterColumnName[externalReports_modaldialog_1.ExternalReportsFilterColumnName.ID]) {\r\n\t if (Search[0].ID && item.key.toString().toLowerCase().indexOf(Search[0].ID) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == externalReports_modaldialog_1.ExternalReportsFilterColumnName[externalReports_modaldialog_1.ExternalReportsFilterColumnName.Type]) {\r\n\t if (Search[0].Type && item.key.toString().toLowerCase().indexOf(Search[0].Type) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == externalReports_modaldialog_1.ExternalReportsFilterColumnName[externalReports_modaldialog_1.ExternalReportsFilterColumnName.Complexity]) {\r\n\t if (Search[0].Complexity && item.key.toString().toLowerCase().indexOf(Search[0].Complexity) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t return true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t return items;\r\n\t }\r\n\t };\r\n\t ExternalReportSearchPipe = __decorate([\r\n\t core_1.Pipe({\r\n\t name: 'externalreportsearch'\r\n\t })\r\n\t ], ExternalReportSearchPipe);\r\n\t return ExternalReportSearchPipe;\r\n\t}());\r\n\texports.ExternalReportSearchPipe = ExternalReportSearchPipe;\r\n\n\n/***/ },\n/* 678 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar changelogs_modaldialog_1 = __webpack_require__(447);\r\n\tvar ChangeLogsSearchPipe = (function () {\r\n\t function ChangeLogsSearchPipe() {\r\n\t }\r\n\t ChangeLogsSearchPipe.prototype.transform = function (items, Search) {\r\n\t var search = Object.keys(Search[0]).toString();\r\n\t if (items && items.length) {\r\n\t return items.filter(function (item) {\r\n\t if (search.toString() == changelogs_modaldialog_1.ChangeLogsFilterColumnName[changelogs_modaldialog_1.ChangeLogsFilterColumnName.Description]) {\r\n\t if (Search[0].Description && item.key.toString().toLowerCase().indexOf(Search[0].Description) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == changelogs_modaldialog_1.ChangeLogsFilterColumnName[changelogs_modaldialog_1.ChangeLogsFilterColumnName.Table]) {\r\n\t if (Search[0].Table && item.key.toString().toLowerCase().indexOf(Search[0].Table) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == changelogs_modaldialog_1.ChangeLogsFilterColumnName[changelogs_modaldialog_1.ChangeLogsFilterColumnName.Complexity]) {\r\n\t if (Search[0].Complexity && item.key.toString().toLowerCase().indexOf(Search[0].Complexity) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == changelogs_modaldialog_1.ChangeLogsFilterColumnName[changelogs_modaldialog_1.ChangeLogsFilterColumnName.LOC]) {\r\n\t if (Search[0].LOC && item.key.toString().toLowerCase().indexOf(Search[0].LOC) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t return true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t return items;\r\n\t }\r\n\t };\r\n\t ChangeLogsSearchPipe = __decorate([\r\n\t core_1.Pipe({\r\n\t name: 'changelogssearch'\r\n\t })\r\n\t ], ChangeLogsSearchPipe);\r\n\t return ChangeLogsSearchPipe;\r\n\t}());\r\n\texports.ChangeLogsSearchPipe = ChangeLogsSearchPipe;\r\n\n\n/***/ },\n/* 679 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar apmObjects_modaldialog_1 = __webpack_require__(448);\r\n\tvar APMObjectSearchPipe = (function () {\r\n\t function APMObjectSearchPipe() {\r\n\t }\r\n\t APMObjectSearchPipe.prototype.transform = function (items, Search) {\r\n\t var search = Object.keys(Search[0]).toString();\r\n\t if (items && items.length) {\r\n\t return items.filter(function (item) {\r\n\t if (search.toString() == apmObjects_modaldialog_1.APMObjectFilterColumnName[apmObjects_modaldialog_1.APMObjectFilterColumnName.DocumentID]) {\r\n\t if (Search[0].DocumentID && item.key.toString().toLowerCase().indexOf(Search[0].DocumentID) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == apmObjects_modaldialog_1.APMObjectFilterColumnName[apmObjects_modaldialog_1.APMObjectFilterColumnName.DocumentType]) {\r\n\t if (Search[0].DocumentType && item.key.toString().toLowerCase().indexOf(Search[0].DocumentType) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == apmObjects_modaldialog_1.APMObjectFilterColumnName[apmObjects_modaldialog_1.APMObjectFilterColumnName.Documents]) {\r\n\t if (Search[0].Documents && item.key.toString().toLowerCase().indexOf(Search[0].Documents) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == apmObjects_modaldialog_1.APMObjectFilterColumnName[apmObjects_modaldialog_1.APMObjectFilterColumnName.Properties]) {\r\n\t if (Search[0].Properties && item.key.toString().toLowerCase().indexOf(Search[0].Properties) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == apmObjects_modaldialog_1.APMObjectFilterColumnName[apmObjects_modaldialog_1.APMObjectFilterColumnName.Routings]) {\r\n\t if (Search[0].Routings && item.key.toString().toLowerCase().indexOf(Search[0].Routings) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t else if (search.toString() == apmObjects_modaldialog_1.APMObjectFilterColumnName[apmObjects_modaldialog_1.APMObjectFilterColumnName.Recipients]) {\r\n\t if (Search[0].Recipients && item.key.toString().toLowerCase().indexOf(Search[0].Recipients) === -1) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t return true;\r\n\t });\r\n\t }\r\n\t else {\r\n\t return items;\r\n\t }\r\n\t };\r\n\t APMObjectSearchPipe = __decorate([\r\n\t core_1.Pipe({\r\n\t name: 'apmsearch'\r\n\t })\r\n\t ], APMObjectSearchPipe);\r\n\t return APMObjectSearchPipe;\r\n\t}());\r\n\texports.APMObjectSearchPipe = APMObjectSearchPipe;\r\n\n\n/***/ },\n/* 680 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar HelpDialog = (function () {\r\n\t function HelpDialog(dialogRef) {\r\n\t this.dialogRef = dialogRef;\r\n\t }\r\n\t HelpDialog.prototype.innerHTML = function (html, navigateTo) {\r\n\t this.container.nativeElement.innerHTML = html;\r\n\t this.container.nativeElement.style.height = window.innerHeight - 200;\r\n\t this.container.nativeElement.style.width = window.innerWidth - 200;\r\n\t this.container.nativeElement.style.overflowY = 'auto';\r\n\t if (navigateTo) {\r\n\t }\r\n\t };\r\n\t HelpDialog.prototype.jump = function (h) {\r\n\t var url = location.href;\r\n\t location.href = \"#\" + h;\r\n\t };\r\n\t HelpDialog.prototype.close = function () {\r\n\t this.dialogRef.close();\r\n\t };\r\n\t HelpDialog.prototype.resize = function (event) {\r\n\t this.container.nativeElement.style.height = window.innerHeight - 200;\r\n\t this.container.nativeElement.style.width = window.innerWidth - 200;\r\n\t this.container.nativeElement.style.overflowY = 'auto';\r\n\t };\r\n\t __decorate([\r\n\t core_1.ViewChild('container'),\r\n\t __metadata(\"design:type\", core_1.ElementRef)\r\n\t ], HelpDialog.prototype, \"container\", void 0);\r\n\t __decorate([\r\n\t core_1.HostListener('window:resize', ['$event']),\r\n\t __metadata(\"design:type\", Function),\r\n\t __metadata(\"design:paramtypes\", [Object]),\r\n\t __metadata(\"design:returntype\", void 0)\r\n\t ], HelpDialog.prototype, \"resize\", null);\r\n\t HelpDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'help-dialog',\r\n\t template: __webpack_require__(681),\r\n\t styles: [__webpack_require__(682)]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef])\r\n\t ], HelpDialog);\r\n\t return HelpDialog;\r\n\t}());\r\n\texports.HelpDialog = HelpDialog;\r\n\n\n/***/ },\n/* 681 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
\\r\\n
\\r\\n
\\r\\n Help \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 682 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \".dialog-header {\\r\\n background-color:#025064;\\r\\n color: white;\\r\\n}\"\n\n/***/ },\n/* 683 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar forms_1 = __webpack_require__(50);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar conversions_service_1 = __webpack_require__(378);\r\n\tvar users_service_1 = __webpack_require__(333);\r\n\tvar timezone_1 = __webpack_require__(559);\r\n\tvar mock_timezones_1 = __webpack_require__(560);\r\n\tvar ConversionScheduleEditDialog = (function () {\r\n\t function ConversionScheduleEditDialog(dialogRef, conversionsService, usersService) {\r\n\t var _this = this;\r\n\t this.dialogRef = dialogRef;\r\n\t this.conversionsService = conversionsService;\r\n\t this.usersService = usersService;\r\n\t this.userRoles = [\"Administrator\", \"EpicorEmployee\"];\r\n\t this.loading = false;\r\n\t this.timezones = mock_timezones_1.TIMEZONES;\r\n\t this.planTimeZone = new timezone_1.Timezone();\r\n\t this.planDate = null;\r\n\t this.planTime = null;\r\n\t this.assignedUserCtrl = new forms_1.FormControl();\r\n\t this.filteredUsers = this.assignedUserCtrl.valueChanges\r\n\t .startWith(null)\r\n\t .map(function (emailAddress) { return _this.filterUsers(emailAddress); });\r\n\t }\r\n\t ConversionScheduleEditDialog.prototype.ngOnInit = function () {\r\n\t var _this = this;\r\n\t this.loading = true;\r\n\t this.usersService.getUsersInRoles(this.userRoles).subscribe(function (users) {\r\n\t _this.users = users.map(function (user) {\r\n\t return user.emailAddress;\r\n\t });\r\n\t _this.loading = false;\r\n\t }, function (err) { return _this.loading = false; });\r\n\t this.dateFieldChanged();\r\n\t };\r\n\t ConversionScheduleEditDialog.prototype.onFieldChange = function () {\r\n\t var _this = this;\r\n\t var ts = new Date();\r\n\t this.conversionsService.updateConversionSchedule(this.conversion).subscribe(function () {\r\n\t var diff = ts.getTime() - new Date().getTime();\r\n\t var seconds = diff / 1000;\r\n\t var diffSeconds = Math.abs(seconds);\r\n\t _this.message = { text: \"Saved \" + diffSeconds + \" seconds ago.\", ts: new Date(), color: 'green' };\r\n\t }, function (err) {\r\n\t _this.message = { text: 'Failed to save, please retry...', ts: new Date(), color: 'red' };\r\n\t });\r\n\t };\r\n\t ConversionScheduleEditDialog.prototype.filterUsers = function (val) {\r\n\t return val ? this.users.filter(function (s) { return s.toLowerCase().indexOf(val.toLowerCase()) === 0; })\r\n\t : this.users;\r\n\t };\r\n\t ConversionScheduleEditDialog.prototype.close = function () {\r\n\t this.dialogRef.close();\r\n\t };\r\n\t ConversionScheduleEditDialog.prototype.plannedDateTime = function () {\r\n\t if (this.planDate == null) {\r\n\t this.conversion.plannedDate = null;\r\n\t }\r\n\t else {\r\n\t var selectedDate = new Date(this.planDate.toString());\r\n\t var year = selectedDate.getFullYear();\r\n\t var month = (selectedDate.getMonth() + 1).toString();\r\n\t var day = selectedDate.getDate().toString();\r\n\t var selectedTime = \"00:00\";\r\n\t var selectedZone = \"+00:00\";\r\n\t if (this.planTime != null && this.planTime != \"\") {\r\n\t selectedTime = this.planTime;\r\n\t }\r\n\t if (this.planTimeZone != null) {\r\n\t selectedZone = this.planTimeZone.gmtAdjustment;\r\n\t }\r\n\t if (day.length == 1) {\r\n\t day = \"0\" + day;\r\n\t }\r\n\t if (month.length == 1) {\r\n\t month = \"0\" + month;\r\n\t }\r\n\t var selectedPlannedDate = year + \"-\" + month + \"-\" + day + \"T\" + selectedTime + \":00\";\r\n\t this.conversion.plannedDate = selectedPlannedDate;\r\n\t this.conversion.plannedTimezone = selectedZone;\r\n\t }\r\n\t this.onFieldChange();\r\n\t };\r\n\t ConversionScheduleEditDialog.prototype.dateFieldChanged = function () {\r\n\t if (this.conversion.plannedDate == null) {\r\n\t this.planDate = null;\r\n\t this.planTime = null;\r\n\t this.planTimeZone = null;\r\n\t }\r\n\t else {\r\n\t this.planDate = this.conversion.plannedDate;\r\n\t var savedPlannedDate = new Date(this.conversion.plannedDate);\r\n\t var m = savedPlannedDate.getMinutes();\r\n\t var h = savedPlannedDate.getHours();\r\n\t var minutes = \"\";\r\n\t if (m == 0 || m.toString().length == 1) {\r\n\t minutes = \"0\" + m;\r\n\t this.planTime = h + \":\" + minutes;\r\n\t }\r\n\t else {\r\n\t minutes = m.toString();\r\n\t }\r\n\t if (h.toString().length == 1) {\r\n\t this.planTime = \"0\" + h + \":\" + minutes;\r\n\t }\r\n\t else {\r\n\t this.planTime = h + \":\" + minutes;\r\n\t }\r\n\t var timezone_2 = this.conversion.plannedTimezone;\r\n\t if (timezone_2 == null || timezone_2.includes(\"Z\")) {\r\n\t timezone_2 = \"+00:00\";\r\n\t }\r\n\t var savedTimezone = this.timezones.find(function (vtime) { return vtime.gmtAdjustment == timezone_2; });\r\n\t this.planTimeZone = savedTimezone;\r\n\t }\r\n\t };\r\n\t ConversionScheduleEditDialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'conversion-schedule-edit-dialog',\r\n\t template: __webpack_require__(684),\r\n\t providers: [conversions_service_1.ConversionsService, users_service_1.UsersService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef,\r\n\t conversions_service_1.ConversionsService,\r\n\t users_service_1.UsersService])\r\n\t ], ConversionScheduleEditDialog);\r\n\t return ConversionScheduleEditDialog;\r\n\t}());\r\n\texports.ConversionScheduleEditDialog = ConversionScheduleEditDialog;\r\n\n\n/***/ },\n/* 684 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
\\r\\n \\r\\n Edit Schedule\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{ user }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n {{ message.text }} ({{ message.ts | date: 'mediumTime' }})\\r\\n
\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 685 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __extends = (this && this.__extends) || (function () {\r\n\t var extendStatics = Object.setPrototypeOf ||\r\n\t ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n\t function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\t return function (d, b) {\r\n\t extendStatics(d, b);\r\n\t function __() { this.constructor = d; }\r\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n\t };\r\n\t})();\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar ng2_toastr_1 = __webpack_require__(306);\r\n\tvar ToastsManagerOptions = (function (_super) {\r\n\t __extends(ToastsManagerOptions, _super);\r\n\t function ToastsManagerOptions() {\r\n\t var _this = _super !== null && _super.apply(this, arguments) || this;\r\n\t _this.animate = 'flyRight';\r\n\t _this.toastLife = 2500;\r\n\t _this.dismiss = 'auto';\r\n\t return _this;\r\n\t }\r\n\t return ToastsManagerOptions;\r\n\t}(ng2_toastr_1.ToastOptions));\r\n\texports.ToastsManagerOptions = ToastsManagerOptions;\r\n\n\n/***/ },\n/* 686 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar SettingsPageComponent = (function () {\r\n\t function SettingsPageComponent() {\r\n\t }\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", String)\r\n\t ], SettingsPageComponent.prototype, \"title\", void 0);\r\n\t SettingsPageComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'settings-page',\r\n\t styles: [\"\\n .title {\\n font-size:14px;\\n padding: 0;\\n margin: 0;\\n font-weight: bold;\\n }\\n\\n .settings-page {\\n margin: 0 auto;\\n width: 680px;\\n margin-top: 10px\\n }\\n\\n @media screen and (max-width: 680px) {\\n .settings-page {\\n width: 100%;\\n }\\n }\\n \"],\r\n\t template: \"\\n
\\n

{{title}}

\\n \\n
\\n \"\r\n\t })\r\n\t ], SettingsPageComponent);\r\n\t return SettingsPageComponent;\r\n\t}());\r\n\texports.SettingsPageComponent = SettingsPageComponent;\r\n\tvar SettingsSectionComponent = (function () {\r\n\t function SettingsSectionComponent() {\r\n\t }\r\n\t SettingsSectionComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'settings-section',\r\n\t styles: [\"\\n .settings-section {\\n background: #fff;\\n border-radius: 2px;\\n box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);\\n }\\n \"],\r\n\t template: \"\\n
\\n \\n
\\n \"\r\n\t })\r\n\t ], SettingsSectionComponent);\r\n\t return SettingsSectionComponent;\r\n\t}());\r\n\texports.SettingsSectionComponent = SettingsSectionComponent;\r\n\tvar SettingsBoxComponent = (function () {\r\n\t function SettingsBoxComponent() {\r\n\t }\r\n\t SettingsBoxComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'settings-box',\r\n\t styles: [\"\\n .settings-box {\\n padding: 16px;\\n border-bottom: 1px solid rgb(240,240,240);\\n font-size:14px;\\n min-height: 20px;\\n display: flex;\\n align-items:center;\\n justify-content: space-between;\\n height: 25px;\\n }\\n\\n .settings-box-summary {\\n font-size:12px;\\n color: grey;\\n }\\n \\n \"],\r\n\t template: \"\\n
\\n \\n
\\n \"\r\n\t })\r\n\t ], SettingsBoxComponent);\r\n\t return SettingsBoxComponent;\r\n\t}());\r\n\texports.SettingsBoxComponent = SettingsBoxComponent;\r\n\n\n/***/ },\n/* 687 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tfunction __export(m) {\r\n\t for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n\t}\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\t__export(__webpack_require__(688));\r\n\n\n/***/ },\n/* 688 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar forms_1 = __webpack_require__(50);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar common_1 = __webpack_require__(44);\r\n\tvar reconciliation_reports_component_1 = __webpack_require__(689);\r\n\tvar reconciliation_reports_heatmap_bar_component_1 = __webpack_require__(696);\r\n\tvar ReconciliationReportsModule = (function () {\r\n\t function ReconciliationReportsModule() {\r\n\t }\r\n\t ReconciliationReportsModule = __decorate([\r\n\t core_1.NgModule({\r\n\t imports: [common_1.CommonModule, forms_1.FormsModule, material_1.MaterialModule],\r\n\t declarations: [reconciliation_reports_component_1.ReconciliationReportsComponent, reconciliation_reports_heatmap_bar_component_1.ReconciliationReportsHeatmapBarComponent],\r\n\t exports: [reconciliation_reports_component_1.ReconciliationReportsComponent]\r\n\t })\r\n\t ], ReconciliationReportsModule);\r\n\t return ReconciliationReportsModule;\r\n\t}());\r\n\texports.ReconciliationReportsModule = ReconciliationReportsModule;\r\n\n\n/***/ },\n/* 689 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar faq_dialog_1 = __webpack_require__(690);\r\n\tvar instructions_dialog_1 = __webpack_require__(692);\r\n\tvar ReconciliationReportsComponent = (function () {\r\n\t function ReconciliationReportsComponent(dialog, viewContainerRef) {\r\n\t this.dialog = dialog;\r\n\t this.viewContainerRef = viewContainerRef;\r\n\t this.onChange = new core_1.EventEmitter();\r\n\t this.visible = true;\r\n\t this.heatmapBarOptions = { totalCount: 0, zones: [] };\r\n\t this.companies = [];\r\n\t this.categories = [];\r\n\t this.zones = [\r\n\t { key: \"Matching\", value: false },\r\n\t { key: \"Differing\", value: true }\r\n\t ];\r\n\t this.filters = {\r\n\t difference: null,\r\n\t category: null,\r\n\t companyId: null\r\n\t };\r\n\t }\r\n\t ReconciliationReportsComponent.prototype.ngOnInit = function () {\r\n\t this.reports = this.reports ? this.reports : [];\r\n\t this.reportsCount = this.reportsCount ? this.reportsCount : this.reports.length;\r\n\t this.create();\r\n\t };\r\n\t ReconciliationReportsComponent.prototype.create = function () {\r\n\t var matchingCount = 0;\r\n\t var reviewCount = 0;\r\n\t this.heatmapBarOptions.totalCount = this.reports.length;\r\n\t this.reports.filter(function (item) {\r\n\t if (item.sumDifference == 0 && item.countDifference == 0) {\r\n\t matchingCount++;\r\n\t }\r\n\t else {\r\n\t reviewCount++;\r\n\t }\r\n\t });\r\n\t this.heatmapBarOptions.zones.push({\r\n\t backgroundColor: 'green',\r\n\t count: matchingCount,\r\n\t title: 'Matching',\r\n\t color: 'white'\r\n\t });\r\n\t this.heatmapBarOptions.zones.push({\r\n\t backgroundColor: 'red',\r\n\t count: reviewCount,\r\n\t title: 'Differing',\r\n\t color: 'white'\r\n\t });\r\n\t this.getCategories();\r\n\t this.getCompanies();\r\n\t };\r\n\t ReconciliationReportsComponent.prototype.toggle = function () {\r\n\t this.visible = this.visible ? false : true;\r\n\t };\r\n\t ReconciliationReportsComponent.prototype.toggleDifferences = function (report) {\r\n\t report[\"differencesVisible\"] = report[\"differencesVisible\"] ? false : true;\r\n\t };\r\n\t ReconciliationReportsComponent.prototype.isMatching = function (report) {\r\n\t if (this.getType(report) == \"Warning\") {\r\n\t return {\r\n\t icon: 'info',\r\n\t color: '#2a7ce0'\r\n\t };\r\n\t }\r\n\t if (this.getType(report) == \"Error\") {\r\n\t return {\r\n\t icon: 'error',\r\n\t color: '#e84a4a'\r\n\t };\r\n\t }\r\n\t else if (report.sumDifference == 0 && report.countDifference == 0) {\r\n\t return {\r\n\t icon: 'check_circle',\r\n\t color: 'green'\r\n\t };\r\n\t }\r\n\t else {\r\n\t return {\r\n\t icon: 'remove_circle',\r\n\t color: '#e84a4a'\r\n\t };\r\n\t }\r\n\t };\r\n\t ReconciliationReportsComponent.prototype.iconToolTip = function (icon) {\r\n\t if (icon == 'info') {\r\n\t return 'No records to compare, click More Info to review report parameters';\r\n\t }\r\n\t if (icon == 'error') {\r\n\t return 'Report could not be generated, click More Info to review error message';\r\n\t }\r\n\t if (icon == 'check_circle') {\r\n\t return 'No discrepancy';\r\n\t }\r\n\t if (icon == 'remove_circle') {\r\n\t return 'Click More Info to review discrepancies';\r\n\t }\r\n\t };\r\n\t ReconciliationReportsComponent.prototype.hasError = function (report) {\r\n\t if (report && (report.sourceReportError != null || report.targetreportError != null))\r\n\t return true;\r\n\t else\r\n\t return false;\r\n\t };\r\n\t ReconciliationReportsComponent.prototype.sourceHasError = function (report) {\r\n\t if (report && report.sourceReportError != null)\r\n\t return true;\r\n\t else\r\n\t return false;\r\n\t };\r\n\t ReconciliationReportsComponent.prototype.targetHasError = function (report) {\r\n\t if (report && report.sourceReportError != null)\r\n\t return true;\r\n\t else\r\n\t return false;\r\n\t };\r\n\t ReconciliationReportsComponent.prototype.getType = function (report) {\r\n\t if (report.sourceReportError) {\r\n\t var err = JSON.parse(report.sourceReportError)[0];\r\n\t return err.Type;\r\n\t }\r\n\t else\r\n\t return \"Success\";\r\n\t };\r\n\t ReconciliationReportsComponent.prototype.getHTMLTablefromJson = function (reportParam) {\r\n\t if (reportParam) {\r\n\t var json = JSON.parse(reportParam);\r\n\t var table = \"\";\r\n\t if (json) {\r\n\t for (var i in json[0]) {\r\n\t table = table + \"\";\r\n\t }\r\n\t }\r\n\t table = table + \"
\" + i + \"\" + this.getParameterValue(json[0][i]) + \"
\";\r\n\t return table;\r\n\t }\r\n\t else\r\n\t return \"\";\r\n\t };\r\n\t ReconciliationReportsComponent.prototype.getJsonFromString = function (jsonString) {\r\n\t if (jsonString && this.isJsonStringValid(jsonString)) {\r\n\t return JSON.parse(jsonString)[0];\r\n\t }\r\n\t else\r\n\t return null;\r\n\t };\r\n\t ReconciliationReportsComponent.prototype.isJsonStringValid = function (str) {\r\n\t try {\r\n\t JSON.parse(str);\r\n\t }\r\n\t catch (e) {\r\n\t return false;\r\n\t }\r\n\t return true;\r\n\t };\r\n\t ReconciliationReportsComponent.prototype.getKeys = function (obj) {\r\n\t if (obj) {\r\n\t return Object.keys(obj);\r\n\t }\r\n\t else\r\n\t return [];\r\n\t };\r\n\t ReconciliationReportsComponent.prototype.getParameterValue = function (value) {\r\n\t if ((!value || value == undefined || value == \"\" || value.length == 0))\r\n\t return \"\";\r\n\t else\r\n\t return value;\r\n\t };\r\n\t ReconciliationReportsComponent.prototype.getErrorMessage = function (report) {\r\n\t var msg = \"\";\r\n\t if (report.sourceReportError) {\r\n\t var err = JSON.parse(report.sourceReportError)[0];\r\n\t msg = \"Epicor 9.05.702A Message:
\" + err.Message;\r\n\t }\r\n\t if (report.targetReportError) {\r\n\t var err = JSON.parse(report.targetReportError)[0];\r\n\t msg += (msg != \"\") ? \"

\" : \"\";\r\n\t msg += this.product.target + \" Message:
\" + err.Message;\r\n\t }\r\n\t return msg;\r\n\t };\r\n\t ReconciliationReportsComponent.prototype.getErrorDescription = function (report) {\r\n\t if (report.sourceReportError) {\r\n\t var err = JSON.parse(report.sourceReportError)[0];\r\n\t return err.Description;\r\n\t }\r\n\t else\r\n\t return \"\";\r\n\t };\r\n\t ReconciliationReportsComponent.prototype.getCompanies = function () {\r\n\t this.companies = this.reports.map(function (item) {\r\n\t return item[\"companyId\"];\r\n\t }).filter(function (item, index, array) {\r\n\t return array.indexOf(item) === index;\r\n\t });\r\n\t };\r\n\t ReconciliationReportsComponent.prototype.getCategories = function () {\r\n\t this.categories = this.reports.map(function (item) {\r\n\t return item[\"category\"];\r\n\t }).filter(function (item, index, array) {\r\n\t return array.indexOf(item) === index;\r\n\t });\r\n\t };\r\n\t ReconciliationReportsComponent.prototype.change = function () {\r\n\t this.onChange.emit(this.filters);\r\n\t };\r\n\t ReconciliationReportsComponent.prototype.openfaqDialog = function () {\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.faqDialogRef = this.dialog.open(faq_dialog_1.faqdialog, config);\r\n\t };\r\n\t ReconciliationReportsComponent.prototype.openinstructionsDialog = function () {\r\n\t var config = new material_1.MdDialogConfig();\r\n\t config.viewContainerRef = this.viewContainerRef;\r\n\t this.instructionsDialogRef = this.dialog.open(instructions_dialog_1.instructionsdialog, config);\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], ReconciliationReportsComponent.prototype, \"product\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", String)\r\n\t ], ReconciliationReportsComponent.prototype, \"title\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Array)\r\n\t ], ReconciliationReportsComponent.prototype, \"reports\", void 0);\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Number)\r\n\t ], ReconciliationReportsComponent.prototype, \"reportsCount\", void 0);\r\n\t __decorate([\r\n\t core_1.Output(),\r\n\t __metadata(\"design:type\", core_1.EventEmitter)\r\n\t ], ReconciliationReportsComponent.prototype, \"onChange\", void 0);\r\n\t ReconciliationReportsComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'reconciliation-reports',\r\n\t styles: [__webpack_require__(694)],\r\n\t template: __webpack_require__(695)\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialog,\r\n\t core_1.ViewContainerRef])\r\n\t ], ReconciliationReportsComponent);\r\n\t return ReconciliationReportsComponent;\r\n\t}());\r\n\texports.ReconciliationReportsComponent = ReconciliationReportsComponent;\r\n\n\n/***/ },\n/* 690 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar faqdialog = (function () {\r\n\t function faqdialog(dialogRef) {\r\n\t this.dialogRef = dialogRef;\r\n\t }\r\n\t faqdialog.prototype.close = function () {\r\n\t this.dialogRef.close();\r\n\t };\r\n\t faqdialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'faq-dialog',\r\n\t template: __webpack_require__(691)\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef])\r\n\t ], faqdialog);\r\n\t return faqdialog;\r\n\t}());\r\n\texports.faqdialog = faqdialog;\r\n\n\n/***/ },\n/* 691 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
\\r\\n \\r\\n FAQs\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
  1. Why are the reports compared to Epicor 9.05.702A when I am upgrading from a different version such as 9.05.701 or\\r\\n 9.04? It would be impractical to develop reconciliation report for each one of dozens of releases of Epicor 9.04\\r\\n and 9.05 for availability in the conversion tooling, therefore the reconciliation is performed at the 9.05.702A\\r\\n level. When upgrading from a version prior to 9.05.702A, this does introduce the possibility of a discrepancy\\r\\n between 9.04.X or 9.05.X and 9.05.702A that is not displayed in the reconciliation reporting. Please verify your\\r\\n source system in this case.
  2. \\r\\n
  3. I see errors on my report, what do I do now? Please follow the reconciliation report instructions on the main page\\r\\n to review and report the errors.
  4. \\r\\n
  5. Support has provided a data fix to correct a reconciliation report error, how can this be applied to correct my reconciliation\\r\\n report discrepancies? Unfortunately it is not possible to correct the discrepancies within the already-generated\\r\\n reconciliation report. Instead, work with support to understand whether your data issue can be corrected in Epicor\\r\\n 9. If so, ensure you apply the fix to your legacy system prior to your next upgrade pass. In some cases, issues\\r\\n can only be corrected in the upgraded database. In this scenario, you will need to apply the fix after each upgrade\\r\\n pass is completed.
  6. \\r\\n
  7. How can I review the Reconciliation Report data set? Please locate your Upgrades folder in the Cloud Transfer Tool.\\r\\n Browse to the folder for the upgrade pass in question, and download the file named ERPReconciliationData.7z.\\r\\n This is a compressed folder containing the report XML data.
  8. \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\";\n\n/***/ },\n/* 692 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar material_1 = __webpack_require__(58);\r\n\tvar instructionsdialog = (function () {\r\n\t function instructionsdialog(dialogRef) {\r\n\t this.dialogRef = dialogRef;\r\n\t }\r\n\t instructionsdialog.prototype.close = function () {\r\n\t this.dialogRef.close();\r\n\t };\r\n\t instructionsdialog = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'instructions-dialog',\r\n\t template: __webpack_require__(693)\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [material_1.MdDialogRef])\r\n\t ], instructionsdialog);\r\n\t return instructionsdialog;\r\n\t}());\r\n\texports.instructionsdialog = instructionsdialog;\r\n\n\n/***/ },\n/* 693 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
\\r\\n \\r\\n Reconciliation Report Instructions\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
  1. Each row represents comparison between reports generated in Epicor 9.05.702A and your conversion target.
  2. \\r\\n
  3. Click More Info to review report parameters, detailed discrepancies, and/or error messages
  4. \\r\\n
  5. Specific discrepancies can be logged with Epicor support for investigation. When requesting investigation, please\\r\\n open a new ticket at http://epicor.com/epiccare and include the following information:\\r\\n
\\r\\n
    \\r\\n
  • Copy and paste the specific row discrepancy into the support case
  • \\r\\n
  • Clarify which system is correct (source database or upgraded database) based on your review of the data
  • \\r\\n
  • Include the direct link to your reconciliation report (you can copy and paste the address from your browser window)
  • \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\";\n\n/***/ },\n/* 694 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \".header {\\r\\n background-color:whitesmoke;\\r\\n color: #000;\\r\\n height: 40px;\\r\\n border: 1px solid #e0e0e0;\\r\\n display:flex;\\r\\n justify-content: space-between;\\r\\n align-items:center;\\r\\n font-weight:normal;\\r\\n padding-left:12px;\\r\\n font-size:16px;\\r\\n padding-top:2px;\\r\\n border-bottom:none;\\r\\n}\\r\\n.sub-header {\\r\\n background-color:whitesmoke;\\r\\n color: #000;\\r\\n height: 50px;\\r\\n border: 1px solid #e0e0e0;\\r\\n display:flex;\\r\\n justify-content: space-between;\\r\\n align-items:center;\\r\\n font-weight:normal;\\r\\n}\\r\\n\\r\\n.title {\\r\\n /* padding-top:6px; */\\r\\n padding-left: 12px;\\r\\n font-size:1em;\\r\\n display: flex;\\r\\n justify-content: space-between;\\r\\n align-items:center;\\r\\n}\\r\\n\\r\\n table {\\r\\n border: 1px solid #ccc;\\r\\n border-collapse: collapse;\\r\\n margin: 0;\\r\\n padding: 0;\\r\\n width: 100%;\\r\\n table-layout: fixed;\\r\\n }\\r\\n table caption {\\r\\n font-size: 1.5em;\\r\\n margin: .5em 0 .75em;\\r\\n }\\r\\n table tr {\\r\\n background: #fff;\\r\\n border: 1px solid #ddd;\\r\\n padding: .35em;\\r\\n }\\r\\n table th,\\r\\n table td {\\r\\n padding: .625em;\\r\\n text-align: center;\\r\\n }\\r\\n table th {\\r\\n font-size: .85em;\\r\\n /* letter-spacing: .1em; */\\r\\n /* text-transform: uppercase; */\\r\\n background:whitesmoke;\\r\\n }\\r\\n @media screen and (max-width: 800px) {\\r\\n table {\\r\\n border: 0;\\r\\n }\\r\\n table caption {\\r\\n font-size: 1.3em;\\r\\n }\\r\\n table thead {\\r\\n border: none;\\r\\n clip: rect(0 0 0 0);\\r\\n height: 1px;\\r\\n margin: -1px;\\r\\n overflow: hidden;\\r\\n padding: 0;\\r\\n position: absolute;\\r\\n width: 1px;\\r\\n }\\r\\n table tr {\\r\\n border-bottom: 3px solid #ddd;\\r\\n display: block;\\r\\n margin-bottom: .625em;\\r\\n }\\r\\n table td {\\r\\n border-bottom: 1px solid #ddd;\\r\\n display: block;\\r\\n /* font-size: .8em; */\\r\\n text-align: right;\\r\\n }\\r\\n table td:before {\\r\\n /*\\r\\n * aria-label has no advantage, it won't be read inside a table\\r\\n content: attr(aria-label);\\r\\n */\\r\\n content: attr(data-label);\\r\\n float: left;\\r\\n font-weight: bold;\\r\\n /* text-transform: uppercase; */\\r\\n }\\r\\n table td:last-child {\\r\\n border-bottom: 0;\\r\\n }\\r\\n }\\r\\n\\r\\n /* Tooltip container */\\r\\n .tooltip {\\r\\n position: relative;\\r\\n display: inline-block;\\r\\n cursor: default;\\r\\n}\\r\\n\\r\\n/* Tooltip text */\\r\\n.tooltip .tooltiptext {\\r\\n visibility: hidden;\\r\\n width: 160px;\\r\\n height: 100px;\\r\\n overflow-x: hidden;\\r\\n overflow-y: scroll;\\r\\n /* background-color: #555; */\\r\\n background-color: #fff;\\r\\n box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); \\r\\n color: #000;\\r\\n text-align: center;\\r\\n border-radius: 4px;\\r\\n \\r\\n /* Position the tooltip text */\\r\\n padding: 5px 0;\\r\\n position: absolute;\\r\\n z-index: 1;\\r\\n /* bottom: 125%; */\\r\\n left: 50%;\\r\\n margin-left: -60px;\\r\\n \\r\\n /* Fade in tooltip */\\r\\n /* opacity: 0;\\r\\n transition: opacity 1s; */\\r\\n}\\r\\n\\r\\n/* Tooltip arrow */\\r\\n.tooltip .tooltiptext::after {\\r\\n content: \\\"\\\";\\r\\n position: absolute;\\r\\n top: 100%;\\r\\n left: 50%;\\r\\n margin-left: -5px;\\r\\n border-width: 5px;\\r\\n border-style: solid;\\r\\n border-color: #fff transparent transparent transparent;\\r\\n}\\r\\n\\r\\n/* Show the tooltip text when you mouse over the tooltip container */\\r\\n.tooltip:hover .tooltiptext {\\r\\n visibility: visible;\\r\\n opacity: 1;\\r\\n}\\r\\n\\r\\n/* Tooltip used when displayed on the top left of the screen */\\r\\n.tooltip-left {\\r\\n position: relative;\\r\\n display: inline-block;\\r\\n cursor: default;\\r\\n}\\r\\n\\r\\n.tooltip-left .tooltiptext-left {\\r\\n visibility: hidden;\\r\\n width: 160px;\\r\\n overflow-x: hidden;\\r\\n overflow-y: hidden;\\r\\n /* background-color: #555; */\\r\\n background-color: #fff;\\r\\n box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); \\r\\n color: #000;\\r\\n text-align: center;\\r\\n border-radius: 4px;\\r\\n \\r\\n /* Position the tooltip text */\\r\\n padding: 5px 0;\\r\\n position: absolute;\\r\\n z-index: 1;\\r\\n /* bottom: 125%; */\\r\\n left: 50%;\\r\\n margin-left: -30px;\\r\\n}\\r\\n\\r\\n.tooltip-left .tooltiptext-left::after {\\r\\n content: \\\"\\\";\\r\\n position: absolute;\\r\\n top: 100%;\\r\\n left: 50%;\\r\\n margin-left: -5px;\\r\\n border-width: 5px;\\r\\n border-style: solid;\\r\\n border-color: #fff transparent transparent transparent;\\r\\n}\\r\\n\\r\\n.tooltip-left:hover .tooltiptext-left {\\r\\n visibility: visible;\\r\\n opacity: 1;\\r\\n}\"\n\n/***/ },\n/* 695 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
\\r\\n {{ product?.source }} to {{ product?.target }}, Go Live: {{ product?.goLive }}\\r\\n
\\r\\n
\\r\\n
{{title}} ({{ reportsCount }})\\r\\n \\r\\n
\\r\\n
\\r\\n Company:\\r\\n \\r\\n\\r\\n Category:\\r\\n \\r\\n\\r\\n Zone:\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n
ReportCompanyTypeEpicor 9.05.702A Total{{product?.target}} TotalTotal Δ Epicor 9.05.702A Count{{product?.target}} CountCount Δ
\\r\\n
\\r\\n {{ isMatching(report).icon }}\\r\\n
\\r\\n {{ iconToolTip(isMatching(report).icon) }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{ report?.reportName }}\\r\\n
\\r\\n {{ report?.tooltipText }}\\r\\n
\\r\\n
\\r\\n
{{ report?.companyId }}{{ report?.category }}\\r\\n NA \\r\\n {{ report?.sourceSum?.toLocaleString() }} \\r\\n \\r\\n NA \\r\\n {{ report?.targetSum?.toLocaleString() }} \\r\\n \\r\\n NA \\r\\n {{ report?.sumDifference?.toLocaleString() }} \\r\\n \\r\\n NA \\r\\n {{ report?.sourceCount?.toLocaleString() }} \\r\\n \\r\\n NA \\r\\n {{ report?.targetCount?.toLocaleString() }} \\r\\n \\r\\n NA \\r\\n {{ report?.countDifference?.toLocaleString() }} \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
Epicor 9.05.702A Report Parameters
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{key}}\\r\\n \\r\\n {{getJsonFromString(report?.sourceReportParameters)[key]}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{product?.target}} Report Parameters
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{key}}\\r\\n \\r\\n {{getJsonFromString(report?.targetReportParameters)[key]}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{ isMatching(report).icon }}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Epicor 9.05.702A Source Key{{product?.target}} Target KeyKey ValueRow Differences
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{ key?.sourceKeyName }}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{ key?.targetKeyName }}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{ key?.keyValue }}
\\r\\n
\\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
FieldEpicor 9.05.702A Source{{product?.target}} Target
{{ temp?.sourceFieldName }}\\r\\n
\\r\\n {{ temp?.sourceValue?.toLocaleString() }}\\r\\n
\\r\\n
\\r\\n
\\r\\n {{ temp?.targetValue?.toLocaleString() }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Epicor 9.05.702A Source Key{{product?.target}} Target KeyKey ValueGroup Differences
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{ key?.sourceKeyName }}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{ key?.targetKeyName }}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{ key?.keyValue }}
\\r\\n
\\r\\n 0 \\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
FieldEpicor 9.05.702A Source{{product?.target}} Target
{{ temp?.sourceFieldName }}\\r\\n
\\r\\n {{ temp?.sourceValue?.toLocaleString() }}\\r\\n
\\r\\n
\\r\\n
\\r\\n {{ temp?.targetValue?.toLocaleString() }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\";\n\n/***/ },\n/* 696 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tvar __metadata = (this && this.__metadata) || function (k, v) {\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar reconciliation_reports_heatmap_bar_service_1 = __webpack_require__(697);\r\n\tvar ReconciliationReportsHeatmapBarComponent = (function () {\r\n\t function ReconciliationReportsHeatmapBarComponent(heatmapBarService) {\r\n\t this.heatmapBarService = heatmapBarService;\r\n\t }\r\n\t ReconciliationReportsHeatmapBarComponent.prototype.ngOnInit = function () {\r\n\t this.createHeatmap();\r\n\t };\r\n\t ReconciliationReportsHeatmapBarComponent.prototype.createHeatmap = function () {\r\n\t var zones = this.options.zones;\r\n\t var totalCount = this.options.totalCount;\r\n\t this.zones = this.heatmapBarService.generateHeatmapZones(zones, totalCount);\r\n\t };\r\n\t __decorate([\r\n\t core_1.Input(),\r\n\t __metadata(\"design:type\", Object)\r\n\t ], ReconciliationReportsHeatmapBarComponent.prototype, \"options\", void 0);\r\n\t ReconciliationReportsHeatmapBarComponent = __decorate([\r\n\t core_1.Component({\r\n\t selector: 'reconciliation-reports-heatmap-bar',\r\n\t template: __webpack_require__(698),\r\n\t providers: [reconciliation_reports_heatmap_bar_service_1.ReconciliationReportsHeatmapBarService]\r\n\t }),\r\n\t __metadata(\"design:paramtypes\", [reconciliation_reports_heatmap_bar_service_1.ReconciliationReportsHeatmapBarService])\r\n\t ], ReconciliationReportsHeatmapBarComponent);\r\n\t return ReconciliationReportsHeatmapBarComponent;\r\n\t}());\r\n\texports.ReconciliationReportsHeatmapBarComponent = ReconciliationReportsHeatmapBarComponent;\r\n\n\n/***/ },\n/* 697 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n\t var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n\t if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n\t else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n\t return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n\t};\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar core_1 = __webpack_require__(3);\r\n\tvar ReconciliationReportsHeatmapBarService = (function () {\r\n\t function ReconciliationReportsHeatmapBarService() {\r\n\t }\r\n\t ReconciliationReportsHeatmapBarService.prototype.generateHeatmapZones = function (zones, totalCount) {\r\n\t var _this = this;\r\n\t var itemPercent = 1 / totalCount;\r\n\t return zones.map(function (zone) {\r\n\t var flex = _this.calculateFlex(zone.count, itemPercent);\r\n\t return {\r\n\t title: zone.title,\r\n\t count: zone.count,\r\n\t style: {\r\n\t flex: flex,\r\n\t backgroundColor: zone.backgroundColor,\r\n\t color: zone.color\r\n\t }\r\n\t };\r\n\t });\r\n\t };\r\n\t ReconciliationReportsHeatmapBarService.prototype.calculateFlex = function (count, percent, fractionDigits) {\r\n\t if (fractionDigits === void 0) { fractionDigits = 1; }\r\n\t return count * percent;\r\n\t };\r\n\t ReconciliationReportsHeatmapBarService = __decorate([\r\n\t core_1.Injectable()\r\n\t ], ReconciliationReportsHeatmapBarService);\r\n\t return ReconciliationReportsHeatmapBarService;\r\n\t}());\r\n\texports.ReconciliationReportsHeatmapBarService = ReconciliationReportsHeatmapBarService;\r\n\n\n/***/ },\n/* 698 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
0\\\" style=\\\"display:flex; height: 20px\\\">\\r\\n
\\r\\n 0\\\" style=\\\"padding-left:6px\\\">{{ zone?.count }} {{ zone?.title }}\\r\\n
\\r\\n
\";\n\n/***/ }\n]);\n\n\n/** WEBPACK FOOTER **\n ** app.1f1fbdaeb38cf0b6089d.js\n **/","import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\nimport { enableProdMode } from '@angular/core';\r\n\r\nimport { AppModule } from './app/app.module';\r\n\r\nif (process.env.ENV === 'production') {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.log(err));\r\n \n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/main.ts\n **/","// Angular 2\r\nimport { NgModule, enableProdMode, ValueProvider } from '@angular/core';\r\nimport { CommonModule, HashLocationStrategy, LocationStrategy } from '@angular/common';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { HttpModule, XHRBackend } from '@angular/http';\r\n\r\n// Material 2\r\nimport { MaterialModule, MdNativeDateModule } from '@angular/material';\r\n\r\n// Chart js\r\nimport { ChartsModule } from 'ng2-charts/ng2-charts';\r\n\r\n// Dragula\r\nimport { DragulaModule } from 'ng2-dragula';\r\n\r\n// Gantt\r\nimport { GanttModule } from '../gantt';\r\n\r\n// JWT\r\nimport { AuthHttp, AuthConfig, AUTH_PROVIDERS, provideAuth } from 'angular2-jwt';\r\n\r\n// My Date Picker\r\nimport { MyDatePickerModule } from 'mydatepicker';\r\n\r\nimport { AppComponent } from './app.component';\r\nimport { routing, routedComponents } from './app.routing';\r\n\r\nimport { AuthService } from './auth/auth.service';\r\nimport { AuthGuard } from './auth/auth-guard.service';\r\n\r\nimport { AppPipes } from './app.pipes';\r\n\r\n// Splash Screen (pre bootstraper)\r\nimport { DOMEvents } from './dom-events';\r\n\r\nimport { DeactivateGuardService } from './shared/services/deactivate-guard.service'\r\n\r\n// Forms\r\nimport { ConversionFormComponent } from './sites/conversions/conversion/conversion-form.component';\r\n\r\n// Dialogs\r\nimport { CodeDialog } from './code/code-dialog.component';\r\nimport { ApplicationDialog } from './shared/dialogs/application-dialog';\r\nimport { ApplicationDocDialog } from './shared/dialogs/applicationdoc-dialog';\r\nimport { UpgradeGuideDialog } from './shared/dialogs/upgradeguide-dialog';\r\nimport { WizardDialog } from './sites/analysis/custom/bpms/bpms.component';\r\nimport { HelpDialog } from './shared/dialogs/help-dialog.component';\r\nimport { ConversionConfigurationDialog } from './sites/conversions/_dialogs/conversion-configuration-dialog';\r\nimport { ConversionPassTasksDialog } from './sites/conversions/_dialogs/conversion-pass-tasks-dialog';\r\nimport { IncidentDialog } from './sites/conversions/_dialogs/incident-dialog';\r\nimport { TimeToLiveDialog } from './sites/conversions/_dialogs/time-to-live-dialog';\r\nimport { ConversionStatusDialog } from './sites/conversions/_dialogs/conversion-status-dialog';\r\nimport { AddIPAddressToNSGDialog } from './sites/conversions/_dialogs/add-ip-address-to-nsg-dialog';\r\nimport { CloudViewHostDialog } from './cloudview/cloudview-host-dialog';\r\nimport { CloudViewInstanceDialog } from './cloudview/cloudview-instance-dialog';\r\nimport { CloudViewCommandDialog } from './cloudview/cloudview-command-dialog';\r\nimport { ConversionScheduleEditDialog } from './sites/conversions/_dialogs/conversion-schedule-edit-dialog';\r\nimport { SiteFileShareAddDialog } from './sites/core/file-shares/site-file-shares.component';\r\nimport { NewFeaturesEditorDialog } from './new-features/_dialogs/new-features-editor-dialog';\r\nimport { NotificationDialog } from './new-features/_dialogs/notification-dialog';\r\n\r\nimport { ToastModule, ToastOptions } from 'ng2-toastr/ng2-toastr';\r\nimport { ToastsManagerOptions } from './shared/toasts-manager-options';\r\n\r\nimport { MenusReportDialog } from './sites/analysis/custom/menus/menus.dialog'\r\nimport { UDTablesReportDialog } from './sites/analysis/custom/udforms/udforms.modaldialog'\r\nimport { SdkReportDialog } from './sites/analysis/custom/sdk/sdk.modaldialog'\r\n\r\nimport { BAQsReportDialog } from './sites/analysis/custom/baqs.modaldialog'\r\n\r\nimport { BPMsReportDialog } from './sites/analysis/custom/bpms.modaldialog'\r\nimport { ErrorMessageDialog } from './sites/reports/reports.component.service'\r\nimport { AlertMessageDialog } from './sites/conversions/conversion/conversion-form.component'\r\nimport { ConfigurationMessageDialog } from './sites/conversions/conversion/conversion-form.component'\r\nimport { UomMappingChangeConfirmationDialog } from './sites/conversions/conversion/conversion-form.component'\r\n\r\nimport { RestartServiceDialog } from './cloudview/cloudview-instance.component'\r\nimport { BankInterfaceReportDialog } from './sites/analysis/custom/bankInterfaces/bankInterfaces.modaldialog'\r\nimport { ExternalReportDialog } from './sites/analysis/custom/externalReports/externalReports.modaldialog'\r\nimport { ChangeLogsReportDialog } from './sites/analysis/custom/changelogs/changelogs.modaldialog'\r\nimport { APMObjectReportDialog } from './sites/analysis/custom/apmObjects/apmObjects.modaldialog'\r\n\r\nimport { UserEditDialog } from './users/user/user-edit/user-edit.dialog';\r\nimport {UserDefinedTablesReportDialog } from './sites/analysis/custom/userDefinedTables/userDefinedTables.modaldialog'\r\nimport{ CustomTriggerDialog} from './sites/analysis/custom/triggers/customTriggers.modaldialog'\r\nimport { SettingsPageComponent, SettingsSectionComponent, SettingsBoxComponent } from './shared/components/settings-page.component';\r\nimport { ReconciliationReportsModule } from './reconciliation-reports';\r\nimport { faqdialog } from './reconciliation-reports/faq-dialog';\r\nimport { instructionsdialog } from './reconciliation-reports/instructions-dialog';\r\nimport { CloudViewDocDialog } from './shared/dialogs/cloudviewdoc-dialog';\r\n\r\n@NgModule({\r\n // module dependencies\r\n imports: [\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n HttpModule,\r\n CommonModule,\r\n routing,\r\n MaterialModule,\r\n ChartsModule,\r\n GanttModule,\r\n MyDatePickerModule,\r\n DragulaModule,\r\n ToastModule.forRoot(),\r\n MdNativeDateModule,\r\n ReconciliationReportsModule\r\n ],\r\n\r\n // components and directives\r\n declarations: [\r\n AppComponent,\r\n routedComponents,\r\n CodeDialog,\r\n ApplicationDialog,\r\n ApplicationDocDialog,\r\n UpgradeGuideDialog,\r\n CloudViewDocDialog,\r\n WizardDialog,\r\n HelpDialog,\r\n ConversionConfigurationDialog,\r\n ConversionPassTasksDialog,\r\n IncidentDialog,\r\n TimeToLiveDialog,\r\n AddIPAddressToNSGDialog,\r\n ConversionStatusDialog,\r\n CloudViewHostDialog,\r\n CloudViewInstanceDialog,\r\n CloudViewCommandDialog,\r\n ConversionFormComponent,\r\n AppPipes,\r\n MenusReportDialog,\r\n UDTablesReportDialog,\r\n SdkReportDialog,\r\n BAQsReportDialog,\r\n BPMsReportDialog,\r\n BankInterfaceReportDialog,\r\n ExternalReportDialog,\r\n ChangeLogsReportDialog,\r\n APMObjectReportDialog,\r\n ErrorMessageDialog,\r\n AlertMessageDialog,\r\n ConfigurationMessageDialog,\r\n UomMappingChangeConfirmationDialog, \r\n RestartServiceDialog,\r\n ConversionScheduleEditDialog,\r\n UserEditDialog,\r\n SettingsPageComponent,\r\n SettingsSectionComponent,\r\n SettingsBoxComponent,\r\n SiteFileShareAddDialog,\r\n faqdialog,\r\n instructionsdialog,\r\n NewFeaturesEditorDialog,\r\n NotificationDialog,\r\n UserDefinedTablesReportDialog,\r\n CustomTriggerDialog\r\n ],\r\n\r\n // services\r\n providers: [\r\n AuthHttp,\r\n provideAuth({\r\n headerName: 'Authorization',\r\n headerPrefix: 'Bearer',\r\n tokenName: 'access_token',\r\n tokenGetter: (() => localStorage.getItem('access_token')),\r\n globalHeaders: [{ 'Content-Type': 'application/json' }],\r\n noJwtError: true\r\n }),\r\n AuthService,\r\n AuthGuard,\r\n { provide: LocationStrategy, useClass: HashLocationStrategy },\r\n DOMEvents,\r\n { provide: ToastOptions, useClass: ToastsManagerOptions },\r\n DeactivateGuardService\r\n ],\r\n entryComponents: [\r\n CodeDialog,\r\n ApplicationDialog,\r\n ApplicationDocDialog,\r\n UpgradeGuideDialog,\r\n CloudViewDocDialog,\r\n WizardDialog,\r\n HelpDialog,\r\n ConversionConfigurationDialog,\r\n ConversionPassTasksDialog,\r\n IncidentDialog,\r\n TimeToLiveDialog,\r\n AddIPAddressToNSGDialog,\r\n ConversionStatusDialog,\r\n CloudViewHostDialog,\r\n CloudViewInstanceDialog,\r\n CloudViewCommandDialog,\r\n MenusReportDialog,\r\n UDTablesReportDialog,\r\n SdkReportDialog,\r\n BAQsReportDialog,\r\n RestartServiceDialog,\r\n BPMsReportDialog,\r\n BankInterfaceReportDialog,\r\n ExternalReportDialog,\r\n ChangeLogsReportDialog,\r\n APMObjectReportDialog,\r\n ErrorMessageDialog,\r\n AlertMessageDialog,\r\n ConfigurationMessageDialog,\r\n UomMappingChangeConfirmationDialog, \r\n ConversionScheduleEditDialog,\r\n SiteFileShareAddDialog,\r\n UserEditDialog,\r\n faqdialog,\r\n instructionsdialog,\r\n NewFeaturesEditorDialog,\r\n NotificationDialog,\r\n UserDefinedTablesReportDialog,\r\n CustomTriggerDialog\r\n ],\r\n\r\n // root component\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/app.module.ts\n **/","/**\n * @license Angular v5.0.0\n * (c) 2010-2017 Google, Inc. https://angular.io/\n * License: MIT\n */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/platform-browser'), require('@angular/animations'), require('@angular/animations/browser')) :\n\ttypeof define === 'function' && define.amd ? define('@angular/platform-browser/animations', ['exports', '@angular/core', '@angular/platform-browser', '@angular/animations', '@angular/animations/browser'], factory) :\n\t(factory((global.ng = global.ng || {}, global.ng.platformBrowser = global.ng.platformBrowser || {}, global.ng.platformBrowser.animations = {}),global.ng.core,global.ng.platformBrowser,global.ng.animations,global.ng.animations.browser));\n}(this, (function (exports,_angular_core,_angular_platformBrowser,_angular_animations,_angular_animations_browser) { 'use strict';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\n\n/**\n * @license Angular v5.0.0\n * (c) 2010-2017 Google, Inc. https://angular.io/\n * License: MIT\n */\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar BrowserAnimationBuilder = (function (_super) {\n __extends(BrowserAnimationBuilder, _super);\n function BrowserAnimationBuilder(rootRenderer, doc) {\n var _this = _super.call(this) || this;\n _this._nextAnimationId = 0;\n var /** @type {?} */ typeData = /** @type {?} */ ({\n id: '0',\n encapsulation: _angular_core.ViewEncapsulation.None,\n styles: [],\n data: { animation: [] }\n });\n _this._renderer = /** @type {?} */ (rootRenderer.createRenderer(doc.body, typeData));\n return _this;\n }\n /**\n * @param {?} animation\n * @return {?}\n */\n BrowserAnimationBuilder.prototype.build = /**\n * @param {?} animation\n * @return {?}\n */\n function (animation) {\n var /** @type {?} */ id = this._nextAnimationId.toString();\n this._nextAnimationId++;\n var /** @type {?} */ entry = Array.isArray(animation) ? _angular_animations.sequence(animation) : animation;\n issueAnimationCommand(this._renderer, null, id, 'register', [entry]);\n return new BrowserAnimationFactory(id, this._renderer);\n };\n BrowserAnimationBuilder.decorators = [\n { type: _angular_core.Injectable },\n ];\n /** @nocollapse */\n BrowserAnimationBuilder.ctorParameters = function () { return [\n { type: _angular_core.RendererFactory2, },\n { type: undefined, decorators: [{ type: _angular_core.Inject, args: [_angular_platformBrowser.DOCUMENT,] },] },\n ]; };\n return BrowserAnimationBuilder;\n}(_angular_animations.AnimationBuilder));\nvar BrowserAnimationFactory = (function (_super) {\n __extends(BrowserAnimationFactory, _super);\n function BrowserAnimationFactory(_id, _renderer) {\n var _this = _super.call(this) || this;\n _this._id = _id;\n _this._renderer = _renderer;\n return _this;\n }\n /**\n * @param {?} element\n * @param {?=} options\n * @return {?}\n */\n BrowserAnimationFactory.prototype.create = /**\n * @param {?} element\n * @param {?=} options\n * @return {?}\n */\n function (element, options) {\n return new RendererAnimationPlayer(this._id, element, options || {}, this._renderer);\n };\n return BrowserAnimationFactory;\n}(_angular_animations.AnimationFactory));\nvar RendererAnimationPlayer = (function () {\n function RendererAnimationPlayer(id, element, options, _renderer) {\n this.id = id;\n this.element = element;\n this._renderer = _renderer;\n this.parentPlayer = null;\n this._started = false;\n this.totalTime = 0;\n this._command('create', options);\n }\n /**\n * @param {?} eventName\n * @param {?} callback\n * @return {?}\n */\n RendererAnimationPlayer.prototype._listen = /**\n * @param {?} eventName\n * @param {?} callback\n * @return {?}\n */\n function (eventName, callback) {\n return this._renderer.listen(this.element, \"@@\" + this.id + \":\" + eventName, callback);\n };\n /**\n * @param {?} command\n * @param {...?} args\n * @return {?}\n */\n RendererAnimationPlayer.prototype._command = /**\n * @param {?} command\n * @param {...?} args\n * @return {?}\n */\n function (command) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return issueAnimationCommand(this._renderer, this.element, this.id, command, args);\n };\n /**\n * @param {?} fn\n * @return {?}\n */\n RendererAnimationPlayer.prototype.onDone = /**\n * @param {?} fn\n * @return {?}\n */\n function (fn) { this._listen('done', fn); };\n /**\n * @param {?} fn\n * @return {?}\n */\n RendererAnimationPlayer.prototype.onStart = /**\n * @param {?} fn\n * @return {?}\n */\n function (fn) { this._listen('start', fn); };\n /**\n * @param {?} fn\n * @return {?}\n */\n RendererAnimationPlayer.prototype.onDestroy = /**\n * @param {?} fn\n * @return {?}\n */\n function (fn) { this._listen('destroy', fn); };\n /**\n * @return {?}\n */\n RendererAnimationPlayer.prototype.init = /**\n * @return {?}\n */\n function () { this._command('init'); };\n /**\n * @return {?}\n */\n RendererAnimationPlayer.prototype.hasStarted = /**\n * @return {?}\n */\n function () { return this._started; };\n /**\n * @return {?}\n */\n RendererAnimationPlayer.prototype.play = /**\n * @return {?}\n */\n function () {\n this._command('play');\n this._started = true;\n };\n /**\n * @return {?}\n */\n RendererAnimationPlayer.prototype.pause = /**\n * @return {?}\n */\n function () { this._command('pause'); };\n /**\n * @return {?}\n */\n RendererAnimationPlayer.prototype.restart = /**\n * @return {?}\n */\n function () { this._command('restart'); };\n /**\n * @return {?}\n */\n RendererAnimationPlayer.prototype.finish = /**\n * @return {?}\n */\n function () { this._command('finish'); };\n /**\n * @return {?}\n */\n RendererAnimationPlayer.prototype.destroy = /**\n * @return {?}\n */\n function () { this._command('destroy'); };\n /**\n * @return {?}\n */\n RendererAnimationPlayer.prototype.reset = /**\n * @return {?}\n */\n function () { this._command('reset'); };\n /**\n * @param {?} p\n * @return {?}\n */\n RendererAnimationPlayer.prototype.setPosition = /**\n * @param {?} p\n * @return {?}\n */\n function (p) { this._command('setPosition', p); };\n /**\n * @return {?}\n */\n RendererAnimationPlayer.prototype.getPosition = /**\n * @return {?}\n */\n function () { return 0; };\n return RendererAnimationPlayer;\n}());\n/**\n * @param {?} renderer\n * @param {?} element\n * @param {?} id\n * @param {?} command\n * @param {?} args\n * @return {?}\n */\nfunction issueAnimationCommand(renderer, element, id, command, args) {\n return renderer.setProperty(element, \"@@\" + id + \":\" + command, args);\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\nvar ANIMATION_PREFIX = '@';\nvar DISABLE_ANIMATIONS_FLAG = '@.disabled';\nvar AnimationRendererFactory = (function () {\n function AnimationRendererFactory(delegate, engine, _zone) {\n this.delegate = delegate;\n this.engine = engine;\n this._zone = _zone;\n this._currentId = 0;\n this._microtaskId = 1;\n this._animationCallbacksBuffer = [];\n this._rendererCache = new Map();\n this._cdRecurDepth = 0;\n engine.onRemovalComplete = function (element, delegate) {\n // Note: if an component element has a leave animation, and the component\n // a host leave animation, the view engine will call `removeChild` for the parent\n // component renderer as well as for the child component renderer.\n // Therefore, we need to check if we already removed the element.\n if (delegate && delegate.parentNode(element)) {\n delegate.removeChild(element.parentNode, element);\n }\n };\n }\n /**\n * @param {?} hostElement\n * @param {?} type\n * @return {?}\n */\n AnimationRendererFactory.prototype.createRenderer = /**\n * @param {?} hostElement\n * @param {?} type\n * @return {?}\n */\n function (hostElement, type) {\n var _this = this;\n var /** @type {?} */ EMPTY_NAMESPACE_ID = '';\n // cache the delegates to find out which cached delegate can\n // be used by which cached renderer\n var /** @type {?} */ delegate = this.delegate.createRenderer(hostElement, type);\n if (!hostElement || !type || !type.data || !type.data['animation']) {\n var /** @type {?} */ renderer = this._rendererCache.get(delegate);\n if (!renderer) {\n renderer = new BaseAnimationRenderer(EMPTY_NAMESPACE_ID, delegate, this.engine);\n // only cache this result when the base renderer is used\n this._rendererCache.set(delegate, renderer);\n }\n return renderer;\n }\n var /** @type {?} */ componentId = type.id;\n var /** @type {?} */ namespaceId = type.id + '-' + this._currentId;\n this._currentId++;\n this.engine.register(namespaceId, hostElement);\n var /** @type {?} */ animationTriggers = /** @type {?} */ (type.data['animation']);\n animationTriggers.forEach(function (trigger) {\n return _this.engine.registerTrigger(componentId, namespaceId, hostElement, trigger.name, trigger);\n });\n return new AnimationRenderer(this, namespaceId, delegate, this.engine);\n };\n /**\n * @return {?}\n */\n AnimationRendererFactory.prototype.begin = /**\n * @return {?}\n */\n function () {\n this._cdRecurDepth++;\n if (this.delegate.begin) {\n this.delegate.begin();\n }\n };\n /**\n * @return {?}\n */\n AnimationRendererFactory.prototype._scheduleCountTask = /**\n * @return {?}\n */\n function () {\n var _this = this;\n Zone.current.scheduleMicroTask('incremenet the animation microtask', function () { return _this._microtaskId++; });\n };\n /* @internal */\n /**\n * @param {?} count\n * @param {?} fn\n * @param {?} data\n * @return {?}\n */\n AnimationRendererFactory.prototype.scheduleListenerCallback = /**\n * @param {?} count\n * @param {?} fn\n * @param {?} data\n * @return {?}\n */\n function (count, fn, data) {\n var _this = this;\n if (count >= 0 && count < this._microtaskId) {\n this._zone.run(function () { return fn(data); });\n return;\n }\n if (this._animationCallbacksBuffer.length == 0) {\n Promise.resolve(null).then(function () {\n _this._zone.run(function () {\n _this._animationCallbacksBuffer.forEach(function (tuple) {\n var fn = tuple[0], data = tuple[1];\n fn(data);\n });\n _this._animationCallbacksBuffer = [];\n });\n });\n }\n this._animationCallbacksBuffer.push([fn, data]);\n };\n /**\n * @return {?}\n */\n AnimationRendererFactory.prototype.end = /**\n * @return {?}\n */\n function () {\n var _this = this;\n this._cdRecurDepth--;\n // this is to prevent animations from running twice when an inner\n // component does CD when a parent component insted has inserted it\n if (this._cdRecurDepth == 0) {\n this._zone.runOutsideAngular(function () {\n _this._scheduleCountTask();\n _this.engine.flush(_this._microtaskId);\n });\n }\n if (this.delegate.end) {\n this.delegate.end();\n }\n };\n /**\n * @return {?}\n */\n AnimationRendererFactory.prototype.whenRenderingDone = /**\n * @return {?}\n */\n function () { return this.engine.whenRenderingDone(); };\n AnimationRendererFactory.decorators = [\n { type: _angular_core.Injectable },\n ];\n /** @nocollapse */\n AnimationRendererFactory.ctorParameters = function () { return [\n { type: _angular_core.RendererFactory2, },\n { type: _angular_animations_browser.ɵAnimationEngine, },\n { type: _angular_core.NgZone, },\n ]; };\n return AnimationRendererFactory;\n}());\nvar BaseAnimationRenderer = (function () {\n function BaseAnimationRenderer(namespaceId, delegate, engine) {\n this.namespaceId = namespaceId;\n this.delegate = delegate;\n this.engine = engine;\n this.destroyNode = this.delegate.destroyNode ? function (n) { return /** @type {?} */ ((delegate.destroyNode))(n); } : null;\n }\n Object.defineProperty(BaseAnimationRenderer.prototype, \"data\", {\n get: /**\n * @return {?}\n */\n function () { return this.delegate.data; },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n BaseAnimationRenderer.prototype.destroy = /**\n * @return {?}\n */\n function () {\n this.engine.destroy(this.namespaceId, this.delegate);\n this.delegate.destroy();\n };\n /**\n * @param {?} name\n * @param {?=} namespace\n * @return {?}\n */\n BaseAnimationRenderer.prototype.createElement = /**\n * @param {?} name\n * @param {?=} namespace\n * @return {?}\n */\n function (name, namespace) {\n return this.delegate.createElement(name, namespace);\n };\n /**\n * @param {?} value\n * @return {?}\n */\n BaseAnimationRenderer.prototype.createComment = /**\n * @param {?} value\n * @return {?}\n */\n function (value) { return this.delegate.createComment(value); };\n /**\n * @param {?} value\n * @return {?}\n */\n BaseAnimationRenderer.prototype.createText = /**\n * @param {?} value\n * @return {?}\n */\n function (value) { return this.delegate.createText(value); };\n /**\n * @param {?} parent\n * @param {?} newChild\n * @return {?}\n */\n BaseAnimationRenderer.prototype.appendChild = /**\n * @param {?} parent\n * @param {?} newChild\n * @return {?}\n */\n function (parent, newChild) {\n this.delegate.appendChild(parent, newChild);\n this.engine.onInsert(this.namespaceId, newChild, parent, false);\n };\n /**\n * @param {?} parent\n * @param {?} newChild\n * @param {?} refChild\n * @return {?}\n */\n BaseAnimationRenderer.prototype.insertBefore = /**\n * @param {?} parent\n * @param {?} newChild\n * @param {?} refChild\n * @return {?}\n */\n function (parent, newChild, refChild) {\n this.delegate.insertBefore(parent, newChild, refChild);\n this.engine.onInsert(this.namespaceId, newChild, parent, true);\n };\n /**\n * @param {?} parent\n * @param {?} oldChild\n * @return {?}\n */\n BaseAnimationRenderer.prototype.removeChild = /**\n * @param {?} parent\n * @param {?} oldChild\n * @return {?}\n */\n function (parent, oldChild) {\n this.engine.onRemove(this.namespaceId, oldChild, this.delegate);\n };\n /**\n * @param {?} selectorOrNode\n * @return {?}\n */\n BaseAnimationRenderer.prototype.selectRootElement = /**\n * @param {?} selectorOrNode\n * @return {?}\n */\n function (selectorOrNode) { return this.delegate.selectRootElement(selectorOrNode); };\n /**\n * @param {?} node\n * @return {?}\n */\n BaseAnimationRenderer.prototype.parentNode = /**\n * @param {?} node\n * @return {?}\n */\n function (node) { return this.delegate.parentNode(node); };\n /**\n * @param {?} node\n * @return {?}\n */\n BaseAnimationRenderer.prototype.nextSibling = /**\n * @param {?} node\n * @return {?}\n */\n function (node) { return this.delegate.nextSibling(node); };\n /**\n * @param {?} el\n * @param {?} name\n * @param {?} value\n * @param {?=} namespace\n * @return {?}\n */\n BaseAnimationRenderer.prototype.setAttribute = /**\n * @param {?} el\n * @param {?} name\n * @param {?} value\n * @param {?=} namespace\n * @return {?}\n */\n function (el, name, value, namespace) {\n this.delegate.setAttribute(el, name, value, namespace);\n };\n /**\n * @param {?} el\n * @param {?} name\n * @param {?=} namespace\n * @return {?}\n */\n BaseAnimationRenderer.prototype.removeAttribute = /**\n * @param {?} el\n * @param {?} name\n * @param {?=} namespace\n * @return {?}\n */\n function (el, name, namespace) {\n this.delegate.removeAttribute(el, name, namespace);\n };\n /**\n * @param {?} el\n * @param {?} name\n * @return {?}\n */\n BaseAnimationRenderer.prototype.addClass = /**\n * @param {?} el\n * @param {?} name\n * @return {?}\n */\n function (el, name) { this.delegate.addClass(el, name); };\n /**\n * @param {?} el\n * @param {?} name\n * @return {?}\n */\n BaseAnimationRenderer.prototype.removeClass = /**\n * @param {?} el\n * @param {?} name\n * @return {?}\n */\n function (el, name) { this.delegate.removeClass(el, name); };\n /**\n * @param {?} el\n * @param {?} style\n * @param {?} value\n * @param {?=} flags\n * @return {?}\n */\n BaseAnimationRenderer.prototype.setStyle = /**\n * @param {?} el\n * @param {?} style\n * @param {?} value\n * @param {?=} flags\n * @return {?}\n */\n function (el, style, value, flags) {\n this.delegate.setStyle(el, style, value, flags);\n };\n /**\n * @param {?} el\n * @param {?} style\n * @param {?=} flags\n * @return {?}\n */\n BaseAnimationRenderer.prototype.removeStyle = /**\n * @param {?} el\n * @param {?} style\n * @param {?=} flags\n * @return {?}\n */\n function (el, style, flags) {\n this.delegate.removeStyle(el, style, flags);\n };\n /**\n * @param {?} el\n * @param {?} name\n * @param {?} value\n * @return {?}\n */\n BaseAnimationRenderer.prototype.setProperty = /**\n * @param {?} el\n * @param {?} name\n * @param {?} value\n * @return {?}\n */\n function (el, name, value) {\n if (name.charAt(0) == ANIMATION_PREFIX && name == DISABLE_ANIMATIONS_FLAG) {\n this.disableAnimations(el, !!value);\n }\n else {\n this.delegate.setProperty(el, name, value);\n }\n };\n /**\n * @param {?} node\n * @param {?} value\n * @return {?}\n */\n BaseAnimationRenderer.prototype.setValue = /**\n * @param {?} node\n * @param {?} value\n * @return {?}\n */\n function (node, value) { this.delegate.setValue(node, value); };\n /**\n * @param {?} target\n * @param {?} eventName\n * @param {?} callback\n * @return {?}\n */\n BaseAnimationRenderer.prototype.listen = /**\n * @param {?} target\n * @param {?} eventName\n * @param {?} callback\n * @return {?}\n */\n function (target, eventName, callback) {\n return this.delegate.listen(target, eventName, callback);\n };\n /**\n * @param {?} element\n * @param {?} value\n * @return {?}\n */\n BaseAnimationRenderer.prototype.disableAnimations = /**\n * @param {?} element\n * @param {?} value\n * @return {?}\n */\n function (element, value) {\n this.engine.disableAnimations(element, value);\n };\n return BaseAnimationRenderer;\n}());\nvar AnimationRenderer = (function (_super) {\n __extends(AnimationRenderer, _super);\n function AnimationRenderer(factory, namespaceId, delegate, engine) {\n var _this = _super.call(this, namespaceId, delegate, engine) || this;\n _this.factory = factory;\n _this.namespaceId = namespaceId;\n return _this;\n }\n /**\n * @param {?} el\n * @param {?} name\n * @param {?} value\n * @return {?}\n */\n AnimationRenderer.prototype.setProperty = /**\n * @param {?} el\n * @param {?} name\n * @param {?} value\n * @return {?}\n */\n function (el, name, value) {\n if (name.charAt(0) == ANIMATION_PREFIX) {\n if (name.charAt(1) == '.' && name == DISABLE_ANIMATIONS_FLAG) {\n value = value === undefined ? true : !!value;\n this.disableAnimations(el, /** @type {?} */ (value));\n }\n else {\n this.engine.process(this.namespaceId, el, name.substr(1), value);\n }\n }\n else {\n this.delegate.setProperty(el, name, value);\n }\n };\n /**\n * @param {?} target\n * @param {?} eventName\n * @param {?} callback\n * @return {?}\n */\n AnimationRenderer.prototype.listen = /**\n * @param {?} target\n * @param {?} eventName\n * @param {?} callback\n * @return {?}\n */\n function (target, eventName, callback) {\n var _this = this;\n if (eventName.charAt(0) == ANIMATION_PREFIX) {\n var /** @type {?} */ element = resolveElementFromTarget(target);\n var /** @type {?} */ name_1 = eventName.substr(1);\n var /** @type {?} */ phase = '';\n // @listener.phase is for trigger animation callbacks\n // @@listener is for animation builder callbacks\n if (name_1.charAt(0) != ANIMATION_PREFIX) {\n _a = parseTriggerCallbackName(name_1), name_1 = _a[0], phase = _a[1];\n }\n return this.engine.listen(this.namespaceId, element, name_1, phase, function (event) {\n var /** @type {?} */ countId = (/** @type {?} */ (event))['_data'] || -1;\n _this.factory.scheduleListenerCallback(countId, callback, event);\n });\n }\n return this.delegate.listen(target, eventName, callback);\n var _a;\n };\n return AnimationRenderer;\n}(BaseAnimationRenderer));\n/**\n * @param {?} target\n * @return {?}\n */\nfunction resolveElementFromTarget(target) {\n switch (target) {\n case 'body':\n return document.body;\n case 'document':\n return document;\n case 'window':\n return window;\n default:\n return target;\n }\n}\n/**\n * @param {?} triggerName\n * @return {?}\n */\nfunction parseTriggerCallbackName(triggerName) {\n var /** @type {?} */ dotIndex = triggerName.indexOf('.');\n var /** @type {?} */ trigger = triggerName.substring(0, dotIndex);\n var /** @type {?} */ phase = triggerName.substr(dotIndex + 1);\n return [trigger, phase];\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar InjectableAnimationEngine = (function (_super) {\n __extends(InjectableAnimationEngine, _super);\n function InjectableAnimationEngine(driver, normalizer) {\n return _super.call(this, driver, normalizer) || this;\n }\n InjectableAnimationEngine.decorators = [\n { type: _angular_core.Injectable },\n ];\n /** @nocollapse */\n InjectableAnimationEngine.ctorParameters = function () { return [\n { type: _angular_animations_browser.AnimationDriver, },\n { type: _angular_animations_browser.ɵAnimationStyleNormalizer, },\n ]; };\n return InjectableAnimationEngine;\n}(_angular_animations_browser.ɵAnimationEngine));\n/**\n * @return {?}\n */\nfunction instantiateSupportedAnimationDriver() {\n if (_angular_animations_browser.ɵsupportsWebAnimations()) {\n return new _angular_animations_browser.ɵWebAnimationsDriver();\n }\n return new _angular_animations_browser.ɵNoopAnimationDriver();\n}\n/**\n * @return {?}\n */\nfunction instantiateDefaultStyleNormalizer() {\n return new _angular_animations_browser.ɵWebAnimationsStyleNormalizer();\n}\n/**\n * @param {?} renderer\n * @param {?} engine\n * @param {?} zone\n * @return {?}\n */\nfunction instantiateRendererFactory(renderer, engine, zone) {\n return new AnimationRendererFactory(renderer, engine, zone);\n}\nvar SHARED_ANIMATION_PROVIDERS = [\n { provide: _angular_animations.AnimationBuilder, useClass: BrowserAnimationBuilder },\n { provide: _angular_animations_browser.ɵAnimationStyleNormalizer, useFactory: instantiateDefaultStyleNormalizer },\n { provide: _angular_animations_browser.ɵAnimationEngine, useClass: InjectableAnimationEngine }, {\n provide: _angular_core.RendererFactory2,\n useFactory: instantiateRendererFactory,\n deps: [_angular_platformBrowser.ɵDomRendererFactory2, _angular_animations_browser.ɵAnimationEngine, _angular_core.NgZone]\n }\n];\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserModule.\n */\nvar BROWSER_ANIMATIONS_PROVIDERS = [\n { provide: _angular_animations_browser.AnimationDriver, useFactory: instantiateSupportedAnimationDriver }\n].concat(SHARED_ANIMATION_PROVIDERS);\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserTestingModule.\n */\nvar BROWSER_NOOP_ANIMATIONS_PROVIDERS = [{ provide: _angular_animations_browser.AnimationDriver, useClass: _angular_animations_browser.ɵNoopAnimationDriver }].concat(SHARED_ANIMATION_PROVIDERS);\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * \\@experimental Animation support is experimental.\n */\nvar BrowserAnimationsModule = (function () {\n function BrowserAnimationsModule() {\n }\n BrowserAnimationsModule.decorators = [\n { type: _angular_core.NgModule, args: [{\n exports: [_angular_platformBrowser.BrowserModule],\n providers: BROWSER_ANIMATIONS_PROVIDERS,\n },] },\n ];\n /** @nocollapse */\n BrowserAnimationsModule.ctorParameters = function () { return []; };\n return BrowserAnimationsModule;\n}());\n/**\n * \\@experimental Animation support is experimental.\n */\nvar NoopAnimationsModule = (function () {\n function NoopAnimationsModule() {\n }\n NoopAnimationsModule.decorators = [\n { type: _angular_core.NgModule, args: [{\n exports: [_angular_platformBrowser.BrowserModule],\n providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS,\n },] },\n ];\n /** @nocollapse */\n NoopAnimationsModule.ctorParameters = function () { return []; };\n return NoopAnimationsModule;\n}());\n\nexports.BrowserAnimationsModule = BrowserAnimationsModule;\nexports.NoopAnimationsModule = NoopAnimationsModule;\nexports.ɵBrowserAnimationBuilder = BrowserAnimationBuilder;\nexports.ɵBrowserAnimationFactory = BrowserAnimationFactory;\nexports.ɵAnimationRenderer = AnimationRenderer;\nexports.ɵAnimationRendererFactory = AnimationRendererFactory;\nexports.ɵa = BaseAnimationRenderer;\nexports.ɵf = BROWSER_ANIMATIONS_PROVIDERS;\nexports.ɵg = BROWSER_NOOP_ANIMATIONS_PROVIDERS;\nexports.ɵb = InjectableAnimationEngine;\nexports.ɵd = instantiateDefaultStyleNormalizer;\nexports.ɵe = instantiateRendererFactory;\nexports.ɵc = instantiateSupportedAnimationDriver;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=platform-browser-animations.umd.js.map\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/@angular/platform-browser/bundles/platform-browser-animations.umd.js\n ** module id = 47\n ** module chunks = 0\n **/","/**\n * @license Angular v5.0.0\n * (c) 2010-2017 Google, Inc. https://angular.io/\n * License: MIT\n */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/animations')) :\n\ttypeof define === 'function' && define.amd ? define('@angular/animations/browser', ['exports', '@angular/animations'], factory) :\n\t(factory((global.ng = global.ng || {}, global.ng.animations = global.ng.animations || {}, global.ng.animations.browser = {}),global.ng.animations));\n}(this, (function (exports,_angular_animations) { 'use strict';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n};\n\n/**\n * @license Angular v5.0.0\n * (c) 2010-2017 Google, Inc. https://angular.io/\n * License: MIT\n */\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @param {?} players\n * @return {?}\n */\nfunction optimizeGroupPlayer(players) {\n switch (players.length) {\n case 0:\n return new _angular_animations.NoopAnimationPlayer();\n case 1:\n return players[0];\n default:\n return new _angular_animations.ɵAnimationGroupPlayer(players);\n }\n}\n/**\n * @param {?} driver\n * @param {?} normalizer\n * @param {?} element\n * @param {?} keyframes\n * @param {?=} preStyles\n * @param {?=} postStyles\n * @return {?}\n */\nfunction normalizeKeyframes(driver, normalizer, element, keyframes, preStyles, postStyles) {\n if (preStyles === void 0) { preStyles = {}; }\n if (postStyles === void 0) { postStyles = {}; }\n var /** @type {?} */ errors = [];\n var /** @type {?} */ normalizedKeyframes = [];\n var /** @type {?} */ previousOffset = -1;\n var /** @type {?} */ previousKeyframe = null;\n keyframes.forEach(function (kf) {\n var /** @type {?} */ offset = /** @type {?} */ (kf['offset']);\n var /** @type {?} */ isSameOffset = offset == previousOffset;\n var /** @type {?} */ normalizedKeyframe = (isSameOffset && previousKeyframe) || {};\n Object.keys(kf).forEach(function (prop) {\n var /** @type {?} */ normalizedProp = prop;\n var /** @type {?} */ normalizedValue = kf[prop];\n if (prop !== 'offset') {\n normalizedProp = normalizer.normalizePropertyName(normalizedProp, errors);\n switch (normalizedValue) {\n case _angular_animations.ɵPRE_STYLE:\n normalizedValue = preStyles[prop];\n break;\n case _angular_animations.AUTO_STYLE:\n normalizedValue = postStyles[prop];\n break;\n default:\n normalizedValue =\n normalizer.normalizeStyleValue(prop, normalizedProp, normalizedValue, errors);\n break;\n }\n }\n normalizedKeyframe[normalizedProp] = normalizedValue;\n });\n if (!isSameOffset) {\n normalizedKeyframes.push(normalizedKeyframe);\n }\n previousKeyframe = normalizedKeyframe;\n previousOffset = offset;\n });\n if (errors.length) {\n var /** @type {?} */ LINE_START = '\\n - ';\n throw new Error(\"Unable to animate due to the following errors:\" + LINE_START + errors.join(LINE_START));\n }\n return normalizedKeyframes;\n}\n/**\n * @param {?} player\n * @param {?} eventName\n * @param {?} event\n * @param {?} callback\n * @return {?}\n */\nfunction listenOnPlayer(player, eventName, event, callback) {\n switch (eventName) {\n case 'start':\n player.onStart(function () { return callback(event && copyAnimationEvent(event, 'start', player.totalTime)); });\n break;\n case 'done':\n player.onDone(function () { return callback(event && copyAnimationEvent(event, 'done', player.totalTime)); });\n break;\n case 'destroy':\n player.onDestroy(function () { return callback(event && copyAnimationEvent(event, 'destroy', player.totalTime)); });\n break;\n }\n}\n/**\n * @param {?} e\n * @param {?=} phaseName\n * @param {?=} totalTime\n * @return {?}\n */\nfunction copyAnimationEvent(e, phaseName, totalTime) {\n var /** @type {?} */ event = makeAnimationEvent(e.element, e.triggerName, e.fromState, e.toState, phaseName || e.phaseName, totalTime == undefined ? e.totalTime : totalTime);\n var /** @type {?} */ data = (/** @type {?} */ (e))['_data'];\n if (data != null) {\n (/** @type {?} */ (event))['_data'] = data;\n }\n return event;\n}\n/**\n * @param {?} element\n * @param {?} triggerName\n * @param {?} fromState\n * @param {?} toState\n * @param {?=} phaseName\n * @param {?=} totalTime\n * @return {?}\n */\nfunction makeAnimationEvent(element, triggerName, fromState, toState, phaseName, totalTime) {\n if (phaseName === void 0) { phaseName = ''; }\n if (totalTime === void 0) { totalTime = 0; }\n return { element: element, triggerName: triggerName, fromState: fromState, toState: toState, phaseName: phaseName, totalTime: totalTime };\n}\n/**\n * @param {?} map\n * @param {?} key\n * @param {?} defaultValue\n * @return {?}\n */\nfunction getOrSetAsInMap(map, key, defaultValue) {\n var /** @type {?} */ value;\n if (map instanceof Map) {\n value = map.get(key);\n if (!value) {\n map.set(key, value = defaultValue);\n }\n }\n else {\n value = map[key];\n if (!value) {\n value = map[key] = defaultValue;\n }\n }\n return value;\n}\n/**\n * @param {?} command\n * @return {?}\n */\nfunction parseTimelineCommand(command) {\n var /** @type {?} */ separatorPos = command.indexOf(':');\n var /** @type {?} */ id = command.substring(1, separatorPos);\n var /** @type {?} */ action = command.substr(separatorPos + 1);\n return [id, action];\n}\nvar _contains = function (elm1, elm2) { return false; };\nvar _matches = function (element, selector) {\n return false;\n};\nvar _query = function (element, selector, multi) {\n return [];\n};\nif (typeof Element != 'undefined') {\n // this is well supported in all browsers\n _contains = function (elm1, elm2) { return /** @type {?} */ (elm1.contains(elm2)); };\n if (Element.prototype.matches) {\n _matches = function (element, selector) { return element.matches(selector); };\n }\n else {\n var /** @type {?} */ proto = /** @type {?} */ (Element.prototype);\n var /** @type {?} */ fn_1 = proto.matchesSelector || proto.mozMatchesSelector || proto.msMatchesSelector ||\n proto.oMatchesSelector || proto.webkitMatchesSelector;\n if (fn_1) {\n _matches = function (element, selector) { return fn_1.apply(element, [selector]); };\n }\n }\n _query = function (element, selector, multi) {\n var /** @type {?} */ results = [];\n if (multi) {\n results.push.apply(results, element.querySelectorAll(selector));\n }\n else {\n var /** @type {?} */ elm = element.querySelector(selector);\n if (elm) {\n results.push(elm);\n }\n }\n return results;\n };\n}\nvar _CACHED_BODY = null;\n/**\n * @param {?} prop\n * @return {?}\n */\nfunction validateStyleProperty(prop) {\n if (!_CACHED_BODY) {\n _CACHED_BODY = getBodyNode() || {};\n }\n return /** @type {?} */ ((_CACHED_BODY)).style ? prop in /** @type {?} */ ((_CACHED_BODY)).style : true;\n}\n/**\n * @return {?}\n */\nfunction getBodyNode() {\n if (typeof document != 'undefined') {\n return document.body;\n }\n return null;\n}\nvar matchesElement = _matches;\nvar containsElement = _contains;\nvar invokeQuery = _query;\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * \\@experimental\n */\nvar NoopAnimationDriver = (function () {\n function NoopAnimationDriver() {\n }\n /**\n * @param {?} prop\n * @return {?}\n */\n NoopAnimationDriver.prototype.validateStyleProperty = /**\n * @param {?} prop\n * @return {?}\n */\n function (prop) { return validateStyleProperty(prop); };\n /**\n * @param {?} element\n * @param {?} selector\n * @return {?}\n */\n NoopAnimationDriver.prototype.matchesElement = /**\n * @param {?} element\n * @param {?} selector\n * @return {?}\n */\n function (element, selector) {\n return matchesElement(element, selector);\n };\n /**\n * @param {?} elm1\n * @param {?} elm2\n * @return {?}\n */\n NoopAnimationDriver.prototype.containsElement = /**\n * @param {?} elm1\n * @param {?} elm2\n * @return {?}\n */\n function (elm1, elm2) { return containsElement(elm1, elm2); };\n /**\n * @param {?} element\n * @param {?} selector\n * @param {?} multi\n * @return {?}\n */\n NoopAnimationDriver.prototype.query = /**\n * @param {?} element\n * @param {?} selector\n * @param {?} multi\n * @return {?}\n */\n function (element, selector, multi) {\n return invokeQuery(element, selector, multi);\n };\n /**\n * @param {?} element\n * @param {?} prop\n * @param {?=} defaultValue\n * @return {?}\n */\n NoopAnimationDriver.prototype.computeStyle = /**\n * @param {?} element\n * @param {?} prop\n * @param {?=} defaultValue\n * @return {?}\n */\n function (element, prop, defaultValue) {\n return defaultValue || '';\n };\n /**\n * @param {?} element\n * @param {?} keyframes\n * @param {?} duration\n * @param {?} delay\n * @param {?} easing\n * @param {?=} previousPlayers\n * @return {?}\n */\n NoopAnimationDriver.prototype.animate = /**\n * @param {?} element\n * @param {?} keyframes\n * @param {?} duration\n * @param {?} delay\n * @param {?} easing\n * @param {?=} previousPlayers\n * @return {?}\n */\n function (element, keyframes, duration, delay, easing, previousPlayers) {\n if (previousPlayers === void 0) { previousPlayers = []; }\n return new _angular_animations.NoopAnimationPlayer();\n };\n return NoopAnimationDriver;\n}());\n/**\n * \\@experimental\n * @abstract\n */\nvar AnimationDriver = (function () {\n function AnimationDriver() {\n }\n AnimationDriver.NOOP = new NoopAnimationDriver();\n return AnimationDriver;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar ONE_SECOND = 1000;\nvar SUBSTITUTION_EXPR_START = '{{';\nvar SUBSTITUTION_EXPR_END = '}}';\nvar ENTER_CLASSNAME = 'ng-enter';\nvar LEAVE_CLASSNAME = 'ng-leave';\nvar ENTER_SELECTOR = '.ng-enter';\nvar LEAVE_SELECTOR = '.ng-leave';\nvar NG_TRIGGER_CLASSNAME = 'ng-trigger';\nvar NG_TRIGGER_SELECTOR = '.ng-trigger';\nvar NG_ANIMATING_CLASSNAME = 'ng-animating';\nvar NG_ANIMATING_SELECTOR = '.ng-animating';\n/**\n * @param {?} value\n * @return {?}\n */\nfunction resolveTimingValue(value) {\n if (typeof value == 'number')\n return value;\n var /** @type {?} */ matches = (/** @type {?} */ (value)).match(/^(-?[\\.\\d]+)(m?s)/);\n if (!matches || matches.length < 2)\n return 0;\n return _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n}\n/**\n * @param {?} value\n * @param {?} unit\n * @return {?}\n */\nfunction _convertTimeValueToMS(value, unit) {\n switch (unit) {\n case 's':\n return value * ONE_SECOND;\n default:\n // ms or something else\n return value;\n }\n}\n/**\n * @param {?} timings\n * @param {?} errors\n * @param {?=} allowNegativeValues\n * @return {?}\n */\nfunction resolveTiming(timings, errors, allowNegativeValues) {\n return timings.hasOwnProperty('duration') ? /** @type {?} */ (timings) :\n parseTimeExpression(/** @type {?} */ (timings), errors, allowNegativeValues);\n}\n/**\n * @param {?} exp\n * @param {?} errors\n * @param {?=} allowNegativeValues\n * @return {?}\n */\nfunction parseTimeExpression(exp, errors, allowNegativeValues) {\n var /** @type {?} */ regex = /^(-?[\\.\\d]+)(m?s)(?:\\s+(-?[\\.\\d]+)(m?s))?(?:\\s+([-a-z]+(?:\\(.+?\\))?))?$/i;\n var /** @type {?} */ duration;\n var /** @type {?} */ delay = 0;\n var /** @type {?} */ easing = '';\n if (typeof exp === 'string') {\n var /** @type {?} */ matches = exp.match(regex);\n if (matches === null) {\n errors.push(\"The provided timing value \\\"\" + exp + \"\\\" is invalid.\");\n return { duration: 0, delay: 0, easing: '' };\n }\n duration = _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n var /** @type {?} */ delayMatch = matches[3];\n if (delayMatch != null) {\n delay = _convertTimeValueToMS(Math.floor(parseFloat(delayMatch)), matches[4]);\n }\n var /** @type {?} */ easingVal = matches[5];\n if (easingVal) {\n easing = easingVal;\n }\n }\n else {\n duration = /** @type {?} */ (exp);\n }\n if (!allowNegativeValues) {\n var /** @type {?} */ containsErrors = false;\n var /** @type {?} */ startIndex = errors.length;\n if (duration < 0) {\n errors.push(\"Duration values below 0 are not allowed for this animation step.\");\n containsErrors = true;\n }\n if (delay < 0) {\n errors.push(\"Delay values below 0 are not allowed for this animation step.\");\n containsErrors = true;\n }\n if (containsErrors) {\n errors.splice(startIndex, 0, \"The provided timing value \\\"\" + exp + \"\\\" is invalid.\");\n }\n }\n return { duration: duration, delay: delay, easing: easing };\n}\n/**\n * @param {?} obj\n * @param {?=} destination\n * @return {?}\n */\nfunction copyObj(obj, destination) {\n if (destination === void 0) { destination = {}; }\n Object.keys(obj).forEach(function (prop) { destination[prop] = obj[prop]; });\n return destination;\n}\n/**\n * @param {?} styles\n * @return {?}\n */\nfunction normalizeStyles(styles) {\n var /** @type {?} */ normalizedStyles = {};\n if (Array.isArray(styles)) {\n styles.forEach(function (data) { return copyStyles(data, false, normalizedStyles); });\n }\n else {\n copyStyles(styles, false, normalizedStyles);\n }\n return normalizedStyles;\n}\n/**\n * @param {?} styles\n * @param {?} readPrototype\n * @param {?=} destination\n * @return {?}\n */\nfunction copyStyles(styles, readPrototype, destination) {\n if (destination === void 0) { destination = {}; }\n if (readPrototype) {\n // we make use of a for-in loop so that the\n // prototypically inherited properties are\n // revealed from the backFill map\n for (var /** @type {?} */ prop in styles) {\n destination[prop] = styles[prop];\n }\n }\n else {\n copyObj(styles, destination);\n }\n return destination;\n}\n/**\n * @param {?} element\n * @param {?} styles\n * @return {?}\n */\nfunction setStyles(element, styles) {\n if (element['style']) {\n Object.keys(styles).forEach(function (prop) {\n var /** @type {?} */ camelProp = dashCaseToCamelCase(prop);\n element.style[camelProp] = styles[prop];\n });\n }\n}\n/**\n * @param {?} element\n * @param {?} styles\n * @return {?}\n */\nfunction eraseStyles(element, styles) {\n if (element['style']) {\n Object.keys(styles).forEach(function (prop) {\n var /** @type {?} */ camelProp = dashCaseToCamelCase(prop);\n element.style[camelProp] = '';\n });\n }\n}\n/**\n * @param {?} steps\n * @return {?}\n */\nfunction normalizeAnimationEntry(steps) {\n if (Array.isArray(steps)) {\n if (steps.length == 1)\n return steps[0];\n return _angular_animations.sequence(steps);\n }\n return /** @type {?} */ (steps);\n}\n/**\n * @param {?} value\n * @param {?} options\n * @param {?} errors\n * @return {?}\n */\nfunction validateStyleParams(value, options, errors) {\n var /** @type {?} */ params = options.params || {};\n var /** @type {?} */ matches = extractStyleParams(value);\n if (matches.length) {\n matches.forEach(function (varName) {\n if (!params.hasOwnProperty(varName)) {\n errors.push(\"Unable to resolve the local animation param \" + varName + \" in the given list of values\");\n }\n });\n }\n}\nvar PARAM_REGEX = new RegExp(SUBSTITUTION_EXPR_START + \"\\\\s*(.+?)\\\\s*\" + SUBSTITUTION_EXPR_END, 'g');\n/**\n * @param {?} value\n * @return {?}\n */\nfunction extractStyleParams(value) {\n var /** @type {?} */ params = [];\n if (typeof value === 'string') {\n var /** @type {?} */ val = value.toString();\n var /** @type {?} */ match = void 0;\n while (match = PARAM_REGEX.exec(val)) {\n params.push(/** @type {?} */ (match[1]));\n }\n PARAM_REGEX.lastIndex = 0;\n }\n return params;\n}\n/**\n * @param {?} value\n * @param {?} params\n * @param {?} errors\n * @return {?}\n */\nfunction interpolateParams(value, params, errors) {\n var /** @type {?} */ original = value.toString();\n var /** @type {?} */ str = original.replace(PARAM_REGEX, function (_, varName) {\n var /** @type {?} */ localVal = params[varName];\n // this means that the value was never overidden by the data passed in by the user\n if (!params.hasOwnProperty(varName)) {\n errors.push(\"Please provide a value for the animation param \" + varName);\n localVal = '';\n }\n return localVal.toString();\n });\n // we do this to assert that numeric values stay as they are\n return str == original ? value : str;\n}\n/**\n * @param {?} iterator\n * @return {?}\n */\nfunction iteratorToArray(iterator) {\n var /** @type {?} */ arr = [];\n var /** @type {?} */ item = iterator.next();\n while (!item.done) {\n arr.push(item.value);\n item = iterator.next();\n }\n return arr;\n}\n/**\n * @param {?} source\n * @param {?} destination\n * @return {?}\n */\n\nvar DASH_CASE_REGEXP = /-+([a-z0-9])/g;\n/**\n * @param {?} input\n * @return {?}\n */\nfunction dashCaseToCamelCase(input) {\n return input.replace(DASH_CASE_REGEXP, function () {\n var m = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n m[_i] = arguments[_i];\n }\n return m[1].toUpperCase();\n });\n}\n/**\n * @param {?} duration\n * @param {?} delay\n * @return {?}\n */\nfunction allowPreviousPlayerStylesMerge(duration, delay) {\n return duration === 0 || delay === 0;\n}\n/**\n * @param {?} visitor\n * @param {?} node\n * @param {?} context\n * @return {?}\n */\nfunction visitDslNode(visitor, node, context) {\n switch (node.type) {\n case 7 /* Trigger */:\n return visitor.visitTrigger(node, context);\n case 0 /* State */:\n return visitor.visitState(node, context);\n case 1 /* Transition */:\n return visitor.visitTransition(node, context);\n case 2 /* Sequence */:\n return visitor.visitSequence(node, context);\n case 3 /* Group */:\n return visitor.visitGroup(node, context);\n case 4 /* Animate */:\n return visitor.visitAnimate(node, context);\n case 5 /* Keyframes */:\n return visitor.visitKeyframes(node, context);\n case 6 /* Style */:\n return visitor.visitStyle(node, context);\n case 8 /* Reference */:\n return visitor.visitReference(node, context);\n case 9 /* AnimateChild */:\n return visitor.visitAnimateChild(node, context);\n case 10 /* AnimateRef */:\n return visitor.visitAnimateRef(node, context);\n case 11 /* Query */:\n return visitor.visitQuery(node, context);\n case 12 /* Stagger */:\n return visitor.visitStagger(node, context);\n default:\n throw new Error(\"Unable to resolve animation metadata node #\" + node.type);\n }\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar ANY_STATE = '*';\n/**\n * @param {?} transitionValue\n * @param {?} errors\n * @return {?}\n */\nfunction parseTransitionExpr(transitionValue, errors) {\n var /** @type {?} */ expressions = [];\n if (typeof transitionValue == 'string') {\n (/** @type {?} */ (transitionValue))\n .split(/\\s*,\\s*/)\n .forEach(function (str) { return parseInnerTransitionStr(str, expressions, errors); });\n }\n else {\n expressions.push(/** @type {?} */ (transitionValue));\n }\n return expressions;\n}\n/**\n * @param {?} eventStr\n * @param {?} expressions\n * @param {?} errors\n * @return {?}\n */\nfunction parseInnerTransitionStr(eventStr, expressions, errors) {\n if (eventStr[0] == ':') {\n var /** @type {?} */ result = parseAnimationAlias(eventStr, errors);\n if (typeof result == 'function') {\n expressions.push(result);\n return;\n }\n eventStr = /** @type {?} */ (result);\n }\n var /** @type {?} */ match = eventStr.match(/^(\\*|[-\\w]+)\\s*()\\s*(\\*|[-\\w]+)$/);\n if (match == null || match.length < 4) {\n errors.push(\"The provided transition expression \\\"\" + eventStr + \"\\\" is not supported\");\n return expressions;\n }\n var /** @type {?} */ fromState = match[1];\n var /** @type {?} */ separator = match[2];\n var /** @type {?} */ toState = match[3];\n expressions.push(makeLambdaFromStates(fromState, toState));\n var /** @type {?} */ isFullAnyStateExpr = fromState == ANY_STATE && toState == ANY_STATE;\n if (separator[0] == '<' && !isFullAnyStateExpr) {\n expressions.push(makeLambdaFromStates(toState, fromState));\n }\n}\n/**\n * @param {?} alias\n * @param {?} errors\n * @return {?}\n */\nfunction parseAnimationAlias(alias, errors) {\n switch (alias) {\n case ':enter':\n return 'void => *';\n case ':leave':\n return '* => void';\n case ':increment':\n return function (fromState, toState) { return parseFloat(toState) > parseFloat(fromState); };\n case ':decrement':\n return function (fromState, toState) { return parseFloat(toState) < parseFloat(fromState); };\n default:\n errors.push(\"The transition alias value \\\"\" + alias + \"\\\" is not supported\");\n return '* => *';\n }\n}\nvar TRUE_BOOLEAN_VALUES = new Set();\nTRUE_BOOLEAN_VALUES.add('true');\nTRUE_BOOLEAN_VALUES.add('1');\nvar FALSE_BOOLEAN_VALUES = new Set();\nFALSE_BOOLEAN_VALUES.add('false');\nFALSE_BOOLEAN_VALUES.add('0');\n/**\n * @param {?} lhs\n * @param {?} rhs\n * @return {?}\n */\nfunction makeLambdaFromStates(lhs, rhs) {\n var /** @type {?} */ LHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(lhs) || FALSE_BOOLEAN_VALUES.has(lhs);\n var /** @type {?} */ RHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(rhs) || FALSE_BOOLEAN_VALUES.has(rhs);\n return function (fromState, toState) {\n var /** @type {?} */ lhsMatch = lhs == ANY_STATE || lhs == fromState;\n var /** @type {?} */ rhsMatch = rhs == ANY_STATE || rhs == toState;\n if (!lhsMatch && LHS_MATCH_BOOLEAN && typeof fromState === 'boolean') {\n lhsMatch = fromState ? TRUE_BOOLEAN_VALUES.has(lhs) : FALSE_BOOLEAN_VALUES.has(lhs);\n }\n if (!rhsMatch && RHS_MATCH_BOOLEAN && typeof toState === 'boolean') {\n rhsMatch = toState ? TRUE_BOOLEAN_VALUES.has(rhs) : FALSE_BOOLEAN_VALUES.has(rhs);\n }\n return lhsMatch && rhsMatch;\n };\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar SELF_TOKEN = ':self';\nvar SELF_TOKEN_REGEX = new RegExp(\"s*\" + SELF_TOKEN + \"s*,?\", 'g');\n/**\n * @param {?} driver\n * @param {?} metadata\n * @param {?} errors\n * @return {?}\n */\nfunction buildAnimationAst(driver, metadata, errors) {\n return new AnimationAstBuilderVisitor(driver).build(metadata, errors);\n}\nvar LEAVE_TOKEN = ':leave';\nvar LEAVE_TOKEN_REGEX = new RegExp(LEAVE_TOKEN, 'g');\nvar ENTER_TOKEN = ':enter';\nvar ENTER_TOKEN_REGEX = new RegExp(ENTER_TOKEN, 'g');\nvar ROOT_SELECTOR = '';\nvar AnimationAstBuilderVisitor = (function () {\n function AnimationAstBuilderVisitor(_driver) {\n this._driver = _driver;\n }\n /**\n * @param {?} metadata\n * @param {?} errors\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype.build = /**\n * @param {?} metadata\n * @param {?} errors\n * @return {?}\n */\n function (metadata, errors) {\n var /** @type {?} */ context = new AnimationAstBuilderContext(errors);\n this._resetContextStyleTimingState(context);\n return /** @type {?} */ (visitDslNode(this, normalizeAnimationEntry(metadata), context));\n };\n /**\n * @param {?} context\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype._resetContextStyleTimingState = /**\n * @param {?} context\n * @return {?}\n */\n function (context) {\n context.currentQuerySelector = ROOT_SELECTOR;\n context.collectedStyles = {};\n context.collectedStyles[ROOT_SELECTOR] = {};\n context.currentTime = 0;\n };\n /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype.visitTrigger = /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n function (metadata, context) {\n var _this = this;\n var /** @type {?} */ queryCount = context.queryCount = 0;\n var /** @type {?} */ depCount = context.depCount = 0;\n var /** @type {?} */ states = [];\n var /** @type {?} */ transitions = [];\n metadata.definitions.forEach(function (def) {\n _this._resetContextStyleTimingState(context);\n if (def.type == 0 /* State */) {\n var /** @type {?} */ stateDef_1 = /** @type {?} */ (def);\n var /** @type {?} */ name_1 = stateDef_1.name;\n name_1.split(/\\s*,\\s*/).forEach(function (n) {\n stateDef_1.name = n;\n states.push(_this.visitState(stateDef_1, context));\n });\n stateDef_1.name = name_1;\n }\n else if (def.type == 1 /* Transition */) {\n var /** @type {?} */ transition = _this.visitTransition(/** @type {?} */ (def), context);\n queryCount += transition.queryCount;\n depCount += transition.depCount;\n transitions.push(transition);\n }\n else {\n context.errors.push('only state() and transition() definitions can sit inside of a trigger()');\n }\n });\n return {\n type: 7 /* Trigger */,\n name: metadata.name, states: states, transitions: transitions, queryCount: queryCount, depCount: depCount,\n options: null\n };\n };\n /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype.visitState = /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n function (metadata, context) {\n var /** @type {?} */ styleAst = this.visitStyle(metadata.styles, context);\n var /** @type {?} */ astParams = (metadata.options && metadata.options.params) || null;\n if (styleAst.containsDynamicStyles) {\n var /** @type {?} */ missingSubs_1 = new Set();\n var /** @type {?} */ params_1 = astParams || {};\n styleAst.styles.forEach(function (value) {\n if (isObject(value)) {\n var /** @type {?} */ stylesObj_1 = /** @type {?} */ (value);\n Object.keys(stylesObj_1).forEach(function (prop) {\n extractStyleParams(stylesObj_1[prop]).forEach(function (sub) {\n if (!params_1.hasOwnProperty(sub)) {\n missingSubs_1.add(sub);\n }\n });\n });\n }\n });\n if (missingSubs_1.size) {\n var /** @type {?} */ missingSubsArr = iteratorToArray(missingSubs_1.values());\n context.errors.push(\"state(\\\"\" + metadata.name + \"\\\", ...) must define default values for all the following style substitutions: \" + missingSubsArr.join(', '));\n }\n }\n return {\n type: 0 /* State */,\n name: metadata.name,\n style: styleAst,\n options: astParams ? { params: astParams } : null\n };\n };\n /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype.visitTransition = /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n function (metadata, context) {\n context.queryCount = 0;\n context.depCount = 0;\n var /** @type {?} */ animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n var /** @type {?} */ matchers = parseTransitionExpr(metadata.expr, context.errors);\n return {\n type: 1 /* Transition */,\n matchers: matchers,\n animation: animation,\n queryCount: context.queryCount,\n depCount: context.depCount,\n options: normalizeAnimationOptions(metadata.options)\n };\n };\n /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype.visitSequence = /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n function (metadata, context) {\n var _this = this;\n return {\n type: 2 /* Sequence */,\n steps: metadata.steps.map(function (s) { return visitDslNode(_this, s, context); }),\n options: normalizeAnimationOptions(metadata.options)\n };\n };\n /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype.visitGroup = /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n function (metadata, context) {\n var _this = this;\n var /** @type {?} */ currentTime = context.currentTime;\n var /** @type {?} */ furthestTime = 0;\n var /** @type {?} */ steps = metadata.steps.map(function (step) {\n context.currentTime = currentTime;\n var /** @type {?} */ innerAst = visitDslNode(_this, step, context);\n furthestTime = Math.max(furthestTime, context.currentTime);\n return innerAst;\n });\n context.currentTime = furthestTime;\n return {\n type: 3 /* Group */,\n steps: steps,\n options: normalizeAnimationOptions(metadata.options)\n };\n };\n /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype.visitAnimate = /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n function (metadata, context) {\n var /** @type {?} */ timingAst = constructTimingAst(metadata.timings, context.errors);\n context.currentAnimateTimings = timingAst;\n var /** @type {?} */ styleAst;\n var /** @type {?} */ styleMetadata = metadata.styles ? metadata.styles : _angular_animations.style({});\n if (styleMetadata.type == 5 /* Keyframes */) {\n styleAst = this.visitKeyframes(/** @type {?} */ (styleMetadata), context);\n }\n else {\n var /** @type {?} */ styleMetadata_1 = /** @type {?} */ (metadata.styles);\n var /** @type {?} */ isEmpty = false;\n if (!styleMetadata_1) {\n isEmpty = true;\n var /** @type {?} */ newStyleData = {};\n if (timingAst.easing) {\n newStyleData['easing'] = timingAst.easing;\n }\n styleMetadata_1 = _angular_animations.style(newStyleData);\n }\n context.currentTime += timingAst.duration + timingAst.delay;\n var /** @type {?} */ _styleAst = this.visitStyle(styleMetadata_1, context);\n _styleAst.isEmptyStep = isEmpty;\n styleAst = _styleAst;\n }\n context.currentAnimateTimings = null;\n return {\n type: 4 /* Animate */,\n timings: timingAst,\n style: styleAst,\n options: null\n };\n };\n /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype.visitStyle = /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n function (metadata, context) {\n var /** @type {?} */ ast = this._makeStyleAst(metadata, context);\n this._validateStyleAst(ast, context);\n return ast;\n };\n /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype._makeStyleAst = /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n function (metadata, context) {\n var /** @type {?} */ styles = [];\n if (Array.isArray(metadata.styles)) {\n (/** @type {?} */ (metadata.styles)).forEach(function (styleTuple) {\n if (typeof styleTuple == 'string') {\n if (styleTuple == _angular_animations.AUTO_STYLE) {\n styles.push(/** @type {?} */ (styleTuple));\n }\n else {\n context.errors.push(\"The provided style string value \" + styleTuple + \" is not allowed.\");\n }\n }\n else {\n styles.push(/** @type {?} */ (styleTuple));\n }\n });\n }\n else {\n styles.push(metadata.styles);\n }\n var /** @type {?} */ containsDynamicStyles = false;\n var /** @type {?} */ collectedEasing = null;\n styles.forEach(function (styleData) {\n if (isObject(styleData)) {\n var /** @type {?} */ styleMap = /** @type {?} */ (styleData);\n var /** @type {?} */ easing = styleMap['easing'];\n if (easing) {\n collectedEasing = /** @type {?} */ (easing);\n delete styleMap['easing'];\n }\n if (!containsDynamicStyles) {\n for (var /** @type {?} */ prop in styleMap) {\n var /** @type {?} */ value = styleMap[prop];\n if (value.toString().indexOf(SUBSTITUTION_EXPR_START) >= 0) {\n containsDynamicStyles = true;\n break;\n }\n }\n }\n }\n });\n return {\n type: 6 /* Style */,\n styles: styles,\n easing: collectedEasing,\n offset: metadata.offset, containsDynamicStyles: containsDynamicStyles,\n options: null\n };\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype._validateStyleAst = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n var _this = this;\n var /** @type {?} */ timings = context.currentAnimateTimings;\n var /** @type {?} */ endTime = context.currentTime;\n var /** @type {?} */ startTime = context.currentTime;\n if (timings && startTime > 0) {\n startTime -= timings.duration + timings.delay;\n }\n ast.styles.forEach(function (tuple) {\n if (typeof tuple == 'string')\n return;\n Object.keys(tuple).forEach(function (prop) {\n if (!_this._driver.validateStyleProperty(prop)) {\n context.errors.push(\"The provided animation property \\\"\" + prop + \"\\\" is not a supported CSS property for animations\");\n return;\n }\n var /** @type {?} */ collectedStyles = context.collectedStyles[/** @type {?} */ ((context.currentQuerySelector))];\n var /** @type {?} */ collectedEntry = collectedStyles[prop];\n var /** @type {?} */ updateCollectedStyle = true;\n if (collectedEntry) {\n if (startTime != endTime && startTime >= collectedEntry.startTime &&\n endTime <= collectedEntry.endTime) {\n context.errors.push(\"The CSS property \\\"\" + prop + \"\\\" that exists between the times of \\\"\" + collectedEntry.startTime + \"ms\\\" and \\\"\" + collectedEntry.endTime + \"ms\\\" is also being animated in a parallel animation between the times of \\\"\" + startTime + \"ms\\\" and \\\"\" + endTime + \"ms\\\"\");\n updateCollectedStyle = false;\n }\n // we always choose the smaller start time value since we\n // want to have a record of the entire animation window where\n // the style property is being animated in between\n startTime = collectedEntry.startTime;\n }\n if (updateCollectedStyle) {\n collectedStyles[prop] = { startTime: startTime, endTime: endTime };\n }\n if (context.options) {\n validateStyleParams(tuple[prop], context.options, context.errors);\n }\n });\n });\n };\n /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype.visitKeyframes = /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n function (metadata, context) {\n var _this = this;\n var /** @type {?} */ ast = { type: 5 /* Keyframes */, styles: [], options: null };\n if (!context.currentAnimateTimings) {\n context.errors.push(\"keyframes() must be placed inside of a call to animate()\");\n return ast;\n }\n var /** @type {?} */ MAX_KEYFRAME_OFFSET = 1;\n var /** @type {?} */ totalKeyframesWithOffsets = 0;\n var /** @type {?} */ offsets = [];\n var /** @type {?} */ offsetsOutOfOrder = false;\n var /** @type {?} */ keyframesOutOfRange = false;\n var /** @type {?} */ previousOffset = 0;\n var /** @type {?} */ keyframes = metadata.steps.map(function (styles) {\n var /** @type {?} */ style$$1 = _this._makeStyleAst(styles, context);\n var /** @type {?} */ offsetVal = style$$1.offset != null ? style$$1.offset : consumeOffset(style$$1.styles);\n var /** @type {?} */ offset = 0;\n if (offsetVal != null) {\n totalKeyframesWithOffsets++;\n offset = style$$1.offset = offsetVal;\n }\n keyframesOutOfRange = keyframesOutOfRange || offset < 0 || offset > 1;\n offsetsOutOfOrder = offsetsOutOfOrder || offset < previousOffset;\n previousOffset = offset;\n offsets.push(offset);\n return style$$1;\n });\n if (keyframesOutOfRange) {\n context.errors.push(\"Please ensure that all keyframe offsets are between 0 and 1\");\n }\n if (offsetsOutOfOrder) {\n context.errors.push(\"Please ensure that all keyframe offsets are in order\");\n }\n var /** @type {?} */ length = metadata.steps.length;\n var /** @type {?} */ generatedOffset = 0;\n if (totalKeyframesWithOffsets > 0 && totalKeyframesWithOffsets < length) {\n context.errors.push(\"Not all style() steps within the declared keyframes() contain offsets\");\n }\n else if (totalKeyframesWithOffsets == 0) {\n generatedOffset = MAX_KEYFRAME_OFFSET / (length - 1);\n }\n var /** @type {?} */ limit = length - 1;\n var /** @type {?} */ currentTime = context.currentTime;\n var /** @type {?} */ currentAnimateTimings = /** @type {?} */ ((context.currentAnimateTimings));\n var /** @type {?} */ animateDuration = currentAnimateTimings.duration;\n keyframes.forEach(function (kf, i) {\n var /** @type {?} */ offset = generatedOffset > 0 ? (i == limit ? 1 : (generatedOffset * i)) : offsets[i];\n var /** @type {?} */ durationUpToThisFrame = offset * animateDuration;\n context.currentTime = currentTime + currentAnimateTimings.delay + durationUpToThisFrame;\n currentAnimateTimings.duration = durationUpToThisFrame;\n _this._validateStyleAst(kf, context);\n kf.offset = offset;\n ast.styles.push(kf);\n });\n return ast;\n };\n /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype.visitReference = /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n function (metadata, context) {\n return {\n type: 8 /* Reference */,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n options: normalizeAnimationOptions(metadata.options)\n };\n };\n /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype.visitAnimateChild = /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n function (metadata, context) {\n context.depCount++;\n return {\n type: 9 /* AnimateChild */,\n options: normalizeAnimationOptions(metadata.options)\n };\n };\n /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype.visitAnimateRef = /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n function (metadata, context) {\n return {\n type: 10 /* AnimateRef */,\n animation: this.visitReference(metadata.animation, context),\n options: normalizeAnimationOptions(metadata.options)\n };\n };\n /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype.visitQuery = /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n function (metadata, context) {\n var /** @type {?} */ parentSelector = /** @type {?} */ ((context.currentQuerySelector));\n var /** @type {?} */ options = /** @type {?} */ ((metadata.options || {}));\n context.queryCount++;\n context.currentQuery = metadata;\n var _a = normalizeSelector(metadata.selector), selector = _a[0], includeSelf = _a[1];\n context.currentQuerySelector =\n parentSelector.length ? (parentSelector + ' ' + selector) : selector;\n getOrSetAsInMap(context.collectedStyles, context.currentQuerySelector, {});\n var /** @type {?} */ animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n context.currentQuery = null;\n context.currentQuerySelector = parentSelector;\n return {\n type: 11 /* Query */,\n selector: selector,\n limit: options.limit || 0,\n optional: !!options.optional, includeSelf: includeSelf, animation: animation,\n originalSelector: metadata.selector,\n options: normalizeAnimationOptions(metadata.options)\n };\n };\n /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype.visitStagger = /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n function (metadata, context) {\n if (!context.currentQuery) {\n context.errors.push(\"stagger() can only be used inside of query()\");\n }\n var /** @type {?} */ timings = metadata.timings === 'full' ?\n { duration: 0, delay: 0, easing: 'full' } :\n resolveTiming(metadata.timings, context.errors, true);\n return {\n type: 12 /* Stagger */,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context), timings: timings,\n options: null\n };\n };\n return AnimationAstBuilderVisitor;\n}());\n/**\n * @param {?} selector\n * @return {?}\n */\nfunction normalizeSelector(selector) {\n var /** @type {?} */ hasAmpersand = selector.split(/\\s*,\\s*/).find(function (token) { return token == SELF_TOKEN; }) ? true : false;\n if (hasAmpersand) {\n selector = selector.replace(SELF_TOKEN_REGEX, '');\n }\n selector = selector.replace(ENTER_TOKEN_REGEX, ENTER_SELECTOR)\n .replace(LEAVE_TOKEN_REGEX, LEAVE_SELECTOR)\n .replace(/@\\*/g, NG_TRIGGER_SELECTOR)\n .replace(/@\\w+/g, function (match) { return NG_TRIGGER_SELECTOR + '-' + match.substr(1); })\n .replace(/:animating/g, NG_ANIMATING_SELECTOR);\n return [selector, hasAmpersand];\n}\n/**\n * @param {?} obj\n * @return {?}\n */\nfunction normalizeParams(obj) {\n return obj ? copyObj(obj) : null;\n}\nvar AnimationAstBuilderContext = (function () {\n function AnimationAstBuilderContext(errors) {\n this.errors = errors;\n this.queryCount = 0;\n this.depCount = 0;\n this.currentTransition = null;\n this.currentQuery = null;\n this.currentQuerySelector = null;\n this.currentAnimateTimings = null;\n this.currentTime = 0;\n this.collectedStyles = {};\n this.options = null;\n }\n return AnimationAstBuilderContext;\n}());\n/**\n * @param {?} styles\n * @return {?}\n */\nfunction consumeOffset(styles) {\n if (typeof styles == 'string')\n return null;\n var /** @type {?} */ offset = null;\n if (Array.isArray(styles)) {\n styles.forEach(function (styleTuple) {\n if (isObject(styleTuple) && styleTuple.hasOwnProperty('offset')) {\n var /** @type {?} */ obj = /** @type {?} */ (styleTuple);\n offset = parseFloat(/** @type {?} */ (obj['offset']));\n delete obj['offset'];\n }\n });\n }\n else if (isObject(styles) && styles.hasOwnProperty('offset')) {\n var /** @type {?} */ obj = /** @type {?} */ (styles);\n offset = parseFloat(/** @type {?} */ (obj['offset']));\n delete obj['offset'];\n }\n return offset;\n}\n/**\n * @param {?} value\n * @return {?}\n */\nfunction isObject(value) {\n return !Array.isArray(value) && typeof value == 'object';\n}\n/**\n * @param {?} value\n * @param {?} errors\n * @return {?}\n */\nfunction constructTimingAst(value, errors) {\n var /** @type {?} */ timings = null;\n if (value.hasOwnProperty('duration')) {\n timings = /** @type {?} */ (value);\n }\n else if (typeof value == 'number') {\n var /** @type {?} */ duration = resolveTiming(/** @type {?} */ (value), errors).duration;\n return makeTimingAst(/** @type {?} */ (duration), 0, '');\n }\n var /** @type {?} */ strValue = /** @type {?} */ (value);\n var /** @type {?} */ isDynamic = strValue.split(/\\s+/).some(function (v) { return v.charAt(0) == '{' && v.charAt(1) == '{'; });\n if (isDynamic) {\n var /** @type {?} */ ast = /** @type {?} */ (makeTimingAst(0, 0, ''));\n ast.dynamic = true;\n ast.strValue = strValue;\n return /** @type {?} */ (ast);\n }\n timings = timings || resolveTiming(strValue, errors);\n return makeTimingAst(timings.duration, timings.delay, timings.easing);\n}\n/**\n * @param {?} options\n * @return {?}\n */\nfunction normalizeAnimationOptions(options) {\n if (options) {\n options = copyObj(options);\n if (options['params']) {\n options['params'] = /** @type {?} */ ((normalizeParams(options['params'])));\n }\n }\n else {\n options = {};\n }\n return options;\n}\n/**\n * @param {?} duration\n * @param {?} delay\n * @param {?} easing\n * @return {?}\n */\nfunction makeTimingAst(duration, delay, easing) {\n return { duration: duration, delay: delay, easing: easing };\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @record\n */\n\n/**\n * @param {?} element\n * @param {?} keyframes\n * @param {?} preStyleProps\n * @param {?} postStyleProps\n * @param {?} duration\n * @param {?} delay\n * @param {?=} easing\n * @param {?=} subTimeline\n * @return {?}\n */\nfunction createTimelineInstruction(element, keyframes, preStyleProps, postStyleProps, duration, delay, easing, subTimeline) {\n if (easing === void 0) { easing = null; }\n if (subTimeline === void 0) { subTimeline = false; }\n return {\n type: 1 /* TimelineAnimation */,\n element: element,\n keyframes: keyframes,\n preStyleProps: preStyleProps,\n postStyleProps: postStyleProps,\n duration: duration,\n delay: delay,\n totalTime: duration + delay, easing: easing, subTimeline: subTimeline\n };\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\nvar ElementInstructionMap = (function () {\n function ElementInstructionMap() {\n this._map = new Map();\n }\n /**\n * @param {?} element\n * @return {?}\n */\n ElementInstructionMap.prototype.consume = /**\n * @param {?} element\n * @return {?}\n */\n function (element) {\n var /** @type {?} */ instructions = this._map.get(element);\n if (instructions) {\n this._map.delete(element);\n }\n else {\n instructions = [];\n }\n return instructions;\n };\n /**\n * @param {?} element\n * @param {?} instructions\n * @return {?}\n */\n ElementInstructionMap.prototype.append = /**\n * @param {?} element\n * @param {?} instructions\n * @return {?}\n */\n function (element, instructions) {\n var /** @type {?} */ existingInstructions = this._map.get(element);\n if (!existingInstructions) {\n this._map.set(element, existingInstructions = []);\n }\n existingInstructions.push.apply(existingInstructions, instructions);\n };\n /**\n * @param {?} element\n * @return {?}\n */\n ElementInstructionMap.prototype.has = /**\n * @param {?} element\n * @return {?}\n */\n function (element) { return this._map.has(element); };\n /**\n * @return {?}\n */\n ElementInstructionMap.prototype.clear = /**\n * @return {?}\n */\n function () { this._map.clear(); };\n return ElementInstructionMap;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar ONE_FRAME_IN_MILLISECONDS = 1;\n/**\n * @param {?} driver\n * @param {?} rootElement\n * @param {?} ast\n * @param {?=} startingStyles\n * @param {?=} finalStyles\n * @param {?=} options\n * @param {?=} subInstructions\n * @param {?=} errors\n * @return {?}\n */\nfunction buildAnimationTimelines(driver, rootElement, ast, startingStyles, finalStyles, options, subInstructions, errors) {\n if (startingStyles === void 0) { startingStyles = {}; }\n if (finalStyles === void 0) { finalStyles = {}; }\n if (errors === void 0) { errors = []; }\n return new AnimationTimelineBuilderVisitor().buildKeyframes(driver, rootElement, ast, startingStyles, finalStyles, options, subInstructions, errors);\n}\nvar AnimationTimelineBuilderVisitor = (function () {\n function AnimationTimelineBuilderVisitor() {\n }\n /**\n * @param {?} driver\n * @param {?} rootElement\n * @param {?} ast\n * @param {?} startingStyles\n * @param {?} finalStyles\n * @param {?} options\n * @param {?=} subInstructions\n * @param {?=} errors\n * @return {?}\n */\n AnimationTimelineBuilderVisitor.prototype.buildKeyframes = /**\n * @param {?} driver\n * @param {?} rootElement\n * @param {?} ast\n * @param {?} startingStyles\n * @param {?} finalStyles\n * @param {?} options\n * @param {?=} subInstructions\n * @param {?=} errors\n * @return {?}\n */\n function (driver, rootElement, ast, startingStyles, finalStyles, options, subInstructions, errors) {\n if (errors === void 0) { errors = []; }\n subInstructions = subInstructions || new ElementInstructionMap();\n var /** @type {?} */ context = new AnimationTimelineContext(driver, rootElement, subInstructions, errors, []);\n context.options = options;\n context.currentTimeline.setStyles([startingStyles], null, context.errors, options);\n visitDslNode(this, ast, context);\n // this checks to see if an actual animation happened\n var /** @type {?} */ timelines = context.timelines.filter(function (timeline) { return timeline.containsAnimation(); });\n if (timelines.length && Object.keys(finalStyles).length) {\n var /** @type {?} */ tl = timelines[timelines.length - 1];\n if (!tl.allowOnlyTimelineStyles()) {\n tl.setStyles([finalStyles], null, context.errors, options);\n }\n }\n return timelines.length ? timelines.map(function (timeline) { return timeline.buildKeyframes(); }) :\n [createTimelineInstruction(rootElement, [], [], [], 0, 0, '', false)];\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AnimationTimelineBuilderVisitor.prototype.visitTrigger = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n // these values are not visited in this AST\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AnimationTimelineBuilderVisitor.prototype.visitState = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n // these values are not visited in this AST\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AnimationTimelineBuilderVisitor.prototype.visitTransition = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n // these values are not visited in this AST\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AnimationTimelineBuilderVisitor.prototype.visitAnimateChild = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n var /** @type {?} */ elementInstructions = context.subInstructions.consume(context.element);\n if (elementInstructions) {\n var /** @type {?} */ innerContext = context.createSubContext(ast.options);\n var /** @type {?} */ startTime = context.currentTimeline.currentTime;\n var /** @type {?} */ endTime = this._visitSubInstructions(elementInstructions, innerContext, /** @type {?} */ (innerContext.options));\n if (startTime != endTime) {\n // we do this on the upper context because we created a sub context for\n // the sub child animations\n context.transformIntoNewTimeline(endTime);\n }\n }\n context.previousNode = ast;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AnimationTimelineBuilderVisitor.prototype.visitAnimateRef = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n var /** @type {?} */ innerContext = context.createSubContext(ast.options);\n innerContext.transformIntoNewTimeline();\n this.visitReference(ast.animation, innerContext);\n context.transformIntoNewTimeline(innerContext.currentTimeline.currentTime);\n context.previousNode = ast;\n };\n /**\n * @param {?} instructions\n * @param {?} context\n * @param {?} options\n * @return {?}\n */\n AnimationTimelineBuilderVisitor.prototype._visitSubInstructions = /**\n * @param {?} instructions\n * @param {?} context\n * @param {?} options\n * @return {?}\n */\n function (instructions, context, options) {\n var /** @type {?} */ startTime = context.currentTimeline.currentTime;\n var /** @type {?} */ furthestTime = startTime;\n // this is a special-case for when a user wants to skip a sub\n // animation from being fired entirely.\n var /** @type {?} */ duration = options.duration != null ? resolveTimingValue(options.duration) : null;\n var /** @type {?} */ delay = options.delay != null ? resolveTimingValue(options.delay) : null;\n if (duration !== 0) {\n instructions.forEach(function (instruction) {\n var /** @type {?} */ instructionTimings = context.appendInstructionToTimeline(instruction, duration, delay);\n furthestTime =\n Math.max(furthestTime, instructionTimings.duration + instructionTimings.delay);\n });\n }\n return furthestTime;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AnimationTimelineBuilderVisitor.prototype.visitReference = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n context.updateOptions(ast.options, true);\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AnimationTimelineBuilderVisitor.prototype.visitSequence = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n var _this = this;\n var /** @type {?} */ subContextCount = context.subContextCount;\n var /** @type {?} */ ctx = context;\n var /** @type {?} */ options = ast.options;\n if (options && (options.params || options.delay)) {\n ctx = context.createSubContext(options);\n ctx.transformIntoNewTimeline();\n if (options.delay != null) {\n if (ctx.previousNode.type == 6 /* Style */) {\n ctx.currentTimeline.snapshotCurrentStyles();\n ctx.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n var /** @type {?} */ delay = resolveTimingValue(options.delay);\n ctx.delayNextStep(delay);\n }\n }\n if (ast.steps.length) {\n ast.steps.forEach(function (s) { return visitDslNode(_this, s, ctx); });\n // this is here just incase the inner steps only contain or end with a style() call\n ctx.currentTimeline.applyStylesToKeyframe();\n // this means that some animation function within the sequence\n // ended up creating a sub timeline (which means the current\n // timeline cannot overlap with the contents of the sequence)\n if (ctx.subContextCount > subContextCount) {\n ctx.transformIntoNewTimeline();\n }\n }\n context.previousNode = ast;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AnimationTimelineBuilderVisitor.prototype.visitGroup = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n var _this = this;\n var /** @type {?} */ innerTimelines = [];\n var /** @type {?} */ furthestTime = context.currentTimeline.currentTime;\n var /** @type {?} */ delay = ast.options && ast.options.delay ? resolveTimingValue(ast.options.delay) : 0;\n ast.steps.forEach(function (s) {\n var /** @type {?} */ innerContext = context.createSubContext(ast.options);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n visitDslNode(_this, s, innerContext);\n furthestTime = Math.max(furthestTime, innerContext.currentTimeline.currentTime);\n innerTimelines.push(innerContext.currentTimeline);\n });\n // this operation is run after the AST loop because otherwise\n // if the parent timeline's collected styles were updated then\n // it would pass in invalid data into the new-to-be forked items\n innerTimelines.forEach(function (timeline) { return context.currentTimeline.mergeTimelineCollectedStyles(timeline); });\n context.transformIntoNewTimeline(furthestTime);\n context.previousNode = ast;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AnimationTimelineBuilderVisitor.prototype._visitTiming = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n if ((/** @type {?} */ (ast)).dynamic) {\n var /** @type {?} */ strValue = (/** @type {?} */ (ast)).strValue;\n var /** @type {?} */ timingValue = context.params ? interpolateParams(strValue, context.params, context.errors) : strValue;\n return resolveTiming(timingValue, context.errors);\n }\n else {\n return { duration: ast.duration, delay: ast.delay, easing: ast.easing };\n }\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AnimationTimelineBuilderVisitor.prototype.visitAnimate = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n var /** @type {?} */ timings = context.currentAnimateTimings = this._visitTiming(ast.timings, context);\n var /** @type {?} */ timeline = context.currentTimeline;\n if (timings.delay) {\n context.incrementTime(timings.delay);\n timeline.snapshotCurrentStyles();\n }\n var /** @type {?} */ style$$1 = ast.style;\n if (style$$1.type == 5 /* Keyframes */) {\n this.visitKeyframes(style$$1, context);\n }\n else {\n context.incrementTime(timings.duration);\n this.visitStyle(/** @type {?} */ (style$$1), context);\n timeline.applyStylesToKeyframe();\n }\n context.currentAnimateTimings = null;\n context.previousNode = ast;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AnimationTimelineBuilderVisitor.prototype.visitStyle = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n var /** @type {?} */ timeline = context.currentTimeline;\n var /** @type {?} */ timings = /** @type {?} */ ((context.currentAnimateTimings));\n // this is a special case for when a style() call\n // directly follows an animate() call (but not inside of an animate() call)\n if (!timings && timeline.getCurrentStyleProperties().length) {\n timeline.forwardFrame();\n }\n var /** @type {?} */ easing = (timings && timings.easing) || ast.easing;\n if (ast.isEmptyStep) {\n timeline.applyEmptyStep(easing);\n }\n else {\n timeline.setStyles(ast.styles, easing, context.errors, context.options);\n }\n context.previousNode = ast;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AnimationTimelineBuilderVisitor.prototype.visitKeyframes = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n var /** @type {?} */ currentAnimateTimings = /** @type {?} */ ((context.currentAnimateTimings));\n var /** @type {?} */ startTime = (/** @type {?} */ ((context.currentTimeline))).duration;\n var /** @type {?} */ duration = currentAnimateTimings.duration;\n var /** @type {?} */ innerContext = context.createSubContext();\n var /** @type {?} */ innerTimeline = innerContext.currentTimeline;\n innerTimeline.easing = currentAnimateTimings.easing;\n ast.styles.forEach(function (step) {\n var /** @type {?} */ offset = step.offset || 0;\n innerTimeline.forwardTime(offset * duration);\n innerTimeline.setStyles(step.styles, step.easing, context.errors, context.options);\n innerTimeline.applyStylesToKeyframe();\n });\n // this will ensure that the parent timeline gets all the styles from\n // the child even if the new timeline below is not used\n context.currentTimeline.mergeTimelineCollectedStyles(innerTimeline);\n // we do this because the window between this timeline and the sub timeline\n // should ensure that the styles within are exactly the same as they were before\n context.transformIntoNewTimeline(startTime + duration);\n context.previousNode = ast;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AnimationTimelineBuilderVisitor.prototype.visitQuery = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n var _this = this;\n // in the event that the first step before this is a style step we need\n // to ensure the styles are applied before the children are animated\n var /** @type {?} */ startTime = context.currentTimeline.currentTime;\n var /** @type {?} */ options = /** @type {?} */ ((ast.options || {}));\n var /** @type {?} */ delay = options.delay ? resolveTimingValue(options.delay) : 0;\n if (delay && (context.previousNode.type === 6 /* Style */ ||\n (startTime == 0 && context.currentTimeline.getCurrentStyleProperties().length))) {\n context.currentTimeline.snapshotCurrentStyles();\n context.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n var /** @type {?} */ furthestTime = startTime;\n var /** @type {?} */ elms = context.invokeQuery(ast.selector, ast.originalSelector, ast.limit, ast.includeSelf, options.optional ? true : false, context.errors);\n context.currentQueryTotal = elms.length;\n var /** @type {?} */ sameElementTimeline = null;\n elms.forEach(function (element, i) {\n context.currentQueryIndex = i;\n var /** @type {?} */ innerContext = context.createSubContext(ast.options, element);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n if (element === context.element) {\n sameElementTimeline = innerContext.currentTimeline;\n }\n visitDslNode(_this, ast.animation, innerContext);\n // this is here just incase the inner steps only contain or end\n // with a style() call (which is here to signal that this is a preparatory\n // call to style an element before it is animated again)\n innerContext.currentTimeline.applyStylesToKeyframe();\n var /** @type {?} */ endTime = innerContext.currentTimeline.currentTime;\n furthestTime = Math.max(furthestTime, endTime);\n });\n context.currentQueryIndex = 0;\n context.currentQueryTotal = 0;\n context.transformIntoNewTimeline(furthestTime);\n if (sameElementTimeline) {\n context.currentTimeline.mergeTimelineCollectedStyles(sameElementTimeline);\n context.currentTimeline.snapshotCurrentStyles();\n }\n context.previousNode = ast;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AnimationTimelineBuilderVisitor.prototype.visitStagger = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n var /** @type {?} */ parentContext = /** @type {?} */ ((context.parentContext));\n var /** @type {?} */ tl = context.currentTimeline;\n var /** @type {?} */ timings = ast.timings;\n var /** @type {?} */ duration = Math.abs(timings.duration);\n var /** @type {?} */ maxTime = duration * (context.currentQueryTotal - 1);\n var /** @type {?} */ delay = duration * context.currentQueryIndex;\n var /** @type {?} */ staggerTransformer = timings.duration < 0 ? 'reverse' : timings.easing;\n switch (staggerTransformer) {\n case 'reverse':\n delay = maxTime - delay;\n break;\n case 'full':\n delay = parentContext.currentStaggerTime;\n break;\n }\n var /** @type {?} */ timeline = context.currentTimeline;\n if (delay) {\n timeline.delayNextStep(delay);\n }\n var /** @type {?} */ startingTime = timeline.currentTime;\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n // time = duration + delay\n // the reason why this computation is so complex is because\n // the inner timeline may either have a delay value or a stretched\n // keyframe depending on if a subtimeline is not used or is used.\n parentContext.currentStaggerTime =\n (tl.currentTime - startingTime) + (tl.startTime - parentContext.currentTimeline.startTime);\n };\n return AnimationTimelineBuilderVisitor;\n}());\nvar DEFAULT_NOOP_PREVIOUS_NODE = /** @type {?} */ ({});\nvar AnimationTimelineContext = (function () {\n function AnimationTimelineContext(_driver, element, subInstructions, errors, timelines, initialTimeline) {\n this._driver = _driver;\n this.element = element;\n this.subInstructions = subInstructions;\n this.errors = errors;\n this.timelines = timelines;\n this.parentContext = null;\n this.currentAnimateTimings = null;\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.subContextCount = 0;\n this.options = {};\n this.currentQueryIndex = 0;\n this.currentQueryTotal = 0;\n this.currentStaggerTime = 0;\n this.currentTimeline = initialTimeline || new TimelineBuilder(this._driver, element, 0);\n timelines.push(this.currentTimeline);\n }\n Object.defineProperty(AnimationTimelineContext.prototype, \"params\", {\n get: /**\n * @return {?}\n */\n function () { return this.options.params; },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} options\n * @param {?=} skipIfExists\n * @return {?}\n */\n AnimationTimelineContext.prototype.updateOptions = /**\n * @param {?} options\n * @param {?=} skipIfExists\n * @return {?}\n */\n function (options, skipIfExists) {\n var _this = this;\n if (!options)\n return;\n var /** @type {?} */ newOptions = /** @type {?} */ (options);\n var /** @type {?} */ optionsToUpdate = this.options;\n // NOTE: this will get patched up when other animation methods support duration overrides\n if (newOptions.duration != null) {\n (/** @type {?} */ (optionsToUpdate)).duration = resolveTimingValue(newOptions.duration);\n }\n if (newOptions.delay != null) {\n optionsToUpdate.delay = resolveTimingValue(newOptions.delay);\n }\n var /** @type {?} */ newParams = newOptions.params;\n if (newParams) {\n var /** @type {?} */ paramsToUpdate_1 = /** @type {?} */ ((optionsToUpdate.params));\n if (!paramsToUpdate_1) {\n paramsToUpdate_1 = this.options.params = {};\n }\n Object.keys(newParams).forEach(function (name) {\n if (!skipIfExists || !paramsToUpdate_1.hasOwnProperty(name)) {\n paramsToUpdate_1[name] = interpolateParams(newParams[name], paramsToUpdate_1, _this.errors);\n }\n });\n }\n };\n /**\n * @return {?}\n */\n AnimationTimelineContext.prototype._copyOptions = /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ options = {};\n if (this.options) {\n var /** @type {?} */ oldParams_1 = this.options.params;\n if (oldParams_1) {\n var /** @type {?} */ params_1 = options['params'] = {};\n Object.keys(oldParams_1).forEach(function (name) { params_1[name] = oldParams_1[name]; });\n }\n }\n return options;\n };\n /**\n * @param {?=} options\n * @param {?=} element\n * @param {?=} newTime\n * @return {?}\n */\n AnimationTimelineContext.prototype.createSubContext = /**\n * @param {?=} options\n * @param {?=} element\n * @param {?=} newTime\n * @return {?}\n */\n function (options, element, newTime) {\n if (options === void 0) { options = null; }\n var /** @type {?} */ target = element || this.element;\n var /** @type {?} */ context = new AnimationTimelineContext(this._driver, target, this.subInstructions, this.errors, this.timelines, this.currentTimeline.fork(target, newTime || 0));\n context.previousNode = this.previousNode;\n context.currentAnimateTimings = this.currentAnimateTimings;\n context.options = this._copyOptions();\n context.updateOptions(options);\n context.currentQueryIndex = this.currentQueryIndex;\n context.currentQueryTotal = this.currentQueryTotal;\n context.parentContext = this;\n this.subContextCount++;\n return context;\n };\n /**\n * @param {?=} newTime\n * @return {?}\n */\n AnimationTimelineContext.prototype.transformIntoNewTimeline = /**\n * @param {?=} newTime\n * @return {?}\n */\n function (newTime) {\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.currentTimeline = this.currentTimeline.fork(this.element, newTime);\n this.timelines.push(this.currentTimeline);\n return this.currentTimeline;\n };\n /**\n * @param {?} instruction\n * @param {?} duration\n * @param {?} delay\n * @return {?}\n */\n AnimationTimelineContext.prototype.appendInstructionToTimeline = /**\n * @param {?} instruction\n * @param {?} duration\n * @param {?} delay\n * @return {?}\n */\n function (instruction, duration, delay) {\n var /** @type {?} */ updatedTimings = {\n duration: duration != null ? duration : instruction.duration,\n delay: this.currentTimeline.currentTime + (delay != null ? delay : 0) + instruction.delay,\n easing: ''\n };\n var /** @type {?} */ builder = new SubTimelineBuilder(this._driver, instruction.element, instruction.keyframes, instruction.preStyleProps, instruction.postStyleProps, updatedTimings, instruction.stretchStartingKeyframe);\n this.timelines.push(builder);\n return updatedTimings;\n };\n /**\n * @param {?} time\n * @return {?}\n */\n AnimationTimelineContext.prototype.incrementTime = /**\n * @param {?} time\n * @return {?}\n */\n function (time) {\n this.currentTimeline.forwardTime(this.currentTimeline.duration + time);\n };\n /**\n * @param {?} delay\n * @return {?}\n */\n AnimationTimelineContext.prototype.delayNextStep = /**\n * @param {?} delay\n * @return {?}\n */\n function (delay) {\n // negative delays are not yet supported\n if (delay > 0) {\n this.currentTimeline.delayNextStep(delay);\n }\n };\n /**\n * @param {?} selector\n * @param {?} originalSelector\n * @param {?} limit\n * @param {?} includeSelf\n * @param {?} optional\n * @param {?} errors\n * @return {?}\n */\n AnimationTimelineContext.prototype.invokeQuery = /**\n * @param {?} selector\n * @param {?} originalSelector\n * @param {?} limit\n * @param {?} includeSelf\n * @param {?} optional\n * @param {?} errors\n * @return {?}\n */\n function (selector, originalSelector, limit, includeSelf, optional, errors) {\n var /** @type {?} */ results = [];\n if (includeSelf) {\n results.push(this.element);\n }\n if (selector.length > 0) {\n // if :self is only used then the selector is empty\n var /** @type {?} */ multi = limit != 1;\n var /** @type {?} */ elements = this._driver.query(this.element, selector, multi);\n if (limit !== 0) {\n elements = limit < 0 ? elements.slice(elements.length + limit, elements.length) :\n elements.slice(0, limit);\n }\n results.push.apply(results, elements);\n }\n if (!optional && results.length == 0) {\n errors.push(\"`query(\\\"\" + originalSelector + \"\\\")` returned zero elements. (Use `query(\\\"\" + originalSelector + \"\\\", { optional: true })` if you wish to allow this.)\");\n }\n return results;\n };\n return AnimationTimelineContext;\n}());\nvar TimelineBuilder = (function () {\n function TimelineBuilder(_driver, element, startTime, _elementTimelineStylesLookup) {\n this._driver = _driver;\n this.element = element;\n this.startTime = startTime;\n this._elementTimelineStylesLookup = _elementTimelineStylesLookup;\n this.duration = 0;\n this._previousKeyframe = {};\n this._currentKeyframe = {};\n this._keyframes = new Map();\n this._styleSummary = {};\n this._pendingStyles = {};\n this._backFill = {};\n this._currentEmptyStepKeyframe = null;\n if (!this._elementTimelineStylesLookup) {\n this._elementTimelineStylesLookup = new Map();\n }\n this._localTimelineStyles = Object.create(this._backFill, {});\n this._globalTimelineStyles = /** @type {?} */ ((this._elementTimelineStylesLookup.get(element)));\n if (!this._globalTimelineStyles) {\n this._globalTimelineStyles = this._localTimelineStyles;\n this._elementTimelineStylesLookup.set(element, this._localTimelineStyles);\n }\n this._loadKeyframe();\n }\n /**\n * @return {?}\n */\n TimelineBuilder.prototype.containsAnimation = /**\n * @return {?}\n */\n function () {\n switch (this._keyframes.size) {\n case 0:\n return false;\n case 1:\n return this.getCurrentStyleProperties().length > 0;\n default:\n return true;\n }\n };\n /**\n * @return {?}\n */\n TimelineBuilder.prototype.getCurrentStyleProperties = /**\n * @return {?}\n */\n function () { return Object.keys(this._currentKeyframe); };\n Object.defineProperty(TimelineBuilder.prototype, \"currentTime\", {\n get: /**\n * @return {?}\n */\n function () { return this.startTime + this.duration; },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} delay\n * @return {?}\n */\n TimelineBuilder.prototype.delayNextStep = /**\n * @param {?} delay\n * @return {?}\n */\n function (delay) {\n // in the event that a style() step is placed right before a stagger()\n // and that style() step is the very first style() value in the animation\n // then we need to make a copy of the keyframe [0, copy, 1] so that the delay\n // properly applies the style() values to work with the stagger...\n var /** @type {?} */ hasPreStyleStep = this._keyframes.size == 1 && Object.keys(this._pendingStyles).length;\n if (this.duration || hasPreStyleStep) {\n this.forwardTime(this.currentTime + delay);\n if (hasPreStyleStep) {\n this.snapshotCurrentStyles();\n }\n }\n else {\n this.startTime += delay;\n }\n };\n /**\n * @param {?} element\n * @param {?=} currentTime\n * @return {?}\n */\n TimelineBuilder.prototype.fork = /**\n * @param {?} element\n * @param {?=} currentTime\n * @return {?}\n */\n function (element, currentTime) {\n this.applyStylesToKeyframe();\n return new TimelineBuilder(this._driver, element, currentTime || this.currentTime, this._elementTimelineStylesLookup);\n };\n /**\n * @return {?}\n */\n TimelineBuilder.prototype._loadKeyframe = /**\n * @return {?}\n */\n function () {\n if (this._currentKeyframe) {\n this._previousKeyframe = this._currentKeyframe;\n }\n this._currentKeyframe = /** @type {?} */ ((this._keyframes.get(this.duration)));\n if (!this._currentKeyframe) {\n this._currentKeyframe = Object.create(this._backFill, {});\n this._keyframes.set(this.duration, this._currentKeyframe);\n }\n };\n /**\n * @return {?}\n */\n TimelineBuilder.prototype.forwardFrame = /**\n * @return {?}\n */\n function () {\n this.duration += ONE_FRAME_IN_MILLISECONDS;\n this._loadKeyframe();\n };\n /**\n * @param {?} time\n * @return {?}\n */\n TimelineBuilder.prototype.forwardTime = /**\n * @param {?} time\n * @return {?}\n */\n function (time) {\n this.applyStylesToKeyframe();\n this.duration = time;\n this._loadKeyframe();\n };\n /**\n * @param {?} prop\n * @param {?} value\n * @return {?}\n */\n TimelineBuilder.prototype._updateStyle = /**\n * @param {?} prop\n * @param {?} value\n * @return {?}\n */\n function (prop, value) {\n this._localTimelineStyles[prop] = value;\n this._globalTimelineStyles[prop] = value;\n this._styleSummary[prop] = { time: this.currentTime, value: value };\n };\n /**\n * @return {?}\n */\n TimelineBuilder.prototype.allowOnlyTimelineStyles = /**\n * @return {?}\n */\n function () { return this._currentEmptyStepKeyframe !== this._currentKeyframe; };\n /**\n * @param {?} easing\n * @return {?}\n */\n TimelineBuilder.prototype.applyEmptyStep = /**\n * @param {?} easing\n * @return {?}\n */\n function (easing) {\n var _this = this;\n if (easing) {\n this._previousKeyframe['easing'] = easing;\n }\n // special case for animate(duration):\n // all missing styles are filled with a `*` value then\n // if any destination styles are filled in later on the same\n // keyframe then they will override the overridden styles\n // We use `_globalTimelineStyles` here because there may be\n // styles in previous keyframes that are not present in this timeline\n Object.keys(this._globalTimelineStyles).forEach(function (prop) {\n _this._backFill[prop] = _this._globalTimelineStyles[prop] || _angular_animations.AUTO_STYLE;\n _this._currentKeyframe[prop] = _angular_animations.AUTO_STYLE;\n });\n this._currentEmptyStepKeyframe = this._currentKeyframe;\n };\n /**\n * @param {?} input\n * @param {?} easing\n * @param {?} errors\n * @param {?=} options\n * @return {?}\n */\n TimelineBuilder.prototype.setStyles = /**\n * @param {?} input\n * @param {?} easing\n * @param {?} errors\n * @param {?=} options\n * @return {?}\n */\n function (input, easing, errors, options) {\n var _this = this;\n if (easing) {\n this._previousKeyframe['easing'] = easing;\n }\n var /** @type {?} */ params = (options && options.params) || {};\n var /** @type {?} */ styles = flattenStyles(input, this._globalTimelineStyles);\n Object.keys(styles).forEach(function (prop) {\n var /** @type {?} */ val = interpolateParams(styles[prop], params, errors);\n _this._pendingStyles[prop] = val;\n if (!_this._localTimelineStyles.hasOwnProperty(prop)) {\n _this._backFill[prop] = _this._globalTimelineStyles.hasOwnProperty(prop) ?\n _this._globalTimelineStyles[prop] :\n _angular_animations.AUTO_STYLE;\n }\n _this._updateStyle(prop, val);\n });\n };\n /**\n * @return {?}\n */\n TimelineBuilder.prototype.applyStylesToKeyframe = /**\n * @return {?}\n */\n function () {\n var _this = this;\n var /** @type {?} */ styles = this._pendingStyles;\n var /** @type {?} */ props = Object.keys(styles);\n if (props.length == 0)\n return;\n this._pendingStyles = {};\n props.forEach(function (prop) {\n var /** @type {?} */ val = styles[prop];\n _this._currentKeyframe[prop] = val;\n });\n Object.keys(this._localTimelineStyles).forEach(function (prop) {\n if (!_this._currentKeyframe.hasOwnProperty(prop)) {\n _this._currentKeyframe[prop] = _this._localTimelineStyles[prop];\n }\n });\n };\n /**\n * @return {?}\n */\n TimelineBuilder.prototype.snapshotCurrentStyles = /**\n * @return {?}\n */\n function () {\n var _this = this;\n Object.keys(this._localTimelineStyles).forEach(function (prop) {\n var /** @type {?} */ val = _this._localTimelineStyles[prop];\n _this._pendingStyles[prop] = val;\n _this._updateStyle(prop, val);\n });\n };\n /**\n * @return {?}\n */\n TimelineBuilder.prototype.getFinalKeyframe = /**\n * @return {?}\n */\n function () { return this._keyframes.get(this.duration); };\n Object.defineProperty(TimelineBuilder.prototype, \"properties\", {\n get: /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ properties = [];\n for (var /** @type {?} */ prop in this._currentKeyframe) {\n properties.push(prop);\n }\n return properties;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} timeline\n * @return {?}\n */\n TimelineBuilder.prototype.mergeTimelineCollectedStyles = /**\n * @param {?} timeline\n * @return {?}\n */\n function (timeline) {\n var _this = this;\n Object.keys(timeline._styleSummary).forEach(function (prop) {\n var /** @type {?} */ details0 = _this._styleSummary[prop];\n var /** @type {?} */ details1 = timeline._styleSummary[prop];\n if (!details0 || details1.time > details0.time) {\n _this._updateStyle(prop, details1.value);\n }\n });\n };\n /**\n * @return {?}\n */\n TimelineBuilder.prototype.buildKeyframes = /**\n * @return {?}\n */\n function () {\n var _this = this;\n this.applyStylesToKeyframe();\n var /** @type {?} */ preStyleProps = new Set();\n var /** @type {?} */ postStyleProps = new Set();\n var /** @type {?} */ isEmpty = this._keyframes.size === 1 && this.duration === 0;\n var /** @type {?} */ finalKeyframes = [];\n this._keyframes.forEach(function (keyframe, time) {\n var /** @type {?} */ finalKeyframe = copyStyles(keyframe, true);\n Object.keys(finalKeyframe).forEach(function (prop) {\n var /** @type {?} */ value = finalKeyframe[prop];\n if (value == _angular_animations.ɵPRE_STYLE) {\n preStyleProps.add(prop);\n }\n else if (value == _angular_animations.AUTO_STYLE) {\n postStyleProps.add(prop);\n }\n });\n if (!isEmpty) {\n finalKeyframe['offset'] = time / _this.duration;\n }\n finalKeyframes.push(finalKeyframe);\n });\n var /** @type {?} */ preProps = preStyleProps.size ? iteratorToArray(preStyleProps.values()) : [];\n var /** @type {?} */ postProps = postStyleProps.size ? iteratorToArray(postStyleProps.values()) : [];\n // special case for a 0-second animation (which is designed just to place styles onscreen)\n if (isEmpty) {\n var /** @type {?} */ kf0 = finalKeyframes[0];\n var /** @type {?} */ kf1 = copyObj(kf0);\n kf0['offset'] = 0;\n kf1['offset'] = 1;\n finalKeyframes = [kf0, kf1];\n }\n return createTimelineInstruction(this.element, finalKeyframes, preProps, postProps, this.duration, this.startTime, this.easing, false);\n };\n return TimelineBuilder;\n}());\nvar SubTimelineBuilder = (function (_super) {\n __extends(SubTimelineBuilder, _super);\n function SubTimelineBuilder(driver, element, keyframes, preStyleProps, postStyleProps, timings, _stretchStartingKeyframe) {\n if (_stretchStartingKeyframe === void 0) { _stretchStartingKeyframe = false; }\n var _this = _super.call(this, driver, element, timings.delay) || this;\n _this.element = element;\n _this.keyframes = keyframes;\n _this.preStyleProps = preStyleProps;\n _this.postStyleProps = postStyleProps;\n _this._stretchStartingKeyframe = _stretchStartingKeyframe;\n _this.timings = { duration: timings.duration, delay: timings.delay, easing: timings.easing };\n return _this;\n }\n /**\n * @return {?}\n */\n SubTimelineBuilder.prototype.containsAnimation = /**\n * @return {?}\n */\n function () { return this.keyframes.length > 1; };\n /**\n * @return {?}\n */\n SubTimelineBuilder.prototype.buildKeyframes = /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ keyframes = this.keyframes;\n var _a = this.timings, delay = _a.delay, duration = _a.duration, easing = _a.easing;\n if (this._stretchStartingKeyframe && delay) {\n var /** @type {?} */ newKeyframes = [];\n var /** @type {?} */ totalTime = duration + delay;\n var /** @type {?} */ startingGap = delay / totalTime;\n // the original starting keyframe now starts once the delay is done\n var /** @type {?} */ newFirstKeyframe = copyStyles(keyframes[0], false);\n newFirstKeyframe['offset'] = 0;\n newKeyframes.push(newFirstKeyframe);\n var /** @type {?} */ oldFirstKeyframe = copyStyles(keyframes[0], false);\n oldFirstKeyframe['offset'] = roundOffset(startingGap);\n newKeyframes.push(oldFirstKeyframe);\n /*\n When the keyframe is stretched then it means that the delay before the animation\n starts is gone. Instead the first keyframe is placed at the start of the animation\n and it is then copied to where it starts when the original delay is over. This basically\n means nothing animates during that delay, but the styles are still renderered. For this\n to work the original offset values that exist in the original keyframes must be \"warped\"\n so that they can take the new keyframe + delay into account.\n \n delay=1000, duration=1000, keyframes = 0 .5 1\n \n turns into\n \n delay=0, duration=2000, keyframes = 0 .33 .66 1\n */\n // offsets between 1 ... n -1 are all warped by the keyframe stretch\n var /** @type {?} */ limit = keyframes.length - 1;\n for (var /** @type {?} */ i = 1; i <= limit; i++) {\n var /** @type {?} */ kf = copyStyles(keyframes[i], false);\n var /** @type {?} */ oldOffset = /** @type {?} */ (kf['offset']);\n var /** @type {?} */ timeAtKeyframe = delay + oldOffset * duration;\n kf['offset'] = roundOffset(timeAtKeyframe / totalTime);\n newKeyframes.push(kf);\n }\n // the new starting keyframe should be added at the start\n duration = totalTime;\n delay = 0;\n easing = '';\n keyframes = newKeyframes;\n }\n return createTimelineInstruction(this.element, keyframes, this.preStyleProps, this.postStyleProps, duration, delay, easing, true);\n };\n return SubTimelineBuilder;\n}(TimelineBuilder));\n/**\n * @param {?} offset\n * @param {?=} decimalPoints\n * @return {?}\n */\nfunction roundOffset(offset, decimalPoints) {\n if (decimalPoints === void 0) { decimalPoints = 3; }\n var /** @type {?} */ mult = Math.pow(10, decimalPoints - 1);\n return Math.round(offset * mult) / mult;\n}\n/**\n * @param {?} input\n * @param {?} allStyles\n * @return {?}\n */\nfunction flattenStyles(input, allStyles) {\n var /** @type {?} */ styles = {};\n var /** @type {?} */ allProperties;\n input.forEach(function (token) {\n if (token === '*') {\n allProperties = allProperties || Object.keys(allStyles);\n allProperties.forEach(function (prop) { styles[prop] = _angular_animations.AUTO_STYLE; });\n }\n else {\n copyStyles(/** @type {?} */ (token), false, styles);\n }\n });\n return styles;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\nvar Animation = (function () {\n function Animation(_driver, input) {\n this._driver = _driver;\n var /** @type {?} */ errors = [];\n var /** @type {?} */ ast = buildAnimationAst(_driver, input, errors);\n if (errors.length) {\n var /** @type {?} */ errorMessage = \"animation validation failed:\\n\" + errors.join(\"\\n\");\n throw new Error(errorMessage);\n }\n this._animationAst = ast;\n }\n /**\n * @param {?} element\n * @param {?} startingStyles\n * @param {?} destinationStyles\n * @param {?} options\n * @param {?=} subInstructions\n * @return {?}\n */\n Animation.prototype.buildTimelines = /**\n * @param {?} element\n * @param {?} startingStyles\n * @param {?} destinationStyles\n * @param {?} options\n * @param {?=} subInstructions\n * @return {?}\n */\n function (element, startingStyles, destinationStyles, options, subInstructions) {\n var /** @type {?} */ start = Array.isArray(startingStyles) ? normalizeStyles(startingStyles) : /** @type {?} */ (startingStyles);\n var /** @type {?} */ dest = Array.isArray(destinationStyles) ? normalizeStyles(destinationStyles) : /** @type {?} */ (destinationStyles);\n var /** @type {?} */ errors = [];\n subInstructions = subInstructions || new ElementInstructionMap();\n var /** @type {?} */ result = buildAnimationTimelines(this._driver, element, this._animationAst, start, dest, options, subInstructions, errors);\n if (errors.length) {\n var /** @type {?} */ errorMessage = \"animation building failed:\\n\" + errors.join(\"\\n\");\n throw new Error(errorMessage);\n }\n return result;\n };\n return Animation;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * \\@experimental Animation support is experimental.\n * @abstract\n */\nvar AnimationStyleNormalizer = (function () {\n function AnimationStyleNormalizer() {\n }\n return AnimationStyleNormalizer;\n}());\n/**\n * \\@experimental Animation support is experimental.\n */\nvar NoopAnimationStyleNormalizer = (function () {\n function NoopAnimationStyleNormalizer() {\n }\n /**\n * @param {?} propertyName\n * @param {?} errors\n * @return {?}\n */\n NoopAnimationStyleNormalizer.prototype.normalizePropertyName = /**\n * @param {?} propertyName\n * @param {?} errors\n * @return {?}\n */\n function (propertyName, errors) { return propertyName; };\n /**\n * @param {?} userProvidedProperty\n * @param {?} normalizedProperty\n * @param {?} value\n * @param {?} errors\n * @return {?}\n */\n NoopAnimationStyleNormalizer.prototype.normalizeStyleValue = /**\n * @param {?} userProvidedProperty\n * @param {?} normalizedProperty\n * @param {?} value\n * @param {?} errors\n * @return {?}\n */\n function (userProvidedProperty, normalizedProperty, value, errors) {\n return /** @type {?} */ (value);\n };\n return NoopAnimationStyleNormalizer;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar WebAnimationsStyleNormalizer = (function (_super) {\n __extends(WebAnimationsStyleNormalizer, _super);\n function WebAnimationsStyleNormalizer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} propertyName\n * @param {?} errors\n * @return {?}\n */\n WebAnimationsStyleNormalizer.prototype.normalizePropertyName = /**\n * @param {?} propertyName\n * @param {?} errors\n * @return {?}\n */\n function (propertyName, errors) {\n return dashCaseToCamelCase(propertyName);\n };\n /**\n * @param {?} userProvidedProperty\n * @param {?} normalizedProperty\n * @param {?} value\n * @param {?} errors\n * @return {?}\n */\n WebAnimationsStyleNormalizer.prototype.normalizeStyleValue = /**\n * @param {?} userProvidedProperty\n * @param {?} normalizedProperty\n * @param {?} value\n * @param {?} errors\n * @return {?}\n */\n function (userProvidedProperty, normalizedProperty, value, errors) {\n var /** @type {?} */ unit = '';\n var /** @type {?} */ strVal = value.toString().trim();\n if (DIMENSIONAL_PROP_MAP[normalizedProperty] && value !== 0 && value !== '0') {\n if (typeof value === 'number') {\n unit = 'px';\n }\n else {\n var /** @type {?} */ valAndSuffixMatch = value.match(/^[+-]?[\\d\\.]+([a-z]*)$/);\n if (valAndSuffixMatch && valAndSuffixMatch[1].length == 0) {\n errors.push(\"Please provide a CSS unit value for \" + userProvidedProperty + \":\" + value);\n }\n }\n }\n return strVal + unit;\n };\n return WebAnimationsStyleNormalizer;\n}(AnimationStyleNormalizer));\nvar DIMENSIONAL_PROP_MAP = makeBooleanMap('width,height,minWidth,minHeight,maxWidth,maxHeight,left,top,bottom,right,fontSize,outlineWidth,outlineOffset,paddingTop,paddingLeft,paddingBottom,paddingRight,marginTop,marginLeft,marginBottom,marginRight,borderRadius,borderWidth,borderTopWidth,borderLeftWidth,borderRightWidth,borderBottomWidth,textIndent,perspective'\n .split(','));\n/**\n * @param {?} keys\n * @return {?}\n */\nfunction makeBooleanMap(keys) {\n var /** @type {?} */ map = {};\n keys.forEach(function (key) { return map[key] = true; });\n return map;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @record\n */\n\n/**\n * @param {?} element\n * @param {?} triggerName\n * @param {?} fromState\n * @param {?} toState\n * @param {?} isRemovalTransition\n * @param {?} fromStyles\n * @param {?} toStyles\n * @param {?} timelines\n * @param {?} queriedElements\n * @param {?} preStyleProps\n * @param {?} postStyleProps\n * @param {?=} errors\n * @return {?}\n */\nfunction createTransitionInstruction(element, triggerName, fromState, toState, isRemovalTransition, fromStyles, toStyles, timelines, queriedElements, preStyleProps, postStyleProps, errors) {\n return {\n type: 0 /* TransitionAnimation */,\n element: element,\n triggerName: triggerName,\n isRemovalTransition: isRemovalTransition,\n fromState: fromState,\n fromStyles: fromStyles,\n toState: toState,\n toStyles: toStyles,\n timelines: timelines,\n queriedElements: queriedElements,\n preStyleProps: preStyleProps,\n postStyleProps: postStyleProps,\n errors: errors\n };\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\nvar EMPTY_OBJECT = {};\nvar AnimationTransitionFactory = (function () {\n function AnimationTransitionFactory(_triggerName, ast, _stateStyles) {\n this._triggerName = _triggerName;\n this.ast = ast;\n this._stateStyles = _stateStyles;\n }\n /**\n * @param {?} currentState\n * @param {?} nextState\n * @return {?}\n */\n AnimationTransitionFactory.prototype.match = /**\n * @param {?} currentState\n * @param {?} nextState\n * @return {?}\n */\n function (currentState, nextState) {\n return oneOrMoreTransitionsMatch(this.ast.matchers, currentState, nextState);\n };\n /**\n * @param {?} stateName\n * @param {?} params\n * @param {?} errors\n * @return {?}\n */\n AnimationTransitionFactory.prototype.buildStyles = /**\n * @param {?} stateName\n * @param {?} params\n * @param {?} errors\n * @return {?}\n */\n function (stateName, params, errors) {\n var /** @type {?} */ backupStateStyler = this._stateStyles['*'];\n var /** @type {?} */ stateStyler = this._stateStyles[stateName];\n var /** @type {?} */ backupStyles = backupStateStyler ? backupStateStyler.buildStyles(params, errors) : {};\n return stateStyler ? stateStyler.buildStyles(params, errors) : backupStyles;\n };\n /**\n * @param {?} driver\n * @param {?} element\n * @param {?} currentState\n * @param {?} nextState\n * @param {?=} currentOptions\n * @param {?=} nextOptions\n * @param {?=} subInstructions\n * @return {?}\n */\n AnimationTransitionFactory.prototype.build = /**\n * @param {?} driver\n * @param {?} element\n * @param {?} currentState\n * @param {?} nextState\n * @param {?=} currentOptions\n * @param {?=} nextOptions\n * @param {?=} subInstructions\n * @return {?}\n */\n function (driver, element, currentState, nextState, currentOptions, nextOptions, subInstructions) {\n var /** @type {?} */ errors = [];\n var /** @type {?} */ transitionAnimationParams = this.ast.options && this.ast.options.params || EMPTY_OBJECT;\n var /** @type {?} */ currentAnimationParams = currentOptions && currentOptions.params || EMPTY_OBJECT;\n var /** @type {?} */ currentStateStyles = this.buildStyles(currentState, currentAnimationParams, errors);\n var /** @type {?} */ nextAnimationParams = nextOptions && nextOptions.params || EMPTY_OBJECT;\n var /** @type {?} */ nextStateStyles = this.buildStyles(nextState, nextAnimationParams, errors);\n var /** @type {?} */ queriedElements = new Set();\n var /** @type {?} */ preStyleMap = new Map();\n var /** @type {?} */ postStyleMap = new Map();\n var /** @type {?} */ isRemoval = nextState === 'void';\n var /** @type {?} */ animationOptions = { params: __assign({}, transitionAnimationParams, nextAnimationParams) };\n var /** @type {?} */ timelines = buildAnimationTimelines(driver, element, this.ast.animation, currentStateStyles, nextStateStyles, animationOptions, subInstructions, errors);\n if (errors.length) {\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, [], [], preStyleMap, postStyleMap, errors);\n }\n timelines.forEach(function (tl) {\n var /** @type {?} */ elm = tl.element;\n var /** @type {?} */ preProps = getOrSetAsInMap(preStyleMap, elm, {});\n tl.preStyleProps.forEach(function (prop) { return preProps[prop] = true; });\n var /** @type {?} */ postProps = getOrSetAsInMap(postStyleMap, elm, {});\n tl.postStyleProps.forEach(function (prop) { return postProps[prop] = true; });\n if (elm !== element) {\n queriedElements.add(elm);\n }\n });\n var /** @type {?} */ queriedElementsList = iteratorToArray(queriedElements.values());\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, timelines, queriedElementsList, preStyleMap, postStyleMap);\n };\n return AnimationTransitionFactory;\n}());\n/**\n * @param {?} matchFns\n * @param {?} currentState\n * @param {?} nextState\n * @return {?}\n */\nfunction oneOrMoreTransitionsMatch(matchFns, currentState, nextState) {\n return matchFns.some(function (fn) { return fn(currentState, nextState); });\n}\nvar AnimationStateStyles = (function () {\n function AnimationStateStyles(styles, defaultParams) {\n this.styles = styles;\n this.defaultParams = defaultParams;\n }\n /**\n * @param {?} params\n * @param {?} errors\n * @return {?}\n */\n AnimationStateStyles.prototype.buildStyles = /**\n * @param {?} params\n * @param {?} errors\n * @return {?}\n */\n function (params, errors) {\n var /** @type {?} */ finalStyles = {};\n var /** @type {?} */ combinedParams = copyObj(this.defaultParams);\n Object.keys(params).forEach(function (key) {\n var /** @type {?} */ value = params[key];\n if (value != null) {\n combinedParams[key] = value;\n }\n });\n this.styles.styles.forEach(function (value) {\n if (typeof value !== 'string') {\n var /** @type {?} */ styleObj_1 = /** @type {?} */ (value);\n Object.keys(styleObj_1).forEach(function (prop) {\n var /** @type {?} */ val = styleObj_1[prop];\n if (val.length > 1) {\n val = interpolateParams(val, combinedParams, errors);\n }\n finalStyles[prop] = val;\n });\n }\n });\n return finalStyles;\n };\n return AnimationStateStyles;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * \\@experimental Animation support is experimental.\n * @param {?} name\n * @param {?} ast\n * @return {?}\n */\nfunction buildTrigger(name, ast) {\n return new AnimationTrigger(name, ast);\n}\n/**\n * \\@experimental Animation support is experimental.\n */\nvar AnimationTrigger = (function () {\n function AnimationTrigger(name, ast) {\n var _this = this;\n this.name = name;\n this.ast = ast;\n this.transitionFactories = [];\n this.states = {};\n ast.states.forEach(function (ast) {\n var /** @type {?} */ defaultParams = (ast.options && ast.options.params) || {};\n _this.states[ast.name] = new AnimationStateStyles(ast.style, defaultParams);\n });\n balanceProperties(this.states, 'true', '1');\n balanceProperties(this.states, 'false', '0');\n ast.transitions.forEach(function (ast) {\n _this.transitionFactories.push(new AnimationTransitionFactory(name, ast, _this.states));\n });\n this.fallbackTransition = createFallbackTransition(name, this.states);\n }\n Object.defineProperty(AnimationTrigger.prototype, \"containsQueries\", {\n get: /**\n * @return {?}\n */\n function () { return this.ast.queryCount > 0; },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} currentState\n * @param {?} nextState\n * @return {?}\n */\n AnimationTrigger.prototype.matchTransition = /**\n * @param {?} currentState\n * @param {?} nextState\n * @return {?}\n */\n function (currentState, nextState) {\n var /** @type {?} */ entry = this.transitionFactories.find(function (f) { return f.match(currentState, nextState); });\n return entry || null;\n };\n /**\n * @param {?} currentState\n * @param {?} params\n * @param {?} errors\n * @return {?}\n */\n AnimationTrigger.prototype.matchStyles = /**\n * @param {?} currentState\n * @param {?} params\n * @param {?} errors\n * @return {?}\n */\n function (currentState, params, errors) {\n return this.fallbackTransition.buildStyles(currentState, params, errors);\n };\n return AnimationTrigger;\n}());\n/**\n * @param {?} triggerName\n * @param {?} states\n * @return {?}\n */\nfunction createFallbackTransition(triggerName, states) {\n var /** @type {?} */ matchers = [function (fromState, toState) { return true; }];\n var /** @type {?} */ animation = { type: 2 /* Sequence */, steps: [], options: null };\n var /** @type {?} */ transition = {\n type: 1 /* Transition */,\n animation: animation,\n matchers: matchers,\n options: null,\n queryCount: 0,\n depCount: 0\n };\n return new AnimationTransitionFactory(triggerName, transition, states);\n}\n/**\n * @param {?} obj\n * @param {?} key1\n * @param {?} key2\n * @return {?}\n */\nfunction balanceProperties(obj, key1, key2) {\n if (obj.hasOwnProperty(key1)) {\n if (!obj.hasOwnProperty(key2)) {\n obj[key2] = obj[key1];\n }\n }\n else if (obj.hasOwnProperty(key2)) {\n obj[key1] = obj[key2];\n }\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar EMPTY_INSTRUCTION_MAP = new ElementInstructionMap();\nvar TimelineAnimationEngine = (function () {\n function TimelineAnimationEngine(_driver, _normalizer) {\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._animations = {};\n this._playersById = {};\n this.players = [];\n }\n /**\n * @param {?} id\n * @param {?} metadata\n * @return {?}\n */\n TimelineAnimationEngine.prototype.register = /**\n * @param {?} id\n * @param {?} metadata\n * @return {?}\n */\n function (id, metadata) {\n var /** @type {?} */ errors = [];\n var /** @type {?} */ ast = buildAnimationAst(this._driver, metadata, errors);\n if (errors.length) {\n throw new Error(\"Unable to build the animation due to the following errors: \" + errors.join(\"\\n\"));\n }\n else {\n this._animations[id] = ast;\n }\n };\n /**\n * @param {?} i\n * @param {?} preStyles\n * @param {?=} postStyles\n * @return {?}\n */\n TimelineAnimationEngine.prototype._buildPlayer = /**\n * @param {?} i\n * @param {?} preStyles\n * @param {?=} postStyles\n * @return {?}\n */\n function (i, preStyles, postStyles) {\n var /** @type {?} */ element = i.element;\n var /** @type {?} */ keyframes = normalizeKeyframes(this._driver, this._normalizer, element, i.keyframes, preStyles, postStyles);\n return this._driver.animate(element, keyframes, i.duration, i.delay, i.easing, []);\n };\n /**\n * @param {?} id\n * @param {?} element\n * @param {?=} options\n * @return {?}\n */\n TimelineAnimationEngine.prototype.create = /**\n * @param {?} id\n * @param {?} element\n * @param {?=} options\n * @return {?}\n */\n function (id, element, options) {\n var _this = this;\n if (options === void 0) { options = {}; }\n var /** @type {?} */ errors = [];\n var /** @type {?} */ ast = this._animations[id];\n var /** @type {?} */ instructions;\n var /** @type {?} */ autoStylesMap = new Map();\n if (ast) {\n instructions = buildAnimationTimelines(this._driver, element, ast, {}, {}, options, EMPTY_INSTRUCTION_MAP, errors);\n instructions.forEach(function (inst) {\n var /** @type {?} */ styles = getOrSetAsInMap(autoStylesMap, inst.element, {});\n inst.postStyleProps.forEach(function (prop) { return styles[prop] = null; });\n });\n }\n else {\n errors.push('The requested animation doesn\\'t exist or has already been destroyed');\n instructions = [];\n }\n if (errors.length) {\n throw new Error(\"Unable to create the animation due to the following errors: \" + errors.join(\"\\n\"));\n }\n autoStylesMap.forEach(function (styles, element) {\n Object.keys(styles).forEach(function (prop) { styles[prop] = _this._driver.computeStyle(element, prop, _angular_animations.AUTO_STYLE); });\n });\n var /** @type {?} */ players = instructions.map(function (i) {\n var /** @type {?} */ styles = autoStylesMap.get(i.element);\n return _this._buildPlayer(i, {}, styles);\n });\n var /** @type {?} */ player = optimizeGroupPlayer(players);\n this._playersById[id] = player;\n player.onDestroy(function () { return _this.destroy(id); });\n this.players.push(player);\n return player;\n };\n /**\n * @param {?} id\n * @return {?}\n */\n TimelineAnimationEngine.prototype.destroy = /**\n * @param {?} id\n * @return {?}\n */\n function (id) {\n var /** @type {?} */ player = this._getPlayer(id);\n player.destroy();\n delete this._playersById[id];\n var /** @type {?} */ index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n };\n /**\n * @param {?} id\n * @return {?}\n */\n TimelineAnimationEngine.prototype._getPlayer = /**\n * @param {?} id\n * @return {?}\n */\n function (id) {\n var /** @type {?} */ player = this._playersById[id];\n if (!player) {\n throw new Error(\"Unable to find the timeline player referenced by \" + id);\n }\n return player;\n };\n /**\n * @param {?} id\n * @param {?} element\n * @param {?} eventName\n * @param {?} callback\n * @return {?}\n */\n TimelineAnimationEngine.prototype.listen = /**\n * @param {?} id\n * @param {?} element\n * @param {?} eventName\n * @param {?} callback\n * @return {?}\n */\n function (id, element, eventName, callback) {\n // triggerName, fromState, toState are all ignored for timeline animations\n var /** @type {?} */ baseEvent = makeAnimationEvent(element, '', '', '');\n listenOnPlayer(this._getPlayer(id), eventName, baseEvent, callback);\n return function () { };\n };\n /**\n * @param {?} id\n * @param {?} element\n * @param {?} command\n * @param {?} args\n * @return {?}\n */\n TimelineAnimationEngine.prototype.command = /**\n * @param {?} id\n * @param {?} element\n * @param {?} command\n * @param {?} args\n * @return {?}\n */\n function (id, element, command, args) {\n if (command == 'register') {\n this.register(id, /** @type {?} */ (args[0]));\n return;\n }\n if (command == 'create') {\n var /** @type {?} */ options = /** @type {?} */ ((args[0] || {}));\n this.create(id, element, options);\n return;\n }\n var /** @type {?} */ player = this._getPlayer(id);\n switch (command) {\n case 'play':\n player.play();\n break;\n case 'pause':\n player.pause();\n break;\n case 'reset':\n player.reset();\n break;\n case 'restart':\n player.restart();\n break;\n case 'finish':\n player.finish();\n break;\n case 'init':\n player.init();\n break;\n case 'setPosition':\n player.setPosition(parseFloat(/** @type {?} */ (args[0])));\n break;\n case 'destroy':\n this.destroy(id);\n break;\n }\n };\n return TimelineAnimationEngine;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar QUEUED_CLASSNAME = 'ng-animate-queued';\nvar QUEUED_SELECTOR = '.ng-animate-queued';\nvar DISABLED_CLASSNAME = 'ng-animate-disabled';\nvar DISABLED_SELECTOR = '.ng-animate-disabled';\nvar EMPTY_PLAYER_ARRAY = [];\nvar NULL_REMOVAL_STATE = {\n namespaceId: '',\n setForRemoval: null,\n hasAnimation: false,\n removedBeforeQueried: false\n};\nvar NULL_REMOVED_QUERIED_STATE = {\n namespaceId: '',\n setForRemoval: null,\n hasAnimation: false,\n removedBeforeQueried: true\n};\n/**\n * @record\n */\n\nvar REMOVAL_FLAG = '__ng_removed';\n/**\n * @record\n */\n\nvar StateValue = (function () {\n function StateValue(input, namespaceId) {\n if (namespaceId === void 0) { namespaceId = ''; }\n this.namespaceId = namespaceId;\n var /** @type {?} */ isObj = input && input.hasOwnProperty('value');\n var /** @type {?} */ value = isObj ? input['value'] : input;\n this.value = normalizeTriggerValue(value);\n if (isObj) {\n var /** @type {?} */ options = copyObj(/** @type {?} */ (input));\n delete options['value'];\n this.options = /** @type {?} */ (options);\n }\n else {\n this.options = {};\n }\n if (!this.options.params) {\n this.options.params = {};\n }\n }\n Object.defineProperty(StateValue.prototype, \"params\", {\n get: /**\n * @return {?}\n */\n function () { return /** @type {?} */ (this.options.params); },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} options\n * @return {?}\n */\n StateValue.prototype.absorbOptions = /**\n * @param {?} options\n * @return {?}\n */\n function (options) {\n var /** @type {?} */ newParams = options.params;\n if (newParams) {\n var /** @type {?} */ oldParams_1 = /** @type {?} */ ((this.options.params));\n Object.keys(newParams).forEach(function (prop) {\n if (oldParams_1[prop] == null) {\n oldParams_1[prop] = newParams[prop];\n }\n });\n }\n };\n return StateValue;\n}());\nvar VOID_VALUE = 'void';\nvar DEFAULT_STATE_VALUE = new StateValue(VOID_VALUE);\nvar DELETED_STATE_VALUE = new StateValue('DELETED');\nvar AnimationTransitionNamespace = (function () {\n function AnimationTransitionNamespace(id, hostElement, _engine) {\n this.id = id;\n this.hostElement = hostElement;\n this._engine = _engine;\n this.players = [];\n this._triggers = {};\n this._queue = [];\n this._elementListeners = new Map();\n this._hostClassName = 'ng-tns-' + id;\n addClass(hostElement, this._hostClassName);\n }\n /**\n * @param {?} element\n * @param {?} name\n * @param {?} phase\n * @param {?} callback\n * @return {?}\n */\n AnimationTransitionNamespace.prototype.listen = /**\n * @param {?} element\n * @param {?} name\n * @param {?} phase\n * @param {?} callback\n * @return {?}\n */\n function (element, name, phase, callback) {\n var _this = this;\n if (!this._triggers.hasOwnProperty(name)) {\n throw new Error(\"Unable to listen on the animation trigger event \\\"\" + phase + \"\\\" because the animation trigger \\\"\" + name + \"\\\" doesn't exist!\");\n }\n if (phase == null || phase.length == 0) {\n throw new Error(\"Unable to listen on the animation trigger \\\"\" + name + \"\\\" because the provided event is undefined!\");\n }\n if (!isTriggerEventValid(phase)) {\n throw new Error(\"The provided animation trigger event \\\"\" + phase + \"\\\" for the animation trigger \\\"\" + name + \"\\\" is not supported!\");\n }\n var /** @type {?} */ listeners = getOrSetAsInMap(this._elementListeners, element, []);\n var /** @type {?} */ data = { name: name, phase: phase, callback: callback };\n listeners.push(data);\n var /** @type {?} */ triggersWithStates = getOrSetAsInMap(this._engine.statesByElement, element, {});\n if (!triggersWithStates.hasOwnProperty(name)) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + name);\n triggersWithStates[name] = DEFAULT_STATE_VALUE;\n }\n return function () {\n // the event listener is removed AFTER the flush has occurred such\n // that leave animations callbacks can fire (otherwise if the node\n // is removed in between then the listeners would be deregistered)\n // the event listener is removed AFTER the flush has occurred such\n // that leave animations callbacks can fire (otherwise if the node\n // is removed in between then the listeners would be deregistered)\n _this._engine.afterFlush(function () {\n var /** @type {?} */ index = listeners.indexOf(data);\n if (index >= 0) {\n listeners.splice(index, 1);\n }\n if (!_this._triggers[name]) {\n delete triggersWithStates[name];\n }\n });\n };\n };\n /**\n * @param {?} name\n * @param {?} ast\n * @return {?}\n */\n AnimationTransitionNamespace.prototype.register = /**\n * @param {?} name\n * @param {?} ast\n * @return {?}\n */\n function (name, ast) {\n if (this._triggers[name]) {\n // throw\n return false;\n }\n else {\n this._triggers[name] = ast;\n return true;\n }\n };\n /**\n * @param {?} name\n * @return {?}\n */\n AnimationTransitionNamespace.prototype._getTrigger = /**\n * @param {?} name\n * @return {?}\n */\n function (name) {\n var /** @type {?} */ trigger = this._triggers[name];\n if (!trigger) {\n throw new Error(\"The provided animation trigger \\\"\" + name + \"\\\" has not been registered!\");\n }\n return trigger;\n };\n /**\n * @param {?} element\n * @param {?} triggerName\n * @param {?} value\n * @param {?=} defaultToFallback\n * @return {?}\n */\n AnimationTransitionNamespace.prototype.trigger = /**\n * @param {?} element\n * @param {?} triggerName\n * @param {?} value\n * @param {?=} defaultToFallback\n * @return {?}\n */\n function (element, triggerName, value, defaultToFallback) {\n var _this = this;\n if (defaultToFallback === void 0) { defaultToFallback = true; }\n var /** @type {?} */ trigger = this._getTrigger(triggerName);\n var /** @type {?} */ player = new TransitionAnimationPlayer(this.id, triggerName, element);\n var /** @type {?} */ triggersWithStates = this._engine.statesByElement.get(element);\n if (!triggersWithStates) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + triggerName);\n this._engine.statesByElement.set(element, triggersWithStates = {});\n }\n var /** @type {?} */ fromState = triggersWithStates[triggerName];\n var /** @type {?} */ toState = new StateValue(value, this.id);\n var /** @type {?} */ isObj = value && value.hasOwnProperty('value');\n if (!isObj && fromState) {\n toState.absorbOptions(fromState.options);\n }\n triggersWithStates[triggerName] = toState;\n if (!fromState) {\n fromState = DEFAULT_STATE_VALUE;\n }\n else if (fromState === DELETED_STATE_VALUE) {\n return player;\n }\n var /** @type {?} */ isRemoval = toState.value === VOID_VALUE;\n // normally this isn't reached by here, however, if an object expression\n // is passed in then it may be a new object each time. Comparing the value\n // is important since that will stay the same despite there being a new object.\n // The removal arc here is special cased because the same element is triggered\n // twice in the event that it contains animations on the outer/inner portions\n // of the host container\n if (!isRemoval && fromState.value === toState.value) {\n // this means that despite the value not changing, some inner params\n // have changed which means that the animation final styles need to be applied\n if (!objEquals(fromState.params, toState.params)) {\n var /** @type {?} */ errors = [];\n var /** @type {?} */ fromStyles_1 = trigger.matchStyles(fromState.value, fromState.params, errors);\n var /** @type {?} */ toStyles_1 = trigger.matchStyles(toState.value, toState.params, errors);\n if (errors.length) {\n this._engine.reportError(errors);\n }\n else {\n this._engine.afterFlush(function () {\n eraseStyles(element, fromStyles_1);\n setStyles(element, toStyles_1);\n });\n }\n }\n return;\n }\n var /** @type {?} */ playersOnElement = getOrSetAsInMap(this._engine.playersByElement, element, []);\n playersOnElement.forEach(function (player) {\n // only remove the player if it is queued on the EXACT same trigger/namespace\n // we only also deal with queued players here because if the animation has\n // started then we want to keep the player alive until the flush happens\n // (which is where the previousPlayers are passed into the new palyer)\n if (player.namespaceId == _this.id && player.triggerName == triggerName && player.queued) {\n player.destroy();\n }\n });\n var /** @type {?} */ transition = trigger.matchTransition(fromState.value, toState.value);\n var /** @type {?} */ isFallbackTransition = false;\n if (!transition) {\n if (!defaultToFallback)\n return;\n transition = trigger.fallbackTransition;\n isFallbackTransition = true;\n }\n this._engine.totalQueuedPlayers++;\n this._queue.push({ element: element, triggerName: triggerName, transition: transition, fromState: fromState, toState: toState, player: player, isFallbackTransition: isFallbackTransition });\n if (!isFallbackTransition) {\n addClass(element, QUEUED_CLASSNAME);\n player.onStart(function () { removeClass(element, QUEUED_CLASSNAME); });\n }\n player.onDone(function () {\n var /** @type {?} */ index = _this.players.indexOf(player);\n if (index >= 0) {\n _this.players.splice(index, 1);\n }\n var /** @type {?} */ players = _this._engine.playersByElement.get(element);\n if (players) {\n var /** @type {?} */ index_1 = players.indexOf(player);\n if (index_1 >= 0) {\n players.splice(index_1, 1);\n }\n }\n });\n this.players.push(player);\n playersOnElement.push(player);\n return player;\n };\n /**\n * @param {?} name\n * @return {?}\n */\n AnimationTransitionNamespace.prototype.deregister = /**\n * @param {?} name\n * @return {?}\n */\n function (name) {\n var _this = this;\n delete this._triggers[name];\n this._engine.statesByElement.forEach(function (stateMap, element) { delete stateMap[name]; });\n this._elementListeners.forEach(function (listeners, element) {\n _this._elementListeners.set(element, listeners.filter(function (entry) { return entry.name != name; }));\n });\n };\n /**\n * @param {?} element\n * @return {?}\n */\n AnimationTransitionNamespace.prototype.clearElementCache = /**\n * @param {?} element\n * @return {?}\n */\n function (element) {\n this._engine.statesByElement.delete(element);\n this._elementListeners.delete(element);\n var /** @type {?} */ elementPlayers = this._engine.playersByElement.get(element);\n if (elementPlayers) {\n elementPlayers.forEach(function (player) { return player.destroy(); });\n this._engine.playersByElement.delete(element);\n }\n };\n /**\n * @param {?} rootElement\n * @param {?} context\n * @param {?=} animate\n * @return {?}\n */\n AnimationTransitionNamespace.prototype._signalRemovalForInnerTriggers = /**\n * @param {?} rootElement\n * @param {?} context\n * @param {?=} animate\n * @return {?}\n */\n function (rootElement, context, animate) {\n var _this = this;\n if (animate === void 0) { animate = false; }\n // emulate a leave animation for all inner nodes within this node.\n // If there are no animations found for any of the nodes then clear the cache\n // for the element.\n this._engine.driver.query(rootElement, NG_TRIGGER_SELECTOR, true).forEach(function (elm) {\n var /** @type {?} */ namespaces = _this._engine.fetchNamespacesByElement(elm);\n if (namespaces.size) {\n namespaces.forEach(function (ns) { ns.triggerLeaveAnimation(elm, context, false, true); });\n }\n else {\n _this.clearElementCache(elm);\n }\n });\n };\n /**\n * @param {?} element\n * @param {?} context\n * @param {?=} destroyAfterComplete\n * @param {?=} defaultToFallback\n * @return {?}\n */\n AnimationTransitionNamespace.prototype.triggerLeaveAnimation = /**\n * @param {?} element\n * @param {?} context\n * @param {?=} destroyAfterComplete\n * @param {?=} defaultToFallback\n * @return {?}\n */\n function (element, context, destroyAfterComplete, defaultToFallback) {\n var _this = this;\n var /** @type {?} */ triggerStates = this._engine.statesByElement.get(element);\n if (triggerStates) {\n var /** @type {?} */ players_1 = [];\n Object.keys(triggerStates).forEach(function (triggerName) {\n // this check is here in the event that an element is removed\n // twice (both on the host level and the component level)\n if (_this._triggers[triggerName]) {\n var /** @type {?} */ player = _this.trigger(element, triggerName, VOID_VALUE, defaultToFallback);\n if (player) {\n players_1.push(player);\n }\n }\n });\n if (players_1.length) {\n this._engine.markElementAsRemoved(this.id, element, true, context);\n if (destroyAfterComplete) {\n optimizeGroupPlayer(players_1).onDone(function () { return _this._engine.processLeaveNode(element); });\n }\n return true;\n }\n }\n return false;\n };\n /**\n * @param {?} element\n * @return {?}\n */\n AnimationTransitionNamespace.prototype.prepareLeaveAnimationListeners = /**\n * @param {?} element\n * @return {?}\n */\n function (element) {\n var _this = this;\n var /** @type {?} */ listeners = this._elementListeners.get(element);\n if (listeners) {\n var /** @type {?} */ visitedTriggers_1 = new Set();\n listeners.forEach(function (listener) {\n var /** @type {?} */ triggerName = listener.name;\n if (visitedTriggers_1.has(triggerName))\n return;\n visitedTriggers_1.add(triggerName);\n var /** @type {?} */ trigger = _this._triggers[triggerName];\n var /** @type {?} */ transition = trigger.fallbackTransition;\n var /** @type {?} */ elementStates = /** @type {?} */ ((_this._engine.statesByElement.get(element)));\n var /** @type {?} */ fromState = elementStates[triggerName] || DEFAULT_STATE_VALUE;\n var /** @type {?} */ toState = new StateValue(VOID_VALUE);\n var /** @type {?} */ player = new TransitionAnimationPlayer(_this.id, triggerName, element);\n _this._engine.totalQueuedPlayers++;\n _this._queue.push({\n element: element,\n triggerName: triggerName,\n transition: transition,\n fromState: fromState,\n toState: toState,\n player: player,\n isFallbackTransition: true\n });\n });\n }\n };\n /**\n * @param {?} element\n * @param {?} context\n * @return {?}\n */\n AnimationTransitionNamespace.prototype.removeNode = /**\n * @param {?} element\n * @param {?} context\n * @return {?}\n */\n function (element, context) {\n var _this = this;\n var /** @type {?} */ engine = this._engine;\n if (element.childElementCount) {\n this._signalRemovalForInnerTriggers(element, context, true);\n }\n // this means that a * => VOID animation was detected and kicked off\n if (this.triggerLeaveAnimation(element, context, true))\n return;\n // find the player that is animating and make sure that the\n // removal is delayed until that player has completed\n var /** @type {?} */ containsPotentialParentTransition = false;\n if (engine.totalAnimations) {\n var /** @type {?} */ currentPlayers = engine.players.length ? engine.playersByQueriedElement.get(element) : [];\n // when this `if statement` does not continue forward it means that\n // a previous animation query has selected the current element and\n // is animating it. In this situation want to continue fowards and\n // allow the element to be queued up for animation later.\n if (currentPlayers && currentPlayers.length) {\n containsPotentialParentTransition = true;\n }\n else {\n var /** @type {?} */ parent_1 = element;\n while (parent_1 = parent_1.parentNode) {\n var /** @type {?} */ triggers = engine.statesByElement.get(parent_1);\n if (triggers) {\n containsPotentialParentTransition = true;\n break;\n }\n }\n }\n }\n // at this stage we know that the element will either get removed\n // during flush or will be picked up by a parent query. Either way\n // we need to fire the listeners for this element when it DOES get\n // removed (once the query parent animation is done or after flush)\n this.prepareLeaveAnimationListeners(element);\n // whether or not a parent has an animation we need to delay the deferral of the leave\n // operation until we have more information (which we do after flush() has been called)\n if (containsPotentialParentTransition) {\n engine.markElementAsRemoved(this.id, element, false, context);\n }\n else {\n // we do this after the flush has occurred such\n // that the callbacks can be fired\n engine.afterFlush(function () { return _this.clearElementCache(element); });\n engine.destroyInnerAnimations(element);\n engine._onRemovalComplete(element, context);\n }\n };\n /**\n * @param {?} element\n * @param {?} parent\n * @return {?}\n */\n AnimationTransitionNamespace.prototype.insertNode = /**\n * @param {?} element\n * @param {?} parent\n * @return {?}\n */\n function (element, parent) { addClass(element, this._hostClassName); };\n /**\n * @param {?} microtaskId\n * @return {?}\n */\n AnimationTransitionNamespace.prototype.drainQueuedTransitions = /**\n * @param {?} microtaskId\n * @return {?}\n */\n function (microtaskId) {\n var _this = this;\n var /** @type {?} */ instructions = [];\n this._queue.forEach(function (entry) {\n var /** @type {?} */ player = entry.player;\n if (player.destroyed)\n return;\n var /** @type {?} */ element = entry.element;\n var /** @type {?} */ listeners = _this._elementListeners.get(element);\n if (listeners) {\n listeners.forEach(function (listener) {\n if (listener.name == entry.triggerName) {\n var /** @type {?} */ baseEvent = makeAnimationEvent(element, entry.triggerName, entry.fromState.value, entry.toState.value);\n (/** @type {?} */ (baseEvent))['_data'] = microtaskId;\n listenOnPlayer(entry.player, listener.phase, baseEvent, listener.callback);\n }\n });\n }\n if (player.markedForDestroy) {\n _this._engine.afterFlush(function () {\n // now we can destroy the element properly since the event listeners have\n // been bound to the player\n player.destroy();\n });\n }\n else {\n instructions.push(entry);\n }\n });\n this._queue = [];\n return instructions.sort(function (a, b) {\n // if depCount == 0 them move to front\n // otherwise if a contains b then move back\n var /** @type {?} */ d0 = a.transition.ast.depCount;\n var /** @type {?} */ d1 = b.transition.ast.depCount;\n if (d0 == 0 || d1 == 0) {\n return d0 - d1;\n }\n return _this._engine.driver.containsElement(a.element, b.element) ? 1 : -1;\n });\n };\n /**\n * @param {?} context\n * @return {?}\n */\n AnimationTransitionNamespace.prototype.destroy = /**\n * @param {?} context\n * @return {?}\n */\n function (context) {\n this.players.forEach(function (p) { return p.destroy(); });\n this._signalRemovalForInnerTriggers(this.hostElement, context);\n };\n /**\n * @param {?} element\n * @return {?}\n */\n AnimationTransitionNamespace.prototype.elementContainsData = /**\n * @param {?} element\n * @return {?}\n */\n function (element) {\n var /** @type {?} */ containsData = false;\n if (this._elementListeners.has(element))\n containsData = true;\n containsData =\n (this._queue.find(function (entry) { return entry.element === element; }) ? true : false) || containsData;\n return containsData;\n };\n return AnimationTransitionNamespace;\n}());\n/**\n * @record\n */\n\nvar TransitionAnimationEngine = (function () {\n function TransitionAnimationEngine(driver, _normalizer) {\n this.driver = driver;\n this._normalizer = _normalizer;\n this.players = [];\n this.newHostElements = new Map();\n this.playersByElement = new Map();\n this.playersByQueriedElement = new Map();\n this.statesByElement = new Map();\n this.disabledNodes = new Set();\n this.totalAnimations = 0;\n this.totalQueuedPlayers = 0;\n this._namespaceLookup = {};\n this._namespaceList = [];\n this._flushFns = [];\n this._whenQuietFns = [];\n this.namespacesByHostElement = new Map();\n this.collectedEnterElements = [];\n this.collectedLeaveElements = [];\n this.onRemovalComplete = function (element, context) { };\n }\n /** @internal */\n /**\n * \\@internal\n * @param {?} element\n * @param {?} context\n * @return {?}\n */\n TransitionAnimationEngine.prototype._onRemovalComplete = /**\n * \\@internal\n * @param {?} element\n * @param {?} context\n * @return {?}\n */\n function (element, context) { this.onRemovalComplete(element, context); };\n Object.defineProperty(TransitionAnimationEngine.prototype, \"queuedPlayers\", {\n get: /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ players = [];\n this._namespaceList.forEach(function (ns) {\n ns.players.forEach(function (player) {\n if (player.queued) {\n players.push(player);\n }\n });\n });\n return players;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} namespaceId\n * @param {?} hostElement\n * @return {?}\n */\n TransitionAnimationEngine.prototype.createNamespace = /**\n * @param {?} namespaceId\n * @param {?} hostElement\n * @return {?}\n */\n function (namespaceId, hostElement) {\n var /** @type {?} */ ns = new AnimationTransitionNamespace(namespaceId, hostElement, this);\n if (hostElement.parentNode) {\n this._balanceNamespaceList(ns, hostElement);\n }\n else {\n // defer this later until flush during when the host element has\n // been inserted so that we know exactly where to place it in\n // the namespace list\n this.newHostElements.set(hostElement, ns);\n // given that this host element is apart of the animation code, it\n // may or may not be inserted by a parent node that is an of an\n // animation renderer type. If this happens then we can still have\n // access to this item when we query for :enter nodes. If the parent\n // is a renderer then the set data-structure will normalize the entry\n this.collectEnterElement(hostElement);\n }\n return this._namespaceLookup[namespaceId] = ns;\n };\n /**\n * @param {?} ns\n * @param {?} hostElement\n * @return {?}\n */\n TransitionAnimationEngine.prototype._balanceNamespaceList = /**\n * @param {?} ns\n * @param {?} hostElement\n * @return {?}\n */\n function (ns, hostElement) {\n var /** @type {?} */ limit = this._namespaceList.length - 1;\n if (limit >= 0) {\n var /** @type {?} */ found = false;\n for (var /** @type {?} */ i = limit; i >= 0; i--) {\n var /** @type {?} */ nextNamespace = this._namespaceList[i];\n if (this.driver.containsElement(nextNamespace.hostElement, hostElement)) {\n this._namespaceList.splice(i + 1, 0, ns);\n found = true;\n break;\n }\n }\n if (!found) {\n this._namespaceList.splice(0, 0, ns);\n }\n }\n else {\n this._namespaceList.push(ns);\n }\n this.namespacesByHostElement.set(hostElement, ns);\n return ns;\n };\n /**\n * @param {?} namespaceId\n * @param {?} hostElement\n * @return {?}\n */\n TransitionAnimationEngine.prototype.register = /**\n * @param {?} namespaceId\n * @param {?} hostElement\n * @return {?}\n */\n function (namespaceId, hostElement) {\n var /** @type {?} */ ns = this._namespaceLookup[namespaceId];\n if (!ns) {\n ns = this.createNamespace(namespaceId, hostElement);\n }\n return ns;\n };\n /**\n * @param {?} namespaceId\n * @param {?} name\n * @param {?} trigger\n * @return {?}\n */\n TransitionAnimationEngine.prototype.registerTrigger = /**\n * @param {?} namespaceId\n * @param {?} name\n * @param {?} trigger\n * @return {?}\n */\n function (namespaceId, name, trigger) {\n var /** @type {?} */ ns = this._namespaceLookup[namespaceId];\n if (ns && ns.register(name, trigger)) {\n this.totalAnimations++;\n }\n };\n /**\n * @param {?} namespaceId\n * @param {?} context\n * @return {?}\n */\n TransitionAnimationEngine.prototype.destroy = /**\n * @param {?} namespaceId\n * @param {?} context\n * @return {?}\n */\n function (namespaceId, context) {\n var _this = this;\n if (!namespaceId)\n return;\n var /** @type {?} */ ns = this._fetchNamespace(namespaceId);\n this.afterFlush(function () {\n _this.namespacesByHostElement.delete(ns.hostElement);\n delete _this._namespaceLookup[namespaceId];\n var /** @type {?} */ index = _this._namespaceList.indexOf(ns);\n if (index >= 0) {\n _this._namespaceList.splice(index, 1);\n }\n });\n this.afterFlushAnimationsDone(function () { return ns.destroy(context); });\n };\n /**\n * @param {?} id\n * @return {?}\n */\n TransitionAnimationEngine.prototype._fetchNamespace = /**\n * @param {?} id\n * @return {?}\n */\n function (id) { return this._namespaceLookup[id]; };\n /**\n * @param {?} element\n * @return {?}\n */\n TransitionAnimationEngine.prototype.fetchNamespacesByElement = /**\n * @param {?} element\n * @return {?}\n */\n function (element) {\n // normally there should only be one namespace per element, however\n // if @triggers are placed on both the component element and then\n // its host element (within the component code) then there will be\n // two namespaces returned. We use a set here to simply the dedupe\n // of namespaces incase there are multiple triggers both the elm and host\n var /** @type {?} */ namespaces = new Set();\n var /** @type {?} */ elementStates = this.statesByElement.get(element);\n if (elementStates) {\n var /** @type {?} */ keys = Object.keys(elementStates);\n for (var /** @type {?} */ i = 0; i < keys.length; i++) {\n var /** @type {?} */ nsId = elementStates[keys[i]].namespaceId;\n if (nsId) {\n var /** @type {?} */ ns = this._fetchNamespace(nsId);\n if (ns) {\n namespaces.add(ns);\n }\n }\n }\n }\n return namespaces;\n };\n /**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} name\n * @param {?} value\n * @return {?}\n */\n TransitionAnimationEngine.prototype.trigger = /**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} name\n * @param {?} value\n * @return {?}\n */\n function (namespaceId, element, name, value) {\n if (isElementNode(element)) {\n this._fetchNamespace(namespaceId).trigger(element, name, value);\n return true;\n }\n return false;\n };\n /**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} parent\n * @param {?} insertBefore\n * @return {?}\n */\n TransitionAnimationEngine.prototype.insertNode = /**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} parent\n * @param {?} insertBefore\n * @return {?}\n */\n function (namespaceId, element, parent, insertBefore) {\n if (!isElementNode(element))\n return;\n // special case for when an element is removed and reinserted (move operation)\n // when this occurs we do not want to use the element for deletion later\n var /** @type {?} */ details = /** @type {?} */ (element[REMOVAL_FLAG]);\n if (details && details.setForRemoval) {\n details.setForRemoval = false;\n }\n // in the event that the namespaceId is blank then the caller\n // code does not contain any animation code in it, but it is\n // just being called so that the node is marked as being inserted\n if (namespaceId) {\n this._fetchNamespace(namespaceId).insertNode(element, parent);\n }\n // only *directives and host elements are inserted before\n if (insertBefore) {\n this.collectEnterElement(element);\n }\n };\n /**\n * @param {?} element\n * @return {?}\n */\n TransitionAnimationEngine.prototype.collectEnterElement = /**\n * @param {?} element\n * @return {?}\n */\n function (element) { this.collectedEnterElements.push(element); };\n /**\n * @param {?} element\n * @param {?} value\n * @return {?}\n */\n TransitionAnimationEngine.prototype.markElementAsDisabled = /**\n * @param {?} element\n * @param {?} value\n * @return {?}\n */\n function (element, value) {\n if (value) {\n if (!this.disabledNodes.has(element)) {\n this.disabledNodes.add(element);\n addClass(element, DISABLED_CLASSNAME);\n }\n }\n else if (this.disabledNodes.has(element)) {\n this.disabledNodes.delete(element);\n removeClass(element, DISABLED_CLASSNAME);\n }\n };\n /**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} context\n * @return {?}\n */\n TransitionAnimationEngine.prototype.removeNode = /**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} context\n * @return {?}\n */\n function (namespaceId, element, context) {\n if (!isElementNode(element)) {\n this._onRemovalComplete(element, context);\n return;\n }\n var /** @type {?} */ ns = namespaceId ? this._fetchNamespace(namespaceId) : null;\n if (ns) {\n ns.removeNode(element, context);\n }\n else {\n this.markElementAsRemoved(namespaceId, element, false, context);\n }\n };\n /**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?=} hasAnimation\n * @param {?=} context\n * @return {?}\n */\n TransitionAnimationEngine.prototype.markElementAsRemoved = /**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?=} hasAnimation\n * @param {?=} context\n * @return {?}\n */\n function (namespaceId, element, hasAnimation, context) {\n this.collectedLeaveElements.push(element);\n element[REMOVAL_FLAG] = {\n namespaceId: namespaceId,\n setForRemoval: context, hasAnimation: hasAnimation,\n removedBeforeQueried: false\n };\n };\n /**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} name\n * @param {?} phase\n * @param {?} callback\n * @return {?}\n */\n TransitionAnimationEngine.prototype.listen = /**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} name\n * @param {?} phase\n * @param {?} callback\n * @return {?}\n */\n function (namespaceId, element, name, phase, callback) {\n if (isElementNode(element)) {\n return this._fetchNamespace(namespaceId).listen(element, name, phase, callback);\n }\n return function () { };\n };\n /**\n * @param {?} entry\n * @param {?} subTimelines\n * @return {?}\n */\n TransitionAnimationEngine.prototype._buildInstruction = /**\n * @param {?} entry\n * @param {?} subTimelines\n * @return {?}\n */\n function (entry, subTimelines) {\n return entry.transition.build(this.driver, entry.element, entry.fromState.value, entry.toState.value, entry.fromState.options, entry.toState.options, subTimelines);\n };\n /**\n * @param {?} containerElement\n * @return {?}\n */\n TransitionAnimationEngine.prototype.destroyInnerAnimations = /**\n * @param {?} containerElement\n * @return {?}\n */\n function (containerElement) {\n var _this = this;\n var /** @type {?} */ elements = this.driver.query(containerElement, NG_TRIGGER_SELECTOR, true);\n elements.forEach(function (element) { return _this.destroyActiveAnimationsForElement(element); });\n if (this.playersByQueriedElement.size == 0)\n return;\n elements = this.driver.query(containerElement, NG_ANIMATING_SELECTOR, true);\n elements.forEach(function (element) { return _this.finishActiveQueriedAnimationOnElement(element); });\n };\n /**\n * @param {?} element\n * @return {?}\n */\n TransitionAnimationEngine.prototype.destroyActiveAnimationsForElement = /**\n * @param {?} element\n * @return {?}\n */\n function (element) {\n var /** @type {?} */ players = this.playersByElement.get(element);\n if (players) {\n players.forEach(function (player) {\n // special case for when an element is set for destruction, but hasn't started.\n // in this situation we want to delay the destruction until the flush occurs\n // so that any event listeners attached to the player are triggered.\n if (player.queued) {\n player.markedForDestroy = true;\n }\n else {\n player.destroy();\n }\n });\n }\n var /** @type {?} */ stateMap = this.statesByElement.get(element);\n if (stateMap) {\n Object.keys(stateMap).forEach(function (triggerName) { return stateMap[triggerName] = DELETED_STATE_VALUE; });\n }\n };\n /**\n * @param {?} element\n * @return {?}\n */\n TransitionAnimationEngine.prototype.finishActiveQueriedAnimationOnElement = /**\n * @param {?} element\n * @return {?}\n */\n function (element) {\n var /** @type {?} */ players = this.playersByQueriedElement.get(element);\n if (players) {\n players.forEach(function (player) { return player.finish(); });\n }\n };\n /**\n * @return {?}\n */\n TransitionAnimationEngine.prototype.whenRenderingDone = /**\n * @return {?}\n */\n function () {\n var _this = this;\n return new Promise(function (resolve) {\n if (_this.players.length) {\n return optimizeGroupPlayer(_this.players).onDone(function () { return resolve(); });\n }\n else {\n resolve();\n }\n });\n };\n /**\n * @param {?} element\n * @return {?}\n */\n TransitionAnimationEngine.prototype.processLeaveNode = /**\n * @param {?} element\n * @return {?}\n */\n function (element) {\n var _this = this;\n var /** @type {?} */ details = /** @type {?} */ (element[REMOVAL_FLAG]);\n if (details && details.setForRemoval) {\n // this will prevent it from removing it twice\n element[REMOVAL_FLAG] = NULL_REMOVAL_STATE;\n if (details.namespaceId) {\n this.destroyInnerAnimations(element);\n var /** @type {?} */ ns = this._fetchNamespace(details.namespaceId);\n if (ns) {\n ns.clearElementCache(element);\n }\n }\n this._onRemovalComplete(element, details.setForRemoval);\n }\n if (this.driver.matchesElement(element, DISABLED_SELECTOR)) {\n this.markElementAsDisabled(element, false);\n }\n this.driver.query(element, DISABLED_SELECTOR, true).forEach(function (node) {\n _this.markElementAsDisabled(element, false);\n });\n };\n /**\n * @param {?=} microtaskId\n * @return {?}\n */\n TransitionAnimationEngine.prototype.flush = /**\n * @param {?=} microtaskId\n * @return {?}\n */\n function (microtaskId) {\n var _this = this;\n if (microtaskId === void 0) { microtaskId = -1; }\n var /** @type {?} */ players = [];\n if (this.newHostElements.size) {\n this.newHostElements.forEach(function (ns, element) { return _this._balanceNamespaceList(ns, element); });\n this.newHostElements.clear();\n }\n if (this._namespaceList.length &&\n (this.totalQueuedPlayers || this.collectedLeaveElements.length)) {\n var /** @type {?} */ cleanupFns = [];\n try {\n players = this._flushAnimations(cleanupFns, microtaskId);\n }\n finally {\n for (var /** @type {?} */ i = 0; i < cleanupFns.length; i++) {\n cleanupFns[i]();\n }\n }\n }\n else {\n for (var /** @type {?} */ i = 0; i < this.collectedLeaveElements.length; i++) {\n var /** @type {?} */ element = this.collectedLeaveElements[i];\n this.processLeaveNode(element);\n }\n }\n this.totalQueuedPlayers = 0;\n this.collectedEnterElements.length = 0;\n this.collectedLeaveElements.length = 0;\n this._flushFns.forEach(function (fn) { return fn(); });\n this._flushFns = [];\n if (this._whenQuietFns.length) {\n // we move these over to a variable so that\n // if any new callbacks are registered in another\n // flush they do not populate the existing set\n var /** @type {?} */ quietFns_1 = this._whenQuietFns;\n this._whenQuietFns = [];\n if (players.length) {\n optimizeGroupPlayer(players).onDone(function () { quietFns_1.forEach(function (fn) { return fn(); }); });\n }\n else {\n quietFns_1.forEach(function (fn) { return fn(); });\n }\n }\n };\n /**\n * @param {?} errors\n * @return {?}\n */\n TransitionAnimationEngine.prototype.reportError = /**\n * @param {?} errors\n * @return {?}\n */\n function (errors) {\n throw new Error(\"Unable to process animations due to the following failed trigger transitions\\n \" + errors.join('\\n'));\n };\n /**\n * @param {?} cleanupFns\n * @param {?} microtaskId\n * @return {?}\n */\n TransitionAnimationEngine.prototype._flushAnimations = /**\n * @param {?} cleanupFns\n * @param {?} microtaskId\n * @return {?}\n */\n function (cleanupFns, microtaskId) {\n var _this = this;\n var /** @type {?} */ subTimelines = new ElementInstructionMap();\n var /** @type {?} */ skippedPlayers = [];\n var /** @type {?} */ skippedPlayersMap = new Map();\n var /** @type {?} */ queuedInstructions = [];\n var /** @type {?} */ queriedElements = new Map();\n var /** @type {?} */ allPreStyleElements = new Map();\n var /** @type {?} */ allPostStyleElements = new Map();\n var /** @type {?} */ disabledElementsSet = new Set();\n this.disabledNodes.forEach(function (node) {\n disabledElementsSet.add(node);\n var /** @type {?} */ nodesThatAreDisabled = _this.driver.query(node, QUEUED_SELECTOR, true);\n for (var /** @type {?} */ i = 0; i < nodesThatAreDisabled.length; i++) {\n disabledElementsSet.add(nodesThatAreDisabled[i]);\n }\n });\n var /** @type {?} */ bodyNode = getBodyNode();\n var /** @type {?} */ allEnterNodes = this.collectedEnterElements.length ?\n this.collectedEnterElements.filter(createIsRootFilterFn(this.collectedEnterElements)) :\n [];\n // this must occur before the instructions are built below such that\n // the :enter queries match the elements (since the timeline queries\n // are fired during instruction building).\n for (var /** @type {?} */ i = 0; i < allEnterNodes.length; i++) {\n addClass(allEnterNodes[i], ENTER_CLASSNAME);\n }\n var /** @type {?} */ allLeaveNodes = [];\n var /** @type {?} */ leaveNodesWithoutAnimations = new Set();\n for (var /** @type {?} */ i = 0; i < this.collectedLeaveElements.length; i++) {\n var /** @type {?} */ element = this.collectedLeaveElements[i];\n var /** @type {?} */ details = /** @type {?} */ (element[REMOVAL_FLAG]);\n if (details && details.setForRemoval) {\n addClass(element, LEAVE_CLASSNAME);\n allLeaveNodes.push(element);\n if (!details.hasAnimation) {\n leaveNodesWithoutAnimations.add(element);\n }\n }\n }\n cleanupFns.push(function () {\n allEnterNodes.forEach(function (element) { return removeClass(element, ENTER_CLASSNAME); });\n allLeaveNodes.forEach(function (element) {\n removeClass(element, LEAVE_CLASSNAME);\n _this.processLeaveNode(element);\n });\n });\n var /** @type {?} */ allPlayers = [];\n var /** @type {?} */ erroneousTransitions = [];\n for (var /** @type {?} */ i = this._namespaceList.length - 1; i >= 0; i--) {\n var /** @type {?} */ ns = this._namespaceList[i];\n ns.drainQueuedTransitions(microtaskId).forEach(function (entry) {\n var /** @type {?} */ player = entry.player;\n allPlayers.push(player);\n var /** @type {?} */ element = entry.element;\n if (!bodyNode || !_this.driver.containsElement(bodyNode, element)) {\n player.destroy();\n return;\n }\n var /** @type {?} */ instruction = /** @type {?} */ ((_this._buildInstruction(entry, subTimelines)));\n if (instruction.errors && instruction.errors.length) {\n erroneousTransitions.push(instruction);\n return;\n }\n // if a unmatched transition is queued to go then it SHOULD NOT render\n // an animation and cancel the previously running animations.\n if (entry.isFallbackTransition) {\n player.onStart(function () { return eraseStyles(element, instruction.fromStyles); });\n player.onDestroy(function () { return setStyles(element, instruction.toStyles); });\n skippedPlayers.push(player);\n return;\n }\n // this means that if a parent animation uses this animation as a sub trigger\n // then it will instruct the timeline builder to not add a player delay, but\n // instead stretch the first keyframe gap up until the animation starts. The\n // reason this is important is to prevent extra initialization styles from being\n // required by the user in the animation.\n instruction.timelines.forEach(function (tl) { return tl.stretchStartingKeyframe = true; });\n subTimelines.append(element, instruction.timelines);\n var /** @type {?} */ tuple = { instruction: instruction, player: player, element: element };\n queuedInstructions.push(tuple);\n instruction.queriedElements.forEach(function (element) { return getOrSetAsInMap(queriedElements, element, []).push(player); });\n instruction.preStyleProps.forEach(function (stringMap, element) {\n var /** @type {?} */ props = Object.keys(stringMap);\n if (props.length) {\n var /** @type {?} */ setVal_1 = /** @type {?} */ ((allPreStyleElements.get(element)));\n if (!setVal_1) {\n allPreStyleElements.set(element, setVal_1 = new Set());\n }\n props.forEach(function (prop) { return setVal_1.add(prop); });\n }\n });\n instruction.postStyleProps.forEach(function (stringMap, element) {\n var /** @type {?} */ props = Object.keys(stringMap);\n var /** @type {?} */ setVal = /** @type {?} */ ((allPostStyleElements.get(element)));\n if (!setVal) {\n allPostStyleElements.set(element, setVal = new Set());\n }\n props.forEach(function (prop) { return setVal.add(prop); });\n });\n });\n }\n if (erroneousTransitions.length) {\n var /** @type {?} */ errors_1 = [];\n erroneousTransitions.forEach(function (instruction) {\n errors_1.push(\"@\" + instruction.triggerName + \" has failed due to:\\n\"); /** @type {?} */\n ((instruction.errors)).forEach(function (error) { return errors_1.push(\"- \" + error + \"\\n\"); });\n });\n allPlayers.forEach(function (player) { return player.destroy(); });\n this.reportError(errors_1);\n }\n // these can only be detected here since we have a map of all the elements\n // that have animations attached to them... We use a set here in the event\n // multiple enter captures on the same element were caught in different\n // renderer namespaces (e.g. when a @trigger was on a host binding that had *ngIf)\n var /** @type {?} */ enterNodesWithoutAnimations = new Set();\n for (var /** @type {?} */ i = 0; i < allEnterNodes.length; i++) {\n var /** @type {?} */ element = allEnterNodes[i];\n if (!subTimelines.has(element)) {\n enterNodesWithoutAnimations.add(element);\n }\n }\n var /** @type {?} */ allPreviousPlayersMap = new Map();\n var /** @type {?} */ sortedParentElements = [];\n queuedInstructions.forEach(function (entry) {\n var /** @type {?} */ element = entry.element;\n if (subTimelines.has(element)) {\n sortedParentElements.unshift(element);\n _this._beforeAnimationBuild(entry.player.namespaceId, entry.instruction, allPreviousPlayersMap);\n }\n });\n skippedPlayers.forEach(function (player) {\n var /** @type {?} */ element = player.element;\n var /** @type {?} */ previousPlayers = _this._getPreviousPlayers(element, false, player.namespaceId, player.triggerName, null);\n previousPlayers.forEach(function (prevPlayer) {\n getOrSetAsInMap(allPreviousPlayersMap, element, []).push(prevPlayer);\n prevPlayer.destroy();\n });\n });\n // this is a special case for nodes that will be removed (either by)\n // having their own leave animations or by being queried in a container\n // that will be removed once a parent animation is complete. The idea\n // here is that * styles must be identical to ! styles because of\n // backwards compatibility (* is also filled in by default in many places).\n // Otherwise * styles will return an empty value or auto since the element\n // that is being getComputedStyle'd will not be visible (since * = destination)\n var /** @type {?} */ replaceNodes = allLeaveNodes.filter(function (node) {\n return replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements);\n });\n // POST STAGE: fill the * styles\n var _a = cloakAndComputeStyles(this.driver, leaveNodesWithoutAnimations, allPostStyleElements, _angular_animations.AUTO_STYLE), postStylesMap = _a[0], allLeaveQueriedNodes = _a[1];\n allLeaveQueriedNodes.forEach(function (node) {\n if (replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements)) {\n replaceNodes.push(node);\n }\n });\n // PRE STAGE: fill the ! styles\n var preStylesMap = (allPreStyleElements.size ?\n cloakAndComputeStyles(this.driver, enterNodesWithoutAnimations, allPreStyleElements, _angular_animations.ɵPRE_STYLE) :\n [new Map()])[0];\n replaceNodes.forEach(function (node) {\n var /** @type {?} */ post = postStylesMap.get(node);\n var /** @type {?} */ pre = preStylesMap.get(node);\n postStylesMap.set(node, /** @type {?} */ (__assign({}, post, pre)));\n });\n var /** @type {?} */ rootPlayers = [];\n var /** @type {?} */ subPlayers = [];\n queuedInstructions.forEach(function (entry) {\n var element = entry.element, player = entry.player, instruction = entry.instruction;\n // this means that it was never consumed by a parent animation which\n // means that it is independent and therefore should be set for animation\n if (subTimelines.has(element)) {\n if (disabledElementsSet.has(element)) {\n skippedPlayers.push(player);\n return;\n }\n var /** @type {?} */ innerPlayer = _this._buildAnimation(player.namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap);\n player.setRealPlayer(innerPlayer);\n var /** @type {?} */ parentHasPriority = null;\n for (var /** @type {?} */ i = 0; i < sortedParentElements.length; i++) {\n var /** @type {?} */ parent_2 = sortedParentElements[i];\n if (parent_2 === element)\n break;\n if (_this.driver.containsElement(parent_2, element)) {\n parentHasPriority = parent_2;\n break;\n }\n }\n if (parentHasPriority) {\n var /** @type {?} */ parentPlayers = _this.playersByElement.get(parentHasPriority);\n if (parentPlayers && parentPlayers.length) {\n player.parentPlayer = optimizeGroupPlayer(parentPlayers);\n }\n skippedPlayers.push(player);\n }\n else {\n rootPlayers.push(player);\n }\n }\n else {\n eraseStyles(element, instruction.fromStyles);\n player.onDestroy(function () { return setStyles(element, instruction.toStyles); });\n // there still might be a ancestor player animating this\n // element therefore we will still add it as a sub player\n // even if its animation may be disabled\n subPlayers.push(player);\n if (disabledElementsSet.has(element)) {\n skippedPlayers.push(player);\n }\n }\n });\n // find all of the sub players' corresponding inner animation player\n subPlayers.forEach(function (player) {\n // even if any players are not found for a sub animation then it\n // will still complete itself after the next tick since it's Noop\n var /** @type {?} */ playersForElement = skippedPlayersMap.get(player.element);\n if (playersForElement && playersForElement.length) {\n var /** @type {?} */ innerPlayer = optimizeGroupPlayer(playersForElement);\n player.setRealPlayer(innerPlayer);\n }\n });\n // the reason why we don't actually play the animation is\n // because all that a skipped player is designed to do is to\n // fire the start/done transition callback events\n skippedPlayers.forEach(function (player) {\n if (player.parentPlayer) {\n player.parentPlayer.onDestroy(function () { return player.destroy(); });\n }\n else {\n player.destroy();\n }\n });\n // run through all of the queued removals and see if they\n // were picked up by a query. If not then perform the removal\n // operation right away unless a parent animation is ongoing.\n for (var /** @type {?} */ i = 0; i < allLeaveNodes.length; i++) {\n var /** @type {?} */ element = allLeaveNodes[i];\n var /** @type {?} */ details = /** @type {?} */ (element[REMOVAL_FLAG]);\n removeClass(element, LEAVE_CLASSNAME);\n // this means the element has a removal animation that is being\n // taken care of and therefore the inner elements will hang around\n // until that animation is over (or the parent queried animation)\n if (details && details.hasAnimation)\n continue;\n var /** @type {?} */ players = [];\n // if this element is queried or if it contains queried children\n // then we want for the element not to be removed from the page\n // until the queried animations have finished\n if (queriedElements.size) {\n var /** @type {?} */ queriedPlayerResults = queriedElements.get(element);\n if (queriedPlayerResults && queriedPlayerResults.length) {\n players.push.apply(players, queriedPlayerResults);\n }\n var /** @type {?} */ queriedInnerElements = this.driver.query(element, NG_ANIMATING_SELECTOR, true);\n for (var /** @type {?} */ j = 0; j < queriedInnerElements.length; j++) {\n var /** @type {?} */ queriedPlayers = queriedElements.get(queriedInnerElements[j]);\n if (queriedPlayers && queriedPlayers.length) {\n players.push.apply(players, queriedPlayers);\n }\n }\n }\n var /** @type {?} */ activePlayers = players.filter(function (p) { return !p.destroyed; });\n if (activePlayers.length) {\n removeNodesAfterAnimationDone(this, element, activePlayers);\n }\n else {\n this.processLeaveNode(element);\n }\n }\n // this is required so the cleanup method doesn't remove them\n allLeaveNodes.length = 0;\n rootPlayers.forEach(function (player) {\n _this.players.push(player);\n player.onDone(function () {\n player.destroy();\n var /** @type {?} */ index = _this.players.indexOf(player);\n _this.players.splice(index, 1);\n });\n player.play();\n });\n return rootPlayers;\n };\n /**\n * @param {?} namespaceId\n * @param {?} element\n * @return {?}\n */\n TransitionAnimationEngine.prototype.elementContainsData = /**\n * @param {?} namespaceId\n * @param {?} element\n * @return {?}\n */\n function (namespaceId, element) {\n var /** @type {?} */ containsData = false;\n var /** @type {?} */ details = /** @type {?} */ (element[REMOVAL_FLAG]);\n if (details && details.setForRemoval)\n containsData = true;\n if (this.playersByElement.has(element))\n containsData = true;\n if (this.playersByQueriedElement.has(element))\n containsData = true;\n if (this.statesByElement.has(element))\n containsData = true;\n return this._fetchNamespace(namespaceId).elementContainsData(element) || containsData;\n };\n /**\n * @param {?} callback\n * @return {?}\n */\n TransitionAnimationEngine.prototype.afterFlush = /**\n * @param {?} callback\n * @return {?}\n */\n function (callback) { this._flushFns.push(callback); };\n /**\n * @param {?} callback\n * @return {?}\n */\n TransitionAnimationEngine.prototype.afterFlushAnimationsDone = /**\n * @param {?} callback\n * @return {?}\n */\n function (callback) { this._whenQuietFns.push(callback); };\n /**\n * @param {?} element\n * @param {?} isQueriedElement\n * @param {?=} namespaceId\n * @param {?=} triggerName\n * @param {?=} toStateValue\n * @return {?}\n */\n TransitionAnimationEngine.prototype._getPreviousPlayers = /**\n * @param {?} element\n * @param {?} isQueriedElement\n * @param {?=} namespaceId\n * @param {?=} triggerName\n * @param {?=} toStateValue\n * @return {?}\n */\n function (element, isQueriedElement, namespaceId, triggerName, toStateValue) {\n var /** @type {?} */ players = [];\n if (isQueriedElement) {\n var /** @type {?} */ queriedElementPlayers = this.playersByQueriedElement.get(element);\n if (queriedElementPlayers) {\n players = queriedElementPlayers;\n }\n }\n else {\n var /** @type {?} */ elementPlayers = this.playersByElement.get(element);\n if (elementPlayers) {\n var /** @type {?} */ isRemovalAnimation_1 = !toStateValue || toStateValue == VOID_VALUE;\n elementPlayers.forEach(function (player) {\n if (player.queued)\n return;\n if (!isRemovalAnimation_1 && player.triggerName != triggerName)\n return;\n players.push(player);\n });\n }\n }\n if (namespaceId || triggerName) {\n players = players.filter(function (player) {\n if (namespaceId && namespaceId != player.namespaceId)\n return false;\n if (triggerName && triggerName != player.triggerName)\n return false;\n return true;\n });\n }\n return players;\n };\n /**\n * @param {?} namespaceId\n * @param {?} instruction\n * @param {?} allPreviousPlayersMap\n * @return {?}\n */\n TransitionAnimationEngine.prototype._beforeAnimationBuild = /**\n * @param {?} namespaceId\n * @param {?} instruction\n * @param {?} allPreviousPlayersMap\n * @return {?}\n */\n function (namespaceId, instruction, allPreviousPlayersMap) {\n var _this = this;\n var /** @type {?} */ triggerName = instruction.triggerName;\n var /** @type {?} */ rootElement = instruction.element;\n // when a removal animation occurs, ALL previous players are collected\n // and destroyed (even if they are outside of the current namespace)\n var /** @type {?} */ targetNameSpaceId = instruction.isRemovalTransition ? undefined : namespaceId;\n var /** @type {?} */ targetTriggerName = instruction.isRemovalTransition ? undefined : triggerName;\n instruction.timelines.map(function (timelineInstruction) {\n var /** @type {?} */ element = timelineInstruction.element;\n var /** @type {?} */ isQueriedElement = element !== rootElement;\n var /** @type {?} */ players = getOrSetAsInMap(allPreviousPlayersMap, element, []);\n var /** @type {?} */ previousPlayers = _this._getPreviousPlayers(element, isQueriedElement, targetNameSpaceId, targetTriggerName, instruction.toState);\n previousPlayers.forEach(function (player) {\n var /** @type {?} */ realPlayer = /** @type {?} */ (player.getRealPlayer());\n if (realPlayer.beforeDestroy) {\n realPlayer.beforeDestroy();\n }\n player.destroy();\n players.push(player);\n });\n });\n // this needs to be done so that the PRE/POST styles can be\n // computed properly without interfering with the previous animation\n eraseStyles(rootElement, instruction.fromStyles);\n };\n /**\n * @param {?} namespaceId\n * @param {?} instruction\n * @param {?} allPreviousPlayersMap\n * @param {?} skippedPlayersMap\n * @param {?} preStylesMap\n * @param {?} postStylesMap\n * @return {?}\n */\n TransitionAnimationEngine.prototype._buildAnimation = /**\n * @param {?} namespaceId\n * @param {?} instruction\n * @param {?} allPreviousPlayersMap\n * @param {?} skippedPlayersMap\n * @param {?} preStylesMap\n * @param {?} postStylesMap\n * @return {?}\n */\n function (namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap) {\n var _this = this;\n var /** @type {?} */ triggerName = instruction.triggerName;\n var /** @type {?} */ rootElement = instruction.element;\n // we first run this so that the previous animation player\n // data can be passed into the successive animation players\n var /** @type {?} */ allQueriedPlayers = [];\n var /** @type {?} */ allConsumedElements = new Set();\n var /** @type {?} */ allSubElements = new Set();\n var /** @type {?} */ allNewPlayers = instruction.timelines.map(function (timelineInstruction) {\n var /** @type {?} */ element = timelineInstruction.element;\n allConsumedElements.add(element);\n // FIXME (matsko): make sure to-be-removed animations are removed properly\n var /** @type {?} */ details = element[REMOVAL_FLAG];\n if (details && details.removedBeforeQueried)\n return new _angular_animations.NoopAnimationPlayer();\n var /** @type {?} */ isQueriedElement = element !== rootElement;\n var /** @type {?} */ previousPlayers = flattenGroupPlayers((allPreviousPlayersMap.get(element) || EMPTY_PLAYER_ARRAY)\n .map(function (p) { return p.getRealPlayer(); }))\n .filter(function (p) {\n // the `element` is not apart of the AnimationPlayer definition, but\n // Mock/WebAnimations\n // use the element within their implementation. This will be added in Angular5 to\n // AnimationPlayer\n var /** @type {?} */ pp = /** @type {?} */ (p);\n return pp.element ? pp.element === element : false;\n });\n var /** @type {?} */ preStyles = preStylesMap.get(element);\n var /** @type {?} */ postStyles = postStylesMap.get(element);\n var /** @type {?} */ keyframes = normalizeKeyframes(_this.driver, _this._normalizer, element, timelineInstruction.keyframes, preStyles, postStyles);\n var /** @type {?} */ player = _this._buildPlayer(timelineInstruction, keyframes, previousPlayers);\n // this means that this particular player belongs to a sub trigger. It is\n // important that we match this player up with the corresponding (@trigger.listener)\n if (timelineInstruction.subTimeline && skippedPlayersMap) {\n allSubElements.add(element);\n }\n if (isQueriedElement) {\n var /** @type {?} */ wrappedPlayer = new TransitionAnimationPlayer(namespaceId, triggerName, element);\n wrappedPlayer.setRealPlayer(player);\n allQueriedPlayers.push(wrappedPlayer);\n }\n return player;\n });\n allQueriedPlayers.forEach(function (player) {\n getOrSetAsInMap(_this.playersByQueriedElement, player.element, []).push(player);\n player.onDone(function () { return deleteOrUnsetInMap(_this.playersByQueriedElement, player.element, player); });\n });\n allConsumedElements.forEach(function (element) { return addClass(element, NG_ANIMATING_CLASSNAME); });\n var /** @type {?} */ player = optimizeGroupPlayer(allNewPlayers);\n player.onDestroy(function () {\n allConsumedElements.forEach(function (element) { return removeClass(element, NG_ANIMATING_CLASSNAME); });\n setStyles(rootElement, instruction.toStyles);\n });\n // this basically makes all of the callbacks for sub element animations\n // be dependent on the upper players for when they finish\n allSubElements.forEach(function (element) { getOrSetAsInMap(skippedPlayersMap, element, []).push(player); });\n return player;\n };\n /**\n * @param {?} instruction\n * @param {?} keyframes\n * @param {?} previousPlayers\n * @return {?}\n */\n TransitionAnimationEngine.prototype._buildPlayer = /**\n * @param {?} instruction\n * @param {?} keyframes\n * @param {?} previousPlayers\n * @return {?}\n */\n function (instruction, keyframes, previousPlayers) {\n if (keyframes.length > 0) {\n return this.driver.animate(instruction.element, keyframes, instruction.duration, instruction.delay, instruction.easing, previousPlayers);\n }\n // special case for when an empty transition|definition is provided\n // ... there is no point in rendering an empty animation\n return new _angular_animations.NoopAnimationPlayer();\n };\n return TransitionAnimationEngine;\n}());\nvar TransitionAnimationPlayer = (function () {\n function TransitionAnimationPlayer(namespaceId, triggerName, element) {\n this.namespaceId = namespaceId;\n this.triggerName = triggerName;\n this.element = element;\n this._player = new _angular_animations.NoopAnimationPlayer();\n this._containsRealPlayer = false;\n this._queuedCallbacks = {};\n this.destroyed = false;\n this.markedForDestroy = false;\n }\n Object.defineProperty(TransitionAnimationPlayer.prototype, \"queued\", {\n get: /**\n * @return {?}\n */\n function () { return this._containsRealPlayer == false; },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} player\n * @return {?}\n */\n TransitionAnimationPlayer.prototype.setRealPlayer = /**\n * @param {?} player\n * @return {?}\n */\n function (player) {\n var _this = this;\n if (this._containsRealPlayer)\n return;\n this._player = player;\n Object.keys(this._queuedCallbacks).forEach(function (phase) {\n _this._queuedCallbacks[phase].forEach(function (callback) { return listenOnPlayer(player, phase, undefined, callback); });\n });\n this._queuedCallbacks = {};\n this._containsRealPlayer = true;\n };\n /**\n * @return {?}\n */\n TransitionAnimationPlayer.prototype.getRealPlayer = /**\n * @return {?}\n */\n function () { return this._player; };\n /**\n * @param {?} name\n * @param {?} callback\n * @return {?}\n */\n TransitionAnimationPlayer.prototype._queueEvent = /**\n * @param {?} name\n * @param {?} callback\n * @return {?}\n */\n function (name, callback) {\n getOrSetAsInMap(this._queuedCallbacks, name, []).push(callback);\n };\n /**\n * @param {?} fn\n * @return {?}\n */\n TransitionAnimationPlayer.prototype.onDone = /**\n * @param {?} fn\n * @return {?}\n */\n function (fn) {\n if (this.queued) {\n this._queueEvent('done', fn);\n }\n this._player.onDone(fn);\n };\n /**\n * @param {?} fn\n * @return {?}\n */\n TransitionAnimationPlayer.prototype.onStart = /**\n * @param {?} fn\n * @return {?}\n */\n function (fn) {\n if (this.queued) {\n this._queueEvent('start', fn);\n }\n this._player.onStart(fn);\n };\n /**\n * @param {?} fn\n * @return {?}\n */\n TransitionAnimationPlayer.prototype.onDestroy = /**\n * @param {?} fn\n * @return {?}\n */\n function (fn) {\n if (this.queued) {\n this._queueEvent('destroy', fn);\n }\n this._player.onDestroy(fn);\n };\n /**\n * @return {?}\n */\n TransitionAnimationPlayer.prototype.init = /**\n * @return {?}\n */\n function () { this._player.init(); };\n /**\n * @return {?}\n */\n TransitionAnimationPlayer.prototype.hasStarted = /**\n * @return {?}\n */\n function () { return this.queued ? false : this._player.hasStarted(); };\n /**\n * @return {?}\n */\n TransitionAnimationPlayer.prototype.play = /**\n * @return {?}\n */\n function () { !this.queued && this._player.play(); };\n /**\n * @return {?}\n */\n TransitionAnimationPlayer.prototype.pause = /**\n * @return {?}\n */\n function () { !this.queued && this._player.pause(); };\n /**\n * @return {?}\n */\n TransitionAnimationPlayer.prototype.restart = /**\n * @return {?}\n */\n function () { !this.queued && this._player.restart(); };\n /**\n * @return {?}\n */\n TransitionAnimationPlayer.prototype.finish = /**\n * @return {?}\n */\n function () { this._player.finish(); };\n /**\n * @return {?}\n */\n TransitionAnimationPlayer.prototype.destroy = /**\n * @return {?}\n */\n function () {\n (/** @type {?} */ (this)).destroyed = true;\n this._player.destroy();\n };\n /**\n * @return {?}\n */\n TransitionAnimationPlayer.prototype.reset = /**\n * @return {?}\n */\n function () { !this.queued && this._player.reset(); };\n /**\n * @param {?} p\n * @return {?}\n */\n TransitionAnimationPlayer.prototype.setPosition = /**\n * @param {?} p\n * @return {?}\n */\n function (p) {\n if (!this.queued) {\n this._player.setPosition(p);\n }\n };\n /**\n * @return {?}\n */\n TransitionAnimationPlayer.prototype.getPosition = /**\n * @return {?}\n */\n function () { return this.queued ? 0 : this._player.getPosition(); };\n Object.defineProperty(TransitionAnimationPlayer.prototype, \"totalTime\", {\n get: /**\n * @return {?}\n */\n function () { return this._player.totalTime; },\n enumerable: true,\n configurable: true\n });\n return TransitionAnimationPlayer;\n}());\n/**\n * @param {?} map\n * @param {?} key\n * @param {?} value\n * @return {?}\n */\nfunction deleteOrUnsetInMap(map, key, value) {\n var /** @type {?} */ currentValues;\n if (map instanceof Map) {\n currentValues = map.get(key);\n if (currentValues) {\n if (currentValues.length) {\n var /** @type {?} */ index = currentValues.indexOf(value);\n currentValues.splice(index, 1);\n }\n if (currentValues.length == 0) {\n map.delete(key);\n }\n }\n }\n else {\n currentValues = map[key];\n if (currentValues) {\n if (currentValues.length) {\n var /** @type {?} */ index = currentValues.indexOf(value);\n currentValues.splice(index, 1);\n }\n if (currentValues.length == 0) {\n delete map[key];\n }\n }\n }\n return currentValues;\n}\n/**\n * @param {?} value\n * @return {?}\n */\nfunction normalizeTriggerValue(value) {\n // we use `!= null` here because it's the most simple\n // way to test against a \"falsy\" value without mixing\n // in empty strings or a zero value. DO NOT OPTIMIZE.\n return value != null ? value : null;\n}\n/**\n * @param {?} node\n * @return {?}\n */\nfunction isElementNode(node) {\n return node && node['nodeType'] === 1;\n}\n/**\n * @param {?} eventName\n * @return {?}\n */\nfunction isTriggerEventValid(eventName) {\n return eventName == 'start' || eventName == 'done';\n}\n/**\n * @param {?} element\n * @param {?=} value\n * @return {?}\n */\nfunction cloakElement(element, value) {\n var /** @type {?} */ oldValue = element.style.display;\n element.style.display = value != null ? value : 'none';\n return oldValue;\n}\n/**\n * @param {?} driver\n * @param {?} elements\n * @param {?} elementPropsMap\n * @param {?} defaultStyle\n * @return {?}\n */\nfunction cloakAndComputeStyles(driver, elements, elementPropsMap, defaultStyle) {\n var /** @type {?} */ cloakVals = [];\n elements.forEach(function (element) { return cloakVals.push(cloakElement(element)); });\n var /** @type {?} */ valuesMap = new Map();\n var /** @type {?} */ failedElements = [];\n elementPropsMap.forEach(function (props, element) {\n var /** @type {?} */ styles = {};\n props.forEach(function (prop) {\n var /** @type {?} */ value = styles[prop] = driver.computeStyle(element, prop, defaultStyle);\n // there is no easy way to detect this because a sub element could be removed\n // by a parent animation element being detached.\n if (!value || value.length == 0) {\n element[REMOVAL_FLAG] = NULL_REMOVED_QUERIED_STATE;\n failedElements.push(element);\n }\n });\n valuesMap.set(element, styles);\n });\n // we use a index variable here since Set.forEach(a, i) does not return\n // an index value for the closure (but instead just the value)\n var /** @type {?} */ i = 0;\n elements.forEach(function (element) { return cloakElement(element, cloakVals[i++]); });\n return [valuesMap, failedElements];\n}\n/**\n * @param {?} nodes\n * @return {?}\n */\nfunction createIsRootFilterFn(nodes) {\n var /** @type {?} */ nodeSet = new Set(nodes);\n var /** @type {?} */ knownRootContainer = new Set();\n var /** @type {?} */ isRoot;\n isRoot = function (node) {\n if (!node)\n return true;\n if (nodeSet.has(node.parentNode))\n return false;\n if (knownRootContainer.has(node.parentNode))\n return true;\n if (isRoot(node.parentNode)) {\n knownRootContainer.add(node);\n return true;\n }\n return false;\n };\n return isRoot;\n}\nvar CLASSES_CACHE_KEY = '$$classes';\n/**\n * @param {?} element\n * @param {?} className\n * @return {?}\n */\nfunction addClass(element, className) {\n if (element.classList) {\n element.classList.add(className);\n }\n else {\n var /** @type {?} */ classes = element[CLASSES_CACHE_KEY];\n if (!classes) {\n classes = element[CLASSES_CACHE_KEY] = {};\n }\n classes[className] = true;\n }\n}\n/**\n * @param {?} element\n * @param {?} className\n * @return {?}\n */\nfunction removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n }\n else {\n var /** @type {?} */ classes = element[CLASSES_CACHE_KEY];\n if (classes) {\n delete classes[className];\n }\n }\n}\n/**\n * @param {?} engine\n * @param {?} element\n * @param {?} players\n * @return {?}\n */\nfunction removeNodesAfterAnimationDone(engine, element, players) {\n optimizeGroupPlayer(players).onDone(function () { return engine.processLeaveNode(element); });\n}\n/**\n * @param {?} players\n * @return {?}\n */\nfunction flattenGroupPlayers(players) {\n var /** @type {?} */ finalPlayers = [];\n _flattenGroupPlayersRecur(players, finalPlayers);\n return finalPlayers;\n}\n/**\n * @param {?} players\n * @param {?} finalPlayers\n * @return {?}\n */\nfunction _flattenGroupPlayersRecur(players, finalPlayers) {\n for (var /** @type {?} */ i = 0; i < players.length; i++) {\n var /** @type {?} */ player = players[i];\n if (player instanceof _angular_animations.ɵAnimationGroupPlayer) {\n _flattenGroupPlayersRecur(player.players, finalPlayers);\n }\n else {\n finalPlayers.push(/** @type {?} */ (player));\n }\n }\n}\n/**\n * @param {?} a\n * @param {?} b\n * @return {?}\n */\nfunction objEquals(a, b) {\n var /** @type {?} */ k1 = Object.keys(a);\n var /** @type {?} */ k2 = Object.keys(b);\n if (k1.length != k2.length)\n return false;\n for (var /** @type {?} */ i = 0; i < k1.length; i++) {\n var /** @type {?} */ prop = k1[i];\n if (!b.hasOwnProperty(prop) || a[prop] !== b[prop])\n return false;\n }\n return true;\n}\n/**\n * @param {?} element\n * @param {?} allPreStyleElements\n * @param {?} allPostStyleElements\n * @return {?}\n */\nfunction replacePostStylesAsPre(element, allPreStyleElements, allPostStyleElements) {\n var /** @type {?} */ postEntry = allPostStyleElements.get(element);\n if (!postEntry)\n return false;\n var /** @type {?} */ preEntry = allPreStyleElements.get(element);\n if (preEntry) {\n postEntry.forEach(function (data) { return /** @type {?} */ ((preEntry)).add(data); });\n }\n else {\n allPreStyleElements.set(element, postEntry);\n }\n allPostStyleElements.delete(element);\n return true;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\nvar AnimationEngine = (function () {\n function AnimationEngine(_driver, normalizer) {\n var _this = this;\n this._driver = _driver;\n this._triggerCache = {};\n this.onRemovalComplete = function (element, context) { };\n this._transitionEngine = new TransitionAnimationEngine(_driver, normalizer);\n this._timelineEngine = new TimelineAnimationEngine(_driver, normalizer);\n this._transitionEngine.onRemovalComplete = function (element, context) {\n return _this.onRemovalComplete(element, context);\n };\n }\n /**\n * @param {?} componentId\n * @param {?} namespaceId\n * @param {?} hostElement\n * @param {?} name\n * @param {?} metadata\n * @return {?}\n */\n AnimationEngine.prototype.registerTrigger = /**\n * @param {?} componentId\n * @param {?} namespaceId\n * @param {?} hostElement\n * @param {?} name\n * @param {?} metadata\n * @return {?}\n */\n function (componentId, namespaceId, hostElement, name, metadata) {\n var /** @type {?} */ cacheKey = componentId + '-' + name;\n var /** @type {?} */ trigger = this._triggerCache[cacheKey];\n if (!trigger) {\n var /** @type {?} */ errors = [];\n var /** @type {?} */ ast = /** @type {?} */ (buildAnimationAst(this._driver, /** @type {?} */ (metadata), errors));\n if (errors.length) {\n throw new Error(\"The animation trigger \\\"\" + name + \"\\\" has failed to build due to the following errors:\\n - \" + errors.join(\"\\n - \"));\n }\n trigger = buildTrigger(name, ast);\n this._triggerCache[cacheKey] = trigger;\n }\n this._transitionEngine.registerTrigger(namespaceId, name, trigger);\n };\n /**\n * @param {?} namespaceId\n * @param {?} hostElement\n * @return {?}\n */\n AnimationEngine.prototype.register = /**\n * @param {?} namespaceId\n * @param {?} hostElement\n * @return {?}\n */\n function (namespaceId, hostElement) {\n this._transitionEngine.register(namespaceId, hostElement);\n };\n /**\n * @param {?} namespaceId\n * @param {?} context\n * @return {?}\n */\n AnimationEngine.prototype.destroy = /**\n * @param {?} namespaceId\n * @param {?} context\n * @return {?}\n */\n function (namespaceId, context) {\n this._transitionEngine.destroy(namespaceId, context);\n };\n /**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} parent\n * @param {?} insertBefore\n * @return {?}\n */\n AnimationEngine.prototype.onInsert = /**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} parent\n * @param {?} insertBefore\n * @return {?}\n */\n function (namespaceId, element, parent, insertBefore) {\n this._transitionEngine.insertNode(namespaceId, element, parent, insertBefore);\n };\n /**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} context\n * @return {?}\n */\n AnimationEngine.prototype.onRemove = /**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} context\n * @return {?}\n */\n function (namespaceId, element, context) {\n this._transitionEngine.removeNode(namespaceId, element, context);\n };\n /**\n * @param {?} element\n * @param {?} disable\n * @return {?}\n */\n AnimationEngine.prototype.disableAnimations = /**\n * @param {?} element\n * @param {?} disable\n * @return {?}\n */\n function (element, disable) {\n this._transitionEngine.markElementAsDisabled(element, disable);\n };\n /**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} property\n * @param {?} value\n * @return {?}\n */\n AnimationEngine.prototype.process = /**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} property\n * @param {?} value\n * @return {?}\n */\n function (namespaceId, element, property, value) {\n if (property.charAt(0) == '@') {\n var _a = parseTimelineCommand(property), id = _a[0], action = _a[1];\n var /** @type {?} */ args = /** @type {?} */ (value);\n this._timelineEngine.command(id, element, action, args);\n }\n else {\n this._transitionEngine.trigger(namespaceId, element, property, value);\n }\n };\n /**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} eventName\n * @param {?} eventPhase\n * @param {?} callback\n * @return {?}\n */\n AnimationEngine.prototype.listen = /**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} eventName\n * @param {?} eventPhase\n * @param {?} callback\n * @return {?}\n */\n function (namespaceId, element, eventName, eventPhase, callback) {\n // @@listen\n if (eventName.charAt(0) == '@') {\n var _a = parseTimelineCommand(eventName), id = _a[0], action = _a[1];\n return this._timelineEngine.listen(id, element, action, callback);\n }\n return this._transitionEngine.listen(namespaceId, element, eventName, eventPhase, callback);\n };\n /**\n * @param {?=} microtaskId\n * @return {?}\n */\n AnimationEngine.prototype.flush = /**\n * @param {?=} microtaskId\n * @return {?}\n */\n function (microtaskId) {\n if (microtaskId === void 0) { microtaskId = -1; }\n this._transitionEngine.flush(microtaskId);\n };\n Object.defineProperty(AnimationEngine.prototype, \"players\", {\n get: /**\n * @return {?}\n */\n function () {\n return (/** @type {?} */ (this._transitionEngine.players))\n .concat(/** @type {?} */ (this._timelineEngine.players));\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n AnimationEngine.prototype.whenRenderingDone = /**\n * @return {?}\n */\n function () { return this._transitionEngine.whenRenderingDone(); };\n return AnimationEngine;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\nvar WebAnimationsPlayer = (function () {\n function WebAnimationsPlayer(element, keyframes, options, previousPlayers) {\n if (previousPlayers === void 0) { previousPlayers = []; }\n var _this = this;\n this.element = element;\n this.keyframes = keyframes;\n this.options = options;\n this.previousPlayers = previousPlayers;\n this._onDoneFns = [];\n this._onStartFns = [];\n this._onDestroyFns = [];\n this._initialized = false;\n this._finished = false;\n this._started = false;\n this._destroyed = false;\n this.time = 0;\n this.parentPlayer = null;\n this.previousStyles = {};\n this.currentSnapshot = {};\n this._duration = /** @type {?} */ (options['duration']);\n this._delay = /** @type {?} */ (options['delay']) || 0;\n this.time = this._duration + this._delay;\n if (allowPreviousPlayerStylesMerge(this._duration, this._delay)) {\n previousPlayers.forEach(function (player) {\n var /** @type {?} */ styles = player.currentSnapshot;\n Object.keys(styles).forEach(function (prop) { return _this.previousStyles[prop] = styles[prop]; });\n });\n }\n }\n /**\n * @return {?}\n */\n WebAnimationsPlayer.prototype._onFinish = /**\n * @return {?}\n */\n function () {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(function (fn) { return fn(); });\n this._onDoneFns = [];\n }\n };\n /**\n * @return {?}\n */\n WebAnimationsPlayer.prototype.init = /**\n * @return {?}\n */\n function () {\n this._buildPlayer();\n this._preparePlayerBeforeStart();\n };\n /**\n * @return {?}\n */\n WebAnimationsPlayer.prototype._buildPlayer = /**\n * @return {?}\n */\n function () {\n var _this = this;\n if (this._initialized)\n return;\n this._initialized = true;\n var /** @type {?} */ keyframes = this.keyframes.map(function (styles) { return copyStyles(styles, false); });\n var /** @type {?} */ previousStyleProps = Object.keys(this.previousStyles);\n if (previousStyleProps.length) {\n var /** @type {?} */ startingKeyframe_1 = keyframes[0];\n var /** @type {?} */ missingStyleProps_1 = [];\n previousStyleProps.forEach(function (prop) {\n if (!startingKeyframe_1.hasOwnProperty(prop)) {\n missingStyleProps_1.push(prop);\n }\n startingKeyframe_1[prop] = _this.previousStyles[prop];\n });\n if (missingStyleProps_1.length) {\n var /** @type {?} */ self_1 = this;\n var _loop_1 = function () {\n var /** @type {?} */ kf = keyframes[i];\n missingStyleProps_1.forEach(function (prop) {\n kf[prop] = _computeStyle(self_1.element, prop);\n });\n };\n // tslint:disable-next-line\n for (var /** @type {?} */ i = 1; i < keyframes.length; i++) {\n _loop_1();\n }\n }\n }\n (/** @type {?} */ (this)).domPlayer =\n this._triggerWebAnimation(this.element, keyframes, this.options);\n this._finalKeyframe = keyframes.length ? keyframes[keyframes.length - 1] : {};\n this.domPlayer.addEventListener('finish', function () { return _this._onFinish(); });\n };\n /**\n * @return {?}\n */\n WebAnimationsPlayer.prototype._preparePlayerBeforeStart = /**\n * @return {?}\n */\n function () {\n // this is required so that the player doesn't start to animate right away\n if (this._delay) {\n this._resetDomPlayerState();\n }\n else {\n this.domPlayer.pause();\n }\n };\n /** @internal */\n /**\n * \\@internal\n * @param {?} element\n * @param {?} keyframes\n * @param {?} options\n * @return {?}\n */\n WebAnimationsPlayer.prototype._triggerWebAnimation = /**\n * \\@internal\n * @param {?} element\n * @param {?} keyframes\n * @param {?} options\n * @return {?}\n */\n function (element, keyframes, options) {\n // jscompiler doesn't seem to know animate is a native property because it's not fully\n // supported yet across common browsers (we polyfill it for Edge/Safari) [CL #143630929]\n return /** @type {?} */ (element['animate'](keyframes, options));\n };\n /**\n * @param {?} fn\n * @return {?}\n */\n WebAnimationsPlayer.prototype.onStart = /**\n * @param {?} fn\n * @return {?}\n */\n function (fn) { this._onStartFns.push(fn); };\n /**\n * @param {?} fn\n * @return {?}\n */\n WebAnimationsPlayer.prototype.onDone = /**\n * @param {?} fn\n * @return {?}\n */\n function (fn) { this._onDoneFns.push(fn); };\n /**\n * @param {?} fn\n * @return {?}\n */\n WebAnimationsPlayer.prototype.onDestroy = /**\n * @param {?} fn\n * @return {?}\n */\n function (fn) { this._onDestroyFns.push(fn); };\n /**\n * @return {?}\n */\n WebAnimationsPlayer.prototype.play = /**\n * @return {?}\n */\n function () {\n this._buildPlayer();\n if (!this.hasStarted()) {\n this._onStartFns.forEach(function (fn) { return fn(); });\n this._onStartFns = [];\n this._started = true;\n }\n this.domPlayer.play();\n };\n /**\n * @return {?}\n */\n WebAnimationsPlayer.prototype.pause = /**\n * @return {?}\n */\n function () {\n this.init();\n this.domPlayer.pause();\n };\n /**\n * @return {?}\n */\n WebAnimationsPlayer.prototype.finish = /**\n * @return {?}\n */\n function () {\n this.init();\n this._onFinish();\n this.domPlayer.finish();\n };\n /**\n * @return {?}\n */\n WebAnimationsPlayer.prototype.reset = /**\n * @return {?}\n */\n function () {\n this._resetDomPlayerState();\n this._destroyed = false;\n this._finished = false;\n this._started = false;\n };\n /**\n * @return {?}\n */\n WebAnimationsPlayer.prototype._resetDomPlayerState = /**\n * @return {?}\n */\n function () {\n if (this.domPlayer) {\n this.domPlayer.cancel();\n }\n };\n /**\n * @return {?}\n */\n WebAnimationsPlayer.prototype.restart = /**\n * @return {?}\n */\n function () {\n this.reset();\n this.play();\n };\n /**\n * @return {?}\n */\n WebAnimationsPlayer.prototype.hasStarted = /**\n * @return {?}\n */\n function () { return this._started; };\n /**\n * @return {?}\n */\n WebAnimationsPlayer.prototype.destroy = /**\n * @return {?}\n */\n function () {\n if (!this._destroyed) {\n this._destroyed = true;\n this._resetDomPlayerState();\n this._onFinish();\n this._onDestroyFns.forEach(function (fn) { return fn(); });\n this._onDestroyFns = [];\n }\n };\n /**\n * @param {?} p\n * @return {?}\n */\n WebAnimationsPlayer.prototype.setPosition = /**\n * @param {?} p\n * @return {?}\n */\n function (p) { this.domPlayer.currentTime = p * this.time; };\n /**\n * @return {?}\n */\n WebAnimationsPlayer.prototype.getPosition = /**\n * @return {?}\n */\n function () { return this.domPlayer.currentTime / this.time; };\n Object.defineProperty(WebAnimationsPlayer.prototype, \"totalTime\", {\n get: /**\n * @return {?}\n */\n function () { return this._delay + this._duration; },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n WebAnimationsPlayer.prototype.beforeDestroy = /**\n * @return {?}\n */\n function () {\n var _this = this;\n var /** @type {?} */ styles = {};\n if (this.hasStarted()) {\n Object.keys(this._finalKeyframe).forEach(function (prop) {\n if (prop != 'offset') {\n styles[prop] =\n _this._finished ? _this._finalKeyframe[prop] : _computeStyle(_this.element, prop);\n }\n });\n }\n this.currentSnapshot = styles;\n };\n return WebAnimationsPlayer;\n}());\n/**\n * @param {?} element\n * @param {?} prop\n * @return {?}\n */\nfunction _computeStyle(element, prop) {\n return (/** @type {?} */ (window.getComputedStyle(element)))[prop];\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\nvar WebAnimationsDriver = (function () {\n function WebAnimationsDriver() {\n }\n /**\n * @param {?} prop\n * @return {?}\n */\n WebAnimationsDriver.prototype.validateStyleProperty = /**\n * @param {?} prop\n * @return {?}\n */\n function (prop) { return validateStyleProperty(prop); };\n /**\n * @param {?} element\n * @param {?} selector\n * @return {?}\n */\n WebAnimationsDriver.prototype.matchesElement = /**\n * @param {?} element\n * @param {?} selector\n * @return {?}\n */\n function (element, selector) {\n return matchesElement(element, selector);\n };\n /**\n * @param {?} elm1\n * @param {?} elm2\n * @return {?}\n */\n WebAnimationsDriver.prototype.containsElement = /**\n * @param {?} elm1\n * @param {?} elm2\n * @return {?}\n */\n function (elm1, elm2) { return containsElement(elm1, elm2); };\n /**\n * @param {?} element\n * @param {?} selector\n * @param {?} multi\n * @return {?}\n */\n WebAnimationsDriver.prototype.query = /**\n * @param {?} element\n * @param {?} selector\n * @param {?} multi\n * @return {?}\n */\n function (element, selector, multi) {\n return invokeQuery(element, selector, multi);\n };\n /**\n * @param {?} element\n * @param {?} prop\n * @param {?=} defaultValue\n * @return {?}\n */\n WebAnimationsDriver.prototype.computeStyle = /**\n * @param {?} element\n * @param {?} prop\n * @param {?=} defaultValue\n * @return {?}\n */\n function (element, prop, defaultValue) {\n return /** @type {?} */ ((/** @type {?} */ (window.getComputedStyle(element)))[prop]);\n };\n /**\n * @param {?} element\n * @param {?} keyframes\n * @param {?} duration\n * @param {?} delay\n * @param {?} easing\n * @param {?=} previousPlayers\n * @return {?}\n */\n WebAnimationsDriver.prototype.animate = /**\n * @param {?} element\n * @param {?} keyframes\n * @param {?} duration\n * @param {?} delay\n * @param {?} easing\n * @param {?=} previousPlayers\n * @return {?}\n */\n function (element, keyframes, duration, delay, easing, previousPlayers) {\n if (previousPlayers === void 0) { previousPlayers = []; }\n var /** @type {?} */ fill = delay == 0 ? 'both' : 'forwards';\n var /** @type {?} */ playerOptions = { duration: duration, delay: delay, fill: fill };\n // we check for this to avoid having a null|undefined value be present\n // for the easing (which results in an error for certain browsers #9752)\n if (easing) {\n playerOptions['easing'] = easing;\n }\n var /** @type {?} */ previousWebAnimationPlayers = /** @type {?} */ (previousPlayers.filter(function (player) { return player instanceof WebAnimationsPlayer; }));\n return new WebAnimationsPlayer(element, keyframes, playerOptions, previousWebAnimationPlayers);\n };\n return WebAnimationsDriver;\n}());\n/**\n * @return {?}\n */\nfunction supportsWebAnimations() {\n return typeof Element !== 'undefined' && typeof (/** @type {?} */ (Element)).prototype['animate'] === 'function';\n}\n\nexports.AnimationDriver = AnimationDriver;\nexports.ɵAnimation = Animation;\nexports.ɵAnimationStyleNormalizer = AnimationStyleNormalizer;\nexports.ɵNoopAnimationStyleNormalizer = NoopAnimationStyleNormalizer;\nexports.ɵWebAnimationsStyleNormalizer = WebAnimationsStyleNormalizer;\nexports.ɵNoopAnimationDriver = NoopAnimationDriver;\nexports.ɵAnimationEngine = AnimationEngine;\nexports.ɵWebAnimationsDriver = WebAnimationsDriver;\nexports.ɵsupportsWebAnimations = supportsWebAnimations;\nexports.ɵWebAnimationsPlayer = WebAnimationsPlayer;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=animations-browser.umd.js.map\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/@angular/animations/bundles/animations-browser.umd.js\n ** module id = 49\n ** module chunks = 0\n **/","\"use strict\";\nvar dragula_class_1 = require(\"./components/dragula.class\");\nexports.dragula = dragula_class_1.dragula;\nvar dragula_directive_1 = require(\"./components/dragula.directive\");\nexports.DragulaDirective = dragula_directive_1.DragulaDirective;\nvar dragula_provider_1 = require(\"./components/dragula.provider\");\nexports.DragulaService = dragula_provider_1.DragulaService;\nvar dragular_module_1 = require(\"./components/dragular.module\");\nexports.DragulaModule = dragular_module_1.DragulaModule;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/ng2-dragula/index.js\n ** module id = 108\n ** module chunks = 0\n **/","\"use strict\";\nvar dragulaExpt = require(\"dragula\");\nexports.dragula = dragulaExpt.default || dragulaExpt;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/ng2-dragula/components/dragula.class.js\n ** module id = 109\n ** module chunks = 0\n **/","'use strict';\n\nvar emitter = require('contra/emitter');\nvar crossvent = require('crossvent');\nvar classes = require('./classes');\nvar doc = document;\nvar documentElement = doc.documentElement;\n\nfunction dragula (initialContainers, options) {\n var len = arguments.length;\n if (len === 1 && Array.isArray(initialContainers) === false) {\n options = initialContainers;\n initialContainers = [];\n }\n var _mirror; // mirror image\n var _source; // source container\n var _item; // item being dragged\n var _offsetX; // reference x\n var _offsetY; // reference y\n var _moveX; // reference move x\n var _moveY; // reference move y\n var _initialSibling; // reference sibling when grabbed\n var _currentSibling; // reference sibling now\n var _copy; // item used for copying\n var _renderTimer; // timer for setTimeout renderMirrorImage\n var _lastDropTarget = null; // last container item was over\n var _grabbed; // holds mousedown context until first mousemove\n\n var o = options || {};\n if (o.moves === void 0) { o.moves = always; }\n if (o.accepts === void 0) { o.accepts = always; }\n if (o.invalid === void 0) { o.invalid = invalidTarget; }\n if (o.containers === void 0) { o.containers = initialContainers || []; }\n if (o.isContainer === void 0) { o.isContainer = never; }\n if (o.copy === void 0) { o.copy = false; }\n if (o.copySortSource === void 0) { o.copySortSource = false; }\n if (o.revertOnSpill === void 0) { o.revertOnSpill = false; }\n if (o.removeOnSpill === void 0) { o.removeOnSpill = false; }\n if (o.direction === void 0) { o.direction = 'vertical'; }\n if (o.ignoreInputTextSelection === void 0) { o.ignoreInputTextSelection = true; }\n if (o.mirrorContainer === void 0) { o.mirrorContainer = doc.body; }\n\n var drake = emitter({\n containers: o.containers,\n start: manualStart,\n end: end,\n cancel: cancel,\n remove: remove,\n destroy: destroy,\n canMove: canMove,\n dragging: false\n });\n\n if (o.removeOnSpill === true) {\n drake.on('over', spillOver).on('out', spillOut);\n }\n\n events();\n\n return drake;\n\n function isContainer (el) {\n return drake.containers.indexOf(el) !== -1 || o.isContainer(el);\n }\n\n function events (remove) {\n var op = remove ? 'remove' : 'add';\n touchy(documentElement, op, 'mousedown', grab);\n touchy(documentElement, op, 'mouseup', release);\n }\n\n function eventualMovements (remove) {\n var op = remove ? 'remove' : 'add';\n touchy(documentElement, op, 'mousemove', startBecauseMouseMoved);\n }\n\n function movements (remove) {\n var op = remove ? 'remove' : 'add';\n crossvent[op](documentElement, 'selectstart', preventGrabbed); // IE8\n crossvent[op](documentElement, 'click', preventGrabbed);\n }\n\n function destroy () {\n events(true);\n release({});\n }\n\n function preventGrabbed (e) {\n if (_grabbed) {\n e.preventDefault();\n }\n }\n\n function grab (e) {\n _moveX = e.clientX;\n _moveY = e.clientY;\n\n var ignore = whichMouseButton(e) !== 1 || e.metaKey || e.ctrlKey;\n if (ignore) {\n return; // we only care about honest-to-god left clicks and touch events\n }\n var item = e.target;\n var context = canStart(item);\n if (!context) {\n return;\n }\n _grabbed = context;\n eventualMovements();\n if (e.type === 'mousedown') {\n if (isInput(item)) { // see also: https://github.com/bevacqua/dragula/issues/208\n item.focus(); // fixes https://github.com/bevacqua/dragula/issues/176\n } else {\n e.preventDefault(); // fixes https://github.com/bevacqua/dragula/issues/155\n }\n }\n }\n\n function startBecauseMouseMoved (e) {\n if (!_grabbed) {\n return;\n }\n if (whichMouseButton(e) === 0) {\n release({});\n return; // when text is selected on an input and then dragged, mouseup doesn't fire. this is our only hope\n }\n // truthy check fixes #239, equality fixes #207\n if (e.clientX !== void 0 && e.clientX === _moveX && e.clientY !== void 0 && e.clientY === _moveY) {\n return;\n }\n if (o.ignoreInputTextSelection) {\n var clientX = getCoord('clientX', e);\n var clientY = getCoord('clientY', e);\n var elementBehindCursor = doc.elementFromPoint(clientX, clientY);\n if (isInput(elementBehindCursor)) {\n return;\n }\n }\n\n var grabbed = _grabbed; // call to end() unsets _grabbed\n eventualMovements(true);\n movements();\n end();\n start(grabbed);\n\n var offset = getOffset(_item);\n _offsetX = getCoord('pageX', e) - offset.left;\n _offsetY = getCoord('pageY', e) - offset.top;\n\n classes.add(_copy || _item, 'gu-transit');\n renderMirrorImage();\n drag(e);\n }\n\n function canStart (item) {\n if (drake.dragging && _mirror) {\n return;\n }\n if (isContainer(item)) {\n return; // don't drag container itself\n }\n var handle = item;\n while (getParent(item) && isContainer(getParent(item)) === false) {\n if (o.invalid(item, handle)) {\n return;\n }\n item = getParent(item); // drag target should be a top element\n if (!item) {\n return;\n }\n }\n var source = getParent(item);\n if (!source) {\n return;\n }\n if (o.invalid(item, handle)) {\n return;\n }\n\n var movable = o.moves(item, source, handle, nextEl(item));\n if (!movable) {\n return;\n }\n\n return {\n item: item,\n source: source\n };\n }\n\n function canMove (item) {\n return !!canStart(item);\n }\n\n function manualStart (item) {\n var context = canStart(item);\n if (context) {\n start(context);\n }\n }\n\n function start (context) {\n if (isCopy(context.item, context.source)) {\n _copy = context.item.cloneNode(true);\n drake.emit('cloned', _copy, context.item, 'copy');\n }\n\n _source = context.source;\n _item = context.item;\n _initialSibling = _currentSibling = nextEl(context.item);\n\n drake.dragging = true;\n drake.emit('drag', _item, _source);\n }\n\n function invalidTarget () {\n return false;\n }\n\n function end () {\n if (!drake.dragging) {\n return;\n }\n var item = _copy || _item;\n drop(item, getParent(item));\n }\n\n function ungrab () {\n _grabbed = false;\n eventualMovements(true);\n movements(true);\n }\n\n function release (e) {\n ungrab();\n\n if (!drake.dragging) {\n return;\n }\n var item = _copy || _item;\n var clientX = getCoord('clientX', e);\n var clientY = getCoord('clientY', e);\n var elementBehindCursor = getElementBehindPoint(_mirror, clientX, clientY);\n var dropTarget = findDropTarget(elementBehindCursor, clientX, clientY);\n if (dropTarget && ((_copy && o.copySortSource) || (!_copy || dropTarget !== _source))) {\n drop(item, dropTarget);\n } else if (o.removeOnSpill) {\n remove();\n } else {\n cancel();\n }\n }\n\n function drop (item, target) {\n var parent = getParent(item);\n if (_copy && o.copySortSource && target === _source) {\n parent.removeChild(_item);\n }\n if (isInitialPlacement(target)) {\n drake.emit('cancel', item, _source, _source);\n } else {\n drake.emit('drop', item, target, _source, _currentSibling);\n }\n cleanup();\n }\n\n function remove () {\n if (!drake.dragging) {\n return;\n }\n var item = _copy || _item;\n var parent = getParent(item);\n if (parent) {\n parent.removeChild(item);\n }\n drake.emit(_copy ? 'cancel' : 'remove', item, parent, _source);\n cleanup();\n }\n\n function cancel (revert) {\n if (!drake.dragging) {\n return;\n }\n var reverts = arguments.length > 0 ? revert : o.revertOnSpill;\n var item = _copy || _item;\n var parent = getParent(item);\n var initial = isInitialPlacement(parent);\n if (initial === false && reverts) {\n if (_copy) {\n if (parent) {\n parent.removeChild(_copy);\n }\n } else {\n _source.insertBefore(item, _initialSibling);\n }\n }\n if (initial || reverts) {\n drake.emit('cancel', item, _source, _source);\n } else {\n drake.emit('drop', item, parent, _source, _currentSibling);\n }\n cleanup();\n }\n\n function cleanup () {\n var item = _copy || _item;\n ungrab();\n removeMirrorImage();\n if (item) {\n classes.rm(item, 'gu-transit');\n }\n if (_renderTimer) {\n clearTimeout(_renderTimer);\n }\n drake.dragging = false;\n if (_lastDropTarget) {\n drake.emit('out', item, _lastDropTarget, _source);\n }\n drake.emit('dragend', item);\n _source = _item = _copy = _initialSibling = _currentSibling = _renderTimer = _lastDropTarget = null;\n }\n\n function isInitialPlacement (target, s) {\n var sibling;\n if (s !== void 0) {\n sibling = s;\n } else if (_mirror) {\n sibling = _currentSibling;\n } else {\n sibling = nextEl(_copy || _item);\n }\n return target === _source && sibling === _initialSibling;\n }\n\n function findDropTarget (elementBehindCursor, clientX, clientY) {\n var target = elementBehindCursor;\n while (target && !accepted()) {\n target = getParent(target);\n }\n return target;\n\n function accepted () {\n var droppable = isContainer(target);\n if (droppable === false) {\n return false;\n }\n\n var immediate = getImmediateChild(target, elementBehindCursor);\n var reference = getReference(target, immediate, clientX, clientY);\n var initial = isInitialPlacement(target, reference);\n if (initial) {\n return true; // should always be able to drop it right back where it was\n }\n return o.accepts(_item, target, _source, reference);\n }\n }\n\n function drag (e) {\n if (!_mirror) {\n return;\n }\n e.preventDefault();\n\n var clientX = getCoord('clientX', e);\n var clientY = getCoord('clientY', e);\n var x = clientX - _offsetX;\n var y = clientY - _offsetY;\n\n _mirror.style.left = x + 'px';\n _mirror.style.top = y + 'px';\n\n var item = _copy || _item;\n var elementBehindCursor = getElementBehindPoint(_mirror, clientX, clientY);\n var dropTarget = findDropTarget(elementBehindCursor, clientX, clientY);\n var changed = dropTarget !== null && dropTarget !== _lastDropTarget;\n if (changed || dropTarget === null) {\n out();\n _lastDropTarget = dropTarget;\n over();\n }\n var parent = getParent(item);\n if (dropTarget === _source && _copy && !o.copySortSource) {\n if (parent) {\n parent.removeChild(item);\n }\n return;\n }\n var reference;\n var immediate = getImmediateChild(dropTarget, elementBehindCursor);\n if (immediate !== null) {\n reference = getReference(dropTarget, immediate, clientX, clientY);\n } else if (o.revertOnSpill === true && !_copy) {\n reference = _initialSibling;\n dropTarget = _source;\n } else {\n if (_copy && parent) {\n parent.removeChild(item);\n }\n return;\n }\n if (\n (reference === null && changed) ||\n reference !== item &&\n reference !== nextEl(item)\n ) {\n _currentSibling = reference;\n dropTarget.insertBefore(item, reference);\n drake.emit('shadow', item, dropTarget, _source);\n }\n function moved (type) { drake.emit(type, item, _lastDropTarget, _source); }\n function over () { if (changed) { moved('over'); } }\n function out () { if (_lastDropTarget) { moved('out'); } }\n }\n\n function spillOver (el) {\n classes.rm(el, 'gu-hide');\n }\n\n function spillOut (el) {\n if (drake.dragging) { classes.add(el, 'gu-hide'); }\n }\n\n function renderMirrorImage () {\n if (_mirror) {\n return;\n }\n var rect = _item.getBoundingClientRect();\n _mirror = _item.cloneNode(true);\n _mirror.style.width = getRectWidth(rect) + 'px';\n _mirror.style.height = getRectHeight(rect) + 'px';\n classes.rm(_mirror, 'gu-transit');\n classes.add(_mirror, 'gu-mirror');\n o.mirrorContainer.appendChild(_mirror);\n touchy(documentElement, 'add', 'mousemove', drag);\n classes.add(o.mirrorContainer, 'gu-unselectable');\n drake.emit('cloned', _mirror, _item, 'mirror');\n }\n\n function removeMirrorImage () {\n if (_mirror) {\n classes.rm(o.mirrorContainer, 'gu-unselectable');\n touchy(documentElement, 'remove', 'mousemove', drag);\n getParent(_mirror).removeChild(_mirror);\n _mirror = null;\n }\n }\n\n function getImmediateChild (dropTarget, target) {\n var immediate = target;\n while (immediate !== dropTarget && getParent(immediate) !== dropTarget) {\n immediate = getParent(immediate);\n }\n if (immediate === documentElement) {\n return null;\n }\n return immediate;\n }\n\n function getReference (dropTarget, target, x, y) {\n var horizontal = o.direction === 'horizontal';\n var reference = target !== dropTarget ? inside() : outside();\n return reference;\n\n function outside () { // slower, but able to figure out any position\n var len = dropTarget.children.length;\n var i;\n var el;\n var rect;\n for (i = 0; i < len; i++) {\n el = dropTarget.children[i];\n rect = el.getBoundingClientRect();\n if (horizontal && (rect.left + rect.width / 2) > x) { return el; }\n if (!horizontal && (rect.top + rect.height / 2) > y) { return el; }\n }\n return null;\n }\n\n function inside () { // faster, but only available if dropped inside a child element\n var rect = target.getBoundingClientRect();\n if (horizontal) {\n return resolve(x > rect.left + getRectWidth(rect) / 2);\n }\n return resolve(y > rect.top + getRectHeight(rect) / 2);\n }\n\n function resolve (after) {\n return after ? nextEl(target) : target;\n }\n }\n\n function isCopy (item, container) {\n return typeof o.copy === 'boolean' ? o.copy : o.copy(item, container);\n }\n}\n\nfunction touchy (el, op, type, fn) {\n var touch = {\n mouseup: 'touchend',\n mousedown: 'touchstart',\n mousemove: 'touchmove'\n };\n var pointers = {\n mouseup: 'pointerup',\n mousedown: 'pointerdown',\n mousemove: 'pointermove'\n };\n var microsoft = {\n mouseup: 'MSPointerUp',\n mousedown: 'MSPointerDown',\n mousemove: 'MSPointerMove'\n };\n if (global.navigator.pointerEnabled) {\n crossvent[op](el, pointers[type], fn);\n } else if (global.navigator.msPointerEnabled) {\n crossvent[op](el, microsoft[type], fn);\n } else {\n crossvent[op](el, touch[type], fn);\n crossvent[op](el, type, fn);\n }\n}\n\nfunction whichMouseButton (e) {\n if (e.touches !== void 0) { return e.touches.length; }\n if (e.which !== void 0 && e.which !== 0) { return e.which; } // see https://github.com/bevacqua/dragula/issues/261\n if (e.buttons !== void 0) { return e.buttons; }\n var button = e.button;\n if (button !== void 0) { // see https://github.com/jquery/jquery/blob/99e8ff1baa7ae341e94bb89c3e84570c7c3ad9ea/src/event.js#L573-L575\n return button & 1 ? 1 : button & 2 ? 3 : (button & 4 ? 2 : 0);\n }\n}\n\nfunction getOffset (el) {\n var rect = el.getBoundingClientRect();\n return {\n left: rect.left + getScroll('scrollLeft', 'pageXOffset'),\n top: rect.top + getScroll('scrollTop', 'pageYOffset')\n };\n}\n\nfunction getScroll (scrollProp, offsetProp) {\n if (typeof global[offsetProp] !== 'undefined') {\n return global[offsetProp];\n }\n if (documentElement.clientHeight) {\n return documentElement[scrollProp];\n }\n return doc.body[scrollProp];\n}\n\nfunction getElementBehindPoint (point, x, y) {\n var p = point || {};\n var state = p.className;\n var el;\n p.className += ' gu-hide';\n el = doc.elementFromPoint(x, y);\n p.className = state;\n return el;\n}\n\nfunction never () { return false; }\nfunction always () { return true; }\nfunction getRectWidth (rect) { return rect.width || (rect.right - rect.left); }\nfunction getRectHeight (rect) { return rect.height || (rect.bottom - rect.top); }\nfunction getParent (el) { return el.parentNode === doc ? null : el.parentNode; }\nfunction isInput (el) { return el.tagName === 'INPUT' || el.tagName === 'TEXTAREA' || el.tagName === 'SELECT' || isEditable(el); }\nfunction isEditable (el) {\n if (!el) { return false; } // no parents were editable\n if (el.contentEditable === 'false') { return false; } // stop the lookup\n if (el.contentEditable === 'true') { return true; } // found a contentEditable element in the chain\n return isEditable(getParent(el)); // contentEditable is set to 'inherit'\n}\n\nfunction nextEl (el) {\n return el.nextElementSibling || manually();\n function manually () {\n var sibling = el;\n do {\n sibling = sibling.nextSibling;\n } while (sibling && sibling.nodeType !== 1);\n return sibling;\n }\n}\n\nfunction getEventHost (e) {\n // on touchend event, we have to use `e.changedTouches`\n // see http://stackoverflow.com/questions/7192563/touchend-event-properties\n // see https://github.com/bevacqua/dragula/issues/34\n if (e.targetTouches && e.targetTouches.length) {\n return e.targetTouches[0];\n }\n if (e.changedTouches && e.changedTouches.length) {\n return e.changedTouches[0];\n }\n return e;\n}\n\nfunction getCoord (coord, e) {\n var host = getEventHost(e);\n var missMap = {\n pageX: 'clientX', // IE8\n pageY: 'clientY' // IE8\n };\n if (coord in missMap && !(coord in host) && missMap[coord] in host) {\n coord = missMap[coord];\n }\n return host[coord];\n}\n\nmodule.exports = dragula;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/dragula/dragula.js\n ** module id = 110\n ** module chunks = 0\n **/","'use strict';\n\nvar atoa = require('atoa');\nvar debounce = require('./debounce');\n\nmodule.exports = function emitter (thing, options) {\n var opts = options || {};\n var evt = {};\n if (thing === undefined) { thing = {}; }\n thing.on = function (type, fn) {\n if (!evt[type]) {\n evt[type] = [fn];\n } else {\n evt[type].push(fn);\n }\n return thing;\n };\n thing.once = function (type, fn) {\n fn._once = true; // thing.off(fn) still works!\n thing.on(type, fn);\n return thing;\n };\n thing.off = function (type, fn) {\n var c = arguments.length;\n if (c === 1) {\n delete evt[type];\n } else if (c === 0) {\n evt = {};\n } else {\n var et = evt[type];\n if (!et) { return thing; }\n et.splice(et.indexOf(fn), 1);\n }\n return thing;\n };\n thing.emit = function () {\n var args = atoa(arguments);\n return thing.emitterSnapshot(args.shift()).apply(this, args);\n };\n thing.emitterSnapshot = function (type) {\n var et = (evt[type] || []).slice(0);\n return function () {\n var args = atoa(arguments);\n var ctx = this || thing;\n if (type === 'error' && opts.throws !== false && !et.length) { throw args.length === 1 ? args[0] : args; }\n et.forEach(function emitter (listen) {\n if (opts.async) { debounce(listen, args, ctx); } else { listen.apply(ctx, args); }\n if (listen._once) { thing.off(type, listen); }\n });\n return thing;\n };\n };\n return thing;\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/contra/emitter.js\n ** module id = 111\n ** module chunks = 0\n **/","module.exports = function atoa (a, n) { return Array.prototype.slice.call(a, n); }\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/atoa/atoa.js\n ** module id = 112\n ** module chunks = 0\n **/","'use strict';\n\nvar ticky = require('ticky');\n\nmodule.exports = function debounce (fn, args, ctx) {\n if (!fn) { return; }\n ticky(function run () {\n fn.apply(ctx || null, args || []);\n });\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/contra/debounce.js\n ** module id = 113\n ** module chunks = 0\n **/","var si = typeof setImmediate === 'function', tick;\nif (si) {\n tick = function (fn) { setImmediate(fn); };\n} else {\n tick = function (fn) { setTimeout(fn, 0); };\n}\n\nmodule.exports = tick;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/ticky/ticky-browser.js\n ** module id = 114\n ** module chunks = 0\n **/","'use strict';\n\nvar customEvent = require('custom-event');\nvar eventmap = require('./eventmap');\nvar doc = global.document;\nvar addEvent = addEventEasy;\nvar removeEvent = removeEventEasy;\nvar hardCache = [];\n\nif (!global.addEventListener) {\n addEvent = addEventHard;\n removeEvent = removeEventHard;\n}\n\nmodule.exports = {\n add: addEvent,\n remove: removeEvent,\n fabricate: fabricateEvent\n};\n\nfunction addEventEasy (el, type, fn, capturing) {\n return el.addEventListener(type, fn, capturing);\n}\n\nfunction addEventHard (el, type, fn) {\n return el.attachEvent('on' + type, wrap(el, type, fn));\n}\n\nfunction removeEventEasy (el, type, fn, capturing) {\n return el.removeEventListener(type, fn, capturing);\n}\n\nfunction removeEventHard (el, type, fn) {\n var listener = unwrap(el, type, fn);\n if (listener) {\n return el.detachEvent('on' + type, listener);\n }\n}\n\nfunction fabricateEvent (el, type, model) {\n var e = eventmap.indexOf(type) === -1 ? makeCustomEvent() : makeClassicEvent();\n if (el.dispatchEvent) {\n el.dispatchEvent(e);\n } else {\n el.fireEvent('on' + type, e);\n }\n function makeClassicEvent () {\n var e;\n if (doc.createEvent) {\n e = doc.createEvent('Event');\n e.initEvent(type, true, true);\n } else if (doc.createEventObject) {\n e = doc.createEventObject();\n }\n return e;\n }\n function makeCustomEvent () {\n return new customEvent(type, { detail: model });\n }\n}\n\nfunction wrapperFactory (el, type, fn) {\n return function wrapper (originalEvent) {\n var e = originalEvent || global.event;\n e.target = e.target || e.srcElement;\n e.preventDefault = e.preventDefault || function preventDefault () { e.returnValue = false; };\n e.stopPropagation = e.stopPropagation || function stopPropagation () { e.cancelBubble = true; };\n e.which = e.which || e.keyCode;\n fn.call(el, e);\n };\n}\n\nfunction wrap (el, type, fn) {\n var wrapper = unwrap(el, type, fn) || wrapperFactory(el, type, fn);\n hardCache.push({\n wrapper: wrapper,\n element: el,\n type: type,\n fn: fn\n });\n return wrapper;\n}\n\nfunction unwrap (el, type, fn) {\n var i = find(el, type, fn);\n if (i) {\n var wrapper = hardCache[i].wrapper;\n hardCache.splice(i, 1); // free up a tad of memory\n return wrapper;\n }\n}\n\nfunction find (el, type, fn) {\n var i, item;\n for (i = 0; i < hardCache.length; i++) {\n item = hardCache[i];\n if (item.element === el && item.type === type && item.fn === fn) {\n return i;\n }\n }\n}\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/crossvent/src/crossvent.js\n ** module id = 117\n ** module chunks = 0\n **/","\nvar NativeCustomEvent = global.CustomEvent;\n\nfunction useNative () {\n try {\n var p = new NativeCustomEvent('cat', { detail: { foo: 'bar' } });\n return 'cat' === p.type && 'bar' === p.detail.foo;\n } catch (e) {\n }\n return false;\n}\n\n/**\n * Cross-browser `CustomEvent` constructor.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent.CustomEvent\n *\n * @public\n */\n\nmodule.exports = useNative() ? NativeCustomEvent :\n\n// IE >= 9\n'function' === typeof document.createEvent ? function CustomEvent (type, params) {\n var e = document.createEvent('CustomEvent');\n if (params) {\n e.initCustomEvent(type, params.bubbles, params.cancelable, params.detail);\n } else {\n e.initCustomEvent(type, false, false, void 0);\n }\n return e;\n} :\n\n// IE <= 8\nfunction CustomEvent (type, params) {\n var e = document.createEventObject();\n e.type = type;\n if (params) {\n e.bubbles = Boolean(params.bubbles);\n e.cancelable = Boolean(params.cancelable);\n e.detail = params.detail;\n } else {\n e.bubbles = false;\n e.cancelable = false;\n e.detail = void 0;\n }\n return e;\n}\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/custom-event/index.js\n ** module id = 118\n ** module chunks = 0\n **/","'use strict';\n\nvar eventmap = [];\nvar eventname = '';\nvar ron = /^on/;\n\nfor (eventname in global) {\n if (ron.test(eventname)) {\n eventmap.push(eventname.slice(2));\n }\n}\n\nmodule.exports = eventmap;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/crossvent/src/eventmap.js\n ** module id = 119\n ** module chunks = 0\n **/","'use strict';\n\nvar cache = {};\nvar start = '(?:^|\\\\s)';\nvar end = '(?:\\\\s|$)';\n\nfunction lookupClass (className) {\n var cached = cache[className];\n if (cached) {\n cached.lastIndex = 0;\n } else {\n cache[className] = cached = new RegExp(start + className + end, 'g');\n }\n return cached;\n}\n\nfunction addClass (el, className) {\n var current = el.className;\n if (!current.length) {\n el.className = className;\n } else if (!lookupClass(className).test(current)) {\n el.className += ' ' + className;\n }\n}\n\nfunction rmClass (el, className) {\n el.className = el.className.replace(lookupClass(className), ' ').trim();\n}\n\nmodule.exports = {\n add: addClass,\n rm: rmClass\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/dragula/classes.js\n ** module id = 120\n ** module chunks = 0\n **/","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar core_1 = require(\"@angular/core\");\nvar dragula_provider_1 = require(\"./dragula.provider\");\nvar dragula_class_1 = require(\"./dragula.class\");\nvar DragulaDirective = (function () {\n function DragulaDirective(el, dragulaService) {\n this.el = el;\n this.dragulaService = dragulaService;\n this.container = el.nativeElement;\n }\n DragulaDirective.prototype.ngOnInit = function () {\n var _this = this;\n // console.log(this.bag);\n var bag = this.dragulaService.find(this.dragula);\n var checkModel = function () {\n if (_this.dragulaModel) {\n if (_this.drake.models) {\n _this.drake.models.push(_this.dragulaModel);\n }\n else {\n _this.drake.models = [_this.dragulaModel];\n }\n }\n };\n if (bag) {\n this.drake = bag.drake;\n checkModel();\n this.drake.containers.push(this.container);\n }\n else {\n this.drake = dragula_class_1.dragula([this.container], Object.assign({}, this.dragulaOptions));\n checkModel();\n this.dragulaService.add(this.dragula, this.drake);\n }\n };\n DragulaDirective.prototype.ngOnChanges = function (changes) {\n // console.log('dragula.directive: ngOnChanges');\n // console.log(changes);\n if (changes && changes.dragulaModel) {\n if (this.drake) {\n if (this.drake.models) {\n var modelIndex = this.drake.models.indexOf(changes.dragulaModel.previousValue);\n this.drake.models.splice(modelIndex, 1, changes.dragulaModel.currentValue);\n }\n else {\n this.drake.models = [changes.dragulaModel.currentValue];\n }\n }\n }\n };\n return DragulaDirective;\n}());\n__decorate([\n core_1.Input(),\n __metadata(\"design:type\", String)\n], DragulaDirective.prototype, \"dragula\", void 0);\n__decorate([\n core_1.Input(),\n __metadata(\"design:type\", Object)\n], DragulaDirective.prototype, \"dragulaModel\", void 0);\n__decorate([\n core_1.Input(),\n __metadata(\"design:type\", Object)\n], DragulaDirective.prototype, \"dragulaOptions\", void 0);\nDragulaDirective = __decorate([\n core_1.Directive({ selector: '[dragula]' }),\n __metadata(\"design:paramtypes\", [core_1.ElementRef, dragula_provider_1.DragulaService])\n], DragulaDirective);\nexports.DragulaDirective = DragulaDirective;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/ng2-dragula/components/dragula.directive.js\n ** module id = 121\n ** module chunks = 0\n **/","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar dragula_class_1 = require(\"./dragula.class\");\nvar core_1 = require(\"@angular/core\");\nvar DragulaService = (function () {\n function DragulaService() {\n this.cancel = new core_1.EventEmitter();\n this.cloned = new core_1.EventEmitter();\n this.drag = new core_1.EventEmitter();\n this.dragend = new core_1.EventEmitter();\n this.drop = new core_1.EventEmitter();\n this.out = new core_1.EventEmitter();\n this.over = new core_1.EventEmitter();\n this.remove = new core_1.EventEmitter();\n this.shadow = new core_1.EventEmitter();\n this.dropModel = new core_1.EventEmitter();\n this.removeModel = new core_1.EventEmitter();\n this.events = [\n 'cancel', 'cloned', 'drag', 'dragend', 'drop', 'out', 'over',\n 'remove', 'shadow', 'dropModel', 'removeModel'\n ];\n this.bags = [];\n }\n DragulaService.prototype.add = function (name, drake) {\n var bag = this.find(name);\n if (bag) {\n throw new Error('Bag named: \"' + name + '\" already exists.');\n }\n bag = { name: name, drake: drake };\n this.bags.push(bag);\n if (drake.models) {\n this.handleModels(name, drake);\n }\n if (!bag.initEvents) {\n this.setupEvents(bag);\n }\n return bag;\n };\n DragulaService.prototype.find = function (name) {\n for (var _i = 0, _a = this.bags; _i < _a.length; _i++) {\n var bag = _a[_i];\n if (bag.name === name) {\n return bag;\n }\n }\n };\n DragulaService.prototype.destroy = function (name) {\n var bag = this.find(name);\n var i = this.bags.indexOf(bag);\n this.bags.splice(i, 1);\n bag.drake.destroy();\n };\n DragulaService.prototype.setOptions = function (name, options) {\n var bag = this.add(name, dragula_class_1.dragula(options));\n this.handleModels(name, bag.drake);\n };\n DragulaService.prototype.handleModels = function (name, drake) {\n var _this = this;\n var dragElm;\n var dragIndex;\n var dropIndex;\n var sourceModel;\n drake.on('remove', function (el, source) {\n if (!drake.models) {\n return;\n }\n sourceModel = drake.models[drake.containers.indexOf(source)];\n sourceModel.splice(dragIndex, 1);\n // console.log('REMOVE');\n // console.log(sourceModel);\n _this.removeModel.emit([name, el, source]);\n });\n drake.on('drag', function (el, source) {\n dragElm = el;\n dragIndex = _this.domIndexOf(el, source);\n });\n drake.on('drop', function (dropElm, target, source) {\n if (!drake.models || !target) {\n return;\n }\n dropIndex = _this.domIndexOf(dropElm, target);\n sourceModel = drake.models[drake.containers.indexOf(source)];\n // console.log('DROP');\n // console.log(sourceModel);\n if (target === source) {\n sourceModel.splice(dropIndex, 0, sourceModel.splice(dragIndex, 1)[0]);\n }\n else {\n var notCopy = dragElm === dropElm;\n var targetModel = drake.models[drake.containers.indexOf(target)];\n var dropElmModel = notCopy ? sourceModel[dragIndex] : JSON.parse(JSON.stringify(sourceModel[dragIndex]));\n if (notCopy) {\n sourceModel.splice(dragIndex, 1);\n }\n targetModel.splice(dropIndex, 0, dropElmModel);\n target.removeChild(dropElm); // element must be removed for ngFor to apply correctly\n }\n _this.dropModel.emit([name, dropElm, target, source]);\n });\n };\n DragulaService.prototype.setupEvents = function (bag) {\n bag.initEvents = true;\n var that = this;\n var emitter = function (type) {\n function replicate() {\n var args = Array.prototype.slice.call(arguments);\n that[type].emit([bag.name].concat(args));\n }\n bag.drake.on(type, replicate);\n };\n this.events.forEach(emitter);\n };\n DragulaService.prototype.domIndexOf = function (child, parent) {\n return Array.prototype.indexOf.call(parent.children, child);\n };\n return DragulaService;\n}());\nDragulaService = __decorate([\n core_1.Injectable()\n], DragulaService);\nexports.DragulaService = DragulaService;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/ng2-dragula/components/dragula.provider.js\n ** module id = 122\n ** module chunks = 0\n **/","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar core_1 = require(\"@angular/core\");\nvar dragula_directive_1 = require(\"./dragula.directive\");\nvar dragula_provider_1 = require(\"./dragula.provider\");\nvar DragulaModule = (function () {\n function DragulaModule() {\n }\n return DragulaModule;\n}());\nDragulaModule = __decorate([\n core_1.NgModule({\n exports: [dragula_directive_1.DragulaDirective],\n declarations: [dragula_directive_1.DragulaDirective],\n providers: [dragula_provider_1.DragulaService]\n })\n], DragulaModule);\nexports.DragulaModule = DragulaModule;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/ng2-dragula/components/dragular.module.js\n ** module id = 123\n ** module chunks = 0\n **/","export * from './gantt.module';\r\nexport * from './shared/interfaces';\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/gantt/index.ts\n **/","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { GanttComponent } from './gantt.component';\r\nimport { GanttHeaderComponent } from './header/gantt-header.component';\r\nimport { GanttFooterComponent } from './footer/gantt-footer.component';\r\nimport { GanttService } from './shared/services/gantt.service';\r\nimport { GanttActivityModule } from './activity/gantt-activity.module';\r\n\r\nimport { GroupByPipe } from './shared/pipes/groupBy.pipe';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n GanttActivityModule,\r\n ],\r\n exports: [\r\n GanttComponent\r\n ],\r\n declarations: [\r\n GanttComponent,\r\n GanttHeaderComponent,\r\n GanttFooterComponent, \r\n GroupByPipe \r\n ],\r\n providers: [GanttService],\r\n})\r\nexport class GanttModule { }\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/gantt/gantt.module.ts\n **/","import { Component, OnInit, Input, EventEmitter, Output } from '@angular/core';\r\nimport { NgStyle } from '@angular/common';\r\nimport { GanttService } from './shared/services/gantt.service';\r\nimport { IGanttOptions, Project } from './shared/interfaces';\r\n\r\n@Component({\r\n selector: 'gantt',\r\n template: `\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n `,\r\n styles: [`\r\n .gantt_container {\r\n font-family: Arial;\r\n font-size: 13px;\r\n border: 1px solid #cecece;\r\n position: relative;\r\n white-space: nowrap; \r\n margin-top: 0px;\r\n }\r\n `],\r\n providers: []\r\n})\r\nexport class GanttComponent implements OnInit {\r\n private _project: Project;\r\n private _options: IGanttOptions;\r\n\r\n //TODO(dale): this may be causing an issue in the tree builder?\r\n @Input()\r\n set project(project: any) {\r\n if (project) {\r\n this._project = project;\r\n } else {\r\n this.setDefaultProject();\r\n }\r\n }\r\n get project() { return this._project };\r\n\r\n @Input() \r\n set options(options: any) {\r\n if (options.scale) {\r\n this._options = options;\r\n } else {\r\n this.setDefaultOptions();\r\n }\r\n }\r\n get options() { return this._options };\r\n\r\n @Output() onGridRowClick: EventEmitter = new EventEmitter();\r\n \r\n private ganttContainerWidth: number;\r\n\r\n constructor(private ganttService: GanttService) { }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n setSizes(): void {\r\n this.ganttContainerWidth = this.ganttService.calculateContainerWidth();\r\n }\r\n\r\n setDefaultOptions() {\r\n var scale = this.ganttService.calculateGridScale(this._project.tasks);\r\n\r\n this._options = {\r\n scale: scale\r\n }\r\n }\r\n\r\n setDefaultProject() {\r\n this._project = {\r\n id: '',\r\n name: '',\r\n startDate: null,\r\n tasks: [],\r\n previousSuccessPassNumber: ''\r\n }\r\n }\r\n\r\n gridRowClicked(task:any) {\r\n this.onGridRowClick.emit(task);\r\n }\r\n\r\n onResize($event: any): void {\r\n this.setSizes();\r\n }\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/gantt/gantt.component.ts\n **/","import { Injectable } from '@angular/core';\r\nimport { GanttConfig } from './gantt-config.service';\r\nimport { IBarStyle, Task, IScale, Zooming } from '../interfaces';\r\nimport { GroupByPipe } from '../../shared/pipes/groupBy.pipe';\r\n\r\nimport * as moment from 'moment';\r\n\r\n@Injectable()\r\nexport class GanttService {\r\n public rowHeight: number = 0;\r\n public hourCellWidth: number = 60; // change to 60 so minutes can been seen more easily\r\n public hoursCellWidth: number = this.hourCellWidth * 25;\r\n public cellWidth: number = 0;\r\n public windowInnerWidth: number = 0;\r\n public activityHeight: number = 0;\r\n public barHeight: number = 0;\r\n public barLineHeight: number = 0;\r\n public barTop: number = 0;\r\n public barMoveable: boolean = false;\r\n public gridWidth: number = 665;\r\n private barStyles: IBarStyle[] = [\r\n { status: \"information\", backgroundColor: \"rgb(18,195, 244)\", border: \"1px solid #2196F3\", progressBackgroundColor: \"#2196F3\" },\r\n { status: \"warning\", backgroundColor: \"#FFA726\", border: \"1px solid #EF6C00\", progressBackgroundColor: \"#EF6C00\" },\r\n { status: \"error\", backgroundColor: \"#EF5350\", border: \"1px solid #C62828\", progressBackgroundColor: \"rgb(255, 23, 68)\" },\r\n { status: \"completed\", backgroundColor: \"#66BB6A\", border: \"1px solid #2E7D32\", progressBackgroundColor: \"#1DE9B6\" }\r\n ];\r\n public TASK_CACHE: any[];\r\n public TIME_SCALE: any[];\r\n\r\n constructor() {\r\n let _ganttConfig = new GanttConfig();\r\n\r\n this.rowHeight = _ganttConfig.rowHeight;\r\n this.cellWidth = _ganttConfig.cellWidth;\r\n this.activityHeight = _ganttConfig.activityHeight;\r\n this.barHeight = _ganttConfig.barHeight;\r\n this.barLineHeight = _ganttConfig.barLineHeight;\r\n this.barTop = _ganttConfig.rowHeight;\r\n this.barMoveable = _ganttConfig.barMoveable;\r\n }\r\n\r\n private calculateBarWidth(start: Date, end: Date, hours?: boolean): number {\r\n if (typeof start === \"string\") {\r\n start = new Date(start);\r\n }\r\n\r\n if (typeof end === \"string\") {\r\n end = new Date(end);\r\n }\r\n\r\n let days = this.calculateDiffDays(start, end);\r\n let width: number = days * this.cellWidth + days;\r\n\r\n if (hours) {\r\n width = days * this.hourCellWidth * 24 + days * 24;\r\n }\r\n\r\n return width;\r\n }\r\n\r\n private calculateBarLeft(start: Date, scale: any[], hours?: boolean): number {\r\n var left: number = 0;\r\n var hoursInDay: number = 24;\r\n\r\n if (start != null) {\r\n if (typeof start === \"string\") {\r\n start = new Date();\r\n }\r\n\r\n for (var i = 0; i < scale.length; i++) {\r\n if (start.getDate() === scale[i].getDate()) {\r\n if (hours) {\r\n left = i * hoursInDay * this.hourCellWidth + hoursInDay * i + this.calculateBarLeftDelta(start, hours);\r\n } else {\r\n left = i * this.cellWidth + i + this.calculateBarLeftDelta(start, hours);\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n return left;\r\n }\r\n\r\n /** Calculates the height of the gantt grid, activity and vertical scroll */\r\n public calculateGanttHeight(): string {\r\n return `${this.TASK_CACHE.length * this.rowHeight + this.rowHeight * 3}px`;\r\n }\r\n\r\n private calculateBarLeftDelta(start: Date, hours?: boolean): number {\r\n var offset: number = 0;\r\n var hoursInDay: number = 24;\r\n var minutesInHour: number = 60;\r\n var secondsInHour: number = 3600;\r\n var startHours: number = start.getHours() + start.getMinutes() / minutesInHour + start.getSeconds() / secondsInHour;\r\n\r\n if (hours) {\r\n offset = this.hoursCellWidth / hoursInDay * startHours - startHours;\r\n } else {\r\n offset = this.cellWidth / hoursInDay * startHours;\r\n }\r\n return offset;\r\n }\r\n\r\n public isParent(treePath: string): boolean {\r\n\r\n try {\r\n var depth = treePath.split('/').length;\r\n\r\n if (depth === 1) {\r\n return true;\r\n }\r\n }\r\n catch (err) {\r\n return false;\r\n }\r\n return false;\r\n }\r\n\r\n public isChild(treePath: string) {\r\n if (this.isParent(treePath)) {\r\n return '0px';\r\n }\r\n return '20px';\r\n }\r\n\r\n /** Calculate the bar styles */\r\n public calculateBar(task: any, index: number, scale: any, hours?: boolean) {\r\n var barStyle = this.getBarStyle(task.status);\r\n\r\n return {\r\n 'top': this.barTop * index + 2 + 'px',\r\n 'left': this.calculateBarLeft(task.start, scale, hours) + 'px',\r\n 'height': this.barHeight + 'px',\r\n 'line-height': this.barLineHeight + 'px',\r\n 'width': this.calculateBarWidth(task.start, task.end, hours) + 'px',\r\n 'background-color': barStyle[\"background-color\"],\r\n 'border': barStyle[\"border\"]\r\n }\r\n }\r\n\r\n /** Get the bar style based on task status */\r\n private getBarStyle(taskStatus: string = \"\"): any {\r\n var style = {};\r\n\r\n try {\r\n taskStatus = taskStatus.toLowerCase();\r\n } catch (err) {\r\n taskStatus = \"\";\r\n }\r\n\r\n switch (taskStatus) {\r\n case \"information\":\r\n style[\"background-color\"] = this.barStyles[0].backgroundColor;\r\n style[\"border\"] = this.barStyles[0].border;\r\n break;\r\n case \"warning\":\r\n style[\"background-color\"] = this.barStyles[1].backgroundColor;\r\n style[\"border\"] = this.barStyles[1].border;\r\n break;\r\n case \"error\":\r\n style[\"background-color\"] = this.barStyles[2].backgroundColor;\r\n style[\"border\"] = this.barStyles[2].border;\r\n break;\r\n case \"completed\":\r\n style[\"background-color\"] = this.barStyles[3].backgroundColor;\r\n style[\"border\"] = this.barStyles[3].border;\r\n break;\r\n default:\r\n style[\"background-color\"] = \"rgb(18,195, 244)\";\r\n style[\"border\"] = \"1px solid #2196F3\";\r\n break;\r\n }\r\n\r\n return style;\r\n }\r\n\r\n /** Get the progresss bar background colour based on task status */\r\n public getBarProgressStyle(taskStatus: string = \"\"): any {\r\n var style = {};\r\n\r\n try {\r\n taskStatus = taskStatus.toLowerCase();\r\n } catch (err) {\r\n taskStatus = \"\";\r\n }\r\n\r\n switch (taskStatus) {\r\n case \"information\":\r\n style[\"background-color\"] = this.barStyles[0].progressBackgroundColor;\r\n break;\r\n case \"warning\":\r\n style[\"background-color\"] = this.barStyles[1].progressBackgroundColor;\r\n break;\r\n case \"error\":\r\n style[\"background-color\"] = this.barStyles[2].progressBackgroundColor;\r\n break;\r\n case \"completed\":\r\n style[\"background-color\"] = this.barStyles[3].progressBackgroundColor;\r\n break;\r\n default:\r\n style[\"background-color\"] = this.barStyles[0].progressBackgroundColor;\r\n break;\r\n }\r\n\r\n return style;\r\n }\r\n\r\n /** Calculates the bar progress width in pixels given task percent complete */\r\n public calculateBarProgress(width: number, percent: number): string {\r\n if (typeof percent === \"number\") {\r\n if (percent > 100) {\r\n percent = 100;\r\n }\r\n let progress: number = (width / 100) * percent - 2;\r\n\r\n return `${progress}px`;\r\n }\r\n return `${0}px`;\r\n }\r\n\r\n /** Calculates the difference in two dates and returns number of days */\r\n public calculateDiffDays(start: Date, end: Date): number {\r\n try {\r\n let oneDay = 24 * 60 * 60 * 1000; // hours*minutes*seconds*milliseconds /ms\r\n let diffDays = Math.abs((start.getTime() - end.getTime()) / (oneDay));\r\n let days = diffDays; // don't use Math.round as it will draw an incorrect bar\r\n\r\n return days;\r\n } catch (err) {\r\n return 0;\r\n }\r\n }\r\n\r\n /** Calculates the difference in two dates and returns number of hours */\r\n public calculateDuration(task: any): string {\r\n try {\r\n let totalHours = 0;\r\n\r\n if (task[\"end\"] != null && task[\"start\"] != null) {\r\n let endDate = moment(task[\"end\"]);\r\n let startDate = moment(task[\"start\"]);\r\n let duration = moment.duration(endDate.diff(startDate));\r\n totalHours = Math.abs(duration.asHours());\r\n \r\n if (totalHours > 24) {\r\n return `${Math.round(totalHours / 24)} day(s)`; // duration in days\r\n } else if (totalHours > 1) {\r\n return `${Math.round(totalHours)} hr(s)`; // duration in hours\r\n } else {\r\n let minutes = totalHours * 60;\r\n\r\n if (minutes < 1) {\r\n return `${Math.round(minutes * 60)} second(s)`; // duration in seconds\r\n }\r\n return `${Math.round(minutes)} min(s)` // duration in minutes\r\n }\r\n }\r\n } catch (err) {\r\n return '';\r\n }\r\n }\r\n\r\n /**\r\n * Calculates the total duration of tasks\r\n * @param tasks \r\n */\r\n calculateTotalDuration(tasks: any[]): string {\r\n try {\r\n let totalHours = 0;\r\n\r\n // filter out null dates\r\n let taskDates = tasks.filter((task: any) => {\r\n if (task[\"start\"] != null && task[\"end\"] != null) {\r\n return { start: task[\"start\"], end: task[\"end\"] };\r\n } \r\n });\r\n\r\n let startDates: any[] = taskDates.map((date: any) => { \r\n return moment(date[\"start\"]); \r\n });\r\n\r\n let endDates: any[] = taskDates.map((date: any) => { \r\n return moment(date[\"end\"]); \r\n });\r\n\r\n let minimumDate = moment.min(startDates);\r\n let maximumDate = moment.max(endDates);\r\n let duration = moment.duration(maximumDate.diff(minimumDate)); \r\n totalHours = Math.abs(duration.asHours());\r\n \r\n if (totalHours === 0) {\r\n return '';\r\n }\r\n\r\n if (totalHours > 24) {\r\n return `${Math.round(totalHours)} hr(s)`; // duration in days\r\n } else if (totalHours > 1) {\r\n return `${Math.round(totalHours)} hr(s)`; // duration in hours\r\n } else {\r\n let minutes = totalHours * 60;\r\n \r\n if (minutes < 1) {\r\n return `${Math.round(minutes * 60)} second(s)`; // duration in seconds\r\n }\r\n return `${Math.round(minutes)} min(s)` // duration in minutes\r\n }\r\n } catch (err) {\r\n return '';\r\n }\r\n }\r\n\r\n /** Calculate the total percentage of a group of tasks */\r\n calculateTotalPercentage(node: any): number {\r\n var totalPercent: number = 0;\r\n var children = node.children;\r\n\r\n if (children.length > 0) {\r\n children.forEach((child: any) => {\r\n totalPercent += isNaN(child.percentComplete) ? 0 : child.percentComplete;\r\n });\r\n\r\n return Math.ceil(totalPercent / children.length);\r\n } else {\r\n return isNaN(node.percentComplete) ? 0 : node.percentComplete;\r\n }\r\n }\r\n\r\n /** Calculate the total percent of the parent task */\r\n calculateParentTotalPercentage(parent: any, tasks: any[]) {\r\n var children = tasks.filter((task: any) => {\r\n return task.parentId === parent.id && task.id != parent.id\r\n }); // get only children tasks ignoring parent.\r\n\r\n var totalPercent: number = 0;\r\n\r\n if (children.length > 0) {\r\n children.forEach((child: any) => {\r\n totalPercent += isNaN(child.percentComplete) ? 0 : child.percentComplete;\r\n });\r\n\r\n return Math.ceil(totalPercent / children.length);\r\n } else {\r\n return isNaN(parent.percentComplete) ? 0 : parent.percentComplete;\r\n }\r\n }\r\n\r\n /** Calculate the gantt scale range given the start and end date of tasks*/\r\n public calculateScale(start: Date = new Date(), end: Date = this.addDays(start, 7)) {\r\n let scale: any[] = [];\r\n\r\n try {\r\n while (start.getTime() <= end.getTime()) {\r\n scale.push(start);\r\n start = this.addDays(start, 1);\r\n }\r\n return scale;\r\n\r\n } catch (err) {\r\n return scale;\r\n }\r\n }\r\n\r\n /** Determines whether given date is a weekend */\r\n public isDayWeekend(date: Date): boolean {\r\n let day = date.getDay();\r\n\r\n if (day === 6 || day === 0) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /** Add x number of days to a date object */\r\n public addDays(date: Date, days: number): Date {\r\n let result = new Date(date);\r\n result.setDate(result.getDate() + days);\r\n return result;\r\n }\r\n\r\n //** Remove x number of days from a date object */\r\n public removeDays(date: Date, days: number): Date {\r\n let result = new Date(date);\r\n result.setDate(result.getDate() - days);\r\n return result;\r\n }\r\n\r\n /** Calculates the grid scale for gantt based on tasks start and end dates */\r\n public calculateGridScale(tasks: Task[]): IScale {\r\n var start: Date;\r\n var end: Date;\r\n var dates = tasks.map((task: any) => {\r\n return {\r\n start: new Date(task.start),\r\n end: new Date(task.end)\r\n }\r\n });\r\n\r\n start = new Date(Math.min.apply(null, dates.map(function (t) {\r\n return t.start;\r\n })));\r\n\r\n end = new Date(Math.max.apply(null, dates.map(function (t) {\r\n return t.end;\r\n })));\r\n\r\n return {\r\n start: start,\r\n end: end\r\n }\r\n }\r\n\r\n /** Create an hours array for use in time scale component */\r\n public getHours(cols: number): string[] {\r\n var hours: string[] = [];\r\n\r\n while (hours.length <= cols * 24) {\r\n for (var i = 0; i <= 23; i++) {\r\n if (i < 10) {\r\n hours.push('0' + i.toString());\r\n } else {\r\n hours.push(i.toString());\r\n }\r\n }\r\n }\r\n\r\n return hours;\r\n }\r\n\r\n public getComputedStyle(element: any, attribute: any) {\r\n return parseInt(document.defaultView.getComputedStyle(element)[attribute], 10);\r\n }\r\n\r\n //TODO(dale): determine whether this is needed\r\n public calculateContainerWidth(): number {\r\n this.windowInnerWidth = window.innerWidth;\r\n let containerWidth = (innerWidth - 18);\r\n\r\n return containerWidth;\r\n }\r\n\r\n public calculateActivityContainerDimensions(): any {\r\n var scrollWidth: number = 18;\r\n this.windowInnerWidth = window.innerWidth;\r\n let width = this.windowInnerWidth - this.gridWidth - scrollWidth;\r\n\r\n return { height: this.activityHeight, width: width };\r\n }\r\n\r\n /** Set the vertical scroll top positions for gantt */\r\n public scrollTop(verticalScrollElem: any, ganttGridElem: any, ganttActivityAreaElem: any) {\r\n let verticalScrollTop = verticalScrollElem.scrollTop;\r\n let scroll = this.setScrollTop;\r\n\r\n // debounce\r\n if (verticalScrollTop !== null && verticalScrollTop !== undefined) {\r\n setTimeout(function () {\r\n scroll(verticalScrollTop, ganttActivityAreaElem);\r\n scroll(ganttActivityAreaElem.scrollTop, ganttGridElem);\r\n\r\n }, 50);\r\n }\r\n }\r\n\r\n /** Group data by id , only supports one level*/\r\n public groupData(tasks: any): any {\r\n var merged: any = [];\r\n var groups: any = new GroupByPipe().transform(tasks, (task: any) => {\r\n return [task.treePath.split('/')[0]]\r\n });\r\n return merged.concat.apply([], groups);\r\n }\r\n\r\n /** Create tree of data */\r\n public transformData(input: any): any {\r\n var output: any = [];\r\n for (var i = 0; i < input.length; i++) {\r\n var chain: any = input[i].id.split('/');\r\n var currentNode: any = output;\r\n for (var j = 0; j < chain.length; j++) {\r\n var wantedNode: any = chain[j];\r\n var lastNode: any = currentNode;\r\n for (var k = 0; k < currentNode.length; k++) {\r\n if (currentNode[k].name == wantedNode) {\r\n currentNode = currentNode[k].children;\r\n break;\r\n }\r\n }\r\n // If we couldn't find an item in this list of children\r\n // that has the right name, create one:\r\n if (lastNode == currentNode) {\r\n //TODO(dale): determine way to show percent complete on correct child \r\n var newNode: any = currentNode[k] = {\r\n name: wantedNode,\r\n percentComplete: input[i].percentComplete,\r\n start: input[i].start,\r\n end: input[i].end,\r\n children: []\r\n };\r\n currentNode = newNode.children;\r\n }\r\n }\r\n }\r\n return output;\r\n }\r\n\r\n /** Checks whether any new data needs to be added to task cache */\r\n public doTaskCheck(tasks: any[], treeExpanded: boolean): boolean {\r\n var cachedTaskIds = this.TASK_CACHE.map((task: any) => { return task.id });\r\n var itemsToCache: any[] = [];\r\n\r\n if (treeExpanded) {\r\n // push children and parent tasks that are not cached\r\n tasks.filter((task: any) => {\r\n return cachedTaskIds.indexOf(task.id) === -1\r\n }).forEach((task: any) => {\r\n itemsToCache.push(task);\r\n })\r\n } else {\r\n // only look at tasks that are not cached\r\n tasks.filter((task: any) => {\r\n return cachedTaskIds.indexOf(task.id) === -1 && task.treePath.split('/').length === 1\r\n }).forEach((task: any) => {\r\n itemsToCache.push(task);\r\n });\r\n }\r\n\r\n itemsToCache.forEach((item: any) => {\r\n this.TASK_CACHE.push(item);\r\n });\r\n\r\n if (itemsToCache.length > 0) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /** Set a id prefix so CSS3 query selector can work with ids that contain numbers */\r\n public setIdPrefix(id: string): string {\r\n return `_${id}`;\r\n }\r\n\r\n // /** Remove the id prefix to allow querying of data */\r\n // public removeIdPrefix(id: string): string {\r\n // return id.substring(1, id.length - 1);\r\n // }\r\n\r\n /** Set the scroll top property of a native DOM element */\r\n private setScrollTop(scrollTop: number, element: any): void {\r\n if (element !== null && element !== undefined) {\r\n element.scrollTop = scrollTop;\r\n }\r\n }\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/gantt/shared/services/gantt.service.ts\n **/","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class GanttConfig {\r\n public cellWidth: number = 76;\r\n public rowHeight: number = 25;\r\n public activityHeight: number = 300;\r\n public barHeight = 20;\r\n public barLineHeight = 20;\r\n public barMoveable = false;\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/gantt/shared/services/gantt-config.service.ts\n **/","import { Pipe, PipeTransform } from '@angular/core';\r\n/*\r\n * Group the array by given function\r\n * Takes an array argument that defaults to 1.\r\n * Usage:\r\n * array | groupBy:func()\r\n * Example:\r\n * {{ [ { id: '1'}] | groupBy: }}\r\n * formats to: []\r\n*/\r\n@Pipe({name: 'groupBy'})\r\nexport class GroupByPipe implements PipeTransform {\r\n transform(array: any[], f: any): any[] {\r\n var groups = {};\r\n array.forEach((o:any) => {\r\n var group = JSON.stringify(f(o));\r\n \r\n groups[group] = groups[group] || [];\r\n groups[group].push(o);\r\n });\r\n return Object.keys(groups).map((group:any) => {\r\n return groups[group];\r\n });\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/gantt/shared/pipes/groupBy.pipe.ts\n **/","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gantt-header',\r\n template: `\r\n
\r\n
\r\n
{{ name }}
\r\n
Started: {{ startDate | date: 'medium'}}
\r\n
\r\n
\r\n `,\r\n styles: [`\r\n .gantt-header {\r\n background-color: whitesmoke;\r\n height: 40px;\r\n border-bottom: 1px solid #e0e0e0;\r\n }\r\n\r\n @media only screen and (max-width: 700px) {\r\n .gantt-header {\r\n height: 60px;\r\n }\r\n }\r\n\r\n .gantt-header-title {\r\n padding: 12px; \r\n display: flex;\r\n flex-wrap:wrap;\r\n font-family: Arial, Helvetica, sans-serif;\r\n font-size: 16px;\r\n }\r\n\r\n .gantt-header-actions {\r\n display: inline;\r\n float: right;\r\n padding: 6px;\r\n }\r\n `] \r\n})\r\nexport class GanttHeaderComponent {\r\n @Input() name:any;\r\n @Input() startDate: Date;\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/gantt/header/gantt-header.component.ts\n **/","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gantt-footer',\r\n template: `
`,\r\n styles: [`\r\n .gantt-footer {\r\n background-color: whitesmoke;\r\n height: 36px; \r\n border-top: 1px solid #e0e0e0;\r\n }\r\n\r\n .gantt-footer-actions {\r\n float:right;\r\n }\r\n `]\r\n})\r\nexport class GanttFooterComponent {\r\n @Input() project: any;\r\n constructor() { }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/gantt/footer/gantt-footer.component.ts\n **/","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { GanttActivityComponent } from './gantt-activity.component';\r\nimport { GanttTimeScaleComponent } from './time-scale/gantt-time-scale.component';\r\nimport { GanttActivityBackgroundComponent } from './background/activity-background.component';\r\nimport { GanttActivityBarsComponent } from './bars/activity-bars.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ],\r\n exports: [\r\n GanttActivityComponent,\r\n GanttTimeScaleComponent,\r\n GanttActivityBackgroundComponent,\r\n GanttActivityBarsComponent\r\n ],\r\n declarations: [\r\n GanttActivityComponent,\r\n GanttTimeScaleComponent,\r\n GanttActivityBackgroundComponent,\r\n GanttActivityBarsComponent,\r\n ///TreeBuilder, TreeParentRepeater, TreeChildrenRepeater,\r\n ],\r\n providers: [],\r\n})\r\nexport class GanttActivityModule { }\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/gantt/activity/gantt-activity.module.ts\n **/","import { Component, OnInit, Input, Output, EventEmitter, ElementRef, AfterViewInit, ViewChild, ChangeDetectionStrategy, OnChanges, DoCheck } from '@angular/core';\r\n\r\nimport { GanttService } from '../shared/services/gantt.service';\r\nimport { GanttConfig } from '../shared/services/gantt-config.service';\r\nimport { IGanttOptions, Zooming } from '../shared/interfaces';\r\n\r\n@Component({\r\n selector: 'gantt-activity',\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
{{column.name}} {{ ganttService.calculateTotalDuration(project.tasks) }}
\r\n
\r\n
\r\n
Duration: {{ ganttService.calculateTotalDuration(previousData) }}
\r\n
Pass: {{project.previousSuccessPassNumber}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{data.name}}
\r\n
\r\n
\r\n
{{ data.percentComplete }}
\r\n
\r\n
\r\n
{{ ganttService.calculateDuration(data) }}
\r\n
\r\n
\r\n
{{ ganttService.calculateDuration(data.previousPassDetails) }}
\r\n
\r\n
\r\n
\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 .gantt_activity {\r\n /*overflow-x: hidden;*/\r\n overflow-x: auto;\r\n height: 250px;\r\n overflow-y: hidden;\r\n overflow-x: scroll;\r\n display: inline-block;\r\n vertical-align: top;\r\n position:relative;\r\n }\r\n\r\n @media only screen and (max-width: 700px) {\r\n .gantt_activity {\r\n display: none;\r\n }\r\n }\r\n\r\n .gantt_activity_area {\r\n position: relative;\r\n overflow-x: hidden;\r\n overflow-y: hidden;\r\n -webkit-user-select: none;\r\n }\r\n\r\n .gantt_vertical_scroll {\r\n background-color: transparent;\r\n overflow-x: hidden;\r\n overflow-y: scroll;\r\n position: absolute;\r\n right: 0;\r\n display: block;\r\n height: 283px;\r\n width: 18px;\r\n top: 70px;\r\n }\r\n\r\n .grid {\r\n overflow-x: hidden;\r\n overflow-y: hidden;\r\n display: inline-block;\r\n vertical-align: top;\r\n border-right: 1px solid #cecece;\r\n }\r\n\r\n .grid_scale {\r\n color: #6b6b6b;\r\n font-size: 12px;\r\n border-bottom: 1px solid #e0e0e0;\r\n background-color: whitesmoke;\r\n }\r\n\r\n .grid_head_cell {\r\n /*color: #a6a6a6;*/\r\n border-top: none !important;\r\n border-right: none !important;\r\n line-height: inherit;\r\n box-sizing: border-box;\r\n display: inline-block;\r\n vertical-align: top;\r\n border-right: 1px solid #cecece;\r\n /*text-align: center;*/\r\n position: relative;\r\n cursor: default;\r\n height: 100%;\r\n -moz-user-select: -moz-none;\r\n -webkit-user-select: none;\r\n overflow: hidden;\r\n }\r\n\r\n .grid_data {\r\n overflow:hidden; \r\n }\r\n\r\n .grid_row {\r\n box-sizing: border-box;\r\n border-bottom: 1px solid #e0e0e0;\r\n background-color: #fff;\r\n position: relative;\r\n -webkit-user-select: none;\r\n }\r\n\r\n .grid_row:hover {\r\n background-color: #e9f5f0;\r\n }\r\n\r\n .grid_cell {\r\n border-right: none;\r\n color: #454545;\r\n display: inline-block;\r\n vertical-align: top;\r\n padding-left: 6px;\r\n padding-right: 6px;\r\n height: 100%;\r\n overflow: hidden;\r\n white-space: nowrap;\r\n font-size: 13px;\r\n box-sizing: border-box;\r\n }\r\n\r\n .actions_bar {\r\n /*border-top: 1px solid #cecece;*/\r\n border-bottom: 1px solid #e0e0e0;\r\n clear: both;\r\n /*margin-top: 90px;*/\r\n height: 28px;\r\n background: whitesmoke;\r\n color: #494949;\r\n font-family: Arial, sans-serif;\r\n font-size: 13px;\r\n padding-left: 15px;\r\n line-height: 25px;\r\n }\r\n\r\n .gantt_tree_content {\r\n padding-left:15px;\r\n }\r\n `],\r\n changeDetection: ChangeDetectionStrategy.Default\r\n})\r\nexport class GanttActivityComponent implements OnInit, DoCheck {\r\n @Input() project: any;\r\n @Input() options: any;\r\n @Output() onGridRowClick: EventEmitter = new EventEmitter();\r\n\r\n private upTriangle: string = '▲' // BLACK UP-POINTING TRIANGLE\r\n private downTriangle: string = '▼'; // BLACK DOWN-POINTING TRIANGLE\r\n private zoom: EventEmitter = new EventEmitter();\r\n private activityActions = {\r\n expanded: false,\r\n expandedIcon: this.downTriangle\r\n }\r\n\r\n private timeScale: any;\r\n\r\n private start: Date;\r\n private end: Date;\r\n private containerHeight: any;\r\n private containerWidth: any;\r\n\r\n private activityContainerSizes: any;\r\n private ganttActivityHeight: any;\r\n private ganttActivityWidth: any;\r\n private zoomLevel: string = Zooming[Zooming.hours];\r\n\r\n private treeExpanded = false;\r\n\r\n private scale: any = {\r\n start: null,\r\n end: null\r\n };\r\n\r\n private dimensions = {\r\n height: 0,\r\n width: 0\r\n };\r\n\r\n private data: any[] = [];\r\n private previousData: any[] = [];\r\n\r\n public gridColumns: any[] = [\r\n { name: '', left: 0, width: 16 },\r\n { name: 'Task', left: 20, width: 330 },\r\n { name: '%', left: 8, width: 40 },\r\n { name: 'Duration', left: 14, width: 100 }\r\n ];\r\n\r\n constructor(\r\n public elem: ElementRef,\r\n private ganttService: GanttService) {\r\n }\r\n\r\n ngOnInit() {\r\n // Cache the project data and only work with that. Only show parent tasks by default\r\n this.ganttService.TASK_CACHE = this.project.tasks.slice(0).filter((item: any) => {\r\n return item.treePath.split('/').length === 1;\r\n });\r\n \r\n if (this.project.previousSuccessPassNumber) {\r\n this.previousData = this.project.tasks.map((task: any) => {\r\n return task[\"previousPassDetails\"];\r\n });\r\n }\r\n\r\n this.ganttService.TIME_SCALE = this.ganttService.calculateScale(this.options.scale.start, this.options.scale.end);\r\n\r\n this.zoomLevel = this.options.zooming;\r\n this.start = this.options.scale.start;\r\n this.end = this.options.scale.end;\r\n this.containerWidth = this.calculateContainerWidth();\r\n this.containerHeight = this.calculateContainerHeight();\r\n this.activityContainerSizes = this.ganttService.calculateActivityContainerDimensions();\r\n\r\n // important that these are called last as it relies on values calculated above.\r\n this.setScale();\r\n this.setDimensions();\r\n this.setSizes();\r\n\r\n this.expand(); // default to expanded\r\n }\r\n\r\n /** Custom model check */\r\n ngDoCheck() {\r\n // do a check to see whether any new tasks have been added. If the task is a child then push into array if tree expanded?\r\n var tasksAdded = this.ganttService.doTaskCheck(this.project.tasks, this.treeExpanded);\r\n\r\n // only force expand if tasks are added and tree is already expanded\r\n if (tasksAdded && this.activityActions.expanded) {\r\n this.expand(true);\r\n }\r\n }\r\n\r\n /** On vertical scroll set the scroll top of grid and activity */\r\n onVerticalScroll(verticalScroll: any, ganttGrid: any, ganttActivityArea: any): void {\r\n this.ganttService.scrollTop(verticalScroll, ganttGrid, ganttActivityArea);\r\n }\r\n\r\n /** Removes or adds children for given parent tasks back into DOM by updating TASK_CACHE */\r\n toggleChildren(rowElem: any, task: any) {\r\n try {\r\n let isParent: boolean = \"true\" === rowElem.getAttribute('data-isparent');\r\n let parentId: string = rowElem.getAttribute('data-parentid').replace(\"_\", \"\"); // remove id prefix\r\n let children: any = document.querySelectorAll('[data-parentid=' + rowElem.getAttribute('data-parentid') + '][data-isparent=false]');\r\n\r\n // use the task cache to allow deleting of items without polluting the project.tasks array\r\n if (isParent) {\r\n // remove children from the DOM as we don't want them if we are collapsing the parent\r\n if (children.length > 0) {\r\n let childrenIds: any[] = this.ganttService.TASK_CACHE.filter((task: any) => {\r\n return task.parentId == parentId && task.treePath.split('/').length > 1;\r\n }).map((item: any) => { return item.id });\r\n\r\n childrenIds.forEach((item: any) => {\r\n var removedIndex = this.ganttService.TASK_CACHE.map((item: any) => { return item.id }).indexOf(item);\r\n\r\n this.ganttService.TASK_CACHE.splice(removedIndex, 1);\r\n });\r\n\r\n if (this.activityActions.expanded) {\r\n this.expand(true);\r\n }\r\n\r\n } else {\r\n // CHECK the project cache to see if this parent id has any children\r\n // and if so push them back into array so DOM is updated\r\n let childrenTasks: any[] = this.project.tasks.filter((task: any) => {\r\n return task.parentId === parentId && task.treePath.split('/').length > 1;\r\n });\r\n\r\n childrenTasks.forEach((task: any) => {\r\n this.ganttService.TASK_CACHE.push(task);\r\n });\r\n\r\n if (this.activityActions.expanded) {\r\n this.expand(true);\r\n }\r\n }\r\n }\r\n\r\n this.onGridRowClick.emit(task);\r\n\r\n } catch (err) { }\r\n }\r\n\r\n /** Removes or adds children tasks back into DOM by updating TASK_CACHE */\r\n toggleAllChildren() {\r\n try {\r\n var children: any = document.querySelectorAll('[data-isparent=false]');\r\n var childrenIds: string[] = Array.prototype.slice.call(children).map((item: any) => {\r\n return item.getAttribute('data-id').replace(\"_\", \"\"); // remove id prefix\r\n });\r\n\r\n // push all the children array items into cache\r\n if (this.treeExpanded) {\r\n if (children.length > 0) {\r\n let childrenIds: string[] = this.ganttService.TASK_CACHE.filter((task: any) => {\r\n return task.treePath.split('/').length > 1;\r\n }).map((item: any) => { return item.id });\r\n\r\n childrenIds.forEach((item: any) => {\r\n var removedIndex = this.ganttService.TASK_CACHE.map((item: any) => { return item.id }).indexOf(item);\r\n this.ganttService.TASK_CACHE.splice(removedIndex, 1);\r\n });\r\n }\r\n\r\n this.treeExpanded = false;\r\n\r\n if (this.activityActions.expanded) {\r\n this.expand(true);\r\n }\r\n } else {\r\n // get all children tasks in project input\r\n let childrenTasks: any[] = this.project.tasks.filter((task: any) => {\r\n return task.treePath.split('/').length > 1;\r\n });\r\n\r\n if (children.length > 0) {\r\n // filter out these children as they already exist in task cache\r\n childrenTasks = childrenTasks.filter((task: any) => {\r\n return childrenIds.indexOf(task.id) === -1;\r\n });\r\n }\r\n\r\n childrenTasks.forEach((task: any) => {\r\n this.ganttService.TASK_CACHE.push(task);\r\n });\r\n\r\n this.treeExpanded = true;\r\n\r\n if (this.activityActions.expanded) {\r\n this.expand(true);\r\n }\r\n }\r\n } catch (err) { }\r\n }\r\n\r\n /** On resize of browser window dynamically adjust gantt activity height and width */\r\n onResize(event: any): void {\r\n let activityContainerSizes = this.ganttService.calculateActivityContainerDimensions();\r\n if (this.activityActions.expanded) {\r\n this.ganttActivityHeight = this.ganttService.TASK_CACHE.length * this.ganttService.rowHeight + this.ganttService.rowHeight * 3 + 'px';\r\n } else {\r\n this.ganttActivityHeight = activityContainerSizes.height + 'px';;\r\n }\r\n\r\n this.ganttActivityWidth = activityContainerSizes.width;\r\n }\r\n\r\n setScale() {\r\n this.scale.start = this.start;\r\n this.scale.end = this.end;\r\n }\r\n\r\n setDimensions() {\r\n this.dimensions.height = this.containerHeight;\r\n this.dimensions.width = this.containerWidth;\r\n }\r\n\r\n setGridRowStyle(isParent: boolean): any {\r\n if (isParent) {\r\n return {\r\n 'height': this.ganttService.rowHeight + 'px',\r\n 'line-height': this.ganttService.rowHeight + 'px',\r\n 'font-weight': 'bold',\r\n 'cursor': 'pointer'\r\n };\r\n }\r\n\r\n return {\r\n 'height': this.ganttService.rowHeight + 'px',\r\n 'line-height': this.ganttService.rowHeight + 'px'\r\n };\r\n }\r\n\r\n /** Set the zoom level e.g hours, days */\r\n zoomTasks(level: string) {\r\n this.zoomLevel = level;\r\n this.zoom.emit(this.zoomLevel);\r\n this.containerWidth = this.calculateContainerWidth();\r\n this.setDimensions();\r\n document.querySelector('.gantt_activity').scrollLeft = 0 // reset scroll left, replace with @ViewChild?\r\n }\r\n\r\n /** Expand the gantt grid and activity area height */\r\n expand(force?: boolean): void {\r\n var verticalScroll = document.querySelector('.gantt_vertical_scroll');\r\n var ganttActivityHeight: string = `${this.ganttService.TASK_CACHE.length * this.ganttService.rowHeight + this.ganttService.rowHeight * 3}px`;\r\n\r\n if (force && this.activityActions.expanded) {\r\n this.ganttActivityHeight = ganttActivityHeight;\r\n } else if (this.activityActions.expanded) {\r\n this.activityActions.expanded = false;\r\n this.activityActions.expandedIcon = this.downTriangle;\r\n this.ganttActivityHeight = '300px';\r\n } else {\r\n verticalScroll.scrollTop = 0;\r\n\r\n this.activityActions.expanded = true;\r\n this.activityActions.expandedIcon = this.upTriangle;\r\n this.ganttActivityHeight = ganttActivityHeight;\r\n }\r\n }\r\n\r\n /** Get the status icon unicode string */\r\n getStatusIcon(status: string, percentComplete: number): string {\r\n var checkMarkIcon: string = '✔';\r\n var upBlackPointer: string = '▲';\r\n var crossMarkIcon: string = '✘';\r\n\r\n if (status === \"Completed\" || percentComplete === 100 && status !== \"Error\") {\r\n return checkMarkIcon;\r\n } else if (status === \"Warning\") {\r\n return upBlackPointer;\r\n } else if (status === \"Error\") {\r\n return crossMarkIcon;\r\n }\r\n return '';\r\n }\r\n\r\n /** Get the status icon color */\r\n getStatusIconColor(status: string, percentComplete: number): string {\r\n if (status === \"Completed\" || percentComplete === 100 && status !== \"Error\") {\r\n return 'green';\r\n } else if (status === \"Warning\") {\r\n return 'orange';\r\n } else if (status === \"Error\") {\r\n return 'red';\r\n }\r\n return '';\r\n }\r\n\r\n private setGridScaleStyle() {\r\n var height = this.ganttService.rowHeight;\r\n\r\n if (this.zoomLevel === Zooming[Zooming.hours]) {\r\n height *= 2;\r\n }\r\n\r\n return {\r\n 'height': height + 'px',\r\n 'line-height': height + 'px',\r\n 'width': this.ganttService.gridWidth + 'px'\r\n };\r\n }\r\n\r\n private calculateContainerHeight(): number {\r\n return this.ganttService.TASK_CACHE.length * this.ganttService.rowHeight;\r\n }\r\n\r\n private calculateContainerWidth(): number {\r\n if (this.zoomLevel === Zooming[Zooming.hours]) {\r\n return this.ganttService.TIME_SCALE.length * this.ganttService.hourCellWidth * 24 + this.ganttService.hourCellWidth\r\n } else {\r\n return this.ganttService.TIME_SCALE.length * this.ganttService.cellWidth + this.ganttService.cellWidth;\r\n }\r\n }\r\n\r\n private setSizes(): void {\r\n this.ganttActivityHeight = this.activityContainerSizes.height + 'px';\r\n this.ganttActivityWidth = this.activityContainerSizes.width;\r\n }\r\n\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/gantt/activity/gantt-activity.component.ts\n **/","export interface Project {\r\n id: string;\r\n name: string;\r\n startDate?: Date;\r\n tasks: Task[],\r\n previousSuccessPassNumber : string; \r\n}\r\n\r\nexport interface Task {\r\n id: string;\r\n treePath: string;\r\n parentId: string;\r\n name: string;\r\n resource?: string;\r\n start: Date;\r\n end?: Date; \r\n percentComplete?: number;\r\n status?: string;\r\n previousPassDetails: {};\r\n}\r\n\r\nexport interface IGanttOptions {\r\n scale?: IScale;\r\n zooming?: string;\r\n}\r\n\r\nexport interface IScale {\r\n start?: Date;\r\n end?: Date;\r\n}\r\n\r\nexport interface IBarStyle {\r\n status: string;\r\n backgroundColor: string;\r\n border: string;\r\n progressBackgroundColor: string;\r\n}\r\n\r\nexport enum Zooming {\r\n hours,\r\n days\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/gantt/shared/interfaces.ts\n **/","import { Component, OnInit, Input, EventEmitter, ViewChild } from '@angular/core';\r\nimport { GanttService } from '../../shared/services/gantt.service';\r\nimport { Zooming } from '../../shared/interfaces';\r\n\r\n@Component({\r\n selector: 'time-scale',\r\n template: `\r\n
\r\n
\r\n
{{date | date: 'dd-MM-yyyy'}}
\r\n
\r\n
\r\n
{{hour}}
\r\n
\r\n
`,\r\n styles: [`\r\n .weekend {\r\n background-color:whitesmoke;\r\n }\r\n\r\n .time_scale {\r\n font-size: 12px;\r\n border-bottom: 1px solid #cecece;\r\n background-color: #fff;\r\n }\r\n\r\n .time_scale_line {\r\n box-sizing: border-box;\r\n }\r\n\r\n .time_scale_line:first-child {\r\n border-top: none;\r\n }\r\n\r\n .time_scale_cell {\r\n display: inline-block;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n border-right: 1px solid #cecece;\r\n text-align: center;\r\n height: 100%;\r\n }`\r\n ],\r\n providers: [\r\n GanttService\r\n ]\r\n})\r\nexport class GanttTimeScaleComponent implements OnInit {\r\n @Input() timeScale: any;\r\n @Input() dimensions: any;\r\n @Input() zoom: any;\r\n @Input() zoomLevel: any;\r\n\r\n constructor(private ganttService: GanttService) { }\r\n\r\n ngOnInit() {\r\n this.zoom.subscribe((zoomLevel: string) => {\r\n this.zoomLevel = zoomLevel; \r\n });;\r\n }\r\n\r\n private setTimescaleStyle() {\r\n return {\r\n 'width': this.dimensions.width + 'px'\r\n };\r\n }\r\n\r\n private setTimescaleLineStyle(borderTop: string) {\r\n return {\r\n 'height': this.ganttService.rowHeight + 'px',\r\n 'line-height': this.ganttService.rowHeight + 'px',\r\n 'position': 'relative',\r\n 'border-top': borderTop\r\n };\r\n }\r\n\r\n private setTimescaleCellStyle() {\r\n var width = this.ganttService.cellWidth;\r\n var hoursInDay = 24;\r\n var hourSeperatorPixels = 23; // we don't include the first \r\n\r\n if(this.zoomLevel === Zooming[Zooming.hours]) {\r\n width = this.ganttService.hourCellWidth * hoursInDay + hourSeperatorPixels; \r\n }\r\n\r\n return { \r\n 'width': width + 'px'\r\n };\r\n }\r\n\r\n private isDayWeekend(date: Date): boolean {\r\n return this.ganttService.isDayWeekend(date);\r\n }\r\n\r\n private getHours(): string[] {\r\n return this.ganttService.getHours(this.timeScale.length);\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/gantt/activity/time-scale/gantt-time-scale.component.ts\n **/","import { Component, OnInit, Input, ViewChild, ElementRef } from '@angular/core';\r\nimport { GanttService } from '../../shared/services/gantt.service';\r\nimport { Zooming } from '../../shared/interfaces';\r\n\r\n@Component({\r\n selector: 'activity-background',\r\n template: `\r\n
\r\n
\r\n
\r\n
\r\n
\r\n `,\r\n styles: [`\r\n .gantt_activity_bg {\r\n overflow: hidden; \r\n }\r\n\r\n .gantt_activity_row {\r\n border-bottom: 1px solid #ebebeb;\r\n background-color: #fff;\r\n box-sizing: border-box;\r\n }\r\n\r\n .gantt_activity_cell {\r\n display: inline-block;\r\n height: 100%;\r\n border-right: 1px solid #ebebeb;\r\n }\r\n\r\n .weekend {\r\n background-color:whitesmoke;\r\n }\r\n `]\r\n})\r\nexport class GanttActivityBackgroundComponent implements OnInit {\r\n @Input() tasks: any;\r\n @Input() timeScale:any;\r\n @Input() zoom: any;\r\n @Input() zoomLevel: string;\r\n\r\n @ViewChild('bg') bg: ElementRef;\r\n\r\n private rows: any[] = [];\r\n private cells: any[] = [];\r\n\r\n constructor(private ganttService: GanttService) { }\r\n\r\n ngOnInit() {\r\n this.drawGrid();\r\n\r\n this.zoom.subscribe((zoomLevel: string) => {\r\n this.zoomLevel = zoomLevel;\r\n this.drawGrid();\r\n });\r\n }\r\n\r\n isDayWeekend(date: Date): boolean {\r\n return this.ganttService.isDayWeekend(date);\r\n }\r\n\r\n private setRowStyle() {\r\n return {\r\n 'height': this.ganttService.rowHeight + 'px'\r\n };\r\n }\r\n\r\n private setCellStyle() {\r\n var width = this.ganttService.cellWidth;\r\n\r\n if (this.zoomLevel === Zooming[Zooming.hours]) {\r\n width = this.ganttService.hourCellWidth;\r\n }\r\n\r\n return {\r\n 'width': width + 'px'\r\n };\r\n }\r\n\r\n private drawGrid(): void {\r\n if (this.zoomLevel === Zooming[Zooming.hours]) {\r\n this.cells = [];\r\n\r\n this.timeScale.forEach((date: any) => {\r\n for (var i = 0; i <= 23; i++) {\r\n this.cells.push(date);\r\n }\r\n });\r\n } else {\r\n this.cells = this.timeScale;\r\n }\r\n }\r\n}\r\n\r\n\r\n //TODO(dale): replace with either svg or canvas\r\n // exceeding the maximum length/width/area on most browsers renders the canvas\r\n // unusable (it will ignore any draw commands, even in the usable area)\r\n // private drawGrid2(): void {\r\n // this.bg.nativeElement.innerHTML = '';\r\n // //grid width and height\r\n // var bw = 1384; // maximum width 16384 CHROME\r\n // var bh = 300; //this.project.tasks.length * this.ganttService.rowHeight;\r\n // var rowHeight = this.ganttService.rowHeight;\r\n // var cellWidth = 0;\r\n\r\n // if (this.zoomLevel === Zooming[Zooming.hours]) {\r\n // cellWidth = this.ganttService.hourCellWidth;\r\n // } else {\r\n // cellWidth = this.ganttService.cellWidth;\r\n // }\r\n\r\n // var canvas = document.createElement('canvas');\r\n // canvas.setAttribute(\"width\", bw.toString());\r\n // canvas.setAttribute(\"height\", bh.toString());\r\n // var context = canvas.getContext(\"2d\");\r\n\r\n // var lineSpacer = 0;\r\n // // vertical lines\r\n // for (var x = 0; x <= bw; x += cellWidth) {\r\n // lineSpacer += cellWidth / cellWidth;\r\n\r\n // context.moveTo(x + lineSpacer - 1.5, 0);\r\n // context.lineTo(x + lineSpacer - 1.5, bh);\r\n // }\r\n\r\n // // horizontal lines\r\n // for (var x = 0; x <= bh; x += rowHeight) {\r\n // context.moveTo(0, x);\r\n // context.lineTo(bw , x);\r\n // }\r\n\r\n // context.strokeStyle = \"#e0e0e0\";\r\n // context.stroke();\r\n\r\n // this.bg.nativeElement.append(canvas);\r\n // }\r\n\r\n\r\n// var canvas = $('').attr({width: cw, height: ch}).appendTo('body');\r\n\r\n// var context = canvas.get(0).getContext(\"2d\");\r\n\r\n// function drawBoard(){\r\n// for (var x = 0; x <= bw; x += 40) {\r\n// context.moveTo(0.5 + x + p, p);\r\n// context.lineTo(0.5 + x + p, bh + p);\r\n// }\r\n\r\n\r\n// for (var x = 0; x <= bh; x += 40) {\r\n// context.moveTo(p, 0.5 + x + p);\r\n// context.lineTo(bw + p, 0.5 + x + p);\r\n// }\r\n\r\n// context.strokeStyle = \"black\";\r\n// context.stroke();\r\n// }\r\n\r\n// drawBoard();\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/gantt/activity/background/activity-background.component.ts\n **/","import { Component, OnInit, Input, ElementRef } from '@angular/core';\r\nimport { GanttService } from '../../shared/services/gantt.service';\r\nimport { Zooming } from '../../shared/interfaces';\r\n\r\n@Component({\r\n selector: 'activity-bars',\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 styles: [`\r\n .gantt_activity_line {\r\n /*border-radius: 2px;*/\r\n position: absolute;\r\n box-sizing: border-box;\r\n background-color: rgb(18,195,244);\r\n border: 1px solid #2196F3;\r\n -webkit-user-select: none;\r\n }\r\n\r\n .gantt_activity_line:hover {\r\n /*cursor: move;*/\r\n }\r\n\r\n .gantt_activity_progress {\r\n text-align: center;\r\n z-index: 0;\r\n background: #2196F3;\r\n position: absolute;\r\n min-height: 18px;\r\n display: block;\r\n height: 18px;\r\n }\r\n\r\n .gantt_activity_progress_drag {\r\n height: 8px;\r\n width: 8px;\r\n bottom: -4px;\r\n margin-left: 4px;\r\n background-position: bottom;\r\n background-image: \"\";\r\n background-repeat: no-repeat;\r\n z-index: 2;\r\n }\r\n\r\n .gantt_activity_content {\r\n font-size: 12px;\r\n color: #fff;\r\n width: 100%;\r\n top: 0;\r\n position: absolute;\r\n white-space: nowrap;\r\n text-align: center;\r\n line-height: inherit;\r\n overflow: hidden;\r\n height: 100%;\r\n }\r\n\r\n .gantt_activity_link_control {\r\n position: absolute;\r\n width: 13px;\r\n top: 0; \r\n }\r\n\r\n .gantt_activity_right {\r\n right: 0;\r\n }\r\n\r\n .gantt_activity_left {\r\n left: 0;\r\n }\r\n\r\n .gantt_activity_right:hover {\r\n cursor:w-resize;\r\n }\r\n\r\n .gantt_activity_left:hover {\r\n cursor:w-resize;\r\n }\r\n `],\r\n providers: [\r\n GanttService\r\n ]\r\n})\r\nexport class GanttActivityBarsComponent implements OnInit {\r\n @Input() timeScale: any;\r\n @Input() dimensions: any;\r\n @Input() tasks: any;\r\n @Input() zoom: any;\r\n @Input() zoomLevel: any;\r\n\r\n private containerHeight: number = 0;\r\n private containerWidth: number = 0;\r\n\r\n constructor(private ganttService: GanttService) { }\r\n\r\n ngOnInit() {\r\n this.containerHeight = this.dimensions.height;\r\n this.containerWidth = this.dimensions.width;\r\n\r\n this.zoom.subscribe((zoomLevel: string) => {\r\n this.zoomLevel = zoomLevel;\r\n });;\r\n }\r\n\r\n //TODO(dale): the ability to move bars needs reviewing and there are a few quirks\r\n expandLeft($event: any, bar: any) {\r\n $event.stopPropagation();\r\n\r\n let ganttService = this.ganttService;\r\n let startX = $event.clientX;\r\n let startBarWidth = bar.style.width;\r\n let startBarLeft = bar.style.left;\r\n\r\n function doDrag(e: any) {\r\n let cellWidth = ganttService.cellWidth;\r\n let barWidth = startBarWidth - e.clientX + startX;\r\n let days = Math.round(barWidth / cellWidth);\r\n\r\n bar.style.width = days * cellWidth + days;\r\n bar.style.left = (startBarLeft - (days * cellWidth) - days);\r\n }\r\n\r\n this.addMouseEventListeners(doDrag);\r\n\r\n return false;\r\n }\r\n\r\n expandRight($event: any, bar: any) {\r\n $event.stopPropagation();\r\n\r\n let ganttService = this.ganttService;\r\n let startX = $event.clientX;\r\n let startBarWidth = bar.style.width;\r\n let startBarEndDate = bar.task.end;\r\n let startBarLeft = bar.style.left;\r\n\r\n function doDrag(e: any) {\r\n let cellWidth = ganttService.cellWidth;\r\n let barWidth = startBarWidth + e.clientX - startX;\r\n let days = Math.round(barWidth / cellWidth);\r\n\r\n if (barWidth < cellWidth) {\r\n barWidth = cellWidth;\r\n days = Math.round(barWidth / cellWidth);\r\n }\r\n bar.style.width = ((days * cellWidth) + days); // rounds to the nearest cell \r\n }\r\n\r\n this.addMouseEventListeners(doDrag);\r\n\r\n return false;\r\n }\r\n\r\n move($event: any, bar: any) {\r\n $event.stopPropagation();\r\n\r\n let ganttService = this.ganttService;\r\n let startX = $event.clientX;\r\n let startBarLeft = bar.style.left;\r\n\r\n function doDrag(e: any) {\r\n let cellWidth = ganttService.cellWidth;\r\n let barLeft = startBarLeft + e.clientX - startX;\r\n let days = Math.round(barLeft / cellWidth);\r\n\r\n // TODO: determine how many days the bar can be moved\r\n // if (days < maxDays) {\r\n bar.style.left = ((days * cellWidth) + days); // rounded to nearest cell\r\n\r\n // keep bar in bounds of grid\r\n if (barLeft < 0) {\r\n bar.style.left = 0;\r\n }\r\n // }\r\n // TODO: it needs to take into account the max number of days.\r\n // TODO: it needs to take into account the current days.\r\n // TODO: it needs to take into account the right boundary.\r\n }\r\n\r\n this.addMouseEventListeners(doDrag);\r\n\r\n return false;\r\n }\r\n\r\n private drawBar(task: any, index: number) {\r\n let style = {};\r\n\r\n if (this.zoomLevel === Zooming[Zooming.hours]) {\r\n style = this.ganttService.calculateBar(task, index, this.timeScale, true);\r\n } else {\r\n style = this.ganttService.calculateBar(task, index, this.timeScale);\r\n }\r\n return style;\r\n }\r\n\r\n private drawProgress(task: any, bar: any):any {\r\n var barStyle = this.ganttService.getBarProgressStyle(task.status);\r\n var width = this.ganttService.calculateBarProgress(this.ganttService.getComputedStyle(bar, 'width'), task.percentComplete);\r\n\r\n return {\r\n 'width': width,\r\n 'background-color': barStyle[\"background-color\"],\r\n };\r\n }\r\n\r\n private addMouseEventListeners(dragFn: any) {\r\n\r\n function stopFn() {\r\n document.documentElement.removeEventListener('mousemove', dragFn, false);\r\n document.documentElement.removeEventListener('mouseup', stopFn, false);\r\n document.documentElement.removeEventListener('mouseleave', stopFn, false);\r\n }\r\n\r\n document.documentElement.addEventListener('mousemove', dragFn, false);\r\n document.documentElement.addEventListener('mouseup', stopFn, false);\r\n document.documentElement.addEventListener('mouseleave', stopFn, false);\r\n }\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/gantt/activity/bars/activity-bars.component.ts\n **/","(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/forms'), require('@angular/common')) :\n\ttypeof define === 'function' && define.amd ? define(['exports', '@angular/core', '@angular/forms', '@angular/common'], factory) :\n\t(factory((global.mydatepicker = global.mydatepicker || {}),global.ng.core,global.ng.forms,global.ng.common));\n}(this, (function (exports,_angular_core,_angular_forms,_angular_common) { 'use strict';\n\nvar LocaleService = (function () {\n function LocaleService() {\n this.locales = {\n \"en\": {\n dayLabels: { su: \"Sun\", mo: \"Mon\", tu: \"Tue\", we: \"Wed\", th: \"Thu\", fr: \"Fri\", sa: \"Sat\" },\n monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"May\", 6: \"Jun\", 7: \"Jul\", 8: \"Aug\", 9: \"Sep\", 10: \"Oct\", 11: \"Nov\", 12: \"Dec\" },\n dateFormat: \"yyyy-mm-dd\",\n todayBtnTxt: \"Today\",\n firstDayOfWeek: \"mo\",\n sunHighlight: true,\n },\n \"he\": {\n dayLabels: { su: \"רא\", mo: \"שנ\", tu: \"של\", we: \"רב\", th: \"חמ\", fr: \"שי\", sa: \"שב\" },\n monthLabels: { 1: \"ינו\", 2: \"פבר\", 3: \"מרץ\", 4: \"אפר\", 5: \"מאי\", 6: \"יונ\", 7: \"יול\", 8: \"אוג\", 9: \"ספט\", 10: \"אוק\", 11: \"נוב\", 12: \"דצמ\" },\n dateFormat: \"dd/mm/yyyy\",\n todayBtnTxt: \"היום\",\n firstDayOfWeek: \"su\",\n sunHighlight: false\n },\n \"ja\": {\n dayLabels: { su: \"日\", mo: \"月\", tu: \"火\", we: \"水\", th: \"木\", fr: \"金\", sa: \"土\" },\n monthLabels: { 1: \"1月\", 2: \"2月\", 3: \"3月\", 4: \"4月\", 5: \"5月\", 6: \"6月\", 7: \"7月\", 8: \"8月\", 9: \"9月\", 10: \"10月\", 11: \"11月\", 12: \"12月\" },\n dateFormat: \"yyyy.mm.dd\",\n todayBtnTxt: \"今日\",\n sunHighlight: false\n },\n \"fr\": {\n dayLabels: { su: \"Dim\", mo: \"Lun\", tu: \"Mar\", we: \"Mer\", th: \"Jeu\", fr: \"Ven\", sa: \"Sam\" },\n monthLabels: { 1: \"Jan\", 2: \"Fév\", 3: \"Mar\", 4: \"Avr\", 5: \"Mai\", 6: \"Juin\", 7: \"Juil\", 8: \"Aoû\", 9: \"Sep\", 10: \"Oct\", 11: \"Nov\", 12: \"Déc\" },\n dateFormat: \"dd/mm/yyyy\",\n todayBtnTxt: \"Aujourd'hui\",\n firstDayOfWeek: \"mo\",\n sunHighlight: true,\n },\n \"fi\": {\n dayLabels: { su: \"Su\", mo: \"Ma\", tu: \"Ti\", we: \"Ke\", th: \"To\", fr: \"Pe\", sa: \"La\" },\n monthLabels: { 1: \"Tam\", 2: \"Hel\", 3: \"Maa\", 4: \"Huh\", 5: \"Tou\", 6: \"Kes\", 7: \"Hei\", 8: \"Elo\", 9: \"Syy\", 10: \"Lok\", 11: \"Mar\", 12: \"Jou\" },\n dateFormat: \"dd.mm.yyyy\",\n todayBtnTxt: \"Tänään\",\n firstDayOfWeek: \"mo\",\n sunHighlight: true,\n },\n \"es\": {\n dayLabels: { su: \"Do\", mo: \"Lu\", tu: \"Ma\", we: \"Mi\", th: \"Ju\", fr: \"Vi\", sa: \"Sa\" },\n monthLabels: { 1: \"Ene\", 2: \"Feb\", 3: \"Mar\", 4: \"Abr\", 5: \"May\", 6: \"Jun\", 7: \"Jul\", 8: \"Ago\", 9: \"Sep\", 10: \"Oct\", 11: \"Nov\", 12: \"Dic\" },\n dateFormat: \"dd.mm.yyyy\",\n todayBtnTxt: \"Hoy\",\n firstDayOfWeek: \"mo\",\n sunHighlight: true,\n },\n \"hu\": {\n dayLabels: { su: \"Vas\", mo: \"Hét\", tu: \"Kedd\", we: \"Sze\", th: \"Csü\", fr: \"Pén\", sa: \"Szo\" },\n monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Már\", 4: \"Ápr\", 5: \"Máj\", 6: \"Jún\", 7: \"Júl\", 8: \"Aug\", 9: \"Szep\", 10: \"Okt\", 11: \"Nov\", 12: \"Dec\" },\n dateFormat: \"yyyy-mm-dd\",\n todayBtnTxt: \"Ma\",\n firstDayOfWeek: \"mo\",\n sunHighlight: true\n },\n \"sv\": {\n dayLabels: { su: \"Sön\", mo: \"Mån\", tu: \"Tis\", we: \"Ons\", th: \"Tor\", fr: \"Fre\", sa: \"Lör\" },\n monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"Maj\", 6: \"Jun\", 7: \"Jul\", 8: \"Aug\", 9: \"Sep\", 10: \"Okt\", 11: \"Nov\", 12: \"Dec\" },\n dateFormat: \"yyyy-mm-dd\",\n todayBtnTxt: \"Idag\",\n firstDayOfWeek: \"mo\",\n sunHighlight: false\n },\n \"nl\": {\n dayLabels: { su: \"Zon\", mo: \"Maa\", tu: \"Din\", we: \"Woe\", th: \"Don\", fr: \"Vri\", sa: \"Zat\" },\n monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"Mei\", 6: \"Jun\", 7: \"Jul\", 8: \"Aug\", 9: \"Sep\", 10: \"Okt\", 11: \"Nov\", 12: \"Dec\" },\n dateFormat: \"dd-mm-yyyy\",\n todayBtnTxt: \"Vandaag\",\n firstDayOfWeek: \"mo\",\n sunHighlight: false\n },\n \"ru\": {\n dayLabels: { su: \"Вс\", mo: \"Пн\", tu: \"Вт\", we: \"Ср\", th: \"Чт\", fr: \"Пт\", sa: \"Сб\" },\n monthLabels: { 1: \"Янв\", 2: \"Фев\", 3: \"Март\", 4: \"Апр\", 5: \"Май\", 6: \"Июнь\", 7: \"Июль\", 8: \"Авг\", 9: \"Сент\", 10: \"Окт\", 11: \"Ноя\", 12: \"Дек\" },\n dateFormat: \"dd.mm.yyyy\",\n todayBtnTxt: \"Сегодня\",\n firstDayOfWeek: \"mo\",\n sunHighlight: true\n },\n \"uk\": {\n dayLabels: { su: \"Нд\", mo: \"Пн\", tu: \"Вт\", we: \"Ср\", th: \"Чт\", fr: \"Пт\", sa: \"Сб\" },\n monthLabels: { 1: \"Січ\", 2: \"Лют\", 3: \"Бер\", 4: \"Кві\", 5: \"Тра\", 6: \"Чер\", 7: \"Лип\", 8: \"Сер\", 9: \"Вер\", 10: \"Жов\", 11: \"Лис\", 12: \"Гру\" },\n dateFormat: \"dd.mm.yyyy\",\n todayBtnTxt: \"Сьогодні\",\n firstDayOfWeek: \"mo\",\n sunHighlight: true\n },\n \"no\": {\n dayLabels: { su: \"Søn\", mo: \"Man\", tu: \"Tir\", we: \"Ons\", th: \"Tor\", fr: \"Fre\", sa: \"Lør\" },\n monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"Mai\", 6: \"Jun\", 7: \"Jul\", 8: \"Aug\", 9: \"Sep\", 10: \"Okt\", 11: \"Nov\", 12: \"Des\" },\n dateFormat: \"dd.mm.yyyy\",\n todayBtnTxt: \"I dag\",\n firstDayOfWeek: \"mo\",\n sunHighlight: false\n },\n \"tr\": {\n dayLabels: { su: \"Paz\", mo: \"Pzt\", tu: \"Sal\", we: \"Çar\", th: \"Per\", fr: \"Cum\", sa: \"Cmt\" },\n monthLabels: { 1: \"Oca\", 2: \"Şub\", 3: \"Mar\", 4: \"Nis\", 5: \"May\", 6: \"Haz\", 7: \"Tem\", 8: \"Ağu\", 9: \"Eyl\", 10: \"Eki\", 11: \"Kas\", 12: \"Ara\" },\n dateFormat: \"dd.mm.yyyy\",\n todayBtnTxt: \"Bugün\",\n firstDayOfWeek: \"mo\",\n sunHighlight: false\n },\n \"pt-br\": {\n dayLabels: { su: \"Dom\", mo: \"Seg\", tu: \"Ter\", we: \"Qua\", th: \"Qui\", fr: \"Sex\", sa: \"Sab\" },\n monthLabels: { 1: \"Jan\", 2: \"Fev\", 3: \"Mar\", 4: \"Abr\", 5: \"Mai\", 6: \"Jun\", 7: \"Jul\", 8: \"Ago\", 9: \"Set\", 10: \"Out\", 11: \"Nov\", 12: \"Dez\" },\n dateFormat: \"dd/mm/yyyy\",\n todayBtnTxt: \"Hoje\",\n firstDayOfWeek: \"su\",\n sunHighlight: true\n },\n \"de\": {\n dayLabels: { su: \"So\", mo: \"Mo\", tu: \"Di\", we: \"Mi\", th: \"Do\", fr: \"Fr\", sa: \"Sa\" },\n monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Mär\", 4: \"Apr\", 5: \"Mai\", 6: \"Jun\", 7: \"Jul\", 8: \"Aug\", 9: \"Sep\", 10: \"Okt\", 11: \"Nov\", 12: \"Dez\" },\n dateFormat: \"dd.mm.yyyy\",\n todayBtnTxt: \"Heute\",\n firstDayOfWeek: \"mo\",\n sunHighlight: true\n },\n \"it\": {\n dayLabels: { su: \"Dom\", mo: \"Lun\", tu: \"Mar\", we: \"Mer\", th: \"Gio\", fr: \"Ven\", sa: \"Sab\" },\n monthLabels: { 1: \"Gen\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"Mag\", 6: \"Giu\", 7: \"Lug\", 8: \"Ago\", 9: \"Set\", 10: \"Ott\", 11: \"Nov\", 12: \"Dic\" },\n dateFormat: \"dd/mm/yyyy\",\n todayBtnTxt: \"Oggi\",\n firstDayOfWeek: \"mo\",\n sunHighlight: true\n },\n \"it-ch\": {\n dayLabels: { su: \"Dom\", mo: \"Lun\", tu: \"Mar\", we: \"Mer\", th: \"Gio\", fr: \"Ven\", sa: \"Sab\" },\n monthLabels: { 1: \"Gen\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"Mag\", 6: \"Giu\", 7: \"Lug\", 8: \"Ago\", 9: \"Set\", 10: \"Ott\", 11: \"Nov\", 12: \"Dic\" },\n dateFormat: \"dd.mm.yyyy\",\n todayBtnTxt: \"Oggi\",\n firstDayOfWeek: \"mo\",\n sunHighlight: true\n },\n \"pl\": {\n dayLabels: { su: \"Nie\", mo: \"Pon\", tu: \"Wto\", we: \"Śro\", th: \"Czw\", fr: \"Pią\", sa: \"Sob\" },\n monthLabels: { 1: \"Sty\", 2: \"Lut\", 3: \"Mar\", 4: \"Kwi\", 5: \"Maj\", 6: \"Cze\", 7: \"Lip\", 8: \"Sie\", 9: \"Wrz\", 10: \"Paź\", 11: \"Lis\", 12: \"Gru\" },\n dateFormat: \"yyyy-mm-dd\",\n todayBtnTxt: \"Dzisiaj\",\n firstDayOfWeek: \"mo\",\n sunHighlight: true,\n },\n \"my\": {\n dayLabels: { su: \"တနင်္ဂနွေ\", mo: \"တနင်္လာ\", tu: \"အင်္ဂါ\", we: \"ဗုဒ္ဓဟူး\", th: \"ကြသပတေး\", fr: \"သောကြာ\", sa: \"စနေ\" },\n monthLabels: { 1: \"ဇန်နဝါရီ\", 2: \"ဖေဖော်ဝါရီ\", 3: \"မတ်\", 4: \"ဧပြီ\", 5: \"မေ\", 6: \"ဇွန်\", 7: \"ဇူလိုင်\", 8: \"ဩဂုတ်\", 9: \"စက်တင်ဘာ\", 10: \"အောက်တိုဘာ\", 11: \"နိုဝင်ဘာ\", 12: \"ဒီဇင်ဘာ\" },\n dateFormat: \"yyyy-mm-dd\",\n todayBtnTxt: \"ယနေ့\",\n firstDayOfWeek: \"mo\",\n sunHighlight: true,\n },\n \"sk\": {\n dayLabels: { su: \"Ne\", mo: \"Po\", tu: \"Ut\", we: \"St\", th: \"Št\", fr: \"Pi\", sa: \"So\" },\n monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"Máj\", 6: \"Jún\", 7: \"Júl\", 8: \"Aug\", 9: \"Sep\", 10: \"Okt\", 11: \"Nov\", 12: \"Dec\" },\n dateFormat: \"dd.mm.yyyy\",\n todayBtnTxt: \"Dnes\",\n firstDayOfWeek: \"mo\",\n sunHighlight: true,\n },\n \"sl\": {\n dayLabels: { su: \"Ned\", mo: \"Pon\", tu: \"Tor\", we: \"Sre\", th: \"Čet\", fr: \"Pet\", sa: \"Sob\" },\n monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"Maj\", 6: \"Jun\", 7: \"Jul\", 8: \"Avg\", 9: \"Sep\", 10: \"Okt\", 11: \"Nov\", 12: \"Dec\" },\n dateFormat: \"dd. mm. yyyy\",\n todayBtnTxt: \"Danes\",\n firstDayOfWeek: \"mo\",\n sunHighlight: true,\n },\n \"zh-cn\": {\n dayLabels: { su: \"日\", mo: \"一\", tu: \"二\", we: \"三\", th: \"四\", fr: \"五\", sa: \"六\" },\n monthLabels: { 1: \"1月\", 2: \"2月\", 3: \"3月\", 4: \"4月\", 5: \"5月\", 6: \"6月\", 7: \"7月\", 8: \"8月\", 9: \"9月\", 10: \"10月\", 11: \"11月\", 12: \"12月\" },\n dateFormat: \"yyyy-mm-dd\",\n todayBtnTxt: \"今天\",\n firstDayOfWeek: \"mo\",\n sunHighlight: true,\n },\n \"ro\": {\n dayLabels: { su: \"du\", mo: \"lu\", tu: \"ma\", we: \"mi\", th: \"jo\", fr: \"vi\", sa: \"sa\" },\n monthLabels: { 1: \"ian\", 2: \"feb\", 3: \"mart\", 4: \"apr\", 5: \"mai\", 6: \"iun\", 7: \"iul\", 8: \"aug\", 9: \"sept\", 10: \"oct\", 11: \"nov\", 12: \"dec\" },\n dateFormat: \"dd.mm.yyyy\",\n todayBtnTxt: \"Astăzi\",\n firstDayOfWeek: \"mo\",\n sunHighlight: true,\n },\n \"ca\": {\n dayLabels: { su: \"dg\", mo: \"dl\", tu: \"dt\", we: \"dc\", th: \"dj\", fr: \"dv\", sa: \"ds\" },\n monthLabels: { 1: \"Gen\", 2: \"Febr\", 3: \"Març\", 4: \"Abr\", 5: \"Maig\", 6: \"Juny\", 7: \"Jul\", 8: \"Ag\", 9: \"Set\", 10: \"Oct\", 11: \"Nov\", 12: \"Des\" },\n dateFormat: \"dd.mm.yyyy\",\n todayBtnTxt: \"Avui\",\n firstDayOfWeek: \"mo\",\n sunHighlight: true,\n },\n \"id\": {\n dayLabels: { su: \"Min\", mo: \"Sen\", tu: \"Sel\", we: \"Rab\", th: \"Kam\", fr: \"Jum\", sa: \"Sab\" },\n monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"Mei\", 6: \"Jun\", 7: \"Jul\", 8: \"Ags\", 9: \"Sep\", 10: \"Okt\", 11: \"Nov\", 12: \"Des\" },\n dateFormat: \"dd-mm-yyyy\",\n todayBtnTxt: \"Hari ini\",\n firstDayOfWeek: \"su\",\n sunHighlight: true\n },\n \"en-au\": {\n dayLabels: { su: \"Sun\", mo: \"Mon\", tu: \"Tue\", we: \"Wed\", th: \"Thu\", fr: \"Fri\", sa: \"Sat\" },\n monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"May\", 6: \"Jun\", 7: \"Jul\", 8: \"Aug\", 9: \"Sep\", 10: \"Oct\", 11: \"Nov\", 12: \"Dec\" },\n dateFormat: \"dd/mm/yyyy\",\n todayBtnTxt: \"Today\",\n firstDayOfWeek: \"mo\",\n sunHighlight: true\n },\n \"am-et\": {\n dayLabels: { su: \"እሑድ\", mo: \"ሰኞ\", tu: \"ማክሰኞ\", we: \"ረቡዕ\", th: \"ሐሙስ\", fr: \"ዓርብ\", sa: \"ቅዳሜ\" },\n monthLabels: { 1: \"ጃንዩ\", 2: \"ፌብሩ\", 3: \"ማርች\", 4: \"ኤፕረ\", 5: \"ሜይ\", 6: \"ጁን\", 7: \"ጁላይ\", 8: \"ኦገስ\", 9: \"ሴፕቴ\", 10: \"ኦክተ\", 11: \"ኖቬም\", 12: \"ዲሴም\" },\n dateFormat: \"yyyy-mm-dd\",\n todayBtnTxt: \"ዛሬ\",\n firstDayOfWeek: \"mo\",\n sunHighlight: true\n },\n \"cs\": {\n dayLabels: { su: \"Ne\", mo: \"Po\", tu: \"Út\", we: \"St\", th: \"Čt\", fr: \"Pá\", sa: \"So\" },\n monthLabels: { 1: \"Led\", 2: \"Úno\", 3: \"Bře\", 4: \"Dub\", 5: \"Kvě\", 6: \"Čvn\", 7: \"Čvc\", 8: \"Srp\", 9: \"Zář\", 10: \"Říj\", 11: \"Lis\", 12: \"Pro\" },\n dateFormat: \"dd.mm.yyyy\",\n todayBtnTxt: \"Dnes\",\n firstDayOfWeek: \"mo\",\n sunHighlight: true\n },\n \"el\": {\n dayLabels: { su: \"Κυρ\", mo: \"Δευ\", tu: \"Τρι\", we: \"Τετ\", th: \"Πεμ\", fr: \"Παρ\", sa: \"Σαβ\" },\n monthLabels: { 1: \"Ιαν\", 2: \"Φεβ\", 3: \"Μαρ\", 4: \"Απρ\", 5: \"Μαι\", 6: \"Ιουν\", 7: \"Ιουλ\", 8: \"Αυγ\", 9: \"Σεπ\", 10: \"Οκτ\", 11: \"Νοε\", 12: \"Δεκ\" },\n dateFormat: \"dd/mm/yyyy\",\n todayBtnTxt: \"Σήμερα\",\n firstDayOfWeek: \"mo\",\n sunHighlight: true\n },\n \"kk\": {\n dayLabels: { su: \"Жк\", mo: \"Дс\", tu: \"Сс\", we: \"Ср\", th: \"Бс\", fr: \"Жм\", sa: \"Сб\" },\n monthLabels: { 1: \"Қаң\", 2: \"Ақп\", 3: \"Нау\", 4: \"Сәу\", 5: \"Мам\", 6: \"Мау\", 7: \"Шіл\", 8: \"Там\", 9: \"Қырк\", 10: \"Қаз\", 11: \"Қар\", 12: \"Желт\" },\n dateFormat: \"dd-mmm-yyyy\",\n todayBtnTxt: \"Бүгін\",\n firstDayOfWeek: \"mo\",\n sunHighlight: true\n },\n \"th\": {\n dayLabels: { su: \"อา\", mo: \"จ\", tu: \"อ\", we: \"พ\", th: \"พฤ\", fr: \"ศ\", sa: \"ส\" },\n monthLabels: { 1: \"ม.ค\", 2: \"ก.พ.\", 3: \"มี.ค.\", 4: \"เม.ย.\", 5: \"พ.ค.\", 6: \"มิ.ย.\", 7: \"ก.ค.\", 8: \"ส.ค.\", 9: \"ก.ย.\", 10: \"ต.ค.\", 11: \"พ.ย.\", 12: \"ธ.ค.\" },\n dateFormat: \"dd-mm-yyyy\",\n todayBtnTxt: \"วันนี้\",\n firstDayOfWeek: \"su\",\n sunHighlight: true\n },\n \"ko-kr\": {\n dayLabels: { su: \"일\", mo: \"월\", tu: \"화\", we: \"수\", th: \"목\", fr: \"금\", sa: \"토\" },\n monthLabels: { 1: \"1월\", 2: \"2월\", 3: \"3월\", 4: \"4월\", 5: \"5월\", 6: \"6월\", 7: \"7월\", 8: \"8월\", 9: \"9월\", 10: \"10월\", 11: \"11월\", 12: \"12월\" },\n dateFormat: \"yyyy mm dd\",\n todayBtnTxt: \"오늘\",\n firstDayOfWeek: \"su\",\n sunHighlight: true\n },\n \"da\": {\n dayLabels: { su: \"Søn\", mo: \"Man\", tu: \"Tir\", we: \"Ons\", th: \"Tor\", fr: \"Fre\", sa: \"Lør\" },\n monthLabels: { 1: \"Jan\", 2: \"Feb\", 3: \"Mar\", 4: \"Apr\", 5: \"Maj\", 6: \"Jun\", 7: \"Jul\", 8: \"Aug\", 9: \"Sep\", 10: \"Okt\", 11: \"Nov\", 12: \"Dec\" },\n dateFormat: \"dd-mm-yyyy\",\n todayBtnTxt: \"I dag\",\n firstDayOfWeek: \"mo\",\n sunHighlight: true\n },\n \"lt\": {\n dayLabels: { su: \"Sk\", mo: \"Pr\", tu: \"An\", we: \"Tr\", th: \"Kt\", fr: \"Pn\", sa: \"Št\" },\n monthLabels: { 1: \"Saus.\", 2: \"Vas.\", 3: \"Kov.\", 4: \"Bal.\", 5: \"Geg.\", 6: \"Birž.\", 7: \"Liep.\", 8: \"Rugp.\", 9: \"Rugs.\", 10: \"Sapl.\", 11: \"Lapkr.\", 12: \"Gruod.\" },\n dateFormat: \"yyyy-mm-dd\",\n todayBtnTxt: \"Šianien\",\n firstDayOfWeek: \"mo\",\n sunHighlight: true\n },\n \"vi\": {\n dayLabels: { su: \"CN\", mo: \"T2\", tu: \"T3\", we: \"T4\", th: \"T5\", fr: \"T6\", sa: \"T7\" },\n monthLabels: { 1: \"THG 1\", 2: \"THG 2\", 3: \"THG 3\", 4: \"THG 4\", 5: \"THG 5\", 6: \"THG 6\", 7: \"THG 7\", 8: \"THG 8\", 9: \"THG 9\", 10: \"THG 10\", 11: \"THG 11\", 12: \"THG 12\" },\n dateFormat: \"dd/mm/yyyy\",\n todayBtnTxt: \"Hôm nay\",\n firstDayOfWeek: \"mo\",\n sunHighlight: true,\n },\n \"bn\": {\n dayLabels: { su: \"রবি\", mo: \"সোম\", tu: \"মঙ্গল\", we: \"বুধ\", th: \"বৃহঃ\", fr: \"শুক্র\", sa: \"শনি\" },\n monthLabels: { 1: \"জানু\", 2: \"ফেব্রু\", 3: \"মার্চ\", 4: \"এপ্রিল\", 5: \"মে\", 6: \"জুন\", 7: \"জুলাই\", 8: \"আগস্ট\", 9: \"সেপ্টে\", 10: \"অক্টো\", 11: \"নভে\", 12: \"ডিসে\" },\n dateFormat: \"dd-mm-yyyy\",\n todayBtnTxt: \"আজ\",\n firstDayOfWeek: \"su\",\n sunHighlight: true\n },\n \"bg\": {\n dayLabels: { su: \"нд\", mo: \"пн\", tu: \"вт\", we: \"ср\", th: \"чт\", fr: \"пт\", sa: \"сб\" },\n monthLabels: { 1: \"яну.\", 2: \"фев.\", 3: \"март\", 4: \"апр.\", 5: \"май\", 6: \"юни\", 7: \"юли\", 8: \"авг.\", 9: \"сеп.\", 10: \"окт.\", 11: \"ное.\", 12: \"дек.\" },\n dateFormat: \"dd.mm.yyyy\",\n todayBtnTxt: \"днес\",\n firstDayOfWeek: \"mo\",\n sunHighlight: true\n },\n \"hr\": {\n dayLabels: { su: \"Ne\", mo: \"Po\", tu: \"Ul\", we: \"Sr\", th: \"Če\", fr: \"Pe\", sa: \"Su\" },\n monthLabels: { 1: \"Sij\", 2: \"Vel\", 3: \"Ožu\", 4: \"Tra\", 5: \"Svi\", 6: \"Lip\", 7: \"Srp\", 8: \"Kol\", 9: \"Ruj\", 10: \"Lis\", 11: \"Stu\", 12: \"Pro\" },\n dateFormat: \"dd.mm.yyyy.\",\n todayBtnTxt: \"danas\",\n firstDayOfWeek: \"su\",\n sunHighlight: true\n },\n \"ar\": {\n dayLabels: { su: \"الأحد\", mo: \"الاثنين\", tu: \"الثلاثاء\", we: \"الاربعاء\", th: \"الخميس\", fr: \"الجمعة\", sa: \"السبت\" },\n monthLabels: { 1: \"يناير\", 2: \"فبراير\", 3: \"مارس\", 4: \"ابريل\", 5: \"مايو\", 6: \"يونيو\", 7: \"يوليو\", 8: \"أغسطس\", 9: \"سبتمبر\", 10: \"أكتوبر\", 11: \"نوفمبر\", 12: \"ديسمبر\" },\n dateFormat: \"yyyy-mm-dd\",\n todayBtnTxt: \"اليوم\",\n firstDayOfWeek: \"sa\",\n sunHighlight: true\n }\n };\n }\n LocaleService.prototype.getLocaleOptions = function (locale) {\n if (locale && this.locales.hasOwnProperty(locale)) {\n return this.locales[locale];\n }\n return this.locales[\"en\"];\n };\n LocaleService.decorators = [\n { type: _angular_core.Injectable },\n ];\n LocaleService.ctorParameters = [];\n return LocaleService;\n}());\n\nvar M = \"m\";\nvar MM = \"mm\";\nvar MMM = \"mmm\";\nvar DD = \"dd\";\nvar YYYY = \"yyyy\";\nvar UtilService = (function () {\n function UtilService() {\n }\n UtilService.prototype.isDateValid = function (dateStr, dateFormat, minYear, maxYear, disableUntil, disableSince, disableWeekends, disableDays, disableDateRanges, monthLabels, enableDays) {\n var returnDate = { day: 0, month: 0, year: 0 };\n var daysInMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n var isMonthStr = dateFormat.indexOf(MMM) !== -1;\n var separators = this.getDateFormatSeparators(dateFormat);\n var month = isMonthStr ? this.parseDatePartMonthName(dateFormat, dateStr, MMM, monthLabels) : this.parseDatePartNumber(dateFormat, dateStr, MM);\n if (isMonthStr && monthLabels[month]) {\n dateFormat = this.changeDateFormat(dateFormat, monthLabels[month].length);\n }\n if (dateStr.length !== dateFormat.length) {\n return returnDate;\n }\n if (dateFormat.indexOf(separators[0]) !== dateStr.indexOf(separators[0]) || dateFormat.lastIndexOf(separators[1]) !== dateStr.lastIndexOf(separators[1])) {\n return returnDate;\n }\n var day = this.parseDatePartNumber(dateFormat, dateStr, DD);\n var year = this.parseDatePartNumber(dateFormat, dateStr, YYYY);\n if (month !== -1 && day !== -1 && year !== -1) {\n if (year < minYear || year > maxYear || month < 1 || month > 12) {\n return returnDate;\n }\n var date = { year: year, month: month, day: day };\n if (this.isDisabledDay(date, disableUntil, disableSince, disableWeekends, disableDays, disableDateRanges, enableDays)) {\n return returnDate;\n }\n if (year % 400 === 0 || (year % 100 !== 0 && year % 4 === 0)) {\n daysInMonth[1] = 29;\n }\n if (day < 1 || day > daysInMonth[month - 1]) {\n return returnDate;\n }\n return date;\n }\n return returnDate;\n };\n UtilService.prototype.getDateFormatSeparators = function (dateFormat) {\n return dateFormat.match(/[^(dmy)]{1,}/g);\n };\n UtilService.prototype.changeDateFormat = function (dateFormat, len) {\n var mp = \"\";\n for (var i = 0; i < len; i++) {\n mp += M;\n }\n return dateFormat.replace(MMM, mp);\n };\n UtilService.prototype.isMonthLabelValid = function (monthLabel, monthLabels) {\n for (var key = 1; key <= 12; key++) {\n if (monthLabel.toLowerCase() === monthLabels[key].toLowerCase()) {\n return key;\n }\n }\n return -1;\n };\n UtilService.prototype.isYearLabelValid = function (yearLabel, minYear, maxYear) {\n if (yearLabel >= minYear && yearLabel <= maxYear) {\n return yearLabel;\n }\n return -1;\n };\n UtilService.prototype.parseDatePartNumber = function (dateFormat, dateString, datePart) {\n var pos = this.getDatePartIndex(dateFormat, datePart);\n if (pos !== -1) {\n var value = dateString.substring(pos, pos + datePart.length);\n if (!/^\\d+$/.test(value)) {\n return -1;\n }\n return parseInt(value);\n }\n return -1;\n };\n UtilService.prototype.parseDatePartMonthName = function (dateFormat, dateString, datePart, monthLabels) {\n var monthLabel = \"\";\n var start = dateFormat.indexOf(datePart);\n if (dateFormat.substr(dateFormat.length - 3) === MMM) {\n monthLabel = dateString.substring(start);\n }\n else {\n var end = dateString.indexOf(dateFormat.charAt(start + datePart.length), start);\n monthLabel = dateString.substring(start, end);\n }\n return this.isMonthLabelValid(monthLabel, monthLabels);\n };\n UtilService.prototype.getDatePartIndex = function (dateFormat, datePart) {\n return dateFormat.indexOf(datePart);\n };\n UtilService.prototype.parseDefaultMonth = function (monthString) {\n var month = { monthTxt: \"\", monthNbr: 0, year: 0 };\n if (monthString !== \"\") {\n var split = monthString.split(monthString.match(/[^0-9]/)[0]);\n month.monthNbr = split[0].length === 2 ? parseInt(split[0]) : parseInt(split[1]);\n month.year = split[0].length === 2 ? parseInt(split[1]) : parseInt(split[0]);\n }\n return month;\n };\n UtilService.prototype.isDisabledDay = function (date, disableUntil, disableSince, disableWeekends, disableDays, disableDateRanges, enableDays) {\n for (var _i = 0, enableDays_1 = enableDays; _i < enableDays_1.length; _i++) {\n var e = enableDays_1[_i];\n if (e.year === date.year && e.month === date.month && e.day === date.day) {\n return false;\n }\n }\n var dateMs = this.getTimeInMilliseconds(date);\n if (this.isInitializedDate(disableUntil) && dateMs <= this.getTimeInMilliseconds(disableUntil)) {\n return true;\n }\n if (this.isInitializedDate(disableSince) && dateMs >= this.getTimeInMilliseconds(disableSince)) {\n return true;\n }\n if (disableWeekends) {\n var dn = this.getDayNumber(date);\n if (dn === 0 || dn === 6) {\n return true;\n }\n }\n for (var _a = 0, disableDays_1 = disableDays; _a < disableDays_1.length; _a++) {\n var d = disableDays_1[_a];\n if (d.year === date.year && d.month === date.month && d.day === date.day) {\n return true;\n }\n }\n for (var _b = 0, disableDateRanges_1 = disableDateRanges; _b < disableDateRanges_1.length; _b++) {\n var d = disableDateRanges_1[_b];\n if (this.isInitializedDate(d.begin) && this.isInitializedDate(d.end) && dateMs >= this.getTimeInMilliseconds(d.begin) && dateMs <= this.getTimeInMilliseconds(d.end)) {\n return true;\n }\n }\n return false;\n };\n UtilService.prototype.isMarkedDate = function (date, markedDates, markWeekends) {\n for (var _i = 0, markedDates_1 = markedDates; _i < markedDates_1.length; _i++) {\n var md = markedDates_1[_i];\n for (var _a = 0, _b = md.dates; _a < _b.length; _a++) {\n var d = _b[_a];\n if (d.year === date.year && d.month === date.month && d.day === date.day) {\n return { marked: true, color: md.color };\n }\n }\n }\n if (markWeekends && markWeekends.marked) {\n var dayNbr = this.getDayNumber(date);\n if (dayNbr === 0 || dayNbr === 6) {\n return { marked: true, color: markWeekends.color };\n }\n }\n return { marked: false, color: \"\" };\n };\n UtilService.prototype.isHighlightedDate = function (date, sunHighlight, satHighlight, highlightDates) {\n var dayNbr = this.getDayNumber(date);\n if (sunHighlight && dayNbr === 0 || satHighlight && dayNbr === 6) {\n return true;\n }\n for (var _i = 0, highlightDates_1 = highlightDates; _i < highlightDates_1.length; _i++) {\n var d = highlightDates_1[_i];\n if (d.year === date.year && d.month === date.month && d.day === date.day) {\n return true;\n }\n }\n return false;\n };\n UtilService.prototype.getWeekNumber = function (date) {\n var d = new Date(date.year, date.month - 1, date.day, 0, 0, 0, 0);\n d.setDate(d.getDate() + (d.getDay() === 0 ? -3 : 4 - d.getDay()));\n return Math.round(((d.getTime() - new Date(d.getFullYear(), 0, 4).getTime()) / 86400000) / 7) + 1;\n };\n UtilService.prototype.isMonthDisabledByDisableUntil = function (date, disableUntil) {\n return this.isInitializedDate(disableUntil) && this.getTimeInMilliseconds(date) <= this.getTimeInMilliseconds(disableUntil);\n };\n UtilService.prototype.isMonthDisabledByDisableSince = function (date, disableSince) {\n return this.isInitializedDate(disableSince) && this.getTimeInMilliseconds(date) >= this.getTimeInMilliseconds(disableSince);\n };\n UtilService.prototype.isInitializedDate = function (date) {\n return date.year !== 0 && date.month !== 0 && date.day !== 0;\n };\n UtilService.prototype.isSameDate = function (d1, d2) {\n return d1.year === d2.year && d1.month === d2.month && d1.day === d2.day;\n };\n UtilService.prototype.getTimeInMilliseconds = function (date) {\n return new Date(date.year, date.month - 1, date.day, 0, 0, 0, 0).getTime();\n };\n UtilService.prototype.getDayNumber = function (date) {\n var d = new Date(date.year, date.month - 1, date.day, 0, 0, 0, 0);\n return d.getDay();\n };\n UtilService.decorators = [\n { type: _angular_core.Injectable },\n ];\n UtilService.ctorParameters = [];\n return UtilService;\n}());\n\nvar FocusDirective = (function () {\n function FocusDirective(el, renderer) {\n this.el = el;\n this.renderer = renderer;\n }\n FocusDirective.prototype.ngAfterViewInit = function () {\n if (this.value === \"0\") {\n return;\n }\n this.renderer.invokeElementMethod(this.el.nativeElement, \"focus\", []);\n };\n FocusDirective.decorators = [\n { type: _angular_core.Directive, args: [{\n selector: \"[mydpfocus]\"\n },] },\n ];\n FocusDirective.ctorParameters = [\n { type: _angular_core.ElementRef, },\n { type: _angular_core.Renderer, },\n ];\n FocusDirective.propDecorators = {\n 'value': [{ type: _angular_core.Input, args: [\"mydpfocus\",] },],\n };\n return FocusDirective;\n}());\n\nvar MYDP_VALUE_ACCESSOR = {\n provide: _angular_forms.NG_VALUE_ACCESSOR,\n useExisting: _angular_core.forwardRef(function () { return MyDatePicker; }),\n multi: true\n};\nvar CalToggle;\n(function (CalToggle) {\n CalToggle[CalToggle[\"Open\"] = 1] = \"Open\";\n CalToggle[CalToggle[\"CloseByDateSel\"] = 2] = \"CloseByDateSel\";\n CalToggle[CalToggle[\"CloseByCalBtn\"] = 3] = \"CloseByCalBtn\";\n CalToggle[CalToggle[\"CloseByOutClick\"] = 4] = \"CloseByOutClick\";\n CalToggle[CalToggle[\"CloseByEsc\"] = 5] = \"CloseByEsc\";\n})(CalToggle || (CalToggle = {}));\nvar Year;\n(function (Year) {\n Year[Year[\"min\"] = 1100] = \"min\";\n Year[Year[\"max\"] = 9100] = \"max\";\n})(Year || (Year = {}));\nvar InputFocusBlur;\n(function (InputFocusBlur) {\n InputFocusBlur[InputFocusBlur[\"focus\"] = 1] = \"focus\";\n InputFocusBlur[InputFocusBlur[\"blur\"] = 2] = \"blur\";\n})(InputFocusBlur || (InputFocusBlur = {}));\nvar KeyCode;\n(function (KeyCode) {\n KeyCode[KeyCode[\"enter\"] = 13] = \"enter\";\n KeyCode[KeyCode[\"esc\"] = 27] = \"esc\";\n KeyCode[KeyCode[\"space\"] = 32] = \"space\";\n})(KeyCode || (KeyCode = {}));\nvar MonthId;\n(function (MonthId) {\n MonthId[MonthId[\"prev\"] = 1] = \"prev\";\n MonthId[MonthId[\"curr\"] = 2] = \"curr\";\n MonthId[MonthId[\"next\"] = 3] = \"next\";\n})(MonthId || (MonthId = {}));\nvar MM$1 = \"mm\";\nvar MMM$1 = \"mmm\";\nvar DD$1 = \"dd\";\nvar YYYY$1 = \"yyyy\";\nvar MyDatePicker = (function () {\n function MyDatePicker(elem, renderer, cdr, localeService, utilService) {\n var _this = this;\n this.elem = elem;\n this.renderer = renderer;\n this.cdr = cdr;\n this.localeService = localeService;\n this.utilService = utilService;\n this.dateChanged = new _angular_core.EventEmitter();\n this.inputFieldChanged = new _angular_core.EventEmitter();\n this.calendarViewChanged = new _angular_core.EventEmitter();\n this.calendarToggle = new _angular_core.EventEmitter();\n this.inputFocusBlur = new _angular_core.EventEmitter();\n this.onChangeCb = function () { };\n this.onTouchedCb = function () { };\n this.showSelector = false;\n this.visibleMonth = { monthTxt: \"\", monthNbr: 0, year: 0 };\n this.selectedMonth = { monthTxt: \"\", monthNbr: 0, year: 0 };\n this.selectedDate = { year: 0, month: 0, day: 0 };\n this.weekDays = [];\n this.dates = [];\n this.months = [];\n this.years = [];\n this.selectionDayTxt = \"\";\n this.invalidDate = false;\n this.disableTodayBtn = false;\n this.dayIdx = 0;\n this.weekDayOpts = [\"su\", \"mo\", \"tu\", \"we\", \"th\", \"fr\", \"sa\"];\n this.selectMonth = false;\n this.selectYear = false;\n this.prevMonthDisabled = false;\n this.nextMonthDisabled = false;\n this.prevYearDisabled = false;\n this.nextYearDisabled = false;\n this.prevYearsDisabled = false;\n this.nextYearsDisabled = false;\n this.prevMonthId = MonthId.prev;\n this.currMonthId = MonthId.curr;\n this.nextMonthId = MonthId.next;\n this.opts = {\n dayLabels: {},\n monthLabels: {},\n dateFormat: \"\",\n showTodayBtn: true,\n todayBtnTxt: \"\",\n firstDayOfWeek: \"\",\n satHighlight: false,\n sunHighlight: true,\n highlightDates: [],\n markCurrentDay: true,\n markCurrentMonth: true,\n markCurrentYear: true,\n disableUntil: { year: 0, month: 0, day: 0 },\n disableSince: { year: 0, month: 0, day: 0 },\n disableDays: [],\n enableDays: [],\n markDates: [],\n markWeekends: {},\n disableDateRanges: [],\n disableWeekends: false,\n showWeekNumbers: false,\n height: \"34px\",\n width: \"100%\",\n selectionTxtFontSize: \"14px\",\n selectorHeight: \"232px\",\n selectorWidth: \"252px\",\n allowDeselectDate: true,\n inline: false,\n showClearDateBtn: true,\n showDecreaseDateBtn: false,\n showIncreaseDateBtn: false,\n alignSelectorRight: false,\n openSelectorTopOfInput: false,\n indicateInvalidDate: true,\n editableDateField: true,\n monthSelector: true,\n yearSelector: true,\n disableHeaderButtons: true,\n minYear: Year.min,\n maxYear: Year.max,\n componentDisabled: false,\n showSelectorArrow: true,\n showInputField: true,\n openSelectorOnInputClick: false,\n ariaLabelInputField: \"Date input field\",\n ariaLabelClearDate: \"Clear Date\",\n ariaLabelDecreaseDate: \"Decrease Date\",\n ariaLabelIncreaseDate: \"Increase Date\",\n ariaLabelOpenCalendar: \"Open Calendar\",\n ariaLabelPrevMonth: \"Previous Month\",\n ariaLabelNextMonth: \"Next Month\",\n ariaLabelPrevYear: \"Previous Year\",\n ariaLabelNextYear: \"Next Year\"\n };\n this.setLocaleOptions();\n renderer.listenGlobal(\"document\", \"click\", function (event) {\n if (_this.showSelector && event.target && _this.elem.nativeElement !== event.target && !_this.elem.nativeElement.contains(event.target)) {\n _this.showSelector = false;\n _this.calendarToggle.emit(CalToggle.CloseByOutClick);\n }\n if (_this.opts.monthSelector || _this.opts.yearSelector) {\n _this.resetMonthYearSelect();\n }\n });\n }\n MyDatePicker.prototype.setLocaleOptions = function () {\n var _this = this;\n var opts = this.localeService.getLocaleOptions(this.locale);\n Object.keys(opts).forEach(function (k) {\n _this.opts[k] = opts[k];\n });\n };\n MyDatePicker.prototype.setOptions = function () {\n var _this = this;\n if (this.options !== undefined) {\n Object.keys(this.options).forEach(function (k) {\n _this.opts[k] = _this.options[k];\n });\n }\n if (this.opts.minYear < Year.min) {\n this.opts.minYear = Year.min;\n }\n if (this.opts.maxYear > Year.max) {\n this.opts.maxYear = Year.max;\n }\n if (this.disabled !== undefined) {\n this.opts.componentDisabled = this.disabled;\n }\n };\n MyDatePicker.prototype.getSelectorTopPosition = function () {\n if (this.opts.openSelectorTopOfInput) {\n return this.elem.nativeElement.children[0].offsetHeight + \"px\";\n }\n };\n MyDatePicker.prototype.resetMonthYearSelect = function () {\n this.selectMonth = false;\n this.selectYear = false;\n };\n MyDatePicker.prototype.onSelectMonthClicked = function (event) {\n event.stopPropagation();\n this.selectMonth = !this.selectMonth;\n this.selectYear = false;\n this.cdr.detectChanges();\n if (this.selectMonth) {\n var today = this.getToday();\n this.months.length = 0;\n for (var i = 1; i <= 12; i += 3) {\n var row = [];\n for (var j = i; j < i + 3; j++) {\n var disabled = this.utilService.isMonthDisabledByDisableUntil({ year: this.visibleMonth.year, month: j, day: this.daysInMonth(j, this.visibleMonth.year) }, this.opts.disableUntil)\n || this.utilService.isMonthDisabledByDisableSince({ year: this.visibleMonth.year, month: j, day: 1 }, this.opts.disableSince);\n row.push({ nbr: j, name: this.opts.monthLabels[j], currMonth: j === today.month && this.visibleMonth.year === today.year, selected: j === this.visibleMonth.monthNbr, disabled: disabled });\n }\n this.months.push(row);\n }\n }\n };\n MyDatePicker.prototype.onMonthCellClicked = function (cell) {\n var mc = cell.nbr !== this.visibleMonth.monthNbr;\n this.visibleMonth = { monthTxt: this.monthText(cell.nbr), monthNbr: cell.nbr, year: this.visibleMonth.year };\n this.generateCalendar(cell.nbr, this.visibleMonth.year, mc);\n this.selectMonth = false;\n this.selectorEl.nativeElement.focus();\n };\n MyDatePicker.prototype.onMonthCellKeyDown = function (event, cell) {\n if ((event.keyCode === KeyCode.enter || event.keyCode === KeyCode.space) && !cell.disabled) {\n event.preventDefault();\n this.onMonthCellClicked(cell);\n }\n };\n MyDatePicker.prototype.onSelectYearClicked = function (event) {\n event.stopPropagation();\n this.selectYear = !this.selectYear;\n this.selectMonth = false;\n this.cdr.detectChanges();\n if (this.selectYear) {\n this.generateYears(this.visibleMonth.year);\n }\n };\n MyDatePicker.prototype.onYearCellClicked = function (cell) {\n var yc = cell.year !== this.visibleMonth.year;\n this.visibleMonth = { monthTxt: this.visibleMonth.monthTxt, monthNbr: this.visibleMonth.monthNbr, year: cell.year };\n this.generateCalendar(this.visibleMonth.monthNbr, cell.year, yc);\n this.selectYear = false;\n this.selectorEl.nativeElement.focus();\n };\n MyDatePicker.prototype.onYearCellKeyDown = function (event, cell) {\n if ((event.keyCode === KeyCode.enter || event.keyCode === KeyCode.space) && !cell.disabled) {\n event.preventDefault();\n this.onYearCellClicked(cell);\n }\n };\n MyDatePicker.prototype.onPrevYears = function (event, year) {\n event.stopPropagation();\n this.generateYears(year - 25);\n };\n MyDatePicker.prototype.onNextYears = function (event, year) {\n event.stopPropagation();\n this.generateYears(year + 25);\n };\n MyDatePicker.prototype.generateYears = function (year) {\n this.years.length = 0;\n var today = this.getToday();\n for (var i = year; i <= 20 + year; i += 5) {\n var row = [];\n for (var j = i; j < i + 5; j++) {\n var disabled = this.utilService.isMonthDisabledByDisableUntil({ year: j, month: this.visibleMonth.monthNbr, day: this.daysInMonth(this.visibleMonth.monthNbr, j) }, this.opts.disableUntil)\n || this.utilService.isMonthDisabledByDisableSince({ year: j, month: this.visibleMonth.monthNbr, day: 1 }, this.opts.disableSince);\n var minMax = j < this.opts.minYear || j > this.opts.maxYear;\n row.push({ year: j, currYear: j === today.year, selected: j === this.visibleMonth.year, disabled: disabled || minMax });\n }\n this.years.push(row);\n }\n this.prevYearsDisabled = this.years[0][0].year <= this.opts.minYear || this.utilService.isMonthDisabledByDisableUntil({ year: this.years[0][0].year - 1, month: this.visibleMonth.monthNbr, day: this.daysInMonth(this.visibleMonth.monthNbr, this.years[0][0].year - 1) }, this.opts.disableUntil);\n this.nextYearsDisabled = this.years[4][4].year >= this.opts.maxYear || this.utilService.isMonthDisabledByDisableSince({ year: this.years[4][4].year + 1, month: this.visibleMonth.monthNbr, day: 1 }, this.opts.disableSince);\n };\n MyDatePicker.prototype.onUserDateInput = function (value) {\n this.invalidDate = false;\n if (value.length === 0) {\n this.clearDate();\n }\n else {\n var date = this.utilService.isDateValid(value, this.opts.dateFormat, this.opts.minYear, this.opts.maxYear, this.opts.disableUntil, this.opts.disableSince, this.opts.disableWeekends, this.opts.disableDays, this.opts.disableDateRanges, this.opts.monthLabels, this.opts.enableDays);\n if (date.day !== 0 && date.month !== 0 && date.year !== 0) {\n this.selectDate(date, CalToggle.CloseByDateSel);\n }\n else {\n this.invalidDate = true;\n }\n }\n if (this.invalidDate) {\n this.inputFieldChanged.emit({ value: value, dateFormat: this.opts.dateFormat, valid: !(value.length === 0 || this.invalidDate) });\n this.onChangeCb(null);\n this.onTouchedCb();\n }\n };\n MyDatePicker.prototype.onFocusInput = function (event) {\n this.inputFocusBlur.emit({ reason: InputFocusBlur.focus, value: event.target.value });\n };\n MyDatePicker.prototype.onBlurInput = function (event) {\n this.selectionDayTxt = event.target.value;\n this.onTouchedCb();\n this.inputFocusBlur.emit({ reason: InputFocusBlur.blur, value: event.target.value });\n };\n MyDatePicker.prototype.onCloseSelector = function (event) {\n if (event.keyCode === KeyCode.esc && this.showSelector && !this.opts.inline) {\n this.calendarToggle.emit(CalToggle.CloseByEsc);\n this.showSelector = false;\n }\n };\n MyDatePicker.prototype.isTodayDisabled = function () {\n this.disableTodayBtn = this.utilService.isDisabledDay(this.getToday(), this.opts.disableUntil, this.opts.disableSince, this.opts.disableWeekends, this.opts.disableDays, this.opts.disableDateRanges, this.opts.enableDays);\n };\n MyDatePicker.prototype.parseOptions = function () {\n if (this.locale) {\n this.setLocaleOptions();\n }\n this.setOptions();\n this.isTodayDisabled();\n this.dayIdx = this.weekDayOpts.indexOf(this.opts.firstDayOfWeek);\n if (this.dayIdx !== -1) {\n var idx = this.dayIdx;\n for (var i = 0; i < this.weekDayOpts.length; i++) {\n this.weekDays.push(this.opts.dayLabels[this.weekDayOpts[idx]]);\n idx = this.weekDayOpts[idx] === \"sa\" ? 0 : idx + 1;\n }\n }\n };\n MyDatePicker.prototype.writeValue = function (value) {\n if (value && (value[\"date\"] || value[\"jsdate\"])) {\n this.selectedDate = value[\"date\"] ? this.parseSelectedDate(value[\"date\"]) : this.parseSelectedDate(this.jsDateToMyDate(value[\"jsdate\"]));\n var cvc = this.visibleMonth.year !== this.selectedDate.year || this.visibleMonth.monthNbr !== this.selectedDate.month;\n if (cvc) {\n this.visibleMonth = { monthTxt: this.opts.monthLabels[this.selectedDate.month], monthNbr: this.selectedDate.month, year: this.selectedDate.year };\n this.generateCalendar(this.selectedDate.month, this.selectedDate.year, cvc);\n }\n if (!this.opts.inline) {\n this.updateDateValue(this.selectedDate, false);\n }\n }\n else if (value === null || value === \"\") {\n if (!this.opts.inline) {\n this.updateDateValue({ year: 0, month: 0, day: 0 }, true);\n }\n else {\n this.selectedDate = { year: 0, month: 0, day: 0 };\n }\n }\n };\n MyDatePicker.prototype.setDisabledState = function (disabled) {\n this.opts.componentDisabled = disabled;\n };\n MyDatePicker.prototype.registerOnChange = function (fn) {\n this.onChangeCb = fn;\n };\n MyDatePicker.prototype.registerOnTouched = function (fn) {\n this.onTouchedCb = fn;\n };\n MyDatePicker.prototype.ngOnChanges = function (changes) {\n var _this = this;\n if (changes.hasOwnProperty(\"selector\") && changes[\"selector\"].currentValue > 0) {\n this.openBtnClicked();\n }\n if (changes.hasOwnProperty(\"placeholder\")) {\n this.placeholder = changes[\"placeholder\"].currentValue;\n }\n if (changes.hasOwnProperty(\"locale\")) {\n this.locale = changes[\"locale\"].currentValue;\n }\n if (changes.hasOwnProperty(\"disabled\")) {\n this.disabled = changes[\"disabled\"].currentValue;\n }\n if (changes.hasOwnProperty(\"options\")) {\n this.options = changes[\"options\"].currentValue;\n }\n this.weekDays.length = 0;\n this.parseOptions();\n if (changes.hasOwnProperty(\"defaultMonth\")) {\n var dm = changes[\"defaultMonth\"].currentValue;\n if (dm !== null && dm !== undefined && dm !== \"\") {\n this.selectedMonth = this.parseSelectedMonth(dm);\n }\n else {\n this.selectedMonth = { monthTxt: \"\", monthNbr: 0, year: 0 };\n }\n }\n if (changes.hasOwnProperty(\"selDate\")) {\n var sd = changes[\"selDate\"];\n if (sd.currentValue !== null && sd.currentValue !== undefined && sd.currentValue !== \"\" && Object.keys(sd.currentValue).length !== 0) {\n this.selectedDate = this.parseSelectedDate(sd.currentValue);\n setTimeout(function () {\n _this.onChangeCb(_this.getDateModel(_this.selectedDate));\n });\n }\n else {\n if (!sd.isFirstChange()) {\n this.clearDate();\n }\n }\n }\n if (this.visibleMonth.year === 0 && this.visibleMonth.monthNbr === 0) {\n this.setVisibleMonth();\n }\n else {\n this.generateCalendar(this.visibleMonth.monthNbr, this.visibleMonth.year, false);\n }\n };\n MyDatePicker.prototype.removeBtnClicked = function () {\n this.clearDate();\n if (this.showSelector) {\n this.calendarToggle.emit(CalToggle.CloseByCalBtn);\n }\n this.showSelector = false;\n };\n MyDatePicker.prototype.onDecreaseBtnClicked = function () {\n this.decreaseIncreaseDate(true);\n };\n MyDatePicker.prototype.onIncreaseBtnClicked = function () {\n this.decreaseIncreaseDate(false);\n };\n MyDatePicker.prototype.openBtnClicked = function () {\n this.showSelector = !this.showSelector;\n this.cdr.detectChanges();\n if (this.showSelector) {\n this.setVisibleMonth();\n this.calendarToggle.emit(CalToggle.Open);\n }\n else {\n this.calendarToggle.emit(CalToggle.CloseByCalBtn);\n }\n };\n MyDatePicker.prototype.setVisibleMonth = function () {\n var y = 0, m = 0;\n if (!this.utilService.isInitializedDate(this.selectedDate)) {\n if (this.selectedMonth.year === 0 && this.selectedMonth.monthNbr === 0) {\n var today = this.getToday();\n y = today.year;\n m = today.month;\n }\n else {\n y = this.selectedMonth.year;\n m = this.selectedMonth.monthNbr;\n }\n }\n else {\n y = this.selectedDate.year;\n m = this.selectedDate.month;\n }\n this.visibleMonth = { monthTxt: this.opts.monthLabels[m], monthNbr: m, year: y };\n this.generateCalendar(m, y, true);\n };\n MyDatePicker.prototype.onPrevMonth = function () {\n var d = this.getDate(this.visibleMonth.year, this.visibleMonth.monthNbr, 1);\n d.setMonth(d.getMonth() - 1);\n var y = d.getFullYear();\n var m = d.getMonth() + 1;\n this.visibleMonth = { monthTxt: this.monthText(m), monthNbr: m, year: y };\n this.generateCalendar(m, y, true);\n };\n MyDatePicker.prototype.onNextMonth = function () {\n var d = this.getDate(this.visibleMonth.year, this.visibleMonth.monthNbr, 1);\n d.setMonth(d.getMonth() + 1);\n var y = d.getFullYear();\n var m = d.getMonth() + 1;\n this.visibleMonth = { monthTxt: this.monthText(m), monthNbr: m, year: y };\n this.generateCalendar(m, y, true);\n };\n MyDatePicker.prototype.onPrevYear = function () {\n this.visibleMonth.year--;\n this.generateCalendar(this.visibleMonth.monthNbr, this.visibleMonth.year, true);\n };\n MyDatePicker.prototype.onNextYear = function () {\n this.visibleMonth.year++;\n this.generateCalendar(this.visibleMonth.monthNbr, this.visibleMonth.year, true);\n };\n MyDatePicker.prototype.onTodayClicked = function () {\n var today = this.getToday();\n this.selectDate(today, CalToggle.CloseByDateSel);\n if (this.opts.inline && today.year !== this.visibleMonth.year || today.month !== this.visibleMonth.monthNbr) {\n this.visibleMonth = { monthTxt: this.opts.monthLabels[today.month], monthNbr: today.month, year: today.year };\n this.generateCalendar(today.month, today.year, true);\n }\n };\n MyDatePicker.prototype.onCellClicked = function (cell) {\n if (cell.cmo === this.prevMonthId) {\n this.onPrevMonth();\n }\n else if (cell.cmo === this.currMonthId) {\n if (this.opts.allowDeselectDate && this.utilService.isSameDate(cell.dateObj, this.selectedDate)) {\n this.clearDate();\n }\n else {\n this.selectDate(cell.dateObj, CalToggle.CloseByDateSel);\n }\n }\n else if (cell.cmo === this.nextMonthId) {\n this.onNextMonth();\n }\n this.resetMonthYearSelect();\n };\n MyDatePicker.prototype.onCellKeyDown = function (event, cell) {\n if ((event.keyCode === KeyCode.enter || event.keyCode === KeyCode.space) && !cell.disabled) {\n event.preventDefault();\n this.onCellClicked(cell);\n }\n };\n MyDatePicker.prototype.clearDate = function () {\n var date = { year: 0, month: 0, day: 0 };\n this.dateChanged.emit({ date: date, jsdate: null, formatted: \"\", epoc: 0 });\n this.onChangeCb(null);\n this.onTouchedCb();\n this.updateDateValue(date, true);\n };\n MyDatePicker.prototype.decreaseIncreaseDate = function (decrease) {\n var date = this.selectedDate;\n if (this.utilService.isInitializedDate(date)) {\n var d = this.getDate(date.year, date.month, date.day);\n d.setDate(decrease ? d.getDate() - 1 : d.getDate() + 1);\n date = { year: d.getFullYear(), month: d.getMonth() + 1, day: d.getDate() };\n }\n else {\n date = this.getToday();\n }\n this.selectDate(date, CalToggle.CloseByCalBtn);\n };\n MyDatePicker.prototype.selectDate = function (date, closeReason) {\n var dateModel = this.getDateModel(date);\n this.dateChanged.emit(dateModel);\n this.onChangeCb(dateModel);\n this.onTouchedCb();\n this.updateDateValue(date, false);\n if (this.showSelector) {\n this.calendarToggle.emit(closeReason);\n }\n this.showSelector = false;\n };\n MyDatePicker.prototype.updateDateValue = function (date, clear) {\n this.selectedDate = date;\n this.selectionDayTxt = clear ? \"\" : this.formatDate(date);\n this.inputFieldChanged.emit({ value: this.selectionDayTxt, dateFormat: this.opts.dateFormat, valid: !clear });\n this.invalidDate = false;\n };\n MyDatePicker.prototype.getDateModel = function (date) {\n return { date: date, jsdate: this.getDate(date.year, date.month, date.day), formatted: this.formatDate(date), epoc: Math.round(this.getTimeInMilliseconds(date) / 1000.0) };\n };\n MyDatePicker.prototype.preZero = function (val) {\n return parseInt(val) < 10 ? \"0\" + val : val;\n };\n MyDatePicker.prototype.formatDate = function (val) {\n var formatted = this.opts.dateFormat.replace(YYYY$1, val.year).replace(DD$1, this.preZero(val.day));\n return this.opts.dateFormat.indexOf(MMM$1) !== -1 ? formatted.replace(MMM$1, this.monthText(val.month)) : formatted.replace(MM$1, this.preZero(val.month));\n };\n MyDatePicker.prototype.monthText = function (m) {\n return this.opts.monthLabels[m];\n };\n MyDatePicker.prototype.monthStartIdx = function (y, m) {\n var d = new Date();\n d.setDate(1);\n d.setMonth(m - 1);\n d.setFullYear(y);\n var idx = d.getDay() + this.sundayIdx();\n return idx >= 7 ? idx - 7 : idx;\n };\n MyDatePicker.prototype.daysInMonth = function (m, y) {\n return new Date(y, m, 0).getDate();\n };\n MyDatePicker.prototype.daysInPrevMonth = function (m, y) {\n var d = this.getDate(y, m, 1);\n d.setMonth(d.getMonth() - 1);\n return this.daysInMonth(d.getMonth() + 1, d.getFullYear());\n };\n MyDatePicker.prototype.isCurrDay = function (d, m, y, cmo, today) {\n return d === today.day && m === today.month && y === today.year && cmo === this.currMonthId;\n };\n MyDatePicker.prototype.getToday = function () {\n var date = new Date();\n return { year: date.getFullYear(), month: date.getMonth() + 1, day: date.getDate() };\n };\n MyDatePicker.prototype.getTimeInMilliseconds = function (date) {\n return this.getDate(date.year, date.month, date.day).getTime();\n };\n MyDatePicker.prototype.getWeekday = function (date) {\n return this.weekDayOpts[this.utilService.getDayNumber(date)];\n };\n MyDatePicker.prototype.getDate = function (year, month, day) {\n return new Date(year, month - 1, day, 0, 0, 0, 0);\n };\n MyDatePicker.prototype.sundayIdx = function () {\n return this.dayIdx > 0 ? 7 - this.dayIdx : 0;\n };\n MyDatePicker.prototype.generateCalendar = function (m, y, notifyChange) {\n this.dates.length = 0;\n var today = this.getToday();\n var monthStart = this.monthStartIdx(y, m);\n var dInThisM = this.daysInMonth(m, y);\n var dInPrevM = this.daysInPrevMonth(m, y);\n var dayNbr = 1;\n var cmo = this.prevMonthId;\n for (var i = 1; i < 7; i++) {\n var week = [];\n if (i === 1) {\n var pm = dInPrevM - monthStart + 1;\n for (var j = pm; j <= dInPrevM; j++) {\n var date = { year: y, month: m - 1, day: j };\n week.push({ dateObj: date, cmo: cmo, currDay: this.isCurrDay(j, m, y, cmo, today),\n disabled: this.utilService.isDisabledDay(date, this.opts.disableUntil, this.opts.disableSince, this.opts.disableWeekends, this.opts.disableDays, this.opts.disableDateRanges, this.opts.enableDays),\n markedDate: this.utilService.isMarkedDate(date, this.opts.markDates, this.opts.markWeekends),\n highlight: this.utilService.isHighlightedDate(date, this.opts.sunHighlight, this.opts.satHighlight, this.opts.highlightDates) });\n }\n cmo = this.currMonthId;\n var daysLeft = 7 - week.length;\n for (var j = 0; j < daysLeft; j++) {\n var date = { year: y, month: m, day: dayNbr };\n week.push({ dateObj: date, cmo: cmo, currDay: this.isCurrDay(dayNbr, m, y, cmo, today),\n disabled: this.utilService.isDisabledDay(date, this.opts.disableUntil, this.opts.disableSince, this.opts.disableWeekends, this.opts.disableDays, this.opts.disableDateRanges, this.opts.enableDays),\n markedDate: this.utilService.isMarkedDate(date, this.opts.markDates, this.opts.markWeekends),\n highlight: this.utilService.isHighlightedDate(date, this.opts.sunHighlight, this.opts.satHighlight, this.opts.highlightDates) });\n dayNbr++;\n }\n }\n else {\n for (var j = 1; j < 8; j++) {\n if (dayNbr > dInThisM) {\n dayNbr = 1;\n cmo = this.nextMonthId;\n }\n var date = { year: y, month: cmo === this.currMonthId ? m : m + 1, day: dayNbr };\n week.push({ dateObj: date, cmo: cmo, currDay: this.isCurrDay(dayNbr, m, y, cmo, today),\n disabled: this.utilService.isDisabledDay(date, this.opts.disableUntil, this.opts.disableSince, this.opts.disableWeekends, this.opts.disableDays, this.opts.disableDateRanges, this.opts.enableDays),\n markedDate: this.utilService.isMarkedDate(date, this.opts.markDates, this.opts.markWeekends),\n highlight: this.utilService.isHighlightedDate(date, this.opts.sunHighlight, this.opts.satHighlight, this.opts.highlightDates) });\n dayNbr++;\n }\n }\n var weekNbr = this.opts.showWeekNumbers && this.opts.firstDayOfWeek === \"mo\" ? this.utilService.getWeekNumber(week[0].dateObj) : 0;\n this.dates.push({ week: week, weekNbr: weekNbr });\n }\n this.setHeaderBtnDisabledState(m, y);\n if (notifyChange) {\n this.calendarViewChanged.emit({ year: y, month: m, first: { number: 1, weekday: this.getWeekday({ year: y, month: m, day: 1 }) }, last: { number: dInThisM, weekday: this.getWeekday({ year: y, month: m, day: dInThisM }) } });\n }\n };\n MyDatePicker.prototype.parseSelectedDate = function (selDate) {\n var date = { day: 0, month: 0, year: 0 };\n if (typeof selDate === \"string\") {\n var sd = selDate;\n var df = this.opts.dateFormat;\n date.month = df.indexOf(MMM$1) !== -1\n ? this.utilService.parseDatePartMonthName(df, sd, MMM$1, this.opts.monthLabels)\n : this.utilService.parseDatePartNumber(df, sd, MM$1);\n if (df.indexOf(MMM$1) !== -1 && this.opts.monthLabels[date.month]) {\n df = this.utilService.changeDateFormat(df, this.opts.monthLabels[date.month].length);\n }\n date.day = this.utilService.parseDatePartNumber(df, sd, DD$1);\n date.year = this.utilService.parseDatePartNumber(df, sd, YYYY$1);\n }\n else if (typeof selDate === \"object\") {\n date = selDate;\n }\n this.selectionDayTxt = this.formatDate(date);\n return date;\n };\n MyDatePicker.prototype.jsDateToMyDate = function (date) {\n return { year: date.getFullYear(), month: date.getMonth() + 1, day: date.getDate() };\n };\n MyDatePicker.prototype.parseSelectedMonth = function (ms) {\n return this.utilService.parseDefaultMonth(ms);\n };\n MyDatePicker.prototype.setHeaderBtnDisabledState = function (m, y) {\n var dpm = false;\n var dpy = false;\n var dnm = false;\n var dny = false;\n if (this.opts.disableHeaderButtons) {\n dpm = this.utilService.isMonthDisabledByDisableUntil({ year: m === 1 ? y - 1 : y, month: m === 1 ? 12 : m - 1, day: this.daysInMonth(m === 1 ? 12 : m - 1, m === 1 ? y - 1 : y) }, this.opts.disableUntil);\n dpy = this.utilService.isMonthDisabledByDisableUntil({ year: y - 1, month: m, day: this.daysInMonth(m, y - 1) }, this.opts.disableUntil);\n dnm = this.utilService.isMonthDisabledByDisableSince({ year: m === 12 ? y + 1 : y, month: m === 12 ? 1 : m + 1, day: 1 }, this.opts.disableSince);\n dny = this.utilService.isMonthDisabledByDisableSince({ year: y + 1, month: m, day: 1 }, this.opts.disableSince);\n }\n this.prevMonthDisabled = m === 1 && y === this.opts.minYear || dpm;\n this.prevYearDisabled = y - 1 < this.opts.minYear || dpy;\n this.nextMonthDisabled = m === 12 && y === this.opts.maxYear || dnm;\n this.nextYearDisabled = y + 1 > this.opts.maxYear || dny;\n };\n MyDatePicker.decorators = [\n { type: _angular_core.Component, args: [{\n selector: \"my-date-picker\",\n exportAs: \"mydatepicker\",\n styles: [\".mydp .headertodaybtn,.mydp .monthcell,.mydp .selection,.mydp .weekdaytitle{overflow:hidden;white-space:nowrap}.mydp{line-height:1.1;display:inline-block;position:relative}.mydp *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:Arial,Helvetica,sans-serif;padding:0;margin:0}.mydp,.mydp .headertodaybtn,.mydp .selection,.mydp .selectiongroup,.mydp .selector{border-radius:4px}.mydp .header{border-radius:4px 4px 0 0}.mydp .caltable,.mydp .monthtable,.mydp .yeartable{border-radius:0 0 4px 4px}.mydp .caltable tbody tr:nth-child(6) td:first-child,.mydp .monthtable tbody tr:nth-child(4) td:first-child,.mydp .yeartable tbody tr:nth-child(7) td:first-child{border-bottom-left-radius:4px}.mydp .caltable tbody tr:nth-child(6) td:last-child,.mydp .monthtable tbody tr:nth-child(4) td:last-child,.mydp .yeartable tbody tr:nth-child(7) td:last-child{border-bottom-right-radius:4px}.mydp .btnpicker{border-radius:0 4px 4px 0}.mydp .btnleftborderradius{border-top-left-radius:4px;border-bottom-left-radius:4px}.mydp .selector{margin-top:2px;margin-left:-1px;position:absolute;padding:0;border:1px solid #CCC;z-index:100;animation:selectorfadein .1s}.mydp .selector:focus{border:1px solid #ADD8E6;outline:0}@keyframes selectorfadein{from{opacity:0}to{opacity:1}}.mydp .selectorarrow{background:#FAFAFA;margin-top:12px;padding:0}.mydp .selectorarrow:after,.mydp .selectorarrow:before{bottom:100%;border:solid transparent;content:\\\" \\\";height:0;width:0;position:absolute}.mydp .selectorarrow:after{border-color:rgba(250,250,250,0);border-bottom-color:#FAFAFA;border-width:10px;margin-left:-10px}.mydp .selectorarrow:before{border-color:rgba(204,204,204,0);border-bottom-color:#CCC;border-width:11px;margin-left:-11px}.mydp .selectorarrow:focus:before{border-bottom-color:#ADD8E6}.mydp .selectorarrowleft:after,.mydp .selectorarrowleft:before{left:24px}.mydp .selectorarrowright:after,.mydp .selectorarrowright:before{left:86%}.mydp .alignselectorright{right:-1px}.mydp .selectiongroup{position:relative;display:table;border:none;border-spacing:0;background-color:#FFF}.mydp .selection{width:100%;outline:0;background-color:#FFF;display:table-cell;position:absolute;text-overflow:ellipsis;padding-left:6px;border:none;color:#555}.mydp .invaliddate{background-color:#F1DEDE}.mydp ::-ms-clear{display:none}.mydp .headerbtncell,.mydp .selbtngroup{display:table-cell;vertical-align:middle}.mydp .selbtngroup{position:relative;white-space:nowrap;width:1%;font-size:0}.mydp .btnclear,.mydp .btndecrease,.mydp .btnincrease,.mydp .btnpicker{height:100%;width:26px;border:none;padding:0;outline:0;font:inherit;-moz-user-select:none}.mydp .btnleftborder{border-left:1px solid #CCC}.mydp .btnclearenabled,.mydp .btndecreaseenabled,.mydp .btnincreaseenabled,.mydp .btnpickerenabled,.mydp .headerbtnenabled,.mydp .headertodaybtnenabled,.mydp .yearchangebtnenabled{cursor:pointer}.mydp .btncleardisabled,.mydp .btndecreasedisabled,.mydp .btnincreasedisabled,.mydp .btnpickerdisabled,.mydp .headerbtndisabled,.mydp .headertodaybtndisabled,.mydp .selectiondisabled,.mydp .yearchangebtndisabled{cursor:not-allowed;opacity:.65}.mydp .selectiondisabled{background-color:#EEE}.mydp .btnclear,.mydp .btndecrease,.mydp .btnincrease,.mydp .btnpicker,.mydp .headertodaybtn{background:#FFF}.mydp .header{width:100%;height:30px;background-color:#FAFAFA}.mydp .header td{vertical-align:middle;border:none;line-height:0}.mydp .header td:nth-child(1){padding-left:4px}.mydp .header td:nth-child(2){text-align:center}.mydp .header td:nth-child(3){padding-right:4px}.mydp .caltable,.mydp .monthtable,.mydp .yeartable{table-layout:fixed;width:100%;height:calc(100% - 30px);background-color:#FFF;font-size:14px}.mydp .caltable,.mydp .daycell,.mydp .monthcell,.mydp .monthtable,.mydp .weekdaytitle,.mydp .yearcell,.mydp .yeartable{border-collapse:collapse;color:#036;line-height:1.1}.mydp .daycell,.mydp .monthcell,.mydp .weekdaytitle,.mydp .yearcell{padding:4px;text-align:center}.mydp .weekdaytitle{background-color:#DDD;font-size:11px;font-weight:400;vertical-align:middle;max-width:36px}.mydp .weekdaytitleweeknbr{width:20px;border-right:1px solid #BBB}.mydp .monthcell{background-color:#FAFAFA}.mydp .yearcell{background-color:#FAFAFA;width:20%}.mydp .daycell .datevalue{background-color:inherit;vertical-align:middle}.mydp .daycell .datevalue span{vertical-align:middle}.mydp .daycellweeknbr{font-size:10px;border-right:1px solid #CCC;cursor:default;color:#000}.mydp .inlinedp{position:relative;margin-top:-1px}.mydp .nextmonth,.mydp .prevmonth{color:#CCC}.mydp .disabled{cursor:default!important;color:#CCC!important;background:#FBEFEF!important}.mydp .highlight{color:#C30000}.mydp .dimday{opacity:.5}.mydp .currmonth{background-color:#F6F6F6;font-weight:400}.mydp .markdate{position:absolute;width:4px;height:4px;border-radius:4px}.mydp .markcurrday,.mydp .markcurrmonth,.mydp .markcurryear{text-decoration:underline}.mydp .selectedday .datevalue,.mydp .selectedmonth .monthvalue,.mydp .selectedyear .yearvalue{border:none;background-color:#8EBFFF;border-radius:2px}.mydp .headerbtncell{background-color:#FAFAFA}.mydp .yearchangebtncell{text-align:center;background-color:#FAFAFA}.mydp .headerbtn,.mydp .headerlabelbtn,.mydp .yearchangebtn{background:#FAFAFA;border:none;height:22px}.mydp .headerbtn{width:16px}.mydp .headerlabelbtn{font-size:14px;outline:0;cursor:default}.mydp,.mydp .headertodaybtn{border:1px solid #CCC}.mydp .btnclear,.mydp .btndecrease,.mydp .btnincrease,.mydp .btnpicker,.mydp .headerbtn,.mydp .headermonthtxt,.mydp .headertodaybtn,.mydp .headeryeartxt,.mydp .yearchangebtn{color:#000}.mydp .headertodaybtn{padding:0 4px;font-size:11px;height:22px;min-width:60px;max-width:84px}.mydp button::-moz-focus-inner{border:0}.mydp .headermonthtxt,.mydp .headeryeartxt{text-align:center;display:table-cell;vertical-align:middle;font-size:14px;height:26px;width:40px;max-width:40px;overflow:hidden;white-space:nowrap}.mydp .btnclear:focus,.mydp .btndecrease:focus,.mydp .btnincrease:focus,.mydp .btnpicker:focus,.mydp .headertodaybtn:focus{background:#ADD8E6}.mydp .headerbtn:focus,.mydp .monthlabel:focus,.mydp .yearchangebtn:focus,.mydp .yearlabel:focus{color:#ADD8E6;outline:0}.mydp .daycell:focus,.mydp .monthcell:focus,.mydp .yearcell:focus{outline:#CCC solid 1px}.mydp .icon-mydpcalendar,.mydp .icon-mydpremove{font-size:16px}.mydp .icon-mydpdown,.mydp .icon-mydpleft,.mydp .icon-mydpright,.mydp .icon-mydpup{color:#222;font-size:20px}.mydp .btndecrease .icon-mydpleft,.mydp .btnincrease .icon-mydpright{font-size:16px}.mydp .icon-mydptoday{color:#222;font-size:11px}.mydp table{display:table;border-spacing:0}.mydp table td{padding:0}.mydp table,.mydp td,.mydp th{border:none}.mydp .btnclearenabled:hover,.mydp .btndecreaseenabled:hover,.mydp .btnincreaseenabled:hover,.mydp .btnpickerenabled:hover,.mydp .headertodaybtnenabled:hover{background-color:#E6E6E6}.mydp .tablesingleday:hover,.mydp .tablesinglemonth:hover,.mydp .tablesingleyear:hover{background-color:#DDD}.mydp .daycell,.mydp .inputnoteditable,.mydp .monthcell,.mydp .monthlabel,.mydp .yearcell,.mydp .yearlabel{cursor:pointer}.mydp .headerbtnenabled:hover,.mydp .monthlabel:hover,.mydp .yearchangebtnenabled:hover,.mydp .yearlabel:hover{color:#777}@font-face{font-family:mydatepicker;src:url(data:application/octet-stream;base64,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) format('truetype');font-weight:400;font-style:normal}.mydp .mydpicon{font-family:mydatepicker;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.mydp .icon-mydpright:before{content:\\\"\\\\e800\\\"}.mydp .icon-mydpleft:before{content:\\\"\\\\e801\\\"}.mydp .icon-mydptoday:before{content:\\\"\\\\e802\\\"}.mydp .icon-mydpcalendar:before{content:\\\"\\\\e803\\\"}.mydp .icon-mydpup:before{content:\\\"\\\\e804\\\"}.mydp .icon-mydpdown:before{content:\\\"\\\\e805\\\"}.mydp .icon-mydpremove:before{content:\\\"\\\\e806\\\"}\"],\n template: \"
#{{d}}
{{w.weekNbr}}
{{d.dateObj.day}}
{{m.name}}
{{y.year}}
\",\n providers: [LocaleService, UtilService, MYDP_VALUE_ACCESSOR],\n encapsulation: _angular_core.ViewEncapsulation.None\n },] },\n ];\n MyDatePicker.ctorParameters = [\n { type: _angular_core.ElementRef, },\n { type: _angular_core.Renderer, },\n { type: _angular_core.ChangeDetectorRef, },\n { type: LocaleService, },\n { type: UtilService, },\n ];\n MyDatePicker.propDecorators = {\n 'options': [{ type: _angular_core.Input },],\n 'locale': [{ type: _angular_core.Input },],\n 'defaultMonth': [{ type: _angular_core.Input },],\n 'selDate': [{ type: _angular_core.Input },],\n 'placeholder': [{ type: _angular_core.Input },],\n 'selector': [{ type: _angular_core.Input },],\n 'disabled': [{ type: _angular_core.Input },],\n 'dateChanged': [{ type: _angular_core.Output },],\n 'inputFieldChanged': [{ type: _angular_core.Output },],\n 'calendarViewChanged': [{ type: _angular_core.Output },],\n 'calendarToggle': [{ type: _angular_core.Output },],\n 'inputFocusBlur': [{ type: _angular_core.Output },],\n 'selectorEl': [{ type: _angular_core.ViewChild, args: [\"selectorEl\",] },],\n };\n return MyDatePicker;\n}());\n\nvar MyDatePickerModule = (function () {\n function MyDatePickerModule() {\n }\n MyDatePickerModule.decorators = [\n { type: _angular_core.NgModule, args: [{\n imports: [_angular_common.CommonModule, _angular_forms.FormsModule],\n declarations: [MyDatePicker, FocusDirective],\n exports: [MyDatePicker, FocusDirective]\n },] },\n ];\n MyDatePickerModule.ctorParameters = [];\n return MyDatePickerModule;\n}());\n\nexports.LocaleService = LocaleService;\nexports.UtilService = UtilService;\nexports.FocusDirective = FocusDirective;\nexports.MYDP_VALUE_ACCESSOR = MYDP_VALUE_ACCESSOR;\nexports.MyDatePicker = MyDatePicker;\nexports.MyDatePickerModule = MyDatePickerModule;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=mydatepicker.umd.js.map\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/mydatepicker/bundles/mydatepicker.umd.js\n ** module id = 282\n ** module chunks = 0\n **/","import { Component, OnInit, OnDestroy, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\nimport { MdSidenav } from '@angular/material';\r\nimport { AuthService, LoggedInUser, Permission, Role } from './auth/auth.service';\r\nimport { ConversionHubService } from './sites/conversions/_services/conversion-hub.service';\r\nimport { CloudViewHubService } from './cloudview/cloudview-hub.service';\r\nimport { ToastsManager } from 'ng2-toastr/ng2-toastr';\r\nimport { AppInsightsService } from './azure/app-insights.service';\r\n\r\nimport '@angular/material/prebuilt-themes/indigo-pink.css';\r\nimport '../../public/css/styles.css';\r\nimport '../../public/css/prism.css'; // required at root for highlighting to work\r\nimport 'dragula/dist/dragula.css';\r\n\r\n@Component({\r\n\tselector: 'upgrade-services',\r\n\ttemplate: require('./app.component.html'),\r\n\tproviders: [ConversionHubService, CloudViewHubService, AppInsightsService]\r\n})\r\nexport class AppComponent implements OnInit, OnDestroy {\r\n\tprivate loginSubscription: any;\r\n\tprivate logoutSubscription: any;\r\n\tprivate user: LoggedInUser;\r\n\tprivate navMenuOpen: boolean;\r\n\tprivate debugSignalRHub: boolean = true;\r\n\r\n\t@ViewChild(MdSidenav)\r\n\tprivate sideNav: MdSidenav;\r\n\r\n\tRole: any = Role;\r\n\tPermission:any = Permission;\r\n\r\n\tconstructor(\r\n\t\tprivate router: Router,\r\n\t\tprivate auth: AuthService,\r\n\t\tprivate conversionHubService: ConversionHubService,\r\n\t\tprivate cloudViewHubService: CloudViewHubService,\r\n\t\tprivate toastr: ToastsManager, \r\n\t\tpublic appInsightsService: AppInsightsService,\r\n\t\tprivate vRef: ViewContainerRef) { \r\n\t\t\tthis.toastr.setRootViewContainerRef(vRef);\r\n\t\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.router.events.subscribe((val) => {\r\n\t\t\tif (val instanceof NavigationEnd) {\r\n\t\t\t\tthis.closeSideNav();\r\n\t\t\t}\r\n\r\n\t\t\tthis.appInsightsService.logPageView();\r\n\t\t});\r\n\r\n\t\tthis.loginSubscription = this.auth.onLoggedInEmitter()\r\n\t\t\t.subscribe((user: any) => {\r\n\t\t\t\tthis.user = user;\r\n\t\t\t});\r\n\r\n\t\tthis.logoutSubscription = this.auth.onLoggedOutEmitter()\r\n\t\t\t.subscribe((user: any) => {\r\n\t\t\t\tthis.user = null;\r\n\t\t\t});\r\n\r\n\t\tthis.subscribeToConversionHub(this.debugSignalRHub);\t\t\r\n\t}\r\n\r\n\topenNavMenu() {\r\n\t\tthis.navMenuOpen = true;\r\n\t}\r\n\r\n\tcloseNavMenu() {\r\n\t\tthis.navMenuOpen = false;\r\n\t}\r\n\r\n\taccount() {\r\n\t\tthis.closeNavMenu();\r\n\t\tthis.router.navigate(['/account']);\r\n\t}\r\n\r\n\tlogout() {\r\n\t\tthis.closeNavMenu();\r\n\t\tthis.auth.logout();\r\n\t}\r\n\r\n\tcloseSideNav() {\r\n\t\tthis.sideNav.close();\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tthis.loginSubscription.unsubscribe();\r\n\t\tthis.logoutSubscription.unsubscribe();\r\n\t}\r\n\r\n\tsubscribeToConversionHub(debug: boolean) {\r\n\t\t// load the connection so it is ready before conversions component\r\n\t\ttry {\r\n\t\t\tthis.conversionHubService.start(debug).subscribe(null, error => console.log('Error on init: ' + error));\r\n\t\t} catch (err) {\r\n\t\t\tconsole.log(\"Unable to connect to conversion hub\");\r\n\t\t}\r\n\t}\r\n\r\n\tbrowserNotSupportedMessage()\r\n\t{\r\n\t\tvar isIE = false; \r\n\t\tvar ua = window.navigator.userAgent;\r\n\r\n\t\tvar msie = ua.indexOf('MSIE ');\r\n\t\tif (msie > 0) {\r\n\t\t\t// IE 10 or older \r\n\t\t\tisIE = true; \r\n\t\t}\r\n\r\n\t\tvar trident = ua.indexOf('Trident/');\r\n\t\tif (trident > 0) {\r\n\t\t\t// IE 11 \r\n\t\t\tisIE = true; \r\n\t\t}\r\n\r\n\t\tvar edge = ua.indexOf('Edge/');\r\n\t\tif (edge > 0) {\r\n\t\t\t// Edge (IE 12+) \r\n\t\t\tisIE = true; \r\n\t\t}\r\n\t\t\r\n\t\tif(isIE)\r\n\t\t{\r\n\t\t\treturn \"Your browser is not supported. To access this site, please use Google Chrome.\"; \r\n\t\t} \r\n\t}\r\n\t\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/app.component.ts\n **/","import { Injectable, EventEmitter } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Headers, Http, RequestOptions, Response } from '@angular/http';\r\nimport { Location } from '@angular/common';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { tokenNotExpired, JwtHelper } from 'angular2-jwt';\r\nimport { ConfigService } from '../shared/services/config.service';\r\n\r\nimport 'rxjs/add/operator/map';\r\nimport { tick } from '../../../node_modules/@angular/core/testing';\r\n\r\nexport class CredentialsModel {\r\n username: string;\r\n password: string;\r\n}\r\n\r\n@Injectable()\r\nexport class AuthService {\r\n private serviceBase: string = new ConfigService().getApiHost();\r\n private tokenEndpoint = this.serviceBase + '/connect/token';\r\n private resource = this.serviceBase;\r\n private scope = 'offline_access openid';\r\n private user: LoggedInUser;\r\n private onLogin = new EventEmitter();\r\n private onLogout = new EventEmitter();\r\n private onUnauthorized = new EventEmitter();\r\n public redirectUrl: string;\r\n jwtHelper: JwtHelper = new JwtHelper();\r\n time: number = 60;\r\n interval: any;\r\n constructor(private http: Http, private location: Location, private router: Router) { }\r\n\r\n login(credentials: CredentialsModel) {\r\n // credentials need to be encoded as it may create an invalid query string if an & is used\r\n var username = encodeURIComponent(credentials.username);\r\n var password = encodeURIComponent(credentials.password);\r\n var scope = this.scope;\r\n var resource = this.resource;\r\n var creds = `username=${username}&password=${password}&grant_type=password&scope=${scope}&resource=${resource}`;\r\n\r\n var headers = new Headers();\r\n headers.append('Content-Type', 'application/x-www-form-urlencoded');\r\n\r\n return this.http.post(this.tokenEndpoint, creds, {\r\n headers: headers\r\n }).map((res: any) => res.json());\r\n }\r\n\r\n /**\r\n * logout user by removing access token\r\n */\r\n logout() {\r\n localStorage.removeItem('access_token');\r\n this.onLogout.emit(true);\r\n this.router.navigate(['/login']);\r\n }\r\n\r\n\r\n unauthorized(response: Response) {\r\n switch (response.status) {\r\n case 401:\r\n // token is invalid, log out user\r\n this.logout();\r\n break;\r\n case 402:\r\n // user is forbidden to access this content redirect\r\n this.router.navigate['/home'];\r\n break;\r\n }\r\n }\r\n\r\n loggedIn(): boolean {\r\n if (tokenNotExpired('access_token', localStorage.getItem('access_token'))) {\r\n this.user = this.setUser();\r\n this.onLogin.emit(this.user);\r\n var token = localStorage.getItem('access_token');\r\n var exp = this.jwtHelper.getTokenExpirationDate(token).valueOf();\r\n var curr = Date.now().valueOf();\r\n var diff = exp - curr;\r\n var timer = Observable.timer(0, diff);\r\n\r\n timer.subscribe(tick => {\r\n\r\n var exp = this.jwtHelper.getTokenExpirationDate(token).valueOf();\r\n var curr = Date.now().valueOf();\r\n if (curr > exp) {\r\n window.location.reload();\r\n }\r\n });\r\n\r\n\r\n\r\n return true;\r\n\r\n }\r\n this.onLogout.emit(true);\r\n this.onUnauthorized.emit(true);\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * Save the JWT in local storage\r\n * @param jwt \r\n */\r\n saveJwt(jwt: any) {\r\n if (jwt) {\r\n localStorage.setItem('access_token', jwt.access_token);\r\n this.loggedIn();\r\n this.location.replaceState('/'); // clears browser history so they can't navigate \r\n if (this.redirectUrl) {\r\n this.router.navigateByUrl(this.redirectUrl);\r\n this.redirectUrl == null;\r\n } else {\r\n this.router.navigateByUrl('/home'); // navigate to home component\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Get the currently logged in user\r\n */\r\n getUser(): LoggedInUser {\r\n return this.user;\r\n }\r\n\r\n /**\r\n * Check if user has this role\r\n * @param role \r\n */\r\n hasRole(role: Role): boolean {\r\n let user = this.user;\r\n\r\n if (user && user.roles) {\r\n return user.roles.indexOf(role) > -1\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Check if user has this permission\r\n * @param permission \r\n */\r\n hasPermission(permission: Permission) {\r\n let user = this.user;\r\n\r\n if (user && user.permissions) {\r\n return user.permissions.indexOf(permission) > -1;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Check if user has all these permissions\r\n * @param permissions \r\n */\r\n hasPermissions(permissions: Permission[]): boolean {\r\n let user = this.user;\r\n let hasPermissions = false;\r\n\r\n permissions.forEach((permission: Permission) => {\r\n if (permission == Permission[permission]) {\r\n hasPermissions = true;\r\n } else {\r\n hasPermissions = false;\r\n }\r\n });\r\n return hasPermissions;\r\n }\r\n\r\n onLoggedInEmitter() {\r\n return this.onLogin;\r\n }\r\n\r\n onLoggedOutEmitter() {\r\n return this.onLogout;\r\n }\r\n\r\n onUnauthorizedEmitter() {\r\n return this.onUnauthorized;\r\n }\r\n\r\n createRestrictedSitePermissionClaimValue(siteId: number, value: string): string {\r\n return `site.${siteId}.restricted.${value}`;\r\n }\r\n\r\n /**\r\n * Set the currently logged in user\r\n */\r\n private setUser(): LoggedInUser {\r\n var user: LoggedInUser;\r\n var jwtHelper: JwtHelper = new JwtHelper();\r\n var token = localStorage.getItem('access_token');\r\n\r\n if (token) {\r\n user = jwtHelper.decodeToken(token);\r\n user.sites = this.setUserSites(user.sites);\r\n user.roles = this.setUserRoles(user.roles);\r\n user.permissions = this.setUserPermissions(user.permissions);\r\n } else {\r\n this.onLogout.emit(true);\r\n this.onUnauthorized.emit(true);\r\n }\r\n return user;\r\n }\r\n\r\n /**\r\n * Parse the user sites json string and return array\r\n * @param userSites \r\n */\r\n private setUserSites(sites: any): any[] {\r\n try {\r\n return JSON.parse(sites);\r\n } catch (err) {\r\n return [];\r\n }\r\n }\r\n\r\n /**\r\n * Parse the user roles json string and return array\r\n * @param userRoles \r\n */\r\n private setUserRoles(roles: any): any[] {\r\n try {\r\n return JSON.parse(roles)\r\n } catch (err) {\r\n return [];\r\n }\r\n }\r\n\r\n /**\r\n * Parse the user permissions json string and return array\r\n * @param userPermissions \r\n */\r\n private setUserPermissions(permissions: any): any[] {\r\n try {\r\n return JSON.parse(permissions);\r\n } catch (err) {\r\n return [];\r\n }\r\n }\r\n}\r\n\r\nexport interface LoggedInUser {\r\n emailAddress: string;\r\n fullname?: string;\r\n company?: string;\r\n admin?: string;\r\n epicorEmployee?: string;\r\n partner?: string;\r\n roles: any;\r\n sites?: any;\r\n permissions?: any;\r\n}\r\n\r\nexport enum Role {\r\n Administrator = \"Administrator\",\r\n EpicorEmployee = \"EpicorEmployee\",\r\n Partner = \"Partner\",\r\n EndUser = \"EndUser\"\r\n}\r\n\r\nexport enum Permission {\r\n AnalyserReportAdmin = \"analyserreport.admin\",\r\n UserProvisionCreate = \"user.provision.create\",\r\n UserRead = \"user.read\",\r\n UserCreate = \"user.create\",\r\n UserAdmin = \"user.admin\",\r\n SiteCreate = \"site.create\",\r\n SiteEdit = \"site.edit\",\r\n SiteAdmin = \"site.admin\",\r\n RestrictedSiteAdmin = \"site.restricted.admin\",\r\n ConversionAdmin = \"conversion.admin\",\r\n ConversionMonitorConnect = \"conversion.monitor.connect\",\r\n ConversionMonitor = \"conversion.monitor\",\r\n ConversionScheduleEdit = \"conversion.schedule.edit\",\r\n CloudViewDashboardView = \"cloudview.dashboard.view\",\r\n CloudViewAdmin = \"cloudview.admin\",\r\n CloudViewInstanceView = \"cloudview.instance.view\",\r\n CloudTransferTool = \"cloudtransfertool\",\r\n CloudTransferToolEdit = \"cloudtransfertool.edit\",\r\n CloudTooling = \"cloudtooling\",\r\n ApplicationCreateVersion = \"application.create.version\",\r\n ReleaseUpdate = \"release.update\",\r\n DatabaseVerification=\"database.verification\",\r\n RunGoLiveReport=\"run.go.live.report\",\r\n ConfigurationAdmin = \"configuration.admin\"\r\n}\r\n\r\nexport enum Environments {\r\n Production = \"Production\",\r\n Staging = \"Staging\"\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/auth/auth.service.ts\n **/","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class ConfigService {\r\n private _apiURI : string;\r\n private _localhostAPIURI: string = 'http://localhost:5000/api/';\r\n private _stagingAPIURI: string = 'https://cloudfactoryapi-staging.azurewebsites.net/api/';\r\n private _productionAPIURI: string = 'https://cloudfactoryapi.azurewebsites.net/api/';\r\n\r\n constructor() { \r\n this._apiURI = this.setAPIURI(process.env.ENV);\r\n }\r\n\r\n private setAPIURI(env:string):string {\r\n if (env === 'production') {\r\n return this._productionAPIURI; \r\n } else if (env == 'staging') {\r\n return this._stagingAPIURI; \r\n } else {\r\n return this._localhostAPIURI;\r\n }\r\n }\r\n\r\n getApiURI() {\r\n return this._apiURI;\r\n }\r\n\r\n getApiHost() {\r\n return this._apiURI.replace('/api/','');\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/shared/services/config.service.ts\n **/","import { Injectable } from '@angular/core';\r\nimport { Http } from '@angular/http';\r\n\r\nimport 'rxjs/add/operator/toPromise';\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { Subject } from \"rxjs/Subject\";\r\n\r\nimport { ConfigService } from '../../../shared/services/config.service';\r\n\r\nimport { FeedSignalR, ConversionHubProxy, ConversionHubClient, ConversionHubServer, SignalRConnectionStatus, Conversion, ConversionPassLog } from '../../../shared/interfaces';\r\n\r\n@Injectable()\r\nexport class ConversionHubService {\r\n\r\n _baseUrl:string;\r\n currentState = SignalRConnectionStatus.Disconnected;\r\n connectionState: Observable;\r\n\r\n setConnectionId: Observable;\r\n addPassLogEntry: Observable;\r\n addTasksEntry: Observable;\r\n updateTaskEntry: Observable;\r\n addConversionPassEntry: Observable;\r\n updateConversionPassEntry: Observable;\r\n addConversionPassIncidentEntry: Observable;\r\n\r\n private connectionStateSubject = new Subject();\r\n \r\n //TODO(dale): subjects should have type specified instead of any\r\n private setConnectionIdSubject = new Subject();\r\n private addPassLogEntrydSubject = new Subject();\r\n private addTasksEntrySubject = new Subject();\r\n private updateTaskEntrySubject = new Subject();\r\n private addConversionPassEntrySubject = new Subject();\r\n private updateConversionPassEntrySubject = new Subject();\r\n private addConversionPassIncidentEntrySubject = new Subject();\r\n\r\n private server: ConversionHubServer;\r\n\r\n constructor(private http: Http) {\r\n this.connectionState = this.connectionStateSubject.asObservable();\r\n\r\n this.setConnectionId = this.setConnectionIdSubject.asObservable();\r\n this.addPassLogEntry = this.addPassLogEntrydSubject.asObservable();\r\n this.addTasksEntry = this.addTasksEntrySubject.asObservable();\r\n this.updateTaskEntry = this.updateTaskEntrySubject.asObservable();\r\n this.addConversionPassEntry = this.addConversionPassEntrySubject.asObservable();\r\n this.updateConversionPassEntry = this.updateConversionPassEntrySubject.asObservable();\r\n this.addConversionPassIncidentEntry = this.addConversionPassIncidentEntrySubject.asObservable();\r\n\r\n this._baseUrl = new ConfigService().getApiHost();\r\n }\r\n\r\n start(debug: boolean): Observable { \r\n $.connection.hub.logging = debug;\r\n $.connection.hub.url = `${this._baseUrl}/signalr`;\r\n\r\n let connection = $.connection;\r\n \r\n // reference signalR hub named 'conversionbroadcaster'\r\n let conversionHub = connection.conversionBroadcaster;\r\n this.server = conversionHub.server;\r\n\r\n // setConnectionId method called by server\r\n conversionHub.client.setConnectionId = (id:string) => this.onSetConnectionId(id);\r\n\r\n // addPassLogEntry method called by server\r\n conversionHub.client.addPassLogEntry = (log:any) => this.onAddPassLogEntry(log);\r\n\r\n // addTasksEntry method called by server\r\n conversionHub.client.addTasksEntry = (tasks: any) => this.onAddTasksEntry(tasks);\r\n\r\n // updateTaskEntry method called by server\r\n conversionHub.client.updateTaskEntry = (task: any) => this.onUpdateTaskEntry(task);\r\n\r\n // addConversionPassEntry method called by server\r\n conversionHub.client.addConversionPassEntry = (conversionPass: any) => this.onAddConversionPassEntry(conversionPass);\r\n\r\n // updateConveresionPassEntry method called by server\r\n conversionHub.client.updateConversionPassEntry = (conversionPass: any) => this.onUpdateConversionPassEntry(conversionPass);\r\n\r\n // addConversionPassIncidentEntry method called by server\r\n conversionHub.client.addConversionPassIncidentEntry = (incident: any) => this.onAddConversionPassIncidentEntry(incident);\r\n\r\n // start the connection\r\n $.connection.hub.start()\r\n .done(response => this.setConnectionState(SignalRConnectionStatus.Connected))\r\n .fail(error => this.connectionStateSubject.error(error));\r\n\r\n return this.connectionState;\r\n }\r\n\r\n private setConnectionState(connectionState: SignalRConnectionStatus) {\r\n console.log('connection state changed to: ' + connectionState);\r\n this.currentState = connectionState;\r\n this.connectionStateSubject.next(connectionState);\r\n }\r\n\r\n // Client side methods\r\n private onSetConnectionId(id: string) {\r\n this.setConnectionIdSubject.next(id);\r\n }\r\n\r\n private onAddPassLogEntry(log: ConversionPassLog) {\r\n this.addPassLogEntrydSubject.next(log);\r\n }\r\n\r\n private onAddTasksEntry(tasks: any) {\r\n this.addTasksEntrySubject.next(tasks);\r\n }\r\n\r\n private onUpdateTaskEntry(task: any) {\r\n this.updateTaskEntrySubject.next(task);\r\n }\r\n\r\n private onAddConversionPassEntry(conversionPass: any) {\r\n this.addConversionPassEntrySubject.next(conversionPass);\r\n }\r\n\r\n private onUpdateConversionPassEntry(conversionPass: any) {\r\n this.updateConversionPassEntrySubject.next(conversionPass);\r\n }\r\n\r\n private onAddConversionPassIncidentEntry(incident: any) {\r\n this.addConversionPassIncidentEntrySubject.next(incident);\r\n }\r\n\r\n // Server side methods\r\n public subscribeToFeed(conversionId: string) {\r\n this.server.subscribe(conversionId);\r\n }\r\n\r\n public unsubscribeFromFeed(conversionId: string) {\r\n this.server.unsubscribe(conversionId);\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/conversions/_services/conversion-hub.service.ts\n **/","/* SignalR related interfaces */\r\nexport interface FeedSignalR extends SignalR {\r\n conversionBroadcaster: ConversionHubProxy\r\n}\r\n\r\nexport interface ConversionHubProxy {\r\n client: ConversionHubClient;\r\n server: ConversionHubServer;\r\n}\r\n\r\nexport interface ConversionHubClient {\r\n setConnectionId: (id: string) => void;\r\n addPassLogEntry: (log: ConversionPassLog) => void;\r\n addChatMessage: () => void;\r\n addTasksEntry: (tasks: any) => void;\r\n updateTaskEntry: (task: any) => void;\r\n addConversionPassEntry: (conversionPass: any) => void;\r\n updateConversionPassEntry: (conversionPass: any) => void;\r\n addConversionPassIncidentEntry: (incident: any) => void;\r\n}\r\n\r\nexport interface ConversionHubServer {\r\n subscribe(conversionId: string): void;\r\n unsubscribe(conversionId: string): void;\r\n}\r\n\r\nexport enum SignalRConnectionStatus {\r\n Connected = 1,\r\n Disconnected = 2,\r\n Error = 3\r\n}\r\n\r\n/* ConversionFeed related interfaces */\r\nexport interface Conversion {\r\n id: string;\r\n configuration: ConversionConfiguration;\r\n}\r\n\r\nexport enum ConversionStatus {\r\n NotStarted = 0,\r\n Started = 1,\r\n InProgress = 2,\r\n Warning = 3,\r\n Error = 4,\r\n Completed = 5,\r\n Stopped = 6\r\n}\r\n\r\nexport interface ConversionConfiguration {\r\n siteId: number;\r\n}\r\n\r\nexport interface ConversionPass {\r\n\r\n}\r\n\r\nexport interface ConversionPassLog {\r\n id: string;\r\n conversionPassId: any;\r\n logs: any[];\r\n}\r\n\r\nexport enum ConversionPassLogType\r\n{\r\n Information = 0,\r\n Warning = 1,\r\n Error = 2,\r\n Completed = 3,\r\n Incident = 4\r\n}\r\n\r\nexport enum DocumentState\r\n{\r\n Undefined = 0,\r\n Archived = 1,\r\n Unarchived = 2,\r\n Deleted = 3\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/shared/interfaces.ts\n **/","import { Injectable } from '@angular/core';\r\nimport { Http } from '@angular/http';\r\n\r\nimport 'rxjs/add/operator/toPromise';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { Subject } from 'rxjs/Subject';\r\n\r\nimport { ConfigService } from '../shared/services/config.service';\r\n\r\nimport { SignalRConnectionStatus } from '../shared/interfaces';\r\n\r\n@Injectable()\r\nexport class CloudViewHubService {\r\n\r\n _baseUrl:string;\r\n currentDate = SignalRConnectionStatus.Disconnected;\r\n connectionState: Observable;\r\n\r\n setConnectionId: Observable;\r\n addCloudViewLogEntry: Observable;\r\n\r\n private connectionStateSubject = new Subject();\r\n\r\n private setConnectionIdSubject = new Subject();\r\n private addCloudViewLogEntrySubject = new Subject();\r\n\r\n private server: CloudViewHubServer;\r\n\r\n constructor(private http: Http) {\r\n this.connectionState = this.connectionStateSubject.asObservable();\r\n this.setConnectionId= this.setConnectionIdSubject.asObservable();\r\n this.addCloudViewLogEntry = this.addCloudViewLogEntrySubject.asObservable();\r\n\r\n this._baseUrl = new ConfigService().getApiHost();\r\n }\r\n\r\n start(debug: boolean): Observable {\r\n $.connection.hub.logging = debug;\r\n $.connection.hub.url = `${this._baseUrl}/signalr`;\r\n\r\n let connection = $.connection;\r\n let cloudViewHub = connection.cloudViewBroadcaster;\r\n this.server = cloudViewHub.server;\r\n\r\n cloudViewHub.client.setConnectionId = (id: string) => this.onSetConnectionId(id);\r\n cloudViewHub.client.addCloudViewLogEntry = (log:any) => this.onAddCloudViewLogEntry(log);\r\n\r\n $.connection.hub.start()\r\n .done(response => this.setConnectionState(SignalRConnectionStatus.Connected))\r\n .fail(error => this.connectionStateSubject.error(error));\r\n\r\n return this.connectionState;\r\n }\r\n\r\n private setConnectionState(connectionState: SignalRConnectionStatus) {\r\n this.currentDate = connectionState;\r\n this.connectionStateSubject.next(connectionState);\r\n }\r\n\r\n // Client side methods\r\n private onSetConnectionId(id: string) {\r\n this.setConnectionIdSubject.next(id);\r\n }\r\n\r\n private onAddCloudViewLogEntry(log: CloudViewLog) {\r\n this.addCloudViewLogEntrySubject.next(log);\r\n }\r\n\r\n // Server side methods\r\n public subscribeToCloudViewHub(groupId: string) {\r\n //this.server.subscribe(groupId);\r\n }\r\n\r\n public unsubscribeFromCloudViewHub(groupId: string) {\r\n //this.server.unsubscribe(groupId);\r\n }\r\n}\r\n\r\nexport interface CloudViewSignalR extends SignalR {\r\n cloudViewBroadcaster: CloudViewHubProxy;\r\n}\r\n\r\nexport interface CloudViewHubProxy {\r\n client: CloudViewHubClient;\r\n server: CloudViewHubServer\r\n}\r\n\r\nexport interface CloudViewHubClient {\r\n setConnectionId: (id: string) => void;\r\n addCloudViewLogEntry: (log: CloudViewLog) => void;\r\n}\r\n\r\nexport interface CloudViewHubServer {\r\n subscribe(groupId: string): void;\r\n unsubscribe(groupId: string): void;\r\n}\r\n\r\nexport interface CloudViewLog {\r\n description: string;\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/cloudview/cloudview-hub.service.ts\n **/","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar toast_1 = require(\"./src/toast\");\nexports.Toast = toast_1.Toast;\nvar toast_manager_1 = require(\"./src/toast-manager\");\nexports.ToastsManager = toast_manager_1.ToastsManager;\nvar toast_container_component_1 = require(\"./src/toast-container.component\");\nexports.ToastContainer = toast_container_component_1.ToastContainer;\nvar toast_options_1 = require(\"./src/toast-options\");\nexports.ToastOptions = toast_options_1.ToastOptions;\nvar toast_module_1 = require(\"./src/toast.module\");\nexports.ToastModule = toast_module_1.ToastModule;\n//# sourceMappingURL=ng2-toastr.js.map\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/ng2-toastr/ng2-toastr.js\n ** module id = 306\n ** module chunks = 0\n **/","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Toast = (function () {\n function Toast(type, message, title, data) {\n this.type = type;\n this.message = message;\n this.title = title;\n this.data = data;\n this.config = {\n dismiss: 'auto',\n enableHTML: false,\n titleClass: '',\n messageClass: '',\n toastLife: 3000,\n showCloseButton: false,\n };\n }\n return Toast;\n}());\nexports.Toast = Toast;\n//# sourceMappingURL=toast.js.map\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/ng2-toastr/src/toast.js\n ** module id = 307\n ** module chunks = 0\n **/","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar core_1 = require(\"@angular/core\");\nvar toast_container_component_1 = require(\"./toast-container.component\");\nvar toast_options_1 = require(\"./toast-options\");\nvar toast_1 = require(\"./toast\");\nvar Subject_1 = require(\"rxjs/Subject\");\nvar ToastsManager = (function () {\n function ToastsManager(componentFactoryResolver, ngZone, appRef, options) {\n this.componentFactoryResolver = componentFactoryResolver;\n this.ngZone = ngZone;\n this.appRef = appRef;\n this.options = options;\n this.index = 0;\n this.toastClicked = new Subject_1.Subject();\n }\n ToastsManager.prototype.setRootViewContainerRef = function (vRef) {\n this._rootViewContainerRef = vRef;\n };\n ToastsManager.prototype.onClickToast = function () {\n return this.toastClicked.asObservable();\n };\n ToastsManager.prototype.show = function (toast, options) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n if (!_this.container) {\n // get app root view component ref\n if (!_this._rootViewContainerRef) {\n try {\n _this._rootViewContainerRef = _this.appRef['_rootComponents'][0]['_hostElement'].vcRef;\n }\n catch (e) {\n reject(new Error('Please set root ViewContainerRef using setRootViewContainerRef(vRef: ViewContainerRef) method.'));\n }\n }\n // get options providers\n var providers = core_1.ReflectiveInjector.resolve([\n { provide: toast_options_1.ToastOptions, useValue: _this.options }\n ]);\n // create and load ToastContainer\n var toastFactory = _this.componentFactoryResolver.resolveComponentFactory(toast_container_component_1.ToastContainer);\n var childInjector = core_1.ReflectiveInjector.fromResolvedProviders(providers, _this._rootViewContainerRef.parentInjector);\n _this.container = _this._rootViewContainerRef.createComponent(toastFactory, _this._rootViewContainerRef.length, childInjector);\n _this.container.instance.onToastClicked = function (toast) {\n _this._onToastClicked(toast);\n };\n _this.container.instance.onExit().subscribe(function () {\n _this.dispose();\n });\n }\n resolve(_this.setupToast(toast, options));\n });\n };\n ToastsManager.prototype.createTimeout = function (toast) {\n var _this = this;\n var task;\n this.ngZone.runOutsideAngular(function () {\n task = setTimeout(function () { return _this.ngZone.run(function () { return _this.clearToast(toast); }); }, toast.config.toastLife);\n });\n return task.toString();\n };\n ToastsManager.prototype.setupToast = function (toast, options) {\n toast.id = ++this.index;\n if (options && options.hasOwnProperty('toastLife')) {\n options.dismiss = 'auto';\n }\n var customConfig = Object.assign({}, this.options, options || {});\n Object.keys(toast.config).forEach(function (k) {\n if (customConfig.hasOwnProperty(k)) {\n toast.config[k] = customConfig[k];\n }\n });\n if (toast.config.dismiss === 'auto') {\n toast.timeoutId = this.createTimeout(toast);\n }\n this.container.instance.addToast(toast);\n return toast;\n };\n ToastsManager.prototype._onToastClicked = function (toast) {\n this.toastClicked.next(toast);\n if (toast.config.dismiss === 'click') {\n this.clearToast(toast);\n }\n };\n ToastsManager.prototype.dismissToast = function (toast) {\n this.clearToast(toast);\n };\n ToastsManager.prototype.clearToast = function (toast) {\n if (this.container) {\n var instance = this.container.instance;\n instance.removeToast(toast);\n }\n };\n ToastsManager.prototype.clearAllToasts = function () {\n if (this.container) {\n var instance = this.container.instance;\n instance.removeAllToasts();\n this.dispose();\n }\n };\n ToastsManager.prototype.dispose = function () {\n if (this.container) {\n this.container.destroy();\n this.container = null;\n }\n };\n ToastsManager.prototype.error = function (message, title, options) {\n var data = options && options.data ? options.data : null;\n var toast = new toast_1.Toast('error', message, title, data);\n return this.show(toast, options);\n };\n ToastsManager.prototype.info = function (message, title, options) {\n var data = options && options.data ? options.data : null;\n var toast = new toast_1.Toast('info', message, title, data);\n return this.show(toast, options);\n };\n ToastsManager.prototype.success = function (message, title, options) {\n var data = options && options.data ? options.data : null;\n var toast = new toast_1.Toast('success', message, title, data);\n return this.show(toast, options);\n };\n ToastsManager.prototype.warning = function (message, title, options) {\n var data = options && options.data ? options.data : null;\n var toast = new toast_1.Toast('warning', message, title, data);\n return this.show(toast, options);\n };\n // allow user define custom background color and image\n ToastsManager.prototype.custom = function (message, title, options) {\n var data = options && options.data ? options.data : null;\n var toast = new toast_1.Toast('custom', message, title, data);\n return this.show(toast, options);\n };\n return ToastsManager;\n}());\nToastsManager.decorators = [\n { type: core_1.Injectable },\n];\n/** @nocollapse */\nToastsManager.ctorParameters = function () { return [\n { type: core_1.ComponentFactoryResolver, },\n { type: core_1.NgZone, },\n { type: core_1.ApplicationRef, },\n { type: toast_options_1.ToastOptions, },\n]; };\nexports.ToastsManager = ToastsManager;\n//# sourceMappingURL=toast-manager.js.map\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/ng2-toastr/src/toast-manager.js\n ** module id = 308\n ** module chunks = 0\n **/","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar core_1 = require(\"@angular/core\");\nvar toast_options_1 = require(\"./toast-options\");\nvar platform_browser_1 = require(\"@angular/platform-browser\");\nrequire(\"rxjs/add/operator/first\");\nvar Subject_1 = require(\"rxjs/Subject\");\nvar ToastContainer = (function () {\n function ToastContainer(sanitizer, cdr, _zone, options) {\n this.sanitizer = sanitizer;\n this.cdr = cdr;\n this._zone = _zone;\n this.position = 'fixed';\n this.toasts = [];\n this._fresh = true;\n this._onEnter = new Subject_1.Subject();\n this._onExit = new Subject_1.Subject();\n Object.assign(this, options);\n }\n ToastContainer.prototype.onEnter = function () {\n return this._onEnter.asObservable();\n };\n ToastContainer.prototype.onExit = function () {\n return this._onExit.asObservable();\n };\n ToastContainer.prototype.addToast = function (toast) {\n if (this.positionClass.indexOf('top') > 0) {\n if (this.newestOnTop) {\n this.toasts.unshift(toast);\n }\n else {\n this.toasts.push(toast);\n }\n if (this.toasts.length > this.maxShown) {\n var diff = this.toasts.length - this.maxShown;\n if (this.newestOnTop) {\n this.toasts.splice(this.maxShown);\n }\n else {\n this.toasts.splice(0, diff);\n }\n }\n }\n else {\n this.toasts.unshift(toast);\n if (this.toasts.length > this.maxShown) {\n this.toasts.splice(this.maxShown);\n }\n }\n if (this.animate === null && this._fresh) {\n this._fresh = false;\n this._onEnter.next();\n this._onEnter.complete();\n }\n this.cdr.detectChanges();\n };\n ToastContainer.prototype.removeToast = function (toast) {\n if (toast.timeoutId) {\n clearTimeout(toast.timeoutId);\n toast.timeoutId = null;\n }\n this.toasts = this.toasts.filter(function (t) {\n return t.id !== toast.id;\n });\n };\n ToastContainer.prototype.removeAllToasts = function () {\n this.toasts = [];\n };\n ToastContainer.prototype.clicked = function (toast) {\n if (this.onToastClicked) {\n this.onToastClicked(toast);\n }\n };\n ToastContainer.prototype.anyToast = function () {\n return this.toasts.length > 0;\n };\n ToastContainer.prototype.findToast = function (toastId) {\n for (var _i = 0, _a = this.toasts; _i < _a.length; _i++) {\n var toast = _a[_i];\n if (toast.id === toastId) {\n return toast;\n }\n }\n return null;\n };\n ToastContainer.prototype.onAnimationEnd = function (event) {\n var _this = this;\n if (event.toState === 'void' && !this.anyToast()) {\n this._ngExit();\n }\n else if (this._fresh && event.fromState === 'void') {\n // notify when first animation is done\n this._fresh = false;\n this._zone.run(function () {\n _this._onEnter.next();\n _this._onEnter.complete();\n });\n }\n };\n ToastContainer.prototype._ngExit = function () {\n var _this = this;\n this._zone.onMicrotaskEmpty.first().subscribe(function () {\n _this._onExit.next();\n _this._onExit.complete();\n });\n };\n ToastContainer.prototype.ngOnDestroy = function () {\n this._ngExit();\n };\n return ToastContainer;\n}());\nToastContainer.decorators = [\n { type: core_1.Component, args: [{\n selector: 'toast-container',\n template: \"\\n
\\n
\\n
×\\n
\\n
{{toast.title}}
\\n
\\n \\n {{toast.message}}\\n
\\n
\\n
\\n \",\n animations: [\n core_1.trigger('inOut', [\n core_1.state('flyRight, flyLeft', core_1.style({ opacity: 1, transform: 'translateX(0)' })),\n core_1.state('fade', core_1.style({ opacity: 1 })),\n core_1.state('slideDown, slideUp', core_1.style({ opacity: 1, transform: 'translateY(0)' })),\n core_1.transition('void => flyRight', [\n core_1.style({\n opacity: 0,\n transform: 'translateX(100%)'\n }),\n core_1.animate('0.2s ease-in')\n ]),\n core_1.transition('flyRight => void', [\n core_1.animate('0.2s 10ms ease-out', core_1.style({\n opacity: 0,\n transform: 'translateX(100%)'\n }))\n ]),\n core_1.transition('void => flyLeft', [\n core_1.style({\n opacity: 0,\n transform: 'translateX(-100%)'\n }),\n core_1.animate('0.2s ease-in')\n ]),\n core_1.transition('flyLeft => void', [\n core_1.animate('0.2s 10ms ease-out', core_1.style({\n opacity: 0,\n transform: 'translateX(-100%)'\n }))\n ]),\n core_1.transition('void => fade', [\n core_1.style({\n opacity: 0,\n }),\n core_1.animate('0.3s ease-in')\n ]),\n core_1.transition('fade => void', [\n core_1.animate('0.3s 10ms ease-out', core_1.style({\n opacity: 0,\n }))\n ]),\n core_1.transition('void => slideDown', [\n core_1.style({\n opacity: 0,\n transform: 'translateY(-200%)'\n }),\n core_1.animate('0.3s ease-in')\n ]),\n core_1.transition('slideDown => void', [\n core_1.animate('0.3s 10ms ease-out', core_1.style({\n opacity: 0,\n transform: 'translateY(-200%)'\n }))\n ]),\n core_1.transition('void => slideUp', [\n core_1.style({\n opacity: 0,\n transform: 'translateY(200%)'\n }),\n core_1.animate('0.3s ease-in')\n ]),\n core_1.transition('slideUp => void', [\n core_1.animate('0.3s 10ms ease-out', core_1.style({\n opacity: 0,\n transform: 'translateY(200%)'\n }))\n ]),\n ]),\n ],\n },] },\n];\n/** @nocollapse */\nToastContainer.ctorParameters = function () { return [\n { type: platform_browser_1.DomSanitizer, },\n { type: core_1.ChangeDetectorRef, },\n { type: core_1.NgZone, },\n { type: toast_options_1.ToastOptions, },\n]; };\nexports.ToastContainer = ToastContainer;\n//# sourceMappingURL=toast-container.component.js.map\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/ng2-toastr/src/toast-container.component.js\n ** module id = 309\n ** module chunks = 0\n **/","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar core_1 = require(\"@angular/core\");\nvar ToastOptions = (function () {\n function ToastOptions() {\n this.positionClass = 'toast-top-right';\n this.maxShown = 5;\n this.newestOnTop = false;\n this.animate = 'fade';\n // override-able properties\n this.toastLife = 5000;\n this.enableHTML = false;\n this.dismiss = 'auto'; //'auto' | 'click' | 'controlled'\n this.messageClass = 'toast-message';\n this.titleClass = 'toast-title';\n this.showCloseButton = false;\n }\n return ToastOptions;\n}());\nToastOptions.decorators = [\n { type: core_1.Injectable },\n];\n/** @nocollapse */\nToastOptions.ctorParameters = function () { return []; };\nexports.ToastOptions = ToastOptions;\n//# sourceMappingURL=toast-options.js.map\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/ng2-toastr/src/toast-options.js\n ** module id = 310\n ** module chunks = 0\n **/","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar core_1 = require(\"@angular/core\");\nvar common_1 = require(\"@angular/common\");\nvar toast_container_component_1 = require(\"./toast-container.component\");\nvar toast_manager_1 = require(\"./toast-manager\");\nvar toast_options_1 = require(\"./toast-options\");\nvar ToastModule = (function () {\n function ToastModule() {\n }\n ToastModule.forRoot = function () {\n return {\n ngModule: ToastModule,\n providers: [toast_manager_1.ToastsManager, toast_options_1.ToastOptions],\n };\n };\n return ToastModule;\n}());\nToastModule.decorators = [\n { type: core_1.NgModule, args: [{\n imports: [common_1.CommonModule],\n declarations: [toast_container_component_1.ToastContainer],\n exports: [toast_container_component_1.ToastContainer],\n entryComponents: [toast_container_component_1.ToastContainer]\n },] },\n];\n/** @nocollapse */\nToastModule.ctorParameters = function () { return []; };\nexports.ToastModule = ToastModule;\n//# sourceMappingURL=toast.module.js.map\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/ng2-toastr/src/toast.module.js\n ** module id = 312\n ** module chunks = 0\n **/","import { Injectable } from '@angular/core';\r\nimport { AppInsights } from 'applicationinsights-js';\r\n\r\n@Injectable()\r\nexport class AppInsightsService {\r\n private config: Microsoft.ApplicationInsights.IConfig = {\r\n instrumentationKey: '628e2557-78fb-4803-b1ad-f7ffeb8433a9'\r\n };\r\n\r\n constructor() {\r\n if (!AppInsights.config) {\r\n AppInsights.downloadAndSetup(this.config);\r\n }\r\n }\r\n\r\n logPageView(name?: string, url?: string, properties?: any, measurements?: any, duration?: number) {\r\n AppInsights.trackPageView(name, url, properties, measurements, duration);\r\n }\r\n\r\n logEvent(name: string, properties?: any, measurements?: any) {\r\n AppInsights.trackEvent(name, properties, measurements);\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/azure/app-insights.service.ts\n **/","\"use strict\";\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Microsoft;\r\n(function (Microsoft) {\r\n var ApplicationInsights;\r\n (function (ApplicationInsights) {\r\n \"use strict\";\r\n })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n})(Microsoft || (Microsoft = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// THIS FILE WAS AUTOGENERATED\r\nvar Microsoft;\r\n(function (Microsoft) {\r\n var Telemetry;\r\n (function (Telemetry) {\r\n \"use strict\";\r\n /**\r\n * Data struct to contain only C section with custom fields.\r\n */\r\n var Base = /** @class */ (function () {\r\n function Base() {\r\n }\r\n return Base;\r\n }());\r\n Telemetry.Base = Base;\r\n })(Telemetry = Microsoft.Telemetry || (Microsoft.Telemetry = {}));\r\n})(Microsoft || (Microsoft = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// THIS FILE WAS AUTOGENERATED\r\n/// \r\nvar Microsoft;\r\n(function (Microsoft) {\r\n var Telemetry;\r\n (function (Telemetry) {\r\n \"use strict\";\r\n /**\r\n * System variables for a telemetry item.\r\n */\r\n var Envelope = /** @class */ (function () {\r\n function Envelope() {\r\n this.ver = 1;\r\n this.sampleRate = 100.0;\r\n this.tags = {};\r\n }\r\n return Envelope;\r\n }());\r\n Telemetry.Envelope = Envelope;\r\n })(Telemetry = Microsoft.Telemetry || (Microsoft.Telemetry = {}));\r\n})(Microsoft || (Microsoft = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Microsoft;\r\n(function (Microsoft) {\r\n var ApplicationInsights;\r\n (function (ApplicationInsights) {\r\n var Context;\r\n (function (Context) {\r\n \"use strict\";\r\n })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));\r\n })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n})(Microsoft || (Microsoft = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Microsoft;\r\n(function (Microsoft) {\r\n var ApplicationInsights;\r\n (function (ApplicationInsights) {\r\n var Context;\r\n (function (Context) {\r\n \"use strict\";\r\n })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));\r\n })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n})(Microsoft || (Microsoft = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Microsoft;\r\n(function (Microsoft) {\r\n var ApplicationInsights;\r\n (function (ApplicationInsights) {\r\n var Context;\r\n (function (Context) {\r\n \"use strict\";\r\n })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));\r\n })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n})(Microsoft || (Microsoft = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Microsoft;\r\n(function (Microsoft) {\r\n var ApplicationInsights;\r\n (function (ApplicationInsights) {\r\n var Context;\r\n (function (Context) {\r\n \"use strict\";\r\n })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));\r\n })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n})(Microsoft || (Microsoft = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Microsoft;\r\n(function (Microsoft) {\r\n var ApplicationInsights;\r\n (function (ApplicationInsights) {\r\n var Context;\r\n (function (Context) {\r\n \"use strict\";\r\n })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));\r\n })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n})(Microsoft || (Microsoft = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Microsoft;\r\n(function (Microsoft) {\r\n var ApplicationInsights;\r\n (function (ApplicationInsights) {\r\n var Context;\r\n (function (Context) {\r\n \"use strict\";\r\n })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));\r\n })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n})(Microsoft || (Microsoft = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Microsoft;\r\n(function (Microsoft) {\r\n var ApplicationInsights;\r\n (function (ApplicationInsights) {\r\n var Context;\r\n (function (Context) {\r\n \"use strict\";\r\n })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));\r\n })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n})(Microsoft || (Microsoft = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Microsoft;\r\n(function (Microsoft) {\r\n var ApplicationInsights;\r\n (function (ApplicationInsights) {\r\n var Context;\r\n (function (Context) {\r\n \"use strict\";\r\n })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));\r\n })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n})(Microsoft || (Microsoft = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Microsoft;\r\n(function (Microsoft) {\r\n var ApplicationInsights;\r\n (function (ApplicationInsights) {\r\n \"use strict\";\r\n })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n})(Microsoft || (Microsoft = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/// \r\nvar Microsoft;\r\n(function (Microsoft) {\r\n var ApplicationInsights;\r\n (function (ApplicationInsights) {\r\n \"use strict\";\r\n })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n})(Microsoft || (Microsoft = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\nvar Microsoft;\r\n(function (Microsoft) {\r\n var ApplicationInsights;\r\n (function (ApplicationInsights) {\r\n \"use strict\";\r\n })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n})(Microsoft || (Microsoft = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// THIS FILE WAS AUTOGENERATED\r\nvar AI;\r\n(function (AI) {\r\n \"use strict\";\r\n /**\r\n * Defines the level of severity for the event.\r\n */\r\n var SeverityLevel;\r\n (function (SeverityLevel) {\r\n SeverityLevel[SeverityLevel[\"Verbose\"] = 0] = \"Verbose\";\r\n SeverityLevel[SeverityLevel[\"Information\"] = 1] = \"Information\";\r\n SeverityLevel[SeverityLevel[\"Warning\"] = 2] = \"Warning\";\r\n SeverityLevel[SeverityLevel[\"Error\"] = 3] = \"Error\";\r\n SeverityLevel[SeverityLevel[\"Critical\"] = 4] = \"Critical\";\r\n })(SeverityLevel = AI.SeverityLevel || (AI.SeverityLevel = {}));\r\n})(AI || (AI = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/// \r\n/// \r\n/// \r\nvar Microsoft;\r\n(function (Microsoft) {\r\n var ApplicationInsights;\r\n (function (ApplicationInsights) {\r\n \"use strict\";\r\n })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n})(Microsoft || (Microsoft = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Microsoft;\r\n(function (Microsoft) {\r\n var ApplicationInsights;\r\n (function (ApplicationInsights) {\r\n \"use strict\";\r\n var UtilHelpers = /** @class */ (function () {\r\n function UtilHelpers() {\r\n }\r\n /**\r\n * generate random id string\r\n */\r\n UtilHelpers.newId = function () {\r\n var base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\r\n var result = \"\";\r\n // tslint:disable-next-line:insecure-random\r\n var random = Math.random() * 1073741824; //5 symbols in base64, almost maxint\r\n while (random > 0) {\r\n var char = base64chars.charAt(random % 64);\r\n result += char;\r\n random = Math.floor(random / 64);\r\n }\r\n return result;\r\n };\r\n return UtilHelpers;\r\n }());\r\n ApplicationInsights.UtilHelpers = UtilHelpers;\r\n })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n})(Microsoft || (Microsoft = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\ndefine(\"JavaScriptSDK.Module/AppInsightsModule\", [\"require\", \"exports\"], function (require, exports) {\r\n /// \r\n /// \r\n /// \r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n var AppInsightsModule = /** @class */ (function () {\r\n function AppInsightsModule() {\r\n }\r\n AppInsightsModule._createLazyMethod = function (name) {\r\n var aiObject = window[AppInsightsModule.appInsightsName];\r\n // Define a temporary method that queues-up a the real method call\r\n aiObject[name] = function () {\r\n // Capture the original arguments passed to the method\r\n var originalArguments = arguments;\r\n // If the queue is available, it means that the function wasn't yet replaced with actual function value\r\n if (aiObject.queue) {\r\n aiObject.queue.push(function () { return aiObject[name].apply(aiObject, originalArguments); });\r\n }\r\n else {\r\n // otherwise execute the function\r\n aiObject[name].apply(aiObject, originalArguments);\r\n }\r\n };\r\n };\r\n ;\r\n AppInsightsModule._defineLazyMethods = function () {\r\n var aiObject = window[AppInsightsModule.appInsightsName];\r\n // capture initial cookie if possible\r\n try {\r\n aiObject.cookie = document.cookie;\r\n }\r\n catch (e) {\r\n }\r\n aiObject.queue = [];\r\n var method = [\r\n \"clearAuthenticatedUserContext\",\r\n \"flush\",\r\n \"setAuthenticatedUserContext\",\r\n \"startTrackEvent\",\r\n \"startTrackPage\",\r\n \"stopTrackEvent\",\r\n \"stopTrackPage\",\r\n \"trackDependency\",\r\n \"trackEvent\",\r\n \"trackException\",\r\n \"trackMetric\",\r\n \"trackPageView\",\r\n \"trackTrace\"\r\n ];\r\n while (method.length) {\r\n AppInsightsModule._createLazyMethod(method.pop());\r\n }\r\n };\r\n AppInsightsModule._download = function (aiConfig) {\r\n AppInsightsModule.getAppInsightsInstance().config = aiConfig;\r\n var aiObject = window[AppInsightsModule.appInsightsName];\r\n // if script was previously downloaded and initialized, queue will be deleted, reinitialize it\r\n if (!aiObject.queue) {\r\n aiObject.queue = [];\r\n }\r\n setTimeout(function () {\r\n var scriptElement = document.createElement(\"script\");\r\n scriptElement.src = aiConfig.url || \"https://az416426.vo.msecnd.net/scripts/a/ai.0.js\";\r\n document.head.appendChild(scriptElement);\r\n });\r\n // collect global errors by wrapping the window.onerror method\r\n if (!aiConfig.disableExceptionTracking) {\r\n var method_1 = \"onerror\";\r\n AppInsightsModule._createLazyMethod(\"_\" + method_1);\r\n var originalOnError = window[method_1];\r\n window[method_1] = function (message, url, lineNumber, columnNumber, error) {\r\n var handled = originalOnError && originalOnError(message, url, lineNumber, columnNumber, error);\r\n if (handled !== true) {\r\n aiObject[\"_\" + method_1](message, url, lineNumber, columnNumber, error);\r\n }\r\n return handled;\r\n };\r\n }\r\n };\r\n AppInsightsModule.getAppInsightsInstance = function () {\r\n if (typeof window === 'undefined') {\r\n return;\r\n }\r\n if (!window[AppInsightsModule.appInsightsName]) {\r\n window[AppInsightsModule.appInsightsName] = {\r\n downloadAndSetup: AppInsightsModule._download,\r\n // exposing it for unit tests only, not part of interface\r\n _defineLazyMethods: AppInsightsModule._defineLazyMethods\r\n };\r\n AppInsightsModule._defineLazyMethods();\r\n }\r\n return window[AppInsightsModule.appInsightsName];\r\n };\r\n AppInsightsModule.appInsightsInitialized = false;\r\n AppInsightsModule.appInsightsName = \"appInsights\";\r\n /**\r\n * Static constructor, attempt to ES5 get accessor\r\n */\r\n AppInsightsModule._staticInit = (function () {\r\n // Dynamically create get/set property accessors\r\n var defineProp = Object[\"defineProperty\"];\r\n try {\r\n defineProp && defineProp(AppInsightsModule.prototype, \"appInsightsInstance\", {\r\n get: AppInsightsModule.getAppInsightsInstance,\r\n enumerable: true,\r\n configurable: true\r\n });\r\n }\r\n catch (e) {\r\n // IE8 Defines a defineProperty on Object but it's only supported for DOM elements so it will throw\r\n // We will just ignore this here.\r\n }\r\n })();\r\n return AppInsightsModule;\r\n }());\r\n exports.AppInsights = AppInsightsModule.getAppInsightsInstance();\r\n});\r\n//# sourceMappingURL=ai.module.js.map\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/applicationinsights-js/bundle/ai.module.js\n ** module id = 314\n ** module chunks = 0\n **/","module.exports = \"\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\thome\\r\\n\\t\\t\\t\\tHome\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tperson_add\\r\\n\\t\\t\\t\\tProvision User\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tpeople\\r\\n\\t\\t\\t\\tUsers\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tbusiness\\r\\n\\t\\t\\t\\tSites\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tdesktop_windows\\r\\n\\t\\t\\t\\tApplications\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tupdate\\r\\n\\t\\t\\t\\tConversions\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\ttimelapse\\r\\n\\t\\t\\t\\tSite Planner\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tassessment\\r\\n\\t\\t\\t\\tReports\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tplace\\r\\n\\t\\t\\t\\tZones\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tassessment\\r\\n\\t\\t\\t\\tGo Live Report\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t \\r\\n\\t\\t\\t\\tsettings\\r\\n\\t\\t\\t\\tConfiguration\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t \\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
{{ browserNotSupportedMessage() }}
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t{{user?.emailAddress}}\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/app.component.html\n ** module id = 325\n ** module chunks = 0\n **/","import { Routes, RouterModule } from '@angular/router';\r\n\r\n// Auth\r\nimport { AuthGuard } from './auth/auth-guard.service';\r\nimport { LoginComponent } from './auth/login.component';\r\nimport { RedirectComponent } from './auth/redirect.component';\r\n\r\n// Users\r\nimport { UsersComponent } from './users/users-view/users.component';\r\nimport { UserSitesComponent } from './users/user/user-sites/user-sites.component';\r\nimport { UserPermissionsComponent } from './users/user/user-permissions/user-permissions.component';\r\nimport { UserProvisionsComponent } from './users/user/user-provisions/user-provisions.component';\r\n\r\n// Applications\r\nimport { ApplicationsComponent } from './applications/applications.component';\r\n\r\n// Storage Accounts\r\nimport { StorageAccountComponent } from './storage-accounts/storage-account.component';\r\n\r\n// Reports\r\nimport { ReportsComponent } from './sites/reports/reports.component';\r\n\r\n// Account\r\nimport { AccountComponent } from './account/account.component';\r\nimport { AccountRegisterComponent } from './account/register/account-register.component';\r\nimport { AccountForgotPasswordComponent } from './account/security/password/account-forgot-password.component';\r\nimport { AccountProvisionComponent } from './account/register/account-provision.component';\r\nimport { AccountResetPasswordComponent } from './account/security/password/account-reset-password.component';\r\nimport { UserProvisionComponent } from './account/provision/user-provision.component';\r\nimport { UserCreateComponent } from './users/user/user-create/user-create.component';\r\n\r\n// Home\r\nimport { HomeComponent } from './home.component';\r\n\r\n// Sites\r\nimport { SitesComponent } from './sites/core/sites.component';\r\nimport { SiteComponent } from './sites/core/site.component';\r\nimport { SiteFileSharesComponent } from './sites/core/file-shares/site-file-shares.component';\r\nimport { SiteDetailComponent } from './sites/core/detail/site-detail.component';\r\nimport { SiteUsersComponent } from './sites/core/site-users/site-users.component';\r\nimport { SiteReportsComponent } from './sites/core/reports/site-reports.component';\r\nimport { SiteConversionsComponent } from './sites/core/conversions/site-conversions.component';\r\nimport { SiteCloudViewComponent } from './sites/core/cloud-view/site-cloud-view.component';\r\nimport { SitePrivacyAndSecurityComponent } from './sites/core/privacy-and-security/site-privacy-and-security.component';\r\nimport { SiteManageCloudTransferToolUsersComponent } from './sites/core/privacy-and-security/manage-cloud-transfer-tool-users/site-manage-cloud-transfer-tool-users.component';\r\nimport { SiteManageCloudViewInstanceViewUsersComponent } from './sites/core/privacy-and-security/manage-cloud-view-instance-view-users/site-manage-cloud-view-instance-view-users.component';\r\nimport { SiteManageConversionMonitorConnectUsersComponent } from './sites/core/privacy-and-security/manage-conversion-monitor-connect-users/site-manage-conversion-monitor-connect-users.component';\r\nimport { SiteManageUsersComponent } from './sites/core/privacy-and-security/manage-users/site-manage-users.component';\r\nimport { SiteSecurityHistoryComponent } from './sites/core/privacy-and-security/security-history/site-security-history.component';\r\nimport { SiteManageReportsComponent } from './sites/core/reports/manage-reports/site-manage-reports.component';\r\nimport { SiteCreationComponent } from './sites/core/site-create/site-creation.component';\r\n\r\n// Analysis Report\r\nimport { AnalysisReportComponent } from './sites/analysis/analysis-report.component';\r\n\r\n// Analysis Report - Companies\r\nimport { StaticDataComponent } from './sites/analysis/companies/static-data.component';\r\nimport { TransactionOverviewComponent } from './sites/analysis/companies/transaction-overview.component';\r\nimport { CompaniesComponent } from './sites/analysis/companies/companies.component';\r\n\r\n// Analysis Report - Custom\r\nimport { APMObjectsComponent } from './sites/analysis/custom/apmObjects/apmObjects.component';\r\nimport { ConfiguratorsComponent } from './sites/analysis/custom/configurators/configurators.component';\r\nimport { CustomisationsComponent } from './sites/analysis/custom/customisations/customisations.component';\r\nimport { KineticUXComponent } from './sites/analysis/custom/kineticUX/kineticUXs.component';\r\n\r\nimport { FunctionsComponent } from './sites/analysis/custom/functions/functions.component';\r\nimport { ProcessCallComponent } from './sites/analysis/custom/processCalls/processCalls.component';\r\n\r\nimport { BpmsComponent } from './sites/analysis/custom/bpms/bpms.component';\r\nimport { IncompatibilitiesComponent } from './sites/analysis/incompatibilities.component';\r\nimport { ChangeLogsComponent } from './sites/analysis/custom/changelogs/changelogs.component';\r\nimport { BankInterfacesComponent } from './sites/analysis/custom/bankInterfaces/bankInterfaces.component';\r\nimport { DataDirectivesComponent } from './sites/analysis/custom/dataDirectives/dataDirectives.component';\r\nimport { SqlViewsComponent } from './sites/analysis/custom/sqlViews/sqlViews.component';\r\nimport { SQLStoredProceduresComponent } from './sites/analysis/custom/sqlStoredProcedures/sqlStoredProcedures.component';\r\nimport { CustomReportsComponent } from './sites/analysis/custom/customReports/customReports.component';\r\nimport { BaqReportsComponent } from './sites/analysis/custom/baqReports/baqReports.component';\r\nimport { ExternalReportsComponent } from './sites/analysis/custom/externalReports/externalReports.component';\r\nimport { MenusComponent } from './sites/analysis/custom/menus/menus.component';\r\nimport { UDFormsComponent } from './sites/analysis/custom/udforms/udforms.component';\r\nimport { SdkComponent } from './sites/analysis/custom/sdk/sdk.component';\r\nimport { CustomTablesComponent } from './sites/analysis/custom/customTables/customTables.component';\r\nimport { DashboardsComponent } from './sites/analysis/custom/dashboards/dashboards.component';\r\nimport { UpdatableBAQsComponent } from './sites/analysis/custom/updatableBAQs/updatableBAQs.component';\r\nimport { BAQMethodDirectives } from './sites/analysis/custom/baqMethodDirectives/baqMethodDirectives.component';\r\nimport { NonUpdatableBAQs } from './sites/analysis/custom/nonUpdatableBAQs/nonUpdatableBAQs.component';\r\n\r\nimport { CustomTriggersComponent} from './sites/analysis/custom/triggers/customTriggers.component'\r\nimport { SQLFunctionsComponent} from './sites/analysis/custom/sqlFunctions/sqlFunctions.component'\r\nimport { UserDefinedTableComponent} from './sites/analysis/custom/userDefinedTables/userDefinedTables.component'\r\n\r\n\r\n// Analysis Report - Environment\r\nimport { SoftwareAndPlatformComponent } from './sites/analysis/environment/software-and-platform/software-and-platform.component';\r\nimport { ConnectivityComponent } from './sites/analysis/environment/connectivity/connectivity.component';\r\n\r\n// Analaysis Report - Licenses\r\nimport { LicensesComponent } from './sites/analysis/licenses/licenses.component';\r\n\r\n// Analysis Report - Other\r\nimport { PreUpgradeComponent } from './sites/analysis/other/preUpgrade/preUpgrade.component';\r\nimport { HealthChecksComponent } from './sites/analysis/other/healthChecks/healthChecks.component';\r\nimport { DataConversionsComponent } from './sites/analysis/other/conversions/data-conversions.component';\r\nimport { NonupgradableComponent } from './sites/analysis/other/nonupgradable/nonupgradable.component'; \r\nimport { ThirdPartyModuleComponent} from './sites/analysis/other/thirdPartyModules/thirdPartyModules.component';\r\n\r\n// Conversions\r\nimport { CreateConversionComponent } from './sites/conversions/conversion/create-conversion.component';\r\nimport { EditConversionComponent } from './sites/conversions/conversion/edit-conversion.component';\r\nimport { ConversionPassComponent } from './sites/conversions/pass/conversion-pass.component';\r\nimport { ConversionsComponent } from './sites/conversions/conversions.component';\r\nimport { ConversionComponent } from './sites/conversions/conversion/conversion.component';\r\nimport { ConversionScheduleComponent, ConversionScheduleNextPassNumberComponent, ConversionScheduleRemainingPassesComponent } from './sites/conversions/schedule/conversion-schedule.component';\r\nimport { ConversionScheduleMenuComponent } from './sites/conversions/schedule/conversion-schedule-menu.component';\r\nimport { ConversionPassesComponent } from './sites/conversions/passes/conversion-passes.component';\r\nimport {GoLiveConversionPassesMenuComponent} from './golivereport/golive-passes-menu.component';\r\nimport { ConversionPassesMenuComponent } from './sites/conversions/passes/conversion-passes-menu.component';\r\n\r\n// Cloud View\r\nimport { CloudViewComponent } from './cloudview/cloudview.component';\r\nimport { CloudViewHostComponent } from './cloudview/cloudview-host.component';\r\nimport { CloudViewHostInstancesComponent } from './cloudview/cloudview-host-instances.component';\r\nimport { CloudViewInstanceComponent } from './cloudview/cloudview-instance.component';\r\nimport { CloudViewHostStatisticsComponent } from './cloudview/cloudview-host-statistics.component';\r\nimport { CreateSiteCloudViewConfigComponent } from './cloudview/create-site-cloudview-config.component';\r\nimport { EditSiteCloudViewConfigComponent } from './cloudview/edit-site-cloudview-config.component';\r\nimport { CloudViewConfigFormComponent } from './cloudview/cloudview-config-form.component';\r\nimport { CloudViewHostPerformanceComponent } from './cloudview/cloudview-host-performance.component';\r\n\r\n// CanDeactivate service \r\nimport {DeactivateGuardService} from './shared/services/deactivate-guard.service' \r\n\r\n// Zones\r\nimport { ZonesComponent } from './zones/zones.component';\r\nimport { ZoneComponent } from './zones/zone/zone.component';\r\nimport { ZoneCreateComponent } from './zones/zone-create/zone-create.component'\r\n\r\n//New Features\r\nimport { NewFeaturesComponent } from './new-features/new-features.component';\r\n\r\n//Configurations\r\nimport { ConfigurationsComponent } from './configurations/configurations.component';\r\n\r\n//Conversion Assesment\r\nimport { ConversionAssesmentComponent } from './conversion-assesment/conversion-assesment.component';\r\nimport { GoLiveReportComponent } from './golivereport/golive-report.component';\r\n\r\nconst appRoutes: Routes = [\r\n { path: 'login', component: LoginComponent },\r\n { path: 'redirect', component: RedirectComponent },\r\n { path: 'account', component: AccountComponent, canActivate: [AuthGuard] },\r\n { path: 'account/password/forgot', component: AccountForgotPasswordComponent },\r\n { path: 'account/password/add', component: AccountProvisionComponent },\r\n { path: 'account/password/reset', component: AccountResetPasswordComponent },\r\n { path: 'account/provision/user', component: UserProvisionComponent, canActivate: [AuthGuard] },\r\n { path: 'applications', component: ApplicationsComponent, canActivate: [AuthGuard] },\r\n { path: 'reports', component: ReportsComponent, canActivate: [AuthGuard] },\r\n { path: 'users', component: UsersComponent, canActivate: [AuthGuard] },\r\n { path: 'users/create', component: UserCreateComponent, canActivate: [AuthGuard] },\r\n { path: 'home', component: HomeComponent, canActivate: [AuthGuard] },\r\n { path: 'sites', component: SitesComponent, canActivate: [AuthGuard] },\r\n { path: 'sites/create', component: SiteCreationComponent, canActivate: [AuthGuard] },\r\n { path: 'sites/:siteId', component: SiteComponent, canActivate: [AuthGuard] },\r\n { path: 'sites/:siteId/analyserreports/:version', component: AnalysisReportComponent, canActivate: [AuthGuard], canDeactivate: [DeactivateGuardService] },\r\n { path: 'sites/:siteId/conversions/:conversionId', component: ConversionComponent, canActivate: [AuthGuard] },\r\n { path: 'sites/:siteId/conversion/create', component: CreateConversionComponent, canActivate: [AuthGuard] },\r\n { path: 'sites/:siteId/cloudview/config/create', component: CreateSiteCloudViewConfigComponent, canActivate: [AuthGuard ] },\r\n { path: 'sites/:siteId/cloudview/config', component: EditSiteCloudViewConfigComponent, canActivate: [AuthGuard] },\r\n { path: 'conversions', component: ConversionsComponent, canActivate: [AuthGuard] },\r\n { path: 'conversions/:siteId/list', component: ConversionsComponent, canActivate: [AuthGuard] },\r\n { path: 'conversions/:conversionId', component: EditConversionComponent, canActivate: [AuthGuard], canDeactivate: [DeactivateGuardService] },\r\n { path: 'conversions/:conversionId/passes/:passNumber', component: ConversionPassComponent, canActivate: [AuthGuard] },\r\n { path: 'cloudview', component: CloudViewComponent, canActivate: [AuthGuard] },\r\n { path: 'cloudview/hosts/:hostId/instances/:instanceId', component: CloudViewInstanceComponent, canActivate: [AuthGuard] },\r\n { path: 'zones', component: ZonesComponent, canActivate: [AuthGuard] },\r\n { path: 'zones/create', component: ZoneCreateComponent, canActivate: [AuthGuard] },\r\n { path: 'zones/:zoneId', component: ZoneComponent, canActivate: [AuthGuard] },\r\n { path: 'whatsnew', component: NewFeaturesComponent, canActivate: [AuthGuard]},\r\n { path: 'configurations', component: ConfigurationsComponent, canActivate: [AuthGuard]},\r\n { path: 'conversionassesment', component: ConversionAssesmentComponent, canActivate: [AuthGuard]},\r\n { path: 'golivereport', component: GoLiveReportComponent, canActivate: [AuthGuard]},\r\n { path: '**', redirectTo: 'home' },\r\n { path: '', pathMatch: 'full', redirectTo: 'login' }\r\n];\r\n\r\nexport const routing = RouterModule.forRoot(appRoutes);\r\n\r\nexport const routedComponents = [\r\n LoginComponent,\r\n HomeComponent,\r\n RedirectComponent,\r\n AccountComponent,\r\n AccountForgotPasswordComponent,\r\n AccountProvisionComponent,\r\n AccountResetPasswordComponent,\r\n UserProvisionComponent,\r\n UserSitesComponent,\r\n UserPermissionsComponent,\r\n UserProvisionsComponent,\r\n ReportsComponent,\r\n UsersComponent,\r\n ApplicationsComponent,\r\n UserCreateComponent,\r\n SitesComponent,\r\n SiteCreationComponent,\r\n SiteComponent,\r\n SiteDetailComponent,\r\n SiteUsersComponent,\r\n SiteReportsComponent,\r\n SiteConversionsComponent,\r\n SiteCloudViewComponent,\r\n SiteFileSharesComponent,\r\n SitePrivacyAndSecurityComponent,\r\n SiteManageCloudTransferToolUsersComponent,\r\n SiteManageCloudViewInstanceViewUsersComponent,\r\n SiteManageConversionMonitorConnectUsersComponent,\r\n SiteManageUsersComponent,\r\n SiteSecurityHistoryComponent,\r\n SiteManageReportsComponent,\r\n AnalysisReportComponent,\r\n CompaniesComponent,\r\n SoftwareAndPlatformComponent,\r\n ConnectivityComponent,\r\n ConfiguratorsComponent,\r\n CustomisationsComponent,\r\n FunctionsComponent,\r\n ProcessCallComponent,\r\n StaticDataComponent,\r\n TransactionOverviewComponent,\r\n LicensesComponent,\r\n BpmsComponent,\r\n ChangeLogsComponent,\r\n ConversionComponent,\r\n BankInterfacesComponent,\r\n DataDirectivesComponent,\r\n SqlViewsComponent,\r\n SQLStoredProceduresComponent,\r\n CustomReportsComponent,\r\n BaqReportsComponent,\r\n MenusComponent,\r\n ExternalReportsComponent,\r\n PreUpgradeComponent,\r\n ThirdPartyModuleComponent,\r\n UDFormsComponent,\r\n SdkComponent, \r\n CustomTablesComponent,\r\n HealthChecksComponent,\r\n DataConversionsComponent,\r\n DashboardsComponent,\r\n CreateConversionComponent,\r\n EditConversionComponent,\r\n ConversionPassComponent,\r\n ConversionsComponent,\r\n ConversionComponent,\r\n ConversionScheduleComponent,\r\n ConversionScheduleMenuComponent,\r\n ConversionScheduleNextPassNumberComponent,\r\n ConversionScheduleRemainingPassesComponent,\r\n ConversionPassesComponent,\r\n GoLiveConversionPassesMenuComponent,\r\n ConversionPassesMenuComponent,\r\n CloudViewComponent,\r\n CloudViewHostComponent,\r\n CloudViewHostInstancesComponent,\r\n CloudViewInstanceComponent,\r\n CloudViewHostStatisticsComponent,\r\n CloudViewConfigFormComponent,\r\n CloudViewHostPerformanceComponent,\r\n CreateSiteCloudViewConfigComponent,\r\n EditSiteCloudViewConfigComponent,\r\n NonupgradableComponent,\r\n UpdatableBAQsComponent,\r\n BAQMethodDirectives,\r\n NonUpdatableBAQs,\r\n IncompatibilitiesComponent,\r\n APMObjectsComponent,\r\n ZonesComponent,\r\n ZoneComponent,\r\n ZoneCreateComponent,\r\n NewFeaturesComponent,\r\n ConversionAssesmentComponent,\r\n GoLiveReportComponent,\r\n ConfigurationsComponent,\r\n CustomTriggersComponent,\r\n SQLFunctionsComponent,\r\n UserDefinedTableComponent,\r\n KineticUXComponent\r\n];\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/app.routing.ts\n **/","import { Injectable } from '@angular/core';\r\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable()\r\nexport class AuthGuard implements CanActivate {\r\n\r\n constructor(\r\n protected router: Router, \r\n protected authService: AuthService) {}\r\n\r\n //TODO: decode the token to make sure the user is not accessing admin routes\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | boolean {\r\n if (state.url !== '/login' && !this.authService.loggedIn()) {\r\n this.router.navigate(['/login']);\r\n this.authService.redirectUrl = state.url;\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/auth/auth-guard.service.ts\n **/","import { Component, NgModule, OnInit } from '@angular/core'\r\nimport { Router } from '@angular/router';\r\n\r\nimport { AuthService, CredentialsModel } from '../auth/auth.service';\r\nimport { DOMEvents } from '../dom-events';\r\n\r\n@Component({\r\n selector: 'login',\r\n template: require('./login.html'),\r\n providers: []\r\n})\r\nexport class LoginComponent implements OnInit {\r\n\r\n isLoading: boolean = false;\r\n loginFailed: boolean;\r\n loginFailedDescription :string\r\n constructor(private auth: AuthService, private router: Router, private domEvents: DOMEvents) {}\r\n\r\n ngOnInit() {\r\n this.isLoggedIn();\r\n }\r\n\r\n credentials: CredentialsModel = {\r\n username: '',\r\n password: ''\r\n };\r\n\r\n onSubmit() {\r\n this.isLoading = true;\r\n this.loginFailed = null;\r\n\r\n this.auth.login(this.credentials).subscribe(\r\n data => {\r\n this.auth.saveJwt(data)\r\n this.isLoading = false;\r\n },\r\n err => {\r\n if(err._body.toString().startsWith(\"{\"))\r\n this.loginFailedDescription = JSON.parse(err._body).error_description\r\n else\r\n this.loginFailedDescription = \"The entered username or password is incorrect.\"\r\n this.loginFailed = true;\r\n this.isLoading = false; \r\n }\r\n );\r\n }\r\n\r\n isLoggedIn() {\r\n if (this.auth.loggedIn()) {\r\n this.router.navigateByUrl('/home');\r\n } else {\r\n this.domEvents.triggerOnDocument(\"appready\");\r\n } \r\n } \r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/auth/login.component.ts\n **/","import { DOCUMENT } from '@angular/platform-browser';\r\nimport { Inject } from '@angular/core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class DOMEvents {\r\n //http://www.bennadel.com/blog/3147-creating-an-event-driven-pre-bootstrap-loading-screen-in-angular-2-0-0.htm?platform=hootsuite\r\n private doc: Document;\r\n\r\n constructor(@Inject(DOCUMENT) doc: any) {\r\n this.doc = doc;\r\n }\r\n\r\n public triggerOnDocument(eventType:string) : Event {\r\n return (this.triggerOnElement(this.doc, eventType));\r\n }\r\n\r\n // Trigger the given event configuration on the given element.\r\n public triggerOnElement(\r\n nativeElement: any,\r\n eventType: string,\r\n bubbles: boolean = true,\r\n cancelable: boolean = false\r\n ) : Event {\r\n\r\n var customEvent = this.createEvent( eventType, bubbles, cancelable );\r\n\r\n nativeElement.dispatchEvent( customEvent );\r\n\r\n return( customEvent );\r\n }\r\n \r\n // Create and return a custom event with the given configuration\r\n private createEvent(\r\n eventType: string,\r\n bubbles: boolean,\r\n cancelable: boolean\r\n ) : Event {\r\n // IE will throw a type error if \"detail\" property is missing\r\n // https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent\r\n var params: any = params || { bubbles: bubbles, cancelable: cancelable, detail: undefined };\r\n\t\t\r\n // IE (shakes fist) uses some other kind of event initialization. As such,\r\n // we'll default to trying the \"normal\" event generation and then fallback to\r\n // using the IE version.\r\n try {\r\n\r\n var customEvent: any = new CustomEvent(\r\n eventType,\r\n {\r\n bubbles: bubbles,\r\n cancelable: cancelable\r\n }\r\n );\r\n\r\n } catch ( error ) {\r\n\r\n var customEvent: any = this.doc.createEvent( \"CustomEvent\" );\r\n\r\n customEvent.initCustomEvent(eventType, params.bubbles, params.cancelable, params.detail);\r\n }\r\n\r\n return( customEvent );\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/dom-events.ts\n **/","module.exports = \"\\r\\n\\r\\n
\\r\\n \\r\\n Upgrade Services\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n

{{this.loginFailedDescription}}

\\r\\n
\\r\\n
\\r\\n Forgot password?\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/auth/login.html\n ** module id = 330\n ** module chunks = 0\n **/","import { Component, OnDestroy } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Subscription } from 'rxjs/Rx';\r\nimport { tokenNotExpired } from 'angular2-jwt';\r\n\r\n@Component({\r\n selector: 'redirect',\r\n template: ''\r\n})\r\nexport class RedirectComponent implements OnDestroy {\r\n private subscription: Subscription;\r\n\r\n pages: Pages = {\r\n account: 'account',\r\n analyserReports: 'analyserreports'\r\n };\r\n\r\n page: string;\r\n siteId: number;\r\n version: string;\r\n accessToken: string;\r\n\r\n constructor(\r\n private route:ActivatedRoute,\r\n private router:Router) {\r\n \r\n this.subscription = route.queryParams.subscribe(\r\n (queryParam: any) => {\r\n this.page = queryParam['page'];\r\n this.siteId = queryParam['siteId'];\r\n this.version = queryParam['version'];\r\n this.accessToken = queryParam['access_token'];\r\n\r\n if (this.page === this.pages.account) {\r\n this.redirectTo('/account');\r\n }\r\n\r\n if (this.page === this.pages.analyserReports) {\r\n this.redirectTo('/sites/' + this.siteId + '/analyserreports/' + this.version);\r\n }\r\n }\r\n )\r\n }\r\n\r\n redirectTo(route: string) {\r\n if (tokenNotExpired('access_token', this.accessToken)) {\r\n localStorage.setItem('access_token', this.accessToken);\r\n this.router.navigate([route]);\r\n }\r\n this.router.navigate['/login']; \r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n}\r\n\r\nexport interface Pages {\r\n account: string;\r\n analyserReports: string;\r\n};\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/auth/redirect.component.ts\n **/","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { MdDialog, MdSnackBar } from '@angular/material';\r\n\r\nimport { UsersService, User } from '../_services/users.service';\r\nimport { DOMEvents } from '../../dom-events';\r\nimport { AuthService, Role, Permission } from '../../auth/auth.service';\r\nimport { PagerService } from '../../shared/services/pager.service';\r\nimport { FilterUserPipe } from './users.pipe';\r\nimport { UserEditDialog } from '../user/user-edit/user-edit.dialog';\r\n\r\n@Component({\r\n selector: 'users',\r\n template: require('./users.component.html'),\r\n styles: [ require('./users.component.css') ],\r\n providers: [UsersService, PagerService]\r\n})\r\nexport class UsersComponent implements OnInit {\r\n\r\n users: User[] = [];\r\n selectedUser: User;\r\n roles: string[];\r\n isLoading: boolean = false;\r\n sites: any[];\r\n changeDetected = false;\r\n search: string = '';\r\n searchUserSites: string = '';\r\n userCreating: boolean = false;\r\n sitesSubcription: any;\r\n Role:any = Role;\r\n Permission:any = Permission;\r\n creatingProvision: boolean = false;\r\n\r\n // pager object\r\n pager: any = {\r\n totalItems: 0,\r\n currentPage: 1,\r\n totalPages: 1\r\n };\r\n\r\n // paged items\r\n pagedItems: any[];\r\n\r\n // initialise the filter user pipe to make use of transform function\r\n filterUserPipe = new FilterUserPipe();\r\n\r\n constructor(\r\n public dialog: MdDialog,\r\n public snackBar: MdSnackBar,\r\n private pagerService: PagerService,\r\n private router: Router,\r\n private domEvents: DOMEvents,\r\n private user: UsersService,\r\n public auth: AuthService) { }\r\n\r\n ngOnInit() {\r\n this.getUsers();\r\n this.domEvents.triggerOnDocument(\"appready\");\r\n }\r\n\r\n filterUser(query: any, page?: number) {\r\n if (query === '') {\r\n this.setPage(1);\r\n }\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n // use pipe to filter data\r\n let filtered = this.filterUserPipe.transform(this.users, query);\r\n\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(filtered.length, page, 25);\r\n\r\n // get current page of items\r\n this.pagedItems = filtered.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n getUsers() {\r\n this.isLoading = true;\r\n\r\n this.user.getUsers().subscribe(\r\n (users: any) => {\r\n this.users = users;\r\n this.isLoading = false;\r\n\r\n // initial to page 1\r\n this.setPage(1);\r\n },\r\n err => {\r\n this.isLoading = false;\r\n this.auth.unauthorized(err);\r\n console.error(err)\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Open edit user dialog\r\n * @param user \r\n */\r\n openEditUserDialog(user: any) {\r\n let dialogRef = this.dialog.open(UserEditDialog, {\r\n width: '250px',\r\n data: {\r\n user: user\r\n }\r\n }); \r\n }\r\n\r\n /**\r\n * Delete user\r\n */\r\n deleteUser(user: User) {\r\n if (window.confirm(\"Are you sure you want to delete user?\")) {\r\n this.user.deleteUser(user.emailAddress).subscribe(\r\n res => {\r\n this.getUsers();\r\n let snackBarRef = this.snackBar.open(`User ${user.emailAddress} has been deleted`, null, {\r\n duration: 2000\r\n }); \r\n },\r\n err => console.error(err)\r\n );\r\n }\r\n }\r\n\r\n SetStatus(user: any){\r\n if(user.emailAddress == this.auth.getUser().emailAddress){\r\n alert(\"You can't activate/deactivate your own account.\");\r\n return\r\n }\r\n\r\n user.userAccessAudit.changedBy = this.auth.getUser().emailAddress\r\n user.userAccessAudit.active = !user.userAccessAudit.active\r\n user.userAccessAudit.changedOn = new Date() ;\r\n\r\n this.user.UpdateUserAccessStatus(user).subscribe((res: any) => {\r\n //this.users[rowid] = res \r\n }, err => {\r\n console.error(err)\r\n });\r\n }\r\n\r\n /**\r\n * Navigate to create user form\r\n */\r\n createUser() {\r\n this.router.navigate(['/users/create']);\r\n }\r\n\r\n /**\r\n * Create user provision\r\n * @param user \r\n */\r\n createProvision(user: any) {\r\n this.creatingProvision = true;\r\n\r\n this.user.createUserProvision(user).subscribe((provision: any) => {\r\n this.creatingProvision = false;\r\n let snackBarRef = this.snackBar.open(`Provision has been created for ${user.emailAddress}`, null, {\r\n duration: 2000\r\n }); \r\n }, err => {\r\n this.creatingProvision = false\r\n console.log(err);\r\n if (err._body.toString().length >0)\r\n {\r\n let snackBarRef = this.snackBar.open(`Please activate the user before provision ${user.emailAddress}`, null, {\r\n duration: 2000\r\n }); \r\n }\r\n });\r\n }\r\n\r\n setPage(page: number) {\r\n if (page < 1 || page > this.pager.totalPages) {\r\n return;\r\n }\r\n\r\n // if search query apply filter\r\n if (this.search !== '') {\r\n this.filterUser(this.search, page);\r\n } else {\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(this.users.length, page, 25);\r\n\r\n // get current page of items\r\n this.pagedItems = this.users.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n }\r\n \r\n}\r\n\r\nexport interface EpicWebUser {\r\n sites: any;\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/users/users-view/users.component.ts\n **/","import { Injectable } from '@angular/core';\r\nimport { Headers, Http, RequestOptions, Response } from '@angular/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { AuthHttp, AuthConfig, AUTH_PROVIDERS } from 'angular2-jwt';\r\nimport { Permission } from '../../auth/auth.service';\r\nimport { ConfigService } from '../../shared/services/config.service';\r\n\r\n@Injectable()\r\nexport class UsersService {\r\n\r\n private serviceBase: string = new ConfigService().getApiURI();\r\n private usersAPI = this.serviceBase + 'users';\r\n\r\n constructor(\r\n private http: Http,\r\n private authHttp: AuthHttp) { }\r\n \r\n getUsers() {\r\n var url: string = this.usersAPI;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n getRoles() {\r\n var url: string = this.usersAPI + '/roles';\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n getUserByEmail(emailAddress: string) {\r\n var url: string = this.usersAPI + '/' + emailAddress;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n getUserSiteAccess(emailAddress: string) {\r\n var url: string = this.usersAPI + '/' + emailAddress + '/sites';\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n getUsersInRoles(roles:string[]) {\r\n var url: string = this.usersAPI;\r\n\r\n return this.authHttp.post(url, roles)\r\n .map(this.extractData);\r\n }\r\n\r\n addRoleToUser(userRole: UserRole) {\r\n var url: string = this.usersAPI + '/role/add';\r\n\r\n return this.authHttp.put(url, userRole);\r\n }\r\n\r\n removeRoleFromUser(userRole: UserRole) {\r\n var url: string = this.usersAPI + '/role/remove';\r\n\r\n return this.authHttp.put(url, userRole);\r\n }\r\n\r\n updateUserRole(userRole: UserRole) {\r\n var url: string = this.usersAPI + '/role/update';\r\n\r\n return this.authHttp.put(url, userRole);\r\n }\r\n\r\n addSiteToUser(userSite: UserSite) {\r\n var url: string = this.usersAPI + '/site/add';\r\n\r\n return this.authHttp.put(url, userSite);\r\n }\r\n\r\n removeSiteFromUser(usersite: UserSite) {\r\n var url: string = this.usersAPI + '/site/remove';\r\n\r\n return this.authHttp.put(url, usersite);\r\n }\r\n\r\n deleteUser(emailAddress: string) {\r\n var url: string = this.usersAPI + '/' + emailAddress;\r\n\r\n return this.authHttp.delete(url);\r\n }\r\n\r\n updateUser(user: any) {\r\n var url: string = this.usersAPI;\r\n var body = user;\r\n\r\n return this.authHttp.put(url, body);\r\n }\r\n\r\n UpdateUserAccessStatus(user: any) {\r\n var url: string = this.usersAPI + '/status';\r\n var body = user;\r\n\r\n return this.authHttp.put(url, body);\r\n }\r\n \r\n\r\n getUserProvisions(user: any) {\r\n var url: string = this.usersAPI + '/' + user.emailAddress + '/provisions';\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData); \r\n }\r\n\r\n createUserProvision(user: any) {\r\n var url: string = this.usersAPI + '/' + user.emailAddress + '/provision'\r\n\r\n return this.authHttp.post(url, '')\r\n .map(this.extractData);\r\n }\r\n\r\n deleteUserProvision(id: string) {\r\n var url: string = this.usersAPI + '/provision/' + id;\r\n\r\n return this.authHttp.delete(url);\r\n }\r\n\r\n getUserEmailAddresses() {\r\n var url = `${this.usersAPI}/emailaddresses`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /**\r\n * Add permission to user\r\n * @param emailAddress \r\n * @param permission \r\n */\r\n addPermission(emailAddress: string, permission: Permission, siteId?: number, restrictedSite?: boolean) {\r\n let url = `${this.usersAPI}/permissions?siteId=${siteId}`;\r\n\r\n return this.authHttp.post(url, { \r\n emailAddress: emailAddress, \r\n siteId: siteId, \r\n restrictedSite: restrictedSite, \r\n permissions: [ permission ]\r\n });\r\n }\r\n\r\n /**\r\n * Remove permission from user\r\n * @param emailAddress\r\n * @param permission\r\n */\r\n removePermission(emailAddress: string, permission: any, siteId?: number) {\r\n let url = `${this.usersAPI}/${emailAddress}/permissions/${permission}?siteId=${siteId}`;\r\n\r\n return this.authHttp.delete(url);\r\n }\r\n\r\n /**\r\n * Get list of users in permission\r\n * @param permission\r\n */\r\n getUsersInPermission(permission: Permission) {\r\n let url = `${this.usersAPI}/permissions/${permission}`;\r\n\r\n return this.authHttp.get(url).map(this.extractData);\r\n }\r\n\r\n /**\r\n * Get list of restricted site users in permission\r\n * @param siteId \r\n * @param permission \r\n */\r\n getRestrictedSiteUsersInPermission(siteId: number, permission: Permission) {\r\n let url = `${this.usersAPI}/sites/${siteId}/restricted/permissions/${permission}`;\r\n\r\n return this.authHttp.get(url).map(this.extractData);\r\n }\r\n\r\n /**\r\n * Get a list of end user email addresses associated with site\r\n * @param siteId \r\n */\r\n getEndUsersInSite(siteId: number) {\r\n let url = `${this.usersAPI}/sites/${siteId}/endusers`;\r\n\r\n return this.authHttp.get(url).map(this.extractData);\r\n }\r\n\r\n private extractData(res: Response) {\r\n var body = {};\r\n\r\n try {\r\n body = res.json();\r\n }\r\n catch (err) {\r\n\r\n }\r\n return body || {};\r\n }\r\n\r\n private handleError(errors: any) {\r\n\r\n }\r\n}\r\n\r\nexport interface UserRole {\r\n emailAddress: string;\r\n roleName: string;\r\n}\r\n\r\nexport interface UserSite {\r\n emailAddress: string;\r\n siteId: number;\r\n}\r\n\r\nexport interface User {\r\n emailAddress:string;\r\n roles: string[];\r\n sites: number[];\r\n provisions: any[];\r\n userAccessAudit : UserAccessAudit\r\n}\r\nexport interface UserAccessAudit {\r\n activeStatus:boolean,\r\n changedBy:string\r\n changedOn: any\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/users/_services/users.service.ts\n **/","import * as _ from 'underscore';\r\n\r\nexport class PagerService {\r\n getPager(totalItems: number, currentPage: number = 1, pageSize: number = 10) {\r\n // calculate total pages\r\n var totalPages = (pageSize == -1) ? 1 : Math.ceil(totalItems / pageSize);\r\n\r\n var startPage: any, endPage: any;\r\n if (totalPages <= 10) {\r\n // less than 10 total pages so show all\r\n startPage = 1;\r\n endPage = totalPages;\r\n } else {\r\n // more than 10 total pages so calculate start and end pages\r\n if (currentPage <= 6) {\r\n startPage = 1;\r\n endPage = 10;\r\n } else if (currentPage + 4 >= totalPages) {\r\n startPage = totalPages - 9;\r\n endPage = totalPages;\r\n } else {\r\n startPage = currentPage - 5;\r\n endPage = currentPage + 4;\r\n }\r\n }\r\n\r\n // calculate start and end item indexes\r\n var startIndex = (pageSize == -1) ? 0 : (currentPage - 1) * pageSize;\r\n var endIndex = (pageSize == -1) ? (totalItems - 1) : Math.min(startIndex + pageSize - 1, totalItems - 1);\r\n\r\n // create an array of pages to ng-repeat in the pager control\r\n var pages = _.range(startPage, endPage + 1);\r\n\r\n // return object with all pager properties required by the view\r\n return {\r\n totalItems: totalItems,\r\n currentPage: currentPage,\r\n pageSize: pageSize,\r\n totalPages: totalPages,\r\n startPage: startPage,\r\n endPage: endPage,\r\n startIndex: startIndex,\r\n endIndex: endIndex,\r\n pages: pages\r\n };\r\n }\r\n\r\n filter(reportTab: string, data:any[], filter: any, components:string='other'): any[] {\r\n \r\n if(reportTab === 'custom') {\r\n if (filter.status && filter.status !== \"All\") {\r\n switch(filter.status) {\r\n case 'To Review':\r\n data = data.filter(d => d.reviewed === false);\r\n break;\r\n case 'Keep':\r\n data = data.filter(d => d.keep === true);\r\n data.forEach(r => {\r\n if (r.reportID) {\r\n r.reportStyles = r.reportStyles.filter((rs: any) => rs.keep);\r\n }\r\n });\r\n break;\r\n case 'To Remove':\r\n data = data.filter(d => d.keep === false);\r\n break;\r\n case 'Cloud Warning':\r\n if(components == 'other'){\r\n data = data.filter(d => d.cloudComplexity == true);\r\n }\r\n else{\r\n data = data.filter(d => d.external == true);\r\n }\r\n break;\r\n }\r\n }\r\n\r\n if (filter.company !== \"All\" && filter.company !== \"All\") {\r\n data = data.filter(d => d.company === filter.company || d.companyID === filter.company);\r\n }\r\n }\r\n return data;\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/shared/services/pager.service.ts\n **/","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({name: 'filterUser'})\r\nexport class FilterUserPipe implements PipeTransform {\r\n transform(users: any[], query: string): any[] {\r\n if (query === '') {\r\n return users;\r\n }\r\n\r\n return users.filter(u => {\r\n if (u.fullName == null) {\r\n u.fullName = '';\r\n }\r\n \r\n let sitefound;\r\n u.sites.filter( (site: any) => {\r\n \r\n if( site == query ){\r\n sitefound = true;\r\n }\r\n\r\n } )\r\n\r\n if (u.fullName.toLowerCase().indexOf(query.toLowerCase()) !== -1 ||\r\n u.emailAddress.toLowerCase().indexOf(query.toLowerCase()) !== -1 || sitefound) {\r\n return u;\r\n } \r\n });\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/users/users-view/users.pipe.ts\n **/","import { Component, Inject } from '@angular/core';\r\nimport { MdDialogRef, MD_DIALOG_DATA } from '@angular/material';\r\nimport { AuthService, Permission, Role, LoggedInUser, Environments } from '../../..//auth/auth.service';\r\nimport { UsersService } from '../../_services/users.service';\r\n\r\n@Component({\r\n selector: 'user-edit-dialog',\r\n styles: [require('./user-edit.dialog.css')],\r\n template: require('./user-edit.dialog.html'),\r\n providers: [UsersService]\r\n})\r\nexport class UserEditDialog {\r\n Role: any = Role;\r\n user: any;\r\n roles: any[] = [];\r\n sites: any[] = [];\r\n sitesSelected: number[] = [];\r\n userPermissionsSelected: string[] = [];\r\n userEnvironmentSelected: string[] = [];\r\n permissions: any[] = [];\r\n environments: any[] = [];\r\n isLoading: boolean = false;\r\n loadingSites: boolean = false;\r\n loggedInUser: LoggedInUser;\r\n constructor(\r\n private auth: AuthService,\r\n private usersService: UsersService,\r\n public dialogRef: MdDialogRef,\r\n @Inject(MD_DIALOG_DATA) public data: any) {\r\n\r\n this.isLoading = true;\r\n this.getUser(data.user.emailAddress);\r\n this.getRoles();\r\n this.loggedInUser = this.auth.getUser();\r\n }\r\n\r\n /**\r\n * Get available user roles\r\n */\r\n getRoles() {\r\n this.usersService.getRoles().subscribe((roles: any) => {\r\n this.roles = roles;\r\n });\r\n }\r\n\r\n /**\r\n * Get available user permissions\r\n */\r\n getPermissions() {\r\n let permissions = Object.keys(Permission).filter(p => {\r\n if (p !== \"CloudViewInstanceView\" && p !== \"CloudTransferTool\") {\r\n return p;\r\n } \r\n });\r\n \r\n this.permissions = permissions.map((item: any) => {\r\n return {\r\n key: item.replace(/([A-Z])/g, ' $1').trim(), // add space before every uppercase character\r\n value: Permission[item]\r\n }\r\n });\r\n if(this.loggedInUser.roles.indexOf('Administrator') < 0){\r\n this.permissions = this.permissions.filter((p:any) => p.value != 'site.restricted.admin')\r\n //const index = this.permissions.findIndex((p:any) => p.value == 'site.restricted.admin')\r\n //this.permissions.splice(index, 1)\r\n }\r\n }\r\n\r\n getEnvironment() {\r\n let environments = Object.keys(Environments);\r\n\r\n this.environments = environments.map((item: any) => {\r\n return {\r\n key: item.replace(/([A-Z])/g, ' $1').trim(), // add space before every uppercase character\r\n value: Environments[item]\r\n }\r\n });\r\n }\r\n /**\r\n * Get user details, role, permissions etc\r\n */\r\n getUser(emailAddress: string) {\r\n this.usersService.getUserByEmail(emailAddress).subscribe((user: any) => {\r\n this.user = user;\r\n this.userPermissionsSelected = Object.keys(this.user.permissions);\r\n this.userEnvironmentSelected = Object.keys(this.user.environments);\r\n this.getSites(user);\r\n this.isLoading = false;\r\n this.getPermissions();\r\n this.getEnvironment();\r\n if(!this.isEpicorEmployee(emailAddress))\r\n {\r\n this.roles = this.roles.filter(e => (e !== 'EpicorEmployee' && e !== 'Administrator'));\r\n } \r\n\r\n });\r\n }\r\n\r\n isEpicorEmployee(emailAddress: string): boolean {\r\n if (emailAddress.split('@')[1].indexOf('epicor.com') > -1) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Cancel dialog\r\n */\r\n cancel() {\r\n this.dialogRef.close();\r\n }\r\n\r\n /**\r\n * Update the user\r\n */\r\n update() {\r\n\r\n if(this.userEnvironmentSelected.length >0)\r\n {\r\n this.usersService.updateUser(this.user).subscribe((res: any) => {\r\n this.dialogRef.close();\r\n }, err => {\r\n\r\n });\r\n }\r\n else{\r\n alert('You have to choose any one of the enviornment')\r\n }\r\n }\r\n\r\n /**\r\n * Map the selected permissions to user permissions\r\n */\r\n mapUserPermissions() {\r\n let permissionKeys = Object.keys(Permission);\r\n let permissions = {};\r\n\r\n permissionKeys.forEach((permission: string) => {\r\n permissions[Permission[permission]] = false;\r\n });\r\n this.userPermissionsSelected.forEach((permission: string) => {\r\n permissions[permission] = true;\r\n });\r\n\r\n this.user.permissions = permissions;\r\n }\r\n\r\n mapUserEnvironment() {\r\n let environmentsKeys = Object.keys(Environments);\r\n let environments = {};\r\n\r\n environmentsKeys.forEach((env: string) => {\r\n environments[Environments[env]] = false;\r\n });\r\n\r\n this.userEnvironmentSelected.forEach((env: string) => {\r\n environments[env] = true;\r\n });\r\n this.user.environments = environments\r\n }\r\n\r\n /**\r\n * Get user sites from external service (epic web)\r\n * @param user \r\n */\r\n getSites(user: any) {\r\n this.loadingSites = true;\r\n\r\n this.usersService.getUserSiteAccess(user.emailAddress).subscribe(\r\n (epicWebUser: any) => {\r\n if (epicWebUser.sites) {\r\n this.sites = epicWebUser.sites; \r\n }\r\n\r\n this.loadingSites = false;\r\n }, err => this.loadingSites = false\r\n );\r\n }\r\n}\r\n \n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/users/user/user-edit/user-edit.dialog.ts\n **/","module.exports = \".mat-expansion-panel:not([class*=mat-elevation-z]) {\\r\\n -webkit-box-shadow: none;\\r\\n\\t-moz-box-shadow: none;\\r\\n\\tbox-shadow: none;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-select-panel {\\r\\n\\tmax-width: none !important;\\r\\n }\"\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/users/user/user-edit/user-edit.dialog.css\n ** module id = 338\n ** module chunks = 0\n **/","module.exports = \"
\\r\\n

Edit user

\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{role}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n ({{ site?.id }}) - {{ site?.detail?.orgName }} ({{site?.detail?.country}}) \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{ permission.key }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{ environment.key }}\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n 0\\\" [user]=\\\"user\\\"> \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/users/user/user-edit/user-edit.dialog.html\n ** module id = 339\n ** module chunks = 0\n **/","module.exports = \"Users ({{ pager?.totalItems }})\\r\\n\\t\\r\\n\\t
\\r\\n\\t
1\\\">\\r\\n\\t\\t\\r\\n \\t\\r\\n\\t
\\r\\n
\\r\\n\\r\\n
\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
Full NameEmail AddressRole
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\terror\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tblock\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tblock\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\tcheck_circle\\r\\n\\t\\t\\t\\t\\t\\terror\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
{{user.fullName}}{{user.emailAddress}}{{user.roles[0] }}\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/users/users-view/users.component.html\n ** module id = 340\n ** module chunks = 0\n **/","module.exports = \"td {\\r\\n padding: 2px;\\r\\n margin: 0\\r\\n}\\r\\n\\r\\n.check_circle {\\r\\n color: green;\\r\\n}\\r\\n\\r\\n.block {\\r\\n color: grey;\\r\\n}\\r\\n\\r\\n.error {\\r\\n color: red;\\r\\n}\"\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/users/users-view/users.component.css\n ** module id = 341\n ** module chunks = 0\n **/","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'user-sites',\r\n styles: [ require('./user-sites.component.css') ],\r\n template: require('./user-sites.component.html')\r\n})\r\nexport class UserSitesComponent {\r\n\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/users/user/user-sites/user-sites.component.ts\n **/","module.exports = \".mat-expansion-panel:not([class*=mat-elevation-z]) {\\r\\n -webkit-box-shadow: none;\\r\\n\\t-moz-box-shadow: none;\\r\\n\\tbox-shadow: none;\\r\\n}\"\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/users/user/user-sites/user-sites.component.css\n ** module id = 343\n ** module chunks = 0\n **/","module.exports = \"\\r\\n \\r\\n Sites\\r\\n \\r\\n \\r\\n
    \\r\\n
  • \\r\\n 26674 \\r\\n
    \\r\\n View\\r\\n Edit\\r\\n Admin \\r\\n
    \\r\\n
  • \\r\\n
  • \\r\\n 29974\\r\\n
  • \\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/users/user/user-sites/user-sites.component.html\n ** module id = 344\n ** module chunks = 0\n **/","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'user-permissions',\r\n styles: [ require('./user-permissions.component.css') ],\r\n template: require('./user-permissions.component.html')\r\n})\r\nexport class UserPermissionsComponent {\r\n \r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/users/user/user-permissions/user-permissions.component.ts\n **/","module.exports = \"\\r\\n \\r\\n Permissions\\r\\n \\r\\n \\r\\n

These are global permissions for the user. If you need to restrict a user permission to a particular site you will need to edit the site permissions.

\\r\\n
    \\r\\n
  • Analyser Report View
  • \\r\\n
  • Analyser Report Admin
  • \\r\\n
  • User Provision Create
  • \\r\\n
  • User View
  • \\r\\n
  • User Admin
  • \\r\\n
  • Site View
  • \\r\\n
  • Site Create
  • \\r\\n
  • Site Edit
  • \\r\\n
  • Site Admin
  • \\r\\n
  • Restricted Site Admin
  • \\r\\n
  • Conversion View
  • \\r\\n
  • Conversion Monitor Connect
  • \\r\\n
  • Conversion Monitor
  • \\r\\n
  • Conversion Schedule View
  • \\r\\n
  • Conversion Schedule Edit
  • \\r\\n
  • Cloud View Instance View
  • \\r\\n
  • Cloud View Dashboard View
  • \\r\\n
  • Cloud View Admin
  • \\r\\n
  • Cloud Transfer Tool
  • \\r\\n
  • Cloud Tooling
  • \\r\\n
  • Application Create Version
  • \\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/users/user/user-permissions/user-permissions.component.html\n ** module id = 347\n ** module chunks = 0\n **/","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\r\nimport { UsersService } from '../../_services/users.service';\r\n\r\n@Component({\r\n selector: 'user-provisions',\r\n styles: [require('./user-provisions.component.css')],\r\n template: require('./user-provisions.component.html'),\r\n providers: [ UsersService ]\r\n})\r\nexport class UserProvisionsComponent implements OnInit {\r\n @Input() user: any;\r\n provisions: any[] = [];\r\n\r\n constructor(private usersService: UsersService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.provisions = this.user.provisions;\r\n }\r\n\r\n /**\r\n * Add provision\r\n */\r\n addProvision() {\r\n this.usersService.createUserProvision(this.user).subscribe((provision:any) => {\r\n this.provisions.push(provision);\r\n });\r\n }\r\n\r\n /**\r\n * Delete provision\r\n * @param index \r\n * @param provision \r\n */\r\n deleteProvision(index: number, provision: any) {\r\n this.usersService.deleteUserProvision(provision.id).subscribe((res: any) => {\r\n this.provisions.splice(index, 1);\r\n });\r\n }\r\n\r\n /**\r\n * Get provision url\r\n * @param id \r\n */\r\n getProvisionUrl(id: string): string {\r\n return `https://${window.location.host}/#/account/password/add?provision=${id}`;\r\n }\r\n \r\n /**\r\n * Select all text\r\n */\r\n selectAllText(input: any) {\r\n input.setSelectionRange(0, input.value.length);\r\n }\r\n\r\n /**\r\n * \r\n * @param input \r\n */\r\n copyProvisionUrlToClipboard(input: any) {\r\n input.focus();\r\n\r\n try {\r\n var copied = document.execCommand('copy');\r\n } catch (err) {\r\n console.log('Unable to copy');\r\n }\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/users/user/user-provisions/user-provisions.component.ts\n **/","module.exports = \".mat-expansion-panel:not([class*=mat-elevation-z]) {\\r\\n -webkit-box-shadow: none;\\r\\n\\t-moz-box-shadow: none;\\r\\n\\tbox-shadow: none;\\r\\n}\\r\\n\\r\\n.provisions-header {\\r\\n\\tdisplay:flex;\\r\\n\\tjustify-content:space-between;\\r\\n\\talign-items:center;\\r\\n\\tcolor:#288fc7;\\r\\n}\\r\\n\\r\\n.provision-items {\\r\\n\\theight:150px;\\r\\n\\toverflow-y:auto;\\r\\n\\toverflow-x:hidden;\\r\\n\\tlist-style:none;\\r\\n\\tpadding:0;\\r\\n\\tmargin:0;\\r\\n\\twidth:220px;\\r\\n}\\r\\n\\r\\n.provision-item {\\r\\n\\tdisplay:flex;\\r\\n\\tjustify-content: space-between;\\r\\n\\tpadding-bottom:10px;\\r\\n\\tbox-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);\\t\\r\\n}\\r\\n\\r\\n.provision-item-col1 {\\r\\n\\tdisplay:flex;\\r\\n\\tflex-direction: column;\\r\\n}\"\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/users/user/user-provisions/user-provisions.component.css\n ** module id = 349\n ** module chunks = 0\n **/","module.exports = \"
\\r\\n
\\r\\n Provisions ({{provisions.length}})\\r\\n \\r\\n
\\r\\n
    \\r\\n
  • \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
  • \\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/users/user/user-provisions/user-provisions.component.html\n ** module id = 350\n ** module chunks = 0\n **/","import { Component, OnInit } from '@angular/core';\r\nimport { ApplicationService, Application } from './application.service';\r\nimport { AuthService } from '../auth/auth.service';\r\nimport { DOMEvents } from '../dom-events';\r\n\r\n@Component({\r\n selector: 'applications',\r\n template: require('./applications.component.html'),\r\n providers: [ApplicationService]\r\n})\r\nexport class ApplicationsComponent implements OnInit {\r\n applications: Application[] = [];\r\n isLoading: boolean;\r\n\r\n constructor(private applicationService: ApplicationService, private auth: AuthService, private domEvents: DOMEvents) { }\r\n\r\n ngOnInit() {\r\n this.getApplications();\r\n this.domEvents.triggerOnDocument(\"appready\");\r\n }\r\n\r\n //TODO: order version by descending\r\n getApplications() {\r\n this.isLoading = true;\r\n this.applicationService.getApplications().subscribe((applications: Application[]) => {\r\n this.applications = applications;\r\n this.isLoading = false;\r\n }, (err:any) => {\r\n this.isLoading = false\r\n });\r\n }\r\n\r\n download(name: string, element: any) {\r\n var version = element.options[element.selectedIndex].value;\r\n\r\n if (name && version) {\r\n this.applicationService.download(name, version).subscribe((res: any) => {\r\n window.open(res.uri, \"_self\");\r\n }, (err:any) => {\r\n this.auth.unauthorized(err);\r\n });\r\n }\r\n }\r\n\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/applications/applications.component.ts\n **/","import { Injectable } from '@angular/core';\r\nimport { Headers, Http, RequestOptions, Response } from '@angular/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { AuthHttp, AuthConfig, AUTH_PROVIDERS } from 'angular2-jwt';\r\nimport { ConfigService } from '../shared/services/config.service';\r\nimport 'rxjs/operator/map';\r\n\r\n@Injectable()\r\nexport class ApplicationService {\r\n private serviceBase: string = new ConfigService().getApiURI();\r\n private applicationsAPI = this.serviceBase + 'applications';\r\n\r\n constructor(\r\n private http: Http,\r\n private authHttp: AuthHttp) { }\r\n\r\n getApplications() {\r\n return this.authHttp.get(this.applicationsAPI)\r\n .map(this.extractData);\r\n }\r\n\r\n download(name: string, version?: string) {\r\n if (!version) {\r\n version = 'latest';\r\n }\r\n let url: string = `${this.applicationsAPI}/download/${name}/version/${version}`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n downloadDoc(applicationName: string, fileName: string) {\r\n let url: string = `${this.applicationsAPI}/documents/${applicationName}/${fileName}`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n uploadDoc(applicationName: string, fileName: string, formFile: FormData) {\r\n let headers = new Headers({ 'Authorization': `Bearer ${localStorage.getItem('access_token')}` });\r\n let options = new RequestOptions({ headers: headers });\r\n let url: string = `${this.applicationsAPI}/documents/${applicationName}/${fileName}`;\r\n return this.http.post(url, formFile, options).map(this.extractData);\r\n }\r\n\r\n\r\n uploadcloudviewDoc(fileName: string, formFile: FormData) {\r\n let headers = new Headers({ 'Authorization': `Bearer ${localStorage.getItem('access_token')}` });\r\n let options = new RequestOptions({ headers: headers });\r\n let url: string = `${this.applicationsAPI}/documents/CloudView/uploadfile`;\r\n return this.http.post(url, formFile, options).map(this.extractData);\r\n }\r\n\r\n private extractData(res: Response) {\r\n let body = res.json();\r\n return body || {};\r\n }\r\n}\r\n\r\nexport interface Application {\r\n id: string;\r\n name: string;\r\n displayName: string;\r\n autoUpdater: string;\r\n latestVersion: string;\r\n documents: Document[];\r\n versions: Version[]\r\n}\r\n\r\ninterface Version {\r\n version: string;\r\n url: string;\r\n}\r\n\r\nexport interface ApplicationDocument {\r\n fileName: string;\r\n displayName: string;\r\n fileUri: string;\r\n}\r\n\r\nexport interface CloudViewDocument {\r\n fileName: \"CloudView.pdf\";\r\n displayName: \"CloudView\";\r\n fileUri: \"https://erpcloudemail.blob.core.windows.net/attachments/CloudView.pdf\";\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/applications/application.service.ts\n **/","module.exports = \"Applications ({{applications?.length}})\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n {{application.displayName}}\\r\\n Latest version: {{application.latestVersion}}\\r\\n \\r\\n \\r\\n
\\r\\n

{{application.description}}

\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/applications/applications.component.html\n ** module id = 353\n ** module chunks = 0\n **/","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { DOMEvents } from '../../dom-events';\r\nimport { ReportsService } from '../reports/reports.service';\r\nimport { AuthService, LoggedInUser, Permission } from '../../auth/auth.service';\r\nimport { PagerService } from '../../shared/services/pager.service';\r\nimport { FilterReportsPipe } from './reports.pipe';\r\n\r\n@Component({\r\n selector: 'reports',\r\n styles: [ require('./reports.component.css') ],\r\n template: require('./reports.component.html'),\r\n providers: [ReportsService, PagerService]\r\n})\r\nexport class ReportsComponent implements OnInit {\r\n reports: Report[] = [];\r\n reportsCount: number = 0;\r\n pageIndex: number = 0;\r\n continuationTokens: string[] = [\"\"]; // include empty to indicate page 1\r\n searchText: string = '';\r\n searchTimeout: any;\r\n user: LoggedInUser;\r\n myReports: boolean = false;\r\n hasMoreResults: boolean = false;\r\n isLoading: boolean = false;\r\n showAll: boolean = true;\r\n firstLoad: boolean = true;\r\n\r\n constructor(\r\n private pagerService: PagerService,\r\n private router: Router,\r\n private domEvents: DOMEvents,\r\n private reportsService: ReportsService,\r\n private auth: AuthService) { }\r\n\r\n ngOnInit() {\r\n // this.getReports();\r\n this.getReportsCount();\r\n this.user = this.auth.getUser();\r\n this.domEvents.triggerOnDocument(\"appready\");\r\n }\r\n\r\n showAllReports() {\r\n if(this.searchText != '') {\r\n this.searchText = '';\r\n this.getReports();\r\n } else {\r\n this.showAll = !this.showAll;\r\n }\r\n if(this.firstLoad) {\r\n this.getReports();\r\n this.showAll = true;\r\n this.firstLoad = false;\r\n }\r\n }\r\n\r\n getMyReports() {\r\n this.pageIndex = 0;\r\n this.continuationTokens = [\"\"];\r\n\r\n if (this.myReports) {\r\n this.myReports = false;\r\n } else {\r\n this.myReports = true;\r\n }\r\n\r\n this.getReports();\r\n this.getReportsCount();\r\n }\r\n\r\n getReports(searchText: string = \"\", token: string = \"\") {\r\n this.isLoading = true;\r\n\r\n this.reportsService.getReportsSummary(searchText, token, this.myReports).subscribe(\r\n response => {\r\n this.reports = response.result;\r\n this.hasMoreResults = response.hasMoreResults;\r\n this.reportsCount = response.searchCount;\r\n\r\n if (response.requestContinuation != null) {\r\n var token = JSON.parse(response.requestContinuation).token;\r\n if (typeof this.continuationTokens[this.pageIndex + 1] === \"undefined\") {\r\n this.continuationTokens.push(token);\r\n }\r\n }\r\n\r\n this.isLoading = false;\r\n this.firstLoad = false;\r\n });\r\n }\r\n\r\n getReportsCount() {\r\n this.reportsService.getReportsCount(this.myReports).subscribe(\r\n data => {\r\n this.reportsCount = data.count\r\n });\r\n }\r\n\r\n filterReports() {\r\n if (this.searchTimeout != undefined) clearTimeout(this.searchTimeout);\r\n this.searchTimeout = setTimeout(() => {\r\n this.pageIndex = 0;\r\n this.continuationTokens = [\"\"];\r\n let token = this.continuationTokens[this.pageIndex];\r\n this.showAll = this.searchText == '' ? false : true;\r\n this.getReports(this.searchText, token); \r\n }, 500);\r\n }\r\n\r\n getReportHref(siteId:number, element: any) {\r\n return `#/sites/${siteId}/analyserreports/latest`; \r\n }\r\n\r\n updateReportHref(siteReportsElement: any, siteId:number, version:number) {\r\n var row = siteReportsElement;\r\n var cells = row.getElementsByTagName(\"td\");\r\n var lastCell = cells[cells.length - 1];\r\n var a = lastCell.getElementsByTagName(\"a\")[0]; \r\n a.href = `#/sites/${siteId}/analyserreports/${version}`;\r\n }\r\n\r\n deleteReport(reportSelection:any, siteId: number) {\r\n let version = reportSelection.value;\r\n if(confirm(`Are you sure you want to delete report ${version} for site ${siteId}`)) { \r\n this.reportsService.deleteReport(siteId, version).subscribe(\r\n (res:any) => {\r\n this.getReports();\r\n }\r\n );\r\n }\r\n }\r\n\r\n deleteReports(siteId: number) {\r\n if (confirm(\"Are you sure you want to delete all reports for site \" + siteId + \"?\")) {\r\n this.reportsService.deleteReports(siteId).subscribe(\r\n (res: any) => {\r\n this.getReports();\r\n }\r\n );\r\n }\r\n }\r\n\r\n previous() {\r\n this.pageIndex -= 1;\r\n let token = this.continuationTokens[this.pageIndex];\r\n\r\n if (typeof token != \"undefined\") {\r\n this.getReports(this.searchText, token);\r\n } else {\r\n this.pageIndex += 1;\r\n }\r\n }\r\n\r\n next() {\r\n this.pageIndex += 1;\r\n let token = this.continuationTokens[this.pageIndex];\r\n\r\n if (typeof token !== \"undefined\") {\r\n this.getReports(this.searchText, token);\r\n } else {\r\n this.pageIndex -= 1;\r\n }\r\n }\r\n\r\n hasDeletePermission()\r\n {\r\n if(this.user.admin === 'true')\r\n {\r\n return true; \r\n } \r\n return this.user.permissions.indexOf(Permission.AnalyserReportAdmin) > -1;\r\n \r\n } \r\n\r\n public getModifiedERPProductVersion(version: Version): string {\r\n if (version.productVersion && version.productVersion.indexOf('11.') === 0) {\r\n const [, minor, patch, build] = version.productVersion.split('.');\r\n \r\n let versionString; \r\n if (minor === '1') {\r\n if (patch === '100') {\r\n versionString = `2021.1.${build}`;\r\n } else if (patch === '200') {\r\n versionString = `2021.2.${build}`;\r\n }\r\n } else if (minor === '2') {\r\n if (patch === '100') {\r\n versionString = `2022.1.${build}`;\r\n } else if (patch === '200') {\r\n versionString = `2022.2.${build}`;\r\n } else if (patch === '300') {\r\n versionString = `2023.1.${build}`;\r\n } else if (patch === '400') {\r\n versionString = `2023.2.${build}`;\r\n }\r\n } else if (minor === '3') {\r\n if (patch === '100') {\r\n versionString = `2024.1.${build}`;\r\n } else if (patch === '200') {\r\n versionString = `2024.2.${build}`;\r\n }\r\n }\r\n return `Kinetic ${versionString}`;\r\n } \r\n return version.productVersion || 'NONE';\r\n }\r\n} \r\n\r\nexport interface Report {\r\n siteId: number;\r\n siteName?: string;\r\n versions: Version[]\r\n}\r\n\r\nexport interface Version {\r\n version: number;\r\n analysisDate?: string;\r\n productVersion?:string\r\n} \n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/reports/reports.component.ts\n **/","import { Injectable } from '@angular/core';\r\nimport { Headers, Http, RequestOptions, Response } from '@angular/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { AuthHttp, AuthConfig, AUTH_PROVIDERS } from 'angular2-jwt';\r\nimport { ConfigService } from '../../shared/services/config.service';\r\nimport 'rxjs/operator/map';\r\n\r\n@Injectable()\r\nexport class ReportsService {\r\n private serviceBase: string = new ConfigService().getApiURI();\r\n private reportsAPI = this.serviceBase + 'analyserreports';\r\n private customizationAPI = this.serviceBase + 'customizationanalysis';\r\n\r\n constructor(private authHttp: AuthHttp) { }\r\n\r\n getReports() {\r\n var url: string = this.reportsAPI;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /** Get reports summary result paged with request continuation */\r\n getReportsSummary(q: string = \"\", token: string = \"\", myReports: boolean = false) {\r\n token = encodeURIComponent(token);\r\n let url = `${this.reportsAPI}/summary?q=${q}&token=${token}&myReports=${myReports}`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /** Get reports count */\r\n getReportsCount(myReports: boolean = false) {\r\n let url = `${this.reportsAPI}/count?myReports=${myReports}`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n updateReport(report: any) {\r\n var url: string = this.reportsAPI;\r\n return this.authHttp.put(url, report);\r\n }\r\n\r\n refreshReport(reportId: string) {\r\n var url: string = this.customizationAPI + '/' + reportId;\r\n return this.authHttp.put(url,null);\r\n }\r\n\r\n deleteReports(siteId: number) {\r\n var url: string = this.reportsAPI + '/' + siteId;\r\n return this.authHttp.delete(url);\r\n }\r\n\r\n deleteReport(siteId: number, version: number) {\r\n let url = `${this.reportsAPI}/${siteId}/version/${version}`;\r\n return this.authHttp.delete(url);\r\n }\r\n\r\n createSitePreference(sitePreference: any) {\r\n var url: string = this.reportsAPI + '/sitereference';\r\n var body = sitePreference;\r\n\r\n return this.authHttp.post(url, body);\r\n }\r\n\r\n getSitePreference(siteId: number) {\r\n var url: string = this.reportsAPI + '/sitereference/' + siteId;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /** Gets a temporary report download token - Used in exporting */\r\n getReportExportToken(reportId: string) {\r\n let url = `${this.reportsAPI}/${reportId}/download/token`;\r\n\r\n return this.authHttp.get(url).map(this.extractData);\r\n }\r\n\r\n /** Gets the export download url */\r\n getReportExportDownloadUrl(reportId: string, reportSection: string, token: string, exportType: string, siteId: any, version: any): string {\r\n return `${this.reportsAPI}/${reportId}/${siteId}/${version}/${reportSection}/export/${exportType}?token=${encodeURIComponent(token)}`;\r\n }\r\n\r\n getOwningCompanies(siteId: number) {\r\n let url = `${this.reportsAPI}/companylist/${siteId}`;\r\n\r\n return this.authHttp.get(url).map(this.extractData);\r\n }\r\n\r\n private extractData(res: Response) {\r\n let body = res.json();\r\n return body || {};\r\n }\r\n\r\n\r\n\r\n private handleError(errors: any) {\r\n\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/reports/reports.service.ts\n **/","module.exports = \"/* td {\\r\\n padding: 0;\\r\\n margin: 0\\r\\n} */\\r\\n\\r\\n.active-filter {\\r\\n background: #69c09a;\\r\\n}\\r\\n\\r\\ninput:disabled {\\r\\n cursor: not-allowed;\\r\\n}\"\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/reports/reports.component.css\n ** module id = 356\n ** module chunks = 0\n **/","module.exports = \"Reports ({{ reportsCount }})\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t
\\r\\n\\t
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\t\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
Site IdSite NameVersions
security
{{report.siteId}}{{report.siteName}}\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tchevron_right\\r\\n\\t\\t\\t\\t\\tdelete\\r\\n\\t\\t\\t\\t\\tdelete_forever\\r\\n\\t\\t\\t\\t
\\r\\n
\\r\\n\\r\\n\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/reports/reports.component.html\n ** module id = 357\n ** module chunks = 0\n **/","import { Component, OnInit } from '@angular/core';\r\nimport { DOMEvents } from '../dom-events';\r\nimport { AuthService, LoggedInUser } from '../auth/auth.service';\r\nimport { AccountService, ChangePassword } from './account.service';\r\n\r\n@Component({\r\n selector: 'account',\r\n template: require('./account.component.html'),\r\n providers: [AccountService]\r\n})\r\nexport class AccountComponent implements OnInit {\r\n\r\n user: LoggedInUser;\r\n message: string;\r\n\r\n security: any = {\r\n password: {\r\n currentPassword: null,\r\n newPassword: null,\r\n confirmNewPassword: null\r\n }\r\n }\r\n\r\n changePasswordVisible: boolean = false;\r\n\r\n constructor(\r\n private domEvents: DOMEvents,\r\n private auth: AuthService,\r\n private account: AccountService) { }\r\n\r\n ngOnInit() {\r\n this.user = this.auth.getUser(); \r\n this.domEvents.triggerOnDocument('appready');\r\n }\r\n\r\n toggleChangePassword() {\r\n if (this.changePasswordVisible) {\r\n this.changePasswordVisible = false;\r\n } else {\r\n this.changePasswordVisible = true;\r\n }\r\n }\r\n\r\n changePassword() {\r\n var password = this.security.password;\r\n\r\n if (password.newPassword === password.confirmNewPassword) {\r\n this.account.changePassword(password).subscribe(\r\n (res: any) => {\r\n this.message = \"Password has been changed.\";\r\n this.security.password = {};\r\n },\r\n err => {\r\n this.message = \"Failed to change password.\";\r\n }\r\n )\r\n } else {\r\n this.message = \"Passwords do not match.\";\r\n }\r\n }\r\n \r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/account/account.component.ts\n **/","import { Injectable } from '@angular/core';\r\nimport { Headers, Http, RequestOptions, Response } from '@angular/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { AuthHttp, AuthConfig, AUTH_PROVIDERS } from 'angular2-jwt';\r\nimport { ConfigService } from '../shared/services/config.service';\r\nimport 'rxjs/operator/map';\r\n\r\n@Injectable()\r\nexport class AccountService {\r\n private serviceBase: string = new ConfigService().getApiURI();\r\n private accountAPI = this.serviceBase + 'account';\r\n\r\n constructor(\r\n private http: Http,\r\n private authHttp: AuthHttp) {}\r\n\r\n register(userRegister: UserRegister) {\r\n var body = userRegister;\r\n\r\n return this.http.post(this.accountAPI + '/register', body);\r\n }\r\n\r\n forgotPassword(forgotPassword: ForgotPassword) {\r\n var body = forgotPassword;\r\n\r\n return this.http.post(this.accountAPI + '/password/forgot', body);\r\n }\r\n\r\n addPassword(userProvision: UserProvision) {\r\n var body = userProvision;\r\n\r\n return this.http.put(this.accountAPI + '/password/add', body)\r\n .map(this.extractData);\r\n }\r\n\r\n getProvisionData(provisionData: VerifyProvision) {\r\n var body = provisionData;\r\n\r\n return this.http.put(this.accountAPI + '/provision/get', body)\r\n .map(this.extractData);\r\n }\r\n\r\n resetPassword(userPassword: UserPasswordReset) {\r\n var body = userPassword;\r\n\r\n return this.http.put(this.accountAPI + '/password/reset', body);\r\n }\r\n\r\n changePassword(changePassword: ChangePassword) {\r\n var body = changePassword;\r\n\r\n return this.authHttp.put(this.accountAPI + '/password/change', body);\r\n }\r\n\r\n provisionUser(provision:ProvisionUser) {\r\n var url: string = this.accountAPI + '/provision/user';\r\n var body = provision;\r\n \r\n return this.authHttp.post(url, body); \r\n }\r\n\r\n verifyUser(verify: Verify) {\r\n var url = this.accountAPI + '/verifyuser';\r\n var body = verify;\r\n\r\n return this.authHttp.post(url, body)\r\n .map(this.extractData);\r\n }\r\n\r\n private extractData(res: Response) {\r\n let body = res.json();\r\n return body || {};\r\n }\r\n\r\n private handleError(errors: any) { }\r\n}\r\n\r\nexport interface UserProvision {\r\n provisionId: string;\r\n password: string;\r\n emailAddress:string;\r\n}\r\n\r\nexport interface UserPasswordReset {\r\n emailAddress: string;\r\n resetToken: string;\r\n password: string;\r\n}\r\n\r\nexport interface ForgotPassword {\r\n emailAddress: string;\r\n browserDetails:string;\r\n userAgent: string\r\n}\r\n\r\nexport interface ChangePassword {\r\n currentPassword: string;\r\n newPassword: string;\r\n}\r\n\r\nexport interface UserRegister {\r\n siteId: number;\r\n emailAddress: string;\r\n}\r\n\r\nexport interface ProvisionUser {\r\n emailAddress: string;\r\n fullName: string;\r\n role: string;\r\n sites?: any[];\r\n password?: string;\r\n template: EmailTemplate;\r\n cam: string;\r\n psa: string;\r\n upgradeManager: string;\r\n partnerCAM?: string;\r\n notificationEmails?: string[];\r\n}\r\n\r\nexport interface Site {\r\n id: number;\r\n access: boolean;\r\n}\r\n\r\nexport interface Verify {\r\n emailAddress: string;\r\n}\r\n\r\nexport enum EmailTemplate {\r\n ERPAnalyzer = 0,\r\n PartnerWelcome = 1,\r\n EndUser_ERPAnalyzer=2,\r\n EndUser_NewEndUser=3,\r\n EndUser_ERPAnalyzerSupport=4,\r\n EndUser_SendToSupport=5,\r\n}\r\n\r\nexport interface VerifyProvision {\r\n provisionId: string;\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/account/account.service.ts\n **/","module.exports = \"Account\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n Change Password\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
{{message}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/account/account.component.html\n ** module id = 360\n ** module chunks = 0\n **/","import { Component, OnInit } from '@angular/core';\r\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { AccountService, ForgotPassword } from '../../account.service';\r\nimport { DOMEvents } from '../../../dom-events';\r\n\r\n@Component({\r\n selector: 'account',\r\n template: require('./account-forgot-password.html'),\r\n providers: [AccountService]\r\n})\r\nexport class AccountForgotPasswordComponent implements OnInit {\r\n\r\n submitted: boolean;\r\n errors: any[] = [];\r\n userAgent= window.navigator.userAgent\r\n account = {\r\n emailAddress: ''\r\n };\r\n\r\n constructor(\r\n private router: Router,\r\n private accountService: AccountService,\r\n private domEvents: DOMEvents) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.domEvents.triggerOnDocument(\"appready\");\r\n }\r\n\r\n onSubmit() {\r\n this.errors = [];\r\n this.submitted = null;\r\n\r\n var forgotPassword: ForgotPassword = {\r\n emailAddress: this.account.emailAddress,\r\n browserDetails : this.captureBrowserDetails().toString(),\r\n userAgent: this.userAgent\r\n };\r\n\r\n this.accountService.forgotPassword(forgotPassword).subscribe(\r\n (res:any) => {\r\n this.submitted = true; \r\n this.redirect(); \r\n },\r\n err => {\r\n if (err._body.toString().startsWith(\"{\")){\r\n let errorDescription = JSON.parse(err._body).error_description\r\n this.errors.push({ code: '', description: errorDescription });\r\n }\r\n else{\r\n this.errors.push({ code: '', description: 'An error occured while sending recovery link.' });\r\n }\r\n }\r\n );\r\n }\r\n\r\n redirect() {\r\n this.router.navigate(['/login']);\r\n }\r\n\r\n captureBrowserDetails()\r\n {\r\n var browsers = {chrome: /chrome/i, safari: /safari/i, firefox: /firefox/i, ie: /internet explorer/i};\r\n\r\n for(var key in browsers) {\r\n if (browsers[key].test(this.userAgent)) {\r\n return key;\r\n }\r\n };\r\n return 'none'\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/account/security/password/account-forgot-password.component.ts\n **/","module.exports = \"
\\r\\n\\t\\r\\n\\t\\tAccount Password Recovery\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\r\\n
\\r\\n\\t\\t\\t\\t\\r\\n
\\r\\n\\t\\t\\t
0\\\" style=\\\"margin-top: 10px\\\">\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t\\t\\t{{ error.description }}\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/account/security/password/account-forgot-password.html\n ** module id = 362\n ** module chunks = 0\n **/","import { Component, OnInit } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AccountService, UserProvision, VerifyProvision, ProvisionUser } from '../account.service';\r\nimport { AuthService, CredentialsModel } from '../../auth/auth.service';\r\nimport { DOMEvents } from '../../dom-events';\r\n\r\n@Component({\r\n selector: 'account-provision',\r\n template: require('./account-provision.html'),\r\n providers: [AccountService]\r\n})\r\nexport class AccountProvisionComponent implements OnInit {\r\n\r\n isLoading: boolean = false;\r\n provisionId: string;\r\n errors: any[] = [];\r\n\r\n account = {\r\n password: '',\r\n confirmPassword: ''\r\n };\r\n\r\n provisionEmail: string;\r\n provisionUser: string;\r\n formLoaded: boolean = false;\r\n isProvisionValid: boolean = false;\r\n isProvisionActive: boolean = false;\r\n isEmailRegistered: boolean = false; \r\n errorCode: string;\r\n errorDescription: string;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private accountService: AccountService,\r\n private auth: AuthService,\r\n private domEvents: DOMEvents) {\r\n this.route.queryParams.subscribe(params => {\r\n this.provisionId = params['provision'];\r\n });\r\n\r\n \r\n }\r\n\r\n ngOnInit() {\r\n this.domEvents.triggerOnDocument(\"appready\"); \r\n var provision: VerifyProvision= {\r\n provisionId: this.provisionId\r\n };\r\n this.getProvisionAccount(provision); \r\n }\r\n\r\n onSubmit() {\r\n this.errors = [];\r\n this.isLoading = true;\r\n this.isProvisionValid=false;\r\n this.isProvisionActive=false;\r\n this.isEmailRegistered=false;\r\n\r\n var userProvision: UserProvision = {\r\n provisionId: this.provisionId,\r\n password: this.account.password,\r\n emailAddress: this.provisionEmail\r\n };\r\n\r\n if (this.account.password === this.account.confirmPassword) {\r\n this.accountService.addPassword(userProvision).subscribe(\r\n provisionResult => {\r\n this.isLoading = false;\r\n this.auth.logout();\r\n\r\n // on successfully provisioning account auto login the user\r\n var creds: CredentialsModel = {\r\n username: provisionResult.username,\r\n password: userProvision.password\r\n };\r\n\r\n this.auth.login(creds).subscribe((res) => {\r\n this.auth.saveJwt(res);\r\n }, err => {\r\n this.router.navigateByUrl('/login');\r\n });\r\n },\r\n err => {\r\n this.isLoading = false;\r\n if (err) {\r\n this.errors = err.json();\r\n this.errorCode = this.errors[0]['code'];\r\n this.errorDescription=this.errors[0]['description'];\r\n this.provisionAccountActions(this.errorCode); \r\n }\r\n }\r\n )\r\n } else {\r\n this.errors.push({ description: 'Passwords do not match'});\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n getProvisionAccount(provision: VerifyProvision){\r\n this.accountService.getProvisionData(provision).subscribe((provisionUser: ProvisionUser) => {\r\n this.isLoading=false;\r\n this.provisionEmail=provisionUser.emailAddress;\r\n this.provisionUser = provisionUser.fullName;\r\n this.isProvisionValid=true;\r\n\r\n },\r\n err => {\r\n this.isLoading = false;\r\n this.isProvisionValid=false;\r\n if (err) { \r\n this.errors = err.json();\r\n this.errorCode = this.errors[0]['code'];\r\n this.errorDescription=this.errors[0]['description'];\r\n this.provisionAccountActions(this.errorCode);\r\n }\r\n }\r\n )\r\n this.formLoaded = true;\r\n }\r\n\r\n provisionAccountActions(errorCode:string){\r\n switch(errorCode){\r\n case 'ProvisionNotFound':\r\n case 'ProvisionEmailInvalid':\r\n case 'ProvisionInvalid':\r\n this.isProvisionValid=false;\r\n this.isProvisionActive=false;\r\n break;\r\n\r\n case 'ProvisionActive':\r\n this.isProvisionValid=true;\r\n this.isProvisionActive=true;\r\n\r\n break; \r\n \r\n case 'AlreadyRegistered': \r\n this.isProvisionValid=true;\r\n this.isProvisionActive=true;\r\n this.isEmailRegistered=true;\r\n break; \r\n\r\n }\r\n\r\n\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/account/register/account-provision.component.ts\n **/","module.exports = \"
\\r\\n \\r\\n Add Account Password\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
0\\\" style=\\\"margin-top: 10px\\\">\\r\\n \\r\\n \\r\\n \\r\\n

\\r\\n {{ error.description }}\\r\\n , please click here to login\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n If you have previously registered click here to login\\r\\n
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/account/register/account-provision.html\n ** module id = 364\n ** module chunks = 0\n **/","import { Component, OnInit } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AccountService, UserPasswordReset } from '../../account.service';\r\nimport { AuthService } from '../../../auth/auth.service';\r\nimport { DOMEvents } from '../../../dom-events';\r\n\r\n@Component({\r\n selector: 'account-reset-password',\r\n template: require('./account-reset-password.html'),\r\n providers: [AccountService, AuthService]\r\n})\r\nexport class AccountResetPasswordComponent implements OnInit {\r\n\r\n emailAddress: string;\r\n resetToken: string;\r\n errors: any[] = [];\r\n\r\n account = {\r\n password: '',\r\n confirmPassword: ''\r\n };\r\n\r\n constructor(\r\n private domEvents: DOMEvents,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private auth: AuthService,\r\n private accountService: AccountService) {\r\n this.route.queryParams.subscribe(params => {\r\n this.emailAddress = params['email'];\r\n this.resetToken = params['token'];\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.domEvents.triggerOnDocument(\"appready\");\r\n }\r\n\r\n onSubmit() {\r\n this.errors = [];\r\n\r\n var userPasswordReset: UserPasswordReset = {\r\n emailAddress: this.emailAddress,\r\n resetToken: this.resetToken,\r\n password: this.account.password\r\n };\r\n\r\n if (this.account.password === this.account.confirmPassword) {\r\n this.accountService.resetPassword(userPasswordReset).subscribe(\r\n res => {\r\n this.auth.logout();\r\n this.router.navigateByUrl('/login');\r\n },\r\n err => {\r\n if (err._body !== \"\") {\r\n this.errors = err.json();\r\n }\r\n }\r\n );\r\n } else {\r\n this.errors.push({ description: 'Passwords do not match'});\r\n }\r\n }\r\n\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/account/security/password/account-reset-password.component.ts\n **/","module.exports = \"
\\r\\n\\t\\r\\n\\t\\tReset Account Password\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t
0\\\" style=\\\"margin-top: 10px\\\">\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t\\t\\t{{ error.description }}\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/account/security/password/account-reset-password.html\n ** module id = 366\n ** module chunks = 0\n **/","import { Component, OnInit } from '@angular/core';\r\nimport { AuthService, LoggedInUser } from '../../auth/auth.service';\r\nimport { AccountService, ProvisionUser, EmailTemplate } from '../account.service';\r\nimport { DOMEvents } from '../../dom-events';\r\nimport { UsersService } from '../../users/_services/users.service';\r\nimport { RemoveWhiteSpacePipe } from '../../shared/pipes/string.pipe';\r\n\r\n@Component({\r\n selector: 'user-provision',\r\n template: require('./user-provision.html'),\r\n providers: [AccountService, UsersService, DOMEvents]\r\n})\r\nexport class UserProvisionComponent implements OnInit {\r\n\r\n search: string = '';\r\n isLoading: boolean = false;\r\n isVerifying: boolean = false;\r\n isSubmitting: boolean = false;\r\n messages: any[] = [];\r\n errors: any[] = [];\r\n verified: boolean = false;\r\n allSitesChecked: boolean = false;\r\n roles: string[];\r\n allRoles: string[]; \r\n users: any[];\r\n loggedInUser: LoggedInUser\r\n notificationEmails: string = '';\r\n camUsers :any[]=[];\r\n psaUsers:any[]=[];\r\n umUsers:any[]=[];\r\n camPartnerUsers:any[]=[];\r\n\r\n searchCAMText :string=\"\"\r\n searchPSAText:string=\"\"\r\n searchUMText:string=\"\"\r\n searchPCAMText:string=\"\"\r\n\r\n user: ProvisionUser = {\r\n emailAddress: '',\r\n fullName: '',\r\n role: '',\r\n sites: [],\r\n template: EmailTemplate.ERPAnalyzer,\r\n cam: '',\r\n psa: '',\r\n upgradeManager: '',\r\n partnerCAM: '',\r\n notificationEmails: []\r\n };\r\n removeWhiteSpace = new RemoveWhiteSpacePipe();\r\n\r\n constructor(\r\n private auth: AuthService,\r\n private accountService: AccountService,\r\n private usersService: UsersService,\r\n private domEvents: DOMEvents) { }\r\n\r\n ngOnInit() {\r\n this.loggedInUser = this.auth.getUser();\r\n\r\n if (this.loggedInUser.admin || this.loggedInUser.epicorEmployee) {\r\n this.usersService.getRoles().subscribe((roles: any) => {\r\n this.roles = this.allRoles = roles; \r\n });\r\n\r\n this.usersService.getUsersInRoles([\"Administrator\", \"EpicorEmployee\"]).subscribe((users: any) => {\r\n this.users = users;\r\n this.camUsers = this.users;\r\n this.psaUsers= this.users;\r\n this.umUsers= this.users;\r\n this.camPartnerUsers= this.users;\r\n });\r\n }\r\n\r\n if (this.loggedInUser.partner) {\r\n this.roles = ['EndUser'];\r\n\r\n this.usersService.getUserEmailAddresses().subscribe((users:any) => {\r\n this.users = users;\r\n this.camUsers = this.users;\r\n this.psaUsers= this.users;\r\n this.umUsers= this.users;\r\n this.camPartnerUsers= this.users;\r\n });\r\n }\r\n\r\n this.domEvents.triggerOnDocument(\"appready\");\r\n }\r\n\r\n verify() {\r\n this.messages = [];\r\n this.errors = [];\r\n this.user.role = '';\r\n this.allSitesChecked = false;\r\n this.isVerifying = true;\r\n this.loading(true);\r\n\r\n this.accountService.verifyUser({\r\n emailAddress: this.user.emailAddress\r\n }).subscribe(\r\n verifyResult => {\r\n if (verifyResult.messages) {\r\n this.messages = verifyResult.messages;\r\n } else {\r\n this.setUserDetails(verifyResult);\r\n this.verified = true;\r\n }\r\n this.loading(false);\r\n this.isVerifying = false;\r\n },\r\n err => {\r\n this.loading(false);\r\n this.isVerifying = false;\r\n this.auth.unauthorized(err);\r\n \r\n if (err._body !== \"\") {\r\n this.errors = err.json();\r\n }\r\n },\r\n )\r\n }\r\n \r\n setUserDetails(externalUser: any) {\r\n this.user.fullName = externalUser.fullName;\r\n this.user.sites = externalUser.sites;\r\n \r\n var epicWebRoles:string[] = []; \r\n this.user.sites.forEach( item => {\r\n item.access= false; \r\n if(epicWebRoles.indexOf(item.detail.custType) === -1) \r\n { epicWebRoles.push(item.detail.custType); }\r\n });\r\n\r\n if (this.loggedInUser.admin || this.loggedInUser.epicorEmployee) {\r\n if (this.defaultEpicorEmployee(this.user.emailAddress)) {\r\n //if epicor employee, display all roles in the drop-down and pre-select EpicorEmployee role \r\n this.roles = this.allRoles; \r\n this.user.role = 'EpicorEmployee';\r\n }\r\n else if(epicWebRoles.indexOf(\"Partner\") != -1 )\r\n {//if the user is assosciated with partner site default to partner\r\n this.roles = epicWebRoles.filter(e => (e !== 'EpicorEmployee' && e !== 'Administrator'));\r\n //this.user.role = 'Partner';\r\n }\r\n else\r\n { \r\n //if not epicor employee, display roles from EpicWeb and default to first item in the array. \r\n this.roles = epicWebRoles.filter(e => (e !== 'EpicorEmployee' && e !== 'Administrator'));\r\n this.user.role = epicWebRoles[0];\r\n }\r\n } \r\n\r\n if (this.loggedInUser.partner) {\r\n this.user.role = 'EndUser';\r\n this.user.template = EmailTemplate.EndUser_ERPAnalyzer\r\n }\r\n }\r\n\r\n notVerified() {\r\n this.user.role = '';\r\n this.verified = false;\r\n this.user.sites = [];\r\n this.user.template = EmailTemplate.ERPAnalyzer;\r\n this.user.notificationEmails = [];\r\n\r\n if (this.user.emailAddress) {\r\n this.user.emailAddress = this.removeWhiteSpace.transform(this.user.emailAddress);\r\n }\r\n }\r\n\r\n onSubmit() {\r\n this.loading(true);\r\n this.isSubmitting = true;\r\n \r\n if (this.user.role === 'Administrator' || this.user.role === 'EpicorEmployee') {\r\n this.user.sites = [];\r\n }\r\n if (this.user.role === 'EndUser' || this.user.role === 'Partner') {\r\n let selectedSites = this.user.sites.filter(s => s.access);\r\n if (selectedSites.length == 0) {\r\n let conf = confirm(`You are creating a user with no site association. This user will not be able to interact with the Upgrade Services tools.\\n\\nIf the correct Site for this user doesn't appear for selection in the list, verify that ${this.user.emailAddress} is listed as a contact in EpicWeb for the site.\\n\\nDo you want to continue?`);\r\n if (!conf) {\r\n this.loading(false);\r\n this.isSubmitting = false;\r\n return;\r\n }\r\n }\r\n }\r\n this.accountService.provisionUser(this.user).subscribe(\r\n res => {\r\n this.loading(false);\r\n this.isSubmitting = false;\r\n this.notVerified();\r\n },\r\n err => {\r\n this.loading(false);\r\n this.isSubmitting = false;\r\n\r\n if (err._body !== \"\") {\r\n this.errors = err.json();\r\n }\r\n },\r\n )\r\n }\r\n\r\n loading(active: boolean) {\r\n this.isLoading = active;\r\n }\r\n\r\n allSites(checked: boolean) {\r\n var search = this.search;\r\n\r\n this.user.sites.forEach(function (site) {\r\n if (search === '') {\r\n site.access = checked;\r\n } else {\r\n if (site.id.toString().indexOf(search) !== -1) {\r\n site.access = checked;\r\n }\r\n }\r\n });\r\n }\r\n\r\n defaultEpicorEmployee(emailAddress: string): boolean {\r\n if (emailAddress.split('@')[1].indexOf('epicor.com') > -1) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n onRoleChange(role: any) {\r\n if(role === \"EpicorEmployee\" || role===\"Administrator\")\r\n this.user.template = EmailTemplate.ERPAnalyzer\r\n if(role===\"EndUser\")\r\n this.user.template = EmailTemplate.EndUser_ERPAnalyzer\r\n if(role===\"Partner\")\r\n this.user.template = EmailTemplate.PartnerWelcome\r\n }\r\n\r\n getNotificationEmailsCount(): number {\r\n if (this.user.notificationEmails) {\r\n return this.user.notificationEmails.length;\r\n }\r\n return 0;\r\n }\r\n\r\n validateNotificationEmails() {\r\n if (this.user.notificationEmails) { \r\n this.user.notificationEmails = this.removeWhiteSpace.transform(this.notificationEmails).split(';');\r\n }\r\n }\r\n\r\n filterUsers(userType:string){\r\n if(userType =='cam')\r\n this.camUsers = this.getusers(this.searchCAMText)\r\n else if(userType =='psa')\r\n this.psaUsers = this.getusers(this.searchPSAText)\r\n else if(userType =='um')\r\n this.umUsers = this.getusers(this.searchUMText)\r\n else if(userType =='pcam')\r\n this.camPartnerUsers = this.getusers(this.searchPCAMText)\r\n }\r\n\r\n getusers(searchText:string): any{\r\n if(searchText=='')\r\n return this.users\r\n else{\r\n return this.users.filter((user:any) => user.emailAddress.toLowerCase().match(searchText.toLowerCase()))\r\n }\r\n } \r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/account/provision/user-provision.component.ts\n **/","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'removeWhiteSpace' })\r\nexport class RemoveWhiteSpacePipe implements PipeTransform {\r\n transform(value: string): string {\r\n if (value) {\r\n return value.replace(/\\s/g, '');\r\n }\r\n return value;\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/shared/pipes/string.pipe.ts\n **/","module.exports = \"\\r\\n\\r\\n
\\r\\n\\t\\r\\n\\t\\tProvision User\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\tverified_user\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t{{role}}\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\tAll\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
    \\r\\n\\t\\t\\t\\t\\t\\t
  • \\r\\n\\t\\t\\t\\t\\t\\t\\t{{ site.detail.orgName }} ({{ site.detail.country}}) ({{ site.id }})\\r\\n\\t\\t\\t\\t\\t\\t
  • \\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t \\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tNone\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{user.emailAddress}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t \\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tNone\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{user.emailAddress}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t \\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tNone\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{ user?.emailAddress }}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t \\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tNone\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{user.emailAddress}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tNew Epicor User\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tERP Analyser\\r\\n\\t\\t\\t\\t\\t\\t\\tNew End User\\r\\n\\t\\t\\t\\t\\t\\t\\tERP Analyser for Support\\r\\n\\t\\t\\t\\t\\t\\t\\tSend to Support\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tPartner Welcome\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tEpicor Employee - ERP Analyser\\r\\n\\t\\t\\t\\t\\t\\t\\tPartner Welcome\\r\\n\\t\\t\\t\\t\\t\\t\\tEnd User - ERP Analyser\\r\\n\\t\\t\\t\\t\\t\\t\\tNew End User\\r\\n\\t\\t\\t\\t\\t\\t\\tERP Analyser for Support\\r\\n\\t\\t\\t\\t\\t\\t\\tSend to Support\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
0\\\" style=\\\"margin-top: 10px\\\">\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t\\t\\t{{ msg.description }}\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
0\\\" style=\\\"margin-top: 10px\\\">\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t\\t\\t{{ error.description }}\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/account/provision/user-provision.html\n ** module id = 369\n ** module chunks = 0\n **/","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { AuthService } from '../../../auth/auth.service';\r\nimport { AccountService, ProvisionUser, EmailTemplate } from '../../../account/account.service';\r\nimport { UsersService } from '../../_services/users.service';\r\nimport { SitesService } from '../../../sites/core/sites.service';\r\n\r\nimport { DOMEvents } from '../../../dom-events';\r\n\r\n@Component({\r\n selector: 'user-create',\r\n template: require('./user-create.component.html'),\r\n providers: [ UsersService, AccountService, SitesService ]\r\n})\r\nexport class UserCreateComponent implements OnInit {\r\n\r\n roles: string[];\r\n errors: any[];\r\n\r\n user: ProvisionUser = {\r\n emailAddress: '',\r\n fullName: '',\r\n role: 'EndUser',\r\n sites: [],\r\n password: '',\r\n template: EmailTemplate.ERPAnalyzer,\r\n cam: '',\r\n psa: '',\r\n upgradeManager: ''\r\n }\r\n\r\n constructor(\r\n private router: Router,\r\n private auth: AuthService,\r\n private userService: UsersService,\r\n private accountService: AccountService,\r\n private sitesService: SitesService,\r\n private domEvents: DOMEvents) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.getRoles();\r\n this.domEvents.triggerOnDocument(\"appready\");\r\n }\r\n\r\n getRoles() {\r\n this.userService.getRoles().subscribe((roles: string[]) => {\r\n this.roles = roles;\r\n }, err => this.auth.unauthorized(err));\r\n }\r\n\r\n getSites() {\r\n this.sitesService.getSites().subscribe((sites:any) => {\r\n this.user.sites = sites;\r\n }, err => this.auth.unauthorized(err));\r\n }\r\n\r\n onSubmit() {\r\n this.accountService.provisionUser(this.user).subscribe(() => {\r\n this.router.navigate(['/users']);\r\n }, err => {\r\n this.auth.unauthorized(err);\r\n\r\n if(err._body !== \"\") {\r\n this.errors = err.json();\r\n }\r\n })\r\n }\r\n onRoleChange(role:any){\r\n if(role === \"EpicorEmployee\" || role === \"Administrator\")\r\n this.user.template = EmailTemplate.ERPAnalyzer\r\n if(role ===\"EndUser\")\r\n this.user.template = EmailTemplate.EndUser_ERPAnalyzer\r\n if(role ===\"Partner\")\r\n this.user.template = EmailTemplate.PartnerWelcome\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/users/user/user-create/user-create.component.ts\n **/","import { Injectable } from '@angular/core';\r\nimport { Headers, Http, RequestOptions, Response } from '@angular/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { AuthHttp, AuthConfig, AUTH_PROVIDERS } from 'angular2-jwt';\r\nimport { AnalyserReportTab, AnalyserReportSection } from '../analysis/analysis-report.interface';\r\nimport { QueryStringPipe } from '../../shared/pipes/url.pipe';\r\nimport { ConfigService } from '../../shared/services/config.service';\r\nimport 'rxjs/operator/map';\r\nimport { forkJoin } from 'rxjs/observable/forkJoin';\r\n\r\n@Injectable()\r\nexport class SitesService {\r\n\r\n private serviceBase: string = new ConfigService().getApiURI();\r\n private sitesAPI = this.serviceBase + 'sites';\r\n private queryStringPipe = new QueryStringPipe();\r\n\r\n constructor(\r\n private http: Http,\r\n private authHttp: AuthHttp) { }\r\n\r\n createSite(siteId: number) {\r\n var url: string = this.sitesAPI + '/' + siteId;\r\n var body = '';\r\n\r\n return this.authHttp.post(url, body);\r\n }\r\n\r\n /** Deletes a site document with specific site id */\r\n deleteSite(siteId: number) {\r\n var url: string = this.sitesAPI + '/' + siteId;\r\n\r\n return this.authHttp.delete(url);\r\n }\r\n\r\n getSites(): Observable {\r\n return this.authHttp.get(this.sitesAPI)\r\n .map(this.extractData);\r\n }\r\n\r\n /** Get sites result paged with request continuation */\r\n getSitesDTO(q: string = \"\", token: string = \"\") {\r\n token = encodeURIComponent(token);\r\n var url: string = `${this.sitesAPI}?q=${q}&token=${token}`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n getSitesIds() {\r\n var url: string = this.sitesAPI + '/ids';\r\n\r\n return this.authHttp.get(url);\r\n }\r\n\r\n getSite(siteId: number): Observable {\r\n var url: string = this.sitesAPI + '/' + siteId;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n updateSite(site: any) {\r\n var url: string = this.sitesAPI + '/update';\r\n return this.authHttp.put(url, site);\r\n }\r\n\r\n getAnalyserReport(siteId: number, version: number): Observable {\r\n let url = `${this.sitesAPI}/${siteId}/analyserreports/${version}`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n getSiteAndLatestReport(siteId: number) : Observable {\r\n var siteUrl: string = this.sitesAPI + '/' + siteId;\r\n var reportUrl = this.sitesAPI + '/' + siteId + '/analyserreports/latest';\r\n let siteRequest = this.authHttp.get(siteUrl).map(response => response.json())\r\n .catch(error => Observable.of({error: true}));\r\n let reportRequest = this.authHttp.get(reportUrl).map(response => response.json())\r\n .catch(error => Observable.of({error: true}));\r\n return forkJoin([siteRequest,reportRequest]);\r\n }\r\n\r\n getReportAndSiteDetails(siteId : number) : Observable {\r\n var url: string = this.sitesAPI + '/' + siteId + '/productDetails';\r\n return this.authHttp.get(url).map(this.extractData);\r\n }\r\n /**\r\n * Get a report summary for specified site, this will return a list of report versions.\r\n * @param siteId \r\n */\r\n getSiteAnalyserReportsSummary(siteId: number) {\r\n let url = `${this.sitesAPI}/${siteId}/analyserreports/summary`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /**\r\n * Get Analyser Report Section\r\n * @param siteId \r\n * @param version \r\n * @param reportTab \r\n * @param reportSection \r\n */\r\n getAnalyserReportSection(siteId: number, version: number, reportTab: string, reportSection: string, token?: string) {\r\n let queryString = this.queryStringPipe.transform({ t: token });\r\n let url = `${this.sitesAPI}/${siteId}/analyserreports/${version}/tab/${reportTab}/section/${reportSection}${queryString}`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /**\r\n * Get Analyser Report Section Document Count\r\n * @param siteId \r\n * @param version \r\n * @param reportTab \r\n * @param reportSection \r\n */\r\n getAnalyserReportSectionDocumentCount(siteId: number, version: number, reportTab: string, reportSection: string) {\r\n let url = `${this.sitesAPI}/${siteId}/analyserreports/${version}/tab/${reportTab}/section/${reportSection}/count`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /**\r\n * Get Analyser Report Section Document Count\r\n * @param siteId \r\n * @param version \r\n * @param reportTab \r\n * @param reportSection \r\n */\r\n getAnalyserReportSectionDocumentKeepCount(siteId: number, version: number, reportTab: string, reportSection: string) {\r\n let url = `${this.sitesAPI}/${siteId}/analyserreports/${version}/tab/${reportTab}/section/${reportSection}/count/keep`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /**\r\n * Get Analyser Report Section Document Count\r\n * @param siteId \r\n * @param version \r\n * @param reportTab \r\n * @param reportSection \r\n */\r\n getAnalyserReportSectionDocumentReviewedCount(siteId: number, version: number, reportTab: string, reportSection: string) {\r\n let url = `${this.sitesAPI}/${siteId}/analyserreports/${version}/tab/${reportTab}/section/${reportSection}/count/reviewed`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /**\r\n * Get Analyser Report Count Statistics e.g Total, Keep, Reviewed\r\n * @param siteId \r\n * @param version \r\n */\r\n getAnalyserReportCountStatistics(siteId: number, version: number) {\r\n let url = `${this.sitesAPI}/${siteId}/analyserreports/${version}/statistics/count`;\r\n\r\n return this.authHttp.get(url).map(this.extractData);\r\n }\r\n\r\n /**\r\n * Update Analyser Report Section Document\r\n * @param siteId\r\n * @param version \r\n * @param reportTab \r\n * @param reportSection \r\n * @param docId \r\n * @param action \r\n */\r\n updateAnalyserReportSectionDocument(siteId: number, version: number, reportTab: string, reportSection: string, docId: string, action: string, actionValue: boolean) {\r\n let queryString = this.queryStringPipe.transform({ a: action, v: actionValue });\r\n let url = `${this.sitesAPI}/${siteId}/analyserreports/${version}/tab/${reportTab}/section/${reportSection}/doc/${docId}${queryString}`;\r\n\r\n return this.authHttp.put(url, null);\r\n }\r\n\r\n /**\r\n * Update Analyser Report Section Documents\r\n * @param siteId \r\n * @param version \r\n * @param reportTab \r\n * @param reportSection \r\n * @param action \r\n */\r\n updateAnalyserReportSectionDocuments(siteId: number, version: number, reportTab: string, reportSection: string, action: string, actionValue: boolean) {\r\n let queryString = this.queryStringPipe.transform({ a: action, v: actionValue });\r\n let url = `${this.sitesAPI}/${siteId}/analyserreports/${version}/tab/${reportTab}/section/${reportSection}/docs${queryString}`;\r\n\r\n return this.authHttp.put(url, null);\r\n }\r\n\r\n getLatestAnalyserReport(siteId: number): Observable {\r\n var url = this.sitesAPI + '/' + siteId + '/analyserreports/latest';\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n getLocalAnalyserReport(report: string) {\r\n return this.http.get('/src/api/reports/' + report + '.json')\r\n .map(this.extractData);\r\n }\r\n\r\n getFileShareReadFileSas(siteId: number): Observable {\r\n var url = this.sitesAPI + '/' + siteId + '/share/files/readsas';\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n getFile(url: string) {\r\n return this.http.get(url);\r\n }\r\n\r\n getFileName(path: string): string {\r\n var splitPath = path.split(\"\\\\\");\r\n var fileName = splitPath[splitPath.length - 1];\r\n\r\n return fileName;\r\n }\r\n\r\n /**\r\n * Refresh child sites from external service\r\n * @param siteId \r\n */\r\n refreshChildSites(siteId: number) {\r\n var url: string = `${this.sitesAPI}/${siteId}/childsites/refresh`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n getSitesCount() {\r\n var url: string = `${this.sitesAPI}/count`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /**\r\n * Get site security logs\r\n * @param siteId \r\n */\r\n getSiteSecurityLogs(siteId: number) {\r\n let url = `${this.sitesAPI}/${siteId}/securitylogs`;\r\n\r\n return this.authHttp.get(url).map(this.extractData);\r\n }\r\n\r\n getSiteUsers(siteId: number) {\r\n let url = `${this.sitesAPI}/users/${siteId}`;\r\n\r\n return this.authHttp.get(url).map(this.extractData);\r\n }\r\n \r\n private extractData(res: Response) {\r\n let body = res.json();\r\n return body || {};\r\n }\r\n\r\n private handleError(errors: any) {\r\n\r\n }\r\n}\r\n\r\n\r\n\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/core/sites.service.ts\n **/","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'queryString' })\r\nexport class QueryStringPipe implements PipeTransform {\r\n /**\r\n * { prop1: value, prop2: value2 } => '?prop1=value&prop2=value2\r\n * @param obj \r\n */\r\n transform(obj: any): string {\r\n try {\r\n var query: string[] = [];\r\n for (var p in obj) {\r\n if (obj.hasOwnProperty(p)) {\r\n if (obj[p] != null && obj[p] !== '') {\r\n query.push(encodeURIComponent(p) + \"=\" + encodeURIComponent(obj[p]));\r\n }\r\n }\r\n }\r\n\r\n if (query.length > 0) {\r\n return `?${query.join(\"&\")}`;\r\n }\r\n return '';\r\n } catch (err) {\r\n return '';\r\n }\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/shared/pipes/url.pipe.ts\n **/","module.exports = \"\\r\\n\\r\\n
\\r\\n\\t\\r\\n\\t\\t Create User\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t{{role}}\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t\\t\\t{{ error?.description }}\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/users/user/user-create/user-create.component.html\n ** module id = 373\n ** module chunks = 0\n **/","import { Component, OnInit, ViewContainerRef } from '@angular/core';\r\nimport { AuthService, Role, Permission } from './auth/auth.service';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\nimport { ApplicationService, Application } from './applications/application.service';\r\nimport { ApplicationDialog } from './shared/dialogs/application-dialog';\r\nimport { UpgradeGuideService, UpgradeGuide } from './shared/services/upgradeguide.service';\r\nimport { ConversionsService } from './sites/conversions/_services/conversions.service';\r\n\r\nimport { DOMEvents } from './dom-events';\r\nimport { ApplicationDocDialog } from './shared/dialogs/applicationdoc-dialog';\r\nimport { UpgradeGuideDialog } from './shared/dialogs/upgradeguide-dialog';\r\n\r\n@Component({\r\n selector: 'home',\r\n template: require('./home.component.html'),\r\n providers: [ApplicationService, UpgradeGuideService, ConversionsService]\r\n})\r\nexport class HomeComponent implements OnInit {\r\n Role: any = Role;\r\n Permission: any = Permission; \r\n dialogRef: MdDialogRef;\r\n docDialogRef: MdDialogRef;\r\n guideDialogRef: MdDialogRef;\r\n applications: any[] = [];\r\n upgradeGuides: any[] = [];\r\n url: string = \"https://upgradeservices.epicor.com\";\r\n isLoading: boolean = false;\r\n isLoadingGuides: boolean = false;\r\n allowedToGuides: boolean = false;\r\n\r\n constructor(\r\n private auth: AuthService,\r\n public dialog: MdDialog,\r\n public viewContainerRef: ViewContainerRef,\r\n private applicationService: ApplicationService,\r\n private upgradeGuideService: UpgradeGuideService,\r\n private conversionsService: ConversionsService,\r\n private domEvents: DOMEvents) {\r\n\r\n this.isLoading = true;\r\n this.applicationService.getApplications().subscribe((applications: Application[]) => {\r\n this.applications = applications;\r\n this.isLoading = false;\r\n });\r\n this.allowedToGuides = this.auth.hasRole(Role.Administrator) || this.auth.hasRole(Role.EpicorEmployee);\r\n this.hasActiveConversions();\r\n \r\n this.isLoadingGuides = true;\r\n this.upgradeGuideService.getUpgradeGuides().subscribe((guides: UpgradeGuide[]) => {\r\n this.upgradeGuides = guides;\r\n this.isLoadingGuides = false;\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.domEvents.triggerOnDocument(\"appready\");\r\n }\r\n\r\n downloadApplication(application: any) {\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.dialogRef = this.dialog.open(ApplicationDialog, config);\r\n this.dialogRef.componentInstance.setApplicationName(application);\r\n }\r\n\r\n downloadApplicationDocs(applicationName: string, fileName: string) {\r\n if (fileName && applicationName) {\r\n this.applicationService.downloadDoc(applicationName, fileName).subscribe((res: any) => {\r\n window.open(res.uri, \"_blank\");\r\n }, (err:any) => {\r\n err.status;\r\n });\r\n }\r\n }\r\n\r\n uploadApplicationDocs(applicationName: string, applicationDocument: any) {\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n config.width = \"500px\";\r\n config.height = \"300px\";\r\n\r\n this.docDialogRef = this.dialog.open(ApplicationDocDialog, config);\r\n this.docDialogRef.componentInstance.setApplicationName(applicationName, applicationDocument);\r\n this.docDialogRef.afterClosed().subscribe((result: any) => {\r\n if (result === \"cancel\") return;\r\n this.applicationService.getApplications().subscribe((applications: Application[]) => {\r\n this.applications = applications;\r\n this.isLoading = false;\r\n })\r\n });\r\n }\r\n\r\n downloadGuide(guide: UpgradeGuide) {\r\n if (guide) {\r\n this.upgradeGuideService.downloadGuide(guide).subscribe((res: any) => {\r\n window.open(res.uri, \"_blank\");\r\n }, (err:any) => {\r\n err.status;\r\n });\r\n }\r\n }\r\n\r\n uploadUpgradeGuide(guide: UpgradeGuide) {\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n config.width = \"350px\";\r\n\r\n this.guideDialogRef = this.dialog.open(UpgradeGuideDialog, config);\r\n if (guide) this.guideDialogRef.componentInstance.enableEdit(guide);\r\n\r\n this.guideDialogRef.afterClosed().subscribe((result: any) => {\r\n if (result === \"cancel\") return;\r\n this.isLoadingGuides = true;\r\n this.upgradeGuideService.getUpgradeGuides().subscribe((upgradeGuides: UpgradeGuide[]) => {\r\n this.upgradeGuides = upgradeGuides;\r\n this.isLoadingGuides = false;\r\n })\r\n });\r\n }\r\n\r\n deleteUpgradeGuide(guide: UpgradeGuide) {\r\n if (guide) {\r\n this.isLoadingGuides = true;\r\n let idx = this.upgradeGuides.indexOf(guide);\r\n if (idx !== -1)\r\n this.upgradeGuides.splice(idx, 1);\r\n this.isLoadingGuides = false;\r\n this.upgradeGuideService.deleteGuide(guide).subscribe((res: any) => {\r\n this.upgradeGuideService.getUpgradeGuides().subscribe((upgradeGuides: UpgradeGuide[]) => {\r\n this.upgradeGuides = upgradeGuides;\r\n this.isLoadingGuides = false;\r\n })\r\n }, (err:any) => {\r\n err.status;\r\n });\r\n }\r\n }\r\n\r\n hasActiveConversions() {\r\n if (this.auth.hasRole(Role.EndUser) || this.auth.hasRole(Role.Partner)) {\r\n this.auth.getUser().sites.forEach((site: any) => {\r\n this.conversionsService.hasActiveConversion(site).subscribe((result:any) => {\r\n this.allowedToGuides = result.hasActiveConversion;\r\n });\r\n });\r\n }\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/home.component.ts\n **/","import { Component } from '@angular/core';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\n\r\nimport {ApplicationService } from '../../applications/application.service';\r\nimport { AuthService } from '../../auth/auth.service';\r\n\r\n@Component({\r\n selector: 'application-dialog',\r\n template: require('./application-dialog.html'),\r\n providers: [ApplicationService]\r\n})\r\nexport class ApplicationDialog {\r\n agreed: boolean = false;\r\n application: any;\r\n\r\n constructor(\r\n public dialogRef: MdDialogRef,\r\n private auth: AuthService,\r\n private applicationService: ApplicationService) { }\r\n\r\n setApplicationName(application: any) {\r\n this.application = application;\r\n }\r\n\r\n download() {\r\n this.applicationService.download(this.application.name).subscribe((res: any) => {\r\n window.open(res.uri, \"_self\");\r\n this.dialogRef.close();\r\n }, (err:any) => {\r\n this.auth.unauthorized(err);\r\n });\r\n }\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/shared/dialogs/application-dialog.ts\n **/","module.exports = \"\\r\\n\\tUsing {{application.displayName}} and Our Agreement: \\r\\n\\t\\r\\n\\r\\n\\r\\n
\\r\\n\\t
\\r\\n\\r\\n\\t
\\r\\n\\t\\tI Agree\\r\\n\\t
\\r\\n\\r\\n\\t

Thank you Epicor Cloud Factory Team.

\\r\\n
\\r\\n
\\r\\n\\t\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/shared/dialogs/application-dialog.html\n ** module id = 376\n ** module chunks = 0\n **/","import { Injectable } from '@angular/core';\r\nimport { Headers, Http, RequestOptions, Response } from '@angular/http';\r\nimport { AuthHttp, AuthConfig, AUTH_PROVIDERS } from 'angular2-jwt';\r\nimport { ConfigService } from './config.service';\r\nimport 'rxjs/operator/map';\r\n\r\n@Injectable()\r\nexport class UpgradeGuideService{\r\n private serviceBase: string = new ConfigService().getApiURI();\r\n private upgradeguidesAPI = this.serviceBase + 'upgradeguides';\r\n\r\n constructor(\r\n private http: Http,\r\n private authHttp: AuthHttp){ }\r\n\r\n getUpgradeGuides() {\r\n return this.authHttp.get(this.upgradeguidesAPI).map(this.extractData);\r\n }\r\n\r\n downloadGuide(upgradeGuide: UpgradeGuide) {\r\n let url: string = `${this.upgradeguidesAPI}/download/${upgradeGuide.id}`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n uploadGuide(guideForm: FormData) {\r\n let headers = new Headers({ 'Authorization': `Bearer ${localStorage.getItem('access_token')}` });\r\n let options = new RequestOptions({ headers: headers });\r\n return this.http.post(this.upgradeguidesAPI, guideForm, options).map(this.extractData);\r\n }\r\n\r\n updateGuide(guideForm: FormData) {\r\n let headers = new Headers({ 'Authorization': `Bearer ${localStorage.getItem('access_token')}` });\r\n let options = new RequestOptions({ headers: headers });\r\n return this.http.put(this.upgradeguidesAPI, guideForm, options).map(this.extractData);\r\n }\r\n\r\n deleteGuide(upgradeGuide: UpgradeGuide) {\r\n let url: string = `${this.upgradeguidesAPI}/${upgradeGuide.id}`;\r\n\r\n return this.authHttp.delete(url).map(this.extractData);\r\n }\r\n \r\n private extractData(res: Response) {\r\n let body = res.json();\r\n return body || {};\r\n }\r\n}\r\n\r\nexport interface UpgradeGuide {\r\n id: string;\r\n fileName: string;\r\n description: string;\r\n fileUri: string;\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/shared/services/upgradeguide.service.ts\n **/","import { Injectable } from '@angular/core';\r\nimport { Headers, Http, RequestOptions, Response } from '@angular/http';\r\nimport { AuthHttp, AuthConfig, AUTH_PROVIDERS } from 'angular2-jwt';\r\nimport { Observable, Subject } from 'rxjs/Rx';\r\nimport { ConfigService } from '../../../shared/services/config.service';\r\nimport { QueryStringPipe } from '../../../shared/pipes/url.pipe';\r\nimport { ConversionPassLogType } from '../../../shared/interfaces';\r\nimport { IConversionService, Conversion, ConversionConfiguration, ConversionStatus } from '../_interfaces/conversions.interface';\r\n\r\n@Injectable()\r\nexport class ConversionsService implements IConversionService {\r\n private serviceBase: string = new ConfigService().getApiURI();\r\n private conversionsAPI = this.serviceBase + 'conversions';\r\n private queryStringPipe = new QueryStringPipe();\r\n\r\n public messages: Subject;\r\n\r\n constructor(\r\n private http: Http,\r\n private authHttp: AuthHttp) { }\r\n\r\n /** Create a new conversion document */\r\n createConversion(conversion: Conversion) {\r\n var url: string = `${this.conversionsAPI}`;\r\n\r\n return this.authHttp.post(url, conversion)\r\n .map(this.extractData);\r\n }\r\n\r\n /** Update a conversion document */\r\n updateConversion(conversionId: any, conversion: Conversion) {\r\n var url: string = `${this.conversionsAPI}/${conversionId}`;\r\n\r\n return this.authHttp.put(url, conversion);\r\n }\r\n\r\n /** Update conversion status */\r\n updateConversionStatus(conversionId: any, status: any) {\r\n let url = `${this.conversionsAPI}/${conversionId}/status`;\r\n\r\n return this.authHttp.put(url, { status: status });\r\n }\r\n\r\n /** Delete a conversion document */\r\n deleteConversion(conversionId: any) {\r\n var url: string = `${this.conversionsAPI}/${conversionId}`;\r\n\r\n return this.authHttp.delete(url);\r\n }\r\n\r\n /** Get a list of conversion documents */\r\n getConversions() {\r\n var url: string = `${this.conversionsAPI}`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /** Get a list of conversion documents for a site */\r\n getSiteConversions(siteId: number) {\r\n var url: string = `${this.conversionsAPI}/${siteId}`\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n hasActiveConversion(siteId: number) {\r\n var url: string = `${this.conversionsAPI}/hasActiveConversion/${siteId}`;\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /** Get a conversion document */\r\n getConversion(conversionId: string) {\r\n var url: string = `${this.conversionsAPI}/${conversionId}`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /** Get a conversion pass document */\r\n getConversionPass(conversionId: string, passNumber: number) {\r\n var url: string = `${this.conversionsAPI}/${conversionId}/passes/${passNumber}`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /** Get a conversion pass document */\r\n getConversionPassToolingVersion(conversionId: string, passNumber: number) {\r\n var url: string = `${this.conversionsAPI}/${conversionId}/passes/${passNumber}`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /**\r\n * Get an array of conversion pass reconciliation reports\r\n * @param conversionPassId The id of the conversion pass document\r\n */\r\n getConversionPassReconciliationReports(conversionPassId: string, companyId?: string, category?: string, difference?: boolean) {\r\n let queryString = this.queryStringPipe.transform({\r\n companyId: companyId,\r\n category: category,\r\n difference: difference\r\n });\r\n\r\n let url = `${this.conversionsAPI}/passes/${conversionPassId}/reports/reconciliation${queryString}`;\r\n\r\n return this.authHttp.get(url).map(this.extractData);\r\n }\r\n\r\n /**\r\n * Get conversion pass reconciliation reports count\r\n * @param conversionPassId \r\n */\r\n getConversionPassReconciliationReportsCount(conversionPassId: string, companyId?: string, category?: string, difference?: boolean) {\r\n let queryString = this.queryStringPipe.transform({\r\n companyId: companyId,\r\n category: category,\r\n difference: difference\r\n });\r\n\r\n let url = `${this.conversionsAPI}/passes/${conversionPassId}/reports/reconciliation/count${queryString}`;\r\n\r\n return this.authHttp.get(url).map(this.extractData);\r\n }\r\n\r\n /** Delete a conversion pass document and all associated collections e.g logs, health */\r\n deleteConversionPass(conversionPassId: string) {\r\n var url: string = `${this.conversionsAPI}/passes/${conversionPassId}`;\r\n\r\n return this.authHttp.delete(url);\r\n }\r\n\r\n /** Get an array of conversion passes for a specific conversion*/\r\n getConversionPasses(conversionId: string) {\r\n var url: string = `${this.conversionsAPI}/${conversionId}/passes`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n\r\n getLatestConversionPass(conversionId: string) {\r\n var url: string = `${this.conversionsAPI}/${conversionId}/Latestpass`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /** Get an array of all conversion passes */\r\n getAllConversionPasses() {\r\n var url: string = `${this.conversionsAPI}/passes`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /** Get a paged result of conversion pass summaries */\r\n getConversionPassSummaries(searchText?: string, status?: any, conversionId?: string, token?: string, sortColumn?: string, sortAsc?: boolean, pageSize?: number, docState?: any) {\r\n let queryString = this.queryStringPipe.transform({ searchText: searchText, s: status, conversionId: conversionId, t: token, sortColumn: sortColumn, sortAsc: sortAsc, pageSize: pageSize, docState: docState });\r\n let url = `${this.conversionsAPI}/passes/summary${queryString}`;\r\n\r\n return this.authHttp.get(url).map(this.extractData);\r\n }\r\n\r\n /** Get count of conversion pass summaries for a given status */\r\n getConversionPassSummariesCount(status?: any, conversionId?: string, docState?: any, siteId?: any[]) {\r\n let queryString = this.queryStringPipe.transform({ status: status, conversionId: conversionId, docState: docState, siteId: siteId });\r\n let url = `${this.conversionsAPI}/passes/summary/count${queryString}`;\r\n return this.authHttp.get(url).map(this.extractData);\r\n }\r\n \r\n /** Get count of conversion pass summaries for a given status */\r\n getConversionLivePassSummariesCount(status?: any, conversionId?: string, docState?: any, siteId?: any[]) {\r\n let queryString = this.queryStringPipe.transform({ status: status, conversionId: conversionId, docState: docState, siteId: siteId });\r\n let url = `${this.conversionsAPI}/passes/summary/countlive${queryString}`;\r\n return this.authHttp.get(url).map(this.extractData);\r\n }\r\n\r\n /** Get a list of conversion passes wth specific status */\r\n getConversionPassesByStatus(status: ConversionStatus) {\r\n var url: string = `${this.conversionsAPI}/passes/status?status=${status}`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n getConversionPassLogs(conversionPassId: string, token?: string, logType?: ConversionPassLogType) {\r\n let queryString = this.queryStringPipe.transform({ token: token, logType: ConversionPassLogType[logType] });\r\n var url: string = `${this.conversionsAPI}/passes/${conversionPassId}/logs${queryString}`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n getAllConversionPassLogs(conversionPassId: string) {\r\n let url = `${this.conversionsAPI}/passes/${conversionPassId}/logs/all`;\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n getEffectiveTimeConversionPass(conversionPassId: string,endDate:any) {\r\n let url = `${this.conversionsAPI}/passes/${conversionPassId}/effectiveTimeAndErrors?EndDate=${endDate}`;\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n getConversionPassLogsCount(conversionPassId: string, logType: ConversionPassLogType) {\r\n let url = `${this.conversionsAPI}/passes/${conversionPassId}/logs/${ConversionPassLogType[logType]}/count`;\r\n\r\n return this.authHttp.get(url).map(this.extractData);\r\n }\r\n\r\n getConversionDescription(configuration: any): string {\r\n var config: any = configuration;\r\n\r\n if (config) {\r\n return `${config.fromProduct} ${config.fromVersion} to ${config.toProduct} ${config.toVersion}`;\r\n }\r\n return '';\r\n }\r\n\r\n /** Get the conversion pass RDP password */\r\n getConversionPassRDPPassword(conversionPassId: string) {\r\n var url: string = `${this.conversionsAPI}/passes/${conversionPassId}/rdp/password`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /** Get the conversion pass Product User Password */\r\n getConversionPassProductPassword(conversionPassId: string) {\r\n var url = `${this.conversionsAPI}/passes/${conversionPassId}/product/user/password`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /** Log a conversion pass incident */\r\n logConversionPassIncident(conversionPassId: string, incident: any) {\r\n var url: string = `${this.conversionsAPI}/passes/${conversionPassId}/logs/incident`;\r\n\r\n return this.authHttp.post(url, incident);\r\n }\r\n\r\n resubmitConversionPass(conversionId: string, conversionPassId: string) {\r\n var url: string = `${this.conversionsAPI}/${conversionId}/passes/${conversionPassId}/resubmit`;\r\n\r\n return this.authHttp.post(url, null)\r\n .map(this.extractData);\r\n }\r\n\r\n /** Deletes a specific conversion pass tasks */\r\n deleteConversionPassTasks(conversionPassId: string, parentIds: string[]) {\r\n var url: string = `${this.conversionsAPI}/passes/${conversionPassId}/tasks/delete`;\r\n\r\n return this.authHttp.put(url, parentIds);\r\n }\r\n\r\n /** Gets time to live for conversion pass virtual machine */\r\n getConversionPassTTL(conversionPassId: string) {\r\n var url: string = `${this.conversionsAPI}/passes/${conversionPassId}/ttl`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /** Updates time to live for convresion pass virtual machine */\r\n updateConversionPassTTL(conversionPassId: string, ttl: any) {\r\n var url: string = `${this.conversionsAPI}/passes/${conversionPassId}/ttl`;\r\n return this.authHttp.put(url, ttl)\r\n .map(this.extractData);\r\n }\r\n\r\n /** Updates conversion pass status */\r\n updateConversionPassStatus(conversionPassId: string, status: number) {\r\n var url: string = `${this.conversionsAPI}/passes/${conversionPassId}/status?Status=${status}`;\r\n\r\n return this.authHttp.put(url, null);\r\n }\r\n\r\n /** Get passes limit default */\r\n getConversionPassesLimitDefault() {\r\n var url: string = `${this.conversionsAPI}/passes/defaultlimit`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /** Get Conversion Schedule */\r\n getConversionSchedule(queryParams: any) {\r\n let queryString = this.queryStringPipe.transform({\r\n q: queryParams.searchText,\r\n t: queryParams.token,\r\n completed: queryParams.completedQueryParam,\r\n livePassFilter: queryParams.livePassQueryParam,\r\n plannedDateFilter: queryParams.plannedDateQueryParam,\r\n pageSize: queryParams.pageSize,\r\n columnName: queryParams.columnName,\r\n sortAsc: queryParams.sortAsc\r\n });\r\n let url = `${this.conversionsAPI}/schedule${queryString}`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /*get the last succeeded passnumber for the particular conversionid*/\r\n getPreviousSuccessConversionPass(conversionId: string, passNumber: number) {\r\n var url: string = `${this.conversionsAPI}/${conversionId}/passes/${passNumber}/previoussuccesspassnumber`;\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n getConversionGoLive(queryParams: any) {\r\n let queryString = this.queryStringPipe.transform({\r\n q: queryParams.searchText,\r\n t: queryParams.token,\r\n startDate: queryParams.fromDate,\r\n endDate: queryParams.toDate,\r\n goliveConversionStatus: queryParams.goliveConversionStatus,\r\n testConversionStatus: queryParams.testConversionStatus,\r\n pageSize: queryParams.pageSize,\r\n download:queryParams.download\r\n });\r\n let url = `${this.conversionsAPI}/golive${queryString}`;\r\n\r\n console.log(url)\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n getGoLiveCount(queryParams: any) {\r\n\r\n let queryString = this.queryStringPipe.transform({\r\n q: queryParams.searchText,\r\n t: queryParams.token,\r\n startDate: queryParams.fromDate,\r\n endDate: queryParams.toDate,\r\n goliveConversionStatus: queryParams.goliveConversionStatus,\r\n testConversionStatus: queryParams.testConversionStatus\r\n });\r\n let url = `${this.conversionsAPI}/golivecount${queryString}`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n } \r\n /** Update Conversion Schedule */\r\n updateConversionSchedule(conversion: any) {\r\n let url = `${this.conversionsAPI}/schedule`;\r\n\r\n return this.authHttp.put(url, conversion);\r\n }\r\n\r\n /** Get remaining passes count for conversion */\r\n getRemainingPasses(conversionId: string) {\r\n let url = `${this.conversionsAPI}/${conversionId}/passesremaining`;\r\n\r\n return this.authHttp.get(url).map(this.extractData);\r\n }\r\n\r\n /** Get next pass number for conversion */\r\n getNextPassNumber(conversionId: string) {\r\n let url = `${this.conversionsAPI}/${conversionId}/passes/nextpassnumber`;\r\n\r\n return this.authHttp.get(url).map(this.extractData);\r\n }\r\n\r\n /**\r\n * Get next pass number to show in schedule\r\n * @param conversionId \r\n */\r\n getNextPassNumberSchedule(conversionId: string) {\r\n let url = `${this.conversionsAPI}/${conversionId}/passes/nextpassnumberschedule`;\r\n return this.authHttp.get(url).map(this.extractData);\r\n }\r\n\r\n /**\r\n * Start conversion pass virtual machine\r\n * @param conversionPassId\r\n */\r\n startVM(conversionPassId: string) {\r\n let url = `${this.conversionsAPI}/passes/${conversionPassId}/vm/start`;\r\n\r\n return this.authHttp.get(url);\r\n }\r\n\r\n /**\r\n * Escalate conversion pass to development\r\n * @param conversionPassId\r\n */\r\n escalateConversionPassToDevelopment(conversionPassId: string) {\r\n let url = `${this.conversionsAPI}/passes/${conversionPassId}/escalatetodevelopment`;\r\n\r\n return this.authHttp.post(url, null);\r\n }\r\n\r\n /**\r\n * Add IP Address to NSG\r\n * @param conversionPassId\r\n * @param ipAddress \r\n */\r\n addIPAddressToNSG(conversionPassId: string, ipAddress: string) {\r\n let url = `${this.conversionsAPI}/passes/${conversionPassId}/nsg/ip/${ipAddress}/add`;\r\n\r\n return this.authHttp.post(url, null);\r\n }\r\n\r\n /**\r\n * Archive conversion pass - Set document state to archived\r\n * @param conversionId \r\n * @param conversionPassId \r\n */\r\n archiveConversionPass(conversionPassId: string) {\r\n let url = `${this.conversionsAPI}/passes/${conversionPassId}/archive`;\r\n\r\n return this.authHttp.put(url, null);\r\n }\r\n\r\n /**\r\n * Unarchive conversion pass - Set document state to unarchived\r\n * @param conversionId \r\n * @param conversionPassId \r\n */\r\n unarchiveConversionPass(conversionPassId: string) {\r\n let url = `${this.conversionsAPI}/passes/${conversionPassId}/unarchive`;\r\n\r\n return this.authHttp.put(url, null);\r\n }\r\n\r\n /**\r\n * Get virtual machine status class\r\n * @param vmStatus \r\n */\r\n getVMStatusClass(vmStatus: VirtualMachineStatus) {\r\n let vmStatusClass = '';\r\n\r\n switch (vmStatus) {\r\n case VirtualMachineStatus.ONLINE:\r\n vmStatusClass = 'vm-online';\r\n break;\r\n case VirtualMachineStatus.SHUTDOWN:\r\n vmStatusClass = 'vm-shutdown';\r\n break;\r\n case VirtualMachineStatus.DELETED:\r\n vmStatusClass = 'vm-deleted';\r\n break;\r\n default:\r\n vmStatusClass = 'vm-undefined';\r\n break;\r\n }\r\n\r\n return vmStatusClass;\r\n }\r\n\r\n /**\r\n * Get virtual machine status text\r\n * @param vmStatus \r\n */\r\n getVMStatusText(vmStatus: VirtualMachineStatus) {\r\n let vmStatusText = '';\r\n\r\n switch (vmStatus) {\r\n case VirtualMachineStatus.ONLINE:\r\n vmStatusText = VirtualMachineStatus[VirtualMachineStatus.ONLINE];\r\n break;\r\n case VirtualMachineStatus.SHUTDOWN:\r\n vmStatusText = VirtualMachineStatus[VirtualMachineStatus.SHUTDOWN];\r\n break;\r\n case VirtualMachineStatus.DELETED:\r\n vmStatusText = VirtualMachineStatus[VirtualMachineStatus.DELETED];\r\n break;\r\n default:\r\n vmStatusText = 'N/A';\r\n break;\r\n }\r\n\r\n return vmStatusText;\r\n }\r\n\r\n /**\r\n * Get customer specific fix details\r\n * @param siteId \r\n * @param region \r\n * @param fromVersion \r\n * @param toVersion \r\n */\r\n getCustomerSpecificDetails(siteId: number, region: string, fromVersion: string, toVersion: string): Observable {\r\n let url = `${this.conversionsAPI}/getcustomerspecific/${siteId}?region=${region}&fromVersion=${fromVersion}&toVersion=${toVersion}`;\r\n return this.authHttp.get(url).map(this.extractData);\r\n }\r\n\r\n /**\r\n * Check whether a Unit of Measure file exists\r\n */\r\n checkUnitOfMeasuresFileExists(conversionPassId: string) {\r\n let url = `${this.conversionsAPI}/passes/${conversionPassId}/uom/exists`;\r\n\r\n return this.authHttp.get(url).map(this.extractData);\r\n }\r\n\r\n /**\r\n * Create unit of measure download token\r\n */\r\n createUnitOfMeasureDownloadToken(uri?: string) {\r\n let url = `${this.conversionsAPI}/passes/uom/download/token`;\r\n\r\n return this.authHttp.post(url, { exists: true, uri: uri }).map(this.extractData);\r\n }\r\n\r\n\r\n /**\r\n * Download unit of measures file\r\n * @param url \r\n */\r\n downloadUnitOfMeasures(uri: string, sas: string) {\r\n let url = `${uri}${sas}`;\r\n window.open(url, \"_blank\");\r\n }\r\n\r\n /**\r\n * Get conversion process types\r\n */\r\n getConversionProcessTypes(): string[] {\r\n return [\r\n \"Cloud Converter\",\r\n \"Manual\"\r\n ];\r\n }\r\n\r\n /** Get conversion types */\r\n getConversionTypes(): string[] {\r\n return [\r\n \"Upgrade\",\r\n \"Migration\"\r\n ];\r\n }\r\n\r\n /**\r\n * Get conversion deployment types\r\n */\r\n getConversionDeploymentTypes(): string[] {\r\n return [\r\n \"Epicor ERP Public Cloud\",\r\n \"Epicor ERP Government Cloud\",\r\n \"ST Saas\",\r\n \"On Premise\"\r\n ];\r\n }\r\n\r\n /**\r\n * Get conversion Project types\r\n */\r\n getConversionProjectTypes(): string[] {\r\n return [\r\n \"Standard Cirrus\",\r\n \"Partner Lead\",\r\n \"Self Serve\",\r\n \"Non-Cirrus\",\r\n \"Cirrus Trial\",\r\n \"Other\"\r\n ];\r\n }\r\n\r\n /** \r\n * Get conversion tooling versions \r\n */\r\n getCloudConverterToolingVersions() {\r\n let url = `${this.conversionsAPI}/tooling/cloudconverter/versions`;\r\n\r\n return this.authHttp.get(url).map(this.extractData);\r\n }\r\n\r\n /**\r\n * Get virtual machine sizes\r\n */\r\n getVMSizes(): string[] {\r\n return [\r\n 'Standard_DS1_V2',\r\n 'Standard_DS2_V2',\r\n 'Standard_DS3_V2',\r\n 'Standard_DS4_v2',\r\n 'Standard_DS5_V2',\r\n 'Standard_DS11_V2',\r\n 'Standard_DS13_V2',\r\n 'Standard_DS14_V2',\r\n 'Standard_DS15_v2'\r\n ];\r\n }\r\n\r\n /**\r\n * Get disk sizes\r\n */\r\n getDiskSizes(): string[] {\r\n return [\r\n '128GB',\r\n '512GB',\r\n '1TB',\r\n '3TB'\r\n ];\r\n }\r\n\r\n\r\n getConversionByStatus(queryParams: any) {\r\n let queryString = this.queryStringPipe.transform({\r\n q: queryParams.searchText,\r\n t: queryParams.token,\r\n status: queryParams.status,\r\n docState: queryParams.docStatus,\r\n livePassFilter: queryParams.livePassFilterParam,\r\n pageSize: queryParams.pageSize\r\n });\r\n let url = `${this.conversionsAPI}/getConversionByStatus${queryString}`;\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /**\r\n * Verify UOM file exists\r\n * @param siteId \r\n * @param version \r\n * @param region \r\n */\r\n verifyUOMExists(siteId: number, region: string) {\r\n let url = `${this.conversionsAPI}/verifyuomexists?siteId=${siteId}®ion=${region}`;\r\n\r\n return this.authHttp.get(url).map(this.extractData);\r\n }\r\n\r\n /**\r\n * Validate UOM mapping file \r\n * @param conversion \r\n */\r\n validateUomMappingFile(conversion: Conversion) {\r\n let url = `${this.conversionsAPI}/validateuommappingfile`;\r\n return this.authHttp.put(url, conversion).map(this.extractData);\r\n }\r\n\r\n private extractData(res: Response) {\r\n let body = res.json();\r\n return body || {};\r\n }\r\n}\r\n\r\nexport enum VirtualMachineStatus {\r\n ONLINE,\r\n SHUTDOWN,\r\n DELETED\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/conversions/_services/conversions.service.ts\n **/","import { Component } from '@angular/core';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\n\r\nimport { ApplicationService, ApplicationDocument } from '../../applications/application.service';\r\nimport { AuthService } from '../../auth/auth.service';\r\n\r\n@Component({\r\n styles: [require('./applicationdoc-dialog.css')],\r\n selector: 'applicationdoc-dialog',\r\n template: require('./applicationdoc-dialog.html'),\r\n providers: [ApplicationService]\r\n})\r\nexport class ApplicationDocDialog {\r\n applicationName: string;\r\n applicationDocument: ApplicationDocument;\r\n file: File;\r\n fileNameLbl: string = \"\";\r\n fileAccept: string;\r\n\r\n constructor(\r\n public dialogRef: MdDialogRef,\r\n private auth: AuthService,\r\n private applicationService: ApplicationService) { }\r\n\r\n setApplicationName(applicationName: string, applicationDocument: ApplicationDocument) {\r\n this.applicationName = applicationName;\r\n this.applicationDocument = applicationDocument;\r\n this.fileAccept = applicationDocument.fileName.substring(applicationDocument.fileName.lastIndexOf('.'));\r\n }\r\n\r\n onChange(event: any) {\r\n let files = event.target.files;\r\n if (files.length === 0) {\r\n return;\r\n }\r\n this.file = files[0];\r\n this.fileNameLbl = this.file.name;\r\n }\r\n\r\n submit() {\r\n if (this.file == null) {\r\n return;\r\n }\r\n let fileToUpload = this.file;\r\n let formData = new FormData();\r\n formData.append('file', fileToUpload, fileToUpload.name);\r\n this.applicationService.uploadDoc(this.applicationName, this.applicationDocument.fileName, formData)\r\n .subscribe((res: any) => {\r\n window.open(res.uri, \"_self\");\r\n }, (err: any) => {\r\n err.status;\r\n });\r\n this.close();\r\n }\r\n\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/shared/dialogs/applicationdoc-dialog.ts\n **/","module.exports = \".upload-btn-wrapper {\\r\\n position: relative;\\r\\n overflow: hidden;\\r\\n height: 100px; \\r\\n overflow-y:auto; \\r\\n width: auto;\\r\\n text-align: center;\\r\\n }\\r\\n \\r\\n .custom-btn {\\r\\n padding: 8px 20px;\\r\\n border-radius: 8px;\\r\\n margin-top: 10px;\\r\\n }\\r\\n \\r\\n .upload-btn-wrapper input[type=file] {\\r\\n position: absolute;\\r\\n left: 0;\\r\\n top: 0;\\r\\n opacity: 0;\\r\\n width: 160px;\\r\\n height: 52px;\\r\\n }\"\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/shared/dialogs/applicationdoc-dialog.css\n ** module id = 380\n ** module chunks = 0\n **/","module.exports = \"\\r\\n Upload a file\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/shared/dialogs/applicationdoc-dialog.html\n ** module id = 381\n ** module chunks = 0\n **/","import { Component, Output } from '@angular/core';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\n\r\nimport { UpgradeGuideService, UpgradeGuide } from '../../shared/services/upgradeguide.service';\r\nimport { AuthService } from '../../auth/auth.service';\r\n\r\n@Component({\r\n styles: [require('./upgradeguide-dialog.css')],\r\n selector: 'upgradeguide-dialog',\r\n template: require('./upgradeguide-dialog.html'),\r\n providers: [UpgradeGuideService]\r\n})\r\nexport class UpgradeGuideDialog {\r\n upgradeGuide: UpgradeGuide = {\r\n id: null,\r\n fileName: null,\r\n description: null,\r\n fileUri: null\r\n };\r\n file: File;\r\n isUpdate: boolean = false;\r\n fileNameLbl: string = \"\";\r\n result: any = \"cancel\";\r\n\r\n constructor(\r\n public dialogRef: MdDialogRef,\r\n private auth: AuthService,\r\n private upgradeGuideService: UpgradeGuideService) { }\r\n\r\n onChange(event: any) {\r\n let files = event.target.files;\r\n if (files.length === 0) {\r\n return;\r\n }\r\n this.file = files[0];\r\n this.fileNameLbl = this.file.name;\r\n }\r\n\r\n enableEdit(upgradeGuide: UpgradeGuide) {\r\n this.upgradeGuide = upgradeGuide;\r\n this.fileNameLbl = upgradeGuide.fileName;\r\n this.isUpdate = true;\r\n }\r\n\r\n submit() {\r\n if (!this.isUpdate && this.file == null) {\r\n return;\r\n }\r\n let fileToUpload = this.file;\r\n let formData = new FormData();\r\n if (this.file != null) {\r\n this.upgradeGuide.fileName = fileToUpload.name;\r\n formData.append('file', fileToUpload, fileToUpload.name);\r\n }\r\n if (this.isUpdate) formData.append('Id', this.upgradeGuide.id);\r\n formData.append('FileName', this.upgradeGuide.fileName);\r\n if (this.upgradeGuide.description) formData.append('Description', this.upgradeGuide.description);\r\n this.result = \"reload\";\r\n if (this.isUpdate) {\r\n this.upgradeGuideService.updateGuide(formData)\r\n .subscribe((res: any) => {\r\n this.result = res;\r\n }, (err: any) => {\r\n err.status;\r\n });\r\n } else {\r\n this.upgradeGuideService.uploadGuide(formData)\r\n .subscribe((res: any) => {\r\n this.result = res;\r\n }, (err: any) => {\r\n err.status;\r\n });\r\n }\r\n this.close();\r\n }\r\n \r\n close() {\r\n this.dialogRef.close(this.result);\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/shared/dialogs/upgradeguide-dialog.ts\n **/","module.exports = \".field-spacer {\\r\\n margin:12px 0\\r\\n}\\r\\n\\r\\n.field-input {\\r\\n height:38px;\\r\\n border:1px solid #CCC;\\r\\n}\\r\\n\\r\\n.field-input-fill-remaining-space {\\r\\n width: 100%;\\r\\n height: 38px;\\r\\n border:1px solid #CCC;\\r\\n padding-left: 4px;\\r\\n}\\r\\n\\r\\n.upload-btn-wrapper {\\r\\n position: relative;\\r\\n overflow: hidden;\\r\\n height: auto; \\r\\n overflow-y:hidden; \\r\\n width: auto;\\r\\n text-align: center;\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n \\r\\n.custom-btn {\\r\\n border-radius: 8px;\\r\\n}\\r\\n\\r\\n.file-field-container {\\r\\n text-align: center;\\r\\n border-style: solid;\\r\\n border-width: 1px;\\r\\n border-color: lightgray;\\r\\n}\\r\\n\\r\\n.upload-btn-wrapper input[type=file] {\\r\\n position: absolute;\\r\\n left: 0;\\r\\n top: 0;\\r\\n opacity: 0;\\r\\n width: 100%;\\r\\n height: 52px;\\r\\n}\"\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/shared/dialogs/upgradeguide-dialog.css\n ** module id = 383\n ** module chunks = 0\n **/","module.exports = \"\\r\\n Upload a file\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n cloud_upload\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/shared/dialogs/upgradeguide-dialog.html\n ** module id = 384\n ** module chunks = 0\n **/","module.exports = \"
\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\tWelcome to the Epicor Cloud Upgrade Services portal \\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t

This portal enables you to access Epicor cloud services solutions in support of your upgrade project. This portal is accessible via EPICweb, Epicor’s secure customer portal or by going to {{url}}

\\r\\n\\r\\n\\t\\t\\t

This portal is designed to reduce the barriers to upgrading and to provide a better experience for users in the upgrade process. In the future, additional cloud services will be available here to support your upgrade project.

\\r\\n\\r\\n\\t\\t\\t

Analyzer - Take the First Steps

\\r\\n\\t\\t\\t

Epicor ERP is a flexible application that can be tailored to fit. When upgrading to the latest version of Epicor ERP, it is important to understand your current solution, including modifications and tailoring. The Analyzer tool automates this time consuming step. It currently works with Vista / Vantage 8.03, Epicor 9.04, Epicor 9.05 and Epicor ERP 10. It can run safely on your production server and generates a report that you and Epicor can access in this portal.

\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t

Our first step in preparing your organization to take advantage of Epicor ERP is to understand better how you’re using Epicor ERP or Vantage/Vista today. The Analyzer eliminates the need for you or your IT staff to manually report tailoring elements in your current system. It provides a view of your environment and is simple to run.

\\r\\n\\r\\n\\t\\t\\t
    \\r\\n\\t\\t\\t\\t
  1. Download ERP Analyser. See below instruction for download.
  2. \\r\\n\\t\\t\\t\\t
  3. Install on your Epicor ERP Application Server (Vista/Vantage/Epicor 9). You will need administrator rights to do this.
  4. \\r\\n\\t\\t\\t\\t
  5. Run the Analyzer (from the Start Menu)
  6. \\r\\n\\t\\t\\t\\t
  7. Login with your Epicor Cloud Upgrade Services Credentials and press GO.
  8. \\r\\n\\t\\t\\t\\t
  9. Review your report via the Epicor Cloud Upgrade Services Portal.
  10. \\r\\n\\t\\t\\t
\\r\\n\\t\\t\\tUpgrade Guide\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
GuideDescriptionEditDelete
{{guide.fileName}}{{guide.description}}
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\tApplications\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t{{application.displayName}}\\r\\n\\t\\t\\t\\t\\tLatest version: {{application.latestVersion}}\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t

{{application.description}}

\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/home.component.html\n ** module id = 385\n ** module chunks = 0\n **/","import { Component, OnInit } from '@angular/core';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { Router } from '@angular/router';\r\nimport { SitesService } from './sites.service';\r\nimport { DOMEvents } from '../../dom-events';\r\nimport { PagerService } from '../../shared/services/pager.service';\r\nimport { AuthService, Role, Permission } from '../../auth/auth.service';\r\nimport { FilterSitePipe } from './sites.pipe';\r\n\r\n@Component({\r\n selector: 'sites',\r\n styles: [ require('./sites.component.css') ],\r\n template: require('./sites.component.html'),\r\n providers: [SitesService, PagerService]\r\n})\r\nexport class SitesComponent implements OnInit {\r\n searchText: string = '';\r\n pageIndex: number = 0;\r\n tokens: string[] = [\"\"]; // include empty to indicate page 1\r\n sites: any[];\r\n isLoading: boolean;\r\n searchTimeout: any;\r\n sitesCount: number = 0;\r\n hasMoreResults: boolean = false;\r\n Role: any = Role;\r\n Permission: any = Permission;\r\n\r\n constructor(\r\n private sitesService: SitesService,\r\n private domEvents: DOMEvents,\r\n private router: Router,\r\n private pagerService: PagerService,\r\n private auth: AuthService) { }\r\n\r\n ngOnInit() {\r\n this.getSites();\r\n this.getSitesCount(); \r\n this.domEvents.triggerOnDocument('appready');\r\n }\r\n\r\n getSites(searchTerm: string = \"\", token: string = \"\") {\r\n this.isLoading = true;\r\n\r\n this.sitesService.getSitesDTO(searchTerm, token).subscribe((response: any) => {\r\n this.sites = response.result;\r\n this.hasMoreResults = response.hasMoreResults;\r\n\r\n if (response.requestContinuation != null) {\r\n var token = JSON.parse(response.requestContinuation).token;\r\n if (typeof this.tokens[this.pageIndex + 1] === 'undefined') {\r\n this.tokens.push(token);\r\n } \r\n }\r\n\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n getSitesCount() {\r\n this.sitesService.getSitesCount().subscribe((count:number) => {\r\n this.sitesCount = count;\r\n });\r\n }\r\n\r\n /** reset tokens and get data matching search text */\r\n filterSite() {\r\n if (this.searchTimeout != undefined) clearTimeout(this.searchTimeout);\r\n this.searchTimeout = setTimeout(() => {\r\n this.pageIndex = 0;\r\n this.tokens = [\"\"];\r\n let token = this.tokens[this.pageIndex];\r\n this.getSites(this.searchText, token);\r\n }, 500);\r\n }\r\n\r\n /** get the previous page using token */\r\n previous() {\r\n this.pageIndex -= 1;\r\n let token = this.tokens[this.pageIndex];\r\n\r\n if (typeof token !== 'undefined') {\r\n this.getSites(this.searchText, token);\r\n } else {\r\n this.pageIndex += 1;\r\n }\r\n }\r\n\r\n /** get the next page using token */\r\n next() {\r\n this.pageIndex += 1;\r\n let token = this.tokens[this.pageIndex];\r\n\r\n if (typeof token !== 'undefined') {\r\n this.getSites(this.searchText, token);\r\n } else {\r\n this.pageIndex -= 1;\r\n }\r\n }\r\n\r\n create() {\r\n if(this.auth.hasRole(Role.Administrator) || this.auth.hasPermission(Permission.SiteCreate))\r\n {\r\n this.router.navigateByUrl('/sites/create');\r\n }\r\n } \r\n\r\n openSiteInNewTab(site: any) {\r\n let url = `${window.location.origin}/#/sites/${site.siteId}`;\r\n window.open(url, \"_blank\");\r\n }\r\n\r\n viewSite(site: any) {\r\n this.router.navigateByUrl('/sites/' + site.siteId);\r\n }\r\n\r\n delete(site: any) {\r\n if (confirm('Are you sure you want to delete site (\"' + site.siteId + '\")')) {\r\n this.sitesService.deleteSite(site.siteId).subscribe((res: any) => {\r\n this.getSites();\r\n });\r\n }\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/core/sites.component.ts\n **/","module.exports = \"td {\\r\\n padding: 2px;\\r\\n margin: 0\\r\\n}\"\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/core/sites.component.css\n ** module id = 387\n ** module chunks = 0\n **/","module.exports = \"Sites ({{sitesCount}})\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
IdNameCAMPSA
security{{site?.siteId}}{{site?.siteName}}{{site?.cam === null ? 'N/A' : site.cam}}{{site?.psa === null ? 'N/A' : site.psa }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/core/sites.component.html\n ** module id = 388\n ** module chunks = 0\n **/","import { Component, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { SitesService } from './sites.service';\r\nimport { UsersService } from '../../users/_services/users.service';\r\nimport { StorageAccountService } from '../../storage-accounts/storage-account.service';\r\nimport { RegionService } from '../../shared/services/region.service';\r\nimport { DOMEvents } from '../../dom-events';\r\nimport { AuthService, LoggedInUser, Role, Permission} from '../../auth/auth.service';\r\nimport { ConversionStatus } from '../conversions/_interfaces/conversions.interface';\r\nimport { ConversionsService } from '../conversions/_services/conversions.service';\r\nimport { CloudViewService, InstanceStatus } from '../../cloudview/cloudview.service';\r\nimport { RemoveWhiteSpacePipe } from '../../shared/pipes/string.pipe';\r\nimport { ZoneService } from '../../shared/services/zone.service';\r\n\r\n@Component({\r\n selector: 'site',\r\n template: require('./site.component.html'),\r\n styles: [ require('./site.component.css')],\r\n providers: [SitesService, UsersService, ConversionsService, RegionService, StorageAccountService, CloudViewService,ZoneService ]\r\n})\r\nexport class SiteComponent implements OnInit {\r\n siteId:number;\r\n site: any;\r\n isLoading:boolean;\r\n editing: boolean = false;\r\n editingSites: boolean = false;\r\n users: any[];\r\n conversions: any[] = [];\r\n status = ConversionStatus;\r\n regions: string[] = [];\r\n zones: string[] = [];\r\n storageAccountRegions: any[] = [];\r\n cloudviewConfig: any;\r\n cloudViewSiteInstances: any[] = [];\r\n removeWhiteSpace = new RemoveWhiteSpacePipe();\r\n notificationEmails: string = '';\r\n InstanceStatus = InstanceStatus;\r\n advancedSettingsVisible: boolean = false;\r\n Role: any = Role;\r\n Permission: any = Permission;\r\n\r\n constructor(\r\n private sitesService: SitesService,\r\n private route: ActivatedRoute, \r\n private router: Router, \r\n private usersService: UsersService, \r\n private conversionsService: ConversionsService,\r\n private regionService: RegionService,\r\n private zoneServices : ZoneService,\r\n private domEvents: DOMEvents,\r\n private auth:AuthService,\r\n private storageAccount: StorageAccountService,\r\n private cloudviewService: CloudViewService,\r\n public viewContainerRef: ViewContainerRef) {\r\n this.route.params.subscribe(params => {\r\n this.siteId = +params['siteId'];\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.getSite(this.siteId);\r\n if (this.auth.hasRole(Role.Administrator) || this.auth.hasRole(Role.EpicorEmployee)) {\r\n \r\n //this.getZones();\r\n this.getStorageAccountRegions();\r\n \r\n this.usersService.getUsersInRoles([Role.Administrator, Role.EpicorEmployee]).subscribe((users:any) => {\r\n this.users = users;\r\n });\r\n } \r\n\r\n this.domEvents.triggerOnDocument('appready');\r\n }\r\n\r\n getSite(siteId: number) {\r\n this.isLoading = true;\r\n\r\n this.sitesService.getSite(siteId).subscribe((site:any) => {\r\n this.site = site; \r\n\r\n if (this.site.notificationEmails) {\r\n this.notificationEmails = this.site.notificationEmails.join(';');\r\n }\r\n this.getRegions();\r\n\r\n this.site.originDescr = 'On Premise';\r\n if (this.site.origin) {\r\n switch (this.site.origin) {\r\n case 'cloud':\r\n this.site.originDescr = 'Cloud';\r\n break;\r\n case 'onpremise':\r\n this.site.originDescr = 'On Premise';\r\n break;\r\n }\r\n }\r\n \r\n this.isLoading = false;\r\n }, err => { this.isLoading = false; });\r\n }\r\n\r\n getRegions() {\r\n this.zoneServices.getZoneRegions(this.site.zoneId).subscribe((regions:string[]) => {\r\n this.regions = regions;\r\n });\r\n }\r\n\r\n refreshZoneAndRegions(){\r\n this.zoneServices.getSiteZoneRegions(this.site.siteId).subscribe((regions:string[]) => {\r\n //this.site.zoneId = result.zId;\r\n this.regions = regions;\r\n });\r\n }\r\n\r\n getZones() {\r\n this.zoneServices.getZones().subscribe((zones:string[]) => {\r\n this.zones = zones;\r\n });\r\n }\r\n\r\n getStorageAccountRegions() {\r\n this.storageAccount.getStorageAccountRegions().subscribe((storageAccounts:any) => {\r\n this.storageAccountRegions = storageAccounts;\r\n });\r\n }\r\n\r\n // getSiteCloudViewConfig(siteId: number) {\r\n // this.cloudviewService.getSiteConfig(siteId).subscribe((config:any) => {\r\n // this.cloudviewConfig = config;\r\n // });\r\n // }\r\n\r\n // createSiteCloudViewConfig() {\r\n // this.router.navigateByUrl(`sites/${this.siteId}/cloudview/config/create`);\r\n // }\r\n\r\n // editSiteCloudViewConfig() {\r\n // this.router.navigateByUrl(`sites/${this.siteId}/cloudview/config`);\r\n // }\r\n\r\n // deleteSiteCloudViewConfig() {\r\n // var msg = `Are you sure you want to delete cloud view config?`;\r\n\r\n // if(confirm(msg)) {\r\n // this.cloudviewService.deleteSiteConfig(this.siteId).subscribe((res:any) => {\r\n // this.cloudviewConfig = null;\r\n // });\r\n // }\r\n // }\r\n\r\n // getCloudViewSiteInstances(siteId: number) {\r\n // this.cloudviewService.getInstancesBySiteId(siteId).subscribe((instances:any) => {\r\n // this.cloudViewSiteInstances = instances;\r\n // });\r\n // }\r\n\r\n // viewCloudViewSiteInstance(instance: any) {\r\n // if (instance.id && instance.appServer) { \r\n // this.router.navigate([`cloudview/hosts/${instance.appServer}/instances/${instance.id}`]);\r\n // } \r\n // }\r\n\r\n getNotificationEmailsCount(): number {\r\n if (this.site.notificationEmails) {\r\n return this.site.notificationEmails.length;\r\n }\r\n return 0;\r\n }\r\n\r\n validateNotificationEmails() {\r\n if (this.notificationEmails) { \r\n this.site.notificationEmails = this.removeWhiteSpace.transform(this.notificationEmails).split(';');\r\n }\r\n }\r\n\r\n toggleAdvanced() {\r\n if (this.advancedSettingsVisible) {\r\n this.advancedSettingsVisible = false;\r\n } else {\r\n this.advancedSettingsVisible = true;\r\n }\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/core/site.component.ts\n **/","import { Injectable } from '@angular/core';\r\nimport { Headers, Http, RequestOptions, Response } from '@angular/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { AuthHttp, AuthConfig, AUTH_PROVIDERS } from 'angular2-jwt';\r\nimport { ConfigService } from '../shared/services/config.service';\r\n\r\n@Injectable()\r\nexport class StorageAccountService {\r\n private serviceBase: string = new ConfigService().getApiURI();\r\n private storageAccountsAPI = this.serviceBase + 'storageaccounts';\r\n\r\n constructor(\r\n private http: Http,\r\n private authHttp: AuthHttp) { }\r\n\r\n getStorageAccounts() {\r\n var url: string = this.storageAccountsAPI;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n getStorageAccountRegions() {\r\n var url: string = `${this.storageAccountsAPI}/regions`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n getStorageAccount(accountName: string) {\r\n var url: string = this.storageAccountsAPI + '/' + accountName;\r\n\r\n return this.authHttp.get(url);\r\n }\r\n\r\n getStorageAccountShares(accountName: string) {\r\n var url: string = this.storageAccountsAPI + '/' + accountName + '/shares';\r\n\r\n return this.authHttp.get(url);\r\n }\r\n\r\n getStorageAccountShare(accountName: string, shareName: string) {\r\n var url: string = this.storageAccountsAPI + '/' + accountName + '/shares/' + shareName;\r\n\r\n return this.authHttp.get(url);\r\n }\r\n\r\n /** Create a site file share in azure */\r\n createFileShare(accountName: string, shareName:string, siteId: number) {\r\n var url: string = `${this.storageAccountsAPI}/${accountName}/shares/${shareName}?siteId=${siteId}`;\r\n\r\n return this.authHttp.post(url, null);\r\n }\r\n\r\n /** Delete a site file share in azure *only if there are no files */\r\n deleteFileShare(accountName: string, shareName: string, siteId: number) {\r\n var url: string = `${this.storageAccountsAPI}/${accountName}/shares/${shareName}?siteId=${siteId}`;\r\n\r\n return this.authHttp.delete(url);\r\n }\r\n\r\n /** Add azure db packer queue message */\r\n addDBPackerQueueMessage(messageText: string) {\r\n var url: string = `${this.storageAccountsAPI}/queues/db-packer-queue/add`;\r\n var body = {\r\n messageText: messageText\r\n };\r\n return this.authHttp.post(url, body)\r\n }\r\n\r\n private extractData(res: Response) {\r\n let body = res.json();\r\n return body || {};\r\n }\r\n}\r\n\r\nexport interface StorageAccount {\r\n id: string;\r\n region?: string;\r\n uri: string;\r\n shares?: StorageAccountShare[]\r\n}\r\n\r\nexport interface StorageAccountShare {\r\n name: string;\r\n uriWithSas: string;\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/storage-accounts/storage-account.service.ts\n **/","import { Injectable } from '@angular/core';\r\nimport { Headers, Http, RequestOptions, Response } from '@angular/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { AuthHttp, AuthConfig, AUTH_PROVIDERS } from 'angular2-jwt';\r\nimport { ConfigService } from './config.service';\r\n\r\nimport 'rxjs/operator/map';\r\n\r\n@Injectable()\r\nexport class RegionService {\r\n private serviceBase: string = new ConfigService().getApiURI();\r\n private regionAPI = `${this.serviceBase}region`;\r\n\r\n constructor(private authHttp: AuthHttp) { }\r\n\r\n /** \r\n * Get a list of regions \r\n */\r\n getRegions() {\r\n var url: string = this.regionAPI;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /**\r\n * Get a list of country codes\r\n */\r\n getCountryCodes() {\r\n let url = `${this.regionAPI}/countrycodes`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n private extractData(res: Response) {\r\n let body = res.json();\r\n return body || {};\r\n }\r\n}\r\n\r\nexport interface ICountryCode {\r\n iso3166: IISO3166;\r\n fips: string;\r\n country: string;\r\n capital: string;\r\n continent: string;\r\n}\r\n\r\ninterface IISO3166 {\r\n alpha1: string;\r\n alpha2: string;\r\n numeric: string;\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/shared/services/region.service.ts\n **/","import { Observable } from 'rxjs';\r\n\r\nexport interface IConversionService {\r\n createConversion: (conversion: any) => Observable;\r\n updateConversion: (conversionId: string, conversion: any) => void;\r\n deleteConversion: (conversionId: string) => Observable;\r\n getConversions: () => Observable;\r\n getSiteConversions: (siteId: number) => Observable;\r\n getConversion: (conversionId: string) => Observable;\r\n getConversionPass: (conversionId: string, passNumber: number) => Observable;\r\n deleteConversionPass: (conversionPassId: string) => Observable;\r\n getConversionPasses: (conversionId: string) => Observable;\r\n getLatestConversionPass: (conversionId: string) => Observable;\r\n getAllConversionPasses: () => Observable;\r\n getConversionPassSummaries: (status?: any, conversionId?: string, token?: string) => Observable;\r\n getConversionPassSummariesCount: (status?: any, conversionId?: string) => Observable;\r\n getConversionLivePassSummariesCount: (status?: any, conversionId?: string) => Observable;\r\n getConversionPassesByStatus: (status?: any) => Observable;\r\n getConversionPassLogs: (conversionPassId: string, token?: string, logType?: any) => Observable;\r\n getConversionPassLogsCount: (conversionPassId: string, logType?: any) => Observable;\r\n getConversionDescription: (configuration: any) => string;\r\n getConversionPassRDPPassword: (conversionPassId: string) => Observable;\r\n getConversionPassProductPassword: (conversionPassId: string) => Observable;\r\n logConversionPassIncident: (conversionPassId: string, incident: any) => Observable;\r\n resubmitConversionPass: (conversionId: string, conversionPassId: string) => Observable;\r\n deleteConversionPassTasks: (conversionId: string, parentIds: string[]) => Observable;\r\n getConversionPassTTL: (conversionPassId: string) => Observable;\r\n updateConversionPassTTL: (conversionPassId: string, ttl: any) => Observable;\r\n updateConversionPassStatus: (conversionPassId: string, status: number) => Observable;\r\n getConversionPassesLimitDefault: () => Observable;\r\n getConversionSchedule: (searchText?: string, token?: string, livePassFilter?: boolean, plannedDateFilter?: boolean) => Observable;\r\n getPreviousSuccessConversionPass: (conversionId: string, passNumber: number) => Observable;\r\n updateConversionSchedule: (conversion: any) => Observable;\r\n getRemainingPasses: (conversionId: string) => Observable;\r\n getNextPassNumber: (conversionId: string) => Observable;\r\n getNextPassNumberSchedule: (conversionId: string) => Observable;\r\n startVM: (conversionPassId: string) => Observable;\r\n escalateConversionPassToDevelopment: (conversionPassId: string) => Observable;\r\n addIPAddressToNSG: (conversionPassId: string, ipAddress: string) => Observable;\r\n}\r\n\r\nexport interface Conversion {\r\n siteId: number;\r\n siteName: string;\r\n configuration: ConversionConfiguration;\r\n live: boolean;\r\n status: string;\r\n uom?: UOM;\r\n}\r\n\r\nexport interface UOM {\r\n Xml: any;\r\n Spreadsheet: any;\r\n}\r\n\r\nexport interface NewConversion {\r\n siteId: number;\r\n siteName: string;\r\n region: string;\r\n environment: any;\r\n}\r\n\r\nexport enum ConversionStatus {\r\n NotStarted = 0,\r\n Started = 1,\r\n InProgress = 2,\r\n Warning = 3,\r\n Error = 4,\r\n Completed = 5,\r\n Stopped = 6\r\n}\r\n\r\nexport interface ConversionConfiguration {\r\n fromProduct: string;\r\n toProduct: string;\r\n conversionProcess: string;\r\n fromVersion: string;\r\n toVersion: string;\r\n conversionType: string;\r\n deployment: string;\r\n goLiveDate: string;\r\n enableDbPacker: boolean;\r\n enableCloudView: boolean;\r\n enableSendToSupport: boolean;\r\n dbBackupLocation: any;\r\n region: string;\r\n passesLimit: number;\r\n advanced: Advanced;\r\n notificationEmails: string;\r\n projectCode: string;\r\n plannedDate: any;\r\n plannedTimezone: any;\r\n goLivePass: boolean;\r\n assignedUser: string; \r\n projectType: string;\r\n csfs: any;\r\n sendEmail: boolean;\r\n databaseVerification: boolean;\r\n owningCompanyID: string;\r\n owningCompanyName: string;\r\n}\r\n\r\nexport interface Advanced {\r\n toolingVersion: string;\r\n vmSize: string;\r\n diskSize: string;\r\n historicalTransactionDays: number; \r\n UOMTemplate: string;\r\n shutdownAfter: number;\r\n deleteAfter: number;\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/conversions/_interfaces/conversions.interface.ts\n **/","import { Injectable } from '@angular/core';\r\nimport { Headers, Http, RequestOptions, Response } from '@angular/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { AuthHttp, AuthConfig, AUTH_PROVIDERS } from 'angular2-jwt';\r\nimport { ConfigService } from '../shared/services/config.service';\r\nimport { QueryStringPipe } from '../shared/pipes/url.pipe';\r\n\r\nimport 'rxjs/operator/map';\r\n\r\n@Injectable()\r\nexport class CloudViewService {\r\n private serviceBase: string = new ConfigService().getApiURI();\r\n private cloudviewAPI = this.serviceBase + 'cloudview';\r\n private queryStringPipe = new QueryStringPipe();\r\n\r\n constructor(\r\n private http: Http,\r\n private authHttp: AuthHttp) { }\r\n\r\n /** Get cloud view hosts */\r\n getHosts() {\r\n var url: string = `${this.cloudviewAPI}/hosts`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /** Delete cloud view host */\r\n deleteHost(hostId: string) {\r\n let url = `${this.cloudviewAPI}/hosts/${hostId}`;\r\n\r\n return this.authHttp.delete(url);\r\n }\r\n\r\n /** Get cloud view application hosts */\r\n getAppHosts() {\r\n var url: string = `${this.cloudviewAPI}/hosts/app`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /** Get cloud view application hosts count */\r\n getAppHostsCount() {\r\n var url: string = `${this.cloudviewAPI}/hosts/app/count`;\r\n\r\n return this.authHttp.get(url)\r\n .map(res => res.json());\r\n }\r\n\r\n /** Get cloud view database hosts */\r\n getDbHosts() {\r\n var url: string = `${this.cloudviewAPI}/hosts/db`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /** Get cloud view database hosts count */\r\n getDbHostsCount() {\r\n var url: string = `${this.cloudviewAPI}/hosts/db/count`;\r\n\r\n return this.authHttp.get(url)\r\n .map(res => res.json());\r\n }\r\n\r\n /** Get cloud view host instances */\r\n getHostInstances(hostId: string) {\r\n var url: string = `${this.cloudviewAPI}/hosts/${hostId}/instances`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /** Get cloud view unallocated instances e.g those with no database server or application server */\r\n getUnallocatedInstances() {\r\n var url: string = `${this.cloudviewAPI}/instances/unallocated`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /** Get cloud view unallocated instances count */\r\n getUnallocatedInstancesCount() {\r\n var url: string = `${this.cloudviewAPI}/instances/unallocated/count`;\r\n\r\n return this.authHttp.get(url)\r\n .map(res => res.json());\r\n }\r\n\r\n /** Get the class for a given instance status */\r\n getInstanceStatusClass(status: InstanceStatus): string {\r\n var statusClass = \"\";\r\n\r\n //TODO(dale): based on the status of db server or app server display the instance status\r\n switch (status) {\r\n case InstanceStatus.Running:\r\n statusClass = \"running\";\r\n break;\r\n case InstanceStatus.Error:\r\n statusClass = \"error\";\r\n break;\r\n case InstanceStatus.Offline:\r\n statusClass = \"offline\";\r\n break;\r\n case InstanceStatus.Provisioning:\r\n statusClass = \"offline\";\r\n break;\r\n case InstanceStatus.Deallocated:\r\n statusClass = \"offline\";\r\n break;\r\n case InstanceStatus.Deleting:\r\n statusClass = \"offline\";\r\n break;\r\n case InstanceStatus.Deleted:\r\n statusClass = \"offline\";\r\n break;\r\n case InstanceStatus.Warning:\r\n statusClass = \"warning\";\r\n break;\r\n default:\r\n statusClass = \"empty\";\r\n break;\r\n }\r\n\r\n return statusClass;\r\n }\r\n\r\n /* Run commands on host */\r\n runCommandsOnHost(command : string, hostid : string){\r\n var url: string = `${this.cloudviewAPI}/runcommand`;\r\n var body = {}\r\n switch (command) {\r\n case \"RestartCloudViewWorker\":\r\n body = { \"HostId\" : hostid,\r\n \"Script\" : \"RestartCloudViewWorker;\"}\r\n break;\r\n case \"RestartTaskAgentService\":\r\n body = { \"HostId\" : hostid,\r\n \"Script\" : \"RestartTaskAgentService;\"}\r\n break;\r\n default:\r\n body = { \"HostId\" : hostid , \"Script\" : command}\r\n break;\r\n }\r\n return this.authHttp.post(url, body);\r\n }\r\n\r\n beautifyScript(command : string){\r\n command = command.replace('\"','\\\"');\r\n }\r\n\r\n /** Get the cloud view site configuration */\r\n getSiteConfig(siteId: number) {\r\n var url: string = `${this.cloudviewAPI}/sites/${siteId}/config`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /** Create a cloud view site configuration */\r\n createSiteConfig(config: any) {\r\n var url: string = `${this.cloudviewAPI}/sites/config`;\r\n\r\n return this.authHttp.post(url, config);\r\n }\r\n\r\n /** Update a cloud view site configuration */\r\n updateSiteConfig(config: any) {\r\n var url: string = `${this.cloudviewAPI}/sites/${config.siteId}/config`;\r\n\r\n return this.authHttp.put(url, config);\r\n }\r\n\r\n /** Delete a cloud view site configuration */\r\n deleteSiteConfig(siteId: number) {\r\n var url: string = `${this.cloudviewAPI}/sites/${siteId}/config`;\r\n\r\n return this.authHttp.delete(url);\r\n }\r\n\r\n /** Get cloud view logs */\r\n getLogs(type?: any, typeUID?: any, severity?: any, instance?: string, token?: string, debug? : boolean, command? : boolean) {\r\n var queryString = this.queryStringPipe.transform({ type: type, typeUID: typeUID, severity: severity, instance: instance, token: token, debug: debug, command: command});\r\n var url = `${this.cloudviewAPI}/logs${queryString}`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /** Get cloud view logs count */\r\n getLogsCount(type?: any, typeUID?: any, severity?: any,instance?: string, debug? : boolean,command? : boolean) {\r\n var queryString = this.queryStringPipe.transform({ type: type, typeUID: typeUID, severity: severity,instance: instance, debug: debug,command: command });\r\n var url = `${this.cloudviewAPI}/logs/count${queryString}`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /** Get cloud view site instances */\r\n getAllSiteInstances(siteId: number) {\r\n var url = `${this.cloudviewAPI}/instances/sites/${siteId}`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n hasInstanceLimitExceeded(siteId : number){\r\n var url = `${this.cloudviewAPI}/limit/${siteId}`;\r\n\r\n return this.authHttp.get(url);\r\n //.map(this.extractData);\r\n }\r\n /** Get the cloud view log severity class */\r\n getLogSeverityClass(status: LogSeverity): string {\r\n var logSeverityClass = \"\";\r\n\r\n switch (status) {\r\n case LogSeverity.ERROR:\r\n logSeverityClass = \"log-error\";\r\n break;\r\n case LogSeverity.WARN:\r\n logSeverityClass = \"log-warn\";\r\n break; \r\n default: \r\n break;\r\n }\r\n\r\n return logSeverityClass;\r\n }\r\n\r\n /**\r\n * Get the host heartbeat\r\n * @param hostId \r\n */\r\n getHostHeartbeat(hostId: string) {\r\n let url = `${this.cloudviewAPI}/hosts/${hostId}/heartbeat`; \r\n\r\n return this.authHttp.get(url); //.map(this.extractData);\r\n }\r\n\r\n /**\r\n * Polls the host heartbeat \r\n * @param hostId \r\n */\r\n pollHostHeartbeat(hostId: string) {\r\n return Observable.interval(900000) // every 15 minutes\r\n .concatMap(() => this.getHostHeartbeat(hostId))\r\n .map(this.extractData);\r\n }\r\n\r\n /**\r\n * Create cloud view host\r\n * @param host \r\n */\r\n createHost(host: any) {\r\n let url = `${this.cloudviewAPI}/hosts`; //${HostType[type]}/region/${region}/size/${size}`;\r\n\r\n return this.authHttp.post(url, host);\r\n }\r\n\r\n /**\r\n * Create cloud view instance\r\n * @param instance \r\n */\r\n createInstance(instance: any) {\r\n var url = `${this.cloudviewAPI}/hosts/instances`;\r\n\r\n return this.authHttp.post(url, instance);\r\n }\r\n\r\n /** Get cloudview instances */\r\n getInstances(query?:string, region?:string, product?:string, status?: InstanceStatus, sortorder?:string, sortCol?:string) {\r\n let queryString = this.queryStringPipe.transform({ q: query, r: region, p: product, s: status , so : sortorder, sc: sortCol });\r\n let url = `${this.cloudviewAPI}/instances${queryString}`;\r\n\r\n return this.authHttp.get(url).map(this.extractData);\r\n }\r\n\r\n /** Get cloudview instances */\r\n getInstance(instanceid :string) {\r\n let url = `${this.cloudviewAPI}/instances/${instanceid}`;\r\n\r\n return this.authHttp.get(url).map(this.extractData);\r\n }\r\n\r\n /** Get cloudview instances by site id */\r\n getInstancesBySiteId(siteId: number) {\r\n let url = `${this.cloudviewAPI}/instances/${siteId}`;\r\n\r\n return this.authHttp.get(url).map(this.extractData);\r\n }\r\n\r\n /** Get Cloud View Instance Access Token */\r\n getInstanceAccessToken(instanceId: string) {\r\n let url = `${this.cloudviewAPI}/instances/${instanceId}/accesstoken`;\r\n\r\n return this.authHttp.get(url).map(this.extractData);\r\n }\r\n\r\n /** Refresh Cloud View Instance Access Token - This will generate a new access token */\r\n refreshInstanceAccessToken(instanceId: string) {\r\n let url = `${this.cloudviewAPI}/instances/${instanceId}/accesstoken/refresh`;\r\n\r\n return this.authHttp.put(url, null);\r\n }\r\n\r\n /** Delete Cloud View Instance */\r\n deleteInstance(instanceId: string) {\r\n let url = `${this.cloudviewAPI}/instances/${instanceId}`;\r\n\r\n return this.authHttp.delete(url);\r\n }\r\n\r\n getHostInstanceCollection(){\r\n let url = `${this.cloudviewAPI}/hostinstances`;\r\n return this.authHttp.get(url).map(this.extractData);\r\n }\r\n\r\n /** Unallocated instance app server or db server */\r\n unallocatedInstance(hostId: string, instanceId: string) {\r\n let url = `${this.cloudviewAPI}/hosts/${hostId}/instances/${instanceId}/unallocated`;\r\n\r\n return this.authHttp.put(url, null);\r\n }\r\n\r\n setAppServer(instanceId: string, appServer:string) {\r\n let queryString = this.queryStringPipe.transform({ appserver: appServer });\r\n let url = `${this.cloudviewAPI}/instances/${instanceId}/appserver${queryString}`;\r\n\r\n return this.authHttp.put(url, null);\r\n }\r\n\r\n setDbServer(instanceId: string, dbServer:string) {\r\n let queryString = this.queryStringPipe.transform({ dbServer: dbServer });\r\n let url = `${this.cloudviewAPI}/instances/${instanceId}/dbserver${queryString}`;\r\n\r\n return this.authHttp.put(url, null);\r\n }\r\n\r\n setInstanceTTL(instanceId: string, deleteOn: string) {\r\n let url = `${this.cloudviewAPI}/instances/${instanceId}/ttl`;\r\n\r\n return this.authHttp.put(url, new Date(deleteOn));\r\n }\r\n\r\n private extractData(res: Response) {\r\n let body = res.json();\r\n return body || {};\r\n }\r\n\r\n getHelp(){\r\n var link = document.createElement(\"a\");\r\n link.setAttribute(\"href\", `${this.cloudviewAPI}/help`);\r\n document.body.appendChild(link); // Required for FF\r\n link.click(); // This will download the data file named \"cloudView.pdf\"\r\n }\r\n}\r\n\r\nexport enum InstanceStatus {\r\n Offline = 0,\r\n Running = 1,\r\n Warning = 2,\r\n Error = 3,\r\n Provisioning = 4,\r\n Deallocating = 5,\r\n Deallocated = 6,\r\n Deleting = 7,\r\n Deleted = 8\r\n}\r\n\r\nexport enum LogType {\r\n HOST = 0,\r\n INSTANCE = 1,\r\n GENERAL = 2\r\n}\r\n\r\nexport enum LogSeverity {\r\n ERROR = 0,\r\n WARN = 1,\r\n INFO = 2,\r\n DEBUG = 3\r\n}\r\n\r\nexport enum HostType {\r\n APP = 0,\r\n DB = 1\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/cloudview/cloudview.service.ts\n **/","import { Injectable } from '@angular/core';\r\nimport { Headers, Http, RequestOptions, Response } from '@angular/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { AuthHttp, AuthConfig, AUTH_PROVIDERS } from 'angular2-jwt';\r\nimport { ConfigService } from './config.service';\r\n\r\nimport 'rxjs/operator/map';\r\nimport { Zone } from '../../zones/zones.component';\r\n\r\n@Injectable()\r\nexport class ZoneService {\r\n private serviceBase: string = new ConfigService().getApiURI();\r\n private zoneAPI = `${this.serviceBase}zones`;\r\n\r\n constructor(private authHttp: AuthHttp) { }\r\n\r\n /** \r\n * Get a list of regions \r\n */\r\n getZones() {\r\n var url: string = `${this.zoneAPI}/all`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /**\r\n * Get a zone\r\n * @param zoneId \r\n */\r\n getZone(zoneId: string) {\r\n let url = `${this.zoneAPI}?id=${zoneId}&accessKey=18585e3d-0dfd-4e01-b66b-537095771a0d`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /**\r\n * Get zone details\r\n */\r\n getZonesDetails() {\r\n var url: string = `${this.zoneAPI}/details?accessKey=c7971c9e-f134-4dc0-a01d-5c3567ad6dee`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n /**\r\n * Get a list of country codes\r\n */\r\n getZoneRegions(zoneId:string) {\r\n let url = `${this.zoneAPI}/regions?id=${zoneId}`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n \r\n getSiteZoneRegions(siteId:number) {\r\n let url = `${this.zoneAPI}/regions/`+ siteId;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n \r\n /**\r\n * Create a zone\r\n * @param zone \r\n */\r\n addZone(zone: Zone) {\r\n let url = `${this.zoneAPI}`;\r\n\r\n return this.authHttp.post(url, zone)\r\n .map(this.extractData);\r\n }\r\n\r\n /**\r\n * Delete a zone\r\n * @param id \r\n */\r\n deleteZone(id: string) {\r\n let url = `${this.zoneAPI}/delete/${id}`;\r\n\r\n return this.authHttp.delete(url);\r\n }\r\n\r\n updateZone(zone: any) {\r\n let url = `${this.zoneAPI}/update`\r\n\r\n return this.authHttp.put(url, zone);\r\n }\r\n\r\n private extractData(res: Response) {\r\n let body = res.json();\r\n return body || {};\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/shared/services/zone.service.ts\n **/","module.exports = \"\\r\\n
\\r\\n \\r\\n {{ site?.siteName}} ({{site?.siteId}}) \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/core/site.component.html\n ** module id = 395\n ** module chunks = 0\n **/","module.exports = \".conversion-configuration-label {\\r\\n font-weight:bold;\\r\\n}\\r\\n\\r\\n.conversion-configuration-field {\\r\\n float:right;\\r\\n width: 100%;\\r\\n height:38px;\\r\\n}\"\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/core/site.component.css\n ** module id = 396\n ** module chunks = 0\n **/","import { Component, Input, Inject } from '@angular/core';\r\nimport { MdDialogRef, MdDialog, MD_DIALOG_DATA } from '@angular/material';\r\n\r\nimport { ISiteShare } from '../_interfaces/ISiteShare';\r\nimport { StorageAccountService } from '../../../storage-accounts/storage-account.service';\r\nimport { AuthService, Role } from '../../../auth/auth.service';\r\n\r\n@Component({\r\n selector: 'site-file-shares',\r\n template: require('./site-file-shares.component.html'),\r\n providers: [StorageAccountService]\r\n})\r\nexport class SiteFileSharesComponent {\r\n @Input() siteId: number;\r\n @Input() fileShares: ISiteShare[];\r\n @Input() storageAccountRegions: any[];\r\n sharesVisible: boolean = false;\r\n Role: any = Role;\r\n\r\n constructor(\r\n public dialog: MdDialog,\r\n private auth: AuthService,\r\n private storageAccount: StorageAccountService) {\r\n\r\n }\r\n\r\n openAddDialog() {\r\n let dialogRef = this.dialog.open(SiteFileShareAddDialog, {\r\n width: '250px',\r\n data: {\r\n regions: this.storageAccountRegions,\r\n siteId: this.siteId,\r\n storageAccount: this.storageAccount,\r\n shares: this.fileShares\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n });\r\n }\r\n\r\n delete(index: number, share: ISiteShare) {\r\n let accountName = share.accountName;\r\n let name = share.name;\r\n let msg = `Are you sure you want to delete ${accountName} ${name}?`;\r\n\r\n if (confirm(msg)) {\r\n this.storageAccount.deleteFileShare(accountName, name, this.siteId).subscribe((res: any) => {\r\n this.fileShares.splice(index, 1);\r\n }, error => {\r\n if (error._body) {\r\n try {\r\n console.error(JSON.parse(error._body));\r\n } catch (err) { }\r\n }\r\n });\r\n }\r\n }\r\n\r\n toggleShares() {\r\n if (this.sharesVisible) {\r\n this.sharesVisible = false;\r\n } else {\r\n this.sharesVisible = true;\r\n }\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'site-file-share-add-dialog',\r\n template: require('./site-file-share-add.dialog.html')\r\n})\r\nexport class SiteFileShareAddDialog {\r\n regions: any[] = [];\r\n isCreating: boolean = false;\r\n errors: any[] = [];\r\n\r\n constructor(\r\n public dialogRef: MdDialogRef,\r\n @Inject(MD_DIALOG_DATA) public data: any) { \r\n this.regions = data.regions;\r\n }\r\n\r\n\r\n fileShare: any = {\r\n accountName: null,\r\n name: null\r\n };\r\n\r\n cancel() {\r\n this.dialogRef.close();\r\n }\r\n\r\n create() {\r\n let accountName = this.fileShare.accountName;\r\n let name = this.fileShare.name;\r\n let siteId = this.data.siteId;\r\n this.errors = [];\r\n this.isCreating = true;\r\n\r\n this.data.storageAccount.createFileShare(accountName, name, siteId).subscribe((res: any) => {\r\n this.data.shares.push(this.extractData(res));\r\n this.isCreating = false;\r\n this.dialogRef.close();\r\n }, (error: any) => {\r\n this.isCreating = false;\r\n if (error._body) {\r\n try {\r\n this.errors = JSON.parse(error._body);\r\n } catch (err) { }\r\n }\r\n });\r\n }\r\n\r\n private extractData(res: any) {\r\n let body = res.json();\r\n\r\n return body || {};\r\n }\r\n\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/core/file-shares/site-file-shares.component.ts\n **/","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Account NameName
{{ share.accountName }}{{ share.name }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/core/file-shares/site-file-shares.component.html\n ** module id = 398\n ** module chunks = 0\n **/","module.exports = \"

Create file share

\\r\\n\\r\\n
\\r\\n \\r\\n {{ option?.region?.key }} ({{ option?.id }})\\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\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/core/file-shares/site-file-share-add.dialog.html\n ** module id = 399\n ** module chunks = 0\n **/","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ISite } from '../_interfaces/ISite';\r\nimport { SitesService } from '../sites.service';\r\nimport { AuthService, Role, Permission } from '../../../auth/auth.service';\r\nimport { RegionService, ICountryCode } from '../../../shared/services/region.service';\r\nimport { ZoneService } from '../../../shared/services/zone.service';\r\nimport { StorageAccountService } from '../../../storage-accounts/storage-account.service';\r\n\r\n@Component({\r\n selector: 'site-detail',\r\n template: require('./site-detail.component.html'),\r\n providers: [ SitesService, RegionService, ZoneService ]\r\n})\r\nexport class SiteDetailComponent {\r\n @Input() site:ISite;\r\n @Input() users: any;\r\n @Input() regions: any;\r\n @Input() zones : any;\r\n partnerSitesVisible: boolean = false;\r\n syncing: boolean = false;\r\n Role: any = Role;\r\n countryCodes: ICountryCode[];\r\n searchCAMText:string =\"\"\r\n searchPSAText:string =\"\"\r\n searchPMText:string =\"\"\r\n searchUMText:string =\"\"\r\n searchPCAMText:string =\"\"\r\n\r\n psaUsers: any;\r\n camUsers: any;\r\n pmUsers: any;\r\n umUsers:any;\r\n pcamUsers:any;\r\n\r\n constructor(\r\n private auth: AuthService, \r\n private sitesService: SitesService,\r\n private regionService: RegionService,\r\n private zoneService: ZoneService) {\r\n this.regionService.getCountryCodes().subscribe((countryCodes:ICountryCode[]) => {\r\n this.countryCodes = countryCodes;\r\n });\r\n }\r\n\r\n ngOnChanges() {\r\n this.camUsers = this.users\r\n this.psaUsers = this.users\r\n this.pmUsers = this.users\r\n this.umUsers = this.users\r\n this.pcamUsers = this.users\r\n }\r\n /**\r\n * Update site on model change\r\n */\r\n updateSite() {\r\n // update the country code based on selected country\r\n this.site.countryCode = this.countryCodes.find(cc => cc.country == this.site.country);\r\n this.sitesService.updateSite(this.site).subscribe((res:any) => {\r\n \r\n }); \r\n }\r\n\r\n /**\r\n * Toggle the partner sites container\r\n */\r\n togglePartnerSites(){\r\n if(this.partnerSitesVisible) {\r\n this.partnerSitesVisible = false;\r\n } else {\r\n this.partnerSitesVisible = true;\r\n }\r\n }\r\n\r\n /**\r\n * Refresh the partner sites from external service\r\n */\r\n refreshPartnerSites() {\r\n if(confirm(\"This will sync site data from an external service, it will overwrite existing sites associated with this site.\")) {\r\n this.syncing = true;\r\n \r\n this.sitesService.refreshChildSites(this.site.siteId).subscribe((childSites:any) => { \r\n this.site.childSites = childSites;\r\n this.syncing = false\r\n }, err => {\r\n this.syncing = false;\r\n }); \r\n } \r\n }\r\n\r\n /**\r\n * Remove a partner site from list\r\n * @param site \r\n */\r\n removePartnerSiteFromList(index: number, site: any) { \r\n this.site.childSites.splice(index, 1);\r\n this.updateSite();\r\n }\r\n\r\n /**\r\n * Determine whether field should be disabled based on role or permission\r\n */\r\n isFieldDisabled() {\r\n if (this.auth.hasRole(Role.Administrator) || \r\n this.auth.hasPermission(Permission.SiteAdmin) || \r\n this.auth.hasPermission(Permission.SiteEdit)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n filterUsers(userType:string){\r\n if(userType =='cam')\r\n this.camUsers = this.getusers(this.searchCAMText)\r\n else if(userType =='psa')\r\n this.psaUsers = this.getusers(this.searchPSAText)\r\n else if(userType =='pm')\r\n this.pmUsers = this.getusers(this.searchPMText)\r\n else if(userType =='um')\r\n this.umUsers = this.getusers(this.searchUMText)\r\n else if(userType =='pcam')\r\n this.pcamUsers = this.getusers(this.searchPCAMText)\r\n }\r\n getusers(searchText:string): any{\r\n console.log(searchText)\r\n if(searchText=='')\r\n return this.users\r\n else{\r\n return this.users.filter((user:any) => user.emailAddress.toLowerCase().match(searchText.toLowerCase()))\r\n }\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/core/detail/site-detail.component.ts\n **/","module.exports = \"\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{countryCode?.country}} ({{ countryCode?.continent }})\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ region?.key }} \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ user?.emailAddress }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ user?.emailAddress }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ user?.emailAddress }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ user?.emailAddress }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ user.emailAddress }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Site IdSite NameCountryRelationshipHas Access\\r\\n \\r\\n
{{ childSite?.siteId }}{{ childSite?.siteName }}{{ childSite?.country }}{{ childSite?.relationshipType }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/core/detail/site-detail.component.html\n ** module id = 401\n ** module chunks = 0\n **/","import { Component, Input } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { ISite } from '../_interfaces/ISite';\r\nimport { SitesService } from '../sites.service';\r\nimport { AuthService, Role, Permission } from '../../../auth/auth.service';\r\nimport { RegionService, ICountryCode } from '../../../shared/services/region.service';\r\nimport { ZoneService } from '../../../shared/services/zone.service';\r\nimport { MdDialog, MdSnackBar } from '@angular/material';\r\nimport { UserEditDialog } from '../../../users/user/user-edit/user-edit.dialog';\r\nimport { UsersService, User } from '../../../users/_services/users.service';\r\n\r\n@Component({\r\n selector: 'site-users',\r\n template: require('./site-users.component.html'),\r\n styles: [ require('./site-users.component.css') ],\r\n providers: [ SitesService, RegionService, ZoneService ]\r\n})\r\nexport class SiteUsersComponent {\r\n @Input() site:ISite;\r\n @Input() users: any;\r\n @Input() regions: any;\r\n @Input() zones : any;\r\n partnerSitesVisible: boolean = false;\r\n syncing: boolean = false;\r\n Role: any = Role;\r\n countryCodes: ICountryCode[];\r\n isLoading: boolean = true;\r\n creatingProvision: boolean = false;\r\n Permission:any = Permission;\r\n\r\n constructor(\r\n public dialog: MdDialog,\r\n public snackBar: MdSnackBar,\r\n private user: UsersService,\r\n private auth: AuthService, \r\n private sitesService: SitesService,\r\n private regionService: RegionService,\r\n private router: Router,\r\n private zoneService: ZoneService) {\r\n this.regionService.getCountryCodes().subscribe((countryCodes:ICountryCode[]) => {\r\n this.countryCodes = countryCodes;\r\n });\r\n }\r\n siteUsers: any[] = [];\r\n visible: boolean = true;\r\n\r\n ngOnInit() {\r\n this.getSiteUsers(this.site.siteId);\r\n }\r\n\r\n /**\r\n * Toggle the manage reports container\r\n */\r\n toggle() {\r\n if (this.visible) {\r\n this.visible = false;\r\n } else {\r\n this.visible = true;\r\n }\r\n }\r\n\r\n getSiteUsers(siteId: number) {\r\n this.sitesService.getSiteUsers(siteId).subscribe((siteusers:any) => {\r\n this.siteUsers = siteusers;\r\n this.isLoading = false;\r\n this.visible = false;\r\n });\r\n }\r\n\r\n /**\r\n * Open edit user dialog\r\n * @param user \r\n */\r\n openEditUserDialog(user: any) {\r\n let dialogRef = this.dialog.open(UserEditDialog, {\r\n width: '250px',\r\n data: {\r\n user: user\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Create user provision\r\n * @param user \r\n */\r\n createProvision(user: any) {\r\n this.creatingProvision = true;\r\n\r\n this.user.createUserProvision(user).subscribe((provision: any) => {\r\n this.creatingProvision = false;\r\n let snackBarRef = this.snackBar.open(`Provision has been created for ${user.emailAddress}`, null, {\r\n duration: 2000\r\n }); \r\n }, err => {\r\n this.creatingProvision = false\r\n console.log(err);\r\n if (err._body.toString().length >0)\r\n {\r\n let snackBarRef = this.snackBar.open(`Please activate the user before provision ${user.emailAddress}`, null, {\r\n duration: 2000\r\n }); \r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Delete user\r\n */\r\n deleteUser(user: User) {\r\n if (window.confirm(\"Are you sure you want to delete user?\")) {\r\n this.user.deleteUser(user.emailAddress).subscribe(\r\n res => {\r\n //this.getUsers();\r\n let snackBarRef = this.snackBar.open(`User ${user.emailAddress} has been deleted`, null, {\r\n duration: 2000\r\n }); \r\n },\r\n err => console.error(err)\r\n );\r\n }\r\n }\r\n\r\n SetStatus(user: any){\r\n if(user.emailAddress == this.auth.getUser().emailAddress){\r\n alert(\"You can't activate/deactivate your own account.\");\r\n return\r\n }\r\n\r\n user.userAccessAudit.changedBy = this.auth.getUser().emailAddress\r\n user.userAccessAudit.active = !user.userAccessAudit.active\r\n user.userAccessAudit.changedOn = new Date() ;\r\n\r\n this.user.UpdateUserAccessStatus(user).subscribe((res: any) => {\r\n //this.users[rowid] = res \r\n }, err => {\r\n console.error(err)\r\n });\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/core/site-users/site-users.component.ts\n **/","module.exports = \"\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n No users found.\\r\\n
\\r\\n 0 && !isLoading\\\" class=\\\"mdl-data-table\\\" style=\\\"width:100%; border:none\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
StatusNameEmail
\\r\\n
\\r\\n
\\r\\n error\\r\\n
\\r\\n
\\r\\n
\\r\\n block\\r\\n
\\r\\n
\\r\\n \\r\\n block\\r\\n \\r\\n
\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n
\\r\\n
\\r\\n
\\r\\n check_circle\\r\\n error\\r\\n
\\r\\n
{{ user?.fullName }}{{ user?.emailAddress }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\t\\t\\t\\t\\t\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/core/site-users/site-users.component.html\n ** module id = 403\n ** module chunks = 0\n **/","import { Component, Input } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { ISite } from '../_interfaces/ISite';\r\n\r\n@Component({\r\n selector: 'site-reports',\r\n template: require('./site-reports.component.html')\r\n})\r\nexport class SiteReportsComponent {\r\n @Input() site: ISite;\r\n\r\n constructor(private router: Router) {\r\n\r\n }\r\n\r\n viewReports() {\r\n this.router.navigateByUrl('reports');\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/core/reports/site-reports.component.ts\n **/","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/core/reports/site-reports.component.html\n ** module id = 406\n ** module chunks = 0\n **/","import { Component, Input, OnInit, OnChanges } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AuthService, Role, Permission } from '../../../auth/auth.service';\r\nimport { ISite } from '../_interfaces/ISite';\r\nimport { ConversionsService } from '../../conversions/_services/conversions.service';\r\n\r\n@Component({\r\n selector: 'site-conversions',\r\n template: require('./site-conversions.component.html'),\r\n providers: [ ConversionsService ]\r\n})\r\nexport class SiteConversionsComponent implements OnInit, OnChanges {\r\n @Input() site: ISite;\r\n Role: any = Role;\r\n Permission: any = Permission; \r\n conversionsVisible: boolean = true;\r\n conversions: any[] = [];\r\n\r\n constructor(\r\n private auth: AuthService,\r\n private router: Router, \r\n private conversionsService: ConversionsService) {\r\n\r\n }\r\n\r\n ngOnChanges() {\r\n this.getConversions();\r\n }\r\n\r\n ngOnInit() {\r\n this.getConversions();\r\n }\r\n\r\n /**\r\n * Toggle conversions container\r\n */\r\n toggleConversions() {\r\n if (this.conversionsVisible) {\r\n this.conversionsVisible = false;\r\n } else {\r\n this.conversionsVisible = true;\r\n }\r\n }\r\n\r\n /**\r\n * Navigate to conversions\r\n */\r\n viewConversionsSite() {\r\n this.router.navigateByUrl(`conversions/${this.site.siteId}/list`);\r\n }\r\n\r\n viewConversions() {\r\n this.router.navigateByUrl('conversions'); \r\n }\r\n\r\n /**\r\n * Navigate to create conversion\r\n */\r\n createConversion() {\r\n if(this.conversions.filter(x => x.status === 0).length === 0)\r\n {\r\n this.router.navigateByUrl(`sites/${this.site.siteId}/conversion/create`);\r\n }\r\n else\r\n {\r\n alert(\"An active conversion already exists. Please edit the existing conversion if you want to make any changes.\");\r\n }\r\n }\r\n\r\n /**\r\n * Open conversion in browser tab\r\n * @param conversion \r\n */\r\n openConversionInNewTab(conversion: any) {\r\n let url = `${window.location.origin}/#/sites/${conversion.siteId}/conversions/${conversion.id}`;\r\n window.open(url, \"_blank\");\r\n }\r\n\r\n /**\r\n * Navigate to edit conversion\r\n * @param conversion \r\n */\r\n editConversion(conversion:any) {\r\n this.router.navigateByUrl(`conversions/${conversion.id}`);\r\n }\r\n\r\n /**\r\n * Delete conversion\r\n * @param index \r\n * @param conversion \r\n */\r\n deleteConversion(index: number, conversion:any) {\r\n if(confirm(\"Are you sure you want to delete conversion?\")) {\r\n this.conversionsService.deleteConversion(conversion.id).subscribe((res:any) => {\r\n this.conversions.splice(index, 1);\r\n }); \r\n }\r\n }\r\n\r\n /**\r\n * Get a list of conversions\r\n */\r\n getConversions() {\r\n this.conversionsService.getSiteConversions(this.site.siteId).subscribe((conversions:any) => {\r\n conversions.forEach((x:any) => {\r\n this.conversionsService.getConversionPassSummaries(null, null, x.id).subscribe(response => {\r\n x.totalPassesRan = response.result.length; \r\n }); \r\n });\r\n this.conversions = conversions;\r\n });\r\n }\r\n\r\n markAsComplete(conversion:any) {\r\n let id = conversion.id;\r\n let status = 'Completed';\r\n \r\n this.conversionsService.updateConversionStatus(id, status).subscribe((response:any) => { \r\n this.getConversions(); \r\n }); \r\n }\r\n\r\n markAsIncomplete(conversion:any) {\r\n let id = conversion.id;\r\n let status = 'NotStarted';\r\n \r\n this.conversionsService.updateConversionStatus(id, status).subscribe((response:any) => {\r\n this.getConversions(); \r\n \r\n });\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/core/conversions/site-conversions.component.ts\n **/","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
DescriptionCreatedStatus\\r\\n \\r\\n
\\r\\n cloud_upload \\r\\n cloud\\r\\n \\r\\n {{ conversion?.configuration?.fromProduct }}\\r\\n {{ conversion?.configuration?.fromVersion }} to \\r\\n {{ conversion?.configuration?.toProduct }}\\r\\n {{ conversion?.configuration?.toVersion }}\\r\\n {{ conversion?.createdDate | date: 'mediumDate' }}\\r\\n check_box \\r\\n check_box_outline_blank\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/core/conversions/site-conversions.component.html\n ** module id = 408\n ** module chunks = 0\n **/","import { Component, Input, OnInit } from '@angular/core';\r\nimport { AuthService, Role, Permission } from '../../../auth/auth.service';\r\nimport { ISite } from '../_interfaces/ISite';\r\nimport { SitesService } from '../sites.service';\r\n\r\n@Component({\r\n selector: 'site-cloud-view',\r\n template: require('./site-cloud-view.component.html'),\r\n providers: [ SitesService ]\r\n})\r\nexport class SiteCloudViewComponent {\r\n @Input() site:ISite;\r\n @Input() regions: any;\r\n Role: any = Role;\r\n Permission: any = Permission;\r\n cloudViewInstancesVisible: boolean = false;\r\n\r\n constructor(\r\n private auth: AuthService,\r\n private sitesService: SitesService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n // default values\r\n if (!this.site.cloudview) {\r\n this.site.cloudview = {\r\n instances: 2,\r\n dataRegion: this.site.region,\r\n deleteAfterHours: 720\r\n }\r\n }\r\n }\r\n\r\n toggleCloudViewInstances() {\r\n if(this.cloudViewInstancesVisible) {\r\n this.cloudViewInstancesVisible = false;\r\n } else {\r\n this.cloudViewInstancesVisible = true;\r\n }\r\n }\r\n\r\n updateSite() {\r\n this.sitesService.updateSite(this.site).subscribe((res:any) => {\r\n\r\n });\r\n }\r\n\r\n isFieldDisabled() {\r\n if (this.auth.hasRole(Role.Administrator) || \r\n (this.auth.hasRole(Role.EpicorEmployee) && this.auth.hasPermission(Permission.SiteAdmin)) || \r\n (this.auth.hasRole(Role.EpicorEmployee) && this.auth.hasPermission(Permission.RestrictedSiteAdmin))) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/core/cloud-view/site-cloud-view.component.ts\n **/","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ region.key }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
IDRegionProductStatusExpires
\\r\\n
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/core/cloud-view/site-cloud-view.component.html\n ** module id = 410\n ** module chunks = 0\n **/","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { AuthService, Role, Permission } from '../../../auth/auth.service';\r\nimport { SitesService } from '../sites.service';\r\nimport { UsersService } from '../../../users/_services/users.service';\r\nimport { ZoneService } from '../../../shared/services/zone.service';\r\nimport { ConversionsService } from '../../conversions/_services/conversions.service';\r\n\r\n@Component({\r\n selector: 'site-privacy-and-security',\r\n template: require('./site-privacy-and-security.component.html'),\r\n providers: [ SitesService, UsersService, ConversionsService ]\r\n})\r\nexport class SitePrivacyAndSecurityComponent {\r\n @Input() site:any;\r\n @Input() users: any;\r\n @Output() refreshRegion = new EventEmitter();\r\n @Output() refreshSite = new EventEmitter();\r\n Role: any = Role;\r\n Permission: any = Permission;\r\n securityHistoryVisible: boolean = false;\r\n endUsers: string[];\r\n restrictedZone : boolean = false;\r\n isLoading : boolean = false;\r\n ignoredFirstEvent : boolean = false;\r\n\r\n constructor(\r\n public auth: AuthService, \r\n private sitesService: SitesService, \r\n private usersService: UsersService,\r\n private convService : ConversionsService,\r\n private zoneService: ZoneService) {\r\n \r\n }\r\n\r\n ngOnInit() {\r\n this.getEndUsers();\r\n if(!this.site.restricted){\r\n this.ignoredFirstEvent = true;\r\n }\r\n }\r\n\r\n updateSite() { \r\n this.sitesService.updateSite(this.site).subscribe((res:any) => {\r\n this.refreshRegion.emit(true);\r\n this.refreshSite.emit();\r\n }); \r\n }\r\n\r\n getEndUsers() {\r\n this.usersService.getEndUsersInSite(this.site.siteId).subscribe((endUsers:string[]) => {\r\n this.endUsers = endUsers;\r\n });\r\n }\r\n \r\n toggleSecurityHistory() {\r\n if (this.securityHistoryVisible) {\r\n this.securityHistoryVisible = false;\r\n } else {\r\n this.securityHistoryVisible = true;\r\n }\r\n }\r\n\r\n toggleRestricted() {\r\n if (!this.site.customerAdmin) {\r\n this.site.restricted = false;\r\n }\r\n\r\n this.updateSite();\r\n }\r\n\r\n toggleSiteRestricted() {\r\n if(!this.ignoredFirstEvent && this.site.restricted)\r\n {\r\n this.ignoredFirstEvent = true;\r\n return;\r\n }\r\n this.isLoading = true;\r\n if (this.site.restricted) \r\n {\r\n //Reset region if site is marked restricted\r\n this.site.region = null;\r\n }\r\n this.convService.getSiteConversions(this.site.siteId).subscribe((conversions:any) => \r\n {\r\n if(conversions.length > 0 )\r\n {\r\n alert(\"A conversion is already configured for this site, please check whether the existing data needs to be moved and the conversion recreated when changing the restricted site flag.\");\r\n }\r\n this.isLoading = false;\r\n this.updateSite();\r\n });\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/core/privacy-and-security/site-privacy-and-security.component.ts\n **/","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n None\\r\\n {{ endUser}}\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/core/privacy-and-security/site-privacy-and-security.component.html\n ** module id = 412\n ** module chunks = 0\n **/","import { Component, OnInit, Input } from '@angular/core';\r\nimport { UsersService } from '../../../../users/_services/users.service';\r\nimport { Permission , AuthService, Role } from '../../../../auth/auth.service';\r\n\r\n@Component({\r\n selector: 'site-manage-cloud-transfer-tool-users',\r\n template: require('./site-manage-cloud-transfer-tool-users.component.html'),\r\n providers: [ UsersService ] \r\n})\r\nexport class SiteManageCloudTransferToolUsersComponent implements OnInit {\r\n @Input() siteId: number;\r\n visible: boolean = false;\r\n users: any[] = [];\r\n selectedUser: string;\r\n Role: any = Role;\r\n Permission: any = Permission;\r\n\r\n constructor(private auth: AuthService, private usersService: UsersService) {\r\n \r\n }\r\n\r\n ngOnInit() {\r\n this.getUsers();\r\n }\r\n\r\n /**\r\n * Get users in CloudTransferTool permission\r\n */\r\n getUsers() {\r\n this.usersService.getRestrictedSiteUsersInPermission(this.siteId, Permission.CloudTransferTool).subscribe((users:any) => {\r\n this.users = users;\r\n });\r\n }\r\n\r\n /**\r\n * Toggle the settings box\r\n */\r\n toggle() {\r\n if (this.visible) {\r\n this.visible = false;\r\n } else {\r\n this.visible = true;\r\n }\r\n }\r\n\r\n /**\r\n * Add user to CloudTransferTool permission\r\n */\r\n add() {\r\n this.usersService.addPermission(this.selectedUser, Permission.CloudTransferTool, this.siteId, true).subscribe((res:any) => {\r\n this.selectedUser = null;\r\n this.getUsers();\r\n });\r\n }\r\n\r\n /**\r\n * Remove CloudTransferTool permission from user\r\n */\r\n remove(index: number, user: any) {\r\n let permission = this.auth.createRestrictedSitePermissionClaimValue(this.siteId, Permission.CloudTransferTool);\r\n\r\n this.usersService.removePermission(user.emailAddress, permission, this.siteId).subscribe((res:any) => {\r\n this.users.splice(index, 1);\r\n });\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/core/privacy-and-security/manage-cloud-transfer-tool-users/site-manage-cloud-transfer-tool-users.component.ts\n **/","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Full NameEmail Address
{{ user?.fullName }}{{ user?.emailAddress }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/core/privacy-and-security/manage-cloud-transfer-tool-users/site-manage-cloud-transfer-tool-users.component.html\n ** module id = 414\n ** module chunks = 0\n **/","import { Component, OnInit, Input } from '@angular/core';\r\nimport { UsersService } from '../../../../users/_services/users.service';\r\nimport { Permission, AuthService, Role } from '../../../../auth/auth.service';\r\n\r\n@Component({\r\n selector: 'site-manage-cloud-view-instance-view-users',\r\n template: require('./site-manage-cloud-view-instance-view-users.component.html'),\r\n providers: [ UsersService ]\r\n})\r\nexport class SiteManageCloudViewInstanceViewUsersComponent implements OnInit {\r\n @Input() siteId: number;\r\n visible: boolean = false;\r\n users: any[] = [];\r\n selectedUser: string;\r\n Role: any = Role;\r\n Permission: any = Permission;\r\n\r\n constructor(private auth: AuthService, private usersService: UsersService) {\r\n \r\n }\r\n\r\n ngOnInit() {\r\n this.getUsers();\r\n }\r\n\r\n /**\r\n * Get users in CloudViewInstanceView permission\r\n */\r\n getUsers() {\r\n this.usersService.getRestrictedSiteUsersInPermission(this.siteId, Permission.CloudViewInstanceView).subscribe((users:any) => {\r\n this.users = users;\r\n });\r\n }\r\n\r\n /**\r\n * Toggle the settings box\r\n */\r\n toggle() {\r\n if (this.visible) {\r\n this.visible = false;\r\n } else {\r\n this.visible = true;\r\n } \r\n }\r\n\r\n /**\r\n * Add user to CloudViewInstanceView permission\r\n */\r\n add() {\r\n this.usersService.addPermission(this.selectedUser, Permission.CloudViewInstanceView, this.siteId, true).subscribe((res:any) => {\r\n this.selectedUser = null; \r\n this.getUsers();\r\n });\r\n }\r\n\r\n /**\r\n * Remove CloudViewInstanceView permission from user\r\n * @param index \r\n * @param user \r\n */\r\n remove(index: number, user: any) {\r\n let permission = this.auth.createRestrictedSitePermissionClaimValue(this.siteId, Permission.CloudViewInstanceView);\r\n\r\n this.usersService.removePermission(user.emailAddress, permission, this.siteId).subscribe((res:any) => {\r\n this.users.splice(index, 1);\r\n });\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/core/privacy-and-security/manage-cloud-view-instance-view-users/site-manage-cloud-view-instance-view-users.component.ts\n **/","module.exports = \"\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Full NameEmail Address
{{ user?.fullName }}{{ user?.emailAddress }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/core/privacy-and-security/manage-cloud-view-instance-view-users/site-manage-cloud-view-instance-view-users.component.html\n ** module id = 416\n ** module chunks = 0\n **/","import { Component, OnInit, Input } from '@angular/core';\r\nimport { UsersService } from '../../../../users/_services/users.service';\r\nimport { Permission, AuthService, Role } from '../../../../auth/auth.service';\r\n\r\n@Component({\r\n selector: 'site-manage-conversion-monitor-connect-users',\r\n template: require('./site-manage-conversion-monitor-connect-users.component.html'),\r\n providers: [ UsersService ]\r\n})\r\nexport class SiteManageConversionMonitorConnectUsersComponent implements OnInit {\r\n @Input() siteId: number;\r\n visible: boolean = false;\r\n users: any[] = [];\r\n selectedUser: string;\r\n Role: any = Role;\r\n Permission: any = Permission;\r\n\r\n constructor(private auth: AuthService, private usersService: UsersService) {\r\n \r\n }\r\n\r\n ngOnInit() {\r\n this.getUsers();\r\n }\r\n\r\n /**\r\n * Get users in ConversionMonitorConnect permission\r\n */\r\n getUsers() {\r\n this.usersService.getRestrictedSiteUsersInPermission(this.siteId, Permission.ConversionMonitorConnect).subscribe((users:any) => {\r\n this.users = users;\r\n });\r\n }\r\n\r\n /**\r\n * Toggle the settings box\r\n */\r\n toggle() {\r\n if (this.visible) {\r\n this.visible = false;\r\n } else {\r\n this.visible = true;\r\n }\r\n }\r\n\r\n /**\r\n * Add user to ConversionMonitorConnect permission\r\n */\r\n add() { \r\n this.usersService.addPermission(this.selectedUser, Permission.ConversionMonitorConnect, this.siteId, true).subscribe((res:any) => {\r\n this.selectedUser = null;\r\n this.getUsers();\r\n });\r\n }\r\n \r\n /**\r\n * Remove ConversionMonitorConnect permission from user\r\n * @param index \r\n * @param user \r\n */\r\n remove(index: number, user: any) {\r\n let permission = this.auth.createRestrictedSitePermissionClaimValue(this.siteId, Permission.ConversionMonitorConnect);\r\n\r\n this.usersService.removePermission(user.emailAddress, permission, this.siteId).subscribe((res:any) => {\r\n this.users.splice(index, 1);\r\n });\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/core/privacy-and-security/manage-conversion-monitor-connect-users/site-manage-conversion-monitor-connect-users.component.ts\n **/","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Full NameEmail Address
{{ user?.fullName }}{{ user?.emailAddress }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/core/privacy-and-security/manage-conversion-monitor-connect-users/site-manage-conversion-monitor-connect-users.component.html\n ** module id = 418\n ** module chunks = 0\n **/","import { Component, OnInit, Input } from '@angular/core';\r\nimport { Permission } from '../../../../auth/auth.service';\r\n\r\n@Component({\r\n selector: 'site-manage-users',\r\n template: require('./site-manage-users.component.html')\r\n})\r\nexport class SiteManageUsersComponent implements OnInit {\r\n @Input() siteId: number;\r\n visible: boolean = false;\r\n users: any[] = [ {\r\n fullName: 'Dale Stone',\r\n emailAddress: 'dale.stone@epicor.com'\r\n }];\r\n permissions: any[] = [\r\n // { name: 'Report Viewer', value: Permission.AnalyserReportViewer },\r\n // { name: 'Report Admin', value: Permission.AnalyserReportAdmin },\r\n // { name: 'User Viewer', value: Permission.UserView } \r\n ]\r\n \r\n constructor() {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n /**\r\n * Toggle the settings box\r\n */\r\n toggle() {\r\n if (this.visible) {\r\n this.visible = false;\r\n } else {\r\n this.visible = true;\r\n } \r\n }\r\n\r\n getUsers() {\r\n\r\n }\r\n\r\n add() {\r\n\r\n }\r\n\r\n remove() {\r\n\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/core/privacy-and-security/manage-users/site-manage-users.component.ts\n **/","module.exports = \"\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Full NameEmail AddressPermissions
{{ user?.fullName }}{{ user?.emailAddress }}\\r\\n \\r\\n \\r\\n {{ permission.name }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/core/privacy-and-security/manage-users/site-manage-users.component.html\n ** module id = 420\n ** module chunks = 0\n **/","import { Component, Input } from '@angular/core';\r\nimport { SitesService } from '../../sites.service';\r\n\r\n@Component({\r\n selector: 'site-security-history',\r\n template: require('./site-security-history.component.html'),\r\n providers: [ SitesService ]\r\n})\r\nexport class SiteSecurityHistoryComponent {\r\n @Input() siteId: number;\r\n visible: boolean = false;\r\n logs: any[] = [];\r\n\r\n constructor(private sitesService: SitesService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.getLogs();\r\n }\r\n\r\n getLogs() {\r\n this.sitesService.getSiteSecurityLogs(this.siteId).subscribe((pagedResult:any) => {\r\n this.logs = pagedResult.result;\r\n });\r\n }\r\n\r\n toggle() {\r\n if (this.visible) {\r\n this.visible = false;\r\n } else {\r\n this.visible = true;\r\n }\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/core/privacy-and-security/security-history/site-security-history.component.ts\n **/","module.exports = \"\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
This is a security log of important events involving your site.
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
{{ log?.action}} - Originated from {{ log?.actorIP }}
\\r\\n
{{ log?.createdDate | date: 'medium'}}
\\r\\n
\\r\\n
{{ log?.description }}
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/core/privacy-and-security/security-history/site-security-history.component.html\n ** module id = 422\n ** module chunks = 0\n **/","import { Component, OnInit, Input } from '@angular/core';\r\nimport { ReportsService } from '../../../reports/reports.service';\r\nimport { SitesService } from '../../sites.service';\r\nimport { AuthService, Role, Permission } from '../../../../auth/auth.service';\r\nimport { ISiteReportSummary } from '../../_interfaces/ISiteReportSummary';\r\n\r\n@Component({\r\n selector: 'site-manage-reports',\r\n template: require('./site-manage-reports.component.html'),\r\n providers: [ ReportsService, SitesService ]\r\n})\r\nexport class SiteManageReportsComponent implements OnInit {\r\n @Input() siteId: number;\r\n visible: boolean = true;\r\n Role: any = Role;\r\n reports: any[] = [];\r\n\r\n constructor(\r\n private auth: AuthService, \r\n private reportsService: ReportsService,\r\n private sitesService: SitesService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.getReports();\r\n }\r\n\r\n /**\r\n * Toggle the manage reports container\r\n */\r\n toggle() {\r\n if (this.visible) {\r\n this.visible = false;\r\n } else {\r\n this.visible = true;\r\n }\r\n }\r\n\r\n /**\r\n * Get report summary and map versions to array\r\n */\r\n getReports() {\r\n this.sitesService.getSiteAnalyserReportsSummary(this.siteId).subscribe((reportsSummary:ISiteReportSummary) => {\r\n this.reports = reportsSummary.versions;\r\n }); \r\n }\r\n\r\n /**\r\n * Open site report in new browser tab\r\n * @param report \r\n */\r\n openReportInNewTab(reportVersion:number) {\r\n let url = `${window.location.origin}/#/sites/${this.siteId}/analyserreports/${reportVersion}`;\r\n window.open(url, \"_blank\");\r\n }\r\n\r\n /**\r\n * Delete site report\r\n * @param index \r\n * @param reportVersion \r\n */\r\n deleteReport(index:number, reportVersion:number) {\r\n if (confirm(`Are you sure you want to delete report ${reportVersion} for site ${this.siteId}?`)) {\r\n this.reportsService.deleteReport(this.siteId, reportVersion).subscribe((res:any) => {\r\n this.reports.splice(index, 1);\r\n });\r\n }\r\n }\r\n\r\n hasDeletePermission()\r\n {\r\n if(this.auth.hasRole(Role.Administrator) || this.auth.hasPermission(Permission.AnalyserReportAdmin))\r\n {\r\n return true; \r\n } \r\n return false; \r\n }\r\n\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/core/reports/manage-reports/site-manage-reports.component.ts\n **/","module.exports = \"\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n No reports found.\\r\\n
\\r\\n 0\\\" class=\\\"mdl-data-table\\\" style=\\\"width:100%; border:none\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
VersionAnalysis Date
{{ report?.version }}{{ report?.analysisDate | date : 'medium'}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/core/reports/manage-reports/site-manage-reports.component.html\n ** module id = 424\n ** module chunks = 0\n **/","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { DOMEvents } from '../../../dom-events';\r\nimport { SitesService } from '../sites.service';\r\nimport { AuthService, Role, Permission } from '../../../auth/auth.service';\r\n\r\n@Component({\r\n selector: 'site-creation',\r\n template: require('./site-creation.component.html'),\r\n providers: [SitesService]\r\n})\r\nexport class SiteCreationComponent implements OnInit {\r\n site:any = {\r\n id: null\r\n }\r\n isLoading:boolean;\r\n\r\n constructor(\r\n private router: Router,\r\n private domEvents: DOMEvents, \r\n private sitesService:SitesService,\r\n private auth: AuthService) {}\r\n\r\n ngOnInit() {\r\n this.domEvents.triggerOnDocument('appready'); \r\n if(!(this.auth.hasRole(Role.Administrator) || this.auth.hasPermission(Permission.SiteCreate)))\r\n {\r\n this.router.navigateByUrl('/home'); \r\n }\r\n }\r\n\r\n onSubmit() {\r\n this.isLoading = true;\r\n\r\n this.sitesService.createSite(this.site.id).subscribe((res:any) => { \r\n this.router.navigateByUrl('/sites');\r\n }, err => { this.isLoading = false; });\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/core/site-create/site-creation.component.ts\n **/","module.exports = \"\\r\\n\\r\\n
\\r\\n \\r\\n Create Site\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/core/site-create/site-creation.component.html\n ** module id = 426\n ** module chunks = 0\n **/","import { Component, Input, OnInit, ViewChild, EventEmitter, ElementRef, HostListener } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\n\r\nimport { AuthService, LoggedInUser } from '../../auth/auth.service';\r\nimport { SitesService } from '../core/sites.service';\r\nimport { ReportsService } from '../../sites/reports/reports.service';\r\nimport { DOMEvents } from '../../dom-events';\r\n\r\nimport { MergeReportPagePipe } from './analysis-report.pipe'\r\n\r\n@Component({\r\n selector: 'analysis-report',\r\n template: require('./analysis-report.html'),\r\n providers: [SitesService, ReportsService, DOMEvents],\r\n styles: [require('./analysis-report.css')],\r\n})\r\nexport class AnalysisReportComponent implements OnInit {\r\n\r\n tabs: any = [\r\n // 'Overview', - Disabled for the moment\r\n 'Environment',\r\n 'Licenses',\r\n 'Companies',\r\n 'Other',\r\n 'Custom'\r\n ];\r\n siteId: number;\r\n isLoading: boolean = false;\r\n freezeInput : boolean = false;\r\n analysis: any = null;\r\n analysisCache: any[] = [];\r\n selectedTab: any = '';\r\n selectedTabData: any;\r\n readFileSas: string;\r\n showReviewed: boolean = false;\r\n totalReviewedPercent: number = 0;\r\n isDirty = false;\r\n platform: string = 'On Premise';\r\n statusList: string[] = ['To Review', 'Keep', 'To Remove','Cloud Warning'];\r\n companyList: string[] = [];\r\n defaultFilterItem: string = 'All';\r\n user: LoggedInUser;\r\n filterCustom: any = {\r\n status: this.defaultFilterItem,\r\n company: this.defaultFilterItem\r\n };\r\n mergeReportPagePipe = new MergeReportPagePipe();\r\n \r\n public onFilterCustom = new EventEmitter();\r\n public onAnalysisRefresh = new EventEmitter();\r\n lastSavedDate: any;\r\n databaseWarningMessage: any;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private sitesService: SitesService,\r\n private reportsService: ReportsService,\r\n private auth: AuthService,\r\n private domEvents: DOMEvents) {\r\n\r\n this.route.queryParams.subscribe(params => {\r\n let debugReport = params['d'];\r\n\r\n if (debugReport) {\r\n this.getLocalReport(debugReport);\r\n } else {\r\n this.isLoading = true;\r\n\r\n this.route.params.subscribe(params => {\r\n this.siteId = +params['siteId'];\r\n this.getReportByVersion(this.siteId,params['version'])\r\n });\r\n }\r\n });\r\n }\r\n\r\n getReportByVersion(siteId:number, version:string){\r\n if(this.isLoading != true){\r\n this.isLoading = true;\r\n }\r\n if (version === 'latest') {\r\n this.getLatestReport(siteId);\r\n } else {\r\n let ver = +version;\r\n this.getReport(siteId, ver);\r\n }\r\n }\r\n ngOnInit() {\r\n this.domEvents.triggerOnDocument('appready');\r\n this.user = this.auth.getUser();\r\n }\r\n\r\n onSelect(tab: string) {\r\n if (this.analysis) {\r\n this.selectedTab = tab;\r\n let reportSection = this.analysis[tab.toLowerCase()];\r\n this.selectedTabData = reportSection;\r\n }\r\n \r\n if(this.selectedTab == \"Custom\" && this.freezeInput){\r\n setTimeout(() => {\r\n this.onAnalysisRefresh.emit(true)\r\n },\r\n 400);\r\n }\r\n }\r\n\r\n reviewedPercent(): void {\r\n this.isDirty = true;\r\n if (this.analysis && this.analysis.custom) {\r\n // calculate the total reviewed percent\r\n this.totalReviewedPercent = this.setReviewedPercent(this.analysis.custom,\r\n [\"uiCustomizations\", \"methodDirectives\", \"sqlViews\", \"sqlStoredProcedures\", \"reports\", \"externalReports\",\r\n \"bankInterfaces\", \"customTables\", \"dashboards\", \"updatableBAQs\", \"baqMethodDirectives\", \"nonUpdatableBAQs\", \"menus\"]);\r\n\r\n // there seems to be a bug with md-progress-circle you cannot set it to zero\r\n if (this.totalReviewedPercent === 0) {\r\n this.totalReviewedPercent = 1;\r\n }\r\n }\r\n }\r\n\r\n setReviewedPercent(custom: any, filter: string[]): number {\r\n var total = 0;\r\n var reviewed = 0;\r\n\r\n if (custom) {\r\n let properties = Object.keys(custom);\r\n\r\n // filter properties\r\n properties = properties.filter(function (property) {\r\n for (var prop of filter) {\r\n if (property === prop) {\r\n return property;\r\n }\r\n }\r\n });\r\n\r\n for (var property of properties) {\r\n if (custom[property]) {\r\n custom[property].forEach(function (item: any) {\r\n total++;\r\n reviewed += item.reviewed ? 1 : 0;\r\n });\r\n }\r\n }\r\n }\r\n\r\n let percentage = Math.floor(reviewed / total * 100);\r\n\r\n if (isNaN(percentage)) {\r\n return 0;\r\n } else {\r\n return percentage;\r\n }\r\n }\r\n\r\n updateReport() {\r\n this.isLoading = true;\r\n this.reportsService.updateReport(this.analysis).subscribe((res: any) => {\r\n this.isLoading = false;\r\n this.isDirty = false;\r\n this.analysis.lastSavedDate = new Date(JSON.parse(res._body).reportLastSavedDate);\r\n }, err => this.isLoading = false);\r\n }\r\n\r\n refreshReport() {\r\n if(this.isDirty){\r\n if(!confirm(\"Changes on report will be lost if not saved. Would you wish to continue syncing the latest report? \")){\r\n return;\r\n }\r\n this.isDirty = false;\r\n }\r\n this.freezeInput = true;\r\n this.onAnalysisRefresh.emit(true);\r\n this.reportsService.refreshReport(this.analysis.id).subscribe((res: any) => {\r\n if(res._body != null){\r\n var details = res.json();\r\n this.getReportByVersion(details.siteId,details.version)\r\n }\r\n \r\n this.onAnalysisRefresh.emit(false);\r\n this.freezeInput = false; \r\n }, err => this.freezeInput = false);\r\n }\r\n\r\n filterCustomItems() {\r\n this.onFilterCustom.emit(this.filterCustom);\r\n }\r\n\r\n exportCustom(siteId: any, version: any, element: any, reportSection: string, exportType: string) {\r\n element.disabled = true;\r\n\r\n this.reportsService.getReportExportToken(this.analysis.id).subscribe((res: any) => {\r\n if (res.token) {\r\n var downloadUrl = this.reportsService.getReportExportDownloadUrl(this.analysis.id, reportSection, res.token, exportType, siteId, version);\r\n window.open(downloadUrl, '_self');\r\n element.disabled = false\r\n }\r\n });\r\n }\r\n\r\n isCloud() {\r\n if (this.analysis) {\r\n return this.analysis.origin == 'cloud';\r\n }\r\n return false;\r\n }\r\n\r\n private getLatestReport(siteId: number) {\r\n this.sitesService.getLatestAnalyserReport(siteId).subscribe(\r\n analyserReport => {\r\n this.analysis = analyserReport;\r\n this.showDatabaseWarning();\r\n if (typeof (analyserReport.origin) != 'undefined') {\r\n switch (analyserReport.origin) {\r\n case 'cloud':\r\n this.platform = 'Cloud';\r\n break;\r\n case 'onpremise':\r\n this.platform = 'On Premise';\r\n break;\r\n }\r\n\r\n }\r\n this.onSelect(this.tabs[0]); // Environment\r\n\r\n this.isLoading = false;\r\n this.getReadFileSas(this.siteId);\r\n\r\n if (this.analysis != null && this.analysis.companies != null) {\r\n this.getCompaniesFilterList(this.analysis.companies);\r\n }\r\n },\r\n err => {\r\n this.auth.unauthorized(err);\r\n this.isLoading = false;\r\n }\r\n );\r\n }\r\n\r\n private getCompaniesFilterList(companies: any[]) {\r\n if (companies != null) {\r\n this.companyList = this.companyList.concat(companies.map((c: any) => c.companyID));\r\n }\r\n }\r\n\r\n private getReport(siteId: number, version: number, index: number = 0) {\r\n this.sitesService.getAnalyserReport(siteId, version).subscribe(\r\n analyserReport => {\r\n this.analysis = analyserReport;\r\n this.showDatabaseWarning();\r\n if (typeof (analyserReport.origin) != 'undefined') {\r\n switch (analyserReport.origin) {\r\n case 'cloud':\r\n this.platform = 'Cloud';\r\n break;\r\n case 'onpremise':\r\n this.platform = 'On Premise'\r\n break;\r\n }\r\n\r\n }\r\n this.onSelect(this.tabs[0]); // Environment\r\n\r\n this.isLoading = false;\r\n this.getReadFileSas(this.siteId);\r\n\r\n if (this.analysis != null && this.analysis.companies != null) {\r\n this.getCompaniesFilterList(this.analysis.companies);\r\n }\r\n },\r\n err => {\r\n this.auth.unauthorized(err);\r\n this.isLoading = false;\r\n }\r\n );\r\n }\r\n\r\n private getReadFileSas(siteId: number) {\r\n this.sitesService.getFileShareReadFileSas(siteId).subscribe(\r\n sas => {\r\n this.readFileSas = sas.read;\r\n },\r\n err => console.error(err)\r\n );\r\n }\r\n\r\n private scroll() {\r\n if (this.selectedTab != \"Environment\")\r\n this.onSelect('Environment')\r\n setTimeout(() => {\r\n document.querySelector('#target').scrollIntoView({ behavior: 'smooth', block: 'center', inline: \"nearest\" });\r\n }, 100);\r\n }\r\n private getLocalReport(report: string) {\r\n\r\n // switch(report) {\r\n // case '69534-report':\r\n // this.analysis = debug_report1;\r\n // break;\r\n // case '87110-report':\r\n // this.analysis = debug_report2;\r\n // break;\r\n // }\r\n\r\n // this.sitesService.getLocalAnalyserReport(report).subscribe(\r\n // analyserReport => {\r\n // this.analysis = analyserReport;\r\n // },\r\n // err => console.error(err)\r\n // );\r\n }\r\n\r\n\r\n canDeactivate() {\r\n if (this.isDirty) {\r\n var confirmationMessage = 'It looks like you have been editing something. '\r\n + 'If you leave before saving, your changes will be lost.';\r\n return window.confirm(confirmationMessage);\r\n }\r\n return true;\r\n }\r\n formatDataSize(sizeInMB: number): string {\r\n if (sizeInMB < 1000)\r\n return Math.round(sizeInMB) + \" MB\";\r\n else\r\n return Math.round(sizeInMB / 1000) + ' GB';\r\n }\r\n showDatabaseWarning(): boolean {\r\n if (this.analysis &&\r\n this.analysis.environment &&\r\n this.analysis.environment.softwareAndPlatform &&\r\n this.analysis.environment.softwareAndPlatform.productVersion &&\r\n this.analysis.environment.softwareAndPlatform.databaseTotalSizeMB) {\r\n const databaseTotalSizeMB = this.analysis.environment.softwareAndPlatform.databaseTotalSizeMB;\r\n const productVersion = this.analysis.environment.softwareAndPlatform.productVersion;\r\n \r\n if (databaseTotalSizeMB !== null && productVersion !== null) {\r\n const formattedSize = this.formatDataSize(databaseTotalSizeMB);\r\n if (databaseTotalSizeMB > 0) {\r\n try {\r\n if (productVersion.startsWith('8') && databaseTotalSizeMB >= 100000) {\r\n this.databaseWarningMessage = `Warning: Database size of ${formattedSize} exceeds 100 GB for version: ${productVersion}. This may result in an extended database conversion time and should be discussed with your CAM.`;\r\n return true;\r\n } else if (productVersion.startsWith('9') && databaseTotalSizeMB >= 150000) {\r\n this.databaseWarningMessage = `Warning: Database size of ${formattedSize} exceeds 150 GB for version: ${productVersion}. This may result in an extended database conversion time and should be discussed with your CAM.`;\r\n return true;\r\n } else if (productVersion.startsWith('10') && databaseTotalSizeMB >= 300000) {\r\n this.databaseWarningMessage = `Warning: Database size of ${formattedSize} exceeds 300 GB for version: ${productVersion}. This may result in an extended database conversion time and should be discussed with your CAM.`;\r\n return true;\r\n } else if (productVersion.startsWith('11') && databaseTotalSizeMB >= 300000) {\r\n this.databaseWarningMessage = `Warning: Database size of ${formattedSize} exceeds 300 GB for version: ${this.getConvertedProductVersion(productVersion)}. This may result in an extended database conversion time and should be discussed with your CAM.`;\r\n return true; \r\n }\r\n } catch (error) {\r\n return false;\r\n }\r\n }\r\n }\r\n } \r\n return false;\r\n }\r\n getConvertedProductVersion(productVersion: string): string\r\n {\r\n if (productVersion && productVersion.indexOf('11.') === 0) {\r\n const [, minor, patch, build] = productVersion.split('.');\r\n let versionString;\r\n if (minor === '1') {\r\n if (patch === '100') {\r\n versionString = `2021.1.${build}`;\r\n } else if (patch === '200') {\r\n versionString = `2021.2.${build}`;\r\n }\r\n } else if (minor === '2') {\r\n if (patch === '100') {\r\n versionString = `2022.1.${build}`;\r\n } else if (patch === '200') {\r\n versionString = `2022.2.${build}`;\r\n } else if (patch === '300') {\r\n versionString = `2023.1.${build}`;\r\n } else if (patch === '400') {\r\n versionString = `2023.2.${build}`;\r\n }\r\n } else if (minor === '3') {\r\n if (patch === '100') {\r\n versionString = `2024.1.${build}`;\r\n } else if (patch === '200') {\r\n versionString = `2024.2.${build}`;\r\n }\r\n }\r\n return `Kinetic ${versionString}`;\r\n }\r\n return productVersion || 'NONE';\r\n }\r\n @HostListener('window:beforeunload', ['$event'])\r\n unloadNotification() {\r\n if (this.isDirty) {\r\n return window.confirm();\r\n }\r\n }\r\n\r\n\r\n}\r\n\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/analysis-report.component.ts\n **/","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'mergeReportPage' })\r\nexport class MergeReportPagePipe implements PipeTransform {\r\n\r\n /**\r\n * \r\n * @param report \r\n * @param reportPage \r\n */\r\n transform(report: any, reportPage: any): any {\r\n try {\r\n for (let lic of reportPage[\"licenses\"]) {\r\n report[\"licenses\"].push(lic);\r\n }\r\n\r\n for (let comp of reportPage[\"companies\"]) {\r\n report[\"companies\"].push(comp);\r\n }\r\n\r\n for (let otherChildProp of Object.keys(reportPage[\"other\"])) {\r\n\r\n for (let otherChildValue of reportPage[\"other\"][otherChildProp]) {\r\n report[\"other\"][otherChildProp].push(otherChildValue);\r\n }\r\n }\r\n\r\n for (let custChildProp of Object.keys(reportPage[\"custom\"])) {\r\n\r\n for (let custChildValue of reportPage[\"custom\"][custChildProp]) {\r\n report[\"custom\"][custChildProp].push(custChildValue);\r\n }\r\n }\r\n\r\n return report;\r\n } catch (err) {\r\n return report;\r\n }\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/analysis-report.pipe.ts\n **/","module.exports = \"\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n Analysis Report \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n Analyser Type: {{ analysis?.erpAnalyserType}}, Analyser Version: {{ analysis?.erpAnalyserVersion }}, Analyser Build\\r\\n Date: {{ analysis?.erpAnalyserBuildDate | date: 'medium' : 'UTC'}}\\r\\n Site ID: {{ analysis?.siteId }}, Site Name: {{ analysis?.siteName}}, Report Version: {{ analysis?.version }}, Analysis\\r\\n Date: {{ analysis?.analysisDate | date:'medium' : 'UTC'}}, Analysis Platform: {{ platform }}\\r\\n \\r\\n \\r\\n Last Sync Date: {{analysis?.lastSyncDate | date:'medium' : 'UTC'}}\\r\\n ,\\r\\n \\r\\n \\r\\n \\r\\n Last Saved Date: {{analysis?.lastSavedDate | date:'medium' : 'UTC'}}\\r\\n ,\\r\\n \\r\\n \\r\\n \\r\\n Kinetic Form List: {{analysis?.kineticFormListVersion}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n

Reviewed

\\r\\n
\\r\\n
\\r\\n 0\\\" style=\\\"cursor: pointer;\\\" (click)=\\\"scroll()\\\">\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Is Production\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n All\\r\\n \\r\\n {{ item }}\\r\\n \\r\\n \\r\\n 1\\\" placeholder=\\\"Company\\\" [(ngModel)]=\\\"filterCustom.company\\\" (ngModelChange)=\\\"filterCustomItems()\\\" [disabled]=\\\"freezeInput\\\">\\r\\n All\\r\\n \\r\\n {{ item }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/analysis-report.html\n ** module id = 429\n ** module chunks = 0\n **/","module.exports = \".review-progress-circle { \\r\\n position: absolute;\\r\\n top: 0px;\\r\\n right: 0px;\\r\\n padding-top: 20px;\\r\\n padding-right: 30px; \\r\\n}\\r\\n\\r\\n.review-progress-circle p {\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.active-tab {\\r\\n /*background-color:rgb(18,195,244);*/\\r\\n border-bottom: 2px solid #0d6b9e;\\r\\n}\\r\\n\\r\\na:hover {\\r\\n color: #106ebe;\\r\\n}\\r\\n\\r\\n.rotate {\\r\\n -webkit-animation: fa-spin 2s infinite linear;\\r\\n animation: fa-spin 2s infinite linear;\\r\\n}\"\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/analysis-report.css\n ** module id = 430\n ** module chunks = 0\n **/","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'static-data',\r\n template: require('./static-data.html')\r\n})\r\nexport class StaticDataComponent {\r\n\r\n @Input() barChartData: any[] = [];\r\n\r\n public barChartOptions: any = {\r\n scaleShowVerticalLines: false,\r\n responsive: true\r\n };\r\n\r\n public barChartLabels: string[] = [''];\r\n public barChartType: string = 'bar';\r\n public barChartLegend: boolean = true;\r\n public barChartColors: Array = [ \r\n {\r\n backgroundColor: '#FFA1B5',\r\n // borderColor: 'rgba(148,159,177,1)',\r\n pointBackgroundColor: 'rgba(148,159,177,1)',\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: 'rgba(148,159,177,0.8)'\r\n },\r\n {\r\n backgroundColor: '#5EB5EF',\r\n // borderColor: 'rgba(148,159,177,1)',\r\n pointBackgroundColor: 'rgba(148,159,177,1)',\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: 'rgba(148,159,177,0.8)'\r\n },\r\n {\r\n backgroundColor: '#FFD878',\r\n // borderColor: 'rgba(148,159,177,1)',\r\n pointBackgroundColor: 'rgba(148,159,177,1)',\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: 'rgba(148,159,177,0.8)'\r\n },\r\n {\r\n backgroundColor: '#ECEDF1',\r\n // borderColor: 'rgba(148,159,177,1)',\r\n pointBackgroundColor: 'rgba(148,159,177,1)',\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: 'rgba(148,159,177,0.8)'\r\n },\r\n {\r\n backgroundColor: '#6FCDCD',\r\n // borderColor: 'rgba(148,159,177,1)',\r\n pointBackgroundColor: 'rgba(148,159,177,1)',\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: 'rgba(148,159,177,0.8)'\r\n },\r\n {\r\n backgroundColor: '#ACC9D7',\r\n // borderColor: 'rgba(148,159,177,1)',\r\n pointBackgroundColor: 'rgba(148,159,177,1)',\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: 'rgba(148,159,177,0.8)'\r\n },\r\n {\r\n backgroundColor: '#E3E3E3',\r\n // borderColor: 'rgba(148,159,177,1)',\r\n pointBackgroundColor: 'rgba(148,159,177,1)',\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: 'rgba(148,159,177,0.8)'\r\n }\r\n ];\r\n\r\n // events\r\n public chartClicked(e: any): void {\r\n // console.log(e);\r\n }\r\n\r\n public chartHovered(e: any): void {\r\n // console.log(e);\r\n }\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/companies/static-data.component.ts\n **/","module.exports = \"
\\r\\n 0\\\" class=\\\"chart\\\"\\r\\n [datasets]=\\\"barChartData\\\"\\r\\n [labels]=\\\"barChartLabels\\\"\\r\\n [options]=\\\"barChartOptions\\\"\\r\\n [legend]=\\\"barChartLegend\\\"\\r\\n [colors]=\\\"barChartColors\\\"\\r\\n [chartType]=\\\"barChartType\\\"\\r\\n (chartHover)=\\\"chartHovered($event)\\\"\\r\\n (chartClick)=\\\"chartClicked($event)\\\">\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/companies/static-data.html\n ** module id = 432\n ** module chunks = 0\n **/","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'transaction-overview',\r\n template: require('./transaction-overview.html')\r\n})\r\nexport class TransactionOverviewComponent {\r\n\r\n @Input() lineChartData: Array = [];\r\n\r\n @Input() lineChartLabels: Array = [];\r\n\r\n public lineChartOptions: any = {\r\n animation: false,\r\n responsive: true\r\n };\r\n\r\n public lineChartColors: Array = [\r\n {\r\n backgroundColor: '#FFA1B5',\r\n // borderColor: 'rgba(148,159,177,1)',\r\n pointBackgroundColor: 'rgba(148,159,177,1)',\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: 'rgba(148,159,177,0.8)'\r\n },\r\n {\r\n backgroundColor: '#5EB5EF',\r\n // borderColor: 'rgba(148,159,177,1)',\r\n pointBackgroundColor: 'rgba(148,159,177,1)',\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: 'rgba(148,159,177,0.8)'\r\n },\r\n {\r\n backgroundColor: '#FFD878',\r\n // borderColor: 'rgba(148,159,177,1)',\r\n pointBackgroundColor: 'rgba(148,159,177,1)',\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: 'rgba(148,159,177,0.8)'\r\n },\r\n {\r\n backgroundColor: '#ECEDF1',\r\n // borderColor: 'rgba(148,159,177,1)',\r\n pointBackgroundColor: 'rgba(148,159,177,1)',\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: 'rgba(148,159,177,0.8)'\r\n },\r\n {\r\n backgroundColor: '#6FCDCD',\r\n // borderColor: 'rgba(148,159,177,1)',\r\n pointBackgroundColor: 'rgba(148,159,177,1)',\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: 'rgba(148,159,177,0.8)'\r\n },\r\n {\r\n backgroundColor: '#ACC9D7',\r\n // borderColor: 'rgba(148,159,177,1)',\r\n pointBackgroundColor: 'rgba(148,159,177,1)',\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: 'rgba(148,159,177,0.8)'\r\n },\r\n {\r\n backgroundColor: '#E3E3E3',\r\n // borderColor: 'rgba(148,159,177,1)',\r\n pointBackgroundColor: 'rgba(148,159,177,1)',\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: 'rgba(148,159,177,0.8)'\r\n }\r\n ];\r\n public lineChartLegend: boolean = true;\r\n public lineChartType: string = 'line';\r\n\r\n // events\r\n public chartClicked(e: any): void {\r\n // console.log(e);\r\n }\r\n\r\n public chartHovered(e: any): void {\r\n // console.log(e);\r\n }\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/companies/transaction-overview.component.ts\n **/","module.exports = \"
\\r\\n 0\\\" class=\\\"chart\\\"\\r\\n [datasets]=\\\"lineChartData\\\"\\r\\n [labels]=\\\"lineChartLabels\\\"\\r\\n [options]=\\\"lineChartOptions\\\"\\r\\n [colors]=\\\"lineChartColors\\\"\\r\\n [legend]=\\\"lineChartLegend\\\"\\r\\n [chartType]=\\\"lineChartType\\\"\\r\\n (chartHover)=\\\"chartHovered($event)\\\"\\r\\n (chartClick)=\\\"chartClicked($event)\\\">\\r\\n
\\r\\n\\r\\n\\r\\n\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/companies/transaction-overview.html\n ** module id = 434\n ** module chunks = 0\n **/","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'companies',\r\n template: require('./companies.html'),\r\n styles: [\r\n require('./companies.css')\r\n ]\r\n})\r\nexport class CompaniesComponent implements OnInit {\r\n _companies: Companies[] = [];\r\n\r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n this._companies = convertKeysToCamelCase(data);\r\n this._companies.forEach(function (company) {\r\n company.icon = 'expand_more';\r\n })\r\n }\r\n }\r\n get data() { return convertKeysToCamelCase(this._companies); }\r\n\r\n opened: Boolean = true; \r\n icon: string = 'expand_more';\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {\r\n // expand child section as only one company\r\n if (this._companies.length === 1) {\r\n this.toggleChild(this._companies[0]);\r\n }\r\n }\r\n\r\n toggle(child?: Companies) {\r\n this.opened = !this.opened;\r\n\r\n if (this.opened) {\r\n this.expandLess();\r\n } else {\r\n this.expandMore();\r\n }\r\n }\r\n\r\n expandLess() {\r\n this.icon = 'expand_less';\r\n }\r\n\r\n expandMore() {\r\n this.icon = 'expand_more';\r\n }\r\n\r\n toggleChild(child?: Companies) {\r\n child.openedChild = !child.openedChild;\r\n\r\n if (child.openedChild) {\r\n this.expandLessChild(child);\r\n } else {\r\n this.expandMoreChild(child);\r\n }\r\n }\r\n\r\n expandLessChild(child: Companies) {\r\n child.icon = 'expand_less';\r\n }\r\n\r\n expandMoreChild(child: Companies) {\r\n child.icon = 'expand_more';\r\n }\r\n\r\n openGoogleMaps(child: Companies) {\r\n var q: string = child.address1 + '+' + child.city + '+' + child.zip;\r\n\r\n window.open(\"http://maps.google.com/?q=\" + q, \"_blank\");\r\n }\r\n\r\n}\r\n\r\nexport interface Companies {\r\n name?: string; \r\n icon?: string;\r\n openedChild: boolean; \r\n keep?: boolean;\r\n reviewed?: boolean;\r\n purpose?: string;\r\n comments?: Comment[];\r\n address1?:string;\r\n city?:string;\r\n zip?:string;\r\n}\r\n\r\nfunction convertKeysToCamelCase(obj : any):any {\r\n if (!obj || typeof obj !== \"object\") return null;\r\n\r\n if (obj instanceof Array) {\r\n return $.map(obj, function(value) {\r\n return convertKeysToCamelCase(value);\r\n });\r\n }\r\n\r\n var newObj = {};\r\n $.each(obj, function(key, value) {\r\n key = key.charAt(0).toLowerCase() + key.slice(1);\r\n if (typeof value == \"object\" && !(value instanceof Array)) {\r\n value = convertKeysToCamelCase(value);\r\n }\r\n newObj[key] = value;\r\n });\r\n\r\n return newObj;\r\n};\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/companies/companies.component.ts\n **/","module.exports = \"\\r\\n Companies ({{_companies?.length}})\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n {{comp?.name}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n GL AP\\r\\n \\r\\n GL AR\\r\\n \\r\\n GL Inventory\\r\\n \\r\\n GL Payroll\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Sites ({{comp.sites?.length}})\\r\\n
    \\r\\n
  • \\r\\n {{ site?.name }}\\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n Static Data\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Transaction Data (Last 12 Months)\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Subledger Data (Last 12 Months)\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Active Users ({{comp.users?.length}}) Last 6 Months\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n {{ user?.name }}\\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/companies/companies.html\n ** module id = 436\n ** module chunks = 0\n **/","module.exports = \"\"\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/companies/companies.css\n ** module id = 437\n ** module chunks = 0\n **/","import { Component, OnInit, Input, EventEmitter, Output, ViewContainerRef } from '@angular/core';\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\nimport { FilterAPMObjectPipe} from './apmObjects.pipe'\r\nimport { ComplexityService } from '../../complexity-type.service';\r\n\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\n\r\nimport {ReportOrderByPipe} from '../../../reports/reportorderby.pipe';\r\nimport {ReportGroupByPipe} from '../../../reports/reportgroupby.pipe'\r\nimport {ReportFilterPipe} from '../../../reports/reportfilter.pipe'\r\nimport {ReportComponentService} from '../../../reports/reports.component.service'\r\n\r\nimport {APMObjectSearchPipe} from './apmObjects.search.pipe'\r\n\r\nimport { APMObjectReportDialog} from './apmObjects.modaldialog';\r\n\r\n@Component({\r\n selector: 'apmObjects',\r\n template: require('./apmObjects.html'),\r\n providers:[PagerService, ComplexityService, ReportComponentService]\r\n})\r\nexport class APMObjectsComponent implements OnInit {\r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n if (data.apmObjects) {\r\n this._apmObjects = data.apmObjects;\r\n }\r\n }\r\n }\r\n get data() { return this._apmObjects }\r\n\r\n @Input() onAnalysisRefresh : EventEmitter; \r\n @Input() onFilterCustom: EventEmitter;\r\n @Output() onChange = new EventEmitter();\r\n\r\n _apmObjects: APMObject[] = [];\r\n freezeInputs : boolean = false;\r\n opened: boolean = false;\r\n icon: string = 'expand_more';\r\n keep: boolean = false;\r\n reviewed: boolean = false;\r\n search: string = '';\r\n selectedFilter: any = {};\r\n pager: any = {};\r\n pagedItems: any[];\r\n //page size\r\n pageSize:number = 10;\r\n filterAPMObjectPipe = new FilterAPMObjectPipe();\r\n finalAPMObjectList : string=\"\";\r\n\r\n isDesc: boolean = false;\r\n column: string = 'documentID';\r\n direction: number;\r\n checkedAll:boolean =false;\r\n\r\n apmObjectRef: MdDialogRef;\r\n hidePagination =false;\r\n setFilterColorColumn = '';\r\n\tclickedOutside:boolean =false;\r\n\tselectedItems:any[];\r\n \r\n constructor( private pagerService: PagerService, \r\n private complexityService : ComplexityService,\r\n public dialog: MdDialog,\r\n public viewContainerRef: ViewContainerRef,\r\n private reportComponentService: ReportComponentService){}\r\n\r\n ngOnInit() {\r\n this.onFilterCustom.subscribe((res:any) => {\r\n this.selectedFilter = res;\r\n this.filterCustom(this.selectedFilter, 1);\r\n });\r\n\r\n this.onAnalysisRefresh.subscribe((res:boolean) => {\r\n this.freezeInputs = res;\r\n });\r\n \r\n this.setPage(1); // initial page 1\r\n }\r\n\r\n filterCustom(filter: any, page?:number) {\r\n var apmObjects: APMObject[] = this._apmObjects;\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n apmObjects = this.setAPMObjectFilter(filter, apmObjects);\r\n this.pager = this.pagerService.getPager(apmObjects.length, page, this.pageSize);\r\n this.pagedItems = apmObjects.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n filterAPMObjects(query: any, page?: number){\r\n var apmObjects: APMObject[] = this._apmObjects;\r\n\r\n if (query === '') {\r\n this.setPage(1);\r\n }\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n apmObjects = this.filterAPMObjectPipe.transform(apmObjects, query)\r\n apmObjects = this.setAPMObjectFilter(this.selectedFilter, apmObjects);\r\n this.pager = this.pagerService.getPager(apmObjects.length, page, this.pageSize);\r\n this.pagedItems = apmObjects.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n setAPMObjectFilter(filter: any, apmObject:APMObject[]): any[] {\r\n apmObject = this.pagerService.filter('custom', apmObject, filter);\r\n\r\n return apmObject;\r\n }\r\n\r\n countReviewed() {\r\n let count = 0;\r\n this._apmObjects.forEach(apmObjects => {\r\n count += apmObjects.reviewed ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n countKeep() {\r\n let count = 0;\r\n this._apmObjects.forEach(apmObjects => {\r\n count += apmObjects.keep ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n keepAll(checked: boolean) {\r\n this._apmObjects.forEach(apmObjects => {\r\n apmObjects.keep = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n reviewedAll(checked: boolean) {\r\n this._apmObjects.forEach(apmObjects => {\r\n apmObjects.reviewed = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n toggle() {\r\n if (this.opened) {\r\n this.opened = false;\r\n this.icon = 'expand_more';\r\n } else {\r\n this.opened = true;\r\n this.icon = 'expand_less';\r\n }\r\n }\r\n\r\n setPage(page: number) {\r\n if (page < 1 || page > this.pager.totalPages) {\r\n return;\r\n }\r\n\r\n if (this.search !== '') {\r\n this.filterAPMObjects(this.search, page);\r\n } else {\r\n this.pager = this.pagerService.getPager(this._apmObjects.length, page, this.pageSize);\r\n this.pagedItems = this._apmObjects.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n this.finalAPMObjectList =\"\";\r\n this.checkedAll=false;\r\n this.reportComponentService.ngAPMInitFlag(this.pagedItems)\r\n this.sort(this.column)\r\n }\r\n }\r\n\r\n sort(property:any){\r\n this.isDesc = !this.isDesc; //change the direction\r\n this.column = property;\r\n this.direction = this.isDesc ? 1 : -1;\r\n };\r\n\r\n openDialog(colElem: any) { \r\n var menusDialogInput = {\r\n pagedItems: this.pagedItems, \r\n finalAPMObjectList: this.finalAPMObjectList,\r\n selectedColumn : colElem,\r\n checkedAll : this.checkedAll,\r\n };\r\n \r\n this.setFilterColorColumn = colElem\r\n\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.apmObjectRef = this.dialog.open(APMObjectReportDialog,config);\r\n this.apmObjectRef.componentInstance.render(menusDialogInput);\r\n\r\n this.apmObjectRef.afterClosed().subscribe(result => {\r\n this.clickedOutside= this.apmObjectRef.componentInstance.clickedOutside;\r\n if(!this.clickedOutside){\r\n this.selectedItems=[];\r\n this.finalAPMObjectList = this.apmObjectRef.componentInstance.finalAPMObjectList;\r\n this.checkedAll = this.apmObjectRef.componentInstance.checkedAll;\r\n if(this.finalAPMObjectList!=null && this.finalAPMObjectList!=undefined && this.finalAPMObjectList.length > 0){\r\n this.finalAPMObjectList.split(',').forEach(item => {\r\n this.selectedItems.push(item);\r\n })\r\n if(this.selectedItems.length != this.pagedItems.length)\r\n this.hidePagination= true;\r\n else\r\n this.hidePagination= false;\r\n }\r\n else\r\n this.hidePagination= false;\r\n }\r\n this.apmObjectRef =null;\r\n }); \r\n }\r\n\r\n public setFilterColorDocumentID(){\r\n return this.reportComponentService.setFilterColorDocumentID(this.finalAPMObjectList, this.setFilterColorColumn);\r\n }\r\n public setFilterColorDocumentType(){\r\n return this.reportComponentService.setFilterColorDocumentType(this.finalAPMObjectList, this.setFilterColorColumn);\r\n }\r\n \r\n public setFilterColorDocuments(){\r\n return this.reportComponentService.setFilterColorDocuments(this.finalAPMObjectList, this.setFilterColorColumn);\r\n }\r\n\r\n public setFilterColorProperties(){\r\n return this.reportComponentService.setFilterColorProperties(this.finalAPMObjectList, this.setFilterColorColumn);\r\n } \r\n\r\n public setFilterColorRoutings(){\r\n return this.reportComponentService.setFilterColorRoutings(this.finalAPMObjectList, this.setFilterColorColumn);\r\n } \r\n\r\n public setFilterColorRecipients(){\r\n return this.reportComponentService.setFilterColorRecipients(this.finalAPMObjectList, this.setFilterColorColumn);\r\n }\r\n}\r\n\r\nexport interface APMObject {\r\n documentId?:number;\r\n documentType?:string;\r\n documents?:number;\r\n properties:number;\r\n routings?:number;\r\n recipients?:number;\r\n\r\n keep?:boolean;\r\n reviewed?:boolean;\r\n thirdPartyModule?:any;\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/apmObjects/apmObjects.component.ts\n **/","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { APMObject } from './apmObjects.component'\r\n\r\n@Pipe({name: 'filterAPMObjects'})\r\nexport class FilterAPMObjectPipe implements PipeTransform {\r\n transform(apmObject: APMObject[], query: string): APMObject[] {\r\n if(query === '') {\r\n return apmObject;\r\n }\r\n return apmObject.filter(apm =>\r\n apm.documentId.toString().toLowerCase().indexOf(query.toLowerCase()) !== -1 ||\r\n apm.documentType.toLowerCase().indexOf(query.toLowerCase()) !== -1);\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/apmObjects/apmObjects.pipe.ts\n **/","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class ComplexityService {\r\n\r\n getComplexity(complexity: number, complexityType: number) {\r\n let number = '';\r\n let type = '';\r\n\r\n if (complexityType != ComplexityType.Unknown && complexityType != null) {\r\n type = ComplexityType[complexityType];\r\n }\r\n\r\n // if (complexity != -1) {\r\n // number = complexity.toString();\r\n // }\r\n\r\n return `${type}`;\r\n }\r\n}\r\n\r\nexport enum ComplexityType {\r\n Unknown = 0,\r\n Basic = 1,\r\n Intermediate = 2,\r\n Complex = 3\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/complexity-type.service.ts\n **/","import { Injectable, Component, ElementRef, ViewChild } from '@angular/core';\r\nimport { Headers, Http, RequestOptions, Response } from '@angular/http';\r\nimport { AuthHttp, AuthConfig, AUTH_PROVIDERS } from 'angular2-jwt';\r\nimport { Observable, Subject } from 'rxjs/Rx';\r\nimport {ComplexityService} from '../../sites/analysis/complexity-type.service';\r\nimport {BPMsFilterColumnName} from '../../sites/analysis/custom/bpms.search.pipe'\r\nimport {BAQsFilterColumnName} from '../../sites/analysis/custom/baqs.modaldialog'\r\nimport {MenusFilterColumnName} from '../../sites/analysis/custom/menus/menus.dialog'\r\nimport {UDFormsFilterColumnName} from '../../sites/analysis/custom/udforms/udforms.modaldialog'\r\nimport {SdkFilterColumnName} from '../../sites/analysis/custom/sdk/sdk.modaldialog' \r\nimport {BankInterfaceFilterColumnName} from '../../sites/analysis/custom/bankInterfaces/bankInterfaces.modaldialog'\r\nimport {ChangeLogsFilterColumnName } from '../../sites/analysis/custom/changelogs/changelogs.modaldialog'\r\nimport {APMObjectFilterColumnName } from '../../sites/analysis/custom/apmObjects/apmObjects.modaldialog'\r\n\r\nimport { PagerService } from './../../shared/services/pager.service';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\nimport { UserDefinedTablesFilterColumnName } from '../../sites/analysis/custom/UserDefinedTables/userDefinedTables.modaldialog';\r\nimport { CustomTriggersFilterColumnName } from '../analysis/custom/triggers/customTriggers.modaldialog';\r\n\r\n@Injectable()\r\nexport class ReportComponentService {\r\n \r\n rowIndex : number = 1;\r\n \r\n filterBlueColor:string =\"rgb(2,80,100)\"\r\n filterDefaultColor:string=\"rgba(0,0,0,.54)\"\r\n\r\n constructor(private complexityService: ComplexityService) { }\r\n\r\n ngOnInit() {\r\n \r\n } \r\n\r\n ngInitBPMsFlag(items:any[]){\r\n this.rowIndex = 1;\r\n items.forEach((item) =>{\r\n item.rowIndex = this.rowIndex;\r\n item.isChecked= true;\r\n\r\n this.rowIndex = this.rowIndex + 1;\r\n\r\n item.customMethod = (item.businessObject + '.' + item.methodCode);\r\n item.customComplexity = this.complexityService.getComplexity(item.complexity, item.complexityType);\r\n });\r\n }\r\n\r\n public ngBAQsInitFlag(items:any[]){\r\n this.rowIndex = 1;\r\n items.forEach((item) =>{\r\n item.isChecked=true;\r\n item.rowIndex = this.rowIndex;\r\n \r\n item.customComplexity = this.complexityService.getComplexity(item.complexity, item.complexityType);\r\n\r\n this.rowIndex = this.rowIndex + 1;\r\n });\r\n }\r\n\r\n public ngMenusInitFlag(items:any[]){\r\n this.rowIndex = 1;\r\n items.forEach((item) =>{\r\n item.rowIndex = this.rowIndex;\r\n item.isChecked=true;\r\n\r\n this.rowIndex = this.rowIndex + 1;\r\n });\r\n }\r\n\r\n public ngUdFormsInitFlag(items:any[]){\r\n this.rowIndex = 1;\r\n items.forEach((item) =>{\r\n item.rowIndex = this.rowIndex;\r\n item.isChecked=true;\r\n\r\n this.rowIndex = this.rowIndex + 1;\r\n });\r\n }\r\n\r\n public ngSdkInitFlag(items:any[]){\r\n this.rowIndex = 1;\r\n items.forEach((item) =>{\r\n item.rowIndex = this.rowIndex;\r\n item.isChecked=true;\r\n\r\n this.rowIndex = this.rowIndex + 1;\r\n });\r\n }\r\n\r\n ngInitBankInterfaceFlag(items:any[]){\r\n this.rowIndex = 1;\r\n items.forEach((item) =>{\r\n item.rowIndex = this.rowIndex;\r\n item.isChecked= true;\r\n\r\n this.rowIndex = this.rowIndex + 1;\r\n });\r\n }\r\n\r\n ngInitChangeLogsFlag(items:any[]){\r\n this.rowIndex = 1;\r\n items.forEach((item) =>{\r\n item.rowIndex = this.rowIndex;\r\n item.isChecked= true;\r\n\r\n this.rowIndex = this.rowIndex + 1;\r\n\r\n });\r\n }\r\n\r\n ngExternalReportInitFlag(items:any[]){\r\n this.rowIndex = 1;\r\n items.forEach((item) =>{\r\n item.rowIndex = this.rowIndex;\r\n item.isChecked= true;\r\n\r\n this.rowIndex = this.rowIndex + 1;\r\n\r\n });\r\n }\r\n\r\n ngSQLInitFlag(items:any[]){\r\n this.rowIndex = 1;\r\n items.forEach((item) =>{\r\n item.rowIndex = this.rowIndex;\r\n item.isChecked= true;\r\n\r\n this.rowIndex = this.rowIndex + 1;\r\n\r\n });\r\n }\r\n\r\n ngAPMInitFlag(items: any[]){\r\n this.rowIndex = 1;\r\n items.forEach((item) =>{\r\n item.rowIndex = this.rowIndex;\r\n item.isChecked= true;\r\n\r\n this.rowIndex = this.rowIndex + 1;\r\n\r\n });\r\n }\r\n\r\n public setFilterColorGroup(finalBPMsList:string, setFilterColorColumn:string ){\r\n if(finalBPMsList.length!=0 && setFilterColorColumn == BPMsFilterColumnName[BPMsFilterColumnName.Group]){\r\n return {'color': this.filterBlueColor};\r\n }\r\n else{ \r\n return {'color': this.filterDefaultColor};\r\n }\r\n }\r\n public setFilterColorName(finalBPMsList:string,setFilterColorColumn:string ){\r\n if(finalBPMsList.length!=0 && setFilterColorColumn == BPMsFilterColumnName[BPMsFilterColumnName.Name]){\r\n return {'color': this.filterBlueColor};\r\n }\r\n else{ \r\n return {'color': this.filterDefaultColor};\r\n }\r\n }\r\n public setFilterColorTableName(finalBPMsList:string,setFilterColorColumn:string ){\r\n if(finalBPMsList.length!=0 && setFilterColorColumn == CustomTriggersFilterColumnName [CustomTriggersFilterColumnName.Name]){\r\n return {'color': this.filterBlueColor};\r\n }\r\n else{ \r\n return {'color': this.filterDefaultColor};\r\n }\r\n }\r\n public setFilterColorComplexity(finalBPMsList:string,setFilterColorColumn:string ){\r\n if(finalBPMsList.length!=0 && setFilterColorColumn == BPMsFilterColumnName[BPMsFilterColumnName.Complexity]){\r\n return {'color': this.filterBlueColor};\r\n }\r\n else{ \r\n return {'color': this.filterDefaultColor};\r\n }\r\n }\r\n public setFilterColorMethod(finalBPMsList:string,setFilterColorColumn:string ){\r\n if(finalBPMsList.length!=0 && setFilterColorColumn == BPMsFilterColumnName[BPMsFilterColumnName.Method]){\r\n return {'color': this.filterBlueColor};\r\n }\r\n else{ \r\n return {'color': this.filterDefaultColor};\r\n }\r\n }\r\n public setFilterColorLOC(finalBPMsList:string,setFilterColorColumn:string ){\r\n if(finalBPMsList.length!=0 && setFilterColorColumn == BPMsFilterColumnName[BPMsFilterColumnName.LOC]){\r\n return {'color': this.filterBlueColor};\r\n }\r\n else{ \r\n return {'color': this.filterDefaultColor};\r\n }\r\n } \r\n\r\n public setFilterColorCompany(finalBAQsList:string,setFilterColorColumn:string ){\r\n if(finalBAQsList.length!=0 && setFilterColorColumn == BAQsFilterColumnName[BAQsFilterColumnName.Company]){\r\n return {'color': this.filterBlueColor};\r\n }\r\n else{ \r\n return {'color': this.filterDefaultColor};\r\n }\r\n }\r\n \r\n public setFilterColorQueryId(finalBAQsList:string, setFilterColorColumn:string ){\r\n if(finalBAQsList.length!=0 && setFilterColorColumn == BAQsFilterColumnName[BAQsFilterColumnName.QueryId]){\r\n return {'color': this.filterBlueColor};\r\n }\r\n else{ \r\n return {'color': this.filterDefaultColor};\r\n }\r\n }\r\n \r\n public setFilterColorDesc(finalBAQsList:string,setFilterColorColumn:string ){\r\n if(finalBAQsList.length!=0 && setFilterColorColumn == BAQsFilterColumnName[BAQsFilterColumnName.Description]){\r\n return {'color': this.filterBlueColor};\r\n }\r\n else{ \r\n return {'color': this.filterDefaultColor};\r\n }\r\n }\r\n\r\n public setFilterColorAuthor(finalUpdatableBAQsList:string,setFilterColorColumn:string ){\r\n if(finalUpdatableBAQsList.length!=0 && setFilterColorColumn == BAQsFilterColumnName[BAQsFilterColumnName.Author]){\r\n return {'color': this.filterBlueColor};\r\n }\r\n else{ \r\n return {'color': this.filterDefaultColor};\r\n }\r\n } \r\n\r\n public setFilterColorCompatible(finalUpdatableBAQsList:string,setFilterColorColumn:string ){\r\n if(finalUpdatableBAQsList.length!=0 && setFilterColorColumn == BAQsFilterColumnName[BAQsFilterColumnName.Compatible]){\r\n return {'color': this.filterBlueColor};\r\n }\r\n else{ \r\n return {'color': this.filterDefaultColor};\r\n }\r\n }\r\n\r\n public setFilterColorShared(finalUpdatableBAQsList:string,setFilterColorColumn:string ){\r\n if(finalUpdatableBAQsList.length!=0 && setFilterColorColumn == BAQsFilterColumnName[BAQsFilterColumnName.Shared]){\r\n return {'color': this.filterBlueColor};\r\n }\r\n else{ \r\n return {'color': this.filterDefaultColor};\r\n }\r\n } \r\n\r\n public setFilterColorTables(finalUpdatableBAQsList:string,setFilterColorColumn:string ){\r\n if(finalUpdatableBAQsList.length!=0 && setFilterColorColumn == BAQsFilterColumnName[BAQsFilterColumnName.Tables]){\r\n return {'color': this.filterBlueColor};\r\n }\r\n else{ \r\n return {'color': this.filterDefaultColor};\r\n }\r\n } \r\n\r\n public setFilterColorExternal(finalUpdatableBAQsList:string,setFilterColorColumn:string ){\r\n if(finalUpdatableBAQsList.length!=0 && setFilterColorColumn == BAQsFilterColumnName[BAQsFilterColumnName.External]){\r\n return {'color': this.filterBlueColor};\r\n }\r\n else{ \r\n return {'color': this.filterDefaultColor};\r\n }\r\n } \r\n\r\n public setFilterColorID(finalMenusList:string,setFilterColorColumn:string ){\r\n if(finalMenusList.length!=0 && setFilterColorColumn == MenusFilterColumnName[MenusFilterColumnName.ID]){\r\n return {'color': this.filterBlueColor};\r\n }\r\n else{ \r\n return {'color': this.filterDefaultColor};\r\n }\r\n }\r\n public setFilterColorProgram(finalMenusList:string,setFilterColorColumn:string ){\r\n if(finalMenusList.length!=0 && setFilterColorColumn == MenusFilterColumnName[MenusFilterColumnName.Program]){\r\n return {'color': this.filterBlueColor};\r\n }\r\n else{ \r\n return {'color': this.filterDefaultColor};\r\n }\r\n } \r\n public setFilterColorArguments(finalMenusList:string,setFilterColorColumn:string ){\r\n if(finalMenusList.length!=0 && setFilterColorColumn == MenusFilterColumnName[MenusFilterColumnName.Arguments]){\r\n return {'color': this.filterBlueColor};\r\n }\r\n else{ \r\n return {'color': this.filterDefaultColor};\r\n }\r\n } \r\n\r\n public setFilterColorRows(finalUDTablesList:string,setFilterColorColumn:string ){\r\n if(finalUDTablesList.length!=0 && setFilterColorColumn == UDFormsFilterColumnName[UDFormsFilterColumnName.Rows]){\r\n return {'color': this.filterBlueColor};\r\n }\r\n else{ \r\n return {'color': this.filterDefaultColor};\r\n }\r\n }\r\n\r\n public setFilterColorRowCount(finalUDTablesList:string,setFilterColorColumn:string ){\r\n if(finalUDTablesList.length!=0 && setFilterColorColumn == UserDefinedTablesFilterColumnName[UserDefinedTablesFilterColumnName.RowCount]){\r\n return {'color': this.filterBlueColor};\r\n }\r\n else{ \r\n return {'color': this.filterDefaultColor};\r\n }\r\n }\r\n public setFilterColorCompanies(finalBankInterfaceList:string,setFilterColorColumn:string ){\r\n if(finalBankInterfaceList.length!=0 && setFilterColorColumn == BankInterfaceFilterColumnName[BankInterfaceFilterColumnName.Companies]){\r\n return {'color': this.filterBlueColor};\r\n }\r\n else{ \r\n return {'color': this.filterDefaultColor};\r\n }\r\n }\r\n\r\n public setFilterColorType(finalBankInterfaceList:string,setFilterColorColumn:string ){\r\n if(finalBankInterfaceList.length!=0 && setFilterColorColumn == BankInterfaceFilterColumnName[BankInterfaceFilterColumnName.Type]){\r\n return {'color': this.filterBlueColor};\r\n }\r\n else{ \r\n return {'color': this.filterDefaultColor};\r\n }\r\n }\r\n\r\n public setFilterColorTable(finalChangeLogsList:string,setFilterColorColumn:string ){\r\n if(finalChangeLogsList.length!=0 && setFilterColorColumn == ChangeLogsFilterColumnName[ChangeLogsFilterColumnName.Table]){\r\n return {'color': this.filterBlueColor};\r\n }\r\n else{ \r\n return {'color': this.filterDefaultColor};\r\n }\r\n } \r\n public setFilterColorDocumentID(finalAPMObjectList:string,setFilterColorColumn:string ){\r\n if(finalAPMObjectList.length!=0 && setFilterColorColumn == APMObjectFilterColumnName[APMObjectFilterColumnName.DocumentID]){\r\n return {'color': this.filterBlueColor};\r\n }\r\n else{ \r\n return {'color': this.filterDefaultColor};\r\n }\r\n } \r\n public setFilterColorDocumentType(finalAPMObjectList:string,setFilterColorColumn:string ){\r\n if(finalAPMObjectList.length!=0 && setFilterColorColumn == APMObjectFilterColumnName[APMObjectFilterColumnName.DocumentType]){\r\n return {'color': this.filterBlueColor};\r\n }\r\n else{ \r\n return {'color': this.filterDefaultColor};\r\n }\r\n } \r\n public setFilterColorDocuments(finalAPMObjectList:string,setFilterColorColumn:string ){\r\n if(finalAPMObjectList.length!=0 && setFilterColorColumn == APMObjectFilterColumnName[APMObjectFilterColumnName.Documents]){\r\n return {'color': this.filterBlueColor};\r\n }\r\n else{ \r\n return {'color': this.filterDefaultColor};\r\n }\r\n } \r\n public setFilterColorProperties(finalAPMObjectList:string,setFilterColorColumn:string ){\r\n if(finalAPMObjectList.length!=0 && setFilterColorColumn == APMObjectFilterColumnName[APMObjectFilterColumnName.Properties]){\r\n return {'color': this.filterBlueColor};\r\n }\r\n else{ \r\n return {'color': this.filterDefaultColor};\r\n }\r\n } \r\n public setFilterColorRoutings(finalAPMObjectList:string,setFilterColorColumn:string ){\r\n if(finalAPMObjectList.length!=0 && setFilterColorColumn == APMObjectFilterColumnName[APMObjectFilterColumnName.Routings]){\r\n return {'color': this.filterBlueColor};\r\n }\r\n else{ \r\n return {'color': this.filterDefaultColor};\r\n }\r\n } \r\n public setFilterColorRecipients(finalAPMObjectList:string,setFilterColorColumn:string ){\r\n if(finalAPMObjectList.length!=0 && setFilterColorColumn == APMObjectFilterColumnName[APMObjectFilterColumnName.Recipients]){\r\n return {'color': this.filterBlueColor};\r\n }\r\n else{ \r\n return {'color': this.filterDefaultColor};\r\n }\r\n } \r\n\r\n}\r\n\r\n\r\n\r\n@Component({\r\n selector: 'error-dialog',\r\n template: `\r\n
\r\n
\r\n
\r\n Error\r\n
\r\n
\r\n errorAtleast one record has to be choosen.\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n`,\r\n providers: [PagerService]\r\n})\r\n\r\nexport class ErrorMessageDialog {\r\n constructor(private dialogRef: MdDialogRef) {}\r\n\r\n @ViewChild('container') container: ElementRef;\r\n\r\n render(){\r\n // this.container.nativeElement.parentElement.offsetParent.style.width=\"357px\"\r\n // this.container.nativeElement.parentElement.offsetParent.style.top=\"53%\"\r\n }\r\n\r\n close(){\r\n this.dialogRef.close();\r\n }\r\n\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/reports/reports.component.service.ts\n **/","import { Component, NgModule, Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'bpmssearch'\r\n})\r\n\r\nexport class BPMsSearchPipe implements PipeTransform {\r\n transform(items: any[], Search:any): any[]{\r\n let search =Object.keys(Search[0]).toString();\r\n let tempItem: any[]=[];\r\n if (items && items.length ){\r\n return items.filter(item =>{\r\n if(search.toString() == BPMsFilterColumnName[BPMsFilterColumnName.Group]){\r\n if (Search[0].Group && item.key.toString().toLowerCase().indexOf(Search[0].Group) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == BPMsFilterColumnName[BPMsFilterColumnName.Name]){\r\n if (Search[0].Name && item.key.toString().toLowerCase().indexOf(Search[0].Name) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == BPMsFilterColumnName[BPMsFilterColumnName.Method]){\r\n if (Search[0].Method && item.key.toString().toLowerCase().indexOf(Search[0].Method) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == BPMsFilterColumnName[BPMsFilterColumnName.Complexity]){\r\n if (Search[0].Complexity && item.key.toString().toLowerCase().indexOf(Search[0].Complexity) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == BPMsFilterColumnName[BPMsFilterColumnName.LOC]){\r\n if (Search[0].LOC && item.key.toString().toLowerCase().indexOf(Search[0].LOC) === -1){\r\n return false;\r\n }\r\n } \r\n return true;\r\n });\r\n }\r\n else{\r\n return items;\r\n }\r\n }\r\n}\r\n\r\nexport enum BPMsFilterColumnName{\r\n Group=0,\r\n Name=1,\r\n Method=2,\r\n Complexity=3,\r\n LOC=4\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/bpms.search.pipe.ts\n **/","import { Component, EventEmitter, Input, Output, OnInit, ViewContainerRef, ViewChild, ElementRef, ChangeDetectorRef } from '@angular/core';\r\n\r\nimport {ReportOrderByPipe} from './../../reports/reportorderby.pipe';\r\nimport {ReportGroupByPipe} from './../../reports/reportgroupby.pipe'\r\nimport {ReportFilterPipe} from './../../reports/reportfilter.pipe'\r\nimport {BAQsSearchPipe} from './baqs.search.pipe'\r\n\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\nimport {ErrorMessageDialog} from './../../reports/reports.component.service'\r\n\r\n@Component({\r\n selector: 'baqs-dialog',\r\n host: {\r\n '(document:click)': 'onClick($event)',\r\n }, \r\n template: `\r\n\r\n \r\n\r\n
{{baqsReportType}} - {{selectedColumn}}
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n\r\n
\r\n (Select All) \r\n
\r\n
\r\n {{md.value[0].company}} \r\n
\r\n
\r\n \r\n
\r\n
\r\n {{md.value[0].queryID}} \r\n
\r\n
\r\n\r\n
\r\n
\r\n {{md.value[0].description}} \r\n
\r\n
\r\n\r\n
\r\n
\r\n {{md.value[0].customComplexity}} \r\n
\r\n
\r\n
\r\n
\r\n {{md.value[0].author}} \r\n
\r\n
\r\n\r\n
\r\n
\r\n {{md.value[0].compatible}} \r\n
\r\n
\r\n \r\n
\r\n
\r\n {{md.value[0].shared}} \r\n
\r\n
\r\n\r\n
\r\n
\r\n {{md.value[0].tables}} \r\n
\r\n
\r\n\r\n
\r\n
\r\n {{md.value[0].external}} \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n`\r\n})\r\n\r\nexport class BAQsReportDialog {\r\n constructor(public dialogRef: MdDialogRef,\r\n private errorChangeDetectorRef: ChangeDetectorRef,\r\n private viewContainerRef: ViewContainerRef,\r\n public dialog: MdDialog,\r\n public elementRef: ElementRef) {}\r\n\r\n pagedItems:any;\r\n finalBAQsList:any;\r\n checkedAll:boolean=false;\r\n selectedColumn:string =\"\";\r\n columnDisplayName : string=\"\";\r\n selectedColumnGroupBy : string =\"\";\r\n hidePagination :boolean = false;\r\n baqsReportType :string=\"\";\r\n selectedMenuList : any[];\r\n BAQsList : any[]=[];\r\n disableApplyButton:boolean =false;\r\n clickedOutside:boolean=false;\r\n tempList:any[]=[];\r\n\r\n @ViewChild('container') container: ElementRef;\r\n\r\n errorDialogRef: MdDialogRef;\r\n\r\n render(baqsDetails:any){\r\n this.pagedItems = baqsDetails.pagedItems;\r\n this.finalBAQsList = baqsDetails.finalBAQsList;\r\n this.tempList = this.finalBAQsList;\r\n this.checkedAll = baqsDetails.checkedAll;\r\n this.selectedColumn = baqsDetails.selectedColumn;\r\n this.selectedColumnGroupBy = this.getGroupByColumnName();\r\n this.baqsReportType = baqsDetails.baqsReportType;\r\n\r\n if(this.finalBAQsList!=undefined && this.finalBAQsList.length > 0){\r\n this.finalBAQsList.split(',').forEach( (id:any) =>{\r\n this.BAQsList.push(Number(id));\r\n this.pagedItems.filter((item:any) => item.rowIndex == id).forEach( (item:any) => {\r\n item.isChecked=true;\r\n }); \r\n });\r\n }\r\n //this.container.nativeElement.children[1].style.backgroundColor=\"yellow\";\r\n this.container.nativeElement.children[1].style.maxHeight=\"30vh\";\r\n this.container.nativeElement.children[1].style.overflow=\"auto\";\r\n\r\n //footer\r\n this.container.nativeElement.children[2].style.float=\"right\";\r\n this.container.nativeElement.children[2].style.position=\"relative\";\r\n this.container.nativeElement.children[2].style.top=\"1vh\";\r\n }\r\n\r\n applyModal():any{\r\n\r\n if(this.BAQsList.length >0 && this.pagedItems.filter((item:any) => item.isChecked==true).length ==0){\r\n this.showErrorMessage();\r\n this.disableApplyButton=true;\r\n return;\r\n }\r\n this.disableApplyButton=false;\r\n this.BAQsList=[];\r\n this.pagedItems.filter((item:any) => item.isChecked==true).forEach( (item:any) => {\r\n this.BAQsList.push(item.rowIndex)\r\n });\r\n\r\n this.finalBAQsList = this.BAQsList.toString();//this.menusFilteringService.bqasList.toString();\r\n \r\n this.dialogRef.close();\r\n }\r\n\r\n checkboxFieldChange(event: any, colElem: any){\r\n if(!event.target){\r\n this.checkedAll = false; \r\n }\r\n this.checkboxFieldChangedProcess(this.pagedItems, event, colElem)\r\n }\r\n\r\n close() {\r\n this.checkedAll=false;\r\n this.finalBAQsList = this.tempList.toString();\r\n this.dialogRef.close();\r\n }\r\n\r\n toggleAll(event:any){\r\n this.disableApplyButton=false; \r\n this.finalBAQsList = this.setToggleValue(this.pagedItems);\r\n }\r\n\r\n getGroupByColumnName():string{\r\n if(this.selectedColumn==BAQsFilterColumnName[BAQsFilterColumnName.Company])\r\n return \"company\"\r\n else if(this.selectedColumn==BAQsFilterColumnName[BAQsFilterColumnName.QueryId])\r\n return \"queryID\"\r\n else if(this.selectedColumn==BAQsFilterColumnName[BAQsFilterColumnName.Description])\r\n return \"description\"\r\n else if(this.selectedColumn==BAQsFilterColumnName[BAQsFilterColumnName.Author])\r\n return \"author\"\r\n else if(this.selectedColumn==BAQsFilterColumnName[BAQsFilterColumnName.Complexity])\r\n return \"customComplexity\"\r\n else if(this.selectedColumn==BAQsFilterColumnName[BAQsFilterColumnName.Compatible])\r\n return \"compatible\"\r\n else if(this.selectedColumn==BAQsFilterColumnName[BAQsFilterColumnName.Shared])\r\n return \"shared\"\r\n else if(this.selectedColumn==BAQsFilterColumnName[BAQsFilterColumnName.Tables])\r\n return \"tables\"\r\n else \r\n return \"external\"\r\n\r\n } \r\n\r\n public checkboxFieldChangedProcess(items:any[], event: any, colElem: any){ \r\n if(colElem==BAQsFilterColumnName[BAQsFilterColumnName.Company]){\r\n this.companyFieldProcess(items, event);\r\n }\r\n else if(colElem==BAQsFilterColumnName[BAQsFilterColumnName.QueryId]){\r\n this.queryIdFieldProcess(items,event);\r\n }\r\n else if(colElem==BAQsFilterColumnName[BAQsFilterColumnName.Description]){\r\n this.descFieldProcess(items,event);\r\n }\r\n \r\n else if(colElem==BAQsFilterColumnName[BAQsFilterColumnName.Complexity]){\r\n this.complexityFieldProcess(items,event);\r\n }\r\n\r\n if(colElem==BAQsFilterColumnName[BAQsFilterColumnName.Author]){\r\n this.authorFieldProcess(items,event);\r\n } \r\n else if(colElem==BAQsFilterColumnName[BAQsFilterColumnName.Compatible]){\r\n this.compatibleFieldProcess(items,event);\r\n } \r\n else if(colElem==BAQsFilterColumnName[BAQsFilterColumnName.Shared]){\r\n this.sharedFieldProcess(items,event);\r\n } \r\n else if(colElem==BAQsFilterColumnName[BAQsFilterColumnName.Tables]){\r\n this.tablesFieldProcess(items,event);\r\n } \r\n else if(colElem==BAQsFilterColumnName[BAQsFilterColumnName.External]){\r\n this.externalFieldProcess(items,event);\r\n } \r\n }\r\n\r\n public companyFieldProcess(items:any[], event: any){\r\n let company = '';\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n company = getRowDetails[0].company;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.company == company).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.company == company).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n\r\n public queryIdFieldProcess(items:any[], event: any){\r\n let queryID = '';\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n queryID = getRowDetails[0].queryID;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.queryID == queryID).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.queryID == queryID).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n\r\n public descFieldProcess(items:any[], event: any){\r\n let description = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n description = getRowDetails[0].description;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.description == description).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.description == description).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n\r\n public authorFieldProcess(items:any[], event: any){\r\n let author = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n author = getRowDetails[0].author;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.author == author).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.author == author).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n } \r\n }\r\n\r\n public complexityFieldProcess(items:any[], event: any){\r\n let customComplexity = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n customComplexity = getRowDetails[0].customComplexity;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.customComplexity == customComplexity).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.customComplexity == customComplexity).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n } \r\n }\r\n\r\n public compatibleFieldProcess(items:any[], event: any){\r\n let compatible = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n compatible = getRowDetails[0].compatible;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.compatible == compatible).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.compatible == compatible).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n } \r\n\r\n }\r\n\r\n public sharedFieldProcess(items:any[], event: any){\r\n let shared = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n shared = getRowDetails[0].shared;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.shared == shared).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.shared == shared).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n } \r\n } \r\n\r\n public externalFieldProcess(items:any[], event: any){\r\n let external = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n external = getRowDetails[0].external;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.external == external).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.external == external).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n } \r\n } \r\n\r\n public tablesFieldProcess(items:any[], event: any){\r\n let tables = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n tables = getRowDetails[0].tables;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.tables == tables).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.tables == tables).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n } \r\n }\r\n \r\n public setToggleValue(items:any[]):string{\r\n let toggleFlag = this.checkedAll;\r\n\r\n items.forEach((item:any) => {\r\n item.isChecked=toggleFlag;\r\n }); \r\n \r\n this.BAQsList = [];\r\n\r\n if(toggleFlag){\r\n items.forEach ((item) =>{\r\n this.BAQsList.push(Number(item.rowIndex)); \r\n });\r\n }\r\n return this.BAQsList.toString();\r\n }\r\n\r\n public showErrorMessage(){\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.errorDialogRef = this.dialog.open(ErrorMessageDialog, config);\r\n\r\n this.errorDialogRef.afterClosed().subscribe(result => {\r\n this.errorDialogRef = null;\r\n });\r\n }\r\n onClick(event:any) {\r\n var clickedOutsideDialog = event.target;\r\n var inside = false;\r\n do {\r\n if (clickedOutsideDialog === this.elementRef.nativeElement) {\r\n inside = true;\r\n }\r\n clickedOutsideDialog = clickedOutsideDialog.parentNode;\r\n } while (clickedOutsideDialog);\r\n \r\n if(inside){\r\n this.clickedOutside=false;\r\n }else{\r\n this.clickedOutside=true;\r\n }\r\n } \r\n}\r\n\r\nexport enum BAQsFilterColumnName{\r\n Company = 0,\r\n QueryId=1,\r\n Description=2,\r\n Author=3,\r\n Complexity=4,\r\n Compatible=5,\r\n Shared=6,\r\n Tables=7,\r\n External=8\r\n}\r\n\r\nexport enum BAQsReportType{\r\n UpdatableBAQs =1,\r\n BAQs =2\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/baqs.modaldialog.ts\n **/","import { Component, EventEmitter, Input, Output, OnInit, ViewContainerRef, ViewChild, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\n\r\n\r\nimport {ReportOrderByPipe} from '../../../reports/reportorderby.pipe';\r\nimport {ReportGroupByPipe} from '../../../reports/reportgroupby.pipe'\r\nimport {ReportFilterPipe} from '../../../reports/reportfilter.pipe'\r\nimport {MenusSearchPipe} from './menus.search.pipe'\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\nimport {ErrorMessageDialog} from '../../../reports/reports.component.service'\r\n\r\n\r\n@Component({\r\n selector: 'menus.dialog',\r\n host: {\r\n '(document:click)': 'onClick($event)',\r\n },\r\n template: `\r\n\r\n
Menus - {{selectedColumn}}
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n (Select All) \r\n
\r\n
\r\n {{md.value[0].menuID}} \r\n
\r\n
\r\n
\r\n
\r\n {{md.value[0].menuDesc}} \r\n
\r\n
\r\n \r\n
\r\n
\r\n {{md.value[0].program}} \r\n
\r\n
\r\n \r\n
\r\n
\r\n {{md.value[0].arguments}} \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n`,\r\n providers: [PagerService]\r\n})\r\n\r\nexport class MenusReportDialog {\r\n constructor(public dialogRef: MdDialogRef,\r\n private errorChangeDetectorRef: ChangeDetectorRef,\r\n private viewContainerRef: ViewContainerRef,\r\n public dialog: MdDialog,\r\n public elementRef: ElementRef) {}\r\n\r\n\r\n pagedItems:any;\r\n finalMenusList:any;\r\n checkedAll:boolean=false;\r\n selectedColumn:string =\"\";\r\n selectedColumnGroupBy : string =\"\";\r\n hidePagination :boolean = false;\r\n errorDialogRef: MdDialogRef;\r\n menusList : any[]=[];\r\n disableApplyButton:boolean =false;\r\n clickedOutside:boolean=false;\r\n tempMenusList:any;\r\n @ViewChild('container') container: ElementRef;\r\n\r\n render(menusDetails:any){\r\n this.pagedItems = menusDetails.pagedItems;\r\n this.finalMenusList = menusDetails.finalMenusList;\r\n this.tempMenusList = this.finalMenusList;\r\n this.checkedAll = menusDetails.checkedAll;\r\n this.selectedColumn = menusDetails.selectedColumn;\r\n this.selectedColumnGroupBy = this.getGroupByColumnName();\r\n\r\n if(this.finalMenusList!=undefined && this.finalMenusList.length > 0){\r\n this.finalMenusList.split(',').forEach( (id:any) =>{\r\n this.menusList.push(Number(id));\r\n this.pagedItems.filter((item:any) => item.rowIndex == id).forEach( (item:any) => {\r\n item.isChecked=true;\r\n }); \r\n });\r\n }\r\n\r\n //modal-content\r\n this.container.nativeElement.children[1].style.maxHeight=\"30vh\";\r\n this.container.nativeElement.children[1].style.overflow=\"auto\";\r\n\r\n //footer\r\n this.container.nativeElement.children[2].style.float=\"right\";\r\n this.container.nativeElement.children[2].style.position=\"relative\";\r\n this.container.nativeElement.children[2].style.top=\"1vh\";\r\n }\r\n\r\n applyModal():any{\r\n\r\n if(this.menusList.length >0 && this.pagedItems.filter((item:any) => item.isChecked==true).length ==0){\r\n this.showErrorMessage();\r\n this.disableApplyButton=true;\r\n return;\r\n }\r\n this.disableApplyButton=false;\r\n this.menusList=[];\r\n this.pagedItems.filter((item:any) => item.isChecked==true).forEach( (item:any) => {\r\n this.menusList.push(item.rowIndex)\r\n });\r\n\r\n this.finalMenusList = this.menusList.toString();\r\n this.dialogRef.close();\r\n }\r\n\r\n checkboxFieldChange(event: any, colElem: any){\r\n if(!event.checked){\r\n this.checkedAll = false; \r\n }\r\n this.checkboxFieldChangedProcess(this.pagedItems, event, colElem)\r\n }\r\n\r\n close() {\r\n this.checkedAll=false;\r\n this.finalMenusList = this.tempMenusList.toString();\r\n this.dialogRef.close();\r\n }\r\n\r\n toggleAll(event:any){\r\n this.disableApplyButton=false;\r\n this.finalMenusList = this.setToggleValue(this.pagedItems);\r\n }\r\n\r\n getGroupByColumnName():string{\r\n if(this.selectedColumn==MenusFilterColumnName[MenusFilterColumnName.ID])\r\n return 'menuID'\r\n else if(this.selectedColumn==MenusFilterColumnName[MenusFilterColumnName.Name])\r\n return \"menuDesc\"\r\n else if(this.selectedColumn==MenusFilterColumnName[MenusFilterColumnName.Program])\r\n return \"program\"\r\n else\r\n return \"arguments\"\r\n } \r\n\r\n public checkboxFieldChangedProcess(items:any[], event: any, colElem: any){ \r\n\r\n if(colElem==MenusFilterColumnName[MenusFilterColumnName.ID]){\r\n this.idFieldProcess(items, event);\r\n }\r\n else if(colElem==MenusFilterColumnName[MenusFilterColumnName.Name]){\r\n this.nameFieldProcess(items,event);\r\n }\r\n else if(colElem==MenusFilterColumnName[MenusFilterColumnName.Program]){\r\n this.programsFieldProcess(items,event);\r\n }\r\n else if(colElem==MenusFilterColumnName[MenusFilterColumnName.Arguments]){\r\n this.argumentsFieldProcess(items,event);\r\n } \r\n }\r\n\r\n public idFieldProcess(items:any[], event: any){\r\n let menuID = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n menuID = getRowDetails[0].menuID;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.menuID == menuID).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.menuID == menuID).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n\r\n public nameFieldProcess(items:any[], event: any){\r\n let menuDesc = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n menuDesc = getRowDetails[0].menuDesc;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.menuDesc == menuDesc).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.menuDesc == menuDesc).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n } \r\n }\r\n\r\n public programsFieldProcess(items:any[], event: any){\r\n let program = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n program = getRowDetails[0].program;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.program == program).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.program == program).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n\r\n }\r\n\r\n public argumentsFieldProcess(items:any[], event: any){\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n let argument = getRowDetails[0].arguments;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.arguments == argument).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.arguments == argument).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n\r\n public setToggleValue(items:any[]){\r\n let toggleFlag = this.checkedAll;\r\n\r\n items.forEach((item:any) => {\r\n item.isChecked=toggleFlag;\r\n });\r\n \r\n this.menusList = [];\r\n\r\n if(toggleFlag){\r\n items.forEach ((item) =>{\r\n item.isChecked=true;\r\n this.menusList.push(Number(item.rowIndex)); \r\n });\r\n }\r\n return this.menusList.toString();\r\n }\r\n\r\n public showErrorMessage(){\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.errorDialogRef = this.dialog.open(ErrorMessageDialog, config);\r\n this.errorDialogRef.afterClosed().subscribe(result => {\r\n this.errorDialogRef = null;\r\n });\r\n }\r\n\r\n onClick(event:any) {\r\n var clickedComponent = event.target;\r\n var inside = false;\r\n do {\r\n if (clickedComponent === this.elementRef.nativeElement) {\r\n inside = true;\r\n }\r\n clickedComponent = clickedComponent.parentNode;\r\n } while (clickedComponent);\r\n \r\n if(inside){\r\n this.clickedOutside=false;\r\n }else{\r\n this.clickedOutside=true;\r\n }\r\n}\r\n\r\n}\r\n\r\n export enum MenusFilterColumnName{\r\n ID = 0,\r\n Name=1,\r\n Program=2,\r\n Arguments=3\r\n }\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/menus/menus.dialog.ts\n **/","import { Component, EventEmitter, Input, Output, OnInit, ViewContainerRef, ViewChild, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\n\r\n\r\nimport {ReportOrderByPipe} from '../../../reports/reportorderby.pipe';\r\nimport {ReportGroupByPipe} from '../../../reports/reportgroupby.pipe'\r\nimport {ReportFilterPipe} from '../../../reports/reportfilter.pipe'\r\nimport {UDFormSearchPipe} from './udforms.search.pipe'\r\n\r\n// import {MenusFilteringService} from './menus.filter';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\nimport {ErrorMessageDialog} from '../../../reports/reports.component.service'\r\n\r\n@Component({\r\n selector: 'udforms.modaldialog',\r\n host: {\r\n '(document:click)': 'onClick($event)',\r\n }, \r\n template: `\r\n\r\n\r\n\r\n\r\n
UD Tables - {{selectedColumn}}
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n (Select All) \r\n
\r\n
\r\n {{md.value[0].udFormName}}\r\n
\r\n
\r\n
\r\n
\r\n {{md.value[0].description}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{md.value[0].parentCount}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n`,\r\n providers: [PagerService]\r\n})\r\n\r\nexport class UDTablesReportDialog {\r\n constructor(public dialogRef: MdDialogRef,\r\n private errorChangeDetectorRef: ChangeDetectorRef,\r\n private viewContainerRef: ViewContainerRef,\r\n public dialog: MdDialog,\r\n public elementRef: ElementRef) {}\r\n\r\n pagedItems:any;\r\n finalUDTablesList:any;\r\n checkedAll:boolean=false;\r\n selectedColumn:string =\"\";\r\n selectedColumnGroupBy : string =\"\";\r\n hidePagination :boolean = false;\r\n errorDialogRef: MdDialogRef;\r\n udTableList : any[]=[];\r\n disableApplyButton:boolean =false;\r\n clickedOutside:boolean=false;\r\n tempList:any[]=[];\r\n\r\n @ViewChild('container') container: ElementRef;\r\n\r\n render(udFormsDetails:any){\r\n this.pagedItems = udFormsDetails.pagedItems;\r\n this.finalUDTablesList = udFormsDetails.finalUDTablesList;\r\n this.tempList = this.finalUDTablesList;\r\n this.checkedAll = udFormsDetails.checkedAll;\r\n this.selectedColumn = udFormsDetails.selectedColumn;\r\n this.selectedColumnGroupBy = this.getGroupByColumnName();\r\n\r\n if(this.finalUDTablesList!=undefined && this.finalUDTablesList.length > 0){\r\n this.finalUDTablesList.split(',').forEach( (id:any) =>{\r\n this.udTableList.push(Number(id));\r\n this.pagedItems.filter((item:any) => item.rowIndex == id).forEach( (item:any) => {\r\n item.isChecked=true;\r\n });\r\n });\r\n }\r\n\r\n //content\r\n this.container.nativeElement.children[1].style.maxHeight=\"30vh\";\r\n this.container.nativeElement.children[1].style.overflow=\"auto\";\r\n\r\n //footer\r\n this.container.nativeElement.children[2].style.float=\"right\";\r\n this.container.nativeElement.children[2].style.position=\"relative\";\r\n this.container.nativeElement.children[2].style.top=\"1vh\";\r\n }\r\n\r\n applyModal():any{\r\n let anythingChoosen= false;\r\n\r\n if(this.udTableList.length >0 && this.pagedItems.filter((item:any) => item.isChecked==true).length ==0){\r\n this.showErrorMessage();\r\n this.disableApplyButton=true;\r\n return;\r\n }\r\n this.disableApplyButton=false;\r\n this.udTableList=[];\r\n this.pagedItems.filter((item:any) => item.isChecked==true).forEach( (item:any) => {\r\n this.udTableList.push(item.rowIndex)\r\n });\r\n\r\n this.finalUDTablesList = this.udTableList.toString();\r\n this.dialogRef.close();\r\n }\r\n\r\n checkboxFieldChange(event: any, colElem: any){\r\n if(!event.checked){\r\n this.checkedAll = false; \r\n }\r\n this.checkboxFieldChangedProcess(this.pagedItems, event, colElem)\r\n }\r\n\r\n close() {\r\n this.checkedAll=false;\r\n this.finalUDTablesList = this.tempList.toString();\r\n this.dialogRef.close();\r\n }\r\n\r\n toggleAll(event:any){\r\n this.disableApplyButton=false; \r\n this.finalUDTablesList = this.setToggleValue(this.pagedItems);\r\n }\r\n\r\n getGroupByColumnName():string{\r\n if(this.selectedColumn==UDFormsFilterColumnName[UDFormsFilterColumnName.Name])\r\n return \"udFormName\"\r\n else if(this.selectedColumn==UDFormsFilterColumnName[UDFormsFilterColumnName.Description])\r\n return \"description\"\r\n else \r\n return \"parentCount\"\r\n } \r\n\r\n public checkboxFieldChangedProcess(items:any[], event: any, colElem: any){ \r\n\r\n if(colElem==UDFormsFilterColumnName[UDFormsFilterColumnName.Name]){\r\n this.nameFieldProcess(items, event);\r\n }\r\n else if(colElem==UDFormsFilterColumnName[UDFormsFilterColumnName.Description]){\r\n this.descFieldProcess(items,event);\r\n }\r\n else if(colElem==UDFormsFilterColumnName[UDFormsFilterColumnName.Rows]){\r\n this.rowsFieldProcess(items,event);\r\n }\r\n }\r\n public nameFieldProcess(items:any[], event: any){\r\n let name = '';\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n name = getRowDetails[0].udFormName;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.udFormName == name).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.udFormName == name).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n public descFieldProcess(items:any[], event: any){\r\n let description = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n description = getRowDetails[0].description;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.description == description).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.description == description).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n\r\n public rowsFieldProcess(items:any[], event: any){\r\n let rows = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n rows = getRowDetails[0].parentCount;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.parentCount == rows).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.parentCount == rows).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n\r\n public setToggleValue(items:any[]){\r\n let toggleFlag = this.checkedAll;\r\n\r\n items.forEach((item:any) => {\r\n item.isChecked=toggleFlag;\r\n });\r\n \r\n this.udTableList = [];\r\n\r\n if(toggleFlag){\r\n items.forEach ((item) =>{\r\n this.udTableList.push(Number(item.rowIndex)); \r\n });\r\n }\r\n return this.udTableList.toString();\r\n }\r\n public showErrorMessage(){\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.errorDialogRef = this.dialog.open(ErrorMessageDialog, config);\r\n this.errorDialogRef.afterClosed().subscribe(result => {\r\n this.errorDialogRef = null;\r\n });\r\n }\r\n\r\n onClick(event:any) {\r\n var clickedOutsideDialog = event.target;\r\n var inside = false;\r\n do {\r\n if (clickedOutsideDialog === this.elementRef.nativeElement) {\r\n inside = true;\r\n }\r\n clickedOutsideDialog = clickedOutsideDialog.parentNode;\r\n } while (clickedOutsideDialog);\r\n \r\n if(inside){\r\n this.clickedOutside=false;\r\n }else{\r\n this.clickedOutside=true;\r\n }\r\n } \r\n}\r\n\r\n export enum UDFormsFilterColumnName{\r\n Name = 0,\r\n Description=1,\r\n Rows=2,\r\n }\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/udforms/udforms.modaldialog.ts\n **/","import { Component, EventEmitter, Input, Output, OnInit, ViewContainerRef, ViewChild, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\n\r\n\r\nimport {ReportOrderByPipe} from '../../../reports/reportorderby.pipe';\r\nimport {ReportGroupByPipe} from '../../../reports/reportgroupby.pipe'\r\nimport {ReportFilterPipe} from '../../../reports/reportfilter.pipe'\r\n\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\nimport {ErrorMessageDialog} from '../../../reports/reports.component.service'\r\n\r\nimport {BankInterfaceSearchPipe} from './bankInterfaces.search.pipe'\r\n\r\n@Component({\r\n selector: 'bankinterface.dialog',\r\n host: {\r\n '(document:click)': 'onClick($event)',\r\n }, \r\n template: `\r\n\r\n
Bank Interface - {{selectedColumn}}
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n (Select All) \r\n
\r\n
\r\n {{md.value[0].company}} \r\n
\r\n
\r\n
\r\n
\r\n {{md.value[0].interfaceType}} \r\n
\r\n
\r\n \r\n
\r\n
\r\n {{md.value[0].interfaceName}} \r\n
\r\n
\r\n \r\n
\r\n
\r\n {{md.value[0].linesOfCode}} \r\n
\r\n
\r\n\r\n
\r\n
\r\n {{md.value[0].complexity}} \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n`,\r\n providers: [PagerService]\r\n})\r\n\r\nexport class BankInterfaceReportDialog {\r\n constructor(public dialogRef: MdDialogRef,\r\n private errorChangeDetectorRef: ChangeDetectorRef,\r\n private viewContainerRef: ViewContainerRef,\r\n public dialog: MdDialog,\r\n public elementRef: ElementRef) {}\r\n\r\n\r\n pagedItems:any;\r\n finalBankInterfaceList:any;\r\n checkedAll:boolean=false;\r\n selectedColumn:string =\"\";\r\n selectedColumnGroupBy : string =\"\";\r\n hidePagination :boolean = false;\r\n errorDialogRef: MdDialogRef;\r\n selectedMenuList : any[];\r\n bankInterfaceList : any[]=[];\r\n disableApplyButton:boolean =false;\r\n clickedOutside:boolean=false;\r\n tempList:any[]=[];\r\n\r\n @ViewChild('container') container: ElementRef;\r\n\r\n render(bankInterfaceDetails:any){\r\n this.pagedItems = bankInterfaceDetails.pagedItems;\r\n this.finalBankInterfaceList = bankInterfaceDetails.finalBankInterfaceList;\r\n this.tempList = this.finalBankInterfaceList;\r\n this.checkedAll = bankInterfaceDetails.checkedAll;\r\n this.selectedColumn = bankInterfaceDetails.selectedColumn;\r\n this.selectedColumnGroupBy = this.getGroupByColumnName();\r\n\r\n if(this.finalBankInterfaceList!=undefined && this.finalBankInterfaceList.length > 0){\r\n this.finalBankInterfaceList.split(',').forEach( (id:any) =>{\r\n this.bankInterfaceList.push(Number(id));\r\n this.pagedItems.filter((item:any) => item.rowIndex == id).forEach( (item:any) => {\r\n item.isChecked=true;\r\n }); \r\n });\r\n }\r\n\r\n this.container.nativeElement.children[1].style.maxHeight=\"30vh\";\r\n this.container.nativeElement.children[1].style.overflow=\"auto\";\r\n\r\n //footer\r\n this.container.nativeElement.children[2].style.float=\"right\";\r\n this.container.nativeElement.children[2].style.position=\"relative\";\r\n this.container.nativeElement.children[2].style.top=\"1vh\";\r\n }\r\n\r\n applyModal():any{\r\n\r\n if(this.bankInterfaceList.length >0 && this.pagedItems.filter((item:any) => item.isChecked==true).length ==0){\r\n this.showErrorMessage();\r\n this.disableApplyButton=true;\r\n return;\r\n }\r\n this.disableApplyButton=false;\r\n this.bankInterfaceList=[];\r\n this.pagedItems.filter((item:any) => item.isChecked==true).forEach( (item:any) => {\r\n this.bankInterfaceList.push(item.rowIndex)\r\n });\r\n\r\n this.finalBankInterfaceList = this.bankInterfaceList.toString();\r\n this.dialogRef.close();\r\n\r\n }\r\n\r\n checkboxFieldChange(event: any, colElem: any){\r\n if(!event.checked){\r\n this.checkedAll = false; \r\n }\r\n this.checkboxFieldChangedProcess(this.pagedItems, event, colElem)\r\n }\r\n\r\n close() {\r\n this.checkedAll=false;\r\n this.finalBankInterfaceList = this.tempList.toString();\r\n this.dialogRef.close();\r\n }\r\n\r\n toggleAll(event:any){\r\n this.disableApplyButton=false;\r\n this.finalBankInterfaceList = this.setToggleValue(this.pagedItems);\r\n }\r\n\r\n getGroupByColumnName():string{\r\n if(this.selectedColumn==BankInterfaceFilterColumnName[BankInterfaceFilterColumnName.Companies])\r\n return 'company'\r\n else if(this.selectedColumn==BankInterfaceFilterColumnName[BankInterfaceFilterColumnName.Type])\r\n return \"interfaceType\"\r\n else if(this.selectedColumn==BankInterfaceFilterColumnName[BankInterfaceFilterColumnName.Name])\r\n return \"interfaceName\"\r\n else if(this.selectedColumn==BankInterfaceFilterColumnName[BankInterfaceFilterColumnName.Complexity])\r\n return \"complexity\" \r\n else\r\n return \"linesOfCode\"\r\n } \r\n\r\n public checkboxFieldChangedProcess(items:any[], event: any, colElem: any){ \r\n\r\n if(colElem==BankInterfaceFilterColumnName[BankInterfaceFilterColumnName.Companies]){\r\n this.companyFieldProcess(items, event);\r\n }\r\n else if(colElem==BankInterfaceFilterColumnName[BankInterfaceFilterColumnName.Type]){\r\n this.interfaceTypeProcess(items,event);\r\n }\r\n else if(colElem==BankInterfaceFilterColumnName[BankInterfaceFilterColumnName.Name]){\r\n this.interfaceNameFieldProcess(items,event);\r\n }\r\n else if(colElem==BankInterfaceFilterColumnName[BankInterfaceFilterColumnName.Complexity]){\r\n this.complexityFieldProcess(items,event);\r\n } \r\n else if(colElem==BankInterfaceFilterColumnName[BankInterfaceFilterColumnName.LOC]){\r\n this.locProcess(items,event);\r\n } \r\n \r\n }\r\n\r\n public companyFieldProcess(items:any[], event: any){\r\n let company = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n company = getRowDetails[0].company;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.company == company).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.company == company).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n\r\n public interfaceTypeProcess(items:any[], event: any){\r\n let interfaceType = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n interfaceType = getRowDetails[0].interfaceType;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.interfaceType == interfaceType).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.interfaceType == interfaceType).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n } \r\n }\r\n\r\n public interfaceNameFieldProcess(items:any[], event: any){\r\n let interfaceName = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n interfaceName = getRowDetails[0].interfaceName;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.interfaceName == interfaceName).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.interfaceName == interfaceName).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n\r\n public complexityFieldProcess(items:any[], event: any){\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n let complexity = getRowDetails[0].complexity;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.complexity == complexity).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.complexity == complexity).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n\r\n public locProcess(items:any[], event: any){\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n let linesOfCode = getRowDetails[0].linesOfCode;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.linesOfCode == linesOfCode).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.linesOfCode == linesOfCode).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n \r\n public setToggleValue(items:any[]):string{\r\n let toggleFlag = this.checkedAll;\r\n\r\n items.forEach((item:any) => {\r\n item.isChecked=toggleFlag;\r\n });\r\n \r\n this.bankInterfaceList = [];\r\n\r\n if(toggleFlag){\r\n items.forEach ((item) =>{\r\n this.bankInterfaceList.push(Number(item.rowIndex)); \r\n });\r\n }\r\n return this.bankInterfaceList.toString();\r\n }\r\n\r\n public showErrorMessage(){\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.errorDialogRef = this.dialog.open(ErrorMessageDialog, config);\r\n this.errorDialogRef.afterClosed().subscribe(result => {\r\n this.errorDialogRef = null;\r\n });\r\n } \r\n onClick(event:any) {\r\n var clickedOutsideDialog = event.target;\r\n var inside = false;\r\n do {\r\n if (clickedOutsideDialog === this.elementRef.nativeElement) {\r\n inside = true;\r\n }\r\n clickedOutsideDialog = clickedOutsideDialog.parentNode;\r\n } while (clickedOutsideDialog);\r\n \r\n if(inside){\r\n this.clickedOutside=false;\r\n }else{\r\n this.clickedOutside=true;\r\n }\r\n } \r\n}\r\n\r\n export enum BankInterfaceFilterColumnName{\r\n Companies = 0,\r\n Type=1,\r\n Name=2,\r\n LOC=3,\r\n Complexity=4\r\n }\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/bankInterfaces/bankInterfaces.modaldialog.ts\n **/","import { Component, EventEmitter, Input, Output, OnInit, ViewContainerRef, ViewChild, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\n\r\n\r\nimport {ReportOrderByPipe} from '../../../reports/reportorderby.pipe';\r\nimport {ReportGroupByPipe} from '../../../reports/reportgroupby.pipe'\r\nimport {ReportFilterPipe} from '../../../reports/reportfilter.pipe'\r\n\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\nimport {ErrorMessageDialog} from '../../../reports/reports.component.service'\r\n\r\nimport {ChangeLogsSearchPipe} from './changelogs.search.pipe'\r\n\r\n@Component({\r\n selector: 'changelogs.dialog',\r\n host: {\r\n '(document:click)': 'onClick($event)',\r\n }, \r\n template: `\r\n\r\n
Change Logs - {{selectedColumn}}
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n (Select All) \r\n
\r\n
\r\n {{md.value[0].description}} \r\n
\r\n
\r\n\r\n
\r\n
\r\n {{md.value[0].tableName}} \r\n
\r\n
\r\n \r\n
\r\n
\r\n {{md.value[0].linesOfCode}} \r\n
\r\n
\r\n \r\n
\r\n
\r\n {{md.value[0].complexity}} \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n`,\r\n providers: [PagerService]\r\n})\r\n\r\nexport class ChangeLogsReportDialog {\r\n constructor(public dialogRef: MdDialogRef,\r\n private errorChangeDetectorRef: ChangeDetectorRef,\r\n private viewContainerRef: ViewContainerRef,\r\n public dialog: MdDialog,\r\n public elementRef: ElementRef) {}\r\n\r\n\r\n pagedItems:any;\r\n finalChangeLogsList:any;\r\n checkedAll:boolean=false;\r\n selectedColumn:string =\"\";\r\n selectedColumnGroupBy : string =\"\";\r\n hidePagination :boolean = false;\r\n errorDialogRef: MdDialogRef;\r\n changeLogsList : any[]=[];\r\n disableApplyButton:boolean =false;\r\n clickedOutside:boolean=false;\r\n tempList:any[]=[];\r\n\r\n @ViewChild('container') container: ElementRef;\r\n\r\n render(changeLogsDetails:any){\r\n this.pagedItems = changeLogsDetails.pagedItems;\r\n this.finalChangeLogsList = changeLogsDetails.finalChangeLogsList;\r\n this.tempList = this.finalChangeLogsList; \r\n this.checkedAll = changeLogsDetails.checkedAll;\r\n this.selectedColumn = changeLogsDetails.selectedColumn;\r\n this.selectedColumnGroupBy = this.getGroupByColumnName();\r\n\r\n if(this.finalChangeLogsList!=undefined && this.finalChangeLogsList.length > 0){\r\n this.finalChangeLogsList.split(',').forEach( (id:any) =>{\r\n this.changeLogsList.push(Number(id));\r\n this.pagedItems.filter((item:any) => item.rowIndex == id).forEach( (item:any) => {\r\n item.isChecked=true;\r\n }); \r\n });\r\n }\r\n //modal-content\r\n this.container.nativeElement.children[1].style.maxHeight=\"30vh\";\r\n this.container.nativeElement.children[1].style.overflow=\"auto\";\r\n\r\n //footer\r\n this.container.nativeElement.children[2].style.float=\"right\";\r\n this.container.nativeElement.children[2].style.position=\"relative\";\r\n this.container.nativeElement.children[2].style.top=\"1vh\";\r\n }\r\n\r\n applyModal():any{\r\n\r\n if(this.changeLogsList.length >0 && this.pagedItems.filter((item:any) => item.isChecked==true).length ==0){\r\n this.showErrorMessage();\r\n this.disableApplyButton=true;\r\n return;\r\n }\r\n this.disableApplyButton=false;\r\n this.changeLogsList=[];\r\n this.pagedItems.filter((item:any) => item.isChecked==true).forEach( (item:any) => {\r\n this.changeLogsList.push(item.rowIndex)\r\n });\r\n\r\n this.finalChangeLogsList = this.changeLogsList.toString();\r\n this.dialogRef.close();\r\n\r\n }\r\n\r\n checkboxFieldChange(event: any, colElem: any){\r\n if(!event.checked){\r\n this.checkedAll = false; \r\n }\r\n this.checkboxFieldChangedProcess(this.pagedItems, event, colElem)\r\n }\r\n\r\n close() {\r\n this.checkedAll=false;\r\n this.finalChangeLogsList = this.tempList.toString();\r\n this.dialogRef.close();\r\n }\r\n\r\n toggleAll(event:any){\r\n this.disableApplyButton=false;\r\n this.finalChangeLogsList = this.setToggleValue(this.pagedItems);\r\n }\r\n\r\n getGroupByColumnName():string{\r\n if(this.selectedColumn==ChangeLogsFilterColumnName[ChangeLogsFilterColumnName.Description])\r\n return 'description'\r\n else if(this.selectedColumn==ChangeLogsFilterColumnName[ChangeLogsFilterColumnName.Table])\r\n return \"tableName\"\r\n else if(this.selectedColumn==ChangeLogsFilterColumnName[ChangeLogsFilterColumnName.LOC])\r\n return \"linesOfCode\"\r\n else \r\n return \"complexity\"\r\n } \r\n\r\n public checkboxFieldChangedProcess(items:any[], event: any, colElem: any){ \r\n\r\n if(colElem==ChangeLogsFilterColumnName[ChangeLogsFilterColumnName.Description]){\r\n this.descFieldProcess(items, event);\r\n }\r\n else if(colElem==ChangeLogsFilterColumnName[ChangeLogsFilterColumnName.Table]){\r\n this.tableProcess(items,event);\r\n }\r\n else if(colElem==ChangeLogsFilterColumnName[ChangeLogsFilterColumnName.LOC]){\r\n this.locFieldProcess(items,event);\r\n }\r\n else if(colElem==ChangeLogsFilterColumnName[ChangeLogsFilterColumnName.Complexity]){\r\n this.complexityFieldProcess(items,event);\r\n } \r\n }\r\n\r\n public descFieldProcess(items:any[], event: any){\r\n let description = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n description = getRowDetails[0].description;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.description == description).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.description == description).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n\r\n public tableProcess(items:any[], event: any){\r\n let tableName = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n tableName = getRowDetails[0].tableName;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.tableName == tableName).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.tableName == tableName).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n } \r\n }\r\n\r\n public locFieldProcess(items:any[], event: any){\r\n let linesOfCode = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n linesOfCode = getRowDetails[0].linesOfCode;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.linesOfCode == linesOfCode).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.linesOfCode == linesOfCode).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n\r\n public complexityFieldProcess(items:any[], event: any){\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n let complexity = getRowDetails[0].complexity;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.complexity == complexity).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.complexity == complexity).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n \r\n public setToggleValue(items:any[]):string{\r\n let toggleFlag = this.checkedAll;\r\n\r\n items.forEach((item:any) => {\r\n item.isChecked=toggleFlag;\r\n });\r\n \r\n this.changeLogsList = [];\r\n\r\n if(toggleFlag){\r\n items.forEach ((item) =>{\r\n this.changeLogsList.push(Number(item.rowIndex)); \r\n });\r\n }\r\n return this.changeLogsList.toString();\r\n }\r\n\r\n public showErrorMessage(){\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.errorDialogRef = this.dialog.open(ErrorMessageDialog, config);\r\n this.errorDialogRef.afterClosed().subscribe(result => {\r\n this.errorDialogRef = null;\r\n });\r\n } \r\n onClick(event:any) {\r\n var clickedOutsideDialog = event.target;\r\n var inside = false;\r\n do {\r\n if (clickedOutsideDialog === this.elementRef.nativeElement) {\r\n inside = true;\r\n }\r\n clickedOutsideDialog = clickedOutsideDialog.parentNode;\r\n } while (clickedOutsideDialog);\r\n \r\n if(inside){\r\n this.clickedOutside=false;\r\n }else{\r\n this.clickedOutside=true;\r\n }\r\n } \r\n \r\n}\r\n\r\n export enum ChangeLogsFilterColumnName{\r\n Description = 0,\r\n Table=1,\r\n LOC=2,\r\n Complexity=3\r\n }\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/changelogs/changelogs.modaldialog.ts\n **/","import { Component, EventEmitter, Input, Output, OnInit, ViewContainerRef, ViewChild, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\n\r\n\r\nimport {ReportOrderByPipe} from '../../../reports/reportorderby.pipe';\r\nimport {ReportGroupByPipe} from '../../../reports/reportgroupby.pipe'\r\nimport {ReportFilterPipe} from '../../../reports/reportfilter.pipe'\r\n\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\nimport {ErrorMessageDialog} from '../../../reports/reports.component.service'\r\n\r\nimport {APMObjectSearchPipe} from './apmObjects.search.pipe'\r\n\r\n@Component({\r\n selector: 'apmobjects.dialog',\r\n host: {\r\n '(document:click)': 'onClick($event)',\r\n }, \r\n template: `\r\n\r\n
APM Objects - {{selectedColumn}}
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n (Select All) \r\n
\r\n
\r\n {{md.value[0].documentID}} \r\n
\r\n
\r\n
\r\n
\r\n {{md.value[0].documentType}} \r\n
\r\n
\r\n \r\n
\r\n
\r\n {{md.value[0].documents}} \r\n
\r\n
\r\n \r\n
\r\n
\r\n {{md.value[0].properties}} \r\n
\r\n
\r\n\r\n
\r\n
\r\n {{md.value[0].routings}} \r\n
\r\n
\r\n \r\n
\r\n
\r\n {{md.value[0].recipients}} \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n`,\r\n providers: [PagerService]\r\n})\r\n\r\nexport class APMObjectReportDialog {\r\n constructor(public dialogRef: MdDialogRef,\r\n private errorChangeDetectorRef: ChangeDetectorRef,\r\n private viewContainerRef: ViewContainerRef,\r\n public dialog: MdDialog,\r\n public elementRef: ElementRef) {}\r\n\r\n\r\n pagedItems:any;\r\n finalAPMObjectList:any;\r\n checkedAll:boolean=false;\r\n selectedColumn:string =\"\";\r\n selectedColumnGroupBy : string =\"\";\r\n hidePagination :boolean = false;\r\n errorDialogRef: MdDialogRef;\r\n selectedMenuList : any[];\r\n apmObjectList : any[]=[];\r\n disableApplyButton:boolean =false;\r\n clickedOutside:boolean=false;\r\n tempList:any[]=[];\r\n\r\n @ViewChild('container') container: ElementRef;\r\n\r\n render(bankInterfaceDetails:any){\r\n this.pagedItems = bankInterfaceDetails.pagedItems;\r\n this.finalAPMObjectList = bankInterfaceDetails.finalAPMObjectList;\r\n this.tempList = this.finalAPMObjectList;\r\n this.checkedAll = bankInterfaceDetails.checkedAll;\r\n this.selectedColumn = bankInterfaceDetails.selectedColumn;\r\n this.selectedColumnGroupBy = this.getGroupByColumnName();\r\n\r\n if(this.finalAPMObjectList!=undefined && this.finalAPMObjectList.length > 0){\r\n this.finalAPMObjectList.split(',').forEach( (id:any) =>{\r\n this.apmObjectList.push(Number(id));\r\n this.pagedItems.filter((item:any) => item.rowIndex == id).forEach( (item:any) => {\r\n item.isChecked=true;\r\n }); \r\n });\r\n }\r\n\r\n this.container.nativeElement.children[1].style.maxHeight=\"30vh\";\r\n this.container.nativeElement.children[1].style.overflow=\"auto\";\r\n\r\n //footer\r\n this.container.nativeElement.children[2].style.float=\"right\";\r\n this.container.nativeElement.children[2].style.position=\"relative\";\r\n this.container.nativeElement.children[2].style.top=\"1vh\";\r\n }\r\n\r\n applyModal():any{\r\n\r\n if(this.apmObjectList.length >0 && this.pagedItems.filter((item:any) => item.isChecked==true).length ==0){\r\n this.showErrorMessage();\r\n this.disableApplyButton=true;\r\n return;\r\n }\r\n this.disableApplyButton=false;\r\n this.apmObjectList=[];\r\n this.pagedItems.filter((item:any) => item.isChecked==true).forEach( (item:any) => {\r\n this.apmObjectList.push(item.rowIndex)\r\n });\r\n\r\n this.finalAPMObjectList = this.apmObjectList.toString();\r\n this.dialogRef.close();\r\n\r\n }\r\n\r\n checkboxFieldChange(event: any, colElem: any){\r\n if(!event.checked){\r\n this.checkedAll = false; \r\n }\r\n this.checkboxFieldChangedProcess(this.pagedItems, event, colElem)\r\n }\r\n\r\n close() {\r\n this.checkedAll=false;\r\n this.finalAPMObjectList = this.tempList.toString();\r\n this.dialogRef.close();\r\n }\r\n\r\n toggleAll(event:any){\r\n this.disableApplyButton=false;\r\n this.finalAPMObjectList = this.setToggleValue(this.pagedItems);\r\n }\r\n\r\n getGroupByColumnName():string{\r\n if(this.selectedColumn==APMObjectFilterColumnName[APMObjectFilterColumnName.DocumentID])\r\n return 'documentID' \r\n else if(this.selectedColumn==APMObjectFilterColumnName[APMObjectFilterColumnName.DocumentType])\r\n return \"documentType\"\r\n else if(this.selectedColumn==APMObjectFilterColumnName[APMObjectFilterColumnName.Documents])\r\n return \"documents\"\r\n else if(this.selectedColumn==APMObjectFilterColumnName[APMObjectFilterColumnName.Properties])\r\n return \"properties\" \r\n else if(this.selectedColumn==APMObjectFilterColumnName[APMObjectFilterColumnName.Routings])\r\n return \"routings\" \r\n else\r\n return \"recipients\"\r\n } \r\n\r\n public checkboxFieldChangedProcess(items:any[], event: any, colElem: any){ \r\n if(colElem==APMObjectFilterColumnName[APMObjectFilterColumnName.DocumentID]){\r\n this.doucmentIdFieldProcess(items, event);\r\n }\r\n else if(colElem==APMObjectFilterColumnName[APMObjectFilterColumnName.DocumentType]){\r\n this.documentTypeProcess(items,event);\r\n }\r\n else if(colElem==APMObjectFilterColumnName[APMObjectFilterColumnName.Documents]){\r\n this.documentsFieldProcess(items,event);\r\n }\r\n else if(colElem==APMObjectFilterColumnName[APMObjectFilterColumnName.Properties]){\r\n this.propertiesFieldProcess(items,event);\r\n } \r\n else if(colElem==APMObjectFilterColumnName[APMObjectFilterColumnName.Routings]){\r\n this.routingsProcess(items,event);\r\n } \r\n else if(colElem==APMObjectFilterColumnName[APMObjectFilterColumnName.Recipients]){\r\n this.recipientsProcess(items,event);\r\n } \r\n \r\n }\r\n\r\n public doucmentIdFieldProcess(items:any[], event: any){\r\n let documentId = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n documentId = getRowDetails[0].documentID;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.documentID == documentId).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.documentID == documentId).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n\r\n public documentTypeProcess(items:any[], event: any){\r\n let documentType = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n documentType = getRowDetails[0].documentType;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.documentType == documentType).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.documentType == documentType).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n } \r\n }\r\n\r\n public documentsFieldProcess(items:any[], event: any){\r\n let documents = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n documents = getRowDetails[0].documents;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.documents == documents).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.documents == documents).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n\r\n public propertiesFieldProcess(items:any[], event: any){\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n let properties = getRowDetails[0].properties;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.properties == properties).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.properties == properties).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n\r\n public routingsProcess(items:any[], event: any){\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n let routings = getRowDetails[0].routings;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.routings == routings).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.routings == routings).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n\r\n public recipientsProcess(items:any[], event: any){\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n let recipients = getRowDetails[0].recipients;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.recipients == recipients).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.recipients == recipients).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n\r\n public setToggleValue(items:any[]):string{\r\n let toggleFlag = this.checkedAll;\r\n\r\n items.forEach((item:any) => {\r\n item.isChecked=toggleFlag;\r\n });\r\n \r\n this.apmObjectList = [];\r\n\r\n if(toggleFlag){\r\n items.forEach ((item) =>{\r\n this.apmObjectList.push(Number(item.rowIndex)); \r\n });\r\n }\r\n return this.apmObjectList.toString();\r\n }\r\n\r\n public showErrorMessage(){\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.errorDialogRef = this.dialog.open(ErrorMessageDialog, config);\r\n this.errorDialogRef.afterClosed().subscribe(result => {\r\n this.errorDialogRef = null;\r\n });\r\n } \r\n onClick(event:any) {\r\n var clickedOutsideDialog = event.target;\r\n var inside = false;\r\n do {\r\n if (clickedOutsideDialog === this.elementRef.nativeElement) {\r\n inside = true;\r\n }\r\n clickedOutsideDialog = clickedOutsideDialog.parentNode;\r\n } while (clickedOutsideDialog);\r\n \r\n if(inside){\r\n this.clickedOutside=false;\r\n }else{\r\n this.clickedOutside=true;\r\n }\r\n } \r\n}\r\n\r\n export enum APMObjectFilterColumnName{\r\n DocumentID = 0,\r\n DocumentType=1,\r\n Documents=2,\r\n Properties=3,\r\n Routings=4,\r\n Recipients=5\r\n }\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/apmObjects/apmObjects.modaldialog.ts\n **/","import { Component, EventEmitter, Input, Output, OnInit, ViewContainerRef, ViewChild, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\n\r\n\r\nimport {ReportOrderByPipe} from '../../../reports/reportorderby.pipe';\r\nimport {ReportGroupByPipe} from '../../../reports/reportgroupby.pipe'\r\nimport {ReportFilterPipe} from '../../../reports/reportfilter.pipe'\r\nimport { UserDefinedTablesSearchPipe } from './userDefinedTables.search.pipe'\r\n\r\n// import {MenusFilteringService} from './menus.filter';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\nimport {ErrorMessageDialog} from '../../../reports/reports.component.service'\r\n\r\n@Component({\r\n selector: 'userDefinedTables.modaldialog',\r\n host: {\r\n '(document:click)': 'onClick($event)',\r\n }, \r\n template: `\r\n\r\n\r\n\r\n\r\n
Custom Tables - {{selectedColumn}}
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n (Select All) \r\n
\r\n
\r\n {{md.value[0].name}}\r\n
\r\n
\r\n
\r\n
\r\n {{md.value[0].rowCount}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n`,\r\n providers: [PagerService]\r\n})\r\n\r\nexport class UserDefinedTablesReportDialog {\r\n constructor(public dialogRef: MdDialogRef,\r\n private errorChangeDetectorRef: ChangeDetectorRef,\r\n private viewContainerRef: ViewContainerRef,\r\n public dialog: MdDialog,\r\n public elementRef: ElementRef) {}\r\n\r\n pagedItems:any;\r\n finalUserDefinedTablesList:any;\r\n checkedAll:boolean=false;\r\n selectedColumn:string =\"\";\r\n selectedColumnGroupBy : string =\"\";\r\n hidePagination :boolean = false;\r\n errorDialogRef: MdDialogRef;\r\n customTableList : any[]=[];\r\n disableApplyButton:boolean =false;\r\n clickedOutside:boolean=false;\r\n tempList:any[]=[];\r\n\r\n @ViewChild('container') container: ElementRef;\r\n\r\n render(udFormsDetails:any){\r\n this.pagedItems = udFormsDetails.pagedItems;\r\n this.finalUserDefinedTablesList = udFormsDetails.finalUserDefinedTablesList;\r\n this.tempList = this.finalUserDefinedTablesList;\r\n this.checkedAll = udFormsDetails.checkedAll;\r\n this.selectedColumn = udFormsDetails.selectedColumn;\r\n this.selectedColumnGroupBy = this.getGroupByColumnName();\r\n\r\n if(this.finalUserDefinedTablesList!=undefined && this.finalUserDefinedTablesList.length > 0){\r\n this.finalUserDefinedTablesList.split(',').forEach( (id:any) =>{\r\n this.customTableList.push(Number(id));\r\n this.pagedItems.filter((item:any) => item.rowIndex == id).forEach( (item:any) => {\r\n item.isChecked=true;\r\n });\r\n });\r\n }\r\n\r\n //content\r\n this.container.nativeElement.children[1].style.maxHeight=\"30vh\";\r\n this.container.nativeElement.children[1].style.overflow=\"auto\";\r\n\r\n //footer\r\n this.container.nativeElement.children[2].style.float=\"right\";\r\n this.container.nativeElement.children[2].style.position=\"relative\";\r\n this.container.nativeElement.children[2].style.top=\"1vh\";\r\n }\r\n\r\n applyModal():any{\r\n let anythingChoosen= false;\r\n\r\n if(this.customTableList.length >0 && this.pagedItems.filter((item:any) => item.isChecked==true).length ==0){\r\n this.showErrorMessage();\r\n this.disableApplyButton=true;\r\n return;\r\n }\r\n this.disableApplyButton=false;\r\n this.customTableList=[];\r\n this.pagedItems.filter((item:any) => item.isChecked==true).forEach( (item:any) => {\r\n this.customTableList.push(item.rowIndex)\r\n });\r\n\r\n console.log(this.customTableList)\r\n\r\n this.finalUserDefinedTablesList = this.customTableList.toString();\r\n console.log(this.finalUserDefinedTablesList)\r\n this.dialogRef.close();\r\n }\r\n\r\n checkboxFieldChange(event: any, colElem: any){\r\n if(!event.checked){\r\n this.checkedAll = false; \r\n }\r\n this.checkboxFieldChangedProcess(this.pagedItems, event, colElem)\r\n }\r\n\r\n close() {\r\n this.checkedAll=false;\r\n this.finalUserDefinedTablesList = this.tempList.toString();\r\n this.dialogRef.close();\r\n }\r\n\r\n toggleAll(event:any){\r\n this.disableApplyButton=false; \r\n this.finalUserDefinedTablesList = this.setToggleValue(this.pagedItems);\r\n }\r\n\r\n getGroupByColumnName():string{\r\n if(this.selectedColumn==UserDefinedTablesFilterColumnName[UserDefinedTablesFilterColumnName.Name])\r\n return \"name\"\r\n else \r\n return \"rowCount\"\r\n } \r\n\r\n public checkboxFieldChangedProcess(items:any[], event: any, colElem: any){ \r\n\r\n if(colElem==UserDefinedTablesFilterColumnName[UserDefinedTablesFilterColumnName.Name]){\r\n this.nameFieldProcess(items, event);\r\n }\r\n else if(colElem==UserDefinedTablesFilterColumnName[UserDefinedTablesFilterColumnName.RowCount]){\r\n this.rowsFieldProcess(items,event);\r\n }\r\n }\r\n public nameFieldProcess(items:any[], event: any){\r\n let name = '';\r\n debugger;\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n name = getRowDetails[0].udFormName;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.udFormName == name).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.udFormName == name).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n \r\n\r\n public rowsFieldProcess(items:any[], event: any){\r\n let rows = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n console.log(getRowDetails)\r\n rows = getRowDetails[0].rowCount;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.rowCount == rows).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.rowCount == rows).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n\r\n public setToggleValue(items:any[]){\r\n let toggleFlag = this.checkedAll;\r\n\r\n items.forEach((item:any) => {\r\n item.isChecked=toggleFlag;\r\n });\r\n \r\n this.customTableList = [];\r\n\r\n if(toggleFlag){\r\n items.forEach ((item) =>{\r\n this.customTableList.push(Number(item.rowIndex)); \r\n });\r\n }\r\n return this.customTableList.toString();\r\n }\r\n public showErrorMessage(){\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.errorDialogRef = this.dialog.open(ErrorMessageDialog, config);\r\n this.errorDialogRef.afterClosed().subscribe(result => {\r\n this.errorDialogRef = null;\r\n });\r\n }\r\n\r\n onClick(event:any) {\r\n var clickedOutsideDialog = event.target;\r\n var inside = false;\r\n do {\r\n if (clickedOutsideDialog === this.elementRef.nativeElement) {\r\n inside = true;\r\n }\r\n clickedOutsideDialog = clickedOutsideDialog.parentNode;\r\n } while (clickedOutsideDialog);\r\n \r\n if(inside){\r\n this.clickedOutside=false;\r\n }else{\r\n this.clickedOutside=true;\r\n }\r\n } \r\n}\r\n\r\n export enum UserDefinedTablesFilterColumnName{\r\n Name = 0,\r\n Description=1,\r\n RowCount=2,\r\n }\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/UserDefinedTables/userDefinedTables.modaldialog.ts\n **/","import { Component, EventEmitter, Input, Output, OnInit, ViewContainerRef, ViewChild, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\n\r\n\r\nimport {ReportOrderByPipe} from '../../../reports/reportorderby.pipe';\r\nimport {ReportGroupByPipe} from '../../../reports/reportgroupby.pipe'\r\nimport {ReportFilterPipe} from '../../../reports/reportfilter.pipe'\r\nimport { CustomTriggerSearchPipe } from './customTriggers.search.pipe'\r\nimport {SQLReportType } from '../sql.modaldialog'\r\n// import {MenusFilteringService} from './menus.filter';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\nimport {ErrorMessageDialog} from '../../../reports/reports.component.service'\r\n\r\n@Component({\r\n selector: 'sql-dialog',\r\n host: {\r\n '(document:click)': 'onClick($event)',\r\n }, \r\n \r\n template: `\r\n\r\n \r\n\r\n
{{ sqlReportType}} - {{selectedColumn}}
\r\n
\r\n\r\n \r\n \r\n \r\n\r\n
\r\n (Select All) \r\n
\r\n
\r\n {{md.value[0].name}}\r\n
\r\n
\r\n
\r\n
\r\n {{md.value[0].tableName}}\r\n
\r\n
\r\n
\r\n
\r\n {{md.value[0].complexity}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{md.value[0].linesOfCode}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n`,\r\n providers: [PagerService]\r\n})\r\n\r\nexport class CustomTriggerDialog {\r\n constructor(private dialogRef: MdDialogRef, \r\n private errorChangeDetectorRef: ChangeDetectorRef,\r\n private viewContainerRef: ViewContainerRef,\r\n public dialog: MdDialog,\r\n public elementRef: ElementRef) {}\r\n\r\n pagedItems:any;\r\n finalSQLList:any;\r\n checkedAll:boolean=false;\r\n selectedColumn:string =\"\";\r\n columnDisplayName : string=\"\";\r\n selectedColumnGroupBy : string =\"\";\r\n hidePagination :boolean = false;\r\n disableApplyButton:boolean =false;\r\n sqlReportType:string='';\r\n sqlList : any[]=[];\r\n clickedOutside:boolean=false;\r\n tempList:any[]=[];\r\n\r\n errorDialogRef: MdDialogRef;\r\n\r\n @ViewChild('container') container: ElementRef;\r\n\r\n render(sqlReportDetails:any){\r\n this.pagedItems = sqlReportDetails.pagedItems;\r\n this.finalSQLList = sqlReportDetails.finalSQLList;\r\n this.tempList = this.finalSQLList;\r\n this.checkedAll = sqlReportDetails.checkedAll;\r\n this.selectedColumn = sqlReportDetails.selectedColumn;\r\n this.sqlReportType = this.getDisplayName(sqlReportDetails.sqlReportType)\r\n this.selectedColumnGroupBy = this.getGroupByColumnName();\r\n\r\n if(this.finalSQLList!=undefined && this.finalSQLList.length > 0){\r\n this.finalSQLList.split(',').forEach( (id:any) =>{\r\n this.sqlList.push(Number(id));\r\n\r\n this.pagedItems.filter((item:any) => item.rowIndex == id).forEach( (item:any) => {\r\n item.isChecked=true;\r\n });\r\n });\r\n }\r\n //modal-content\r\n this.container.nativeElement.children[1].style.maxHeight=\"30vh\";\r\n this.container.nativeElement.children[1].style.overflow=\"auto\";\r\n\r\n //modal-footer\r\n this.container.nativeElement.children[2].style.float=\"right\";\r\n this.container.nativeElement.children[2].style.position=\"relative\";\r\n this.container.nativeElement.children[2].style.top=\"1vh\";\r\n }\r\n\r\n applyModal():any{\r\n \r\n if(this.sqlList.length >0 && (this.pagedItems.filter((item:any) => item.isChecked==true).length == 0)){\r\n this.showErrorMessage();\r\n this.disableApplyButton=true;\r\n return;\r\n }\r\n\r\n this.disableApplyButton=false;\r\n this.sqlList=[];\r\n this.pagedItems.filter((item:any) => item.isChecked==true).forEach( (item:any) => {\r\n this.sqlList.push(item.rowIndex)\r\n });\r\n \r\n this.finalSQLList = this.sqlList.toString();\r\n this.dialogRef.close();\r\n }\r\n\r\n checkboxFieldChange(event: any, colElem: any){\r\n if(!event.checked){\r\n this.checkedAll = false; \r\n }\r\n this.checkboxFieldChangedProcess(this.pagedItems, event, colElem)\r\n}\r\n\r\n close() {\r\n this.checkedAll=false;\r\n this.finalSQLList = this.tempList.toString();\r\n this.dialogRef.close();\r\n }\r\n\r\n toggleAll(event:any){\r\n this.disableApplyButton=false;\r\n this.finalSQLList = this.setToggleValue(this.pagedItems);\r\n }\r\n\r\n getDisplayName(sqlReportType:string):string{\r\n if(sqlReportType == SQLReportType[SQLReportType.Trigger])\r\n return \"Custom Triggers\"\r\n }\r\n\r\n getGroupByColumnName():string{\r\n if(this.selectedColumn==CustomTriggersFilterColumnName[CustomTriggersFilterColumnName.Name])\r\n return \"name\"\r\n else if(this.selectedColumn==CustomTriggersFilterColumnName[CustomTriggersFilterColumnName.TableName])\r\n return \"tableName\" \r\n else if(this.selectedColumn==CustomTriggersFilterColumnName[CustomTriggersFilterColumnName.Complexity])\r\n return \"complexity\"\r\n else \r\n return \"linesOfCode\"\r\n } \r\n\r\n public checkboxFieldChangedProcess(items:any[], event: any, colElem: any){ \r\n if(colElem==CustomTriggersFilterColumnName[CustomTriggersFilterColumnName.Name]){\r\n return this.nameFieldProcess(items,event);\r\n }\r\n if(colElem==CustomTriggersFilterColumnName[CustomTriggersFilterColumnName.TableName]){\r\n return this.tableNameFieldProcess(items,event);\r\n }\r\n \r\n else if(colElem==CustomTriggersFilterColumnName[CustomTriggersFilterColumnName.Complexity]){\r\n return this.complexityFieldProcess(items,event);\r\n } \r\n else if(colElem==CustomTriggersFilterColumnName[CustomTriggersFilterColumnName.LOC]){\r\n return this.locFieldProcess(items,event);\r\n } \r\n }\r\n\r\n public nameFieldProcess(items:any[], event: any){\r\n let name = '';\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n name = getRowDetails[0].name;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.name == name).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.name == name).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n public tableNameFieldProcess(items:any[], event: any){\r\n let tableName = '';\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n tableName = getRowDetails[0].tableName;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.tableName == tableName).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.tableName == tableName).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n public complexityFieldProcess(items:any[], event: any){\r\n let complexity = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n complexity = getRowDetails[0].complexity;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.complexity == complexity).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.complexity == complexity).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n\r\n public locFieldProcess(items:any[], event: any){\r\n let linesOfCode = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n linesOfCode = getRowDetails[0].linesOfCode;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.linesOfCode == linesOfCode).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.linesOfCode == linesOfCode).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n\r\n public setToggleValue(items:any[]):string{\r\n let toggleFlag = this.checkedAll;\r\n\r\n items.forEach((item:any) => {\r\n item.isChecked= toggleFlag;\r\n });\r\n \r\n this.sqlList = [];\r\n if(toggleFlag){\r\n items.forEach ((item) =>{\r\n this.sqlList.push(Number(item.rowIndex)); \r\n });\r\n }\r\n return this.sqlList.toString();\r\n }\r\n\r\n public showErrorMessage(){\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.errorDialogRef = this.dialog.open(ErrorMessageDialog, config);\r\n\r\n this.errorDialogRef.afterClosed().subscribe(result => {\r\n this.errorDialogRef = null;\r\n });\r\n }\r\n onClick(event:any) {\r\n var clickedOutsideDialog = event.target;\r\n var inside = false;\r\n do {\r\n if (clickedOutsideDialog === this.elementRef.nativeElement) {\r\n inside = true;\r\n }\r\n clickedOutsideDialog = clickedOutsideDialog.parentNode;\r\n } while (clickedOutsideDialog);\r\n \r\n if(inside){\r\n this.clickedOutside=false;\r\n }else{\r\n this.clickedOutside=true;\r\n }\r\n } \r\n \r\n}\r\n\r\n export enum CustomTriggersFilterColumnName{\r\n Name = 0,\r\n TableName=1,\r\n LOC=2,\r\n Complexity=3\r\n }\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/triggers/customTriggers.modaldialog.ts\n **/","import { Component, EventEmitter, Input, Output, OnInit, ViewContainerRef, ViewChild, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { PagerService } from '../../../shared/services/pager.service';\r\n\r\n\r\nimport {ReportOrderByPipe} from '../../reports/reportorderby.pipe';\r\nimport {ReportGroupByPipe} from '../../reports/reportgroupby.pipe'\r\nimport {ReportFilterPipe} from '../../reports/reportfilter.pipe'\r\nimport {BPMsSearchPipe} from '../custom/bpms.search.pipe'\r\n\r\n// import {MenusFilteringService} from './menus.filter';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\nimport {ErrorMessageDialog} from '../../reports/reports.component.service'\r\n\r\n@Component({\r\n selector: 'sql-dialog',\r\n host: {\r\n '(document:click)': 'onClick($event)',\r\n }, \r\n \r\n template: `\r\n\r\n \r\n\r\n
{{ sqlReportType}} - {{selectedColumn}}
\r\n
\r\n\r\n \r\n \r\n \r\n\r\n
\r\n (Select All) \r\n
\r\n
\r\n {{md.value[0].name}}\r\n
\r\n
\r\n\r\n
\r\n
\r\n {{md.value[0].complexity}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{md.value[0].linesOfCode}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n`,\r\n providers: [PagerService]\r\n})\r\n\r\nexport class SQLReportDialog {\r\n constructor(private dialogRef: MdDialogRef, \r\n private errorChangeDetectorRef: ChangeDetectorRef,\r\n private viewContainerRef: ViewContainerRef,\r\n public dialog: MdDialog,\r\n public elementRef: ElementRef) {}\r\n\r\n pagedItems:any;\r\n finalSQLList:any;\r\n checkedAll:boolean=false;\r\n selectedColumn:string =\"\";\r\n columnDisplayName : string=\"\";\r\n selectedColumnGroupBy : string =\"\";\r\n hidePagination :boolean = false;\r\n disableApplyButton:boolean =false;\r\n sqlReportType:string='';\r\n sqlList : any[]=[];\r\n clickedOutside:boolean=false;\r\n tempList:any[]=[];\r\n\r\n errorDialogRef: MdDialogRef;\r\n\r\n @ViewChild('container') container: ElementRef;\r\n\r\n render(sqlReportDetails:any){\r\n this.pagedItems = sqlReportDetails.pagedItems;\r\n this.finalSQLList = sqlReportDetails.finalSQLList;\r\n this.tempList = this.finalSQLList;\r\n this.checkedAll = sqlReportDetails.checkedAll;\r\n this.selectedColumn = sqlReportDetails.selectedColumn;\r\n this.sqlReportType = this.getDisplayName(sqlReportDetails.sqlReportType)\r\n this.selectedColumnGroupBy = this.getGroupByColumnName();\r\n\r\n if(this.finalSQLList!=undefined && this.finalSQLList.length > 0){\r\n this.finalSQLList.split(',').forEach( (id:any) =>{\r\n this.sqlList.push(Number(id));\r\n\r\n this.pagedItems.filter((item:any) => item.rowIndex == id).forEach( (item:any) => {\r\n item.isChecked=true;\r\n });\r\n });\r\n }\r\n //modal-content\r\n this.container.nativeElement.children[1].style.maxHeight=\"30vh\";\r\n this.container.nativeElement.children[1].style.overflow=\"auto\";\r\n\r\n //modal-footer\r\n this.container.nativeElement.children[2].style.float=\"right\";\r\n this.container.nativeElement.children[2].style.position=\"relative\";\r\n this.container.nativeElement.children[2].style.top=\"1vh\";\r\n }\r\n\r\n applyModal():any{\r\n \r\n if(this.sqlList.length >0 && (this.pagedItems.filter((item:any) => item.isChecked==true).length == 0)){\r\n this.showErrorMessage();\r\n this.disableApplyButton=true;\r\n return;\r\n }\r\n\r\n this.disableApplyButton=false;\r\n this.sqlList=[];\r\n this.pagedItems.filter((item:any) => item.isChecked==true).forEach( (item:any) => {\r\n this.sqlList.push(item.rowIndex)\r\n });\r\n \r\n this.finalSQLList = this.sqlList.toString();\r\n this.dialogRef.close();\r\n }\r\n\r\n checkboxFieldChange(event: any, colElem: any){\r\n if(!event.checked){\r\n this.checkedAll = false; \r\n }\r\n this.checkboxFieldChangedProcess(this.pagedItems, event, colElem)\r\n}\r\n\r\n close() {\r\n this.checkedAll=false;\r\n this.finalSQLList = this.tempList.toString();\r\n this.dialogRef.close();\r\n }\r\n\r\n toggleAll(event:any){\r\n this.disableApplyButton=false;\r\n this.finalSQLList = this.setToggleValue(this.pagedItems);\r\n }\r\n\r\n getDisplayName(sqlReportType:string):string{\r\n if(sqlReportType == SQLReportType[SQLReportType.Views])\r\n return \"SQL Views\"\r\n else\r\n return \"SQL Stored Procedures\"\r\n }\r\n\r\n getGroupByColumnName():string{\r\n if(this.selectedColumn==SQLFilterColumnName[SQLFilterColumnName.Name])\r\n return \"name\"\r\n else if(this.selectedColumn==SQLFilterColumnName[SQLFilterColumnName.Complexity])\r\n return \"complexity\"\r\n else \r\n return \"linesOfCode\"\r\n } \r\n\r\n public checkboxFieldChangedProcess(items:any[], event: any, colElem: any){ \r\n if(colElem==SQLFilterColumnName[SQLFilterColumnName.Name]){\r\n return this.nameFieldProcess(items,event);\r\n }\r\n else if(colElem==SQLFilterColumnName[SQLFilterColumnName.Complexity]){\r\n return this.complexityFieldProcess(items,event);\r\n } \r\n else if(colElem==SQLFilterColumnName[SQLFilterColumnName.LOC]){\r\n return this.locFieldProcess(items,event);\r\n } \r\n }\r\n\r\n public nameFieldProcess(items:any[], event: any){\r\n let name = '';\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n name = getRowDetails[0].name;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.name == name).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.name == name).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n\r\n public complexityFieldProcess(items:any[], event: any){\r\n let complexity = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n complexity = getRowDetails[0].complexity;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.complexity == complexity).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.complexity == complexity).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n\r\n public locFieldProcess(items:any[], event: any){\r\n let linesOfCode = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n linesOfCode = getRowDetails[0].linesOfCode;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.linesOfCode == linesOfCode).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.linesOfCode == linesOfCode).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n\r\n public setToggleValue(items:any[]):string{\r\n let toggleFlag = this.checkedAll;\r\n\r\n items.forEach((item:any) => {\r\n item.isChecked= toggleFlag;\r\n });\r\n \r\n this.sqlList = [];\r\n if(toggleFlag){\r\n items.forEach ((item) =>{\r\n this.sqlList.push(Number(item.rowIndex)); \r\n });\r\n }\r\n return this.sqlList.toString();\r\n }\r\n\r\n public showErrorMessage(){\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.errorDialogRef = this.dialog.open(ErrorMessageDialog, config);\r\n\r\n this.errorDialogRef.afterClosed().subscribe(result => {\r\n this.errorDialogRef = null;\r\n });\r\n }\r\n onClick(event:any) {\r\n var clickedOutsideDialog = event.target;\r\n var inside = false;\r\n do {\r\n if (clickedOutsideDialog === this.elementRef.nativeElement) {\r\n inside = true;\r\n }\r\n clickedOutsideDialog = clickedOutsideDialog.parentNode;\r\n } while (clickedOutsideDialog);\r\n \r\n if(inside){\r\n this.clickedOutside=false;\r\n }else{\r\n this.clickedOutside=true;\r\n }\r\n } \r\n \r\n}\r\n\r\n export enum SQLReportType{\r\n Views = 0,\r\n StoredProcedure=1,\r\n Trigger=2,\r\n Function=3\r\n}\r\n\r\n\r\nexport enum SQLFilterColumnName{\r\n Name=0,\r\n LOC=1,\r\n Complexity=2\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/sql.modaldialog.ts\n **/","module.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n \\r\\n Altec Doc Link (APM) ({{pager?.totalItems}})\\r\\n \\r\\n Keep ({{ countKeep() }}/{{_apmObjects?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_apmObjects?.length}})\\r\\n\\t\\t\\r\\n \\r\\n
\\r\\n \\r\\n\\t\\t \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Document ID\\r\\n \\r\\n \\r\\n Document Type\\r\\n \\r\\n \\r\\n Documents\\r\\n \\r\\n \\r\\n Properties\\r\\n \\r\\n \\r\\n Routings\\r\\n \\r\\n \\r\\n Recipients\\r\\n \\r\\n \\r\\n KeepReviewed
{{ item?.documentID }}{{ item?.documentType }}{{ item?.documents }}{{ item?.properties }}{{ item?.routings }}{{ item?.recipients}}\\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n
\\r\\n
10\\\">\\r\\n View: \\r\\n \\r\\n
1\\\" style=\\\"display:inline-block\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/custom/apmObjects/apmObjects.html\n ** module id = 452\n ** module chunks = 0\n **/","import { Component, Input, OnInit, Output, EventEmitter, ViewContainerRef } from '@angular/core';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\n\r\nimport { SitesService } from '../../../core/sites.service';\r\nimport { CodeDialog, Code } from '../../../../code/code-dialog.component';\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\nimport { FilterConfiguratorPipe } from './configurators.pipe';\r\n\r\n\r\n@Component({\r\n selector: 'configurators',\r\n template: require('./configurators.html'),\r\n providers: [PagerService, SitesService]\r\n})\r\nexport class ConfiguratorsComponent implements OnInit {\r\n codeDialogRef: MdDialogRef;\r\n _configurators: Configurator[] = [];\r\n\r\n @Input() onAnalysisRefresh : EventEmitter; \r\n @Input() onFilterCustom: EventEmitter;\r\n @Input() sas: string;\r\n\r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n if (data.configurators) {\r\n this._configurators = data.configurators;\r\n }\r\n }\r\n }\r\n get data() { return this._configurators }\r\n\r\n @Output() onChange = new EventEmitter();\r\n\r\n freezeInputs : boolean = false;\r\n opened: boolean = false;\r\n icon: string = 'expand_more';\r\n keep: boolean = false;\r\n reviewed: boolean = false;\r\n search: string = '';\r\n selectedFilter: any = {};\r\n pager: any = {};\r\n pagedItems: any[];\r\n //page size\r\n pageSize:number = 10;\r\n\r\n // initialise the filter configurator pipe to make use of transform funciton\r\n filterConfiguratorPipe = new FilterConfiguratorPipe();\r\n\r\n constructor(\r\n private pagerService: PagerService,\r\n private sitesService: SitesService,\r\n public dialog: MdDialog,\r\n public viewContainerRef: ViewContainerRef) { }\r\n\r\n ngOnInit() {\r\n\r\n this.onFilterCustom.subscribe((res: any) => {\r\n this.selectedFilter = res;\r\n this.filterCustom(this.selectedFilter, 1);\r\n });\r\n\r\n this.onAnalysisRefresh.subscribe((res:boolean) => {\r\n this.freezeInputs = res;\r\n });\r\n // initial to page 1\r\n this.setPage(1);\r\n }\r\n\r\n filterCustom(filter: any, page?: number) {\r\n var configurators: Configurator[] = this._configurators;\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n configurators = this.setConfiguratorFilter(filter, configurators);\r\n this.pager = this.pagerService.getPager(configurators.length, page, this.pageSize);\r\n this.pagedItems = configurators.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n setConfiguratorFilter(filter: any, configurators: Configurator[]): Configurator[] {\r\n configurators = this.pagerService.filter('custom', configurators, filter);\r\n\r\n return configurators;\r\n }\r\n\r\n filterConfigurator(query: any, page?: number) {\r\n var configurators: Configurator[] = this._configurators;\r\n\r\n if (query === '') {\r\n this.setPage(1);\r\n }\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n // use pipe to filter data\r\n configurators = this.filterConfiguratorPipe.transform(configurators, query);\r\n\r\n // apply custom filter\r\n configurators = this.setConfiguratorFilter(this.selectedFilter, configurators);\r\n\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(configurators.length, page, this.pageSize);\r\n\r\n // get current page of items\r\n this.pagedItems = configurators.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n toggle() {\r\n if (this.opened) {\r\n this.opened = false;\r\n this.icon = 'expand_more';\r\n } else {\r\n this.opened = true;\r\n this.icon = 'expand_less';\r\n }\r\n }\r\n\r\n keepAll(checked: boolean) {\r\n this._configurators.forEach(function (configurator) {\r\n configurator.keep = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n reviewedAll(checked: boolean) {\r\n this._configurators.forEach(function (configurator) {\r\n configurator.reviewed = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n countReviewed() {\r\n var count = 0;\r\n this._configurators.forEach(function (configurator) {\r\n count += configurator.reviewed ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n countKeep() {\r\n var count = 0;\r\n this._configurators.forEach(function (configurator) {\r\n count += configurator.keep ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n setPage(page: number) {\r\n if (page < 1 || page > this.pager.totalPages) {\r\n return;\r\n }\r\n\r\n if (this.search !== '') {\r\n this.filterConfigurator(this.search, page);\r\n } else {\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(this._configurators.length, page, this.pageSize);\r\n\r\n // get current page of items\r\n this.pagedItems = this._configurators.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n }\r\n\r\n previewCode(url: string, name: string, language: string) {\r\n if (url) {\r\n this.sitesService.getFile(url + this.sas).subscribe((res: any) => {\r\n\r\n var preview: Code = {\r\n source: res.text(),\r\n language: language,\r\n downloadUrl: url + this.sas,\r\n name: name\r\n };\r\n\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.codeDialogRef = this.dialog.open(CodeDialog, config);\r\n this.codeDialogRef.componentInstance.render(preview);\r\n\r\n this.codeDialogRef.afterClosed().subscribe(result => {\r\n this.codeDialogRef = null;\r\n });\r\n });\r\n }\r\n }\r\n\r\n previewCodeDisabled(c: any): boolean {\r\n if (c.sourceFilename && c.sourceFilename.cloudFilename) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n previewCodeIcon(c: any): string {\r\n if (this.previewCodeDisabled(c)) {\r\n return \"cloud_download\";\r\n }\r\n return \"cloud_download\";\r\n }\r\n\r\n}\r\n\r\nexport interface Configurator {\r\n company?: string;\r\n partNum?: string;\r\n description?: string;\r\n lastChanged?: string;\r\n pages?: number;\r\n inputs?: number;\r\n uniqueInputOnLeaveLinesOfCode?: number;\r\n sourceFileName?: File;\r\n linesOfCode?: number;\r\n detectedDependencies?: DetectedDependencies[];\r\n complexity?: number;\r\n configuredQuotesLast12Months?: number;\r\n configuredOrdersLast12Months?: number;\r\n configuredPOLast12Months?: number;\r\n configuredJobsLast12Months?: number;\r\n sysRowID?: string;\r\n sysRevID?: number;\r\n keep?: boolean;\r\n reviewed?: boolean;\r\n purpose?: string;\r\n comments?: Comment[];\r\n}\r\n\r\nexport interface DetectedDependencies {\r\n file?: File;\r\n lines?: number;\r\n}\r\n\r\nexport interface File {\r\n cloudFileName?: string;\r\n cloudFolder?: string;\r\n localFilePath?: string;\r\n cloudFilePath?: string;\r\n}\r\n\r\nexport interface Comment {\r\n user?: string;\r\n comment: string;\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/configurators/configurators.component.ts\n **/","import { Component, Input, OnInit, ViewChild, HostListener, ElementRef } from '@angular/core';\r\nimport { MdDialogRef } from '@angular/material';\r\n\r\nvar Prism = require('./prism.js');\r\n\r\n@Component({\r\n selector: 'code-dialog',\r\n template: require('./code-dialog.component.html'),\r\n styles: [require('./code-dialog.component.css')]\r\n})\r\nexport class CodeDialog {\r\n private downloadUrl: string;\r\n private fileName: string;\r\n\r\n @ViewChild('prismjs') prismjs: ElementRef;\r\n @ViewChild('container') container: ElementRef;\r\n\r\n constructor(public dialogRef: MdDialogRef) { }\r\n\r\n render(code: Code) {\r\n this.fileName = code.name;\r\n\r\n let language = this.setLanguage(code.language);\r\n let html = '';\r\n\r\n try {\r\n html = Prism.highlight(code.source, Prism.languages[language]);\r\n } catch (err) {\r\n html = code.source;\r\n console.warn(\"Prism failed to generate html\");\r\n }\r\n\r\n let elClass = 'language-' + language;\r\n\r\n // HACK: the issue seems to be with the line-number-rows html is missing when calling Prism.highlight? So a work around is to count html lines and generate html\r\n const linesCount = html.split(/\\r\\n|z\\r|\\n/).length;\r\n const lineNumbersHTML = this.getLinesHTML(linesCount);\r\n // \r\n this.prismjs.nativeElement.innerHTML = `
${html}${lineNumbersHTML}
`;\r\n\r\n // this.container.nativeElement.style.height = window.innerHeight - 200 + 'px';\r\n // this.container.nativeElement.style.width = window.innerWidth - 200 + 'px';\r\n\r\n // insert the HTML and set height of container of inner height\r\n // this is to allow the container to be centered in middle of screen \r\n //this.container.nativeElement.style.height = window.innerHeight - 300; \r\n this.downloadUrl = code.downloadUrl;\r\n }\r\n\r\n // @HostListener('window:resize', ['$event'])\r\n // resize(event: any) {\r\n // // this.prismjs.nativeElement.children[0].style.height = window.innerHeight - 300 + 'px';\r\n // // this.container.nativeElement.style.height = window.innerHeight - 200 + 'px';\r\n // // this.container.nativeElement.style.width = window.innerWidth - 200 + 'px';\r\n // }\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n\r\n download() {\r\n if (this.downloadUrl) {\r\n window.open(this.downloadUrl, '_blank');\r\n }\r\n }\r\n\r\n private setLanguage(language: string): string {\r\n let lang = '';\r\n\r\n switch (language) {\r\n case 'C#':\r\n lang = 'csharp';\r\n break;\r\n case 'VB.Net':\r\n lang = 'vb';\r\n break;\r\n case 'ABL':\r\n lang = 'abl';\r\n break;\r\n case 'SQL':\r\n lang = 'sql';\r\n break;\r\n case 'MARKDOWN':\r\n lang = 'markdown';\r\n default:\r\n lang = 'markup';\r\n break;\r\n }\r\n return lang;\r\n }\r\n\r\n private getLinesHTML(count: number): string {\r\n let lines = '';\r\n\r\n for (let i = 0; i < count; i++) {\r\n lines += document.createElement('span').outerHTML;\r\n }\r\n\r\n lines += '';\r\n\r\n return lines;\r\n }\r\n}\r\n\r\nexport interface Code {\r\n source?: string;\r\n language?: string;\r\n downloadUrl?: string;\r\n name?: string;\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/code/code-dialog.component.ts\n **/","/* http://prismjs.com/download.html?themes=prism&languages=markup+css+clike+javascript+csharp+markdown+sql&plugins=line-numbers */\r\nvar _self = (typeof window !== 'undefined')\r\n\t? window // if in browser\r\n\t: (\r\n\t\t(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)\r\n\t\t? self // if in worker\r\n\t\t: {} // if in node js\r\n\t);\r\n\r\n/**\r\n * Prism: Lightweight, robust, elegant syntax highlighting\r\n * MIT license http://www.opensource.org/licenses/mit-license.php/\r\n * @author Lea Verou http://lea.verou.me\r\n */\r\n\r\nvar Prism = (function(){\r\n\r\n// Private helper vars\r\nvar lang = /\\blang(?:uage)?-(\\w+)\\b/i;\r\nvar uniqueId = 0;\r\n\r\nvar _ = _self.Prism = {\r\n\tutil: {\r\n\t\tencode: function (tokens) {\r\n\t\t\tif (tokens instanceof Token) {\r\n\t\t\t\treturn new Token(tokens.type, _.util.encode(tokens.content), tokens.alias);\r\n\t\t\t} else if (_.util.type(tokens) === 'Array') {\r\n\t\t\t\treturn tokens.map(_.util.encode);\r\n\t\t\t} else {\r\n\t\t\t\treturn tokens.replace(/&/g, '&').replace(/ text.length) {\r\n\t\t\t\t\t\t// Something went terribly wrong, ABORT, ABORT!\r\n\t\t\t\t\t\tbreak tokenloop;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (str instanceof Token) {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tpattern.lastIndex = 0;\r\n\r\n\t\t\t\t\tvar match = pattern.exec(str),\r\n\t\t\t\t\t delNum = 1;\r\n\r\n\t\t\t\t\t// Greedy patterns can override/remove up to two previously matched tokens\r\n\t\t\t\t\tif (!match && greedy && i != strarr.length - 1) {\r\n\t\t\t\t\t\tpattern.lastIndex = pos;\r\n\t\t\t\t\t\tmatch = pattern.exec(text);\r\n\t\t\t\t\t\tif (!match) {\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar from = match.index + (lookbehind ? match[1].length : 0),\r\n\t\t\t\t\t\t to = match.index + match[0].length,\r\n\t\t\t\t\t\t k = i,\r\n\t\t\t\t\t\t p = pos;\r\n\r\n\t\t\t\t\t\tfor (var len = strarr.length; k < len && p < to; ++k) {\r\n\t\t\t\t\t\t\tp += (strarr[k].matchedStr || strarr[k]).length;\r\n\t\t\t\t\t\t\t// Move the index i to the element in strarr that is closest to from\r\n\t\t\t\t\t\t\tif (from >= p) {\r\n\t\t\t\t\t\t\t\t++i;\r\n\t\t\t\t\t\t\t\tpos = p;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/*\r\n\t\t\t\t\t\t * If strarr[i] is a Token, then the match starts inside another Token, which is invalid\r\n\t\t\t\t\t\t * If strarr[k - 1] is greedy we are in conflict with another greedy pattern\r\n\t\t\t\t\t\t */\r\n\t\t\t\t\t\tif (strarr[i] instanceof Token || strarr[k - 1].greedy) {\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Number of tokens to delete and replace with the new match\r\n\t\t\t\t\t\tdelNum = k - i;\r\n\t\t\t\t\t\tstr = text.slice(pos, p);\r\n\t\t\t\t\t\tmatch.index -= pos;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (!match) {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif(lookbehind) {\r\n\t\t\t\t\t\tlookbehindLength = match[1].length;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar from = match.index + lookbehindLength,\r\n\t\t\t\t\t match = match[0].slice(lookbehindLength),\r\n\t\t\t\t\t to = from + match.length,\r\n\t\t\t\t\t before = str.slice(0, from),\r\n\t\t\t\t\t after = str.slice(to);\r\n\r\n\t\t\t\t\tvar args = [i, delNum];\r\n\r\n\t\t\t\t\tif (before) {\r\n\t\t\t\t\t\targs.push(before);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar wrapped = new Token(token, inside? _.tokenize(match, inside) : match, alias, match, greedy);\r\n\r\n\t\t\t\t\targs.push(wrapped);\r\n\r\n\t\t\t\t\tif (after) {\r\n\t\t\t\t\t\targs.push(after);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tArray.prototype.splice.apply(strarr, args);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn strarr;\r\n\t},\r\n\r\n\thooks: {\r\n\t\tall: {},\r\n\r\n\t\tadd: function (name, callback) {\r\n\t\t\tvar hooks = _.hooks.all;\r\n\r\n\t\t\thooks[name] = hooks[name] || [];\r\n\r\n\t\t\thooks[name].push(callback);\r\n\t\t},\r\n\r\n\t\trun: function (name, env) {\r\n\t\t\tvar callbacks = _.hooks.all[name];\r\n\r\n\t\t\tif (!callbacks || !callbacks.length) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tfor (var i=0, callback; callback = callbacks[i++];) {\r\n\t\t\t\tcallback(env);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\n\r\nvar Token = _.Token = function(type, content, alias, matchedStr, greedy) {\r\n\tthis.type = type;\r\n\tthis.content = content;\r\n\tthis.alias = alias;\r\n\t// Copy of the full string this token was created from\r\n\tthis.matchedStr = matchedStr || null;\r\n\tthis.greedy = !!greedy;\r\n};\r\n\r\nToken.stringify = function(o, language, parent) {\r\n\tif (typeof o == 'string') {\r\n\t\treturn o;\r\n\t}\r\n\r\n\tif (_.util.type(o) === 'Array') {\r\n\t\treturn o.map(function(element) {\r\n\t\t\treturn Token.stringify(element, language, o);\r\n\t\t}).join('');\r\n\t}\r\n\r\n\tvar env = {\r\n\t\ttype: o.type,\r\n\t\tcontent: Token.stringify(o.content, language, parent),\r\n\t\ttag: 'span',\r\n\t\tclasses: ['token', o.type],\r\n\t\tattributes: {},\r\n\t\tlanguage: language,\r\n\t\tparent: parent\r\n\t};\r\n\r\n\tif (env.type == 'comment') {\r\n\t\tenv.attributes['spellcheck'] = 'true';\r\n\t}\r\n\r\n\tif (o.alias) {\r\n\t\tvar aliases = _.util.type(o.alias) === 'Array' ? o.alias : [o.alias];\r\n\t\tArray.prototype.push.apply(env.classes, aliases);\r\n\t}\r\n\r\n\t_.hooks.run('wrap', env);\r\n\r\n\tvar attributes = '';\r\n\r\n\tfor (var name in env.attributes) {\r\n\t\tattributes += (attributes ? ' ' : '') + name + '=\"' + (env.attributes[name] || '') + '\"';\r\n\t}\r\n\r\n\treturn '<' + env.tag + ' class=\"' + env.classes.join(' ') + '\"' + (attributes ? ' ' + attributes : '') + '>' + env.content + '';\r\n\r\n};\r\n\r\nif (!_self.document) {\r\n\tif (!_self.addEventListener) {\r\n\t\t// in Node.js\r\n\t\treturn _self.Prism;\r\n\t}\r\n \t// In worker\r\n\t_self.addEventListener('message', function(evt) {\r\n\t\tvar message = JSON.parse(evt.data),\r\n\t\t lang = message.language,\r\n\t\t code = message.code,\r\n\t\t immediateClose = message.immediateClose;\r\n\r\n\t\t_self.postMessage(_.highlight(code, _.languages[lang], lang));\r\n\t\tif (immediateClose) {\r\n\t\t\t_self.close();\r\n\t\t}\r\n\t}, false);\r\n\r\n\treturn _self.Prism;\r\n}\r\n\r\n//Get current script and highlight\r\nvar script = document.currentScript || [].slice.call(document.getElementsByTagName(\"script\")).pop();\r\n\r\nif (script) {\r\n\t_.filename = script.src;\r\n\r\n\tif (document.addEventListener && !script.hasAttribute('data-manual')) {\r\n\t\tif(document.readyState !== \"loading\") {\r\n\t\t\tif (window.requestAnimationFrame) {\r\n\t\t\t\twindow.requestAnimationFrame(_.highlightAll);\r\n\t\t\t} else {\r\n\t\t\t\twindow.setTimeout(_.highlightAll, 16);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tdocument.addEventListener('DOMContentLoaded', _.highlightAll);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nreturn _self.Prism;\r\n\r\n})();\r\n\r\nif (typeof module !== 'undefined' && module.exports) {\r\n\tmodule.exports = Prism;\r\n}\r\n\r\n// hack for components to work correctly in node.js\r\nif (typeof global !== 'undefined') {\r\n\tglobal.Prism = Prism;\r\n}\r\n;\r\nPrism.languages.markup = {\r\n\t'comment': //,\r\n\t'prolog': /<\\?[\\w\\W]+?\\?>/,\r\n\t'doctype': //i,\r\n\t'cdata': //i,\r\n\t'tag': {\r\n\t\tpattern: /<\\/?(?!\\d)[^\\s>\\/=$<]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\\\1|\\\\?(?!\\1)[\\w\\W])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/i,\r\n\t\tinside: {\r\n\t\t\t'tag': {\r\n\t\t\t\tpattern: /^<\\/?[^\\s>\\/]+/i,\r\n\t\t\t\tinside: {\r\n\t\t\t\t\t'punctuation': /^<\\/?/,\r\n\t\t\t\t\t'namespace': /^[^\\s>\\/:]+:/\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t'attr-value': {\r\n\t\t\t\tpattern: /=(?:('|\")[\\w\\W]*?(\\1)|[^\\s>]+)/i,\r\n\t\t\t\tinside: {\r\n\t\t\t\t\t'punctuation': /[=>\"']/\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t'punctuation': /\\/?>/,\r\n\t\t\t'attr-name': {\r\n\t\t\t\tpattern: /[^\\s>\\/]+/,\r\n\t\t\t\tinside: {\r\n\t\t\t\t\t'namespace': /^[^\\s>\\/:]+:/\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t},\r\n\t'entity': /&#?[\\da-z]{1,8};/i\r\n};\r\n\r\n// Plugin to make entity title show the real entity, idea by Roman Komarov\r\nPrism.hooks.add('wrap', function(env) {\r\n\r\n\tif (env.type === 'entity') {\r\n\t\tenv.attributes['title'] = env.content.replace(/&/, '&');\r\n\t}\r\n});\r\n\r\nPrism.languages.xml = Prism.languages.markup;\r\nPrism.languages.html = Prism.languages.markup;\r\nPrism.languages.mathml = Prism.languages.markup;\r\nPrism.languages.svg = Prism.languages.markup;\r\n\r\nPrism.languages.css = {\r\n\t'comment': /\\/\\*[\\w\\W]*?\\*\\//,\r\n\t'atrule': {\r\n\t\tpattern: /@[\\w-]+?.*?(;|(?=\\s*\\{))/i,\r\n\t\tinside: {\r\n\t\t\t'rule': /@[\\w-]+/\r\n\t\t\t// See rest below\r\n\t\t}\r\n\t},\r\n\t'url': /url\\((?:([\"'])(\\\\(?:\\r\\n|[\\w\\W])|(?!\\1)[^\\\\\\r\\n])*\\1|.*?)\\)/i,\r\n\t'selector': /[^\\{\\}\\s][^\\{\\};]*?(?=\\s*\\{)/,\r\n\t'string': {\r\n\t\tpattern: /(\"|')(\\\\(?:\\r\\n|[\\w\\W])|(?!\\1)[^\\\\\\r\\n])*\\1/,\r\n\t\tgreedy: true\r\n\t},\r\n\t'property': /(\\b|\\B)[\\w-]+(?=\\s*:)/i,\r\n\t'important': /\\B!important\\b/i,\r\n\t'function': /[-a-z0-9]+(?=\\()/i,\r\n\t'punctuation': /[(){};:]/\r\n};\r\n\r\nPrism.languages.css['atrule'].inside.rest = Prism.util.clone(Prism.languages.css);\r\n\r\nif (Prism.languages.markup) {\r\n\tPrism.languages.insertBefore('markup', 'tag', {\r\n\t\t'style': {\r\n\t\t\tpattern: /()[\\w\\W]*?(?=<\\/style>)/i,\r\n\t\t\tlookbehind: true,\r\n\t\t\tinside: Prism.languages.css,\r\n\t\t\talias: 'language-css'\r\n\t\t}\r\n\t});\r\n\t\r\n\tPrism.languages.insertBefore('inside', 'attr-value', {\r\n\t\t'style-attr': {\r\n\t\t\tpattern: /\\s*style=(\"|').*?\\1/i,\r\n\t\t\tinside: {\r\n\t\t\t\t'attr-name': {\r\n\t\t\t\t\tpattern: /^\\s*style/i,\r\n\t\t\t\t\tinside: Prism.languages.markup.tag.inside\r\n\t\t\t\t},\r\n\t\t\t\t'punctuation': /^\\s*=\\s*['\"]|['\"]\\s*$/,\r\n\t\t\t\t'attr-value': {\r\n\t\t\t\t\tpattern: /.+/i,\r\n\t\t\t\t\tinside: Prism.languages.css\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\talias: 'language-css'\r\n\t\t}\r\n\t}, Prism.languages.markup.tag);\r\n};\r\nPrism.languages.clike = {\r\n\t'comment': [\r\n\t\t{\r\n\t\t\tpattern: /(^|[^\\\\])\\/\\*[\\w\\W]*?\\*\\//,\r\n\t\t\tlookbehind: true\r\n\t\t},\r\n\t\t{\r\n\t\t\tpattern: /(^|[^\\\\:])\\/\\/.*/,\r\n\t\t\tlookbehind: true\r\n\t\t}\r\n\t],\r\n\t'string': {\r\n\t\tpattern: /([\"'])(\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\r\n\t\tgreedy: true\r\n\t},\r\n\t'class-name': {\r\n\t\tpattern: /((?:\\b(?:class|interface|extends|implements|trait|instanceof|new)\\s+)|(?:catch\\s+\\())[a-z0-9_\\.\\\\]+/i,\r\n\t\tlookbehind: true,\r\n\t\tinside: {\r\n\t\t\tpunctuation: /(\\.|\\\\)/\r\n\t\t}\r\n\t},\r\n\t'keyword': /\\b(if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\\b/,\r\n\t'boolean': /\\b(true|false)\\b/,\r\n\t'function': /[a-z0-9_]+(?=\\()/i,\r\n\t'number': /\\b-?(?:0x[\\da-f]+|\\d*\\.?\\d+(?:e[+-]?\\d+)?)\\b/i,\r\n\t'operator': /--?|\\+\\+?|!=?=?|<=?|>=?|==?=?|&&?|\\|\\|?|\\?|\\*|\\/|~|\\^|%/,\r\n\t'punctuation': /[{}[\\];(),.:]/\r\n};\r\n\r\nPrism.languages.javascript = Prism.languages.extend('clike', {\r\n\t'keyword': /\\b(as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\\b/,\r\n\t'number': /\\b-?(0x[\\dA-Fa-f]+|0b[01]+|0o[0-7]+|\\d*\\.?\\d+([Ee][+-]?\\d+)?|NaN|Infinity)\\b/,\r\n\t// Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\r\n\t'function': /[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*(?=\\()/i,\r\n\t'operator': /--?|\\+\\+?|!=?=?|<=?|>=?|==?=?|&&?|\\|\\|?|\\?|\\*\\*?|\\/|~|\\^|%|\\.{3}/\r\n});\r\n\r\nPrism.languages.insertBefore('javascript', 'keyword', {\r\n\t'regex': {\r\n\t\tpattern: /(^|[^/])\\/(?!\\/)(\\[.+?]|\\\\.|[^/\\\\\\r\\n])+\\/[gimyu]{0,5}(?=\\s*($|[\\r\\n,.;})]))/,\r\n\t\tlookbehind: true,\r\n\t\tgreedy: true\r\n\t}\r\n});\r\n\r\nPrism.languages.insertBefore('javascript', 'string', {\r\n\t'template-string': {\r\n\t\tpattern: /`(?:\\\\\\\\|\\\\?[^\\\\])*?`/,\r\n\t\tgreedy: true,\r\n\t\tinside: {\r\n\t\t\t'interpolation': {\r\n\t\t\t\tpattern: /\\$\\{[^}]+\\}/,\r\n\t\t\t\tinside: {\r\n\t\t\t\t\t'interpolation-punctuation': {\r\n\t\t\t\t\t\tpattern: /^\\$\\{|\\}$/,\r\n\t\t\t\t\t\talias: 'punctuation'\r\n\t\t\t\t\t},\r\n\t\t\t\t\trest: Prism.languages.javascript\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t'string': /[\\s\\S]+/\r\n\t\t}\r\n\t}\r\n});\r\n\r\nif (Prism.languages.markup) {\r\n\tPrism.languages.insertBefore('markup', 'tag', {\r\n\t\t'script': {\r\n\t\t\tpattern: /()[\\w\\W]*?(?=<\\/script>)/i,\r\n\t\t\tlookbehind: true,\r\n\t\t\tinside: Prism.languages.javascript,\r\n\t\t\talias: 'language-javascript'\r\n\t\t}\r\n\t});\r\n}\r\n\r\nPrism.languages.js = Prism.languages.javascript;\r\nPrism.languages.csharp = Prism.languages.extend('clike', {\r\n\t'keyword': /\\b(abstract|as|async|await|base|bool|break|byte|case|catch|char|checked|class|const|continue|decimal|default|delegate|do|double|else|enum|event|explicit|extern|false|finally|fixed|float|for|foreach|goto|if|implicit|in|int|interface|internal|is|lock|long|namespace|new|null|object|operator|out|override|params|private|protected|public|readonly|ref|return|sbyte|sealed|short|sizeof|stackalloc|static|string|struct|switch|this|throw|true|try|typeof|uint|ulong|unchecked|unsafe|ushort|using|virtual|void|volatile|while|add|alias|ascending|async|await|descending|dynamic|from|get|global|group|into|join|let|orderby|partial|remove|select|set|value|var|where|yield)\\b/,\r\n\t'string': [\r\n\t\t/@(\"|')(\\1\\1|\\\\\\1|\\\\?(?!\\1)[\\s\\S])*\\1/,\r\n\t\t/(\"|')(\\\\?.)*?\\1/\r\n\t],\r\n\t'number': /\\b-?(0x[\\da-f]+|\\d*\\.?\\d+f?)\\b/i\r\n});\r\n\r\nPrism.languages.insertBefore('csharp', 'keyword', {\r\n\t'generic-method': {\r\n\t\tpattern: /[a-z0-9_]+\\s*<[^>\\r\\n]+?>\\s*(?=\\()/i,\r\n\t\talias: 'function',\r\n\t\tinside: {\r\n\t\t\tkeyword: Prism.languages.csharp.keyword,\r\n\t\t\tpunctuation: /[<>(),.:]/\r\n\t\t}\r\n\t},\r\n\t'preprocessor': {\r\n\t\tpattern: /(^\\s*)#.*/m,\r\n\t\tlookbehind: true,\r\n\t\talias: 'property',\r\n\t\tinside: {\r\n\t\t\t// highlight preprocessor directives as keywords\r\n\t\t\t'directive': {\r\n\t\t\t\tpattern: /(\\s*#)\\b(define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\\b/,\r\n\t\t\t\tlookbehind: true,\r\n\t\t\t\talias: 'keyword'\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nPrism.languages.markdown = Prism.languages.extend('markup', {});\r\nPrism.languages.insertBefore('markdown', 'prolog', {\r\n\t'blockquote': {\r\n\t\t// > ...\r\n\t\tpattern: /^>(?:[\\t ]*>)*/m,\r\n\t\talias: 'punctuation'\r\n\t},\r\n\t'code': [\r\n\t\t{\r\n\t\t\t// Prefixed by 4 spaces or 1 tab\r\n\t\t\tpattern: /^(?: {4}|\\t).+/m,\r\n\t\t\talias: 'keyword'\r\n\t\t},\r\n\t\t{\r\n\t\t\t// `code`\r\n\t\t\t// ``code``\r\n\t\t\tpattern: /``.+?``|`[^`\\n]+`/,\r\n\t\t\talias: 'keyword'\r\n\t\t}\r\n\t],\r\n\t'title': [\r\n\t\t{\r\n\t\t\t// title 1\r\n\t\t\t// =======\r\n\r\n\t\t\t// title 2\r\n\t\t\t// -------\r\n\t\t\tpattern: /\\w+.*(?:\\r?\\n|\\r)(?:==+|--+)/,\r\n\t\t\talias: 'important',\r\n\t\t\tinside: {\r\n\t\t\t\tpunctuation: /==+$|--+$/\r\n\t\t\t}\r\n\t\t},\r\n\t\t{\r\n\t\t\t// # title 1\r\n\t\t\t// ###### title 6\r\n\t\t\tpattern: /(^\\s*)#+.+/m,\r\n\t\t\tlookbehind: true,\r\n\t\t\talias: 'important',\r\n\t\t\tinside: {\r\n\t\t\t\tpunctuation: /^#+|#+$/\r\n\t\t\t}\r\n\t\t}\r\n\t],\r\n\t'hr': {\r\n\t\t// ***\r\n\t\t// ---\r\n\t\t// * * *\r\n\t\t// -----------\r\n\t\tpattern: /(^\\s*)([*-])([\\t ]*\\2){2,}(?=\\s*$)/m,\r\n\t\tlookbehind: true,\r\n\t\talias: 'punctuation'\r\n\t},\r\n\t'list': {\r\n\t\t// * item\r\n\t\t// + item\r\n\t\t// - item\r\n\t\t// 1. item\r\n\t\tpattern: /(^\\s*)(?:[*+-]|\\d+\\.)(?=[\\t ].)/m,\r\n\t\tlookbehind: true,\r\n\t\talias: 'punctuation'\r\n\t},\r\n\t'url-reference': {\r\n\t\t// [id]: http://example.com \"Optional title\"\r\n\t\t// [id]: http://example.com 'Optional title'\r\n\t\t// [id]: http://example.com (Optional title)\r\n\t\t// [id]: \"Optional title\"\r\n\t\tpattern: /!?\\[[^\\]]+\\]:[\\t ]+(?:\\S+|<(?:\\\\.|[^>\\\\])+>)(?:[\\t ]+(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\)))?/,\r\n\t\tinside: {\r\n\t\t\t'variable': {\r\n\t\t\t\tpattern: /^(!?\\[)[^\\]]+/,\r\n\t\t\t\tlookbehind: true\r\n\t\t\t},\r\n\t\t\t'string': /(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\))$/,\r\n\t\t\t'punctuation': /^[\\[\\]!:]|[<>]/\r\n\t\t},\r\n\t\talias: 'url'\r\n\t},\r\n\t'bold': {\r\n\t\t// **strong**\r\n\t\t// __strong__\r\n\r\n\t\t// Allow only one line break\r\n\t\tpattern: /(^|[^\\\\])(\\*\\*|__)(?:(?:\\r?\\n|\\r)(?!\\r?\\n|\\r)|.)+?\\2/,\r\n\t\tlookbehind: true,\r\n\t\tinside: {\r\n\t\t\t'punctuation': /^\\*\\*|^__|\\*\\*$|__$/\r\n\t\t}\r\n\t},\r\n\t'italic': {\r\n\t\t// *em*\r\n\t\t// _em_\r\n\r\n\t\t// Allow only one line break\r\n\t\tpattern: /(^|[^\\\\])([*_])(?:(?:\\r?\\n|\\r)(?!\\r?\\n|\\r)|.)+?\\2/,\r\n\t\tlookbehind: true,\r\n\t\tinside: {\r\n\t\t\t'punctuation': /^[*_]|[*_]$/\r\n\t\t}\r\n\t},\r\n\t'url': {\r\n\t\t// [example](http://example.com \"Optional title\")\r\n\t\t// [example] [id]\r\n\t\tpattern: /!?\\[[^\\]]+\\](?:\\([^\\s)]+(?:[\\t ]+\"(?:\\\\.|[^\"\\\\])*\")?\\)| ?\\[[^\\]\\n]*\\])/,\r\n\t\tinside: {\r\n\t\t\t'variable': {\r\n\t\t\t\tpattern: /(!?\\[)[^\\]]+(?=\\]$)/,\r\n\t\t\t\tlookbehind: true\r\n\t\t\t},\r\n\t\t\t'string': {\r\n\t\t\t\tpattern: /\"(?:\\\\.|[^\"\\\\])*\"(?=\\)$)/\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nPrism.languages.markdown['bold'].inside['url'] = Prism.util.clone(Prism.languages.markdown['url']);\r\nPrism.languages.markdown['italic'].inside['url'] = Prism.util.clone(Prism.languages.markdown['url']);\r\nPrism.languages.markdown['bold'].inside['italic'] = Prism.util.clone(Prism.languages.markdown['italic']);\r\nPrism.languages.markdown['italic'].inside['bold'] = Prism.util.clone(Prism.languages.markdown['bold']);\r\nPrism.languages.sql= {\r\n\t'comment': {\r\n\t\tpattern: /(^|[^\\\\])(?:\\/\\*[\\w\\W]*?\\*\\/|(?:--|\\/\\/|#).*)/,\r\n\t\tlookbehind: true\r\n\t},\r\n\t'string' : {\r\n\t\tpattern: /(^|[^@\\\\])(\"|')(?:\\\\?[\\s\\S])*?\\2/,\r\n\t\tlookbehind: true\r\n\t},\r\n\t'variable': /@[\\w.$]+|@(\"|'|`)(?:\\\\?[\\s\\S])+?\\1/,\r\n\t'function': /\\b(?:COUNT|SUM|AVG|MIN|MAX|FIRST|LAST|UCASE|LCASE|MID|LEN|ROUND|NOW|FORMAT)(?=\\s*\\()/i, // Should we highlight user defined functions too?\r\n\t'keyword': /\\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR VARYING|CHARACTER (?:SET|VARYING)|CHARSET|CHECK|CHECKPOINT|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMN|COLUMNS|COMMENT|COMMIT|COMMITTED|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS|CONTAINSTABLE|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|DATA(?:BASES?)?|DATE(?:TIME)?|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITER(?:S)?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE(?: PRECISION)?|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE KEY|ELSE|ENABLE|ENCLOSED BY|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPE(?:D BY)?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|IDENTITY(?:_INSERT|COL)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTO|INVOKER|ISOLATION LEVEL|JOIN|KEYS?|KILL|LANGUAGE SQL|LAST|LEFT|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MODIFIES SQL DATA|MODIFY|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL(?: CHAR VARYING| CHARACTER(?: VARYING)?| VARCHAR)?|NATURAL|NCHAR(?: VARCHAR)?|NEXT|NO(?: SQL|CHECK|CYCLE)?|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READ(?:S SQL DATA|TEXT)?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEATABLE|REPLICATION|REQUIRE|RESTORE|RESTRICT|RETURNS?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE MODE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|START(?:ING BY)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED BY|TEXT(?:SIZE)?|THEN|TIMESTAMP|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNPIVOT|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?)\\b/i,\r\n\t'boolean': /\\b(?:TRUE|FALSE|NULL)\\b/i,\r\n\t'number': /\\b-?(?:0x)?\\d*\\.?[\\da-f]+\\b/,\r\n\t'operator': /[-+*\\/=%^~]|&&?|\\|?\\||!=?|<(?:=>?|<|>)?|>[>=]?|\\b(?:AND|BETWEEN|IN|LIKE|NOT|OR|IS|DIV|REGEXP|RLIKE|SOUNDS LIKE|XOR)\\b/i,\r\n\t'punctuation': /[;[\\]()`,.]/\r\n};\r\n\r\nPrism.languages.vb = {\r\n 'keyword': /\\b(AddHandler|AddressOf|AndAlso|Alias|And|Ansi|As|Assembly|Auto|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|CBool|CByte|CChar|CDate|CDec|CDbl|Char|CInt|Class|CLng|CObj|Const|CShort|CSng|CStr|CType|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else|ElseIf|End|Enum| Erase|Error|Event|Exit|False|Finally|For|Friend|Function|Get|GetType|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|Let|Lib|Like|Long|Loop|Me|Mod|Module|MustInherit|MustOverride|MyBase|MyClass|Namespace|New|Next|Not|Nothing|NotInheritable|NotOverridable|Object|On|Option|Optional|Or|OrElse|Overloads|Overridable|Overrides|ParamArray|Preserve|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|REM|RemoveHandler|Resume|Return|Select|Set|Shadows|Shared|Short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|True|Try|TypeOf|Unicode|Until|Variant|When|While|With|WithEvents|WriteOnly|Xor)\\b/,\r\n 'comment': /('.*$)|(^\\s*REM.*)/gm,\r\n 'string': {\r\n\t\tpattern: /([\"'])(\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\r\n\t\tgreedy: true\r\n\t},\r\n 'number': /\\b-?(0x[\\da-f]+|\\d*\\.?\\d+f?)\\b/i\r\n};\r\n\r\n\t\tvar ablKeyWords = 'ABSOLUTE|ABS|ABSO|ABSOL|ABSOLU|ABSOLUT|ACCELERATOR|ACCUM|ACCUMULATE|ACCUM|ACCUMU|ACCUMUL|ACCUMULA|ACCUMULAT|ACTIVE-FORM|ACTIVE-WINDOW|ADD|ADD-BUFFER|ADD-CALC-COLUMN|ADD-COLUMNS-FROM|ADD-EVENTS-PROCEDURE|ADD-FIELDS-FROM|ADD-FIRST|ADD-INDEX-FIELD|ADD-LAST|ADD-LIKE-COLUMN|ADD-LIKE-FIELD|ADD-LIKE-INDEX|ADD-NEW-FIELD|ADD-NEW-INDEX|ADD-SCHEMA-LOCATION|ADD-SUPER-PROCEDURE|ADM-DATA|ADVISE|ALERT-BOX|ALIAS|ALL|ALLOW-COLUMN-SEARCHING|ALLOW-REPLICATION|ALTER|ALWAYS-ON-TOP|AMBIGUOUS|AMBIG|AMBIGU|AMBIGUO|AMBIGUOU|ANALYZE|ANALYZ|AND|ANSI-ONLY|ANY|ANYWHERE|APPEND|APPL-ALERT-BOXES|APPL-ALERT|APPL-ALERT-|APPL-ALERT-B|APPL-ALERT-BO|APPL-ALERT-BOX|APPL-ALERT-BOXE|APPL-CONTEXT-ID|APPLICATION|APPLY|APPSERVER-INFO|APPSERVER-PASSWORD|APPSERVER-USERID|ARRAY-MESSAGE|AS|ASC|ASCENDING|ASCE|ASCEN|ASCEND|ASCENDI|ASCENDIN|ASK-OVERWRITE|ASSEMBLY|ASSIGN|ASYNCHRONOUS|ASYNC-REQUEST-COUNT|ASYNC-REQUEST-HANDLE|AT|ATTACHED-PAIRLIST|ATTR-SPACE|ATTR|ATTRI|ATTRIB|ATTRIBU|ATTRIBUT|AUDIT-CONTROL|AUDIT-ENABLED|AUDIT-EVENT-CONTEXT|AUDIT-POLICY|AUTHENTICATION-FAILED|AUTHORIZATION|AUTO-COMPLETION|AUTO-COMP|AUTO-COMPL|AUTO-COMPLE|AUTO-COMPLET|AUTO-COMPLETI|AUTO-COMPLETIO|AUTO-ENDKEY|AUTO-END-KEY|AUTO-GO|AUTO-INDENT|AUTO-IND|AUTO-INDE|AUTO-INDEN|AUTOMATIC|AUTO-RESIZE|AUTO-RETURN|AUTO-RET|AUTO-RETU|AUTO-RETUR|AUTO-SYNCHRONIZE|AUTO-ZAP|AUTO-Z|AUTO-ZA|AVAILABLE|AVAIL|AVAILA|AVAILAB|AVAILABL|AVAILABLE-FORMATS|AVERAGE|AVE|AVER|AVERA|AVERAG|AVG' +\r\n 'BACKGROUND|BACK|BACKG|BACKGR|BACKGRO|BACKGROU|BACKGROUN|BACKWARDS|BACKWARD|BASE64-DECODE|BASE64-ENCODE|BASE-ADE|BASE-KEY|BATCH-MODE|BATCH|BATCH-|BATCH-M|BATCH-MO|BATCH-MOD|BATCH-SIZE|BEFORE-HIDE|BEFORE-H|BEFORE-HI|BEFORE-HID|BEGIN-EVENT-GROUP|BEGINS|BELL|BETWEEN|BGCOLOR|BGC|BGCO|BGCOL|BGCOLO|BIG-ENDIAN|BINARY|BIND|BIND-WHERE|BLANK|BLOCK-ITERATION-DISPLAY|BORDER-BOTTOM-CHARS|BORDER-B|BORDER-BO|BORDER-BOT|BORDER-BOTT|BORDER-BOTTO|BORDER-BOTTOM-PIXELS|BORDER-BOTTOM-P|BORDER-BOTTOM-PI|BORDER-BOTTOM-PIX|BORDER-BOTTOM-PIXE|BORDER-BOTTOM-PIXEL|BORDER-LEFT-CHARS|BORDER-L|BORDER-LE|BORDER-LEF|BORDER-LEFT|BORDER-LEFT-|BORDER-LEFT-C|BORDER-LEFT-CH|BORDER-LEFT-CHA|BORDER-LEFT-CHAR|BORDER-LEFT-PIXELS|BORDER-LEFT-P|BORDER-LEFT-PI|BORDER-LEFT-PIX|BORDER-LEFT-PIXE|BORDER-LEFT-PIXEL|BORDER-RIGHT-CHARS|BORDER-R|BORDER-RI|BORDER-RIG|BORDER-RIGH|BORDER-RIGHT|BORDER-RIGHT-|BORDER-RIGHT-C|BORDER-RIGHT-CH|BORDER-RIGHT-CHA|BORDER-RIGHT-CHAR|BORDER-RIGHT-PIXELS|BORDER-RIGHT-P|BORDER-RIGHT-PI|BORDER-RIGHT-PIX|BORDER-RIGHT-PIXE|BORDER-RIGHT-PIXEL|BORDER-TOP-CHARS|BORDER-T|BORDER-TO|BORDER-TOP|BORDER-TOP-|BORDER-TOP-C|BORDER-TOP-CH|BORDER-TOP-CHA|BORDER-TOP-CHAR|BORDER-TOP-PIXELS|BORDER-TOP-P|BORDER-TOP-PI|BORDER-TOP-PIX|BORDER-TOP-PIXE|BORDER-TOP-PIXEL|BOX|BOX-SELECTABLE|BOX-SELECT|BOX-SELECTA|BOX-SELECTAB|BOX-SELECTABL|BREAK|BROWSE|BUFFER|BUFFER-CHARS|BUFFER-COMPARE|BUFFER-COPY|BUFFER-CREATE|BUFFER-DELETE|BUFFER-FIELD|BUFFER-HANDLE|BUFFER-LINES|BUFFER-NAME|BUFFER-RELEASE|BUFFER-VALUE|BUTTON|BUTTONS|BUTTON|BY|BY-POINTER|BY-VARIANT-POINTER' + \r\n 'CACHE|CACHE-SIZE|CALL|CALL-NAME|CALL-TYPE|CANCEL-BREAK|CANCEL-BUTTON|CAN-CREATE|CAN-DELETE|CAN-DO|CAN-FIND|CAN-QUERY|CAN-READ|CAN-SET|CAN-WRITE|CAPS|CAREFUL-PAINT|CASE|CASE-SENSITIVE|CASE-SEN|CASE-SENS|CASE-SENSI|CASE-SENSIT|CASE-SENSITI|CASE-SENSITIV|CAST|CATCH|CDECL|CENTERED|CENTER|CENTERE|CHAINED|CHARACTER_LENGTH|CHARSET|CHECK|CHECKED|CHOOSE|CHR|CLASS|CLASS-TYPE|CLEAR|CLEAR-APPL-CONTEXT|CLEAR-LOG|CLEAR-SELECTION|CLEAR-SELECT|CLEAR-SELECTI|CLEAR-SELECTIO|CLEAR-SORT-ARROWS|CLEAR-SORT-ARROW|CLIENT-CONNECTION-ID|CLIENT-PRINCIPAL|CLIENT-TTY|CLIENT-TYPE|CLIENT-WORKSTATION|CLIPBOARD|CLOSE|CLOSE-LOG|CODE|CODEBASE-LOCATOR|CODEPAGE|CODEPAGE-CONVERT|COLLATE|COL-OF|COLON|COLON-ALIGNED|COLON-ALIGN|COLON-ALIGNE|COLOR|COLOR-TABLE|COLUMN|COL|COLU|COLUM|COLUMN-BGCOLOR|COLUMN-DCOLOR|COLUMN-FGCOLOR|COLUMN-FONT|COLUMN-LABEL|COLUMN-LAB|COLUMN-LABE|COLUMN-MOVABLE|COLUMN-OF|COLUMN-PFCOLOR|COLUMN-READ-ONLY|COLUMN-RESIZABLE|COLUMNS|COLUMN-SCROLLING|COMBO-BOX|COMMAND|COMPARES|COMPILE|COMPILER|COMPLETE|COM-SELF|CONFIG-NAME|CONNECT|CONNECTED|CONSTRUCTOR|CONTAINS|CONTENTS|CONTEXT|CONTEXT-HELP|CONTEXT-HELP-FILE|CONTEXT-HELP-ID|CONTEXT-POPUP|CONTROL|CONTROL-BOX|CONTROL-FRAME|CONVERT|CONVERT-3D-COLORS|CONVERT-TO-OFFSET|CONVERT-TO-OFFS|CONVERT-TO-OFFSE|COPY-DATASET|COPY-LOB|COPY-SAX-ATTRIBUTES|COPY-TEMP-TABLE|COUNT|COUNT-OF|CPCASE|CPCOLL|CPINTERNAL|CPLOG|CPPRINT|CPRCODEIN|CPRCODEOUT|CPSTREAM|CPTERM|CRC-VALUE|CREATE|CREATE-LIKE|CREATE-LIKE-SEQUENTIAL|CREATE-NODE-NAMESPACE|CREATE-RESULT-LIST-ENTRY|CREATE-TEST-FILE|CURRENT|CURRENT_DATE|CURRENT_DATE|CURRENT-CHANGED|CURRENT-COLUMN|CURRENT-ENVIRONMENT|CURRENT-ENV|CURRENT-ENVI|CURRENT-ENVIR|CURRENT-ENVIRO|CURRENT-ENVIRON|CURRENT-ENVIRONM|CURRENT-ENVIRONME|CURRENT-ENVIRONMEN|CURRENT-ITERATION|CURRENT-LANGUAGE|CURRENT-LANG|CURRENT-LANGU|CURRENT-LANGUA|CURRENT-LANGUAG|CURRENT-QUERY|CURRENT-RESULT-ROW|CURRENT-ROW-MODIFIED|CURRENT-VALUE|CURRENT-WINDOW|CURSOR|CURS|CURSO|CURSOR-CHAR|CURSOR-LINE|CURSOR-OFFSET' + 'DATABASE|DATA-BIND|DATA-ENTRY-RETURN|DATA-ENTRY-RET|DATA-ENTRY-RETU|DATA-ENTRY-RETUR|DATA-RELATION|DATA-REL|DATA-RELA|DATA-RELAT|DATA-RELATI|DATA-RELATIO|DATASERVERS|DATASET|DATASET-HANDLE|DATA-SOURCE|DATA-SOURCE-COMPLETE-MAP|DATA-SOURCE-MODIFIED|DATA-SOURCE-ROWID|DATA-TYPE|DATA-T|DATA-TY|DATA-TYP|DATE-FORMAT|DATE-F|DATE-FO|DATE-FOR|DATE-FORM|DATE-FORMA|DAY|DBCODEPAGE|DBCOLLATION|DBNAME|DBPARAM|DB-REFERENCES|DBRESTRICTIONS|DBREST|DBRESTR|DBRESTRI|DBRESTRIC|DBRESTRICT|DBRESTRICTI|DBRESTRICTIO|DBRESTRICTION|DBTASKID|DBTYPE|DBVERSION|DBVERS|DBVERSI|DBVERSIO|DCOLOR|DDE|DDE-ERROR|DDE-ID|DDE-I|DDE-ITEM|DDE-NAME|DDE-TOPIC|DEBLANK|DEBUG|DEBU|DEBUG-ALERT|DEBUGGER|DEBUG-LIST|DECIMALS|DECLARE|DECLARE-NAMESPACE|DECRYPT|DEFAULT|DEFAULT-BUFFER-HANDLE|DEFAULT-BUTTON|DEFAUT-B|DEFAUT-BU|DEFAUT-BUT|DEFAUT-BUTT|DEFAUT-BUTTO|DEFAULT-COMMIT|DEFAULT-EXTENSION|DEFAULT-EX|DEFAULT-EXT|DEFAULT-EXTE|DEFAULT-EXTEN|DEFAULT-EXTENS|DEFAULT-EXTENSI|DEFAULT-EXTENSIO|DEFAULT-NOXLATE|DEFAULT-NOXL|DEFAULT-NOXLA|DEFAULT-NOXLAT|DEFAULT-VALUE|DEFAULT-WINDOW|DEFINE|DEF|DEFI|DEFIN|DEFINED|DEFINE-USER-EVENT-MANAGER|DELETE|DEL|DELE|DELET|DELETE-CHARACTER|DELETE-CHAR|DELETE-CHARA|DELETE-CHARAC|DELETE-CHARACT|DELETE-CHARACTE|DELETE-CURRENT-ROW|DELETE-LINE|DELETE-RESULT-LIST-ENTRY|DELETE-SELECTED-ROW|DELETE-SELECTED-ROWS|DELIMITER|DESC|DESCENDING|DESC|DESCE|DESCEN|DESCEND|DESCENDI|DESCENDIN|DESELECT-FOCUSED-ROW|DESELECTION|DESELECT-ROWS|DESELECT-SELECTED-ROW|DESTRUCTOR|DIALOG-BOX|DICTIONARY|DICT|DICTI|DICTIO|DICTION|DICTIONA|DICTIONAR|DIR|DISABLE|DISABLE-AUTO-ZAP|DISABLED|DISABLE-DUMP-TRIGGERS|DISABLE-LOAD-TRIGGERS|DISCONNECT|DISCON|DISCONN|DISCONNE|DISCONNEC|DISP|DISPLAY|DISP|DISPL|DISPLA|DISPLAY-MESSAGE|DISPLAY-TYPE|DISPLAY-T|DISPLAY-TY|DISPLAY-TYP|DISTINCT|DO|DOMAIN-DESCRIPTION|DOMAIN-NAME|DOMAIN-TYPE|DOS|DOUBLE|DOWN|DRAG-ENABLED|DROP|DROP-DOWN|DROP-DOWN-LIST|DROP-FILE-NOTIFY|DROP-TARGET|DUMP|DYNAMIC|DYNAMIC-FUNCTION' + \r\n 'EACH|ECHO|EDGE-CHARS|EDGE|EDGE-|EDGE-C|EDGE-CH|EDGE-CHA|EDGE-CHAR|EDGE-PIXELS|EDGE-P|EDGE-PI|EDGE-PIX|EDGE-PIXE|EDGE-PIXEL|EDIT-CAN-PASTE|EDIT-CAN-UNDO|EDIT-CLEAR|EDIT-COPY|EDIT-CUT|EDITING|EDITOR|EDIT-PASTE|EDIT-UNDO|ELSE|EMPTY|EMPTY-TEMP-TABLE|ENABLE|ENABLED-FIELDS|ENCODE|ENCRYPT|ENCRYPT-AUDIT-MAC-KEY|ENCRYPTION-SALT|END|END-DOCUMENT|END-ELEMENT|END-EVENT-GROUP|END-FILE-DROP|ENDKEY|END-KEY|END-MOVE|END-RESIZE|END-ROW-RESIZE|END-USER-PROMPT|ENTERED|ENTRY|EQ|ERROR|ERROR-COLUMN|ERROR-COL|ERROR-COLU|ERROR-COLUM|ERROR-ROW|ERROR-STACK-TRACE|ERROR-STATUS|ERROR-STAT|ERROR-STATU|ESCAPE|ETIME|EVENT-GROUP-ID|EVENT-PROCEDURE|EVENT-PROCEDURE-CONTEXT|EVENTS|EVENT|EVENT-TYPE|EVENT-T|EVENT-TY|EVENT-TYP|EXCEPT|EXCLUSIVE-ID|EXCLUSIVE-LOCK|EXCLUSIVE|EXCLUSIVE-|EXCLUSIVE-L|EXCLUSIVE-LO|EXCLUSIVE-LOC|EXCLUSIVE-WEB-USER|EXECUTE|EXISTS|EXP|EXPAND|EXPANDABLE|EXPLICIT|EXPORT|EXPORT-PRINCIPAL|EXTENDED|EXTENT|EXTERNAL' + \r\n 'FALSE|FETCH|FETCH-SELECTED-ROW|FGCOLOR|FGC|FGCO|FGCOL|FGCOLO|FIELD|FIELDS|FIELD|FILE|FILE-CREATE-DATE|FILE-CREATE-TIME|FILE-INFORMATION|FILE-INFO|FILE-INFOR|FILE-INFORM|FILE-INFORMA|FILE-INFORMAT|FILE-INFORMATI|FILE-INFORMATIO|FILE-MOD-DATE|FILE-MOD-TIME|FILENAME|FILE-NAME|FILE-OFFSET|FILE-OFF|FILE-OFFS|FILE-OFFSE|FILE-SIZE|FILE-TYPE|FILL|FILLED|FILL-IN|FILTERS|FINAL|FINALLY|FIND|FIND-BY-ROWID|FIND-CASE-SENSITIVE|FIND-CURRENT|FINDER|FIND-FIRST|FIND-GLOBAL|FIND-LAST|FIND-NEXT-OCCURRENCE|FIND-PREV-OCCURRENCE|FIND-SELECT|FIND-UNIQUE|FIND-WRAP-AROUND|FIRST|FIRST-ASYNCH-REQUEST|FIRST-CHILD|FIRST-COLUMN|FIRST-FORM|FIRST-OBJECT|FIRST-OF|FIRST-PROCEDURE|FIRST-PROC|FIRST-PROCE|FIRST-PROCED|FIRST-PROCEDU|FIRST-PROCEDUR|FIRST-SERVER|FIRST-TAB-ITEM|FIRST-TAB-I|FIRST-TAB-IT|FIRST-TAB-ITE|FIT-LAST-COLUMN|FIXED-ONLY|FLAT-BUTTON|FLOAT|FOCUS|FOCUSED-ROW|FOCUSED-ROW-SELECTED|FONT|FONT-TABLE|FOR|FORCE-FILE|FOREGROUND|FORE|FOREG|FOREGR|FOREGRO|FOREGROU|FOREGROUN|FORM|FORMAT|FORM|FORMA|FORMATTED|FORMATTE|FORM-LONG-INPUT|FORWARD|FORWARDS|FORWARD|FRAGMENT|FRAGMEN|FRAME|FRAM|FRAME-COL|FRAME-DB|FRAME-DOWN|FRAME-FIELD|FRAME-FILE|FRAME-INDEX|FRAME-INDE|FRAME-LINE|FRAME-NAME|FRAME-ROW|FRAME-SPACING|FRAME-SPA|FRAME-SPAC|FRAME-SPACI|FRAME-SPACIN|FRAME-VALUE|FRAME-VAL|FRAME-VALU|FRAME-X|FRAME-Y|FREQUENCY|FROM|FROM-CHARS|FROM-C|FROM-CH|FROM-CHA|FROM-CHAR|FROM-CURRENT|FROM-CUR|FROM-CURR|FROM-CURRE|FROM-CURREN|FROM-PIXELS|FROM-P|FROM-PI|FROM-PIX|FROM-PIXE|FROM-PIXEL|FULL-HEIGHT-CHARS|FULL-HEIGHT|FULL-HEIGHT-|FULL-HEIGHT-C|FULL-HEIGHT-CH|FULL-HEIGHT-CHA|FULL-HEIGHT-CHAR|FULL-HEIGHT-PIXELS|FULL-HEIGHT-P|FULL-HEIGHT-PI|FULL-HEIGHT-PIX|FULL-HEIGHT-PIXE|FULL-HEIGHT-PIXEL|FULL-PATHNAME|FULL-PATHN|FULL-PATHNA|FULL-PATHNAM|FULL-WIDTH-CHARS|FULL-WIDTH|FULL-WIDTH-|FULL-WIDTH-C|FULL-WIDTH-CH|FULL-WIDTH-CHA|FULL-WIDTH-CHAR|FULL-WIDTH-PIXELS|FULL-WIDTH-P|FULL-WIDTH-PI|FULL-WIDTH-PIX|FULL-WIDTH-PIXE|FULL-WIDTH-PIXEL|FUNCTION|FUNCTION-CALL-TYPE' + \r\n 'GATEWAYS|GATEWAY|GE|GENERATE-MD5|GENERATE-PBE-KEY|GENERATE-PBE-SALT|GENERATE-RANDOM-KEY|GENERATE-UUID|GET|GET-ATTR-CALL-TYPE|GET-ATTRIBUTE-NODE|GET-BINARY-DATA|GET-BLUE-VALUE|GET-BLUE|GET-BLUE-|GET-BLUE-V|GET-BLUE-VA|GET-BLUE-VAL|GET-BLUE-VALU|GET-BROWSE-COLUMN|GET-BUFFER-HANDLEGETBYTE|GET-BYTE|GET-CALLBACK-PROC-CONTEXT|GET-CALLBACK-PROC-NAME|GET-CGI-LIST|GET-CGI-LONG-VALUE|GET-CGI-VALUE|GET-CODEPAGES|GET-COLLATIONS|GET-CONFIG-VALUE|GET-CURRENT|GET-DOUBLE|GET-DROPPED-FILE|GET-DYNAMIC|GET-ERROR-COLUMN|GET-ERROR-ROW|GET-FILE|GET-FILE-NAME|GET-FILE-OFFSET|GET-FILE-OFFSE|GET-FIRST|GET-FLOAT|GET-GREEN-VALUE|GET-GREEN|GET-GREEN-|GET-GREEN-V|GET-GREEN-VA|GET-GREEN-VAL|GET-GREEN-VALU|GET-INDEX-BY-NAMESPACE-NAME|GET-INDEX-BY-QNAME|GET-INT64|GET-ITERATION|GET-KEY-VALUE|GET-KEY-VAL|GET-KEY-VALU|GET-LAST|GET-LOCALNAME-BY-INDEX|GET-LONG|GET-MESSAGE|GET-NEXT|GET-NUMBER|GET-POINTER-VALUE|GET-PREV|GET-PRINTERS|GET-PROPERTY|GET-QNAME-BY-INDEX|GET-RED-VALUE|GET-RED|GET-RED-|GET-RED-V|GET-RED-VA|GET-RED-VAL|GET-RED-VALU|GET-REPOSITIONED-ROW|GET-RGB-VALUE|GET-SELECTED-WIDGET|GET-SELECTED|GET-SELECTED-|GET-SELECTED-W|GET-SELECTED-WI|GET-SELECTED-WID|GET-SELECTED-WIDG|GET-SELECTED-WIDGE|GET-SHORT|GET-SIGNATURE|GET-SIZE|GET-STRING|GET-TAB-ITEM|GET-TEXT-HEIGHT-CHARS|GET-TEXT-HEIGHT|GET-TEXT-HEIGHT-|GET-TEXT-HEIGHT-C|GET-TEXT-HEIGHT-CH|GET-TEXT-HEIGHT-CHA|GET-TEXT-HEIGHT-CHAR|GET-TEXT-HEIGHT-PIXELS|GET-TEXT-HEIGHT-P|GET-TEXT-HEIGHT-PI|GET-TEXT-HEIGHT-PIX|GET-TEXT-HEIGHT-PIXE|GET-TEXT-HEIGHT-PIXEL|GET-TEXT-WIDTH-CHARS|GET-TEXT-WIDTH|GET-TEXT-WIDTH-|GET-TEXT-WIDTH-C|GET-TEXT-WIDTH-CH|GET-TEXT-WIDTH-CHA|GET-TEXT-WIDTH-CHAR|GET-TEXT-WIDTH-PIXELS|GET-TEXT-WIDTH-P|GET-TEXT-WIDTH-PI|GET-TEXT-WIDTH-PIX|GET-TEXT-WIDTH-PIXE|GET-TEXT-WIDTH-PIXEL|GET-TYPE-BY-INDEX|GET-TYPE-BY-NAMESPACE-NAME|GET-TYPE-BY-QNAME|GET-UNSIGNED-LONG|GET-UNSIGNED-SHORT|GET-URI-BY-INDEX|GET-VALUE-BY-INDEX|GET-VALUE-BY-NAMESPACE-NAME|GET-VALUE-BY-QNAME|GET-WAIT-STATE|GLOBAL|GO-ON|GO-PENDING|GO-PEND|GO-PENDI|GO-PENDIN|GRANT|GRAPHIC-EDGE|GRAPHIC-E|GRAPHIC-ED|GRAPHIC-EDG|GRID-FACTOR-HORIZONTAL|GRID-FACTOR-H|GRID-FACTOR-HO|GRID-FACTOR-HOR|GRID-FACTOR-HORI|GRID-FACTOR-HORIZ|GRID-FACTOR-HORIZO|GRID-FACTOR-HORIZON|GRID-FACTOR-HORIZONT|GRID-FACTOR-HORIZONTA|GRID-FACTOR-VERTICAL|GRID-FACTOR-V|GRID-FACTOR-VE|GRID-FACTOR-VER|GRID-FACTOR-VERT|GRID-FACTOR-VERT|GRID-FACTOR-VERTI|GRID-FACTOR-VERTIC|GRID-FACTOR-VERTICA|GRID-SNAP|GRID-UNIT-HEIGHT-CHARS|GRID-UNIT-HEIGHT|GRID-UNIT-HEIGHT-|GRID-UNIT-HEIGHT-C|GRID-UNIT-HEIGHT-CH|GRID-UNIT-HEIGHT-CHA|GRID-UNIT-HEIGHT-PIXELS|GRID-UNIT-HEIGHT-P|GRID-UNIT-HEIGHT-PI|GRID-UNIT-HEIGHT-PIX|GRID-UNIT-HEIGHT-PIXE|GRID-UNIT-HEIGHT-PIXEL|GRID-UNIT-WIDTH-CHARS|GRID-UNIT-WIDTH|GRID-UNIT-WIDTH-|GRID-UNIT-WIDTH-C|GRID-UNIT-WIDTH-CH|GRID-UNIT-WIDTH-CHA|GRID-UNIT-WIDTH-CHAR|GRID-UNIT-WIDTH-PIXELS|GRID-UNIT-WIDTH-P|GRID-UNIT-WIDTH-PI|GRID-UNIT-WIDTH-PIX|GRID-UNIT-WIDTH-PIXE|GRID-UNIT-WIDTH-PIXEL|GRID-VISIBLE|GROUP|GT|GUID' + \r\n 'HANDLER|HAS-RECORDS|HAVING|HEADER|HEIGHT-CHARS|HEIGHT|HEIGHT-|HEIGHT-C|HEIGHT-CH|HEIGHT-CHA|HEIGHT-CHAR|HEIGHT-PIXELS|HEIGHT-P|HEIGHT-PI|HEIGHT-PIX|HEIGHT-PIXE|HEIGHT-PIXEL|HELP|HEX-DECODE|HEX-ENCODE|HIDDEN|HIDE|HORIZONTAL|HORI|HORIZ|HORIZO|HORIZON|HORIZONT|HORIZONTA|HOST-BYTE-ORDER|HTML-CHARSET|HTML-END-OF-LINE|HTML-END-OF-PAGE|HTML-FRAME-BEGIN|HTML-FRAME-END|HTML-HEADER-BEGIN|HTML-HEADER-END|HTML-TITLE-BEGIN|HTML-TITLE-END|HWND|HEIGHT|HEIGHT-P' + \r\n 'ICON|IF|IMAGE|IMAGE-DOWN|IMAGE-INSENSITIVE|IMAGE-SIZE|IMAGE-SIZE-CHARS|IMAGE-SIZE-C|IMAGE-SIZE-CH|IMAGE-SIZE-CHA|IMAGE-SIZE-CHAR|IMAGE-SIZE-PIXELS|IMAGE-SIZE-P|IMAGE-SIZE-PI|IMAGE-SIZE-PIX|IMAGE-SIZE-PIXE|IMAGE-SIZE-PIXEL|IMAGE-UP|IMMEDIATE-DISPLAY|IMPLEMENTS|IMPORT|IMPORT-PRINCIPAL|IN|INCREMENT-EXCLUSIVE-ID|INDEX|INDEXED-REPOSITION|INDEX-HINT|INDEX-INFORMATION|INDICATOR|INFORMATION|INFO|INFOR|INFORM|INFORMA|INFORMAT|INFORMATI|INFORMATIO|IN-HANDLE|INHERIT-BGCOLOR|INHERIT-BGC|INHERIT-BGCO|INHERIT-BGCOL|INHERIT-BGCOLO|INHERIT-FGCOLOR|INHERIT-FGC|INHERIT-FGCO|INHERIT-FGCOL|INHERIT-FGCOLO|INHERITS|INITIAL|INIT|INITI|INITIA|INITIAL-DIR|INITIAL-FILTER|INITIALIZE-DOCUMENT-TYPE|INITIATE|INNER-CHARS|INNER-LINES|INPUT|INPUT-OUTPUT|INPUT-O|INPUT-OU|INPUT-OUT|INPUT-OUTP|INPUT-OUTPU|INPUT-VALUE|INSERT|INSERT-ATTRIBUTE|INSERT-BACKTAB|INSERT-B|INSERT-BA|INSERT-BAC|INSERT-BACK|INSERT-BACKT|INSERT-BACKTA|INSERT-FILE|INSERT-ROW|INSERT-STRING|INSERT-TAB|INSERT-T|INSERT-TA|INTERFACE|INTERNAL-ENTRIES|INTO|INVOKE|IS|IS-ATTR-SPACE|IS-ATTR|IS-ATTR-|IS-ATTR-S|IS-ATTR-SP|IS-ATTR-SPA|IS-ATTR-SPAC|IS-CLASS|IS-CLAS|IS-LEAD-BYTE|IS-ATTR|IS-OPEN|IS-PARAMETER-SET|IS-ROW-SELECTED|IS-SELECTED|ITEM|ITEMS-PER-ROW' + \r\n 'JOIN|JOIN-BY-SQLDB' + \r\n 'KBLABEL|KEEP-CONNECTION-OPEN|KEEP-FRAME-Z-ORDER|KEEP-FRAME-Z|KEEP-FRAME-Z-|KEEP-FRAME-Z-O|KEEP-FRAME-Z-OR|KEEP-FRAME-Z-ORD|KEEP-FRAME-Z-ORDE|KEEP-MESSAGES|KEEP-SECURITY-CACHE|KEEP-TAB-ORDER|KEY|KEYCODE|KEY-CODE|KEYFUNCTION|KEYFUNC|KEYFUNCT|KEYFUNCTI|KEYFUNCTIO|KEY-FUNCTION|KEY-FUNC|KEY-FUNCT|KEY-FUNCTI|KEY-FUNCTIO|KEYLABEL|KEY-LABEL|KEYS|KEYWORD|KEYWORD-ALL' + \r\n 'LABEL|LABEL-BGCOLOR|LABEL-BGC|LABEL-BGCO|LABEL-BGCOL|LABEL-BGCOLO|LABEL-DCOLOR|LABEL-DC|LABEL-DCO|LABEL-DCOL|LABEL-DCOLO|LABEL-FGCOLOR|LABEL-FGC|LABEL-FGCO|LABEL-FGCOL|LABEL-FGCOLO|LABEL-FONT|LABEL-PFCOLOR|LABEL-PFC|LABEL-PFCO|LABEL-PFCOL|LABEL-PFCOLO|LABELS|LANDSCAPE|LANGUAGES|LANGUAGE|LARGE|LARGE-TO-SMALL|LAST|LAST-ASYNCH-REQUEST|LAST-BATCH|LAST-CHILD|LAST-EVENT|LAST-EVEN|LAST-FORM|LASTKEY|LAST-KEY|LAST-OBJECT|LAST-OF|LAST-PROCEDURE|LAST-PROCE|LAST-PROCED|LAST-PROCEDU|LAST-PROCEDUR|LAST-SERVER|LAST-TAB-ITEM|LAST-TAB-I|LAST-TAB-IT|LAST-TAB-ITE|LC|LDBNAME|LE|LEAVE|LEFT-ALIGNED|LEFT-ALIGN|LEFT-ALIGNE|LEFT-TRIM|LENGTH|LIBRARY|LIKE|LIKE-SEQUENTIAL|LINE|LINE-COUNTER|LINE-COUNT|LINE-COUNTE|LIST-EVENTS|LISTING|LISTI|LISTIN|LIST-ITEM-PAIRS|LIST-ITEMS|LIST-PROPERTY-NAMES|LIST-QUERY-ATTRS|LIST-SET-ATTRS|LIST-WIDGETS|LITERAL-QUESTION|LITTLE-ENDIAN|LOAD|LOAD-DOMAINS|LOAD-ICON|LOAD-IMAGE|LOAD-IMAGE-DOWN|LOAD-IMAGE-INSENSITIVE|LOAD-IMAGE-UP|LOAD-MOUSE-POINTER|LOAD-MOUSE-P|LOAD-MOUSE-PO|LOAD-MOUSE-POI|LOAD-MOUSE-POIN|LOAD-MOUSE-POINT|LOAD-MOUSE-POINTE|LOAD-PICTURE|LOAD-SMALL-ICON|LOCAL-NAME|LOCATOR-COLUMN-NUMBER|LOCATOR-LINE-NUMBER|LOCATOR-PUBLIC-ID|LOCATOR-SYSTEM-ID|LOCATOR-TYPE|LOCKED|LOCK-REGISTRATION|LOG|LOG-AUDIT-EVENT|LOGIN-EXPIRATION-TIMESTAMP|LOGIN-HOST|LOGIN-STATE|LOG-MANAGER|LOGOUT|LOOKAHEAD|LOOKUP|LT|LABEL-BGCOL|LABEL-BGCOLO' + \r\n 'MACHINE-CLASS|MANDATORY|MANUAL-HIGHLIGHT|MAP|MARGIN-EXTRA|MARGIN-HEIGHT-CHARS|MARGIN-HEIGHT|MARGIN-HEIGHT-|MARGIN-HEIGHT-C|MARGIN-HEIGHT-CH|MARGIN-HEIGHT-CHA|MARGIN-HEIGHT-CHAR|MARGIN-HEIGHT-PIXELS|MARGIN-HEIGHT-P|MARGIN-HEIGHT-PI|MARGIN-HEIGHT-PIX|MARGIN-HEIGHT-PIXE|MARGIN-HEIGHT-PIXEL|MARGIN-WIDTH-CHARS|MARGIN-WIDTH|MARGIN-WIDTH-|MARGIN-WIDTH-C|MARGIN-WIDTH-CH|MARGIN-WIDTH-CHA|MARGIN-WIDTH-CHAR|MARGIN-WIDTH-PIXELS|MARGIN-WIDTH-P|MARGIN-WIDTH-PI|MARGIN-WIDTH-PIX|MARGIN-WIDTH-PIXE|MARGIN-WIDTH-PIXEL|MARK-NEW|MARK-ROW-STATE|MATCHES|MAX|MAX-BUTTON|MAX-CHARS|MAX-DATA-GUESS|MAX-HEIGHT|MAX-HEIGHT-CHARS|MAX-HEIGHT-C|MAX-HEIGHT-CH|MAX-HEIGHT-CHA|MAX-HEIGHT-CHAR|MAX-HEIGHT-PIXELS|MAX-HEIGHT-P|MAX-HEIGHT-PI|MAX-HEIGHT-PIX|MAX-HEIGHT-PIXE|MAX-HEIGHT-PIXEL|MAXIMIZE|MAXIMUM|MAX|MAXI|MAXIM|MAXIMU|MAXIMUM-LEVEL|MAX-ROWS|MAX-SIZE|MAX-VALUE|MAX-VAL|MAX-VALU|MAX-WIDTH|MAX-WIDTH-CHARS|MAX-WIDTH|MAX-WIDTH-|MAX-WIDTH-C|MAX-WIDTH-CH|MAX-WIDTH-CHA|MAX-WIDTH-CHAR|MAX-WIDTH-PIXELS|MAX-WIDTH-P|MAX-WIDTH-PI|MAX-WIDTH-PIX|MAX-WIDTH-PIXE|MAX-WIDTH-PIXEL|MD5-DIGEST|MEMBER|MEMPTR-TO-NODE-VALUE|MENU|MENUBAR|MENU-BAR|MENU-ITEM|MENU-KEY|MENU-K|MENU-KE|MENU-MOUSE|MENU-M|MENU-MO|MENU-MOU|MENU-MOUS|MERGE-BY-FIELD|MESSAGE|MESSAGE-AREA|MESSAGE-AREA-FONT|MESSAGE-LINES|METHOD|MIN|MIN-BUTTON|MIN-COLUMN-WIDTH-CHARS|MIN-COLUMN-WIDTH-C|MIN-COLUMN-WIDTH-CH|MIN-COLUMN-WIDTH-CHA|MIN-COLUMN-WIDTH-CHAR|MIN-COLUMN-WIDTH-PIXELS|MIN-COLUMN-WIDTH-P|MIN-COLUMN-WIDTH-PI|MIN-COLUMN-WIDTH-PIX|MIN-COLUMN-WIDTH-PIXE|MIN-COLUMN-WIDTH-PIXEL|MIN-HEIGHT-CHARS|MIN-HEIGHT|MIN-HEIGHT-|MIN-HEIGHT-C|MIN-HEIGHT-CH|MIN-HEIGHT-CHA|MIN-HEIGHT-CHAR|MIN-HEIGHT-PIXELS|MIN-HEIGHT-P|MIN-HEIGHT-PI|MIN-HEIGHT-PIX|MIN-HEIGHT-PIXE|MIN-HEIGHT-PIXEL|MINIMUM|MIN|MINI|MINIM|MINIMU|MIN-SIZE|MIN-VALUE|MIN-VAL|MIN-VALU|MIN-WIDTH-CHARS|MIN-WIDTH|MIN-WIDTH-|MIN-WIDTH-C|MIN-WIDTH-CH|MIN-WIDTH-CHA|MIN-WIDTH-CHAR|MIN-WIDTH-PIXELS|MIN-WIDTH-P|MIN-WIDTH-PI|MIN-WIDTH-PIX|MIN-WIDTH-PIXE|MIN-WIDTH-PIXEL|MODIFIED|MODULO|MOD|MODU|MODUL|MONTH|MOUSE|MOUSE-POINTER|MOUSE-P|MOUSE-PO|MOUSE-POI|MOUSE-POIN|MOUSE-POINT|MOUSE-POINTE|MOVABLE|MOVE-AFTER-TAB-ITEM|MOVE-AFTER|MOVE-AFTER-|MOVE-AFTER-T|MOVE-AFTER-TA|MOVE-AFTER-TAB|MOVE-AFTER-TAB-|MOVE-AFTER-TAB-I|MOVE-AFTER-TAB-IT|MOVE-AFTER-TAB-ITE|MOVE-BEFORE-TAB-ITEM|MOVE-BEFOR|MOVE-BEFORE|MOVE-BEFORE-|MOVE-BEFORE-T|MOVE-BEFORE-TA|MOVE-BEFORE-TAB|MOVE-BEFORE-TAB-|MOVE-BEFORE-TAB-I|MOVE-BEFORE-TAB-IT|MOVE-BEFORE-TAB-ITE|MOVE-COLUMN|MOVE-COL|MOVE-COLU|MOVE-COLUM|MOVE-TO-BOTTOM|MOVE-TO-B|MOVE-TO-BO|MOVE-TO-BOT|MOVE-TO-BOTT|MOVE-TO-BOTTO|MOVE-TO-EOF|MOVE-TO-TOP|MOVE-TO-T|MOVE-TO-TO|MPE|MULTI-COMPILE|MULTIPLE|MULTIPLE-KEY|MULTITASKING-INTERVAL|MUST-EXIST|MINIMUM' + \r\n 'NAME|NAMESPACE-PREFIX|NAMESPACE-URI|NATIVE|NE|NEEDS-APPSERVER-PROMPT|NEEDS-PROMPT|NEW|NEW-INSTANCE|NEW-ROW|NEXT|NEXT-COLUMN|NEXT-PROMPT|NEXT-ROWID|NEXT-SIBLING|NEXT-TAB-ITEM|NEXT-TAB-I|NEXT-TAB-IT|NEXT-TAB-ITE|NEXT-VALUE|NO|NO-APPLY|NO-ARRAY-MESSAGE|NO-ASSIGN|NO-ATTR-LIST|NO-ATTR|NO-ATTR-|NO-ATTR-L|NO-ATTR-LI|NO-ATTR-LIS|NO-ATTR-SPACE|NO-ATTR|NO-ATTR-|NO-ATTR-S|NO-ATTR-SP|NO-ATTR-SPA|NO-ATTR-SPAC|NO-AUTO-VALIDATE|NO-BIND-WHERE|NO-BOX|NO-CONSOLE|NO-CONVERT|NO-CONVERT-3D-COLORS|NO-CURRENT-VALUE|NO-DEBUG|NODE-VALUE-TO-MEMPTR|NO-DRAG|NO-ECHO|NO-EMPTY-SPACE|NO-ERROR|NO-FILL|NO-F|NO-FI|NO-FIL|NO-FOCUS|NO-HELP|NO-HIDE|NO-INDEX-HINT|NO-INHERIT-BGCOLOR|NO-INHERIT-BGC|NO-INHERIT-BGCO|NO-INHERIT-FGCOLOR|NO-INHERIT-FGC|NO-INHERIT-FGCO|NO-INHERIT-FGCOL|NO-INHERIT-FGCOLO|NO-JOIN-BY-SQLDB|NO-LABELS|NO-LABE|NO-LOBS|NO-LOCK|NO-LOOKAHEAD|NO-MAP|NO-MESSAGE|NO-MES|NO-MESS|NO-MESSA|NO-MESSAG|NONAMESPACE-SCHEMA-LOCATION|NONE|NO-PAUSE|NO-PREFETCH|NO-PREFE|NO-PREFET|NO-PREFETC|NORMALIZE|NO-ROW-MARKERS|NO-SCROLLBAR-VERTICAL|NO-SEPARATE-CONNECTION|NO-SEPARATORS|NOT|NO-TAB-STOP|NOT-ACTIVE|NO-UNDERLINE|NO-UND|NO-UNDE|NO-UNDER|NO-UNDERL|NO-UNDERLI|NO-UNDERLIN|NO-UNDO|NO-VALIDATE|NO-VAL|NO-VALI|NO-VALID|NO-VALIDA|NO-VALIDAT|NOW|NO-WAIT|NO-WORD-WRAP|NULL|NUM-ALIASES|NUM-ALI|NUM-ALIA|NUM-ALIAS|NUM-ALIASE|NUM-BUFFERS|NUM-BUTTONS|NUM-BUT|NUM-BUTT|NUM-BUTTO|NUM-BUTTON|NUM-COLUMNS|NUM-COL|NUM-COLU|NUM-COLUM|NUM-COLUMN|NUM-COPIES|NUM-DBS|NUM-DROPPED-FILES|NUM-ENTRIES|NUMERIC|NUMERIC-FORMAT|NUMERIC-F|NUMERIC-FO|NUMERIC-FOR|NUMERIC-FORM|NUMERIC-FORMA|NUM-FIELDS|NUM-FORMATS|NUM-ITEMS|NUM-ITERATIONS|NUM-LINES|NUM-LOCKED-COLUMNS|NUM-LOCKED-COL|NUM-LOCKED-COLU|NUM-LOCKED-COLUM|NUM-LOCKED-COLUMN|NUM-MESSAGES|NUM-PARAMETERS|NUM-REFERENCES|NUM-REPLACED|NUM-RESULTS|NUM-SELECTED-ROWS|NUM-SELECTED-WIDGETS|NUM-SELECTED|NUM-SELECTED-|NUM-SELECTED-W|NUM-SELECTED-WI|NUM-SELECTED-WID|NUM-SELECTED-WIDG|NUM-SELECTED-WIDGE|NUM-SELECTED-WIDGET|NUM-TABS|NUM-TO-RETAIN|NUM-VISIBLE-COLUMNS' + \r\n 'OCTET-LENGTH|OF|OFF|OK|OK-CANCEL|OLD|ON|ON-FRAME-BORDER|ON-FRAME|ON-FRAME-|ON-FRAME-B|ON-FRAME-BO|ON-FRAME-BOR|ON-FRAME-BORD|ON-FRAME-BORDE|OPEN|OPSYS|OPTION|OR|ORDERED-JOIN|ORDINAL|OS-APPEND|OS-COMMAND|OS-COPY|OS-CREATE-DIR|OS-DELETE|OS-DIR|OS-DRIVES|OS-DRIVE|OS-ERROR|OS-GETENV|OS-RENAME|OTHERWISE|OUTPUT|OVERLAY|OVERRIDE|OWNER' + \r\n 'PAGE|PAGE-BOTTOM|PAGE-BOT|PAGE-BOTT|PAGE-BOTTO|PAGED|PAGE-NUMBER|PAGE-NUM|PAGE-NUMB|PAGE-NUMBE|PAGE-SIZE|PAGE-TOP|PAGE-WIDTH|PAGE-WID|PAGE-WIDT|PARAMETER|PARAM|PARAME|PARAMET|PARAMETE|PARENT|PARSE-STATUS|PARTIAL-KEY|PASCAL|PASSWORD-FIELD|PATHNAME|PAUSE|PBE-HASH-ALGORITHM|PBE-HASH-ALG|PBE-HASH-ALGO|PBE-HASH-ALGOR|PBE-HASH-ALGORI|PBE-HASH-ALGORIT|PBE-HASH-ALGORITH|PBE-KEY-ROUNDS|PDBNAME|PERSISTENT|PERSIST|PERSISTE|PERSISTEN|PERSISTENT-CACHE-DISABLED|PFCOLOR|PFC|PFCO|PFCOL|PFCOLO|PIXELS|PIXELS-PER-COLUMN|PIXELS-PER-COL|PIXELS-PER-COLU|PIXELS-PER-COLUM|PIXELS-PER-ROW|POPUP-MENU|POPUP-M|POPUP-ME|POPUP-MEN|POPUP-ONLY|POPUP-O|POPUP-ON|POPUP-ONL|PORTRAIT|POSITION|PRECISION|PREFER-DATASET|PREPARED|PREPARE-STRING|PREPROCESS|PREPROC|PREPROCE|PREPROCES|PRESELECT|PRESEL|PRESELE|PRESELEC|PREV|PREV-COLUMN|PREV-SIBLING|PREV-TAB-ITEM|PREV-TAB-I|PREV-TAB-IT|PREV-TAB-ITE|PRIMARY|PRINTER|PRINTER-CONTROL-HANDLE|PRINTER-HDC|PRINTER-NAME|PRINTER-PORT|PRINTER-SETUP|PRIVATE|PRIVATE-DATA|PRIVATE-D|PRIVATE-DA|PRIVATE-DAT|PRIVILEGES|PROCEDURE|PROCE|PROCED|PROCEDU|PROCEDUR|PROCEDURE-CALL-TYPE|PROCESS|PROC-HANDLE|PROC-HA|PROC-HAN|PROC-HAND|PROC-HANDL|PROC-STATUS|PROC-ST|PROC-STA|PROC-STAT|PROC-STATU|proc-text|proc-text-buffer|PROFILER|PROGRAM-NAME|PROGRESS|PROGRESS-SOURCE|PROGRESS-S|PROGRESS-SO|PROGRESS-SOU|PROGRESS-SOUR|PROGRESS-SOURC|PROMPT|PROMPT-FOR|PROMPT-F|PROMPT-FO|PROMSGS|PROPATH|PROPERTY|PROTECTED|PROVERSION|PROVERS|PROVERSI|PROVERSIO|PROXY|PROXY-PASSWORD|PROXY-USERID|PUBLIC|PUBLIC-ID|PUBLISH|PUBLISHED-EVENTS|PUT|PUTBYTE|PUT-BYTE|PUT-DOUBLE|PUT-FLOAT|PUT-INT64|PUT-KEY-VALUE|PUT-KEY-VAL|PUT-KEY-VALU|PUT-LONG|PUT-SHORT|PUT-STRING|PUT-UNSIGNED-LONG' + \r\n 'QUERY|QUERY-CLOSE|QUERY-OFF-END|QUERY-OPEN|QUERY-PREPARE|QUERY-TUNING|QUESTION|QUIT|QUOTER' + \r\n 'RADIO-BUTTONS|RADIO-SET|RANDOM|RAW-TRANSFER|RCODE-INFORMATION|RCODE-INFO|RCODE-INFOR|RCODE-INFORM|RCODE-INFORMA|RCODE-INFORMAT|RCODE-INFORMATI|RCODE-INFORMATIO|READ-AVAILABLE|READ-EXACT-NUM|READ-FILE|READKEY|READ-ONLY|READ-XML|READ-XMLSCHEMA|REAL|RECORD-LENGTH|RECTANGLE|RECT|RECTA|RECTAN|RECTANG|RECTANGL|RECURSIVE|REFERENCE-ONLY|REFRESH|REFRESHABLE|REFRESH-AUDIT-POLICY|REGISTER-DOMAIN|RELEASE|REMOTE|REMOVE-EVENTS-PROCEDURE|REMOVE-SUPER-PROCEDURE|REPEAT|REPLACE|REPLACE-SELECTION-TEXT|REPOSITION|REPOSITION-BACKWARD|REPOSITION-FORWARD|REPOSITION-MODE|REPOSITION-TO-ROW|REPOSITION-TO-ROWID|REQUEST|RESET|RESIZABLE|RESIZA|RESIZAB|RESIZABL|RESIZE|RESTART-ROW|RESTART-ROWID|RETAIN|RETAIN-SHAPE|RETRY|RETRY-CANCEL|RETURN|RETURN-INSERTED|RETURN-INS|RETURN-INSE|RETURN-INSER|RETURN-INSERT|RETURN-INSERTE|RETURNS|RETURN-TO-START-DIR|RETURN-TO-START-DI|RETURN-VALUE|RETURN-VAL|RETURN-VALU|RETURN-VALUE-DATA-TYPE|REVERSE-FROM|REVERT|REVOKE|RGB-VALUE|RIGHT-ALIGNED|RETURN-ALIGN|RETURN-ALIGNE|RIGHT-TRIM|R-INDEX|ROLES|ROUND|ROUTINE-LEVEL|ROW|ROW-HEIGHT-CHARS|ROW-HEIGHT-PIXELS|ROW-MARKERS|ROW-OF|ROW-RESIZABLE|RULE|RUN|RUN-PROCEDURE' + \r\n 'SAVE|SAVE-AS|SAVE-FILE|SAX-COMPLETE|SAX-COMPLE|SAX-COMPLET|SAX-PARSE|SAX-PARSE-FIRST|SAX-PARSE-NEXT|SAX-PARSER-ERROR|SAX-RUNNING|SAX-UNINITIALIZED|SAX-WRITE-BEGIN|SAX-WRITE-COMPLETE|SAX-WRITE-CONTENT|SAX-WRITE-ELEMENT|SAX-WRITE-ERROR|SAX-WRITE-IDLE|SAX-WRITER|SAX-WRITE-TAG|SCHEMA|SCHEMA-LOCATION|SCHEMA-MARSHAL|SCHEMA-PATH|SCREEN|SCREEN-IO|SCREEN-LINES|SCREEN-VALUE|SCREEN-VAL|SCREEN-VALU|SCROLL|SCROLLABLE|SCROLLBAR-HORIZONTAL|SCROLLBAR-H|SCROLLBAR-HO|SCROLLBAR-HOR|SCROLLBAR-HORI|SCROLLBAR-HORIZ|SCROLLBAR-HORIZO|SCROLLBAR-HORIZON|SCROLLBAR-HORIZONT|SCROLLBAR-HORIZONTA|SCROLL-BARS|SCROLLBAR-VERTICAL|SCROLLBAR-V|SCROLLBAR-VE|SCROLLBAR-VER|SCROLLBAR-VERT|SCROLLBAR-VERTI|SCROLLBAR-VERTIC|SCROLLBAR-VERTICA|SCROLL-DELTA|SCROLLED-ROW-POSITION|SCROLLED-ROW-POS|SCROLLED-ROW-POSI|SCROLLED-ROW-POSIT|SCROLLED-ROW-POSITI|SCROLLED-ROW-POSITIO|SCROLLING|SCROLL-OFFSET|SCROLL-TO-CURRENT-ROW|SCROLL-TO-ITEM|SCROLL-TO-I|SCROLL-TO-IT|SCROLL-TO-ITE|SCROLL-TO-SELECTED-ROW|SDBNAME|SEAL|SEAL-TIMESTAMP|SEARCH|SEARCH-SELF|SEARCH-TARGET|SECTION|SECURITY-POLICY|SEEK|SELECT|SELECTABLE|SELECT-ALL|SELECTED|SELECT-FOCUSED-ROW|SELECTION|SELECTION-END|SELECTION-LIST|SELECTION-START|SELECTION-TEXT|SELECT-NEXT-ROW|SELECT-PREV-ROW|SELECT-ROW|SELF|SEND|send-sql-statement|send-sql|SENSITIVE|SEPARATE-CONNECTION|SEPARATOR-FGCOLOR|SEPARATORS|SERVER|SERVER-CONNECTION-BOUND|SERVER-CONNECTION-BOUND-REQUEST|SERVER-CONNECTION-CONTEXT|SERVER-CONNECTION-ID|SERVER-OPERATING-MODE|SESSION|SESSION-ID|SET|SET-APPL-CONTEXT|SET-ATTR-CALL-TYPE|SET-ATTRIBUTE-NODE|SET-BLUE-VALUE|SET-BLUE|SET-BLUE-|SET-BLUE-V|SET-BLUE-VA|SET-BLUE-VAL|SET-BLUE-VALU|SET-BREAK|SET-BUFFERS|SET-CALLBACK|SET-CLIENT|SET-COMMIT|SET-CONTENTS|SET-CURRENT-VALUE|SET-DB-CLIENT|SET-DYNAMIC|SET-EVENT-MANAGER-OPTION|SET-GREEN-VALUE|SET-GREEN|SET-GREEN-|SET-GREEN-V|SET-GREEN-VA|SET-GREEN-VAL|SET-GREEN-VALU|SET-INPUT-SOURCE|SET-OPTION|SET-OUTPUT-DESTINATION|SET-PARAMETER|SET-POINTER-VALUE|SET-PROPERTY|SET-RED-VALUE|SET-RED|SET-RED-|SET-RED-V|SET-RED-VA|SET-RED-VAL|SET-RED-VALU|SET-REPOSITIONED-ROW|SET-RGB-VALUE|SET-ROLLBACK|SET-SELECTION|SET-SIZE|SET-SORT-ARROW|SETUSERID|SETUSER|SETUSERI|SET-WAIT-STATE|SHA1-DIGEST|SHARED|SHARE-LOCK|SHARE|SHARE-|SHARE-L|SHARE-LO|SHARE-LOC|SHOW-IN-TASKBAR|SHOW-STATS|SHOW-STAT|SIDE-LABEL-HANDLE|SIDE-LABEL-H|SIDE-LABEL-HA|SIDE-LABEL-HAN|SIDE-LABEL-HAND|SIDE-LABEL-HANDL|SIDE-LABELS|SIDE-LAB|SIDE-LABE|SIDE-LABEL|SILENT|SIMPLE|SINGLE|SIZE|SIZE-CHARS|SIZE-C|SIZE-CH|SIZE-CHA|SIZE-CHAR|SIZE-PIXELS|SIZE-P|SIZE-PI|SIZE-PIX|SIZE-PIXE|SIZE-PIXEL|SKIP|SKIP-DELETED-RECORD|SLIDER|SMALL-ICON|SMALLINT|SMALL-TITLE|SOME|SORT|SORT-ASCENDING|SORT-NUMBER|SOURCE|SOURCE-PROCEDURE|SPACE|SQL|SQRT|SSL-SERVER-NAME|STANDALONE|START|START-DOCUMENT|START-ELEMENT|START-MOVE|START-RESIZE|START-ROW-RESIZE|STATE-DETAIL|STATIC|STATUS|STATUS-AREA|STATUS-AREA-FONT|STDCALL|STOP|STOP-PARSING|STOPPED|STOPPE|STORED-PROCEDURE|STORED-PROC|STORED-PROCE|STORED-PROCED|STORED-PROCEDU|STORED-PROCEDUR|STREAM|STREAM-HANDLE|STREAM-IO|STRETCH-TO-FIT|STRICT|STRING|STRING-VALUE|STRING-XREF|SUB-AVERAGE|SUB-AVE|SUB-AVER|SUB-AVERA|SUB-AVERAG|SUB-COUNT|SUB-MAXIMUM|SUM-MAX|SUM-MAXI|SUM-MAXIM|SUM-MAXIMU|SUB-MENU|SUBSUB-|SUB-MIN|SUBSCRIBE|SUBSTITUTE|SUBST|SUBSTI|SUBSTIT|SUBSTITU|SUBSTITUT|SUBSTRING|SUBSTR|SUBSTRI|SUBSTRIN|SUB-TOTAL|SUBTYPE|SUM|SUPER|SUPER-PROCEDURES|SUPPRESS-NAMESPACE-PROCESSING|SUPPRESS-WARNINGS|SUPPRESS-W|SUPPRESS-WA|SUPPRESS-WAR|SUPPRESS-WARN|SUPPRESS-WARNI|SUPPRESS-WARNIN|SUPPRESS-WARNING|SYMMETRIC-ENCRYPTION-ALGORITHM|SYMMETRIC-ENCRYPTION-IV|SYMMETRIC-ENCRYPTION-KEY|SYMMETRIC-SUPPORT|SYSTEM-ALERT-BOXES|SYSTEM-ALERT|SYSTEM-ALERT-|SYSTEM-ALERT-B|SYSTEM-ALERT-BO|SYSTEM-ALERT-BOX|SYSTEM-ALERT-BOXE|SYSTEM-DIALOG|SYSTEM-HELP|SYSTEM-ID' + \r\n 'TABLE|TABLE-HANDLE|TABLE-NUMBER|TAB-POSITION|TAB-STOP|TARGET|TARGET-PROCEDURE|TEMP-DIRECTORY|TEMP-DIR|TEMP-DIRE|TEMP-DIREC|TEMP-DIRECT|TEMP-DIRECTO|TEMP-DIRECTOR|TEMP-TABLE|TEMP-TABLE-PREPARE|TERM|TERMINAL|TERM|TERMI|TERMIN|TERMINA|TERMINATE|TEXT|TEXT-CURSOR|TEXT-SEG-GROW|TEXT-SELECTED|THEN|THIS-OBJECT|THIS-PROCEDURE|THREE-D|THROW|THROUGH|THRU|TIC-MARKS|TIME|TIME-SOURCE|TITLE|TITLE-BGCOLOR|TITLE-BGC|TITLE-BGCO|TITLE-BGCOL|TITLE-BGCOLO|TITLE-DCOLOR|TITLE-DC|TITLE-DCO|TITLE-DCOL|TITLE-DCOLO|TITLE-FGCOLOR|TITLE-FGC|TITLE-FGCO|TITLE-FGCOL|TITLE-FGCOLO|TITLE-FONT|TITLE-FO|TITLE-FON|TO|TODAY|TOGGLE-BOX|TOOLTIP|TOOLTIPS|TOPIC|TOP-NAV-QUERY|TOP-ONLY|TO-ROWID|TOTAL|TRAILING|TRANS|TRANSACTION|TRANSACTION-MODE|TRANS-INIT-PROCEDURE|TRANSPARENT|TRIGGER|TRIGGERS|TRIM|TRUE|TRUNCATE|TRUNC|TRUNCA|TRUNCAT|TYPE|TYPE-OF' + \r\n 'UNBOX|UNBUFFERED|UNBUFF|UNBUFFE|UNBUFFER|UNBUFFERE|UNDERLINE|UNDERL|UNDERLI|UNDERLIN|UNDO|UNFORMATTED|UNFORM|UNFORMA|UNFORMAT|UNFORMATT|UNFORMATTE|UNION|UNIQUE|UNIQUE-ID|UNIQUE-MATCH|UNIX|UNLESS-HIDDEN|UNLOAD|UNSIGNED-LONG|UNSUBSCRIBE|UP|UPDATE|UPDATE-ATTRIBUTE|URL|URL-DECODE|URL-ENCODE|URL-PASSWORD|URL-USERID|USE|USE-DICT-EXPS|USE-FILENAME|USE-INDEX|USER|USE-REVVIDEO|USERID|USER-ID|USE-TEXT|USE-UNDERLINE|USE-WIDGET-POOL|USING' + \r\n 'V6DISPLAY|V6FRAME|VALIDATE|VALIDATE-EXPRESSION|VALIDATE-MESSAGE|VALIDATE-SEAL|VALIDATION-ENABLED|VALID-EVENT|VALID-HANDLE|VALID-OBJECT|VALUE|VALUE-CHANGED|VALUES|VARIABLE|VAR|VARI|VARIA|VARIAB|VARIABL|VERBOSE|VERSION|VERTICAL|VERT|VERTI|VERTIC|VERTICA|VIEW|VIEW-AS|VIEW-FIRST-COLUMN-ON-REOPEN|VIRTUAL-HEIGHT-CHARS|VIRTUAL-HEIGHT|VIRTUAL-HEIGHT-|VIRTUAL-HEIGHT-C|VIRTUAL-HEIGHT-CH|VIRTUAL-HEIGHT-CHA|VIRTUAL-HEIGHT-CHAR|VIRTUAL-HEIGHT-PIXELS|VIRTUAL-HEIGHT-P|VIRTUAL-HEIGHT-PI|VIRTUAL-HEIGHT-PIX|VIRTUAL-HEIGHT-PIXE|VIRTUAL-HEIGHT-PIXEL|VIRTUAL-WIDTH-CHARS|VIRTUAL-WIDTH|VIRTUAL-WIDTH-|VIRTUAL-WIDTH-C|VIRTUAL-WIDTH-CH|VIRTUAL-WIDTH-CHA|VIRTUAL-WIDTH-CHAR|VIRTUAL-WIDTH-PIXELS|VIRTUAL-WIDTH-P|VIRTUAL-WIDTH-PI|VIRTUAL-WIDTH-PIX|VIRTUAL-WIDTH-PIXE|VIRTUAL-WIDTH-PIXEL|VISIBLE|VOID' + \r\n 'WAIT|WAIT-FOR|WARNING|WEB-CONTEXT|WEEKDAY|WHEN|WHERE|WHILE|WIDGET|WIDGET-ENTER|WIDGET-E|WIDGET-EN|WIDGET-ENT|WIDGET-ENTE|WIDGET-ID|WIDGET-LEAVE|WIDGET-L|WIDGET-LE|WIDGET-LEA|WIDGET-LEAV|WIDGET-POOL|WIDTH|WIDTH-CHARS|WIDTH|WIDTH-|WIDTH-C|WIDTH-CH|WIDTH-CHA|WIDTH-CHAR|WIDTH-PIXELS|WIDTH-P|WIDTH-PI|WIDTH-PIX|WIDTH-PIXE|WIDTH-PIXEL|WINDOW|WINDOW-MAXIMIZED|WINDOW-MAXIM|WINDOW-MAXIMI|WINDOW-MAXIMIZ|WINDOW-MAXIMIZE|WINDOW-MINIMIZED|WINDOW-MINIM|WINDOW-MINIMI|WINDOW-MINIMIZ|WINDOW-MINIMIZE|WINDOW-NAME|WINDOW-NORMAL|WINDOW-STATE|WINDOW-STA|WINDOW-STAT|WINDOW-SYSTEM|WITH|WORD-INDEX|WORD-WRAP|WORK-AREA-HEIGHT-PIXELS|WORK-AREA-WIDTH-PIXELS|WORK-AREA-X|WORK-AREA-Y|WORKFILE|WORK-TABLE|WORK-TAB|WORK-TABL|WRITE|WRITE-CDATA|WRITE-CHARACTERS|WRITE-COMMENT|WRITE-DATA-ELEMENT|WRITE-EMPTY-ELEMENT|WRITE-ENTITY-REF|WRITE-EXTERNAL-DTD|WRITE-FRAGMENT|WRITE-MESSAGE|WRITE-PROCESSING-INSTRUCTION|WRITE-STATUS|WRITE-XML|WRITE-XMLSCHEMA' + \r\n 'X|XCODE|XML-DATA-TYPE|XML-NODE-TYPE|XML-SCHEMA-PATH|XML-SUPPRESS-NAMESPACE-PROCESSING|X-OF|XREF|XREF-XML' + \r\n 'Y|YEAR|YEAR-OFFSET|YES|YES-NOYES-NO-CANCEL|Y-OF'; \r\n\r\n Prism.languages.abl = {\r\n 'keyword': new RegExp('\\\\b(^' + ablKeyWords + '$)\\\\b', 'gmi'),\r\n\t\t'comment': {\r\n\t\t\tpattern: /\\/\\*[\\w\\W]*?\\*\\//,\r\n\t\t\tlookbehind: true\r\n\t\t},\r\n 'string': {\r\n pattern: /([\"'])(\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\r\n greedy: true\r\n },\r\n 'number': /\\b-?(0x[\\da-f]+|\\d*\\.?\\d+f?)\\b/i\r\n };\r\n\r\n\r\n(function() {\r\n\r\nif (typeof self === 'undefined' || !self.Prism || !self.document) {\r\n\treturn;\r\n}\r\n\r\nPrism.hooks.add('complete', function (env) {\r\n\tif (!env.code) {\r\n\t\treturn;\r\n\t}\r\n\r\n\t// works only for wrapped inside
 (not inline)\r\n\tvar pre = env.element.parentNode;\r\n\tvar clsReg = /\\s*\\bline-numbers\\b\\s*/;\r\n\tif (\r\n\t\t!pre || !/pre/i.test(pre.nodeName) ||\r\n\t\t\t// Abort only if nor the 
 nor the  have the class\r\n\t\t(!clsReg.test(pre.className) && !clsReg.test(env.element.className))\r\n\t) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tif (env.element.querySelector(\".line-numbers-rows\")) {\r\n\t\t// Abort if line numbers already exists\r\n\t\treturn;\r\n\t}\r\n\r\n\tif (clsReg.test(env.element.className)) {\r\n\t\t// Remove the class \"line-numbers\" from the \r\n\t\tenv.element.className = env.element.className.replace(clsReg, '');\r\n\t}\r\n\tif (!clsReg.test(pre.className)) {\r\n\t\t// Add the class \"line-numbers\" to the 
\r\n\t\tpre.className += ' line-numbers';\r\n\t}\r\n\r\n\tvar match = env.code.match(/\\n(?!$)/g);\r\n\tvar linesNum = match ? match.length + 1 : 1;\r\n\tvar lineNumbersWrapper;\r\n\r\n\tvar lines = new Array(linesNum + 1);\r\n\tlines = lines.join('');\r\n\r\n\tlineNumbersWrapper = document.createElement('span');\r\n\tlineNumbersWrapper.setAttribute('aria-hidden', 'true');\r\n\tlineNumbersWrapper.className = 'line-numbers-rows';\r\n\tlineNumbersWrapper.innerHTML = lines;\r\n\r\n\tif (pre.hasAttribute('data-start')) {\r\n\t\tpre.style.counterReset = 'linenumber ' + (parseInt(pre.getAttribute('data-start'), 10) - 1);\r\n\t}\r\n\r\n\tenv.element.appendChild(lineNumbersWrapper);\r\n\r\n});\r\n\r\n}());\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/code/prism.js\n ** module id = 455\n ** module chunks = 0\n **/","module.exports = \"    
\\r\\n
\\r\\n
\\r\\n {{fileName}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n    
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/code/code-dialog.component.html\n ** module id = 456\n ** module chunks = 0\n **/","module.exports = \".container {\\r\\n /* width: 600px;\\r\\n height: 400px; */\\r\\n /*background-color: #f5f2f0;*/\\r\\n}\\r\\n\\r\\n.preview-header {\\r\\n background-color:#025064;\\r\\n color: white;\\r\\n}\"\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/code/code-dialog.component.css\n ** module id = 457\n ** module chunks = 0\n **/","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Configurator } from './configurators.component';\r\n\r\n@Pipe({name: 'filterConfigurator'})\r\nexport class FilterConfiguratorPipe implements PipeTransform {\r\n transform(configurators: Configurator[], query: string): Configurator[] {\r\n if (query === '') {\r\n return configurators;\r\n }\r\n return configurators.filter(c => \r\n c.partNum.toLowerCase().indexOf(query.toLowerCase()) !== -1 || \r\n c.description.toLowerCase().indexOf(query.toLowerCase()) !== -1); \r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/configurators/configurators.pipe.ts\n **/","module.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tConfigurators ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_configurators?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_configurators?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\tDescription {{configurator?.description}}\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\tPart {{configurator?.partNum}}\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\tKeep\\r\\n\\t\\t\\t\\t\\tReviewed\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
PagesInputsLast ChangedUse 12 MonthsComplexityCodeLOC
{{configurator?.pages}}{{configurator?.inputs}}{{configurator?.lastChanged | date: 'medium'}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tJobs: {{configurator?.configuredJobsLast12Months}}, Orders: {{configurator?.configuredOrdersLast12Months}}, PO: {{configurator?.configuredPOLast12Months}},\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tQuotes: {{configurator?.configuredQuotesLast12Months}}\\r\\n\\t\\t\\t\\t\\t\\t\\t{{configurator?.complexity}}\\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t{{configurator?.linesOfCode}}
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tSelf\\r\\n\\t\\t\\t\\t\\t\\tEpicor\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tExternal Dependencies \\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
10\\\">\\r\\n\\t\\t\\t View: \\r\\n\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/custom/configurators/configurators.html\n ** module id = 459\n ** module chunks = 0\n **/","import { Component, Input, Output, EventEmitter, ViewChild, AfterViewInit, OnInit, ViewContainerRef } from '@angular/core';\r\nimport { Response } from '@angular/http';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\n\r\nimport { SitesService } from '../../../core/sites.service';\r\nimport { CodeDialog, Code } from '../../../../code/code-dialog.component';\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\nimport { FilterCustomisationPipe } from './customisations.pipe';\r\nimport { ComplexityService } from '../../complexity-type.service';\r\nimport { User } from '../../../../users/_services/users.service';\r\nimport { LoggedInUser } from '../../../../auth/auth.service';\r\n\r\n@Component({\r\n selector: 'customisations',\r\n template: require('./customisations.html'),\r\n styles: [require('./customisations.css')],\r\n providers: [SitesService, PagerService, ComplexityService]\r\n})\r\nexport class CustomisationsComponent implements OnInit {\r\n dialogRef: MdDialogRef;\r\n\r\n _customisations: Customisation[] = [];\r\n _customisationsCC: Customisation[] = [];\r\n @Input() onAnalysisRefresh : EventEmitter; \r\n @Input() onFilterCustom: EventEmitter;\r\n \r\n @Input() sas: string;\r\n @Input() user : LoggedInUser;\r\n\r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n if (data.uiCustomizations) {\r\n if (data.uiCustomizations) {\r\n this._customisationsCC = data.uiCustomizations;\r\n \r\n this._customisationsCC.forEach((element:any) => {\r\n if(element.hasOwnProperty('cloudComplexity')==false){\r\n element.cloudComplexity= false;\r\n }\r\n if(element.hasOwnProperty('cloudComplexityType')==false){\r\n element.cloudComplexityType= 'None';\r\n }\r\n if(element.hasOwnProperty('cloudComplexityDescription')==false){\r\n element.cloudComplexityDescription= '';\r\n }\r\n });\r\n this._customisations = this._customisationsCC; \r\n }\r\n \r\n }\r\n }\r\n }\r\n get data() { return this._customisations }\r\n\r\n @Output() onChange = new EventEmitter();\r\n\r\n freezeInputs : boolean = false;\r\n opened: boolean = false;\r\n icon: string = 'expand_more';\r\n keep: boolean = false;\r\n reviewed: boolean = false;\r\n search: string = '';\r\n selectedFilter: any = {};\r\n pager: any = {};\r\n pagedItems: any[];\r\n //page size\r\n pageSize:number = 10;\r\n kineticAllFlag:boolean =false;\r\n // initialise the filter customisation pipe to make use of transform function\r\n filterCustomisationPipe = new FilterCustomisationPipe();\r\n\r\n constructor(\r\n private pagerService: PagerService,\r\n private complexityService: ComplexityService,\r\n public sitesService: SitesService,\r\n public dialog: MdDialog,\r\n public viewContainerRef: ViewContainerRef) { }\r\n\r\n ngOnInit() {\r\n this.onFilterCustom.subscribe((res: any) => {\r\n this.selectedFilter = res;\r\n this.filterCustom(this.selectedFilter, 1);\r\n });\r\n\r\n // initial to page 1\r\n this.setPage(1);\r\n\r\n this.onAnalysisRefresh.subscribe((res:boolean) => {\r\n this.freezeInputs = res; \r\n });\r\n this.checkKineticFlag()\r\n }\r\n\r\n filterCustom(filter: string, page?: number) {\r\n var customisations: Customisation[] = this._customisations;\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n customisations = this.setCustomisationFilter(filter, customisations);\r\n this.pager = this.pagerService.getPager(customisations.length, page, this.pageSize);\r\n this.pagedItems = customisations.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n setCustomisationFilter(filter: any, customisations: Customisation[]): Customisation[] {\r\n customisations = this.pagerService.filter('custom', customisations, filter);\r\n\r\n return customisations;\r\n }\r\n\r\n filterCustomisation(query: any, page?: number) {\r\n var customisations: Customisation[] = this._customisations;\r\n\r\n if (query === '') {\r\n this.setPage(1);\r\n }\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n // use pipe to filter data\r\n customisations = this.filterCustomisationPipe.transform(customisations, query);\r\n\r\n // apply custom filter\r\n customisations = this.setCustomisationFilter(this.selectedFilter, customisations);\r\n\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(customisations.length, page, this.pageSize);\r\n\r\n // get current page of items \r\n this.pagedItems = customisations.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n toggle() {\r\n if (this.opened) {\r\n this.opened = false;\r\n this.icon = 'expand_more';\r\n } else {\r\n this.opened = true;\r\n this.icon = 'expand_less';\r\n }\r\n }\r\n\r\n previewCode(url: string, name: string, language: string, ) {\r\n if (url) {\r\n\r\n if (language === '') {\r\n language = 'VB.Net';\r\n }\r\n\r\n this.sitesService.getFile(url + this.sas).subscribe(\r\n (res: Response) => {\r\n\r\n var preview: Code = {\r\n source: res.text(),\r\n language: language,\r\n downloadUrl: url + this.sas,\r\n name: name\r\n };\r\n\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.dialogRef = this.dialog.open(CodeDialog, config);\r\n this.dialogRef.componentInstance.render(preview);\r\n\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n this.dialogRef = null;\r\n });\r\n },\r\n err => {\r\n console.error(err)\r\n });\r\n }\r\n }\r\n\r\n keepAll(checked: boolean) {\r\n this._customisations.forEach(function (customisation) {\r\n customisation.keep = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n reviewedAll(checked: boolean) {\r\n this._customisations.forEach(function (customisation) {\r\n customisation.reviewed = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n kineticAll(checked: boolean) {\r\n this._customisations.forEach(function (customisation) {\r\n if(customisation.kineticAvailable){\r\n customisation.kinetic = checked;\r\n }\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n checkKineticFlag() {\r\n let kineticCount = 0;\r\n this._customisations.forEach(function (customisation) {\r\n if(typeof customisation.kineticAvailable !='undefined'){\r\n kineticCount++;\r\n if(typeof customisation.kinetic == 'undefined'){\r\n customisation.kinetic=false\r\n }\r\n }\r\n });\r\n\r\n if(kineticCount > 0)\r\n this.kineticAllFlag = true\r\n }\r\n\r\n countReviewed() {\r\n var count = 0;\r\n this._customisations.forEach(function (customisation) {\r\n count += customisation.reviewed ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n countKeep() {\r\n var count = 0;\r\n this._customisations.forEach(function (customisation) {\r\n count += customisation.keep ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n countKinetic() {\r\n var count = 0;\r\n this._customisations.forEach(function (customisation) {\r\n count += customisation.kinetic ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n previewCodeDisabled(item: any): boolean {\r\n\r\n if (item.customizationSourceCode && item.customizationSourceCode.cloudFilename) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n KeepCheckBoxEnabled(item: any):boolean\r\n {\r\n this.freezeInputs = false;\r\n return false;\r\n }\r\n \r\n previewCodeIcon(item: any): string {\r\n if (this.previewCodeDisabled(item)) {\r\n return \"cloud_download\";\r\n }\r\n return \"cloud_download\";\r\n }\r\n\r\n setPage(page: number) {\r\n if (page < 1 || page > this.pager.totalPages) {\r\n return;\r\n }\r\n\r\n // if search query apply filter\r\n if (this.search !== '') {\r\n this.filterCustomisation(this.search, page);\r\n } else {\r\n var customisations = this.setCustomisationFilter(this.selectedFilter, this._customisations);\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(customisations.length, page, this.pageSize);\r\n\r\n // get current page of items\r\n this.pagedItems = customisations.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n }\r\n\r\n showKineticCompatible(item: Customisation) {\r\n if(item.kineticAvailable == false && \r\n (item.formName == \"Menu.Mes.MESMenu\" ||\r\n (item.formName.toString().toLocaleLowerCase().startsWith(\"app.\") && item.formName.toString().toLocaleLowerCase().endsWith(\".maincontroller\"))))\r\n {\r\n return true;\r\n }\r\n return item.kineticAvailable == true && item.kineticCompatible != null;\r\n }\r\n\r\n showKineticComplexity(item: Customisation) {\r\n return (item.kineticAvailable == true && item.kineticComplexity != null && \r\n item.kineticComplexity != KineticComplexity.NotSet);\r\n }\r\n\r\n showCustomEventsUnconvertible(item: Customisation) {\r\n return item.kineticAvailable == true && item.customEvents == true && item.customEventsConvertible == false;\r\n }\r\n\r\n showCustomRowRulesUnconvertible(item: Customisation) {\r\n return item.kineticAvailable == true && item.customRowRules == true && item.customRowRulesConvertible == false;\r\n }\r\n\r\n showCustomLayoutUnconvertible(item: Customisation) {\r\n return item.kineticAvailable == true && item.customLayout == true && item.customLayoutConvertible == false;\r\n }\r\n\r\n showCustomCode(item: Customisation) {\r\n return item.kineticAvailable == true && item.customCode == true;\r\n }\r\n}\r\n\r\nexport interface Customisation {\r\n formName?: string;\r\n customizationKey?: string;\r\n companyID?: string;\r\n typeCode?: string;\r\n complexity?: number;\r\n newControls?: number;\r\n souceFile?: File;\r\n language?: string;\r\n xmlFile?: File;\r\n linesOfCode?: number;\r\n menuLinks?: Menu[];\r\n\r\n keep?: boolean;\r\n reviewed?: boolean;\r\n kinetic?:boolean;\r\n purpose?: string;\r\n reason?: string;\r\n comments?: Comment[];\r\n kineticCompatible?: KineticCompatibility;\r\n kineticComplexity?: KineticComplexity;\r\n kineticAvailable?: boolean;\r\n customEventsConvertible?: boolean;\r\n customRowRulesConvertible?: boolean;\r\n customLayoutConvertible?: boolean;\r\n customEvents?: boolean;\r\n customRowRules?: boolean;\r\n customLayout?: boolean;\r\n customCode?: boolean;\r\n}\r\n\r\nexport interface Menu {\r\n file?: File;\r\n lines?: number;\r\n}\r\n\r\nexport interface File {\r\n cloudFileName?: string;\r\n localFilePath?: string;\r\n}\r\n\r\nexport interface Comment {\r\n user?: string;\r\n comment: string;\r\n}\r\n\r\nexport enum KineticCompatibility {\r\n NotSet = 0,\r\n Compatible = 1,\r\n PartiallyCompatible = 2,\r\n Rework = 3,\r\n NotCompatible = 4\r\n}\r\nexport enum KineticComplexity {\r\n NotSet = 0,\r\n Simple = 1,\r\n Medium = 2,\r\n Complex = 3\r\n}\r\n\r\nexport enum CloudComplexityType\r\n{\r\n None = 0,\r\n Reflection = 1,\r\n FileStream = 2,\r\n DirectDBAccess = 3,\r\n ExternalDll = 4\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/customisations/customisations.component.ts\n **/","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Customisation } from './customisations.component';\r\n\r\n@Pipe({name: 'filterCustomisation'})\r\nexport class FilterCustomisationPipe implements PipeTransform {\r\n transform(customisations: Customisation[], query: string): Customisation[] {\r\n if (query === '') {\r\n return customisations;\r\n }\r\n return customisations.filter(c => \r\n c.customizationKey.toLowerCase().indexOf(query.toLowerCase()) !== -1 || \r\n c.formName.toLowerCase().indexOf(query.toLowerCase()) !== -1); \r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/customisations/customisations.pipe.ts\n **/","module.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t\\tKinetic All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\r\\n\\t\\r\\n\\t\\tUser Interface Customisations ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_customisations?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_customisations?.length}})\\r\\n\\t\\tKinetic ({{ countKinetic() }}/{{_customisations?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t Cloud Warning \\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t Cloud Warning \\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t Cloud Warning \\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t Cloud Warning \\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t Cloud Warning \\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n \\t Classic \\r\\n\\t\\t\\t\\t\\t \\r\\n\\r\\n\\t\\t\\t\\t\\tKeep\\r\\n\\t\\t\\t\\t\\tReviewed\\r\\n\\t\\t\\t\\t\\tKinetic \\r\\n\\t\\t\\t\\t\\tKinetic \\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
Kinetic Not Available
\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
Kinetic Compatible
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
Kinetic Partially Compatible
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
Kinetic Rework
\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tclosed_caption\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n {{menuLink.location}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
10\\\">\\r\\n\\t\\t\\t View: \\r\\n\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/custom/customisations/customisations.html\n ** module id = 462\n ** module chunks = 0\n **/","module.exports = \".component-actions {\\r\\n float:right;\\r\\n padding: 4px;\\r\\n}\\r\\n\\r\\n.toolbar-action {\\r\\n margin-right: 6px;\\r\\n font-size: 14px;\\r\\n}\\r\\n\\r\\n.customisation-container {\\r\\n margin-top: 10px;\\r\\n border:1px solid #616161;\\r\\n}\\r\\n\\r\\n.customisation-header {\\r\\n height: 20px;\\r\\n padding: 8px;\\r\\n background-color: #F5F5F5;\\r\\n border-bottom: 1px solid #E0E0E0;\\r\\n}\\r\\n\\r\\ndiv.kinetic-available,\\r\\ndiv.kinetic-compatible,\\r\\ndiv.kinetic-partial-compatible,\\r\\ndiv.kinetic-not-compatible {\\r\\n width: 70%;\\r\\n margin-bottom: .3rem;\\r\\n border-radius: .25rem;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\ndiv.kinetic-available,\\r\\ndiv.kinetic-compatible {\\r\\n background-color: #a3d183;\\r\\n color: white;\\r\\n}\\r\\n\\r\\ndiv.kinetic-partial-compatible {\\r\\n background-color: #86898D;\\r\\n color: white;\\r\\n}\\r\\n\\r\\ndiv.kinetic-not-compatible {\\r\\n border: 1px solid #a3d183;\\r\\n}\\r\\n\\r\\nimg.icon {\\r\\n height: 24px;\\r\\n width: 24px;\\r\\n}\"\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/custom/customisations/customisations.css\n ** module id = 463\n ** module chunks = 0\n **/","import { Component, Input, Output, EventEmitter, ViewChild, AfterViewInit, OnInit, ViewContainerRef } from '@angular/core';\r\nimport { Response } from '@angular/http';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\n\r\nimport { SitesService } from '../../../core/sites.service';\r\nimport { CodeDialog, Code } from '../../../../code/code-dialog.component';\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\nimport { FilterKineticPipe } from './kineticUXs.pipe';\r\nimport { ComplexityService } from '../../complexity-type.service';\r\nimport { User } from '../../../../users/_services/users.service';\r\nimport { LoggedInUser } from '../../../../auth/auth.service';\r\n\r\n@Component({\r\n selector: 'kineticUXs',\r\n template: require('./kineticUXs.html'),\r\n styles: [require('./kineticUXs.css')],\r\n providers: [SitesService, PagerService, ComplexityService]\r\n})\r\nexport class KineticUXComponent implements OnInit {\r\n dialogRef: MdDialogRef;\r\n\r\n _kineticUXs: kineticUX[] = [];\r\n \r\n @Input() onAnalysisRefresh : EventEmitter; \r\n @Input() onFilterCustom: EventEmitter;\r\n \r\n @Input() sas: string;\r\n @Input() user : LoggedInUser;\r\n\r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n if (data.kineticUXs) {\r\n this.isFileSystemEnabled = data.kineticUXs.isKineticFileSystemEnabled;\r\n this._kineticUXs = data.kineticUXs.kineticUxDetails;\r\n }\r\n }\r\n }\r\n get data() { return this._kineticUXs }\r\n\r\n @Output() onChange = new EventEmitter();\r\n\r\n isFileSystemEnabled:boolean = false;\r\n freezeInputs : boolean = false;\r\n opened: boolean = false;\r\n icon: string = 'expand_more';\r\n keep: boolean = false;\r\n reviewed: boolean = false;\r\n search: string = '';\r\n selectedFilter: any = {};\r\n pager: any = {};\r\n pagedItems: any[];\r\n //page size\r\n pageSize:number = 10;\r\n kineticAllFlag:boolean =false;\r\n // initialise the filter customisation pipe to make use of transform function\r\n filterCustomisationPipe = new FilterKineticPipe();\r\n\r\n keepAllEnabled: boolean = true;\r\n fileName:string=\"\"\r\n constructor(\r\n private pagerService: PagerService,\r\n private complexityService: ComplexityService,\r\n public sitesService: SitesService,\r\n public dialog: MdDialog,\r\n public viewContainerRef: ViewContainerRef) { }\r\n\r\n ngOnInit() {\r\n this.onFilterCustom.subscribe((res: any) => {\r\n this.selectedFilter = res;\r\n this.filterCustom(this.selectedFilter, 1);\r\n });\r\n\r\n // initial to page 1\r\n this.setPage(1);\r\n\r\n this.onAnalysisRefresh.subscribe((res:boolean) => {\r\n this.freezeInputs = res; \r\n });\r\n this.disableKeepAllCheckbox();\r\n }\r\n\r\n filterCustom(filter: string, page?: number) {\r\n \r\n var kineticCustoms: kineticUX[] = this._kineticUXs;\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n kineticCustoms = this.setCustomisationFilter(filter, kineticCustoms);\r\n this.pager = this.pagerService.getPager(kineticCustoms.length, page, this.pageSize);\r\n this.pagedItems = kineticCustoms.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n setCustomisationFilter(filter: any, kineticCustoms: kineticUX[]): kineticUX[] {\r\n debugger\r\n kineticCustoms = this.pagerService.filter('custom', kineticCustoms, filter);\r\n\r\n return kineticCustoms;\r\n }\r\n\r\n filterCustomisation(query: any, page?: number) {\r\n var kineticCustoms: kineticUX[] = this._kineticUXs;\r\n \r\n if (query === '') {\r\n this.setPage(1);\r\n }\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n // use pipe to filter data\r\n kineticCustoms = this.filterCustomisationPipe.transform(kineticCustoms, query);\r\n\r\n // apply custom filter\r\n kineticCustoms = this.setCustomisationFilter(this.selectedFilter, kineticCustoms);\r\n\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(kineticCustoms.length, page, this.pageSize);\r\n\r\n // get current page of items \r\n this.pagedItems = kineticCustoms.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n toggle() {\r\n if (this.opened) {\r\n this.opened = false;\r\n this.icon = 'expand_more';\r\n } else {\r\n this.opened = true;\r\n this.icon = 'expand_less';\r\n }\r\n }\r\n\r\n previewCode(url: string) {\r\n if (url) {\r\n if (this.sas) {\r\n window.open(url + this.sas, \"_self\");\r\n //console.log('Welcome')\r\n }\r\n }\r\n }\r\n\r\n keepAll(checked: boolean) {\r\n this._kineticUXs.forEach(function (kinetic) {\r\n if(!this.previewCodeDisabled(kinetic)){\r\n kinetic.keep = checked;\r\n }\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n disableKeepAllCheckbox(){\r\n let count =0\r\n this._kineticUXs.forEach(kinetic => {\r\n if(!this.previewCodeDisabled(kinetic)){\r\n count+=1;\r\n }\r\n });\r\n \r\n if(count<1){\r\n this.keepAllEnabled=false;\r\n }\r\n}\r\n\r\n reviewedAll(checked: boolean) {\r\n this._kineticUXs.forEach(function (customisation) {\r\n customisation.reviewed = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n\r\n countReviewed() {\r\n var count = 0;\r\n this._kineticUXs.forEach(function (customisation) {\r\n count += customisation.reviewed ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n countKeep() {\r\n var count = 0;\r\n this._kineticUXs.forEach(function (customisation) {\r\n count += customisation.keep ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n previewCodeDisabled(item: any): boolean {\r\n if (item.kineticCustomization && item.kineticCustomization.cloudFilename) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n KeepCheckBoxEnabled(item: any):boolean\r\n {\r\n this.freezeInputs = false;\r\n return false;\r\n }\r\n \r\n previewCodeIcon(item: any): string {\r\n if (this.previewCodeDisabled(item)) {\r\n return \"cloud_download\";\r\n }\r\n return \"cloud_download\";\r\n }\r\n\r\n showFileName(filename:string) {\r\n\r\n if(filename !=null && filename.length > 0){\r\n length = filename.split('/').length\r\n filename= filename.split('/')[length-1]\r\n return filename;\r\n }\r\n else\r\n return \"\";\r\n }\r\n\r\n setPage(page: number) {\r\n if (page < 1 || page > this.pager.totalPages) {\r\n return;\r\n }\r\n\r\n // if search query apply filter\r\n if (this.search !== '') {\r\n this.filterCustomisation(this.search, page);\r\n } else {\r\n var kineticCustoms = this.setCustomisationFilter(this.selectedFilter, this._kineticUXs);\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(kineticCustoms.length, page, this.pageSize);\r\n\r\n // get current page of items\r\n this.pagedItems = kineticCustoms.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n }\r\n\r\n getKineticUxType(type: number):string{\r\n if(type == 0)\r\n return \"Custom Base Application\"\r\n else\r\n return \"Custom Layer\"\r\n }\r\n\r\n }\r\n\r\nexport interface kineticUX {\r\n keep?: boolean;\r\n reviewed?: boolean;\r\n company?:string;\r\n productID?:string;\r\n content?:string;\r\n key1?:string;\r\n key2?:string;\r\n key3?:string;\r\n description?:string;\r\n typeCode?:string;\r\n layoutFlag?:boolean;\r\n layoutsCount?: number;\r\n detailsFlag?: string;\r\n detailsCount?: number;\r\n eventsFlag?: string;\r\n eventsCount?: number;\r\n rulesFlag?: boolean;\r\n rulesCount?: number;\r\n toolsFlag?: boolean;\r\n toolsCount?: number;\r\n dataViewsFlag?: boolean;\r\n dataViewsCount?: number;\r\n kineticCustomization: KineticCustomizationFileAsset[];\r\n kineticUXType?: number;\r\n}\r\n\r\nexport interface KineticCustomizationFileAsset {\r\n localFilePath: string;\r\n cloudFilename: string;\r\n cloudFolder: string;\r\n fileHash: string;\r\n}\r\n\r\nexport enum KineticUXType\r\n{\r\n CustomBase = 0,\r\n Layer=1\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/kineticUX/kineticUXs.component.ts\n **/","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { kineticUX } from './kineticUXs.component';\r\n\r\n@Pipe({name: 'filterkineticUX'})\r\nexport class FilterKineticPipe implements PipeTransform {\r\n transform(customisations: kineticUX[], query: string): kineticUX[] {\r\n if (query === '') {\r\n return customisations;\r\n }\r\n return customisations.filter(c => \r\n c.key1.toLowerCase().indexOf(query.toLowerCase()) !== -1 || \r\n c.key2.toLowerCase().indexOf(query.toLowerCase()) !== -1 || \r\n c.description.toLowerCase().indexOf(query.toLowerCase()) !== -1 ); \r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/kineticUX/kineticUXs.pipe.ts\n **/","module.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\r\\n\\t\\r\\n\\t\\tKinetic UX ({{pager?.totalItems}}) {{isFileSystemEnabled ==true? '[Kinetic has the File System enabled]' : '' }}\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_kineticUXs?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_kineticUXs?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\tKeep\\r\\n\\t\\t\\t\\t\\tReviewed\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n {{menuLink.location}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
10\\\">\\r\\n\\t\\t\\t View: \\r\\n\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/custom/kineticUX/kineticUXs.html\n ** module id = 466\n ** module chunks = 0\n **/","import { Component, Input, Output, EventEmitter, ViewChild, AfterViewInit, OnInit, ViewContainerRef } from '@angular/core';\r\nimport { Response } from '@angular/http';\r\n\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\nimport { FilterFunctionsPipe } from './functions.pipe';\r\n\r\n@Component({\r\n selector: 'customFunctions',\r\n template: require('./functions.html'),\r\n providers: [PagerService]\r\n})\r\nexport class FunctionsComponent implements OnInit {\r\n\r\n _functions: Functions[] = [];\r\n\r\n @Input() onAnalysisRefresh : EventEmitter; \r\n @Input() onFilterCustom: EventEmitter;\r\n \r\n @Input() sas: string;\r\n \r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n if (data.functions) {\r\n this._functions = data.functions;\r\n }\r\n }\r\n }\r\n get data() { return this._functions }\r\n\r\n @Output() onChange = new EventEmitter();\r\n\r\n freezeInputs : boolean = false;\r\n opened: boolean = false;\r\n icon: string = 'expand_more';\r\n keep: boolean = false;\r\n reviewed: boolean = false;\r\n search: string = '';\r\n selectedFilter: any = {};\r\n pager: any = {};\r\n pagedItems: any[];\r\n //page size\r\n pageSize:number = 10;\r\n // initialise the filter customisation pipe to make use of transform function\r\n filterFunctionsPipe = new FilterFunctionsPipe();\r\n\r\n keepAllEnabled: boolean = true;\r\n \r\n \r\n constructor(\r\n private pagerService: PagerService) { }\r\n\r\n ngOnInit() {\r\n this.onFilterCustom.subscribe((res: any) => {\r\n this.selectedFilter = res;\r\n this.filterCustom(this.selectedFilter, 1);\r\n });\r\n\r\n // initial to page 1\r\n this.setPage(1);\r\n\r\n this.onAnalysisRefresh.subscribe((res:boolean) => {\r\n this.freezeInputs = res; \r\n });\r\n this.disableKeepAllCheckbox();\r\n }\r\n\r\n\r\n filterCustom(filter: string, page?: number) {\r\n var funs: Functions[] = this._functions;\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n funs = this.setFunctionsFilter(filter, funs);\r\n this.pager = this.pagerService.getPager(funs.length, page, this.pageSize);\r\n this.pagedItems = funs.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n setFunctionsFilter(filter: any, funs: Functions[]): Functions[] {\r\n funs = this.pagerService.filter('custom', funs, filter);\r\n\r\n return funs;\r\n }\r\n\r\n groupReferencesArray(data: Array, n: number): Array {\r\n let group = new Array();\r\n for (let i = 0, j = 0; i < data.length; i++) {\r\n if (i >= n && i % n === 0) j++;\r\n group[j] = group[j] || [];\r\n group[j].push(data[i]);\r\n }\r\n return group;\r\n }\r\n\r\n filterFunctions(query: any, page?: number) {\r\n var funs: Functions[] = this._functions;\r\n\r\n if (query === '') {\r\n this.setPage(1);\r\n }\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n // use pipe to filter data\r\n funs = this.filterFunctionsPipe.transform(funs, query);\r\n\r\n // apply custom filter\r\n funs = this.setFunctionsFilter(this.selectedFilter, funs);\r\n\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(funs.length, page, this.pageSize);\r\n\r\n // get current page of items \r\n this.pagedItems = funs.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n toggle() {\r\n if (this.opened) {\r\n this.opened = false;\r\n this.icon = 'expand_more';\r\n } else {\r\n this.opened = true;\r\n this.icon = 'expand_less';\r\n }\r\n }\r\n\r\n previewCode(url: string, name: string, language: string) {\r\n if (url) {\r\n if (this.sas) {\r\n window.open(url + this.sas, \"_self\");\r\n }\r\n }\r\n }\r\n\r\n\r\n keepAll(checked: boolean) {\r\n this._functions.forEach(function (func) {\r\n if(!this.previewCodeDisabled(func)){\r\n func.keep = checked;\r\n }\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n disableKeepAllCheckbox(){\r\n let count =0\r\n this._functions.forEach(func => {\r\n if(!this.previewCodeDisabled(func)){\r\n count+=1;\r\n }\r\n });\r\n \r\n if(count<1){\r\n this.keepAllEnabled=false;\r\n }\r\n}\r\n\r\n reviewedAll(checked: boolean) {\r\n this._functions.forEach(function (func) {\r\n func.reviewed = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n countReviewed() {\r\n var count = 0;\r\n this._functions.forEach(function (func) {\r\n count += func.reviewed ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n countKeep() {\r\n var count = 0;\r\n this._functions.forEach(function (func) {\r\n count += func.keep ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n previewCodeDisabled(item: any): boolean {\r\n \r\n if (item && item.functionFileAsset && item.functionFileAsset.cloudFilename) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n previewCodeIcon(item: any): string {\r\n if (this.previewCodeDisabled(item)) {\r\n return \"cloud_download\";\r\n }\r\n return \"cloud_download\";\r\n }\r\n\r\n setPage(page: number) {\r\n if (page < 1 || page > this.pager.totalPages) {\r\n return;\r\n }\r\n\r\n // if search query apply filter\r\n if (this.search !== '') {\r\n this.filterFunctions(this.search, page);\r\n } else {\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(this._functions.length, page, this.pageSize);\r\n\r\n // get current page of items\r\n this.pagedItems = this._functions.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n }\r\n\r\n}\r\n\r\nexport interface Functions {\r\n libraryID?: string;\r\n owner?: string;\r\n directDBAccess?: string;\r\n functionID?:string;\r\n libraryReference?: LibraryReference[]\r\n keep?: boolean;\r\n reviewed?: boolean;\r\n description?:string;\r\n}\r\n\r\nexport interface LibraryReference\r\n{\r\n referenceType?:string;\r\n referenceID?: any[];\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/functions/functions.component.ts\n **/","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Functions } from './functions.component';\r\n\r\n@Pipe({name: 'filterFunctions'})\r\nexport class FilterFunctionsPipe implements PipeTransform {\r\n transform(func: Functions[], query: string): Functions[] {\r\n if (query === '') {\r\n return func;\r\n }\r\n\r\n let filterResult = func.filter(c => \r\n c.libraryID.toLowerCase().indexOf(query.toLowerCase()) !== -1 || \r\n c.functionID.toLowerCase().indexOf(query.toLowerCase()) !== -1);\r\n\r\n if (filterResult == undefined || filterResult.length == 0){\r\n filterResult = this.searchResult(func,query)\r\n }\r\n return filterResult;\r\n }\r\n\r\n searchResult(items: Functions[], query:any): any[]{\r\n let filteredList:any[]=[];\r\n\r\n if(query==undefined){\r\n return items;\r\n }\r\n else if (items && items.length ){\r\n items.forEach((item: Functions) => { \r\n if(query!=null){\r\n item.libraryReference.forEach(lib => lib.referenceID.forEach(libRef => {\r\n if(libRef.toLowerCase().indexOf(query.toLowerCase()) !=-1){\r\n filteredList.push(item);\r\n }\r\n }))\r\n }\r\n });\r\n return filteredList;\r\n }\r\n else{\r\n return items;\r\n }\r\n }\r\n} \r\n\r\n\r\n//test\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/functions/functions.pipe.ts\n **/","module.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tFunctions ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_functions?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_functions?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\tKeep\\r\\n\\t\\t\\t\\t\\t\\t\\tReviewed \\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n \\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{lib.referenceType}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t {{libRef}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
5\\\">\\r\\n\\t\\t\\t View: \\r\\n\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/custom/functions/functions.html\n ** module id = 470\n ** module chunks = 0\n **/","import { Component, Input, Output, EventEmitter, ViewChild, AfterViewInit, OnInit, ViewContainerRef } from '@angular/core';\r\nimport { Response } from '@angular/http';\r\n\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\nimport { FilterProcessCallsPipe } from './processCalls.pipe';\r\n\r\n@Component({\r\n selector: 'processCalls',\r\n template: require('./processCalls.html'),\r\n providers: [PagerService]\r\n})\r\nexport class ProcessCallComponent implements OnInit {\r\n\r\n _processCalls: ProcessCalls[] = [];\r\n\r\n @Input() onAnalysisRefresh : EventEmitter; \r\n @Input() onFilterCustom: EventEmitter;\r\n \r\n @Input() sas: string;\r\n \r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n if (data.processCalls) {\r\n this._processCalls = data.processCalls;\r\n }\r\n }\r\n }\r\n get data() { return this._processCalls }\r\n\r\n @Output() onChange = new EventEmitter();\r\n\r\n freezeInputs : boolean = false;\r\n opened: boolean = false;\r\n icon: string = 'expand_more';\r\n keep: boolean = false;\r\n reviewed: boolean = false;\r\n search: string = '';\r\n selectedFilter: any = {};\r\n pager: any = {};\r\n pagedItems: any[];\r\n //page size\r\n pageSize:number = 10;\r\n // initialise the filter customisation pipe to make use of transform function\r\n filterProcessCallsPipe = new FilterProcessCallsPipe();\r\n\r\n keepAllEnabled: boolean = true;\r\n \r\n \r\n constructor(\r\n private pagerService: PagerService) { }\r\n\r\n ngOnInit() {\r\n this.onFilterCustom.subscribe((res: any) => {\r\n this.selectedFilter = res;\r\n this.filterCustom(this.selectedFilter, 1);\r\n });\r\n\r\n // initial to page 1\r\n this.setPage(1);\r\n\r\n this.onAnalysisRefresh.subscribe((res:boolean) => {\r\n this.freezeInputs = res; \r\n });\r\n this.disableKeepAllCheckbox();\r\n }\r\n\r\n\r\n filterCustom(filter: string, page?: number) {\r\n var funs: ProcessCalls[] = this._processCalls;\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n funs = this.setProcessCallsFilter(filter, funs);\r\n this.pager = this.pagerService.getPager(funs.length, page, this.pageSize);\r\n this.pagedItems = funs.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n setProcessCallsFilter(filter: any, funs: ProcessCalls[]): ProcessCalls[] {\r\n funs = this.pagerService.filter('custom', funs, filter);\r\n\r\n return funs;\r\n }\r\n\r\n filterProcessCalls(query: any, page?: number) {\r\n var funs: ProcessCalls[] = this._processCalls;\r\n\r\n if (query === '') {\r\n this.setPage(1);\r\n }\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n // use pipe to filter data\r\n funs = this.filterProcessCallsPipe.transform(funs, query);\r\n\r\n // apply custom filter\r\n funs = this.setProcessCallsFilter(this.selectedFilter, funs);\r\n\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(funs.length, page, this.pageSize);\r\n\r\n // get current page of items \r\n this.pagedItems = funs.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n toggle() {\r\n if (this.opened) {\r\n this.opened = false;\r\n this.icon = 'expand_more';\r\n } else {\r\n this.opened = true;\r\n this.icon = 'expand_less';\r\n }\r\n }\r\n\r\n previewCode(url: string, name: string, language: string) {\r\n if (url) {\r\n if (this.sas) {\r\n window.open(url + this.sas, \"_self\");\r\n }\r\n }\r\n }\r\n\r\n\r\n keepAll(checked: boolean) {\r\n this._processCalls.forEach(function (pc) {\r\n pc.keep = checked;\r\n });\r\n this.onChange.emit(true);\r\n}\r\n\r\nreviewedAll(checked: boolean) {\r\n this._processCalls.forEach(function (pc) {\r\n pc.reviewed = checked;\r\n });\r\n this.onChange.emit(true);\r\n}\r\n\r\n disableKeepAllCheckbox(){\r\n let count =0\r\n this._processCalls.forEach(func => {\r\n if(!this.previewCodeDisabled(func)){\r\n count+=1;\r\n }\r\n });\r\n \r\n if(count<1){\r\n this.keepAllEnabled=false;\r\n }\r\n}\r\n\r\n \r\n countReviewed() {\r\n var count = 0;\r\n this._processCalls.forEach(function (func) {\r\n count += func.reviewed ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n countKeep() {\r\n var count = 0;\r\n this._processCalls.forEach(function (func) {\r\n count += func.keep ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n previewCodeDisabled(item: any): boolean {\r\n \r\n if (item && item.functionFileAsset && item.functionFileAsset.cloudFilename) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n previewCodeIcon(item: any): string {\r\n if (this.previewCodeDisabled(item)) {\r\n return \"cloud_download\";\r\n }\r\n return \"cloud_download\";\r\n }\r\n\r\n setPage(page: number) {\r\n if (page < 1 || page > this.pager.totalPages) {\r\n return;\r\n }\r\n\r\n // if search query apply filter\r\n if (this.search !== '') {\r\n this.filterProcessCalls(this.search, page);\r\n } else {\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(this._processCalls.length, page, this.pageSize);\r\n\r\n // get current page of items\r\n this.pagedItems = this._processCalls.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n }\r\n\r\n}\r\n\r\nexport interface ProcessCalls {\r\n company?: string;\r\n productID?: string;\r\n typeCode?: string;\r\n assemblyReferences?: AssemblyReferences[];\r\n keep?: boolean;\r\n reviewed?: boolean;\r\n description?:string;\r\n}\r\n\r\nexport interface AssemblyReferences\r\n{\r\n processKey?:string;\r\n menuID?: string;\r\n assemblyName?:string;\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/processCalls/processCalls.component.ts\n **/","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { ProcessCalls } from './processCalls.component';\r\n\r\n@Pipe({name: 'filterFunctions'})\r\nexport class FilterProcessCallsPipe implements PipeTransform {\r\n transform(func: ProcessCalls[], query: string): ProcessCalls[] {\r\n if (query === '') {\r\n return func;\r\n }\r\n\r\n let filterResult = func.filter(c => \r\n c.productID.toLowerCase().indexOf(query.toLowerCase()) !== -1 || \r\n c.company.toLowerCase().indexOf(query.toLowerCase()) !== -1);\r\n\r\n if (filterResult == undefined || filterResult.length == 0){\r\n filterResult = this.searchResult(func,query)\r\n }\r\n return filterResult;\r\n }\r\n\r\n searchResult(items: ProcessCalls[], query:any): any[]{\r\n let filteredList:any[]=[];\r\n\r\n if(query==undefined){\r\n return items;\r\n }\r\n else if (items && items.length ){\r\n items.forEach((item: ProcessCalls) => { \r\n if(query!=null){\r\n item.assemblyReferences.forEach(assembly => {\r\n if(assembly.assemblyName.toLowerCase().indexOf(query.toLowerCase()) !=-1){\r\n filteredList.push(item);\r\n }\r\n else if(assembly.menuID.toLowerCase().indexOf(query.toLowerCase()) !=-1){\r\n filteredList.push(item);\r\n }\r\n else if(assembly.processKey.toLowerCase().indexOf(query.toLowerCase()) !=-1){\r\n filteredList.push(item);\r\n }\r\n });\r\n }\r\n });\r\n return filteredList;\r\n }\r\n else{\r\n return items;\r\n }\r\n // return items;\r\n }\r\n} \r\n\r\n\r\n//test\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/processCalls/processCalls.pipe.ts\n **/","module.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tProcess Calls ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_processCalls?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_processCalls?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\tKeep\\r\\n\\t\\t\\t\\t\\t\\t\\tReviewed \\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
5\\\">\\r\\n\\t\\t\\t View: \\r\\n\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/custom/processCalls/processCalls.html\n ** module id = 473\n ** module chunks = 0\n **/","import { Component, Input, Output, EventEmitter, ViewChild, AfterViewInit, OnInit, ViewContainerRef, ElementRef } from '@angular/core';\r\nimport { Response } from '@angular/http';\r\nimport { SitesService } from '../../../core/sites.service';\r\n\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\nimport { CodeDialog, Code } from '../../../../code/code-dialog.component';\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\nimport { FilterBPMPipe } from './bpms.pipe';\r\nimport { ComplexityService } from '../../complexity-type.service';\r\n\r\nimport {ReportOrderByPipe} from '../../../reports/reportorderby.pipe';\r\nimport {ReportGroupByPipe} from '../../../reports/reportgroupby.pipe'\r\nimport {ReportFilterPipe} from '../../../reports/reportfilter.pipe'\r\nimport {BPMsSearchPipe} from '../bpms.search.pipe'\r\n\r\nimport {BPMsReportDialog} from '../bpms.modaldialog'\r\nimport {BPMsReportType} from '../bpms.modaldialog'\r\nimport {ReportComponentService} from '../../../reports/reports.component.service'\r\n\r\n@Component({\r\n selector: 'bpms',\r\n template: require('./bpms.html'),\r\n providers: [SitesService, PagerService, ComplexityService, ReportComponentService]\r\n})\r\nexport class BpmsComponent implements OnInit {\r\n codeDialogRef: MdDialogRef;\r\n wizardDialogRef: MdDialogRef;\r\n _methodDirectives: MethodDirective[] = [];\r\n reportBPMsRef: MdDialogRef;\r\n\r\n isDesc: boolean = false;\r\n column: string = 'group';\r\n direction: number;\r\n\r\n finalBPMsList :string=\"\" ;\r\n toggleFlag = false;\r\n checkedAll :boolean =false;\r\n hidePagination =false;\r\n toggleFlagPagination =false;\r\n setFilterColorColumn = '';\r\n\r\n keepAllEnabled: boolean = true;\r\n linesOfCode: number;\r\n\r\n @Input() onAnalysisRefresh : EventEmitter; \r\n @Input() onFilterCustom: EventEmitter;\r\n\r\n @Input() sas: string;\r\n\r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n if (data.methodDirectives) {\r\n this._methodDirectives = data.methodDirectives;\r\n\r\n this._methodDirectives.forEach((element: any) => {\r\n if (element.hasOwnProperty('cloudComplexity') == false) {\r\n element.cloudComplexity = false;\r\n }\r\n if (element.hasOwnProperty('cloudComplexityType') == false) {\r\n element.cloudComplexityType = 'None';\r\n }\r\n if (element.hasOwnProperty('cloudComplexityDescription') == false) {\r\n element.cloudComplexityDescription = '';\r\n }\r\n });\r\n }\r\n }\r\n }\r\n get data() { return this._methodDirectives; }\r\n\r\n @Output() onChange = new EventEmitter();\r\n\r\n freezeInputs : boolean = false;\r\n opened: boolean = false;\r\n icon: string = 'expand_more';\r\n keep: boolean = false;\r\n reviewed: boolean = false;\r\n search: string = '';\r\n selectedFilter: any = {};\r\n\r\n // pager object\r\n pager: any = {};\r\n\r\n // paged items\r\n pagedItems: any[];\r\n\r\n //page size\r\n pageSize:number = 10;\r\n\r\n // initialise the filter bpm pipe to make use of transform function\r\n filterBPMPipe = new FilterBPMPipe();\r\n clickedOutside:boolean =false;\r\n selectedItems:any[];\r\n constructor(\r\n private pagerService: PagerService,\r\n private complexityService: ComplexityService,\r\n public sitesService: SitesService,\r\n public dialog: MdDialog,\r\n public viewContainerRef: ViewContainerRef,\r\n public reportComponentService: ReportComponentService) { }\r\n\r\n ngOnInit() {\r\n this.onFilterCustom.subscribe((res: any) => {\r\n this.selectedFilter = res;\r\n this.filterCustom(this.selectedFilter, 1);\r\n });\r\n\r\n this.onAnalysisRefresh.subscribe((res:boolean) => {\r\n this.freezeInputs = res;\r\n });\r\n \r\n // initial to page 1\r\n this.setPage(1);\r\n }\r\n\r\n filterCustom(filter: string, page?: number) {\r\n var bpms: any[] = this._methodDirectives;\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n bpms = this.setBPMFilter(filter, bpms);\r\n this.pager = this.pagerService.getPager(bpms.length, page, this.pageSize);\r\n this.pagedItems = bpms.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\r\n }\r\n\r\n setBPMFilter(filter: any, bpms: any[]): any[] {\r\n bpms = this.pagerService.filter('custom', bpms, filter);\r\n\r\n return bpms;\r\n }\r\n\r\n filterBPM(query: any, page?: number) {\r\n var bpms: any[] = this._methodDirectives;\r\n\r\n if (query === '') {\r\n this.setPage(1);\r\n }\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n // use pipe to filter data\r\n bpms = this.filterBPMPipe.transform(bpms, query);\r\n\r\n // apply custom filter\r\n bpms = this.setBPMFilter(this.selectedFilter, bpms);\r\n\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(bpms.length, page, this.pageSize);\r\n\r\n // get current page of items\r\n this.pagedItems = bpms.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n toggle() {\r\n if (this.opened) {\r\n this.opened = false;\r\n this.icon = 'expand_more';\r\n } else {\r\n this.opened = true;\r\n this.icon = 'expand_less';\r\n }\r\n }\r\n\r\n previewCode(url: string, name: string, language: string) {\r\n if (url) {\r\n this.sitesService.getFile(url + this.sas).subscribe((res: Response) => {\r\n\r\n var preview: Code = {\r\n source: res.text(),\r\n language: language,\r\n downloadUrl: url + this.sas,\r\n name: name\r\n };\r\n\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.codeDialogRef = this.dialog.open(CodeDialog, config);\r\n this.codeDialogRef.componentInstance.render(preview);\r\n\r\n this.codeDialogRef.afterClosed().subscribe(result => {\r\n this.codeDialogRef = null;\r\n });\r\n });\r\n }\r\n }\r\n\r\n keepAll(checked: boolean) {\r\n this._methodDirectives.forEach(function (bpms) {\r\n bpms.keep = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n reviewedAll(checked: boolean) {\r\n this._methodDirectives.forEach(function (bpms) {\r\n bpms.reviewed = checked;\r\n });\r\n\r\n this.onChange.emit(true);\r\n }\r\n\r\n countReviewed() {\r\n let count = 0;\r\n this._methodDirectives.forEach(function (bpms) {\r\n count += bpms.reviewed ? 1 : 0;\r\n }); \r\n return count;\r\n }\r\n\r\n countKeep() {\r\n let count = 0;\r\n this._methodDirectives.forEach(function (bpms) {\r\n count += bpms.keep ? 1 : 0;\r\n }); \r\n return count;\r\n }\r\n\r\n previewCodeDisabled(md: MethodDirective): boolean {\r\n\r\n if (md.sourceFiles && md.sourceFiles.length > 0 && md.sourceFiles[0].cloudFilename) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n previewCodeIcon(md: MethodDirective): string {\r\n if (this.previewCodeDisabled(md)) {\r\n return \"cloud_download\";\r\n }\r\n return \"cloud_download\";\r\n }\r\n\r\n KeepCheckBoxEnabled(item: any):boolean\r\n {\r\n this.freezeInputs = false;\r\n return false;\r\n }\r\n\t\r\n openWizardDialog(md: MethodDirective) {\r\n this.wizardDialogRef = this.dialog.open(WizardDialog, {\r\n disableClose: false\r\n });\r\n\r\n this.wizardDialogRef.componentInstance.render(md);\r\n }\r\n\r\n setPage(page: number) {\r\n if (page < 1 || page > this.pager.totalPages) {\r\n return;\r\n }\r\n\r\n // if search query apply filter\r\n if (this.search !== '') {\r\n this.filterBPM(this.search, page);\r\n } else {\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(this._methodDirectives.length, page, this.pageSize);\r\n\r\n // get current page of items\r\n this.pagedItems = this._methodDirectives.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\r\n this.finalBPMsList =\"\";\r\n this.checkedAll=false;\r\n this.reportComponentService.ngInitBPMsFlag(this.pagedItems)\r\n this.sort(this.column);\r\n }\r\n }\r\n openDialog(colElem: any) { \r\n var bpmsDialogInput = {\r\n pagedItems: this.pagedItems, \r\n finalBPMsList: this.finalBPMsList,\r\n selectedColumn : colElem,\r\n checkedAll : this.checkedAll,\r\n bpmsReportType: BPMsReportType[BPMsReportType.BPMs]\r\n };\r\n\r\n this.setFilterColorColumn = colElem\r\n\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.reportBPMsRef = this.dialog.open(BPMsReportDialog,config);\r\n this.reportBPMsRef.componentInstance.render(bpmsDialogInput);\r\n\r\n this.reportBPMsRef.afterClosed().subscribe(result => {\r\n this.clickedOutside= this.reportBPMsRef.componentInstance.clickedOutside;\r\n if(!this.clickedOutside){\r\n this.selectedItems=[];\r\n this.finalBPMsList = this.reportBPMsRef.componentInstance.finalBPMsList;\r\n this.checkedAll = this.reportBPMsRef.componentInstance.checkedAll;\r\n \r\n if(this.finalBPMsList!=null && this.finalBPMsList!=undefined && this.finalBPMsList.length > 0){\r\n this.finalBPMsList.split(',').forEach(item => {\r\n this.selectedItems.push(item);\r\n })\r\n if(this.selectedItems.length != this.pagedItems.length)\r\n this.hidePagination= true;\r\n else\r\n this.hidePagination= false;\r\n }\r\n else\r\n this.hidePagination= false;\r\n }\r\n this.reportBPMsRef =null;\r\n });\r\n }\r\n sort(property:any){\r\n this.isDesc = !this.isDesc; //change the direction\r\n this.column = property;\r\n this.direction = this.isDesc ? 1 : -1;\r\n };\r\n\r\n public setFilterColorGroup(){\r\n return this.reportComponentService.setFilterColorGroup(this.finalBPMsList.toString(), this.setFilterColorColumn); \r\n }\r\n\r\n public setFilterColorName(){\r\n return this.reportComponentService.setFilterColorName(this.finalBPMsList.toString(), this.setFilterColorColumn); \r\n }\r\n public setFilterColorComplexity(){\r\n return this.reportComponentService.setFilterColorComplexity(this.finalBPMsList.toString(), this.setFilterColorColumn); \r\n }\r\n public setFilterColorMethod(){\r\n return this.reportComponentService.setFilterColorMethod(this.finalBPMsList.toString(), this.setFilterColorColumn); \r\n }\r\n public setFilterColorLOC(){\r\n return this.reportComponentService.setFilterColorLOC(this.finalBPMsList.toString(), this.setFilterColorColumn); \r\n } \r\n}\r\n\r\n@Component({\r\n selector: 'wizard-dialog',\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\nexport class WizardDialog {\r\n\r\n @ViewChild('action') action: ElementRef;\r\n @ViewChild('condition') condition: ElementRef;\r\n\r\n constructor(public dialogRef: MdDialogRef) { }\r\n\r\n render(md: any) {\r\n this.action.nativeElement.innerHTML = md.actionText;\r\n this.condition.nativeElement.innerHTML = md.conditionText;\r\n }\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n\r\nexport interface MethodDirective {\r\n name?: string;\r\n group?: string;\r\n sourceFiles?: File[];\r\n\r\n keep?: boolean;\r\n reviewed?: boolean;\r\n purpose?: string;\r\n reason?: string;\r\n comments?: Comment[];\r\n company?: string;\r\n linesOfCode?: number;\r\n}\r\n\r\nexport interface File {\r\n cloudFilename?: string;\r\n localFilePath?: string;\r\n}\r\n\r\nexport interface Comment {\r\n user?: string;\r\n comment: string;\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/bpms/bpms.component.ts\n **/","import { Pipe, PipeTransform } from '@angular/core'\r\n\r\n@Pipe({name: 'filterBPM'})\r\nexport class FilterBPMPipe implements PipeTransform {\r\n transform(bpms: any[], query: string): any[] {\r\n if (query === '') {\r\n return bpms;\r\n }\r\n return bpms.filter(md => \r\n md.group.toLowerCase().indexOf(query.toLowerCase()) !== -1 ||\r\n md.name.toLowerCase().indexOf(query.toLowerCase()) !== -1 ||\r\n md.businessObject.toLowerCase().indexOf(query.toLowerCase()) !== -1);\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/bpms/bpms.pipe.ts\n **/","import { Component, EventEmitter, Input, Output, OnInit, ViewContainerRef, ViewChild, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { PagerService } from '../../../shared/services/pager.service';\r\n\r\n\r\nimport {ReportOrderByPipe} from '../../reports/reportorderby.pipe';\r\nimport {ReportGroupByPipe} from '../../reports/reportgroupby.pipe'\r\nimport {ReportFilterPipe} from '../../reports/reportfilter.pipe'\r\nimport {BPMsSearchPipe} from './bpms.search.pipe'\r\nimport {BPMsFilterColumnName} from './bpms.search.pipe'\r\n\r\n// import {MenusFilteringService} from './menus.filter';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\nimport {ErrorMessageDialog} from '../../reports/reports.component.service'\r\n\r\n@Component({\r\n selector: 'bpms-dialog',\r\n host: {\r\n '(document:click)': 'onClick($event)',\r\n }, \r\n template: `\r\n\r\n \r\n\r\n
{{ bpmsReportType}} - {{selectedColumn}}
\r\n
\r\n\r\n \r\n \r\n \r\n\r\n
\r\n (Select All) \r\n
\r\n
\r\n {{md.value[0].group}} \r\n
\r\n
\r\n \r\n
\r\n
\r\n {{md.value[0].name}}\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{md.value[0].businessObject}}\r\n
\r\n
\r\n
\r\n
\r\n {{md.value[0].customMethod}}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n {{md.value[0].customComplexity}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{md.value[0].linesOfCode}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n`,\r\n providers: [PagerService]\r\n})\r\n\r\nexport class BPMsReportDialog {\r\n constructor(private dialogRef: MdDialogRef, \r\n private errorChangeDetectorRef: ChangeDetectorRef,\r\n private viewContainerRef: ViewContainerRef,\r\n public dialog: MdDialog,\r\n public elementRef: ElementRef) {}\r\n\r\n pagedItems:any;\r\n finalBPMsList:any;\r\n checkedAll:boolean=false;\r\n selectedColumn:string =\"\";\r\n columnDisplayName : string=\"\";\r\n selectedColumnGroupBy : string =\"\";\r\n hidePagination :boolean = false;\r\n disableApplyButton:boolean =false;\r\n bpmsReportType:string='';\r\n bpmsList : any[]=[];\r\n errorDialogRef: MdDialogRef;\r\n clickedOutside:boolean=false;\r\n tempList:any[]=[];\r\n\r\n @ViewChild('container') container: ElementRef;\r\n\r\n render(bpmsDetails:any){\r\n this.pagedItems = bpmsDetails.pagedItems;\r\n this.finalBPMsList = bpmsDetails.finalBPMsList;\r\n this.tempList = this.finalBPMsList;\r\n this.checkedAll = bpmsDetails.checkedAll;\r\n this.selectedColumn = bpmsDetails.selectedColumn;\r\n this.bpmsReportType = this.getDisplayName(bpmsDetails.bpmsReportType)\r\n this.selectedColumnGroupBy = this.getGroupByColumnName();\r\n\r\n if(this.finalBPMsList!=undefined && this.finalBPMsList.length > 0){\r\n this.finalBPMsList.split(',').forEach( (id:any) =>{\r\n this.bpmsList.push(Number(id));\r\n\r\n this.pagedItems.filter((item:any) => item.rowIndex == id).forEach( (item:any) => {\r\n item.isChecked=true;\r\n });\r\n });\r\n }\r\n //modal-content\r\n this.container.nativeElement.children[1].style.maxHeight=\"30vh\";\r\n this.container.nativeElement.children[1].style.overflow=\"auto\";\r\n\r\n //modal-footer\r\n this.container.nativeElement.children[2].style.float=\"right\";\r\n this.container.nativeElement.children[2].style.position=\"relative\";\r\n this.container.nativeElement.children[2].style.top=\"1vh\";\r\n }\r\n\r\n applyModal():any{\r\n \r\n if(this.bpmsList.length >0 && (this.pagedItems.filter((item:any) => item.isChecked==true).length == 0)){\r\n this.showErrorMessage();\r\n this.disableApplyButton=true;\r\n return;\r\n }\r\n\r\n this.disableApplyButton=false;\r\n this.bpmsList=[];\r\n this.pagedItems.filter((item:any) => item.isChecked==true).forEach( (item:any) => {\r\n this.bpmsList.push(item.rowIndex)\r\n });\r\n \r\n this.finalBPMsList = this.bpmsList.toString();\r\n this.dialogRef.close();\r\n }\r\n\r\n checkboxFieldChange(event: any, colElem: any){\r\n if(!event.checked){\r\n this.checkedAll = false; \r\n }\r\n this.checkboxFieldChangedProcess(this.pagedItems, event, colElem)\r\n}\r\n\r\n close() {\r\n this.checkedAll=false;\r\n this.finalBPMsList = this.tempList.toString();\r\n this.dialogRef.close();\r\n }\r\n\r\n toggleAll(event:any){\r\n this.disableApplyButton=false;\r\n this.finalBPMsList = this.setToggleValue(this.pagedItems);\r\n }\r\n\r\n getDisplayName(bpmsReportType:string):string{\r\n if(bpmsReportType == BPMsReportType[BPMsReportType.BPMs])\r\n return \"BPMs\"\r\n else if(bpmsReportType == BPMsReportType[BPMsReportType.BPMsDataDirective])\r\n return \"BPMs (Data Directives)\"\r\n else\r\n return \"BPMs (Updatable BAQs)\"\r\n }\r\n\r\n getGroupByColumnName():string{\r\n if(this.selectedColumn==BPMsFilterColumnName[BPMsFilterColumnName.Group])\r\n return \"group\"\r\n else if(this.selectedColumn==BPMsFilterColumnName[BPMsFilterColumnName.Name])\r\n return \"name\"\r\n else if(this.selectedColumn==BPMsFilterColumnName[BPMsFilterColumnName.Method])\r\n if(this.bpmsReportType == BPMsReportType[BPMsReportType.BPMsUpdatableBAQs])\r\n return \"businessObject\"\r\n else\r\n return \"customMethod\"\r\n else if(this.selectedColumn==BPMsFilterColumnName[BPMsFilterColumnName.Complexity])\r\n return \"customComplexity\"\r\n else \r\n return \"linesOfCode\"\r\n } \r\n\r\n public checkboxFieldChangedProcess(items:any[], event: any, colElem: any){ \r\n\r\n if(colElem==BPMsFilterColumnName[BPMsFilterColumnName.Group]){\r\n return this.groupFieldProcess(items, event);\r\n }\r\n else if(colElem==BPMsFilterColumnName[BPMsFilterColumnName.Name]){\r\n return this.nameFieldProcess(items,event);\r\n }\r\n else if(colElem==BPMsFilterColumnName[BPMsFilterColumnName.Method]){\r\n return this.methodFieldProcess(items,event);\r\n }\r\n else if(colElem==BPMsFilterColumnName[BPMsFilterColumnName.Complexity]){\r\n return this.complexityFieldProcess(items,event);\r\n } \r\n else if(colElem==BPMsFilterColumnName[BPMsFilterColumnName.LOC]){\r\n return this.locFieldProcess(items,event);\r\n } \r\n }\r\n\r\n public groupFieldProcess(items:any[], event: any){\r\n let group = '';\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n group = getRowDetails[0].group;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.group == group).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.group == group).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n\r\n }\r\n\r\n public nameFieldProcess(items:any[], event: any){\r\n let name = '';\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n name = getRowDetails[0].name;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.name == name).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.name == name).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n\r\n public methodFieldProcess(items:any[], event: any){\r\n if(this.bpmsReportType != BPMsReportType[BPMsReportType.BPMsUpdatableBAQs]){\r\n let customMethod = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n customMethod = getRowDetails[0].customMethod;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.customMethod == customMethod).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.customMethod == customMethod).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }else{\r\n let businessObject = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n businessObject = getRowDetails[0].businessObject;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.businessObject == businessObject).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.businessObject == businessObject).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n } \r\n }\r\n }\r\n\r\n public complexityFieldProcess(items:any[], event: any){\r\n let customComplexity = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n customComplexity = getRowDetails[0].customComplexity;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.customComplexity == customComplexity).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.customComplexity == customComplexity).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n\r\n public locFieldProcess(items:any[], event: any){\r\n let linesOfCode = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n linesOfCode = getRowDetails[0].linesOfCode;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.linesOfCode == linesOfCode).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.linesOfCode == linesOfCode).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n\r\n public setToggleValue(items:any[]):string{\r\n let toggleFlag = this.checkedAll;\r\n\r\n items.forEach((item:any) => {\r\n item.isChecked= toggleFlag;\r\n });\r\n \r\n this.bpmsList = [];\r\n if(toggleFlag){\r\n items.forEach ((item) =>{\r\n this.bpmsList.push(Number(item.rowIndex)); \r\n });\r\n }\r\n return this.bpmsList.toString();\r\n }\r\n\r\n public showErrorMessage(){\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.errorDialogRef = this.dialog.open(ErrorMessageDialog, config);\r\n\r\n this.errorDialogRef.afterClosed().subscribe(result => {\r\n this.errorDialogRef = null;\r\n });\r\n }\r\n onClick(event:any) {\r\n var clickedOutsideDialog = event.target;\r\n var inside = false;\r\n do {\r\n if (clickedOutsideDialog === this.elementRef.nativeElement) {\r\n inside = true;\r\n }\r\n clickedOutsideDialog = clickedOutsideDialog.parentNode;\r\n } while (clickedOutsideDialog);\r\n \r\n if(inside){\r\n this.clickedOutside=false;\r\n }else{\r\n this.clickedOutside=true;\r\n }\r\n }\r\n}\r\n\r\n export enum BPMsReportType{\r\n BPMs = 0,\r\n BPMsDataDirective=1,\r\n BPMsUpdatableBAQs=2\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/bpms.modaldialog.ts\n **/","module.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tBPMs ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_methodDirectives?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_methodDirectives?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t\\t\\t\\r\\n \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t
CompanyGroup\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tName\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tMethod\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tComplexity\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tLOC\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tBPM TypeCodeCompatibleCloud WarningKeepReviewed
{{md.company}}{{md.group}}{{md.name}}{{md.customMethod}}{{md.customComplexity}}{{md.linesOfCode}}{{md.transactionScope}} 0\\\" class=\\\"mdl-data-table__cell--non-numeric\\\">\\r\\n \\r\\n\\t\\t\\t\\t\\t\\r\\n \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n
\\r\\n\\t\\t\\t\\t\\t\\t\\t No \\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
10\\\">\\r\\n\\t\\t\\t\\t View: \\r\\n\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/custom/bpms/bpms.html\n ** module id = 477\n ** module chunks = 0\n **/","import { Component, OnInit, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'incompatibilities',\r\n template: require('./incompatibilities.component.html'),\r\n styles: [ require('./incompatibilities.component.css') ] \r\n})\r\nexport class IncompatibilitiesComponent implements OnInit {\r\n @Input() incompatibilities:string [];\r\n visible: boolean = false;\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n if (this.incompatibilities == null) {\r\n this.incompatibilities = [];\r\n this.incompatibilities.push(\"ABL Code will not upgrade to C#\");\r\n }\r\n }\r\n\r\n open() {\r\n if(this.visible) {\r\n this.visible = false;\r\n } else {\r\n this.visible = true;\r\n }\r\n }\r\n\r\n close() {\r\n this.visible = false;\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/incompatibilities.component.ts\n **/","module.exports = \"
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n {{ item }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/incompatibilities.component.html\n ** module id = 479\n ** module chunks = 0\n **/","module.exports = \".container {\\r\\n /*visibility: hidden;*/\\r\\n background-color: #fff;\\r\\n color: #000;\\r\\n border-radius: 2px;\\r\\n box-shadow: 0 19px 38px rgba(0,0,0,0.30), 0 15px 12px rgba(0,0,0,0.22);\\r\\n position: fixed;\\r\\n margin: auto 0px;\\r\\n z-index: 1; \\r\\n display:flex;\\r\\n flex-direction:column; \\r\\n width:150px;\\r\\n padding: 5px 0;\\r\\n}\\r\\n\\r\\n/*#incompatibilities:hover .container {\\r\\n visibility: visible;\\r\\n}*/\\r\\n\\r\\n.item { \\r\\n font-size:10px;\\r\\n display:flex;\\r\\n justify-content: flex-start;\\r\\n padding:2px;\\r\\n width:80px;\\r\\n height:25px;\\r\\n}\\r\\n\"\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/incompatibilities.component.css\n ** module id = 480\n ** module chunks = 0\n **/","import { Component, Input, Output, EventEmitter, OnInit, ViewContainerRef } from '@angular/core';\r\nimport { Response } from '@angular/http';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\n\r\nimport { SitesService } from '../../../core/sites.service';\r\nimport { CodeDialog, Code } from '../../../../code/code-dialog.component';\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\n\r\nimport { ComplexityService } from '../../complexity-type.service';\r\nimport {ReportOrderByPipe} from '../../../reports/reportorderby.pipe';\r\nimport {ReportGroupByPipe} from '../../../reports/reportgroupby.pipe'\r\nimport {ReportFilterPipe} from '../../../reports/reportfilter.pipe'\r\nimport {ReportComponentService} from '../../../reports/reports.component.service'\r\nimport {ErrorMessageDialog} from '../../../reports/reports.component.service'\r\n\r\nimport {ChangeLogsReportDialog} from './changelogs.modaldialog'\r\n\r\n\r\n@Component({\r\n selector: 'changelogs',\r\n template: require('./changelogs.html'),\r\n providers: [SitesService, PagerService,ComplexityService, ReportComponentService]\r\n})\r\nexport class ChangeLogsComponent implements OnInit {\r\n dialogRef: MdDialogRef;\r\n _changeLogs: ChangeLog[] = [];\r\n _changeLogsAll: ChangeLog[] = [];\r\n\r\n @Input() onAnalysisRefresh : EventEmitter;\r\n @Input() onFilterCustom: EventEmitter;\r\n\r\n @Input() sas: string;\r\n\r\n @Input() filter: string;\r\n\r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n if (data.changeLogsABLCode) {\r\n this._changeLogs = data.changeLogsABLCode;\r\n }\r\n }\r\n }\r\n // get data() {\r\n // return this._changeLogs;\r\n // switch (this.filter) {\r\n // case 'All':\r\n // return this._changeLogs;\r\n // case 'To Review':\r\n // return \r\n // default:\r\n // break;\r\n // }\r\n // }\r\n\r\n @Output() onChange = new EventEmitter();\r\n \r\n freezeInputs : boolean = false;\r\n opened: boolean = false;\r\n icon: string = 'expand_more';\r\n keep: boolean = false;\r\n reviewed: boolean = false;\r\n search: string = '';\r\n selectedFilter: string = '';\r\n\r\n // pager object\r\n pager: any = {};\r\n\r\n // paged items\r\n pagedItems: any[];\r\n\r\n //page size\r\n pageSize:number = 10;\r\n\r\n isDesc: boolean = false;\r\n column: string = 'group';\r\n direction: number;\r\n finalChangeLogsList:string=\"\"\r\n hidePagination =false;\r\n toggleFlagPagination =false;\r\n setFilterColorColumn:string =\"\"\r\n checkedAll:boolean =false;\r\n dialogChangeLogsRef : MdDialogRef;\r\n\tclickedOutside:boolean =false;\r\n selectedItems:any[];\r\n\r\n constructor(\r\n private pagerService: PagerService,\r\n public sitesService: SitesService,\r\n public dialog: MdDialog,\r\n public viewContainerRef: ViewContainerRef,\r\n private complexityService: ComplexityService,\r\n public reportComponentService: ReportComponentService) { }\r\n\r\n\r\n ngOnInit() {\r\n this.onFilterCustom.subscribe((res: any) => {\r\n this.selectedFilter = res;\r\n this.filterCustom(this.selectedFilter, 1);\r\n });\r\n \r\n this.onAnalysisRefresh.subscribe((res:boolean) => {\r\n this.freezeInputs = res;\r\n });\r\n\r\n // initial to page 1\r\n this.setPage(1);\r\n }\r\n\r\n filterCustom(filter: string, page?: number) {\r\n //TODO: implement filter custom \r\n }\r\n\r\n setChangeLogfilter() {\r\n //TODO: implement set change log filter\r\n }\r\n\r\n filterChangeLog(query: any, page?: number) {\r\n //TODO: implement filter change log\r\n }\r\n\r\n toggle() {\r\n if (this.opened) {\r\n this.opened = false;\r\n this.icon = 'expand_more';\r\n } else {\r\n this.opened = true;\r\n this.icon = 'expand_less';\r\n }\r\n }\r\n\r\n previewCode(url: string, name: string, language: string) {\r\n if (url) {\r\n this.sitesService.getFile(url + this.sas).subscribe((res: Response) => {\r\n\r\n var preview: Code = {\r\n source: res.text(),\r\n language: language,\r\n downloadUrl: url + this.sas,\r\n name: name\r\n };\r\n\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.dialogRef = this.dialog.open(CodeDialog, config);\r\n this.dialogRef.componentInstance.render(preview);\r\n\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n this.dialogRef = null;\r\n });\r\n });\r\n }\r\n }\r\n\r\n keepAll(checked: boolean) {\r\n this._changeLogs.forEach(function (bpms) {\r\n bpms.keep = checked;\r\n });\r\n\r\n this.onChange.emit(true);\r\n }\r\n\r\n reviewedAll(checked: boolean) {\r\n this._changeLogs.forEach(function (bpms) {\r\n bpms.reviewed = checked;\r\n });\r\n\r\n this.onChange.emit(true);\r\n }\r\n\r\n countReviewed() {\r\n let count = 0;\r\n this._changeLogs.forEach(function (bpms) {\r\n count += bpms.reviewed ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n countKeep() {\r\n let count = 0;\r\n this._changeLogs.forEach(function (bpms) {\r\n count += bpms.keep ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n toggleDetails(cl: ChangeLog) {\r\n cl.moreDetails = !cl.moreDetails;\r\n }\r\n\r\n sortAsc: number = -1;\r\n\r\n\r\n sortItems(sortby: string) {\r\n let sortAsc = this.sortAsc;\r\n\r\n this._changeLogs = this._changeLogs.sort(function (a, b): number {\r\n if (a[sortby] > b[sortby]) {\r\n return -1 * sortAsc\r\n }\r\n else return 1 * sortAsc\r\n });\r\n sortAsc = sortAsc * -1;\r\n\r\n }\r\n\r\n\r\n previewCodeDisabled(item: ChangeLog): boolean {\r\n\r\n\r\n if (item.alertProgram && item.alertProgram.length > 0 && item.alertProgram[0].cloudFilename) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n previewCodeIcon(item: ChangeLog): string {\r\n if (this.previewCodeDisabled(item)) {\r\n return \"cloud_download\";\r\n }\r\n return \"cloud_download\";\r\n }\r\n\r\n setPage(page: number) {\r\n if (page < 1 || page > this.pager.totalPages) {\r\n return;\r\n }\r\n\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(this._changeLogs.length, page, this.pageSize);\r\n\r\n // get current page of items\r\n this.pagedItems = this._changeLogs.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\r\n this.finalChangeLogsList =\"\";\r\n this.checkedAll=false;\r\n this.reportComponentService.ngInitChangeLogsFlag(this.pagedItems)\r\n this.sort(this.column)\r\n }\r\n\r\n sort(property:any){\r\n this.isDesc = !this.isDesc; //change the direction\r\n this.column = property;\r\n this.direction = this.isDesc ? 1 : -1;\r\n }\r\n\r\n openDialog(colElem: any) {\r\n var ChangeLogsDialogInput = {\r\n pagedItems: this.pagedItems, \r\n finalChangeLogsList: this.finalChangeLogsList,\r\n selectedColumn : colElem,\r\n checkedAll : this.checkedAll,\r\n };\r\n \r\n this.setFilterColorColumn = colElem\r\n\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.dialogChangeLogsRef = this.dialog.open(ChangeLogsReportDialog,config);\r\n this.dialogChangeLogsRef.componentInstance.render(ChangeLogsDialogInput);\r\n\r\n this.dialogChangeLogsRef.afterClosed().subscribe(result => {\r\n this.clickedOutside= this.dialogChangeLogsRef.componentInstance.clickedOutside;\r\n if(!this.clickedOutside){\r\n this.selectedItems=[];\r\n this.finalChangeLogsList = this.dialogChangeLogsRef.componentInstance.finalChangeLogsList;\r\n this.checkedAll = this.dialogChangeLogsRef.componentInstance.checkedAll;\r\n \r\n if(this.finalChangeLogsList!=null && this.finalChangeLogsList!=undefined && this.finalChangeLogsList.length > 0){\r\n this.finalChangeLogsList.split(',').forEach(item => {\r\n this.selectedItems.push(item);\r\n })\r\n if(this.selectedItems.length != this.pagedItems.length)\r\n this.hidePagination= true;\r\n else\r\n this.hidePagination= false;\r\n }\r\n else\r\n this.hidePagination= false;\r\n }\r\n this.dialogChangeLogsRef =null;\r\n });\r\n } \r\n\r\n public setFilterColorDesc(){\r\n return this.reportComponentService.setFilterColorDesc(this.finalChangeLogsList.toString(), this.setFilterColorColumn); \r\n }\r\n\r\n public setFilterColorTable(){\r\n return this.reportComponentService.setFilterColorTable(this.finalChangeLogsList.toString(), this.setFilterColorColumn); \r\n }\r\n public setFilterColorLOC(){\r\n return this.reportComponentService.setFilterColorLOC(this.finalChangeLogsList.toString(), this.setFilterColorColumn); \r\n }\r\n public setFilterColorComplexity(){\r\n return this.reportComponentService.setFilterColorComplexity(this.finalChangeLogsList.toString(), this.setFilterColorColumn); \r\n }\r\n\r\n}\r\n\r\nexport interface ChangeLog {\r\n tableName?: string;\r\n description?: string;\r\n alertProgram?: File[]\r\n keep?: boolean;\r\n reviewed?: boolean;\r\n purpose?: string;\r\n reason?: string;\r\n moreDetails?: boolean;\r\n comments?: Comment[];\r\n}\r\n\r\n\r\n\r\nexport interface File {\r\n cloudFilename?: string;\r\n localFilePath?: string;\r\n}\r\n\r\nexport interface Comment {\r\n user?: string;\r\n comment: string;\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/changelogs/changelogs.component.ts\n **/","module.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tChange Logs (ABL) ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_changeLogs?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_changeLogs?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
Description\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tTable\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tCodeLOC\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tComplexity\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tKeepReviewedMore
{{cl?.description}}{{cl?.tableName}}\\r\\n \\r\\n\\r\\n\\t\\t\\t\\t\\t\\t{{cl?.linesOfCode}}{{cl?.complexity}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
Field List:\\r\\n\\t\\t\\t\\t\\t\\t\\t{{cl?.useFieldList}}\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\t\\r\\n\\t\\t\\t\\t
10\\\">\\r\\n\\t\\t\\t\\t\\t View: \\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/custom/changelogs/changelogs.html\n ** module id = 482\n ** module chunks = 0\n **/","import { Component, Input, Output, EventEmitter, ViewChild, AfterViewInit, OnInit, ViewContainerRef } from '@angular/core';\r\nimport { Response } from '@angular/http';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\n\r\nimport { SitesService } from '../../../core/sites.service';\r\nimport { CodeDialog, Code } from '../../../../code/code-dialog.component';\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\nimport { FilterBankInterfacePipe } from './bankInterfaces.pipe';\r\nimport { ComplexityService } from '../../complexity-type.service';\r\n\r\nimport {ReportOrderByPipe} from '../../../reports/reportorderby.pipe';\r\nimport {ReportGroupByPipe} from '../../../reports/reportgroupby.pipe'\r\nimport {ReportFilterPipe} from '../../../reports/reportfilter.pipe'\r\nimport {BankInterfaceSearchPipe} from './bankInterfaces.search.pipe'\r\nimport {ReportComponentService} from '../../../reports/reports.component.service'\r\nimport {BankInterfaceReportDialog} from './bankInterfaces.modaldialog'\r\n\r\n@Component({\r\n selector: 'bankInterfaces',\r\n template: require('./bankInterfaces.html'),\r\n providers: [SitesService, PagerService, ComplexityService, ReportComponentService]\r\n})\r\nexport class BankInterfacesComponent implements OnInit {\r\n dialogRef: MdDialogRef;\r\n\r\n _bankInterfaces: BankInterface[] = [];\r\n \r\n @Input() onAnalysisRefresh : EventEmitter;\r\n @Input() onFilterCustom: EventEmitter;\r\n\r\n @Input() sas: string;\r\n\r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n if (data.electronicBankInterfaces) {\r\n this._bankInterfaces = data.electronicBankInterfaces;\r\n }\r\n }\r\n }\r\n get data() { return this._bankInterfaces; }\r\n\r\n @Output() onChange = new EventEmitter();\r\n \r\n freezeInputs : boolean = false;\r\n opened: boolean = false;\r\n icon: string = 'expand_more';\r\n keep: boolean = false;\r\n reviewed: boolean = false;\r\n search: string = '';\r\n selectedFilter: any = {};\r\n\r\n // pager object\r\n pager: any = {};\r\n\r\n // paged items\r\n pagedItems: any[];\r\n\r\n //page size\r\n pageSize:number = 10;\r\n\r\n // initialise the filter bank interfaces to make of transform function\r\n filterBankInterfacePipe = new FilterBankInterfacePipe();\r\n\r\n isDesc: boolean = false;\r\n column: string = 'group';\r\n direction: number;\r\n finalBankInterfaceList:string=\"\"\r\n hidePagination =false;\r\n toggleFlagPagination =false;\r\n setFilterColorColumn:string =\"\"\r\n checkedAll:boolean =false;\r\n dialogBankInterfaceRef : MdDialogRef;\r\n\tclickedOutside:boolean =false;\r\n\tselectedItems:any[];\r\n constructor(\r\n private pagerService: PagerService,\r\n public sitesService: SitesService,\r\n private complexityService: ComplexityService,\r\n public dialog: MdDialog,\r\n public viewContainerRef: ViewContainerRef,\r\n public reportComponentService: ReportComponentService) { }\r\n\r\n ngOnInit() {\r\n this.onFilterCustom.subscribe((res: any) => {\r\n this.selectedFilter = res;\r\n this.filterCustom(this.selectedFilter, 1);\r\n });\r\n \r\n this.onAnalysisRefresh.subscribe((res:boolean) => {\r\n this.freezeInputs = res;\r\n });\r\n \r\n // initial to page 1\r\n this.setPage(1);\r\n }\r\n\r\n filterCustom(filter: any, page?: number) {\r\n var bankInterfaces: BankInterface[] = this._bankInterfaces;\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n bankInterfaces = this.setBankInterfaceFilter(filter, bankInterfaces);\r\n this.pager = this.pagerService.getPager(bankInterfaces.length, page, this.pageSize);\r\n this.pagedItems = bankInterfaces.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n setBankInterfaceFilter(filter: any, bankInterfaces: BankInterface[]): BankInterface[] {\r\n bankInterfaces = this.pagerService.filter('custom', bankInterfaces, filter);\r\n\r\n return bankInterfaces;\r\n }\r\n\r\n filterBankInterface(query: any, page?: number) {\r\n var bankInterfaces: BankInterface[] = this._bankInterfaces;\r\n\r\n if (query === '') {\r\n this.setPage(1);\r\n }\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n // use pipe to filter data\r\n bankInterfaces = this.filterBankInterfacePipe.transform(bankInterfaces, query);\r\n\r\n // apply custom filter\r\n bankInterfaces = this.setBankInterfaceFilter(this.selectedFilter, bankInterfaces);\r\n\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(bankInterfaces.length, page, this.pageSize);\r\n\r\n // get current page of items\r\n this.pagedItems = bankInterfaces.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n toggle() {\r\n if (this.opened) {\r\n this.opened = false;\r\n this.icon = 'expand_more';\r\n } else {\r\n this.opened = true;\r\n this.icon = 'expand_less';\r\n }\r\n }\r\n\r\n previewCode(url: string, name: string, language: string) {\r\n if (url) {\r\n this.sitesService.getFile(url + this.sas).subscribe((res: Response) => {\r\n\r\n var preview: Code = {\r\n source: res.text(),\r\n language: language,\r\n downloadUrl: url + this.sas,\r\n name: name\r\n };\r\n\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.dialogRef = this.dialog.open(CodeDialog, config);\r\n this.dialogRef.componentInstance.render(preview);\r\n\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n this.dialogRef = null;\r\n });\r\n });\r\n }\r\n }\r\n\r\n keepAll(checked: boolean) {\r\n this._bankInterfaces.forEach(function (item) {\r\n item.keep = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n reviewedAll(checked: boolean) {\r\n this._bankInterfaces.forEach(function (item) {\r\n item.reviewed = checked;\r\n });\r\n\r\n this.onChange.emit(true);\r\n }\r\n\r\n countReviewed() {\r\n let count = 0;\r\n this._bankInterfaces.forEach(function (item) {\r\n count += item.reviewed ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n countKeep() {\r\n let count = 0;\r\n this._bankInterfaces.forEach(function (item) {\r\n count += item.keep ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n toggleDetails(cl: BankInterface) {\r\n cl.moreDetails = !cl.moreDetails;\r\n }\r\n\r\n sortAsc: number = -1;\r\n\r\n\r\n sortItems(sortby: string) {\r\n let sortAsc = this.sortAsc;\r\n\r\n this._bankInterfaces = this._bankInterfaces.sort(function (a, b): number {\r\n if (a[sortby] > b[sortby]) {\r\n return -1 * sortAsc\r\n }\r\n else return 1 * sortAsc\r\n });\r\n sortAsc = sortAsc * -1;\r\n\r\n }\r\n\r\n previewCodeDisabled(item: BankInterface): boolean {\r\n if (item.program && item.program.cloudFilename) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n previewCodeIcon(item: BankInterface): string {\r\n if (this.previewCodeDisabled(item)) {\r\n return \"cloud_download\";\r\n }\r\n return \"cloud_download\";\r\n }\r\n\r\n setPage(page: number) {\r\n if (page < 1 || page > this.pager.totalPages) {\r\n return;\r\n }\r\n\r\n // if search query apply filter\r\n if (this.search !== '') {\r\n this.filterBankInterface(this.search, page);\r\n } else {\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(this._bankInterfaces.length, page, this.pageSize);\r\n // get current page of items\r\n this.pagedItems = this._bankInterfaces.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\r\n this.finalBankInterfaceList =\"\";\r\n this.checkedAll=false;\r\n this.reportComponentService.ngInitBankInterfaceFlag(this.pagedItems)\r\n this.sort(this.column)\r\n }\r\n }\r\n\r\n sort(property:any){\r\n this.isDesc = !this.isDesc; //change the direction\r\n this.column = property;\r\n this.direction = this.isDesc ? 1 : -1;\r\n }\r\n\r\n openDialog(colElem: any) {\r\n var BankInerfaceDialogInput = {\r\n pagedItems: this.pagedItems, \r\n finalBankInterfaceList: this.finalBankInterfaceList,\r\n selectedColumn : colElem,\r\n checkedAll : this.checkedAll,\r\n };\r\n \r\n this.setFilterColorColumn = colElem\r\n\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.dialogBankInterfaceRef = this.dialog.open(BankInterfaceReportDialog,config);\r\n this.dialogBankInterfaceRef.componentInstance.render(BankInerfaceDialogInput);\r\n\r\n this.dialogBankInterfaceRef.afterClosed().subscribe(result => {\r\n this.clickedOutside= this.dialogBankInterfaceRef.componentInstance.clickedOutside;\r\n if(!this.clickedOutside){\r\n this.selectedItems=[];\r\n this.finalBankInterfaceList = this.dialogBankInterfaceRef.componentInstance.finalBankInterfaceList;\r\n this.checkedAll = this.dialogBankInterfaceRef.componentInstance.checkedAll;\r\n \r\n if(this.finalBankInterfaceList!=null && this.finalBankInterfaceList!=undefined && this.finalBankInterfaceList.length > 0){\r\n this.finalBankInterfaceList.split(',').forEach(item => {\r\n this.selectedItems.push(item);\r\n })\r\n if(this.selectedItems.length != this.pagedItems.length)\r\n this.hidePagination= true;\r\n else\r\n this.hidePagination= false;\r\n }\r\n else\r\n this.hidePagination= false;\r\n }\r\n this.dialogBankInterfaceRef =null;\r\n });\r\n\t\t } \r\n\r\n public setFilterColorCompanies(){\r\n return this.reportComponentService.setFilterColorCompanies(this.finalBankInterfaceList.toString(), this.setFilterColorColumn); \r\n }\r\n\r\n public setFilterColorType(){\r\n return this.reportComponentService.setFilterColorType(this.finalBankInterfaceList.toString(), this.setFilterColorColumn); \r\n }\r\n public setFilterColorName(){\r\n return this.reportComponentService.setFilterColorName(this.finalBankInterfaceList.toString(), this.setFilterColorColumn); \r\n }\r\n public setFilterColorComplexity(){\r\n return this.reportComponentService.setFilterColorComplexity(this.finalBankInterfaceList.toString(), this.setFilterColorColumn); \r\n }\r\n public setFilterColorLOC(){\r\n return this.reportComponentService.setFilterColorLOC(this.finalBankInterfaceList.toString(), this.setFilterColorColumn); \r\n } \r\n\r\n}\r\n\r\nexport interface BankInterface {\r\n company?: string;\r\n interfaceName?: string;\r\n interfaceType?: string;\r\n linesOfCode?: number;\r\n description?: string;\r\n complexity?: number;\r\n program?: File\r\n\r\n keep?: boolean;\r\n reviewed?: boolean;\r\n moreDetails?: boolean;\r\n comments?: Comment[];\r\n}\r\n\r\n\r\n\r\nexport interface File {\r\n cloudFilename?: string;\r\n localFilePath?: string;\r\n}\r\n\r\nexport interface Comment {\r\n user?: string;\r\n comment: string;\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/bankInterfaces/bankInterfaces.component.ts\n **/","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { BankInterface } from './bankInterfaces.component';\r\n\r\n@Pipe({name: 'filterBankInterface'})\r\nexport class FilterBankInterfacePipe implements PipeTransform {\r\n transform(bankInterfaces: BankInterface[], query: string): BankInterface[] {\r\n if(query === '') {\r\n return bankInterfaces;\r\n }\r\n return bankInterfaces.filter(bi =>\r\n bi.company.toLowerCase().indexOf(query.toLowerCase()) !== -1 ||\r\n bi.interfaceType.toLowerCase().indexOf(query.toLowerCase()) !== -1 ||\r\n bi.interfaceName.toLowerCase().indexOf(query.toLowerCase()) !== -1);\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/bankInterfaces/bankInterfaces.pipe.ts\n **/","module.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tBank Interfaces ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_bankInterfaces?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_bankInterfaces?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
Companies\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tType\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tName\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tCodeLOC\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tComplexity\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tKeepReviewed
{{bi?.company}}{{bi?.interfaceType}}{{bi?.interfaceName}} \\r\\n\\t\\t\\t\\t\\t\\t{{bi?.linesOfCode}}{{bi?.complexity}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
\\t\\t\\r\\n\\t\\t\\t
10\\\">\\r\\n\\t\\t\\t\\t View: \\r\\n\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\\r\\n\\r\\n\\r\\n\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/custom/bankInterfaces/bankInterfaces.html\n ** module id = 485\n ** module chunks = 0\n **/","import { Component, EventEmitter, Input, Output, ViewChild, AfterViewInit, OnInit, ViewContainerRef } from '@angular/core';\r\nimport { Response } from '@angular/http';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\n\r\nimport { SitesService } from '../../../core/sites.service';\r\nimport { CodeDialog, Code } from '../../../../code/code-dialog.component';\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\nimport { FilterDataDirectivePipe } from './dataDirectives.pipe';\r\nimport { ComplexityService } from '../../complexity-type.service';\r\n\r\nimport {ReportOrderByPipe} from '../../../reports/reportorderby.pipe';\r\nimport {ReportGroupByPipe} from '../../../reports/reportgroupby.pipe'\r\nimport {ReportFilterPipe} from '../../../reports/reportfilter.pipe'\r\nimport {BPMsSearchPipe} from '../bpms.search.pipe'\r\n\r\nimport {BPMsReportDialog} from '../bpms.modaldialog'\r\nimport {BPMsReportType} from '../bpms.modaldialog'\r\nimport {ReportComponentService} from '../../../reports/reports.component.service'\r\n\r\n@Component({\r\n selector: 'dataDirectives',\r\n template: require('./dataDirectives.html'),\r\n providers: [SitesService, PagerService, ComplexityService, ReportComponentService]\r\n})\r\nexport class DataDirectivesComponent implements OnInit {\r\n dialogRef: MdDialogRef;\r\n dialogBPMsDDRef : MdDialogRef;\r\n _dataDirectives: DataDirective[] = [];\r\n\r\n @Input() onAnalysisRefresh : EventEmitter; \r\n @Input() onFilterCustom: EventEmitter;\r\n\r\n @Input() sas: string;\r\n\r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n if (data.dataDirectives) {\r\n this._dataDirectives = data.dataDirectives;\r\n\r\n this._dataDirectives.forEach((element: any) => {\r\n if (element.hasOwnProperty('cloudComplexity') == false) {\r\n element.cloudComplexity = false;\r\n }\r\n if (element.hasOwnProperty('cloudComplexityType') == false) {\r\n element.cloudComplexityType = 'None';\r\n }\r\n if (element.hasOwnProperty('cloudComplexityDescription') == false) {\r\n element.cloudComplexityDescription = '';\r\n }\r\n });\r\n }\r\n }\r\n }\r\n get data() { return this._dataDirectives; }\r\n\r\n @Output() onChange = new EventEmitter();\r\n \r\n freezeInputs : boolean = false;\r\n opened: boolean = false;\r\n icon: string = 'expand_more';\r\n keep: boolean = false;\r\n reviewed: boolean = false;\r\n search: string = '';\r\n selectedFilter: any = {};\r\n pager: any = {};\r\n pagedItems: any[];\r\n //page size\r\n pageSize:number = 10;\r\n\r\n filterDataDirectivePipe = new FilterDataDirectivePipe();\r\n\r\n isDesc: boolean = false;\r\n column: string = 'group';\r\n direction: number;\r\n finalBPMsDDList :string=\"\" ;\r\n checkedAll : boolean =false;\r\n hidePagination =false;\r\n toggleFlagPagination =false;\r\n setFilterColorColumn = '';\r\n clickedOutside:boolean =false;\r\n selectedItems:any[];\r\n\r\n constructor(\r\n private pagerService: PagerService,\r\n private complexityService: ComplexityService,\r\n public sitesService: SitesService,\r\n public dialog: MdDialog,\r\n public viewContainerRef: ViewContainerRef,\r\n public reportComponentService : ReportComponentService) { }\r\n\r\n ngOnInit() {\r\n this.onFilterCustom.subscribe((res: any) => {\r\n this.selectedFilter = res;\r\n this.filterCustom(this.selectedFilter, 1);\r\n });\r\n\r\n this.onAnalysisRefresh.subscribe((res:boolean) => {\r\n this.freezeInputs = res;\r\n });\r\n \r\n // initial to page 1\r\n this.setPage(1);\r\n }\r\n\r\n filterCustom(filter: any, page?: number) {\r\n var dataDirectives: DataDirective[] = this._dataDirectives;\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n dataDirectives = this.setDataDirectiveFilter(filter, dataDirectives);\r\n this.pager = this.pagerService.getPager(dataDirectives.length, page, this.pageSize);\r\n this.pagedItems = dataDirectives.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n setDataDirectiveFilter(filter: any, dataDirectives: DataDirective[]): DataDirective[] {\r\n dataDirectives = this.pagerService.filter('custom', dataDirectives, filter);\r\n\r\n return dataDirectives;\r\n }\r\n\r\n filterDataDirective(query: any, page?: number) {\r\n var dataDirectives: DataDirective[] = this._dataDirectives;\r\n\r\n if (query === '') {\r\n this.setPage(1);\r\n }\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n // use pipe to filter data\r\n dataDirectives = this.filterDataDirectivePipe.transform(dataDirectives, query);\r\n\r\n // apply custom filter\r\n dataDirectives = this.setDataDirectiveFilter(this.selectedFilter, dataDirectives);\r\n\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(dataDirectives.length, page, this.pageSize);\r\n\r\n // get current page of items \r\n this.pagedItems = dataDirectives.slice(this.pager.startIndex, this.pager.endIndex + 1)\r\n }\r\n\r\n toggle() {\r\n if (this.opened) {\r\n this.opened = false;\r\n this.icon = 'expand_more';\r\n } else {\r\n this.opened = true;\r\n this.icon = 'expand_less';\r\n }\r\n }\r\n\r\n previewCode(url: string, name: string, language: string) {\r\n if (url) {\r\n this.sitesService.getFile(url + this.sas).subscribe((res: Response) => {\r\n\r\n var preview: Code = {\r\n source: res.text(),\r\n language: language,\r\n downloadUrl: url + this.sas,\r\n name: name\r\n };\r\n\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.dialogRef = this.dialog.open(CodeDialog, config);\r\n this.dialogRef.componentInstance.render(preview);\r\n\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n this.dialogRef = null;\r\n });\r\n });\r\n }\r\n }\r\n\r\n keepAll(checked: boolean) {\r\n this._dataDirectives.forEach(function (bpms) {\r\n bpms.keep = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n reviewedAll(checked: boolean) {\r\n this._dataDirectives.forEach(function (bpms) {\r\n bpms.reviewed = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n countReviewed() {\r\n let count = 0;\r\n this._dataDirectives.forEach(function (bpms) {\r\n count += bpms.reviewed ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n countKeep() {\r\n let count = 0;\r\n this._dataDirectives.forEach(function (bpms) {\r\n count += bpms.keep ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n previewCodeDisabled(md: DataDirective): boolean {\r\n\r\n\r\n if (md.sourceFiles && md.sourceFiles.length > 0 && md.sourceFiles[0].cloudFilename) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n previewCodeIcon(md: DataDirective): string {\r\n if (this.previewCodeDisabled(md)) {\r\n return \"cloud_download\";\r\n }\r\n return \"cloud_download\";\r\n }\r\n\r\n setPage(page: number) {\r\n if (page < 1 || page > this.pager.totalPages) {\r\n return;\r\n }\r\n\r\n // if search query apply filter\r\n if (this.search !== '') {\r\n this.filterDataDirective(this.search, page);\r\n } else {\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(this._dataDirectives.length, page, this.pageSize);\r\n\r\n // get current page of items\r\n this.pagedItems = this._dataDirectives.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\r\n this.finalBPMsDDList =\"\";\r\n this.checkedAll=false;\r\n this.reportComponentService.ngInitBPMsFlag(this.pagedItems)\r\n this.sort(this.column);\r\n }\r\n }\r\n\r\n sort(property:any){\r\n this.isDesc = !this.isDesc; //change the direction\r\n this.column = property;\r\n this.direction = this.isDesc ? 1 : -1;\r\n }\r\n\r\n openDialog(colElem: any) {\r\n var BPMsDialogInput = {\r\n pagedItems: this.pagedItems, \r\n finalBPMsList: this.finalBPMsDDList,\r\n selectedColumn : colElem,\r\n checkedAll : this.checkedAll,\r\n bpmsReportType: BPMsReportType[BPMsReportType.BPMsDataDirective]\r\n };\r\n \r\n this.setFilterColorColumn = colElem\r\n\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.dialogBPMsDDRef = this.dialog.open(BPMsReportDialog,config);\r\n this.dialogBPMsDDRef.componentInstance.render(BPMsDialogInput);\r\n\r\n this.dialogBPMsDDRef.afterClosed().subscribe(result => {\r\n this.clickedOutside= this.dialogBPMsDDRef.componentInstance.clickedOutside;\r\n if(!this.clickedOutside){\r\n this.selectedItems=[];\r\n this.finalBPMsDDList = this.dialogBPMsDDRef.componentInstance.finalBPMsList;\r\n this.checkedAll = this.dialogBPMsDDRef.componentInstance.checkedAll;\r\n\r\n if(this.finalBPMsDDList!=null && this.finalBPMsDDList!=undefined && this.finalBPMsDDList.length > 0){\r\n this.finalBPMsDDList.split(',').forEach(item => {\r\n this.selectedItems.push(item);\r\n })\r\n if(this.selectedItems.length != this.pagedItems.length)\r\n this.hidePagination= true;\r\n else\r\n this.hidePagination= false;\r\n }\r\n else\r\n this.hidePagination= false;\r\n }\r\n this.dialogBPMsDDRef =null;\r\n });\r\n \r\n } \r\n\r\n public setFilterColorGroup(){\r\n return this.reportComponentService.setFilterColorGroup(this.finalBPMsDDList.toString(), this.setFilterColorColumn); \r\n }\r\n\r\n public setFilterColorName(){\r\n return this.reportComponentService.setFilterColorName(this.finalBPMsDDList.toString(), this.setFilterColorColumn); \r\n }\r\n public setFilterColorComplexity(){\r\n return this.reportComponentService.setFilterColorComplexity(this.finalBPMsDDList.toString(), this.setFilterColorColumn); \r\n }\r\n public setFilterColorMethod(){\r\n return this.reportComponentService.setFilterColorMethod(this.finalBPMsDDList.toString(), this.setFilterColorColumn); \r\n }\r\n public setFilterColorLOC(){\r\n return this.reportComponentService.setFilterColorLOC(this.finalBPMsDDList.toString(), this.setFilterColorColumn); \r\n }\r\n\r\n}\r\n\r\nexport interface DataDirective {\r\n name?: string;\r\n group?: string;\r\n sourceFiles?: File[];\r\n\r\n keep?: boolean;\r\n reviewed?: boolean;\r\n purpose?: string;\r\n reason?: string;\r\n comments?: Comment[];\r\n company?: string;\r\n}\r\n\r\n\r\n\r\nexport interface File {\r\n cloudFilename?: string;\r\n localFilePath?: string;\r\n}\r\n\r\nexport interface Comment {\r\n user?: string;\r\n comment: string;\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/dataDirectives/dataDirectives.component.ts\n **/","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DataDirective } from './dataDirectives.component';\r\n\r\n@Pipe({name: 'filterDataDirective'})\r\nexport class FilterDataDirectivePipe implements PipeTransform {\r\n transform(dataDirectives: DataDirective[], query: string): DataDirective[] {\r\n if (query === '') {\r\n return dataDirectives;\r\n }\r\n return dataDirectives.filter(dd => \r\n dd.name.toLowerCase().indexOf(query.toLowerCase()) !== -1);\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/dataDirectives/dataDirectives.pipe.ts\n **/","module.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tBPM (Data Directives) ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_dataDirectives?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_dataDirectives?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t
CompanyGroup\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tName\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tMethod\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tComplexity\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tLOC\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tCodeCompatibleCloud WarningKeepReviewed
{{dd.company}}{{dd.group}}{{dd.name}}{{dd.customMethod}}{{dd.customComplexity }}{{dd.linesOfCode}} 0\\\" class=\\\"mdl-data-table__cell--non-numeric\\\">\\r\\n \\r\\n\\t\\t\\t\\t\\t\\r\\n \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n
\\r\\n\\t\\t\\t\\t\\t\\t\\t No \\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
10\\\">\\r\\n\\t\\t\\t\\t View: \\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/custom/dataDirectives/dataDirectives.html\n ** module id = 488\n ** module chunks = 0\n **/","import { Component, Input, Output, EventEmitter, ViewChild, ViewContainerRef, OnInit } from '@angular/core';\r\nimport { Response } from '@angular/http';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\n\r\nimport { SitesService } from '../../../core/sites.service';\r\nimport { CodeDialog, Code } from '../../../../code/code-dialog.component';\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\nimport { FilterSqlViewPipe } from './sqlViews.pipe';\r\n\r\nimport { ComplexityService } from '../../complexity-type.service';\r\n\r\nimport {ReportOrderByPipe} from '../../../reports/reportorderby.pipe';\r\nimport {ReportGroupByPipe} from '../../../reports/reportgroupby.pipe'\r\nimport {ReportFilterPipe} from '../../../reports/reportfilter.pipe'\r\nimport {SQLSearchPipe} from '../sql.search.pipe'\r\n\r\nimport {SQLReportDialog} from '../sql.modaldialog'\r\nimport {SQLReportType} from '../sql.modaldialog'\r\nimport {ReportComponentService} from '../../../reports/reports.component.service'\r\n\r\n@Component({\r\n selector: 'sqlViews',\r\n template: require('./sqlViews.html'),\r\n providers: [SitesService, PagerService, ComplexityService, ReportComponentService]\r\n})\r\nexport class SqlViewsComponent implements OnInit {\r\n dialogRef: MdDialogRef;\r\n _sqlViews: SqlView[] = [];\r\n sqlViewsDialogRef: MdDialogRef; \r\n \r\n @Input() onAnalysisRefresh : EventEmitter;\r\n @Input() onFilterCustom: EventEmitter;\r\n\r\n @Input() sas: string;\r\n\r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n if (data.sqlViews) {\r\n this._sqlViews = data.sqlViews;\r\n\r\n this._sqlViews.forEach((element:any) => {\r\n if(element.hasOwnProperty('cloudComplexity')==false){\r\n element.cloudComplexity= true;\r\n }\r\n if(element.hasOwnProperty('cloudComplexityType')==false){\r\n element.cloudComplexityType= 'None';\r\n }\r\n if(element.hasOwnProperty('cloudComplexityDescription')==false){\r\n element.cloudComplexityDescription= '';\r\n }\r\n }); \r\n }\r\n }\r\n }\r\n get data() { return this._sqlViews; }\r\n\r\n @Output() onChange = new EventEmitter();\r\n \r\n freezeInputs : boolean = false;\r\n opened: boolean = false;\r\n icon: string = 'expand_more';\r\n keep: boolean = false;\r\n reviewed: boolean = false;\r\n search: string = '';\r\n selectedFilter: any = {};\r\n\r\n // pager object\r\n pager: any = {};\r\n\r\n // paged items\r\n pagedItems: any[];\r\n\r\n //page size\r\n pageSize:number = 10;\r\n\r\n // initialise the filter sql views pipe to make use of transform function\r\n filterSqlViewPipe = new FilterSqlViewPipe();\r\n\r\n isDesc: boolean = false;\r\n column: string = 'name';\r\n direction: number;\r\n\r\n finalSQLList :string=\"\" ;\r\n toggleFlag = false;\r\n checkedAll :boolean =false;\r\n hidePagination =false;\r\n setFilterColorColumn = '';\r\n\tclickedOutside:boolean =false;\r\n selectedItems:any[];\r\n \r\n \r\n constructor(\r\n private pagerService: PagerService,\r\n private complexityService: ComplexityService, \r\n public sitesService: SitesService,\r\n public dialog: MdDialog,\r\n public viewContainerRef: ViewContainerRef,\r\n public reportComponentService: ReportComponentService) { }\r\n\r\n ngOnInit() {\r\n this.onFilterCustom.subscribe((res: any) => {\r\n this.selectedFilter = res;\r\n this.filterCustom(this.selectedFilter, 1);\r\n });\r\n \r\n this.onAnalysisRefresh.subscribe((res:boolean) => {\r\n this.freezeInputs = res;\r\n });\r\n \r\n // initial to page 1\r\n this.setPage(1);\r\n }\r\n\r\n filterCustom(filter: any, page?: number) {\r\n var sqlViews: SqlView[] = this._sqlViews;\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n sqlViews = this.setSqlViewFilter(filter, sqlViews);\r\n this.pager = this.pagerService.getPager(sqlViews.length, page, this.pageSize);\r\n this.pagedItems = sqlViews.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n setSqlViewFilter(filter: any, sqlViews: SqlView[]): SqlView[] {\r\n sqlViews = this.pagerService.filter('custom', sqlViews, filter);\r\n\r\n return sqlViews;\r\n }\r\n\r\n filterSqlView(query: any, page?: number) {\r\n var sqlViews: SqlView[] = this._sqlViews;\r\n\r\n if (query === '') {\r\n this.setPage(1);\r\n }\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n // use pipe to filter data\r\n sqlViews = this.filterSqlViewPipe.transform(this._sqlViews, query);\r\n\r\n // apply custom filter\r\n sqlViews = this.setSqlViewFilter(this.selectedFilter, sqlViews);\r\n\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(sqlViews.length, page, this.pageSize);\r\n\r\n // get current page of items \r\n this.pagedItems = sqlViews.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n toggle() {\r\n if (this.opened) {\r\n this.opened = false;\r\n this.icon = 'expand_more';\r\n } else {\r\n this.opened = true;\r\n this.icon = 'expand_less';\r\n }\r\n }\r\n\r\n previewCode(url: string, name: string, language: string) {\r\n if (url) {\r\n this.sitesService.getFile(url + this.sas).subscribe((res: Response) => {\r\n\r\n var preview: Code = {\r\n source: res.text(),\r\n language: language,\r\n downloadUrl: url + this.sas,\r\n name: name\r\n };\r\n\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.dialogRef = this.dialog.open(CodeDialog, config);\r\n this.dialogRef.componentInstance.render(preview);\r\n\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n this.dialogRef = null;\r\n });\r\n });\r\n }\r\n }\r\n\r\n keepAll(checked: boolean) {\r\n this._sqlViews.forEach(function (bpms) {\r\n bpms.keep = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n reviewedAll(checked: boolean) {\r\n this._sqlViews.forEach(function (bpms) {\r\n bpms.reviewed = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n countReviewed() {\r\n let count = 0;\r\n this._sqlViews.forEach(function (bpms) {\r\n count += bpms.reviewed ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n countKeep() {\r\n let count = 0;\r\n this._sqlViews.forEach(function (bpms) {\r\n count += bpms.keep ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n toggleDetails(cl: SqlView) {\r\n cl.moreDetails = !cl.moreDetails;\r\n }\r\n\r\n previewCodeDisabled(item: SqlView): boolean {\r\n if (item.definition && item.definition.cloudFilename) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n previewCodeIcon(item: SqlView): string {\r\n if (this.previewCodeDisabled(item)) {\r\n return \"cloud_download\";\r\n }\r\n return \"cloud_download\";\r\n }\r\n\r\n setPage(page: number) {\r\n if (page < 1 || page > this.pager.totalPages) {\r\n return;\r\n }\r\n\r\n // if search query apply filter\r\n if (this.search !== '') {\r\n this.filterSqlView(this.search, page);\r\n } else {\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(this._sqlViews.length, page, this.pageSize);\r\n\r\n // get current page of items\r\n this.pagedItems = this._sqlViews.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\r\n this.finalSQLList =\"\";\r\n this.checkedAll=false;\r\n this.reportComponentService.ngSQLInitFlag(this.pagedItems)\r\n this.sort(this.column); \r\n }\r\n }\r\n\r\n openDialog(colElem: any) { \r\n var sqlViewsDialogInput = {\r\n pagedItems: this.pagedItems, \r\n finalSQLList: this.finalSQLList,\r\n selectedColumn : colElem,\r\n checkedAll : this.checkedAll,\r\n sqlReportType: SQLReportType[SQLReportType.Views]\r\n };\r\n\r\n this.setFilterColorColumn = colElem\r\n\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.sqlViewsDialogRef = this.dialog.open(SQLReportDialog,config);\r\n this.sqlViewsDialogRef.componentInstance.render(sqlViewsDialogInput);\r\n\r\n this.sqlViewsDialogRef.afterClosed().subscribe(result => {\r\n this.clickedOutside= this.sqlViewsDialogRef.componentInstance.clickedOutside;\r\n if(!this.clickedOutside){\r\n this.selectedItems=[];\r\n this.finalSQLList = this.sqlViewsDialogRef.componentInstance.finalSQLList;\r\n this.checkedAll = this.sqlViewsDialogRef.componentInstance.checkedAll;\r\n \r\n if(this.finalSQLList!=null && this.finalSQLList!=undefined && this.finalSQLList.length > 0){\r\n this.finalSQLList.split(',').forEach(item => {\r\n this.selectedItems.push(item);\r\n })\r\n if(this.selectedItems.length != this.pagedItems.length)\r\n this.hidePagination= true;\r\n else\r\n this.hidePagination= false;\r\n }\r\n else\r\n this.hidePagination= false;\r\n }\r\n this.sqlViewsDialogRef =null;\r\n });\r\n }\r\n\r\n sort(property:any){\r\n this.isDesc = !this.isDesc; //change the direction\r\n this.column = property;\r\n this.direction = this.isDesc ? 1 : -1;\r\n };\r\n\r\n public setFilterColorName(){\r\n return this.reportComponentService.setFilterColorName(this.finalSQLList.toString(), this.setFilterColorColumn); \r\n }\r\n public setFilterColorComplexity(){\r\n return this.reportComponentService.setFilterColorComplexity(this.finalSQLList.toString(), this.setFilterColorColumn); \r\n }\r\n public setFilterColorLOC(){\r\n return this.reportComponentService.setFilterColorLOC(this.finalSQLList.toString(), this.setFilterColorColumn); \r\n } \r\n\r\n}\r\n\r\nexport interface SqlView {\r\n name?: string;\r\n definition?: File\r\n keep?: boolean;\r\n reviewed?: boolean;\r\n purpose?: string;\r\n reason?: string;\r\n moreDetails?: boolean;\r\n comments?: Comment[];\r\n}\r\n\r\n\r\n\r\nexport interface File {\r\n cloudFilename?: string;\r\n localFilePath?: string;\r\n}\r\n\r\nexport interface Comment {\r\n user?: string;\r\n comment: string;\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/sqlViews/sqlViews.component.ts\n **/","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SqlView } from './sqlViews.component';\r\n\r\n@Pipe({name: 'filterSqlView'})\r\nexport class FilterSqlViewPipe implements PipeTransform {\r\n transform(sqlViews: SqlView[], query: string): SqlView[] {\r\n if (query === '') {\r\n return sqlViews;\r\n }\r\n return sqlViews.filter(sv =>\r\n sv.name.toLowerCase().indexOf(query.toLowerCase()) !== -1);\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/sqlViews/sqlViews.pipe.ts\n **/","module.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tSQL Views ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_sqlViews?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_sqlViews?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
Name\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tCodeLOC\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tComplexity\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tKeepReviewed
{{dataItem?.name}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t{{dataItem?.linesOfCode}}{{dataItem?.complexity}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\t\\t\\t\\r\\n\\t\\t\\t\\t
10\\\">\\r\\n\\t\\t\\t\\t\\t View: \\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/custom/sqlViews/sqlViews.html\n ** module id = 491\n ** module chunks = 0\n **/","import {\r\n Component,\r\n Input,\r\n EventEmitter,\r\n Output,\r\n OnInit,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { Response } from '@angular/http';\r\n\r\nimport {\r\n MdDialog,\r\n MdDialogConfig,\r\n MdDialogRef\r\n} from '@angular/material';\r\n\r\nimport { SitesService } from '../../../core/sites.service';\r\nimport { CodeDialog, Code } from '../../../../code/code-dialog.component';\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\nimport { FilterSqlStoredProcedurePipe } from './sqlStoredProcedures.pipe';\r\n\r\nimport { ComplexityService } from '../../complexity-type.service';\r\n\r\nimport {ReportOrderByPipe} from '../../../reports/reportorderby.pipe';\r\nimport {ReportGroupByPipe} from '../../../reports/reportgroupby.pipe'\r\nimport {ReportFilterPipe} from '../../../reports/reportfilter.pipe'\r\nimport {SQLSearchPipe} from '../sql.search.pipe'\r\n\r\nimport {SQLReportDialog} from '../sql.modaldialog'\r\nimport {SQLReportType} from '../sql.modaldialog'\r\nimport {ReportComponentService} from '../../../reports/reports.component.service'\r\n\r\n@Component({\r\n selector: 'sqlStoredProcedures',\r\n template: require('./sqlStoredProcedures.html'),\r\n providers: [PagerService, ReportComponentService, ComplexityService]\r\n})\r\nexport class SQLStoredProceduresComponent implements OnInit {\r\n dialogRef: MdDialogRef;\r\n _sqlStoredProcedures: SQLStoredProcedure[] = [];\r\n \r\n @Input() onAnalysisRefresh : EventEmitter;\r\n @Input() onFilterCustom: EventEmitter;\r\n @Input() sas: string;\r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n if (data.sqlStoredProcedures) {\r\n this._sqlStoredProcedures = data.sqlStoredProcedures;\r\n\r\n this._sqlStoredProcedures.forEach((element:any) => {\r\n if(element.hasOwnProperty('cloudComplexity')==false){\r\n element.cloudComplexity= true;\r\n }\r\n if(element.hasOwnProperty('cloudComplexityType')==false){\r\n element.cloudComplexityType= 'None';\r\n }\r\n if(element.hasOwnProperty('cloudComplexityDescription')==false){\r\n element.cloudComplexityDescription= '';\r\n }\r\n }); \r\n \r\n }\r\n }\r\n }\r\n get data() { return this._sqlStoredProcedures; }\r\n\r\n @Output() onChange = new EventEmitter();\r\n \r\n freezeInputs : boolean = false;\r\n opened: boolean = false;\r\n icon: string = 'expand_more';\r\n keep: boolean = false;\r\n reviewed: boolean = false;\r\n search: string = '';\r\n selectedFilter: string = '';\r\n pager: any = {};\r\n pagedItems: any[];\r\n filterSqlStoredProcedurePipe = new FilterSqlStoredProcedurePipe();\r\n //page size\r\n pageSize:number = 10;\r\n\r\n sqlSprocDialogRef: MdDialogRef; \r\n\r\n isDesc: boolean = false;\r\n column: string = 'name';\r\n direction: number;\r\n\r\n finalSQLList :string=\"\" ;\r\n toggleFlag = false;\r\n checkedAll :boolean =false;\r\n hidePagination =false;\r\n setFilterColorColumn = '';\r\n\tclickedOutside:boolean =false;\r\n selectedItems:any[];\r\n\r\n constructor(\r\n private pagerService: PagerService,\r\n private complexityService: ComplexityService, \r\n public sitesService: SitesService,\r\n public dialog: MdDialog,\r\n public viewContainerRef: ViewContainerRef,\r\n public reportComponentService: ReportComponentService) { }\r\n\r\n\r\n ngOnInit() {\r\n this.onFilterCustom.subscribe((res: any) => {\r\n this.selectedFilter = res;\r\n this.filterCustom(this.selectedFilter, 1);\r\n });\r\n \r\n this.onAnalysisRefresh.subscribe((res:boolean) => {\r\n this.freezeInputs = res;\r\n });\r\n \r\n // initial to page 1\r\n this.setPage(1);\r\n }\r\n\r\n filterCustom(filter: any, page?: number) {\r\n var sqlStoredProcedures: SQLStoredProcedure[] = this._sqlStoredProcedures;\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n sqlStoredProcedures = this.setSqlStoredProcedureFilter(filter, sqlStoredProcedures);\r\n this.pager = this.pagerService.getPager(sqlStoredProcedures.length, page, this.pageSize);\r\n this.pagedItems = sqlStoredProcedures.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n setSqlStoredProcedureFilter(filter: any, sqlStoredProcedures: SQLStoredProcedure[]): SQLStoredProcedure[] {\r\n sqlStoredProcedures = this.pagerService.filter('custom', sqlStoredProcedures, filter);\r\n\r\n return sqlStoredProcedures;\r\n }\r\n\r\n filterSqlStoredProcedure(query: any, page?: number) {\r\n var sqlStoredProcedures: SQLStoredProcedure[] = this._sqlStoredProcedures;\r\n\r\n if (query === '') {\r\n this.setPage(1);\r\n }\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n // use pipe to filter data\r\n sqlStoredProcedures = this.filterSqlStoredProcedurePipe.transform(this._sqlStoredProcedures, query);\r\n\r\n // apply custom filter\r\n sqlStoredProcedures = this.setSqlStoredProcedureFilter(this.selectedFilter, sqlStoredProcedures);\r\n\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(sqlStoredProcedures.length, page, this.pageSize);\r\n\r\n // get current page of items \r\n this.pagedItems = sqlStoredProcedures.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n toggle() {\r\n if (this.opened) {\r\n this.opened = false;\r\n this.icon = 'expand_more';\r\n } else {\r\n this.opened = true;\r\n this.icon = 'expand_less';\r\n }\r\n }\r\n\r\n previewCode(url: string, name: string, language: string) {\r\n if (url) {\r\n this.sitesService.getFile(url + this.sas).subscribe((res: Response) => {\r\n\r\n var preview: Code = {\r\n source: res.text(),\r\n language: language,\r\n downloadUrl: url + this.sas,\r\n name: name\r\n };\r\n\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.dialogRef = this.dialog.open(CodeDialog, config);\r\n this.dialogRef.componentInstance.render(preview);\r\n\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n this.dialogRef = null;\r\n });\r\n });\r\n }\r\n }\r\n\r\n keepAll(checked: boolean) {\r\n this._sqlStoredProcedures.forEach(function (sqlStoredProcedure) {\r\n sqlStoredProcedure.keep = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n reviewedAll(checked: boolean) {\r\n this._sqlStoredProcedures.forEach(function (sqlStoredProcedure) {\r\n sqlStoredProcedure.reviewed = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n countReviewed() {\r\n let count = 0;\r\n this._sqlStoredProcedures.forEach(function (sqlStoredProcedure) {\r\n count += sqlStoredProcedure.reviewed ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n countKeep() {\r\n let count = 0;\r\n this._sqlStoredProcedures.forEach(function (sqlStoredProcedure) {\r\n count += sqlStoredProcedure.keep ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n previewCodeDisabled(item: SQLStoredProcedure): boolean {\r\n if (item.definition && item.definition.cloudFilename) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n previewCodeIcon(item: SQLStoredProcedure): string {\r\n if (this.previewCodeDisabled(item)) {\r\n return \"cloud_download\";\r\n }\r\n return \"cloud_download\";\r\n }\r\n\r\n setPage(page: number) {\r\n if (page < 1 || page > this.pager.totalPages) {\r\n return;\r\n }\r\n\r\n // if search query apply filter\r\n if (this.search !== '') {\r\n this.filterSqlStoredProcedure(this.search, page);\r\n } else {\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(this._sqlStoredProcedures.length, page, this.pageSize);\r\n\r\n // get current page of items\r\n this.pagedItems = this._sqlStoredProcedures.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\r\n this.finalSQLList =\"\";\r\n this.checkedAll=false;\r\n this.reportComponentService.ngSQLInitFlag(this.pagedItems)\r\n this.sort(this.column); \r\n }\r\n }\r\n openDialog(colElem: any) { \r\n var SqlSprocDialogInput = {\r\n pagedItems: this.pagedItems, \r\n finalSQLList: this.finalSQLList,\r\n selectedColumn : colElem,\r\n checkedAll : this.checkedAll,\r\n sqlReportType: SQLReportType[SQLReportType.StoredProcedure]\r\n };\r\n\r\n this.setFilterColorColumn = colElem\r\n\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.sqlSprocDialogRef = this.dialog.open(SQLReportDialog,config);\r\n this.sqlSprocDialogRef.componentInstance.render(SqlSprocDialogInput);\r\n\r\n this.sqlSprocDialogRef.afterClosed().subscribe(result => {\r\n this.clickedOutside= this.sqlSprocDialogRef.componentInstance.clickedOutside;\r\n if(!this.clickedOutside){\r\n this.selectedItems=[];\r\n this.finalSQLList = this.sqlSprocDialogRef.componentInstance.finalSQLList;\r\n this.checkedAll = this.sqlSprocDialogRef.componentInstance.checkedAll;\r\n \r\n if(this.finalSQLList!=null && this.finalSQLList!=undefined && this.finalSQLList.length > 0){\r\n this.finalSQLList.split(',').forEach(item => {\r\n this.selectedItems.push(item);\r\n })\r\n if(this.selectedItems.length != this.pagedItems.length)\r\n this.hidePagination= true;\r\n else\r\n this.hidePagination= false;\r\n }\r\n else\r\n this.hidePagination= false;\r\n }\r\n this.sqlSprocDialogRef =null;\r\n });\r\n }\r\n\r\n sort(property:any){\r\n this.isDesc = !this.isDesc; //change the direction\r\n this.column = property;\r\n this.direction = this.isDesc ? 1 : -1;\r\n };\r\n\r\n public setFilterColorName(){\r\n return this.reportComponentService.setFilterColorName(this.finalSQLList.toString(), this.setFilterColorColumn); \r\n }\r\n public setFilterColorComplexity(){\r\n return this.reportComponentService.setFilterColorComplexity(this.finalSQLList.toString(), this.setFilterColorColumn); \r\n }\r\n public setFilterColorLOC(){\r\n return this.reportComponentService.setFilterColorLOC(this.finalSQLList.toString(), this.setFilterColorColumn); \r\n } \r\n}\r\n\r\nexport interface SQLStoredProcedure {\r\n compatible: boolean;\r\n complexity: number;\r\n definition: Definition;\r\n keep: boolean;\r\n linesOfCode: number;\r\n name: string;\r\n reviewed: boolean;\r\n}\r\n\r\nexport interface Definition {\r\n cloudFilename: string;\r\n cloudFolder: string;\r\n fileHash: string;\r\n localFilePath: string;\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/sqlStoredProcedures/sqlStoredProcedures.component.ts\n **/","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SQLStoredProcedure } from './sqlStoredProcedures.component';\r\n\r\n@Pipe({name: 'filterSqlStoredProcedure'})\r\nexport class FilterSqlStoredProcedurePipe implements PipeTransform {\r\n transform(sqlStoredProcedures: SQLStoredProcedure[], query: string): SQLStoredProcedure[] {\r\n if (query === '') {\r\n return sqlStoredProcedures;\r\n }\r\n return sqlStoredProcedures.filter(ssp =>\r\n ssp.name.toLowerCase().indexOf(query.toLowerCase()) !== -1);\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/sqlStoredProcedures/sqlStoredProcedures.pipe.ts\n **/","module.exports = \"
0\\\">\\r\\n
\\r\\n
\\r\\n Keep All\\r\\n Reviewed All\\r\\n
\\r\\n
\\r\\n\\t\\r\\n SQL Stored Procedures ({{pager?.totalItems}})\\r\\n \\r\\n Keep ({{ countKeep() }}/{{_sqlStoredProcedures?.length}})\\r\\n Reviewed ({{ countReviewed() }}/{{_sqlStoredProcedures?.length}})\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Name\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tCodeLOC\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tComplexity\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tKeepReviewed
{{dataItem?.name}}\\r\\n \\r\\n {{dataItem?.linesOfCode}}{{dataItem?.complexity}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\t\\t\\t
\\t\\t\\t\\r\\n
10\\\">\\r\\n View: \\r\\n \\r\\n
1\\\" style=\\\"display:inline-block\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\t\\t\\t
\\r\\n
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/custom/sqlStoredProcedures/sqlStoredProcedures.html\n ** module id = 494\n ** module chunks = 0\n **/","import { Component, Input, Output, EventEmitter, ViewContainerRef, OnInit } from '@angular/core';\r\nimport { Response } from '@angular/http';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\n\r\nimport { SitesService } from '../../../core/sites.service';\r\nimport { CodeDialog, Code } from '../../../../code/code-dialog.component';\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\nimport { FilterCustomReportPipe } from './customReports.pipe';\r\n\r\n@Component({\r\n selector: 'customReports',\r\n template: require('./customReports.html'),\r\n providers: [SitesService, PagerService]\r\n})\r\nexport class CustomReportsComponent implements OnInit {\r\n dialogRef: MdDialogRef;\r\n\r\n _reports: Report[] = [];\r\n \r\n @Input() onAnalysisRefresh : EventEmitter;\r\n @Input() onFilterCustom: EventEmitter;\r\n\r\n @Input() sas: string;\r\n\r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n if (data.reports) {\r\n this._reports = data.reports;\r\n this.reportsCount = this.countReportStyles();\r\n }\r\n }\r\n }\r\n get data() { return this._reports; }\r\n\r\n @Output() onChange = new EventEmitter();\r\n \r\n freezeInputs : boolean = false;\r\n opened: boolean = false;\r\n icon: string = 'expand_more';\r\n keep: boolean = false;\r\n reviewed: boolean = false;\r\n search: string = '';\r\n selectedFilter: string = '';\r\n reportsCount: number = 0;\r\n fileAssetPath: any = {};\r\n // pager object\r\n pager: any = {};\r\n\r\n // paged items\r\n pagedItems: any[];\r\n\r\n //page size\r\n pageSize:number = 10;\r\n\r\n filterCustomReportPipe = new FilterCustomReportPipe();\r\n setParentRptCheckbox = false;\r\n setParentRvwCheckbox = false;\r\n\r\n childReportRptID: string = '';\r\n childReviewRptID: string = '';\r\n\r\n\r\n constructor(\r\n private pagerService: PagerService,\r\n public sitesService: SitesService,\r\n public dialog: MdDialog,\r\n public viewContainerRef: ViewContainerRef) { }\r\n\r\n ngOnInit() {\r\n this.onFilterCustom.subscribe((res: any) => {\r\n this.selectedFilter = res;\r\n this.filterCustom(this.selectedFilter, 1);\r\n });\r\n \r\n this.onAnalysisRefresh.subscribe((res:boolean) => {\r\n this.freezeInputs = res;\r\n });\r\n // initial to page 1\r\n this.setPage(1);\r\n }\r\n\r\n filterCustom(filter: any, page?: number) {\r\n var customReports: Report[] = this._reports;\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n if (filter.status == 'Keep') {\r\n for (let report of customReports) {\r\n for (let subreport of report.reportStyles) {\r\n if (subreport.keep) {\r\n report.keep = true;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n \r\n customReports = this.setCustomReportFilter(filter, customReports);\r\n this.pager = this.pagerService.getPager(customReports.length, page, this.pageSize);\r\n this.pagedItems = customReports.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n setCustomReportFilter(filter: any, customReports: Report[]): Report[] {\r\n customReports = this.pagerService.filter('custom', customReports, filter);\r\n\r\n return customReports;\r\n }\r\n\r\n filterCustomReport(query: any, page?: number) {\r\n var customReports: Report[] = this._reports;\r\n\r\n if (query === '') {\r\n this.setPage(1);\r\n }\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n // use pipe to filter data\r\n customReports = this.filterCustomReportPipe.transform(customReports, query);\r\n\r\n // apply custom filter\r\n customReports = this.setCustomReportFilter(this.selectedFilter, customReports);\r\n\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(customReports.length, page, this.pageSize);\r\n\r\n // get current page of items \r\n this.pagedItems = customReports.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n toggle() {\r\n if (this.opened) {\r\n this.opened = false;\r\n this.icon = 'expand_more';\r\n } else {\r\n this.opened = true;\r\n this.icon = 'expand_less';\r\n }\r\n }\r\n\r\n previewCode(url: string, name: string, language: string) {\r\n if (url) {\r\n if (this.sas) {\r\n window.open(url + this.sas, \"_self\");\r\n }\r\n }\r\n }\r\n\r\n keepAll(checked: boolean) {\r\n this._reports.forEach(function (report: any) {\r\n report.keep = checked;\r\n\r\n if (report.reportStyles) {\r\n report.reportStyles.forEach(function (style: any) {\r\n style.keep = checked;\r\n });\r\n }\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n reviewedAll(checked: boolean) {\r\n this._reports.forEach(function (report: any) {\r\n report.reviewed = checked;\r\n\r\n if (report.reportStyles) {\r\n report.reportStyles.forEach(function (style: any) {\r\n style.reviewed = checked;\r\n });\r\n }\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n countReportStyles() {\r\n let stylesCount = 0;\r\n this._reports.forEach(function (report) {\r\n stylesCount += report.reportStyles.length;\r\n });\r\n return stylesCount;\r\n }\r\n\r\n countCloudWarningReport(data: any[]): number {\r\n let count = 0;\r\n count = data.filter(d => d.cloudComplexity === true).length;\r\n return count;\r\n }\r\n\r\n countReports() {\r\n let count: number = this.reportsCount;\r\n let filter: any = this.selectedFilter;\r\n \r\n if (filter.status == 'Keep') {\r\n count = this.countKeep();\r\n }\r\n if (filter.status == 'Cloud Warning'){\r\n count = this.countCloudWarningReport(this.data );\r\n }\r\n return count;\r\n }\r\n\r\n countReviewed() {\r\n let count = 0;\r\n this._reports.forEach(function (report) {\r\n report.reportStyles.forEach(function (subreport) {\r\n count += subreport.reviewed ? 1 : 0;\r\n })\r\n });\r\n return count;\r\n }\r\n\r\n countKeep() {\r\n let count = 0;\r\n this._reports.forEach(function (report) {\r\n report.reportStyles.forEach(function (subreport) {\r\n count += subreport.keep ? 1 : 0;\r\n })\r\n });\r\n return count;\r\n }\r\n\r\n previewCodeDisabled(item: any): boolean {\r\n if (item && item.reportFileAssets && item.reportFileAssets.length > 0 && item.reportFileAssets[0].cloudFilename) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n previewCodeIcon(item: any): string {\r\n if (this.previewCodeDisabled(item)) {\r\n return \"cloud_download\";\r\n }\r\n return \"cloud_download\";\r\n }\r\n\r\n setPage(page: number) {\r\n if (page < 1 || page > this.pager.totalPages) {\r\n return;\r\n }\r\n\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(this._reports.length, page, this.pageSize);\r\n\r\n // get current page of items\r\n this.pagedItems = this._reports.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n setParentReportCheckbox(event: any, item: any) {\r\n this.childReportRptID = '';\r\n for (var i = 0; i < item.reportStyles.length; i++) {\r\n if (item.reportStyles[i].keep == true) {\r\n this.setParentRptCheckbox = true;\r\n this.childReportRptID = item.reportID;\r\n break;\r\n }\r\n }\r\n }\r\n setParentReviewCheckbox(event: any, item: any) {\r\n this.childReviewRptID = '';\r\n for (var i = 0; i < item.reportStyles.length; i++) {\r\n if (item.reportStyles[i].reviewed == true) {\r\n this.setParentRvwCheckbox = true;\r\n this.childReviewRptID = item.reportID;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n groupReferencesArray(data: Array, n: number): Array {\r\n let group = new Array();\r\n for (let i = 0, j = 0; i < data.length; i++) {\r\n if (i >= n && i % n === 0) j++;\r\n group[j] = group[j] || [];\r\n group[j].push(data[i]);\r\n }\r\n return group;\r\n }\r\n\r\n}\r\n\r\nexport interface Report {\r\n reportID: string;\r\n reportDescription: string;\r\n reportType: string;\r\n reportStyles: ReportStyle[];\r\n reviewed: boolean;\r\n keep: boolean;\r\n}\r\n\r\nexport interface ReportStyle {\r\n styleNum: number;\r\n styleDescription: string;\r\n printProgram: string;\r\n reportType: string;\r\n companies: string[];\r\n rptDefID: string;\r\n rptDefDescription: string;\r\n rptDefSystemRpt: boolean;\r\n reportFileAssets: ReportFileAsset[];\r\n systemReport: boolean;\r\n compatible: boolean;\r\n complexity: number;\r\n reviewed: boolean;\r\n keep: false;\r\n}\r\n\r\nexport interface ReportFileAsset {\r\n analysisPerformed: boolean;\r\n numParameters: number;\r\n numNonStandardConnections: number;\r\n numRecordSelectionFormula: number;\r\n numDatabaseLinks: number;\r\n numTables: number;\r\n numFormula: number;\r\n numGroups: number;\r\n localFilePath: string;\r\n cloudFilename: string;\r\n cloudFolder: string;\r\n fileHash: string;\r\n reviewed: boolean;\r\n keep: boolean;\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/customReports/customReports.component.ts\n **/","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Report } from './customReports.component';\r\n\r\n@Pipe({name: 'filterCustomReport'})\r\nexport class FilterCustomReportPipe implements PipeTransform {\r\n transform(customReports: any[], query: string): any[] {\r\n if (query === '') {\r\n return customReports;\r\n }\r\n return customReports.filter(cr =>\r\n cr.reportDescription.toLowerCase().indexOf(query.toLowerCase()) !== -1);\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/customReports/customReports.pipe.ts\n **/","module.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tReports ({{countReports()}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{reportsCount}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{reportsCount}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t 0\\\" colspan=\\\"6\\\" style=\\\"position: relative; top:-10px\\\" >\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t {{baqId}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tReport Style\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{subDataItem?.styleNum}}{{subDataItem?.printProgram}}{{subDataItem?.complexity}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{ fileAsset.cloudFilename?.substring(fileAsset.cloudFilename.lastIndexOf(\\\"/\\\") + 1, fileAsset.cloudFilename.length) }}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tKeep\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tReviewed\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tExternal Report\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tKeep\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{subDataItem?.printProgram}}{{subDataItem?.complexity}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{ fileAsset.cloudFilename?.substring(fileAsset.cloudFilename.lastIndexOf(\\\"/\\\") + 1, fileAsset.cloudFilename.length) }}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{subDataItem?.numFormula}}
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
10\\\">\\r\\n\\t\\t\\t\\t View: \\r\\n\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/custom/customReports/customReports.html\n ** module id = 497\n ** module chunks = 0\n **/","import { Component, Input, Output, EventEmitter, ViewContainerRef, OnInit } from '@angular/core';\r\nimport { Response } from '@angular/http';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\n\r\nimport { SitesService } from '../../../core/sites.service';\r\nimport { AnalyserReportTab, AnalyserReportSection, AnalyserReportDocAction } from '../../analysis-report.interface';\r\nimport { CodeDialog, Code } from '../../../../code/code-dialog.component';\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\nimport { FilterBaqReportPipe } from './baqReports.pipe';\r\n\r\n@Component({\r\n selector: 'baqReports',\r\n template: require('./baqReports.html'),\r\n providers: [SitesService, PagerService]\r\n})\r\nexport class BaqReportsComponent implements OnInit {\r\n dialogRef: MdDialogRef;\r\n\r\n _reports: Report[] = [];\r\n\r\n @Input() siteId: number;\r\n @Input() reportVersion: number;\r\n @Input() onFilterCustom: EventEmitter;\r\n @Input() sas: string;\r\n\r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n if (data.reports) {\r\n this._reports = data.reports;\r\n this._reports = this._reports.filter(objReport =>\r\n objReport.reportDescription.startsWith(\"Report used by BAQReport\"));\r\n this.reportsCount = this.countReportStyles();\r\n }\r\n }\r\n }\r\n get data() { return this._reports; }\r\n\r\n @Input() countData: any;\r\n\r\n @Output() onChange = new EventEmitter();\r\n\r\n opened: boolean = false;\r\n icon: string = 'expand_more';\r\n keep: boolean = false;\r\n reviewed: boolean = false;\r\n search: string = '';\r\n selectedFilter: string = '';\r\n reportsCount: number = 0;\r\n fileAssetPath: any = {};\r\n \r\n // pager object\r\n pager: any = {};\r\n\r\n // paged items\r\n pagedItems: any[];\r\n\r\n filterBaqReportPipe = new FilterBaqReportPipe();\r\n setParentRptCheckbox = false;\r\n setParentRvwCheckbox = false;\r\n\r\n childReportRptID: string = '';\r\n childReviewRptID: string = '';\r\n\r\n reportTab: string = AnalyserReportTab[AnalyserReportTab.Custom];\r\n reportSection: string = AnalyserReportSection[AnalyserReportSection.Report];\r\n AnalyserReportDocAction = AnalyserReportDocAction;\r\n\r\n constructor(\r\n private pagerService: PagerService,\r\n public sitesService: SitesService,\r\n public dialog: MdDialog,\r\n public viewContainerRef: ViewContainerRef) { }\r\n\r\n ngOnInit() {\r\n if (this.countData != null) {\r\n // this.reportsCount = this.countData.total;\r\n // this.rep = this.countData.keep;\r\n // this._baqMethodDirectivesReviewedCount = this.countData.reviewed;\r\n }\r\n\r\n // if (this.data == null || this.data.length === 0) {\r\n // let tab = AnalyserReportTab[AnalyserReportTab.Custom];\r\n // let section = AnalyserReportSection[AnalyserReportSection.Report];\r\n\r\n // this.sitesService.getAnalyserReportSection(this.siteId, this.reportVersion, tab, section).subscribe((reports: any) => {\r\n // this._reports = reports.result;\r\n\r\n // this._reports = this._reports.filter(objReport =>\r\n // objReport.reportDescription.startsWith(\"Report used by BAQReport\"));\r\n\r\n // this.onFilterCustom.subscribe((res: any) => {\r\n // this.selectedFilter = res;\r\n // this.filterBaq(this.selectedFilter, 1);\r\n // });\r\n\r\n // this.reportsCount = this.countReportStyles();\r\n\r\n // this.setPage(1);\r\n // });\r\n // } else {\r\n // this.onFilterCustom.subscribe((res: any) => {\r\n // this.selectedFilter = res;\r\n // this.filterBaq(this.selectedFilter, 1);\r\n // });\r\n\r\n // // initial to page 1\r\n // this.setPage(1);\r\n // }\r\n }\r\n\r\n filterBaq(filter: any, page?: number) {\r\n var baqReports: Report[] = this._reports;\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n baqReports = this.setBaqReportFilter(filter, baqReports);\r\n this.pager = this.pagerService.getPager(baqReports.length, page);\r\n this.pagedItems = baqReports.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n setBaqReportFilter(filter: any, baqReports: Report[]): Report[] {\r\n baqReports = this.pagerService.filter('custom', baqReports, filter);\r\n\r\n return baqReports;\r\n }\r\n\r\n filterBaqReport(query: any, page?: number) {\r\n var baqReports: Report[] = this._reports;\r\n\r\n if (query === '') {\r\n this.setPage(1);\r\n }\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n // use pipe to filter data\r\n baqReports = this.filterBaqReportPipe.transform(baqReports, query);\r\n\r\n // apply custom filter\r\n baqReports = this.setBaqReportFilter(this.selectedFilter, baqReports);\r\n\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(baqReports.length, page);\r\n\r\n // get current page of items \r\n this.pagedItems = baqReports.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n toggle() {\r\n if (this.opened) {\r\n this.opened = false;\r\n this.icon = 'expand_more';\r\n } else {\r\n this.opened = true;\r\n this.icon = 'expand_less';\r\n }\r\n }\r\n\r\n previewCode(url: string, name: string, language: string) {\r\n if (url) {\r\n if (this.sas) {\r\n window.open(url + this.sas, \"_self\");\r\n }\r\n }\r\n }\r\n\r\n keepAll(checked: boolean) {\r\n this._reports.forEach(function (report: any) {\r\n report.keep = checked;\r\n\r\n if (report.reportStyles) {\r\n report.reportStyles.forEach(function (style: any) {\r\n style.keep = checked;\r\n });\r\n }\r\n });\r\n }\r\n\r\n reviewedAll(checked: boolean) {\r\n this._reports.forEach(function (report: any) {\r\n report.reviewed = checked;\r\n\r\n if (report.reportStyles) {\r\n report.reportStyles.forEach(function (style: any) {\r\n style.reviewed = checked;\r\n });\r\n }\r\n });\r\n\r\n this.onChange.emit(true);\r\n }\r\n\r\n countReportStyles() {\r\n let stylesCount = 0;\r\n this._reports.forEach(function (report) {\r\n stylesCount += report.reportStyles.length;\r\n });\r\n return stylesCount;\r\n }\r\n\r\n countReviewed() {\r\n let count = 0;\r\n this._reports.forEach(function (report) {\r\n report.reportStyles.forEach(function (subreport) {\r\n count += subreport.reviewed ? 1 : 0;\r\n })\r\n });\r\n return count;\r\n }\r\n\r\n countKeep() {\r\n let count = 0;\r\n this._reports.forEach(function (report) {\r\n report.reportStyles.forEach(function (subreport) {\r\n count += subreport.keep ? 1 : 0;\r\n })\r\n });\r\n return count;\r\n }\r\n\r\n previewCodeDisabled(item: any): boolean {\r\n if (item && item.reportFileAssets && item.reportFileAssets.length > 0 && item.reportFileAssets[0].cloudFilename) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n previewCodeIcon(item: any): string {\r\n if (this.previewCodeDisabled(item)) {\r\n return \"cloud_download\";\r\n }\r\n return \"cloud_download\";\r\n }\r\n\r\n setPage(page: number) {\r\n if (page < 1 || page > this.pager.totalPages) {\r\n return;\r\n }\r\n\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(this._reports.length, page);\r\n\r\n // get current page of items\r\n this.pagedItems = this._reports.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n setParentReportCheckbox(event: any, item: any) {\r\n this.childReportRptID = '';\r\n for (var i = 0; i < item.reportStyles.length; i++) {\r\n if (item.reportStyles[i].keep == true) {\r\n this.setParentRptCheckbox = true;\r\n this.childReportRptID = item.reportID;\r\n break;\r\n }\r\n }\r\n }\r\n setParentReviewCheckbox(event: any, item: any) {\r\n this.childReviewRptID = '';\r\n for (var i = 0; i < item.reportStyles.length; i++) {\r\n if (item.reportStyles[i].reviewed == true) {\r\n this.setParentRvwCheckbox = true;\r\n this.childReviewRptID = item.reportID;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n updateCustomReport(customReport: any, action: string, actionValue: boolean) {\r\n let docId = customReport.id;\r\n let docAction = AnalyserReportDocAction[action];\r\n\r\n if (docId) {\r\n this.sitesService.updateAnalyserReportSectionDocument(this.siteId, this.reportVersion, this.reportTab, this.reportSection, docId, docAction, actionValue).subscribe((res: any) => {\r\n\r\n });\r\n }\r\n }\r\n\r\n updateCustomReports(action: string, actionValue: boolean) {\r\n let docAction = AnalyserReportDocAction[action];\r\n\r\n this.sitesService.updateAnalyserReportSectionDocuments(this.siteId, this.reportVersion, this.reportTab, this.reportSection, docAction, actionValue).subscribe((res: any) => {\r\n\r\n });\r\n }\r\n}\r\n\r\nexport interface Report {\r\n reportID: string;\r\n reportDescription: string;\r\n reportType: string;\r\n reportStyles: ReportStyle[];\r\n reviewed: boolean;\r\n keep: boolean;\r\n}\r\n\r\nexport interface ReportStyle {\r\n styleNum: number;\r\n styleDescription: string;\r\n printProgram: string;\r\n reportType: string;\r\n companies: string[];\r\n rptDefID: string;\r\n rptDefDescription: string;\r\n rptDefSystemRpt: boolean;\r\n reportFileAssets: ReportFileAsset[];\r\n systemReport: boolean;\r\n compatible: boolean;\r\n complexity: number;\r\n reviewed: boolean;\r\n keep: false;\r\n}\r\n\r\nexport interface ReportFileAsset {\r\n analysisPerformed: boolean;\r\n numParameters: number;\r\n numNonStandardConnections: number;\r\n numRecordSelectionFormula: number;\r\n numDatabaseLinks: number;\r\n numTables: number;\r\n numFormula: number;\r\n numGroups: number;\r\n localFilePath: string;\r\n cloudFilename: string;\r\n cloudFolder: string;\r\n fileHash: string;\r\n reviewed: boolean;\r\n keep: boolean;\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/baqReports/baqReports.component.ts\n **/","export enum AnalyserReportTab {\r\n Environment = 0,\r\n Licenses = 1,\r\n Companies = 2,\r\n Other = 3,\r\n Custom = 4\r\n}\r\n\r\nexport enum AnalyserReportSection {\r\n Environment = 0,\r\n License = 1,\r\n Company = 2,\r\n Conversion = 3,\r\n HealthCheck = 4,\r\n PreUpgradeCheck = 5,\r\n ChangeLogABLCode = 6,\r\n CustomTable = 7,\r\n SQLView = 8,\r\n Dashboard = 9,\r\n NonUpdatableBAQ = 10,\r\n UpdatableBAQ = 11,\r\n Menu = 12,\r\n ReportDataDef = 13,\r\n ExternalReport = 14,\r\n Report = 15,\r\n UserDefinedForm = 16,\r\n ElectronicBankInterface = 17,\r\n IndustryExtension =18,\r\n ClientCustomizationAsset = 19,\r\n SDKModification = 20,\r\n Configurator = 21,\r\n BPMDataForm = 22,\r\n ExternalABLFile = 23,\r\n BAQMethodDirective = 24,\r\n DataDirective = 25,\r\n MethodDirective = 26,\r\n UICustomization = 27,\r\n SQLStoredProcedure = 28\r\n}\r\n\r\nexport enum AnalyserReportDocAction {\r\n Keep = 0,\r\n Reviewed = 1,\r\n KeepAll = 2,\r\n ReviewedAll = 3\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/analysis-report.interface.ts\n **/","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Report } from './baqReports.component';\r\n\r\n@Pipe({name: 'filterBaqReport'})\r\nexport class FilterBaqReportPipe implements PipeTransform {\r\n transform(baqReports: any[], query: string): any[] {\r\n if (query === '') {\r\n return baqReports;\r\n }\r\n return baqReports.filter(cr =>\r\n cr.reportDescription.toLowerCase().indexOf(query.toLowerCase()) !== -1);\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/baqReports/baqReports.pipe.ts\n **/","module.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tBAQ Reports ({{reportsCount}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{reportsCount}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{reportsCount}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tReport Style\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
{{subDataItem?.styleNum}}{{subDataItem?.printProgram}}{{subDataItem?.complexity}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{ fileAsset.cloudFilename?.substring(fileAsset.cloudFilename.lastIndexOf(\\\"/\\\") + 1, fileAsset.cloudFilename.length) }}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tKeep\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tReviewed\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tExternal Report\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tKeep\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{subDataItem?.printProgram}}{{subDataItem?.complexity}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{ fileAsset.cloudFilename?.substring(fileAsset.cloudFilename.lastIndexOf(\\\"/\\\") + 1, fileAsset.cloudFilename.length) }}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{subDataItem?.numFormula}}
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
1\\\">\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/custom/baqReports/baqReports.html\n ** module id = 501\n ** module chunks = 0\n **/","import { Component, Input, Output, EventEmitter, ViewContainerRef, OnInit } from '@angular/core';\r\nimport { Response } from '@angular/http';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\n\r\nimport { SitesService } from '../../../core/sites.service';\r\nimport { CodeDialog, Code } from '../../../../code/code-dialog.component';\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\nimport { FilterExternalReportPipe } from './externalReports.pipe';\r\n\r\nimport {ReportOrderByPipe} from '../../../reports/reportorderby.pipe';\r\nimport {ReportGroupByPipe} from '../../../reports/reportgroupby.pipe'\r\nimport {ReportFilterPipe} from '../../../reports/reportfilter.pipe'\r\nimport {ExternalReportSearchPipe} from './externalReports.search.pipe'\r\nimport {ReportComponentService} from '../../../reports/reports.component.service'\r\nimport {ExternalReportDialog} from './externalReports.modaldialog'\r\nimport {ComplexityService} from '../../../../sites/analysis/complexity-type.service';\r\n@Component({\r\n selector: 'externalReports',\r\n template: require('./externalReports.html'),\r\n providers: [PagerService, ReportComponentService,ComplexityService]\r\n})\r\nexport class ExternalReportsComponent {\r\n dialogRef: MdDialogRef;\r\n\r\n _externalReports: ExternalReport[] = [];\r\n _reports : ExternalReport[] = [];\r\n @Input() onAnalysisRefresh : EventEmitter;\r\n @Input() onFilterCustom: EventEmitter;\r\n\r\n @Input() sas: string;\r\n\r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n if (data.externalReports) {\r\n this._reports = data.externalReports; \r\n this._reports.forEach((element:any) => {\r\n if(element.hasOwnProperty('cloudComplexity')==false){\r\n element.cloudComplexity= false;\r\n }\r\n });\r\n this._externalReports = this._reports;\r\n }\r\n }\r\n }\r\n\r\n @Output() onChange = new EventEmitter();\r\n\r\n opened: boolean = false;\r\n icon: string = 'expand_more';\r\n search: string = '';\r\n selectedFilter: string = '';\r\n fileAssetPath: any = {};\r\n // pager object\r\n pager: any = {};\r\n\r\n // paged items\r\n pagedItems: any[];\r\n\r\n //page size\r\n pageSize:number = 10;\r\n\r\n filterExternalReportPipe = new FilterExternalReportPipe();\r\n freezeInputs : boolean = false;\r\n isDesc: boolean = false;\r\n column: string = 'description';\r\n direction: number;\r\n finalExternalReportList:string=\"\"\r\n hidePagination =false;\r\n toggleFlagPagination =false;\r\n setFilterColorColumn:string =\"\"\r\n checkedAll:boolean =false;\r\n dialogExternalReportRef : MdDialogRef;\r\n\tclickedOutside:boolean =false;\r\n selectedItems:any[];\r\n \r\n constructor(\r\n private pagerService: PagerService,\r\n public sitesService: SitesService,\r\n public dialog: MdDialog,\r\n public viewContainerRef: ViewContainerRef,\r\n public reportComponentService: ReportComponentService) { }\r\n\r\n ngOnInit() {\r\n this.onFilterCustom.subscribe((res: any) => {\r\n this.selectedFilter = res;\r\n this.filterCustom(this.selectedFilter, 1);\r\n });\r\n \r\n this.onAnalysisRefresh.subscribe((res:boolean) => {\r\n this.freezeInputs = res;\r\n });\r\n // initial to page 1 \r\n this.setPage(1);\r\n }\r\n\r\n filterCustom(filter: any, page?: number) {\r\n var externalReports: ExternalReport[] = this._externalReports;\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n externalReports = this.setExternalReportFilter(filter, externalReports);\r\n this.pager = this.pagerService.getPager(externalReports.length, page, this.pageSize);\r\n this.pagedItems = externalReports.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n setExternalReportFilter(filter: any, externalReports: ExternalReport[]): ExternalReport[] {\r\n externalReports = this.pagerService.filter('custom', externalReports, filter);\r\n console.log(externalReports)\r\n return externalReports;\r\n }\r\n\r\n filterExternalReport(query: any, page?: number) {\r\n var externalReports: ExternalReport[] = this._externalReports;\r\n\r\n if (query === '') {\r\n this.setPage(1);\r\n }\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n // use pipe to filter data\r\n externalReports = this.filterExternalReportPipe.transform(externalReports, query);\r\n\r\n // apply custom filter\r\n externalReports = this.setExternalReportFilter(this.selectedFilter, externalReports);\r\n\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(externalReports.length, page, this.pageSize);\r\n\r\n // get current page of items \r\n this.pagedItems = externalReports.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n toggle() {\r\n if (this.opened) {\r\n this.opened = false;\r\n this.icon = 'expand_more';\r\n } else {\r\n this.opened = true;\r\n this.icon = 'expand_less';\r\n }\r\n }\r\n\r\n previewCode(url: string, name: string) {\r\n if (url) {\r\n if (this.sas) {\r\n window.open(url + this.sas, \"_self\");\r\n }\r\n }\r\n }\r\n\r\n keepAll(checked: boolean) {\r\n this._externalReports.forEach(function (dataItem) {\r\n (dataItem).keep = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n reviewedAll(checked: boolean) {\r\n this._externalReports.forEach(function (dataItem) {\r\n (dataItem).reviewed = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n countReviewed() {\r\n let count = 0;\r\n this._externalReports.forEach(function (dataItem) {\r\n count += (dataItem).reviewed ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n countKeep() {\r\n let count = 0;\r\n this._externalReports.forEach(function (dataItem) {\r\n count += (dataItem).keep ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n\r\n\r\n sortAsc: number = -1;\r\n\r\n\r\n sortItems(sortby: string) {\r\n let sortAsc = this.sortAsc;\r\n\r\n this._externalReports = this._externalReports.sort(function (a, b): number {\r\n if (a[sortby] > b[sortby]) {\r\n return -1 * sortAsc;\r\n }\r\n else return 1 * sortAsc;\r\n });\r\n sortAsc = sortAsc * -1;\r\n\r\n }\r\n\r\n previewCodeDisabled(item: ExternalReport): boolean {\r\n if (item && item.reportFileAssets && item.reportFileAssets.length > 0 && item.reportFileAssets[0].cloudFilename) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n previewCodeIcon(item: ExternalReport): string {\r\n if (this.previewCodeDisabled(item)) {\r\n return 'cloud_download';\r\n }\r\n return 'cloud_download';\r\n }\r\n\r\n setPage(page: number) {\r\n if (page < 1 || page > this.pager.totalPages) {\r\n return;\r\n }\r\n\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(this._externalReports.length, page, this.pageSize);\r\n\r\n // get current page of items\r\n this.pagedItems = this._externalReports.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\r\n this.finalExternalReportList =\"\";\r\n this.checkedAll=false;\r\n this.reportComponentService.ngExternalReportInitFlag(this.pagedItems)\r\n this.sort(this.column)\r\n }\r\n sort(property:any){\r\n this.isDesc = !this.isDesc; //change the direction\r\n this.column = property;\r\n this.direction = this.isDesc ? 1 : -1;\r\n }\r\n\r\n openDialog(colElem: any) {\r\n var ExternalReportDialogInput = {\r\n pagedItems: this.pagedItems, \r\n finalExternalReportList: this.finalExternalReportList,\r\n selectedColumn : colElem,\r\n checkedAll : this.checkedAll,\r\n };\r\n \r\n this.setFilterColorColumn = colElem\r\n\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.dialogExternalReportRef = this.dialog.open(ExternalReportDialog,config);\r\n this.dialogExternalReportRef.componentInstance.render(ExternalReportDialogInput);\r\n\r\n this.dialogExternalReportRef.afterClosed().subscribe(result => {\r\n this.clickedOutside= this.dialogExternalReportRef.componentInstance.clickedOutside;\r\n if(!this.clickedOutside){\r\n this.selectedItems=[];\r\n this.finalExternalReportList = this.dialogExternalReportRef.componentInstance.finalExternalReportList;\r\n this.checkedAll = this.dialogExternalReportRef.componentInstance.checkedAll;\r\n \r\n if(this.finalExternalReportList!=null && this.finalExternalReportList!=undefined && this.finalExternalReportList.length > 0){\r\n this.finalExternalReportList.split(',').forEach(item => {\r\n this.selectedItems.push(item);\r\n })\r\n if(this.selectedItems.length != this.pagedItems.length)\r\n this.hidePagination= true;\r\n else\r\n this.hidePagination= false;\r\n }\r\n else\r\n this.hidePagination= false;\r\n }\r\n this.dialogExternalReportRef =null;\r\n });\r\n } \r\n\r\n public setFilterColorDesc(){\r\n return this.reportComponentService.setFilterColorDesc(this.finalExternalReportList.toString(), this.setFilterColorColumn); \r\n }\r\n\r\n public setFilterColorType():any{\r\n return this.reportComponentService.setFilterColorType(this.finalExternalReportList.toString(), this.setFilterColorColumn); \r\n }\r\n public setFilterColorID():any{\r\n return this.reportComponentService.setFilterColorID(this.finalExternalReportList.toString(), this.setFilterColorColumn); \r\n }\r\n public setFilterColorComplexity():any{\r\n return this.reportComponentService.setFilterColorComplexity(this.finalExternalReportList.toString(), this.setFilterColorColumn); \r\n } \r\n}\r\n\r\nexport interface ExternalReport {\r\n tableName?: string;\r\n description?: string;\r\n keep?: boolean;\r\n reviewed?: boolean;\r\n reportFileAssets?: File[];\r\n}\r\n\r\nexport interface File {\r\n cloudFilename?: string;\r\n localFilePath?: string;\r\n cloudComplexity?:boolean;\r\n}\r\n\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/externalReports/externalReports.component.ts\n **/","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({name: 'filterExternalReport'})\r\nexport class FilterExternalReportPipe implements PipeTransform {\r\n transform(externalReports: any[], query: string): any[] {\r\n if (query === '') {\r\n return externalReports;\r\n } \r\n return externalReports.filter(er =>\r\n er.description.toLowerCase().indexOf(query.toLowerCase()) !== -1);\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/externalReports/externalReports.pipe.ts\n **/","import { Component, EventEmitter, Input, Output, OnInit, ViewContainerRef, ViewChild, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\n\r\n\r\nimport {ReportOrderByPipe} from '../../../reports/reportorderby.pipe';\r\nimport {ReportGroupByPipe} from '../../../reports/reportgroupby.pipe'\r\nimport {ReportFilterPipe} from '../../../reports/reportfilter.pipe'\r\n\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\nimport {ErrorMessageDialog} from '../../../reports/reports.component.service'\r\n\r\nimport {ExternalReportSearchPipe} from './externalReports.search.pipe'\r\n\r\n@Component({\r\n selector: 'externalreport.dialog',\r\n host: {\r\n '(document:click)': 'onClick($event)',\r\n }, \r\n template: `\r\n\r\n
External Reports - {{selectedColumn}}
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n (Select All) \r\n
\r\n
\r\n {{md.value[0].description}} \r\n
\r\n
\r\n\r\n
\r\n
\r\n {{md.value[0].id}} \r\n
\r\n
\r\n \r\n
\r\n
\r\n {{md.value[0].reportType}} \r\n
\r\n
\r\n \r\n
\r\n
\r\n {{md.value[0].complexity}} \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n`,\r\n providers: [PagerService]\r\n})\r\n\r\nexport class ExternalReportDialog {\r\n constructor(public dialogRef: MdDialogRef,\r\n private errorChangeDetectorRef: ChangeDetectorRef,\r\n private viewContainerRef: ViewContainerRef,\r\n public dialog: MdDialog,\r\n public elementRef: ElementRef) {}\r\n\r\n\r\n pagedItems:any;\r\n finalExternalReportList:any;\r\n checkedAll:boolean=false;\r\n selectedColumn:string =\"\";\r\n selectedColumnGroupBy : string =\"\";\r\n hidePagination :boolean = false;\r\n errorDialogRef: MdDialogRef;\r\n selectedMenuList : any[];\r\n externalReportList : any[]=[];\r\n disableApplyButton:boolean =false;\r\n clickedOutside:boolean=false;\r\n tempList:any[]=[];\r\n\r\n @ViewChild('container') container: ElementRef;\r\n\r\n render(externalReportDetails:any){\r\n this.pagedItems = externalReportDetails.pagedItems;\r\n this.finalExternalReportList = externalReportDetails.finalExternalReportList;\r\n this.tempList = this.finalExternalReportList;\r\n this.checkedAll = externalReportDetails.checkedAll;\r\n this.selectedColumn = externalReportDetails.selectedColumn;\r\n this.selectedColumnGroupBy = this.getGroupByColumnName();\r\n\r\n if(this.finalExternalReportList!=undefined && this.finalExternalReportList.length > 0){\r\n this.finalExternalReportList.split(',').forEach( (id:any) =>{\r\n this.externalReportList.push(Number(id));\r\n this.pagedItems.filter((item:any) => item.rowIndex == id).forEach( (item:any) => {\r\n item.isChecked=true;\r\n }); \r\n });\r\n }\r\n //modal-content\r\n this.container.nativeElement.children[1].style.maxHeight=\"30vh\";\r\n this.container.nativeElement.children[1].style.overflow=\"auto\";\r\n\r\n //footer\r\n this.container.nativeElement.children[2].style.float=\"right\";\r\n this.container.nativeElement.children[2].style.position=\"relative\";\r\n this.container.nativeElement.children[2].style.top=\"1vh\";\r\n }\r\n\r\n applyModal():any{\r\n\r\n if(this.externalReportList.length >0 && this.pagedItems.filter((item:any) => item.isChecked==true).length ==0){\r\n this.showErrorMessage();\r\n this.disableApplyButton=true;\r\n return;\r\n }\r\n this.disableApplyButton=false;\r\n this.externalReportList=[];\r\n this.pagedItems.filter((item:any) => item.isChecked==true).forEach( (item:any) => {\r\n this.externalReportList.push(item.rowIndex)\r\n });\r\n\r\n this.finalExternalReportList = this.externalReportList.toString();\r\n this.dialogRef.close();\r\n\r\n }\r\n\r\n checkboxFieldChange(event: any, colElem: any){\r\n if(!event.checked){\r\n this.checkedAll = false; \r\n }\r\n this.checkboxFieldChangedProcess(this.pagedItems, event, colElem)\r\n }\r\n\r\n close() {\r\n this.checkedAll=false;\r\n this.finalExternalReportList = this.tempList.toString();\r\n this.dialogRef.close();\r\n }\r\n\r\n toggleAll(event:any){\r\n this.disableApplyButton=false;\r\n this.finalExternalReportList = this.setToggleValue(this.pagedItems);\r\n }\r\n\r\n getGroupByColumnName():string{\r\n if(this.selectedColumn==ExternalReportsFilterColumnName[ExternalReportsFilterColumnName.Description])\r\n return 'description'\r\n else if(this.selectedColumn==ExternalReportsFilterColumnName[ExternalReportsFilterColumnName.ID])\r\n return \"id\"\r\n else if(this.selectedColumn==ExternalReportsFilterColumnName[ExternalReportsFilterColumnName.Type])\r\n return \"reportType\"\r\n else \r\n return \"complexity\"\r\n } \r\n\r\n public checkboxFieldChangedProcess(items:any[], event: any, colElem: any){ \r\n\r\n if(colElem==ExternalReportsFilterColumnName[ExternalReportsFilterColumnName.Description]){\r\n this.descFieldProcess(items, event);\r\n }\r\n else if(colElem==ExternalReportsFilterColumnName[ExternalReportsFilterColumnName.ID]){\r\n this.idTypeProcess(items,event);\r\n }\r\n else if(colElem==ExternalReportsFilterColumnName[ExternalReportsFilterColumnName.Type]){\r\n this.reportTypeFieldProcess(items,event);\r\n }\r\n else if(colElem==ExternalReportsFilterColumnName[ExternalReportsFilterColumnName.Complexity]){\r\n this.complexityFieldProcess(items,event);\r\n } \r\n }\r\n\r\n public descFieldProcess(items:any[], event: any){\r\n let description = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n description = getRowDetails[0].description;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.description == description).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.description == description).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n\r\n public idTypeProcess(items:any[], event: any){\r\n let id = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n id = getRowDetails[0].id;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.id == id).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.id == id).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n } \r\n }\r\n\r\n public reportTypeFieldProcess(items:any[], event: any){\r\n let reportType = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n reportType = getRowDetails[0].reportType;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.reportType == reportType).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.reportType == reportType).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n\r\n public complexityFieldProcess(items:any[], event: any){\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n let complexity = getRowDetails[0].complexity;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.complexity == complexity).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.complexity == complexity).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n \r\n public setToggleValue(items:any[]):string{\r\n let toggleFlag = this.checkedAll;\r\n\r\n items.forEach((item:any) => {\r\n item.isChecked=toggleFlag;\r\n });\r\n \r\n this.externalReportList = [];\r\n\r\n if(toggleFlag){\r\n items.forEach ((item) =>{\r\n this.externalReportList.push(Number(item.rowIndex)); \r\n });\r\n }\r\n return this.externalReportList.toString();\r\n }\r\n\r\n public showErrorMessage(){\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.errorDialogRef = this.dialog.open(ErrorMessageDialog, config);\r\n this.errorDialogRef.afterClosed().subscribe(result => {\r\n this.errorDialogRef = null;\r\n });\r\n } \r\n onClick(event:any) {\r\n var clickedOutsideDialog = event.target;\r\n var inside = false;\r\n do {\r\n if (clickedOutsideDialog === this.elementRef.nativeElement) {\r\n inside = true;\r\n }\r\n clickedOutsideDialog = clickedOutsideDialog.parentNode;\r\n } while (clickedOutsideDialog);\r\n \r\n if(inside){\r\n this.clickedOutside=false;\r\n }else{\r\n this.clickedOutside=true;\r\n }\r\n } \r\n \r\n}\r\n\r\n export enum ExternalReportsFilterColumnName{\r\n Description = 0,\r\n ID=1,\r\n Type=2,\r\n Complexity=3\r\n }\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/externalReports/externalReports.modaldialog.ts\n **/","module.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tExternal Reports ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_externalReports?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_externalReports?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
Description\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tID\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tType\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tPathComplexity\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tCloud WarningKeepReviewed
{{dataItem?.description}}{{dataItem?.id}}{{dataItem?.reportType}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{ fileAsset.cloudFilename?.substring(fileAsset.cloudFilename.lastIndexOf(\\\"/\\\") + 1, fileAsset.cloudFilename.length) }}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n \\r\\n\\t\\t\\t\\t\\t\\t{{dataItem?.complexity}}\\r\\n\\t\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t Yes \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t No \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\t\\t\\t\\r\\n\\t\\t\\t\\t
10\\\">\\r\\n\\t\\t\\t\\t\\t View: \\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/custom/externalReports/externalReports.html\n ** module id = 505\n ** module chunks = 0\n **/","import { Component, EventEmitter, Input, Output, OnInit, ViewContainerRef} from '@angular/core';\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\nimport { FilterMenuPipe } from './menus.pipe';\r\n\r\nimport {ReportOrderByPipe} from '../../../reports/reportorderby.pipe';\r\nimport {ReportGroupByPipe} from '../../../reports/reportgroupby.pipe'\r\nimport {ReportFilterPipe} from '../../../reports/reportfilter.pipe'\r\nimport {MenusSearchPipe} from './menus.search.pipe'\r\nimport {MenusReportDialog} from './menus.dialog'\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\nimport {ErrorMessageDialog} from '../../../reports/reports.component.service'\r\nimport {ComplexityService} from '../../../../sites/analysis/complexity-type.service';\r\nimport {ReportComponentService} from '../../../reports/reports.component.service'\r\n\r\n@Component({\r\n selector: 'menus',\r\n template: require('./menus.html'),\r\n providers: [PagerService, ReportComponentService, ComplexityService]\r\n})\r\nexport class MenusComponent implements OnInit {\r\n _menus: Menu[] = [];\r\n \r\n @Input() onAnalysisRefresh : EventEmitter;\r\n @Input() onFilterCustom: EventEmitter;\r\n\r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n if (data.menus) {\r\n this._menus = data.menus; //no filtering needed\r\n }\r\n }\r\n }\r\n get data() { return this._menus; }\r\n\r\n @Output() onChange = new EventEmitter();\r\n freezeInputs : boolean = false;\r\n opened: boolean = false;\r\n icon: string = 'expand_more';\r\n keep: boolean = false;\r\n reviewed: boolean = false;\r\n search: string = '';\r\n selectedFilter: string = '';\r\n\r\n // pager object\r\n pager: any = {};\r\n\r\n // paged items\r\n pagedItems: any[];\r\n\r\n //page size\r\n pageSize:number = 10;\r\n\r\n // initialise the filter menu pipe to make use of transform function\r\n filterMenuPipe = new FilterMenuPipe();\r\n\r\n dialogMenusRef: MdDialogRef;\r\n finalMenusList : string=\"\";\r\n\r\n isDesc: boolean = false;\r\n column: string = 'menuID';\r\n direction: number;\r\n\r\n checkedAll : boolean =false;\r\n selectedMenusCount :number =0;\r\n selectedMenus:any[]=[];\r\n hidePagination =false;\r\n toggleFlagPagination =false;\r\n setFilterColorColumn = '';\r\n clickedOutside:boolean =false;\r\n \r\n constructor ( private pagerService: PagerService,\r\n public dialog: MdDialog,\r\n public viewContainerRef: ViewContainerRef,\r\n public reportComponentService: ReportComponentService,\r\n private complexityService: ComplexityService) { }\r\n\r\n ngOnInit() {\r\n this.onFilterCustom.subscribe((res: any) => {\r\n this.selectedFilter = res;\r\n this.filterCustom(this.selectedFilter, 1);\r\n });\r\n \r\n this.onAnalysisRefresh.subscribe((res:boolean) => {\r\n this.freezeInputs = res;\r\n });\r\n // initial to page 1\r\n this.setPage(1);\r\n }\r\n\r\n filterCustom(filter: any, page?: number) {\r\n var menus: Menu[] = this._menus;\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n menus = this.setMenuFilter(filter, menus);\r\n this.pager = this.pagerService.getPager(menus.length, page, this.pageSize);\r\n this.pagedItems = menus.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n setMenuFilter(filter: any, menus: any[]): any[] {\r\n menus = this.pagerService.filter('custom', menus, filter);\r\n\r\n return menus;\r\n }\r\n\r\n filterMenu(query: any, page?: number) {\r\n var menus: any[] = this._menus;\r\n\r\n if (query === '') {\r\n this.setPage(1);\r\n }\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n // use pipe to filter data\r\n menus = this.filterMenuPipe.transform(menus, query);\r\n\r\n // apply custom filter\r\n menus = this.setMenuFilter(this.selectedFilter, menus);\r\n\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(menus.length, page, this.pageSize);\r\n\r\n // get current page of items \r\n this.pagedItems = menus.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n toggle() {\r\n if (this.opened) {\r\n this.opened = false;\r\n this.icon = 'expand_more';\r\n } else {\r\n this.opened = true;\r\n this.icon = 'expand_less';\r\n }\r\n }\r\n\r\n keepAll(checked: boolean) {\r\n this._menus.forEach(function (bpms) {\r\n bpms.keep = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n reviewedAll(checked: boolean) {\r\n this._menus.forEach(function (bpms) {\r\n bpms.reviewed = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n countReviewed() {\r\n let count = 0;\r\n this._menus.forEach(function (bpms) {\r\n count += bpms.reviewed ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n countKeep() {\r\n let count = 0;\r\n this._menus.forEach(function (bpms) {\r\n count += bpms.keep ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n // toggleDetails(cl: Menu) {\r\n // cl.moreDetails = !cl.moreDetails;\r\n // }\r\n\r\n // sortAsc: number = -1;\r\n\r\n // sortItems(sortby: string) {\r\n // let sortAsc = this.sortAsc;\r\n\r\n // this._menus = this._menus.sort(function (a, b): number {\r\n // if (a[sortby] > b[sortby]) {\r\n // return -1 * sortAsc;\r\n // }\r\n // else return 1 * sortAsc;\r\n // });\r\n // sortAsc = sortAsc * -1;\r\n\r\n // }\r\n\r\n setPage(page: number) {\r\n if (page < 1 || page > this.pager.totalPages) {\r\n return;\r\n }\r\n\r\n // if search query apply filter#\r\n if (this.search !== '') {\r\n this.filterMenu(this.search, page);\r\n } else {\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(this._menus.length, page, this.pageSize);\r\n\r\n // get current page of items\r\n this.pagedItems = this._menus.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\r\n this.finalMenusList =\"\";\r\n this.checkedAll = false;\r\n this.reportComponentService.ngMenusInitFlag(this.pagedItems)\r\n this.sort(this.column)\r\n }\r\n }\r\n\r\n openDialog(colElem: any) {\r\n \r\n var menusDialogInput = {\r\n pagedItems: this.pagedItems, \r\n finalMenusList: this.finalMenusList,\r\n selectedColumn : colElem,\r\n checkedAll : this.checkedAll\r\n };\r\n \r\n this.setFilterColorColumn = colElem\r\n\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.dialogMenusRef = this.dialog.open(MenusReportDialog,config);\r\n this.dialogMenusRef.componentInstance.render(menusDialogInput);\r\n\r\n this.dialogMenusRef.afterClosed().subscribe(result => {\r\n this.clickedOutside= this.dialogMenusRef.componentInstance.clickedOutside;\r\n if(!this.clickedOutside){\r\n this.selectedMenus=[];\r\n this.finalMenusList = this.dialogMenusRef.componentInstance.finalMenusList;\r\n this.checkedAll = this.dialogMenusRef.componentInstance.checkedAll;\r\n \r\n if(this.finalMenusList!=null && this.finalMenusList!=undefined && this.finalMenusList.length > 0){\r\n this.finalMenusList.split(',').forEach(item => {\r\n this.selectedMenus.push(item);\r\n })\r\n if(this.selectedMenus.length != this.pagedItems.length)\r\n this.hidePagination= true;\r\n else\r\n this.hidePagination= false;\r\n }\r\n else\r\n this.hidePagination= false;\r\n }\r\n this.dialogMenusRef =null;\r\n });\r\n }\r\n\r\n sort(property:any){\r\n this.isDesc = !this.isDesc; //change the direction\r\n this.column = property;\r\n this.direction = this.isDesc ? 1 : -1;\r\n }\r\n \r\n public setFilterColorID(){\r\n return this.reportComponentService.setFilterColorID(this.finalMenusList, this.setFilterColorColumn)\r\n }\r\n public setFilterColorName(){\r\n return this.reportComponentService.setFilterColorName(this.finalMenusList, this.setFilterColorColumn)\r\n }\r\n \r\n public setFilterColorProgram(){\r\n return this.reportComponentService.setFilterColorProgram(this.finalMenusList, this.setFilterColorColumn)\r\n } \r\n public setFilterColorArguments(){\r\n return this.reportComponentService.setFilterColorArguments(this.finalMenusList, this.setFilterColorColumn)\r\n } \r\n\r\n}\r\n\r\nexport interface Menu {\r\n name?: string;\r\n definition?: File;\r\n keep?: boolean;\r\n reviewed?: boolean;\r\n purpose?: string;\r\n reason?: string;\r\n moreDetails?: boolean;\r\n comments?: Comment[];\r\n}\r\n\r\n\r\n\r\nexport interface File {\r\n cloudFilename?: string;\r\n localFilePath?: string;\r\n}\r\n\r\nexport interface Comment {\r\n user?: string;\r\n comment: string;\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/menus/menus.component.ts\n **/","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({name: 'filterMenu'})\r\nexport class FilterMenuPipe implements PipeTransform {\r\n transform(menus: any[], query: string): any[] {\r\n if (query === '') {\r\n return menus;\r\n }\r\n return menus.filter(m =>\r\n m.menuDesc.toLowerCase().indexOf(query.toLowerCase()) !== -1); \r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/menus/menus.pipe.ts\n **/","module.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tMenus ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_menus\\r\\n ?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_menus\\r\\n ?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
ID\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tName\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tProgram\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tArguments\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tKeepReviewed
{{dataItem?.menuID}}{{dataItem?.menuDesc}}{{dataItem?.program}}{{dataItem?.arguments}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t
10\\\">\\r\\n\\t\\t\\t\\t\\t View: \\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/custom/menus/menus.html\n ** module id = 508\n ** module chunks = 0\n **/","import { Component, Input, Output, OnInit, EventEmitter, ViewContainerRef } from '@angular/core';\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\n\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\n\r\nimport {ReportOrderByPipe} from '../../../reports/reportorderby.pipe';\r\nimport {ReportGroupByPipe} from '../../../reports/reportgroupby.pipe'\r\nimport {ReportFilterPipe} from '../../../reports/reportfilter.pipe'\r\nimport {UDFormSearchPipe} from './udforms.search.pipe'\r\n\r\nimport {UDTablesReportDialog} from './udforms.modaldialog'\r\n\r\nimport {ReportComponentService} from '../../../reports/reports.component.service'\r\nimport {ComplexityService} from '../../../../sites/analysis/complexity-type.service';\r\n\r\n\r\n@Component({\r\n selector: 'udForms',\r\n template: require('./udforms.html'),\r\n providers: [PagerService, ReportComponentService, ComplexityService]\r\n})\r\nexport class UDFormsComponent implements OnInit {\r\n _udforms: UDForm[] = [];\r\n @Input() onAnalysisRefresh : EventEmitter;\r\n @Input() onFilterCustom: EventEmitter;\r\n\r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n if (data.userDefinedForms) {\r\n this._udforms = data.userDefinedForms;\r\n }\r\n }\r\n }\r\n get data() { return this._udforms; }\r\n\r\n @Output() onChange = new EventEmitter();\r\n freezeInputs : boolean = false;\r\n opened: boolean = false;\r\n icon: string = 'expand_more';\r\n keep: boolean = false;\r\n reviewed: boolean = false;\r\n search: string = '';\r\n\r\n // pager object\r\n pager: any = {};\r\n\r\n // paged items\r\n pagedItems: any[];\r\n\r\n //page size\r\n pageSize:number = 10;\r\n\r\n finalUDTablesList : string=\"\";\r\n isDesc: boolean = false;\r\n column: string = 'udFormName';\r\n direction: number;\r\n \r\n checkedAll : boolean =false;\r\n rowIndex : number =1;\r\n \r\n selectedUdTablesCount:number = 0;\r\n hidePagination =false;\r\n toggleFlagPagination =false;\r\n setFilterColorColumn = '';\r\n udTablesdialogRef: MdDialogRef;\r\n\tclickedOutside:boolean =false;\r\n\tselectedItems:any[];\r\n selectedFilter: any = {};\r\n\r\n constructor ( private pagerService: PagerService,\r\n public dialog: MdDialog,\r\n public viewContainerRef: ViewContainerRef,\r\n public reportComponentService: ReportComponentService,\r\n private complexityService: ComplexityService) { }\r\n\r\n\r\n ngOnInit() {\r\n \r\n this.onFilterCustom.subscribe((res: any) => {\r\n this.selectedFilter = res;\r\n this.filterCustom(this.selectedFilter, 1);\r\n });\r\n\r\n this.onAnalysisRefresh.subscribe((res:boolean) => {\r\n this.freezeInputs = res;\r\n });\r\n // initial to page 1\r\n this.setPage(1);\r\n }\r\n\r\n toggle() {\r\n if (this.opened) {\r\n this.opened = false;\r\n this.icon = 'expand_more';\r\n } else {\r\n this.opened = true;\r\n this.icon = 'expand_less';\r\n }\r\n }\r\n\r\n filterCustom(filter: string, page?: number) {\r\n var udForms: UDForm[] = this._udforms;\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n udForms = this.setUDFormsFilter(filter, udForms);\r\n this.pager = this.pagerService.getPager(udForms.length, page, this.pageSize);\r\n this.pagedItems = udForms.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n setUDFormsFilter(filter: any, udForms: UDForm[]): UDForm[] {\r\n udForms = this.pagerService.filter('custom', udForms, filter);\r\n\r\n return udForms;\r\n }\r\n\r\n\r\n keepAll(checked: boolean) {\r\n this._udforms.forEach(function (bpms) {\r\n bpms.keep = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n reviewedAll(checked: boolean) {\r\n this._udforms.forEach(function (bpms) {\r\n bpms.reviewed = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n countReviewed() {\r\n let count = 0;\r\n this._udforms.forEach(function (bpms) {\r\n count += bpms.reviewed ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n countKeep() {\r\n let count = 0;\r\n this._udforms.forEach(function (bpms) {\r\n count += bpms.keep ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n\r\n sortAsc: number = -1;\r\n\r\n\r\n sortItems(sortby: string) {\r\n let sortAsc = this.sortAsc;\r\n\r\n this._udforms = this._udforms.sort(function (a, b): number {\r\n if (a[sortby] > b[sortby]) {\r\n return -1 * sortAsc;\r\n }\r\n else return 1 * sortAsc;\r\n });\r\n sortAsc = sortAsc * -1;\r\n\r\n }\r\n\r\n setPage(page: number) {\r\n if (page < 1 || page > this.pager.totalPages) {\r\n return;\r\n }\r\n\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(this._udforms.length, page, this.pageSize);\r\n\r\n // get current page of items\r\n this.pagedItems = this._udforms.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\r\n this.finalUDTablesList =\"\";\r\n this.checkedAll = false;\r\n this.reportComponentService.ngUdFormsInitFlag(this.pagedItems)\r\n this.sort(this.column);\r\n }\r\n openDialog(colElem: any) {\r\n var udTablesDialogInput = {\r\n pagedItems: this.pagedItems, \r\n finalUDTablesList: this.finalUDTablesList,\r\n selectedColumn : colElem,\r\n checkedAll : this.checkedAll\r\n };\r\n \r\n this.setFilterColorColumn = colElem\r\n\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.udTablesdialogRef = this.dialog.open(UDTablesReportDialog,config);\r\n this.udTablesdialogRef.componentInstance.render(udTablesDialogInput);\r\n\r\n this.udTablesdialogRef.afterClosed().subscribe(result => {\r\n this.clickedOutside= this.udTablesdialogRef.componentInstance.clickedOutside;\r\n if(!this.clickedOutside){\r\n this.selectedItems=[];\r\n this.finalUDTablesList = this.udTablesdialogRef.componentInstance.finalUDTablesList;\r\n this.checkedAll = this.udTablesdialogRef.componentInstance.checkedAll;\r\n \r\n if(this.finalUDTablesList!=null && this.finalUDTablesList!=undefined && this.finalUDTablesList.length > 0){\r\n this.finalUDTablesList.split(',').forEach(item => {\r\n this.selectedItems.push(item);\r\n })\r\n if(this.selectedItems.length != this.pagedItems.length)\r\n this.hidePagination= true;\r\n else\r\n this.hidePagination= false;\r\n }\r\n else\r\n this.hidePagination= false;\r\n }\r\n this.udTablesdialogRef =null;\r\n });\r\n }\r\n\r\n sort(property:any){\r\n this.isDesc = !this.isDesc; //change the direction\r\n this.column = property;\r\n this.direction = this.isDesc ? 1 : -1;\r\n };\r\n\r\n public setFilterColorName(){\r\n return this.reportComponentService.setFilterColorName(this.finalUDTablesList, this.setFilterColorColumn);\r\n }\r\n public setFilterColorDesc(){\r\n return this.reportComponentService.setFilterColorDesc(this.finalUDTablesList, this.setFilterColorColumn);\r\n }\r\n \r\n public setFilterColorRows(){\r\n return this.reportComponentService.setFilterColorRows(this.finalUDTablesList, this.setFilterColorColumn);\r\n } \r\n\r\n\r\n}\r\n\r\nexport interface UDForm {\r\n udFormName?: string;\r\n parentCount?: number;\r\n childCount?: number;\r\n keep?: boolean;\r\n reviewed?: boolean;\r\n purpose?: string;\r\n reason?: string;\r\n menuID?: string\r\n description?: string;\r\n}\r\n\r\n\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/udforms/udforms.component.ts\n **/","module.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tUD Tables ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_udforms?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_udforms?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
Name \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tDescription\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tRows\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tKeepReviewed
{{dataItem?.udFormName}}{{dataItem?.description}}{{dataItem?.parentCount}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t
10\\\">\\r\\n\\t\\t\\t\\t\\t View: \\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/custom/udforms/udforms.html\n ** module id = 510\n ** module chunks = 0\n **/","import { Component, Input, Output, OnInit, EventEmitter, ViewContainerRef } from '@angular/core';\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\n\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\n\r\nimport {ReportOrderByPipe} from '../../../reports/reportorderby.pipe';\r\nimport {ReportGroupByPipe} from '../../../reports/reportgroupby.pipe'\r\nimport {ReportFilterPipe} from '../../../reports/reportfilter.pipe'\r\nimport {SdkSearchPipe} from './sdk.search.pipe'\r\n\r\nimport {SdkReportDialog} from './sdk.modaldialog'\r\n\r\nimport {ReportComponentService} from '../../../reports/reports.component.service'\r\nimport {ComplexityService} from '../../../../sites/analysis/complexity-type.service';\r\n\r\n\r\n@Component({\r\n selector: 'sdk',\r\n template: require('./sdk.html'),\r\n providers: [PagerService, ReportComponentService, ComplexityService]\r\n})\r\nexport class SdkComponent implements OnInit {\r\n _sdk: Sdk[] = [];\r\n\r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n if (data.sdkModifications) {\r\n this._sdk = data.sdkModifications;\r\n }\r\n }\r\n }\r\n get data() { return this._sdk; }\r\n\r\n @Input() onAnalysisRefresh : EventEmitter;\r\n @Input() onFilterCustom: EventEmitter;\r\n\r\n @Output() onChange = new EventEmitter();\r\n \r\n freezeInputs : boolean = false;\r\n opened: boolean = false;\r\n icon: string = 'expand_more';\r\n keep: boolean = false;\r\n reviewed: boolean = false;\r\n search: string = '';\r\n\r\n // pager object\r\n pager: any = {};\r\n\r\n // paged items\r\n pagedItems: any[];\r\n\r\n //page size\r\n pageSize:number = 10;\r\n\r\n finalFilterList : string=\"\";\r\n isDesc: boolean = false;\r\n column: string = 'SDK';\r\n direction: number;\r\n \r\n checkedAll : boolean =false;\r\n rowIndex : number =1;\r\n \r\n selectedUdTablesCount:number = 0;\r\n hidePagination =false;\r\n toggleFlagPagination =false;\r\n setFilterColorColumn = '';\r\n FilterDialogRef: MdDialogRef;\r\n\tclickedOutside:boolean =false;\r\n\tselectedItems:any[];\r\n selectedFilter: any = {};\r\n\r\n constructor ( private pagerService: PagerService,\r\n public dialog: MdDialog,\r\n public viewContainerRef: ViewContainerRef,\r\n public reportComponentService: ReportComponentService,\r\n private complexityService: ComplexityService) { }\r\n\r\n\r\n ngOnInit() {\r\n // initial to page 1\r\n this.onFilterCustom.subscribe((res: any) => {\r\n this.selectedFilter = res;\r\n this.filterCustom(this.selectedFilter, 1);\r\n });\r\n\r\n this.onAnalysisRefresh.subscribe((res:boolean) => {\r\n this.freezeInputs = res;\r\n });\r\n\r\n this.setPage(1);\r\n }\r\n\r\n toggle() {\r\n if (this.opened) {\r\n this.opened = false;\r\n this.icon = 'expand_more';\r\n } else {\r\n this.opened = true;\r\n this.icon = 'expand_less';\r\n }\r\n }\r\n\r\n filterCustom(filter: string, page?: number) {\r\n var sdk: Sdk[] = this._sdk;\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n sdk = this.setSDKFilter(filter, sdk);\r\n this.pager = this.pagerService.getPager(sdk.length, page, this.pageSize);\r\n this.pagedItems = sdk.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n setSDKFilter(filter: any, sdk: Sdk[]): Sdk[] {\r\n sdk = this.pagerService.filter('custom', sdk, filter);\r\n\r\n return sdk;\r\n }\r\n\r\n keepAll(checked: boolean) {\r\n this._sdk.forEach(function (sdk) {\r\n sdk.keep = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n reviewedAll(checked: boolean) {\r\n this._sdk.forEach(function (sdk) {\r\n sdk.reviewed = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n countReviewed() {\r\n let count = 0;\r\n this._sdk.forEach(function (sdk) {\r\n count += sdk.reviewed ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n countKeep() {\r\n let count = 0;\r\n this._sdk.forEach(function (sdk) {\r\n count += sdk.keep ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n\r\n sortAsc: number = -1;\r\n\r\n\r\n sortItems(sortby: string) {\r\n let sortAsc = this.sortAsc;\r\n\r\n this._sdk = this._sdk.sort(function (a, b): number {\r\n if (a[sortby] > b[sortby]) {\r\n return -1 * sortAsc;\r\n }\r\n else return 1 * sortAsc;\r\n });\r\n sortAsc = sortAsc * -1;\r\n\r\n }\r\n\r\n setPage(page: number) {\r\n if (page < 1 || page > this.pager.totalPages) {\r\n return;\r\n }\r\n\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(this._sdk.length, page, this.pageSize);\r\n\r\n // get current page of items\r\n this.pagedItems = this._sdk.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\r\n this.finalFilterList =\"\";\r\n this.checkedAll = false;\r\n this.reportComponentService.ngSdkInitFlag(this.pagedItems)\r\n this.sort(this.column);\r\n }\r\n\r\n openDialog(colElem: any) {\r\n var FilterInput = {\r\n pagedItems: this.pagedItems, \r\n finalFilterList: this.finalFilterList,\r\n selectedColumn : colElem,\r\n checkedAll : this.checkedAll\r\n };\r\n \r\n this.setFilterColorColumn = colElem\r\n\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.FilterDialogRef = this.dialog.open(SdkReportDialog,config);\r\n this.FilterDialogRef.componentInstance.render(FilterInput);\r\n\r\n this.FilterDialogRef.afterClosed().subscribe(result => {\r\n this.clickedOutside= this.FilterDialogRef.componentInstance.clickedOutside;\r\n if(!this.clickedOutside){\r\n this.selectedItems=[];\r\n this.finalFilterList = this.FilterDialogRef.componentInstance.finalFilterList;\r\n this.checkedAll = this.FilterDialogRef.componentInstance.checkedAll;\r\n \r\n if(this.finalFilterList!=null && this.finalFilterList!=undefined && this.finalFilterList.length > 0){\r\n this.finalFilterList.split(',').forEach(item => {\r\n this.selectedItems.push(item);\r\n })\r\n if(this.selectedItems.length != this.pagedItems.length)\r\n this.hidePagination= true;\r\n else\r\n this.hidePagination= false;\r\n }\r\n else\r\n this.hidePagination= false;\r\n }\r\n this.FilterDialogRef =null;\r\n });\r\n }\r\n\r\n sort(property:any){\r\n this.isDesc = !this.isDesc; //change the direction\r\n this.column = property;\r\n this.direction = this.isDesc ? 1 : -1;\r\n };\r\n\r\n public setFilterColorName(){\r\n return this.reportComponentService.setFilterColorName(this.finalFilterList, this.setFilterColorColumn);\r\n }\r\n public setFilterColorDesc(){\r\n return this.reportComponentService.setFilterColorDesc(this.finalFilterList, this.setFilterColorColumn);\r\n }\r\n \r\n public setFilterColorRows(){\r\n return this.reportComponentService.setFilterColorRows(this.finalFilterList, this.setFilterColorColumn);\r\n } \r\n\r\n\r\n}\r\n\r\nexport interface Sdk {\r\n className?: string;\r\n description?: string;\r\n classType?: string;\r\n createdDate?: string; \r\n keep?: boolean;\r\n reviewed?: boolean;\r\n \r\n} \r\n\r\n\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/sdk/sdk.component.ts\n **/","import { Component, EventEmitter, Input, Output, OnInit, ViewContainerRef, ViewChild, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\n\r\n\r\nimport {ReportOrderByPipe} from '../../../reports/reportorderby.pipe';\r\nimport {ReportGroupByPipe} from '../../../reports/reportgroupby.pipe'\r\nimport {ReportFilterPipe} from '../../../reports/reportfilter.pipe'\r\nimport {SdkSearchPipe} from './sdk.search.pipe'\r\n\r\n// import {MenusFilteringService} from './menus.filter';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\nimport {ErrorMessageDialog} from '../../../reports/reports.component.service'\r\n\r\n@Component({\r\n selector: 'sdk.modaldialog',\r\n host: {\r\n '(document:click)': 'onClick($event)',\r\n }, \r\n template: `\r\n\r\n\r\n\r\n\r\n
SDK - {{selectedColumn}}
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n (Select All) \r\n
\r\n
\r\n {{md.value[0].className}}\r\n
\r\n
\r\n
\r\n
\r\n {{md.value[0].description}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{md.value[0].classType}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n`,\r\n providers: [PagerService]\r\n})\r\n\r\nexport class SdkReportDialog {\r\n constructor(public dialogRef: MdDialogRef,\r\n private errorChangeDetectorRef: ChangeDetectorRef,\r\n private viewContainerRef: ViewContainerRef,\r\n public dialog: MdDialog,\r\n public elementRef: ElementRef) {}\r\n\r\n pagedItems:any;\r\n finalFilterList:any;\r\n checkedAll:boolean=false;\r\n selectedColumn:string =\"\";\r\n selectedColumnGroupBy : string =\"\";\r\n hidePagination :boolean = false;\r\n errorDialogRef: MdDialogRef;\r\n filterList : any[]=[];\r\n disableApplyButton:boolean =false;\r\n clickedOutside:boolean=false;\r\n tempList:any[]=[];\r\n\r\n @ViewChild('container') container: ElementRef;\r\n\r\n render(details:any){\r\n this.pagedItems = details.pagedItems;\r\n this.finalFilterList = details.finalFilterList;\r\n this.tempList = this.finalFilterList;\r\n this.checkedAll = details.checkedAll;\r\n this.selectedColumn = details.selectedColumn;\r\n this.selectedColumnGroupBy = this.getGroupByColumnName();\r\n\r\n if(this.finalFilterList!=undefined && this.finalFilterList.length > 0){\r\n this.finalFilterList.split(',').forEach( (id:any) =>{\r\n this.filterList.push(Number(id));\r\n this.pagedItems.filter((item:any) => item.rowIndex == id).forEach( (item:any) => {\r\n item.isChecked=true;\r\n });\r\n });\r\n }\r\n\r\n //content\r\n this.container.nativeElement.children[1].style.maxHeight=\"30vh\";\r\n this.container.nativeElement.children[1].style.overflow=\"auto\";\r\n\r\n //footer\r\n this.container.nativeElement.children[2].style.float=\"right\";\r\n this.container.nativeElement.children[2].style.position=\"relative\";\r\n this.container.nativeElement.children[2].style.top=\"1vh\";\r\n }\r\n\r\n applyModal():any{\r\n let anythingChoosen= false;\r\n\r\n if(this.filterList.length >0 && this.pagedItems.filter((item:any) => item.isChecked==true).length ==0){\r\n this.showErrorMessage();\r\n this.disableApplyButton=true;\r\n return;\r\n }\r\n this.disableApplyButton=false;\r\n this.filterList=[];\r\n this.pagedItems.filter((item:any) => item.isChecked==true).forEach( (item:any) => {\r\n this.filterList.push(item.rowIndex)\r\n });\r\n\r\n this.finalFilterList = this.filterList.toString();\r\n this.dialogRef.close();\r\n }\r\n\r\n checkboxFieldChange(event: any, colElem: any){\r\n if(!event.checked){\r\n this.checkedAll = false; \r\n }\r\n this.checkboxFieldChangedProcess(this.pagedItems, event, colElem)\r\n }\r\n\r\n close() {\r\n this.checkedAll=false;\r\n this.finalFilterList = this.tempList.toString();\r\n this.dialogRef.close();\r\n }\r\n\r\n toggleAll(event:any){\r\n this.disableApplyButton=false; \r\n this.finalFilterList = this.setToggleValue(this.pagedItems);\r\n }\r\n\r\n getGroupByColumnName():string{\r\n if(this.selectedColumn==SdkFilterColumnName[SdkFilterColumnName.ClassName])\r\n return \"className\"\r\n else if(this.selectedColumn==SdkFilterColumnName[SdkFilterColumnName.Description])\r\n return \"description\"\r\n else if(this.selectedColumn==SdkFilterColumnName[SdkFilterColumnName.ClassType])\r\n return \"classType\" \r\n } \r\n\r\n public checkboxFieldChangedProcess(items:any[], event: any, colElem: any){ \r\n\r\n if(colElem==SdkFilterColumnName[SdkFilterColumnName.ClassName]){\r\n this.classNameFieldProcess(items, event);\r\n }\r\n else if(colElem==SdkFilterColumnName[SdkFilterColumnName.Description]){\r\n this.descFieldProcess(items,event);\r\n }\r\n else if(colElem==SdkFilterColumnName[SdkFilterColumnName.ClassType]){\r\n this.classTypeFieldProcess(items,event);\r\n }\r\n }\r\n public classNameFieldProcess(items:any[], event: any){\r\n let field = ''; \r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n field = getRowDetails[0].className;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.className == field).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.className == field).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n public descFieldProcess(items:any[], event: any){\r\n let field = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n field = getRowDetails[0].description;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.description == field).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.description == field).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n\r\n public classTypeFieldProcess(items:any[], event: any){\r\n let field = '';\r\n\r\n let getRowDetails = items.filter( item => item.rowIndex == event.source.name);\r\n field = getRowDetails[0].classType;\r\n\r\n if(event.checked){\r\n this.disableApplyButton=false;\r\n items.filter(item => item.classType == field).forEach( (item)=>{\r\n item.isChecked=true;\r\n })\r\n }\r\n else{\r\n items.filter(item => item.classType == field).forEach( (item)=>{\r\n item.isChecked=false;\r\n })\r\n }\r\n }\r\n\r\n public setToggleValue(items:any[]){\r\n let toggleFlag = this.checkedAll;\r\n\r\n items.forEach((item:any) => {\r\n item.isChecked=toggleFlag;\r\n });\r\n \r\n this.filterList = [];\r\n\r\n if(toggleFlag){\r\n items.forEach ((item) =>{\r\n this.filterList.push(Number(item.rowIndex)); \r\n });\r\n }\r\n return this.filterList.toString();\r\n }\r\n public showErrorMessage(){\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.errorDialogRef = this.dialog.open(ErrorMessageDialog, config);\r\n this.errorDialogRef.afterClosed().subscribe(result => {\r\n this.errorDialogRef = null;\r\n });\r\n }\r\n\r\n onClick(event:any) {\r\n var clickedOutsideDialog = event.target;\r\n var inside = false;\r\n do {\r\n if (clickedOutsideDialog === this.elementRef.nativeElement) {\r\n inside = true;\r\n }\r\n clickedOutsideDialog = clickedOutsideDialog.parentNode;\r\n } while (clickedOutsideDialog);\r\n \r\n if(inside){\r\n this.clickedOutside=false;\r\n }else{\r\n this.clickedOutside=true;\r\n }\r\n } \r\n}\r\n\r\n export enum SdkFilterColumnName{\r\n ClassName = 0,\r\n Description=1,\r\n ClassType=2,\r\n }\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/sdk/sdk.modaldialog.ts\n **/","module.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tSDK ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_sdk?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_sdk?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
Name \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tDescription\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tType\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tKeepReviewed
{{dataItem?.className}}{{dataItem?.description}}{{dataItem?.classType}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t
10\\\">\\r\\n\\t\\t\\t\\t\\t View: \\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/custom/sdk/sdk.html\n ** module id = 513\n ** module chunks = 0\n **/","import { Component, Input, Output, ViewChild, ViewContainerRef, OnInit, EventEmitter } from '@angular/core';\r\nimport { Response } from '@angular/http';\r\n\r\nimport { SitesService } from '../../../core/sites.service';\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\n\r\n@Component({\r\n selector: 'customTables',\r\n template: require('./customTables.html'),\r\n providers: [SitesService, PagerService]\r\n})\r\nexport class CustomTablesComponent implements OnInit {\r\n\r\n _customTables: CustomTable[] = [];\r\n\r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n if (data.customTables) {\r\n this._customTables = data.customTables;\r\n }\r\n }\r\n }\r\n get data() { return this._customTables; }\r\n @Input() onAnalysisRefresh : EventEmitter;\r\n @Output() onChange = new EventEmitter();\r\n @Input() onFilterCustom: EventEmitter;\r\n\r\n freezeInputs : boolean = false;\r\n opened: boolean = false;\r\n icon: string = 'expand_more';\r\n keep: boolean = false;\r\n reviewed: boolean = false;\r\n search: string = '';\r\n\r\n // pager object\r\n pager: any = {};\r\n\r\n // paged items\r\n pagedItems: any[];\r\n\r\n //page size\r\n pageSize:number = 10;\r\n selectedFilter: any = {};\r\n\r\n constructor(\r\n private pagerService: PagerService,\r\n public sitesService: SitesService\r\n ) { }\r\n\r\n\r\n ngOnInit() {\r\n this.onAnalysisRefresh.subscribe((res:boolean) => {\r\n this.freezeInputs = res;\r\n });\r\n \r\n this.onFilterCustom.subscribe((res: any) => {\r\n this.selectedFilter = res;\r\n this.filterCustom(this.selectedFilter, 1);\r\n });\r\n\r\n // initial to page 1\r\n this.setPage(1);\r\n }\r\n\r\n toggle() {\r\n if (this.opened) {\r\n this.opened = false;\r\n this.icon = 'expand_more';\r\n } else {\r\n this.opened = true;\r\n this.icon = 'expand_less';\r\n }\r\n }\r\n\r\n filterCustom(filter: string, page?: number) {\r\n var customTbls: CustomTable[] = this._customTables;\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n customTbls = this.setcustomTblsFilter(filter, customTbls);\r\n this.pager = this.pagerService.getPager(customTbls.length, page, this.pageSize);\r\n this.pagedItems = customTbls.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n setcustomTblsFilter(filter: any, customTbls: CustomTable[]): CustomTable[] {\r\n customTbls = this.pagerService.filter('custom', customTbls, filter);\r\n\r\n return customTbls;\r\n }\r\n\r\n\r\n keepAll(checked: boolean) {\r\n this._customTables.forEach(function (bpms) {\r\n bpms.keep = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n reviewedAll(checked: boolean) {\r\n this._customTables.forEach(function (bpms) {\r\n bpms.reviewed = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n countReviewed() {\r\n let count = 0;\r\n this._customTables.forEach(function (bpms) {\r\n count += bpms.reviewed ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n countKeep() {\r\n let count = 0;\r\n this._customTables.forEach(function (bpms) {\r\n count += bpms.keep ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n toggleDetails(cl: CustomTable) {\r\n cl.moreDetails = !cl.moreDetails;\r\n }\r\n\r\n sortAsc: number = -1;\r\n\r\n\r\n sortItems(sortby: string) {\r\n let sortAsc = this.sortAsc;\r\n\r\n this._customTables = this._customTables.sort(function (a, b): number {\r\n if (a[sortby] > b[sortby]) {\r\n return -1 * sortAsc\r\n }\r\n else return 1 * sortAsc\r\n });\r\n sortAsc = sortAsc * -1;\r\n\r\n }\r\n\r\n\r\n\r\n setPage(page: number) {\r\n if (page < 1 || page > this.pager.totalPages) {\r\n return;\r\n }\r\n\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(this._customTables.length, page, this.pageSize);\r\n\r\n // get current page of items\r\n this.pagedItems = this._customTables.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n}\r\n\r\nexport interface CustomTable {\r\n name?: string;\r\n description?: string\r\n columns?: Columns[]\r\n keep?: boolean;\r\n reviewed?: boolean;\r\n purpose?: string;\r\n reason?: string;\r\n moreDetails?: boolean;\r\n\r\n}\r\n\r\nexport interface Columns {\r\n columnName?: string\r\n columnType?: string\r\n description?: string\r\n}\r\n\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/customTables/customTables.component.ts\n **/","module.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tTables / UD Fields Used ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_customTables?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_customTables?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tKeep\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tReviewed\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
10\\\">\\r\\n\\t\\t\\t\\t View: \\r\\n\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/custom/customTables/customTables.html\n ** module id = 515\n ** module chunks = 0\n **/","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\n\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\nimport { FilterDashboardPipe } from './dashboards.pipe';\r\n\r\n@Component({\r\n selector: 'dashboards',\r\n template: require('./dashboards.component.html'),\r\n providers: [PagerService]\r\n})\r\nexport class DashboardsComponent implements OnInit {\r\n _dashboards: Dashboard[] = [];\r\n\r\n @Input() onAnalysisRefresh : EventEmitter; \r\n @Input() onFilterCustom : EventEmitter;\r\n\r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n if (data.dashboards) {\r\n this._dashboards = data.dashboards;\r\n }\r\n }\r\n }\r\n get data() { return this._dashboards; }\r\n\r\n @Output() onChange = new EventEmitter();\r\n\r\n freezeInputs : boolean = false;\r\n opened: boolean = false;\r\n icon: string = 'expand_more';\r\n keep: boolean = false;\r\n reviewed: boolean = false;\r\n search: string = '';\r\n selectedFilter: any = {};\r\n pager: any = {};\r\n pagedItems: any[];\r\n //page size\r\n pageSize:number = 10;\r\n\r\n filterDashboardPipe = new FilterDashboardPipe();\r\n\r\n constructor(private pagerService: PagerService) { }\r\n\r\n ngOnInit() {\r\n this.onFilterCustom.subscribe((res: any) => {\r\n this.selectedFilter = res;\r\n this.filterCustom(this.selectedFilter, 1);\r\n });\r\n \r\n this.onAnalysisRefresh.subscribe((res:boolean) => {\r\n this.freezeInputs = res;\r\n });\r\n\r\n this.setPage(1);\r\n }\r\n\r\n filterCustom(filter: any, page?: number) {\r\n var dashboards: any[] = this._dashboards;\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n dashboards = this.setDashboardFilter(filter, dashboards);\r\n this.pager = this.pagerService.getPager(dashboards.length, page, this.pageSize);\r\n this.pagedItems = dashboards.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n setDashboardFilter(filter: any, dashboards: any[]): any[] {\r\n dashboards = this.pagerService.filter('custom', dashboards, filter);\r\n\r\n return dashboards;\r\n }\r\n\r\n filterDashboard(query: any, page?: number) {\r\n var dashboards: Dashboard[] = this._dashboards;\r\n\r\n if (query === '') {\r\n this.setPage(1);\r\n }\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n // use pipe to filter data\r\n dashboards = this.filterDashboardPipe.transform(dashboards, query);\r\n\r\n // apply custom filter\r\n dashboards = this.setDashboardFilter(this.selectedFilter, dashboards);\r\n\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(dashboards.length, page, this.pageSize);\r\n\r\n // get current page of items \r\n this.pagedItems = dashboards.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n toggle() {\r\n if (this.opened) {\r\n this.opened = false;\r\n this.icon = 'expand_more';\r\n } else {\r\n this.opened = true;\r\n this.icon = 'expand_less';\r\n }\r\n }\r\n\r\n keepAll(checked: boolean) {\r\n this._dashboards.forEach(function (dashboard) {\r\n dashboard.keep = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n reviewedAll(checked: boolean) {\r\n this._dashboards.forEach(function (dashboard) {\r\n dashboard.reviewed = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n countReviewed() {\r\n var count = 0;\r\n this._dashboards.forEach(function (dashboard) {\r\n count += dashboard.reviewed ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n countKeep() {\r\n var count = 0;\r\n this._dashboards.forEach(function (dashboard) {\r\n count += dashboard.keep ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n setPage(page: number) {\r\n if (page < 1 || page > this.pager.totalPages) {\r\n return;\r\n }\r\n\r\n // if search query apply filter\r\n if (this.search !== '') {\r\n this.filterDashboard(this.search, page);\r\n } else {\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(this._dashboards.length, page, this.pageSize);\r\n\r\n // get current page of items\r\n this.pagedItems = this._dashboards.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n }\r\n}\r\n\r\nexport interface Dashboard {\r\n baqiDs: string[];\r\n company: string;\r\n compatible: boolean;\r\n complexity: number;\r\n definitionID: string;\r\n description: string;\r\n globalDB: boolean;\r\n mobileAccess: boolean;\r\n keep: boolean;\r\n lastUpdated: string;\r\n lastUpdatedBy: string;\r\n menuLinks: MenuLink[];\r\n reviewed: boolean;\r\n runTime: boolean;\r\n updatable: boolean;\r\n}\r\n\r\nexport interface MenuLink {\r\n menuID: string;\r\n location: string;\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/dashboards/dashboards.component.ts\n **/","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Dashboard } from './dashboards.component';\r\n\r\n@Pipe({name: 'filterDashboard'})\r\nexport class FilterDashboardPipe implements PipeTransform {\r\n transform(dashboards: Dashboard[], query: string): Dashboard[] {\r\n if (query === '') {\r\n return dashboards;\r\n }\r\n return dashboards.filter(d =>\r\n d.company.toLowerCase().indexOf(query.toLowerCase()) !== -1 ||\r\n d.definitionID.toLowerCase().indexOf(query.toLowerCase()) !== -1 ||\r\n d.description.toLowerCase().indexOf(query.toLowerCase()) !== -1);\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/dashboards/dashboards.pipe.ts\n **/","module.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tDashboards ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_dashboards?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_dashboards?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\tKeep\\r\\n\\t\\t\\t\\tReviewed \\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t 0\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n \\t{{menuLink.location}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
10\\\">\\r\\n\\t\\t\\t View: \\r\\n\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/custom/dashboards/dashboards.component.html\n ** module id = 518\n ** module chunks = 0\n **/","import { Component, OnInit, Input, EventEmitter, Output, ViewContainerRef } from '@angular/core';\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\nimport { FilterUpdatableBAQ } from './updatableBAQ.pipe';\r\nimport { ComplexityService } from '../../complexity-type.service';\r\n\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\n\r\nimport {ReportOrderByPipe} from '../../../reports/reportorderby.pipe';\r\nimport {ReportGroupByPipe} from '../../../reports/reportgroupby.pipe'\r\nimport {ReportFilterPipe} from '../../../reports/reportfilter.pipe'\r\nimport {ReportComponentService} from '../../../reports/reports.component.service'\r\n\r\nimport {BAQsSearchPipe} from '../baqs.search.pipe'\r\n\r\nimport { BAQsReportDialog } from '../baqs.modaldialog';\r\nimport { BAQsReportType } from '../baqs.modaldialog';\r\n\r\n@Component({\r\n selector: 'updatableBAQs',\r\n template: require('./updatableBAQs.component.html'),\r\n providers:[PagerService, ComplexityService, ReportComponentService]\r\n})\r\nexport class UpdatableBAQsComponent implements OnInit {\r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n if (data.updatableBAQs) {\r\n this._updatableBAQs = data.updatableBAQs;\r\n }\r\n }\r\n }\r\n get data() { return this._updatableBAQs }\r\n\r\n @Input() onAnalysisRefresh : EventEmitter;\r\n @Input() onFilterCustom: EventEmitter;\r\n @Output() onChange = new EventEmitter();\r\n\r\n _updatableBAQs: UpdatableBAQ[] = [];\r\n freezeInputs : boolean = false;\r\n opened: boolean = false;\r\n icon: string = 'expand_more';\r\n keep: boolean = false;\r\n reviewed: boolean = false;\r\n search: string = '';\r\n selectedFilter: any = {};\r\n pager: any = {};\r\n pagedItems: any[];\r\n //page size\r\n pageSize:number = 10;\r\n filterUpdatableBAQPipe = new FilterUpdatableBAQ();\r\n finalUpdatableBAQsList : string=\"\";\r\n\r\n isDesc: boolean = false;\r\n column: string = 'company';\r\n direction: number;\r\n checkedAll:boolean =false;\r\n\r\n BAQsRef: MdDialogRef;\r\n hidePagination =false;\r\n setFilterColorColumn = '';\r\n\tclickedOutside:boolean =false;\r\n\tselectedItems:any[];\r\n \r\n constructor( private pagerService: PagerService, \r\n private complexityService : ComplexityService,\r\n public dialog: MdDialog,\r\n public viewContainerRef: ViewContainerRef,\r\n private reportComponentService: ReportComponentService){}\r\n\r\n ngOnInit() {\r\n this.onFilterCustom.subscribe((res:any) => {\r\n this.selectedFilter = res;\r\n this.filterCustom(this.selectedFilter, 1);\r\n });\r\n\r\n this.onAnalysisRefresh.subscribe((res:boolean) => {\r\n this.freezeInputs = res;\r\n });\r\n \r\n this.setPage(1); // initial page 1\r\n }\r\n\r\n filterCustom(filter: any, page?:number) {\r\n var updatableBAQs: UpdatableBAQ[] = this._updatableBAQs;\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n updatableBAQs = this.setUpdatableBAQFilter(filter, updatableBAQs);\r\n this.pager = this.pagerService.getPager(updatableBAQs.length, page, this.pageSize);\r\n this.pagedItems = updatableBAQs.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n filterUpdatableBAQ(query: any, page?: number){\r\n var updatableBAQs: UpdatableBAQ[] = this._updatableBAQs;\r\n\r\n if (query === '') {\r\n this.setPage(1);\r\n }\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n updatableBAQs = this.filterUpdatableBAQPipe.transform(updatableBAQs, query)\r\n updatableBAQs = this.setUpdatableBAQFilter(this.selectedFilter, updatableBAQs);\r\n this.pager = this.pagerService.getPager(updatableBAQs.length, page, this.pageSize);\r\n this.pagedItems = updatableBAQs.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n setUpdatableBAQFilter(filter: any, updatableBAQs:UpdatableBAQ[]): any[] {\r\n updatableBAQs = this.pagerService.filter('custom', updatableBAQs, filter,'updatableBAQs');\r\n\r\n return updatableBAQs;\r\n }\r\n\r\n countReviewed() {\r\n let count = 0;\r\n this._updatableBAQs.forEach(updatableBAQ => {\r\n count += updatableBAQ.reviewed ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n countKeep() {\r\n let count = 0;\r\n this._updatableBAQs.forEach(updatableBAQ => {\r\n count += updatableBAQ.keep ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n keepAll(checked: boolean) {\r\n this._updatableBAQs.forEach(updatableBAQ => {\r\n updatableBAQ.keep = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n reviewedAll(checked: boolean) {\r\n this._updatableBAQs.forEach(updatableBAQ => {\r\n updatableBAQ.reviewed = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n toggle() {\r\n if (this.opened) {\r\n this.opened = false;\r\n this.icon = 'expand_more';\r\n } else {\r\n this.opened = true;\r\n this.icon = 'expand_less';\r\n }\r\n }\r\n\r\n setPage(page: number) {\r\n if (page < 1 || page > this.pager.totalPages) {\r\n return;\r\n }\r\n\r\n if (this.search !== '') {\r\n this.filterUpdatableBAQ(this.search, page);\r\n } else {\r\n this.pager = this.pagerService.getPager(this._updatableBAQs.length, page, this.pageSize);\r\n this.pagedItems = this._updatableBAQs.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\r\n this.finalUpdatableBAQsList =\"\";\r\n this.checkedAll=false;\r\n this.reportComponentService.ngBAQsInitFlag(this.pagedItems)\r\n this.sort(this.column)\r\n }\r\n }\r\n\r\n sort(property:any){\r\n this.isDesc = !this.isDesc; //change the direction\r\n this.column = property;\r\n this.direction = this.isDesc ? 1 : -1;\r\n };\r\n\r\n openDialog(colElem: any) { \r\n var menusDialogInput = {\r\n pagedItems: this.pagedItems, \r\n finalBAQsList: this.finalUpdatableBAQsList,\r\n selectedColumn : colElem,\r\n checkedAll : this.checkedAll,\r\n baqsReportType : BAQsReportType[BAQsReportType.UpdatableBAQs]\r\n };\r\n \r\n this.setFilterColorColumn = colElem\r\n\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.BAQsRef = this.dialog.open(BAQsReportDialog,config);\r\n this.BAQsRef.componentInstance.render(menusDialogInput);\r\n\r\n this.BAQsRef.afterClosed().subscribe(result => {\r\n this.clickedOutside= this.BAQsRef.componentInstance.clickedOutside;\r\n if(!this.clickedOutside){\r\n this.selectedItems=[];\r\n this.finalUpdatableBAQsList = this.BAQsRef.componentInstance.finalBAQsList;\r\n this.checkedAll = this.BAQsRef.componentInstance.checkedAll;\r\n if(this.finalUpdatableBAQsList!=null && this.finalUpdatableBAQsList!=undefined && this.finalUpdatableBAQsList.length > 0){\r\n this.finalUpdatableBAQsList.split(',').forEach(item => {\r\n this.selectedItems.push(item);\r\n })\r\n if(this.selectedItems.length != this.pagedItems.length)\r\n this.hidePagination= true;\r\n else\r\n this.hidePagination= false;\r\n }\r\n else\r\n this.hidePagination= false;\r\n }\r\n this.BAQsRef =null;\r\n }); \r\n }\r\n\r\n public setFilterColorCompany(){\r\n return this.reportComponentService.setFilterColorCompany(this.finalUpdatableBAQsList, this.setFilterColorColumn);\r\n }\r\n public setFilterColorQueryId(){\r\n return this.reportComponentService.setFilterColorQueryId(this.finalUpdatableBAQsList, this.setFilterColorColumn);\r\n }\r\n \r\n public setFilterColorDesc(){\r\n return this.reportComponentService.setFilterColorDesc(this.finalUpdatableBAQsList, this.setFilterColorColumn);\r\n }\r\n\r\n public setFilterColorAuthor(){\r\n return this.reportComponentService.setFilterColorAuthor(this.finalUpdatableBAQsList, this.setFilterColorColumn);\r\n } \r\n\r\n public setFilterColorComplexity(){\r\n return this.reportComponentService.setFilterColorComplexity(this.finalUpdatableBAQsList, this.setFilterColorColumn);\r\n } \r\n\r\n public setFilterColorCompatible(){\r\n return this.reportComponentService.setFilterColorCompatible(this.finalUpdatableBAQsList, this.setFilterColorColumn);\r\n }\r\n\r\n public setFilterColorShared(){\r\n return this.reportComponentService.setFilterColorShared(this.finalUpdatableBAQsList, this.setFilterColorColumn);\r\n } \r\n\r\n public setFilterColorTables(){\r\n return this.reportComponentService.setFilterColorTables(this.finalUpdatableBAQsList, this.setFilterColorColumn);\r\n } \r\n\r\n public setFilterColorExternal(){\r\n return this.reportComponentService.setFilterColorExternal(this.finalUpdatableBAQsList, this.setFilterColorColumn);\r\n } \r\n}\r\n\r\nexport interface UpdatableBAQ {\r\n advancedBPMLogic?: boolean;\r\n author?:string;\r\n bpmDirectiveIDs?:any[];\r\n calculatedField?:number;\r\n company?:string;\r\n compatible?:boolean;\r\n complexity?:number;\r\n complexityType?:number;\r\n description?:string;\r\n external?:boolean;\r\n keep?:boolean;\r\n queryID?:string;\r\n queryPhrase?:string;\r\n reviewed?:boolean;\r\n shared?:boolean;\r\n tables?:number;\r\n thirdPartyModule?:any;\r\n updatable?:boolean;\r\n whereUsed?:any;\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/updatableBAQs/updatableBAQs.component.ts\n **/","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({name: 'filterUpdatableBAQ'})\r\nexport class FilterUpdatableBAQ implements PipeTransform {\r\n transform(updatableBAQs: any[], query: string) {\r\n if (query === '') {\r\n return updatableBAQs;\r\n }\r\n return updatableBAQs.filter(ubaq =>\r\n ubaq.queryID.toLowerCase().indexOf(query.toLowerCase()) !== -1 ||\r\n ubaq.description.toLowerCase().indexOf(query.toLowerCase()) !== -1);\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/updatableBAQs/updatableBAQ.pipe.ts\n **/","module.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n \\r\\n Updatable BAQs ({{pager?.totalItems}})\\r\\n \\r\\n Keep ({{ countKeep() }}/{{_updatableBAQs?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_updatableBAQs?.length}})\\r\\n\\t\\t\\r\\n \\r\\n
\\r\\n \\r\\n\\t\\t \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Company\\r\\n \\r\\n \\r\\n Query ID\\r\\n \\r\\n \\r\\n Description\\r\\n \\r\\n \\r\\n Author\\r\\n \\r\\n \\r\\n Complexity\\r\\n \\r\\n \\r\\n Compatible\\r\\n \\r\\n \\r\\n Shared\\r\\n \\r\\n \\r\\n Tables\\r\\n \\r\\n \\r\\n External\\r\\n \\r\\n \\r\\n CompatibleKeepReviewed
{{ item?.company }}{{ item?.queryID }}{{ item?.description }}{{ item?.author }}{{ item?.customComplexity }}{{ item?.compatible}}{{ item?.shared}}{{ item?.tables}}\\r\\n
\\r\\n \\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes\\r\\n
\\r\\n
\\r\\n
\\r\\n\\t\\t\\t\\t\\t\\t\\t No \\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t
\\r\\n
10\\\">\\r\\n View: \\r\\n \\r\\n
1\\\" style=\\\"display:inline-block\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\t
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/custom/updatableBAQs/updatableBAQs.component.html\n ** module id = 521\n ** module chunks = 0\n **/","import { Component, OnInit, Input, EventEmitter, Output, ViewContainerRef } from '@angular/core';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\n\r\nimport { SitesService } from '../../../core/sites.service';\r\nimport { CodeDialog, Code } from '../../../../code/code-dialog.component'\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\nimport { FilterBAQMethodDirectivePipe } from './baqMethodDirectives.pipe';\r\nimport { ComplexityService } from '../../complexity-type.service';\r\n\r\nimport {ReportOrderByPipe} from '../../../reports/reportorderby.pipe';\r\nimport {ReportGroupByPipe} from '../../../reports/reportgroupby.pipe'\r\nimport {ReportFilterPipe} from '../../../reports/reportfilter.pipe'\r\nimport {BPMsSearchPipe} from '../bpms.search.pipe'\r\n\r\nimport {BPMsReportDialog} from '../bpms.modaldialog'\r\nimport {BPMsReportType} from '../bpms.modaldialog'\r\nimport {ReportComponentService} from '../../../reports/reports.component.service'\r\n\r\n@Component({\r\n selector: 'baqMethodDirectives',\r\n template: require('./baqMethodDirectives.component.html'),\r\n providers: [SitesService, PagerService, ComplexityService, ReportComponentService]\r\n})\r\nexport class BAQMethodDirectives implements OnInit {\r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n if (data.baqMethodDirectives) {\r\n this._baqMethodDirectives = data.baqMethodDirectives;\r\n\r\n this._baqMethodDirectives.forEach((element: any) => {\r\n if (element.hasOwnProperty('cloudComplexity') == false) {\r\n element.cloudComplexity = false;\r\n }\r\n if (element.hasOwnProperty('cloudComplexityType') == false) {\r\n element.cloudComplexityType = 'None';\r\n }\r\n if (element.hasOwnProperty('cloudComplexityDescription') == false) {\r\n element.cloudComplexityDescription = '';\r\n }\r\n });\r\n }\r\n }\r\n }\r\n get data() { return this._baqMethodDirectives; }\r\n @Input() onAnalysisRefresh : EventEmitter; \r\n @Input() onFilterCustom: EventEmitter;\r\n @Input() sas: string;\r\n @Output() onChange = new EventEmitter();\r\n\r\n freezeInputs : boolean = false;\r\n dialogRef: MdDialogRef;\r\n opened: boolean = false;\r\n icon: string = 'expand_more';\r\n keep: boolean = false;\r\n reviewed: boolean = false;\r\n search: string = '';\r\n selectedFilter: any = {};\r\n pager: any = {};\r\n pagedItems: any[];\r\n _baqMethodDirectives: any[] = [];\r\n filterBAQMethodDirectivePipe = new FilterBAQMethodDirectivePipe();\r\n //page size\r\n pageSize:number = 10;\r\n\r\n isDesc: boolean = false;\r\n column: string = 'group';\r\n direction: number;\r\n finalBPMsDDList:string=\"\"\r\n hidePagination =false;\r\n toggleFlagPagination =false;\r\n setFilterColorColumn:string =\"\"\r\n checkedAll:boolean =false;\r\n dialogBPMsDDRef : MdDialogRef;\r\n clickedOutside:boolean =false;\r\n selectedItems:any[];\r\n\r\n constructor(\r\n private pagerService: PagerService,\r\n private sitesService: SitesService,\r\n private complexityService: ComplexityService,\r\n public dialog: MdDialog,\r\n public viewContainerRef: ViewContainerRef,\r\n public reportComponentService: ReportComponentService) { }\r\n\r\n ngOnInit() {\r\n this.onFilterCustom.subscribe((res: any) => {\r\n this.selectedFilter = res;\r\n this.filterCustom(this.selectedFilter, 1);\r\n });\r\n\r\n this.onAnalysisRefresh.subscribe((res:boolean) => {\r\n this.freezeInputs = res;\r\n });\r\n\r\n this.setPage(1);\r\n }\r\n\r\n filterCustom(filter: any, page?: number) {\r\n var baqMethodDirectives: any[] = this._baqMethodDirectives;\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n baqMethodDirectives = this.setBAQMethodDirectiveFilter(filter, baqMethodDirectives);\r\n this.pager = this.pagerService.getPager(baqMethodDirectives.length, page, this.pageSize);\r\n this.pagedItems = baqMethodDirectives.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n setBAQMethodDirectiveFilter(filter: any, baqMethodDirectives: any[]): any[] {\r\n baqMethodDirectives = this.pagerService.filter('custom', baqMethodDirectives, filter);\r\n\r\n return baqMethodDirectives;\r\n }\r\n\r\n filterBAQMethodDirective(query: any, page?: number) {\r\n var baqMethodDirectives: any[] = this._baqMethodDirectives;\r\n\r\n if (query === '') {\r\n this.setPage(1);\r\n }\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n baqMethodDirectives = this.filterBAQMethodDirectivePipe.transform(baqMethodDirectives, query);\r\n baqMethodDirectives = this.setBAQMethodDirectiveFilter(this.selectedFilter, baqMethodDirectives);\r\n this.pager = this.pagerService.getPager(baqMethodDirectives.length, page, this.pageSize);\r\n this.pagedItems = baqMethodDirectives.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n toggle() {\r\n if (this.opened) {\r\n this.opened = false;\r\n this.icon = 'expand_more';\r\n } else {\r\n this.opened = true;\r\n this.icon = 'expand_less';\r\n }\r\n }\r\n\r\n countReviewed() {\r\n let count = 0;\r\n this._baqMethodDirectives.forEach(baqMethodDirective => {\r\n count += baqMethodDirective.reviewed ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n countKeep() {\r\n let count = 0;\r\n this._baqMethodDirectives.forEach(baqMethodDirective => {\r\n count += baqMethodDirective.keep ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n keepAll(checked: boolean) {\r\n this._baqMethodDirectives.forEach(baqMethodDirective => {\r\n baqMethodDirective.keep = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n reviewedAll(checked: boolean) {\r\n this._baqMethodDirectives.forEach(baqMethodDirective => {\r\n baqMethodDirective.reviewed = checked;\r\n });\r\n\r\n this.onChange.emit(true);\r\n }\r\n\r\n setPage(page: number) {\r\n if (page < 1 || page > this.pager.totalPages) {\r\n return;\r\n }\r\n\r\n if (this.search !== '') {\r\n this.filterBAQMethodDirective(this.search, page);\r\n } else {\r\n this.pager = this.pagerService.getPager(this._baqMethodDirectives.length, page, this.pageSize);\r\n this.pagedItems = this._baqMethodDirectives.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\r\n this.finalBPMsDDList =\"\";\r\n this.checkedAll=false;\r\n this.reportComponentService.ngInitBPMsFlag(this.pagedItems)\r\n this.sort(this.column)\r\n }\r\n }\r\n\r\n previewCode(url: string, name: string, language: string) {\r\n if (url) {\r\n this.sitesService.getFile(url + this.sas).subscribe((res: any) => {\r\n\r\n var preview: Code = {\r\n source: res.text(),\r\n language: language,\r\n downloadUrl: url + this.sas,\r\n name: name\r\n };\r\n\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.dialogRef = this.dialog.open(CodeDialog, config);\r\n this.dialogRef.componentInstance.render(preview);\r\n\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n this.dialogRef = null;\r\n });\r\n });\r\n }\r\n }\r\n\r\n previewCodeDisabled(baqMethodDirective: any): boolean {\r\n if (baqMethodDirective.sourceFiles && baqMethodDirective.sourceFiles.length > 0 && baqMethodDirective.sourceFiles[0].cloudFilename) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n previewCodeIcon(baqMethodDirective: any): string {\r\n if (this.previewCodeDisabled(baqMethodDirective)) {\r\n return 'cloud_download';\r\n }\r\n return 'cloud_download';\r\n }\r\n\r\n sort(property:any){\r\n this.isDesc = !this.isDesc; //change the direction\r\n this.column = property;\r\n this.direction = this.isDesc ? 1 : -1;\r\n }\r\n\r\n openDialog(colElem: any) {\r\n var BPMsDdDialogInput = {\r\n pagedItems: this.pagedItems, \r\n finalBPMsList: this.finalBPMsDDList,\r\n selectedColumn : colElem,\r\n checkedAll : this.checkedAll,\r\n bpmsReprtType: BPMsReportType[BPMsReportType.BPMsUpdatableBAQs] \r\n };\r\n \r\n this.setFilterColorColumn = colElem\r\n\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.dialogBPMsDDRef = this.dialog.open(BPMsReportDialog,config);\r\n this.dialogBPMsDDRef.componentInstance.render(BPMsDdDialogInput);\r\n\r\n this.dialogBPMsDDRef.afterClosed().subscribe(result => {\r\n this.clickedOutside= this.dialogBPMsDDRef.componentInstance.clickedOutside;\r\n if(!this.clickedOutside){\r\n this.selectedItems=[];\r\n this.finalBPMsDDList = this.dialogBPMsDDRef.componentInstance.finalBPMsList;\r\n this.checkedAll = this.dialogBPMsDDRef.componentInstance.checkedAll;\r\n \r\n if(this.finalBPMsDDList!=null && this.finalBPMsDDList!=undefined && this.finalBPMsDDList.length > 0){\r\n this.finalBPMsDDList.split(',').forEach(item => {\r\n this.selectedItems.push(item);\r\n })\r\n if(this.selectedItems.length != this.pagedItems.length)\r\n this.hidePagination= true;\r\n else\r\n this.hidePagination= false;\r\n }\r\n else\r\n this.hidePagination= false;\r\n }\r\n this.dialogBPMsDDRef =null;\r\n });\r\n } \r\n\r\n public setFilterColorGroup(){\r\n return this.reportComponentService.setFilterColorGroup(this.finalBPMsDDList.toString(), this.setFilterColorColumn); \r\n }\r\n\r\n public setFilterColorName():any{\r\n return this.reportComponentService.setFilterColorName(this.finalBPMsDDList.toString(), this.setFilterColorColumn); \r\n }\r\n public setFilterColorComplexity():any{\r\n return this.reportComponentService.setFilterColorComplexity(this.finalBPMsDDList.toString(), this.setFilterColorColumn); \r\n }\r\n public setFilterColorMethod():any{\r\n return this.reportComponentService.setFilterColorMethod(this.finalBPMsDDList.toString(), this.setFilterColorColumn); \r\n }\r\n public setFilterColorLOC():any{\r\n return this.reportComponentService.setFilterColorLOC(this.finalBPMsDDList.toString(), this.setFilterColorColumn); \r\n } \r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/baqMethodDirectives/baqMethodDirectives.component.ts\n **/","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'filterBAQMethodDirective'})\r\nexport class FilterBAQMethodDirectivePipe implements PipeTransform {\r\n transform(baqMethodDirectives: any[], query: string): any[] {\r\n if (query === '') {\r\n return baqMethodDirectives;\r\n }\r\n return baqMethodDirectives.filter(baqmd => \r\n baqmd.name.toLowerCase().indexOf(query.toLowerCase()) !== -1 ||\r\n baqmd.businessObject.toLowerCase().indexOf(query.toLowerCase()) !== -1);\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/baqMethodDirectives/baqMethodDirectives.pipe.ts\n **/","module.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n \\r\\n BPM (Updatable BAQs) ({{pager?.totalItems}})\\r\\n \\r\\n Keep ({{ countKeep() }}/{{_baqMethodDirectives?.length}})\\r\\n Reviewed ({{ countReviewed() }}/{{_baqMethodDirectives?.length}})\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\t\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Group\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tName\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tMethod\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tComplexity\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tLOC\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tCodeCompatibleCloud WarningKeepReviewed
{{ item?.group }}{{ item?.name }}{{ item?.businessObject }}{{ item?.customComplexity }}{{ item?.linesOfCode }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n
\\r\\n\\t\\t\\t\\t\\t\\t\\t No \\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
10\\\">\\r\\n
10\\\">\\r\\n View: \\r\\n \\r\\n
1\\\" style=\\\"display:inline-block\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/custom/baqMethodDirectives/baqMethodDirectives.component.html\n ** module id = 524\n ** module chunks = 0\n **/","import { Component, Input, Output, OnInit, EventEmitter, ViewContainerRef } from '@angular/core';\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\nimport { FilterNonUpdatableBAQPipe } from './nonUpdatableBAQs.pipe';\r\nimport { ComplexityService } from '../../complexity-type.service';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\n\r\nimport {ReportOrderByPipe} from '../../../reports/reportorderby.pipe';\r\nimport {ReportGroupByPipe} from '../../../reports/reportgroupby.pipe'\r\nimport {ReportFilterPipe} from '../../../reports/reportfilter.pipe'\r\nimport {ReportComponentService} from '../../../reports/reports.component.service'\r\n\r\nimport {BAQsSearchPipe} from '../baqs.search.pipe'\r\n\r\nimport { BAQsReportDialog } from '../baqs.modaldialog';\r\nimport { BAQsReportType } from '../baqs.modaldialog';\r\n\r\n@Component({\r\n selector: 'nonUpdatableBAQs',\r\n template: require('./nonUpdatableBAQs.component.html'),\r\n providers: [PagerService, ComplexityService, ReportComponentService]\r\n})\r\nexport class NonUpdatableBAQs implements OnInit {\r\n _nonUpdatableBAQs: any[] = [];\r\n\r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n if (data.nonUpdatableBAQs) {\r\n this._nonUpdatableBAQs = data.nonUpdatableBAQs;\r\n }\r\n }\r\n }\r\n get data() { return this._nonUpdatableBAQs; }\r\n\r\n @Input() onAnalysisRefresh : EventEmitter;\r\n @Input() onFilterCustom: EventEmitter;\r\n @Input() sas: string;\r\n @Output() onChange = new EventEmitter();\r\n\r\n freezeInputs : boolean = false;\r\n opened: boolean = false;\r\n icon: string = 'expand_more';\r\n keep: boolean = false;\r\n reviewed: boolean = false;\r\n search: string = '';\r\n selectedFilter: any = {};\r\n pager: any = {};\r\n pagedItems: any[];\r\n filterNonUpdatableBAQPipe = new FilterNonUpdatableBAQPipe();\r\n //page size\r\n pageSize:number = 10;\r\n dialogNonBAQRef: MdDialogRef; \r\n finalBAQsList : string=\"\";\r\n\r\n isDesc: boolean = false;\r\n column: string = 'company';\r\n direction: number;\r\n\r\n hidePagination =false;\r\n toggleFlagPagination =false;\r\n setFilterColorColumn = '';\r\n checkedAll :boolean = false;\r\n\tclickedOutside:boolean =false;\r\n\tselectedItems:any[];\r\n \r\n constructor( private pagerService: PagerService,\r\n private complexityService: ComplexityService, \r\n public dialog: MdDialog,\r\n public viewContainerRef: ViewContainerRef,\r\n public reportComponentService: ReportComponentService) {}\r\n\r\n ngOnInit(){\r\n this.onFilterCustom.subscribe((res:any) => {\r\n this.selectedFilter = res;\r\n this.filterCustom(this.selectedFilter, 1);\r\n });\r\n\r\n this.onAnalysisRefresh.subscribe((res:boolean) => {\r\n this.freezeInputs = res;\r\n });\r\n\r\n this.setPage(1);\r\n }\r\n\r\n filterCustom(filter: any, page?: number) {\r\n var nonUpdatableBAQs: any[] = this._nonUpdatableBAQs;\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n nonUpdatableBAQs = this.setNonUpdatableBAQFilter(filter, nonUpdatableBAQs);\r\n this.pager = this.pagerService.getPager(nonUpdatableBAQs.length, page, this.pageSize);\r\n this.pagedItems = nonUpdatableBAQs.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n \r\n setNonUpdatableBAQFilter(filter: any, nonUpdatableBAQs: any[]): any[] {\r\n nonUpdatableBAQs = this.pagerService.filter('custom', nonUpdatableBAQs, filter,'updatableBAQs');\r\n\r\n return nonUpdatableBAQs;\r\n }\r\n \r\n filterNonUpdatableBAQ(query: any, page?: number) {\r\n var nonUpdatableBAQs = this._nonUpdatableBAQs;\r\n\r\n if (query === '') {\r\n this.setPage(1);\r\n }\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n nonUpdatableBAQs = this.filterNonUpdatableBAQPipe.transform(nonUpdatableBAQs, query);\r\n nonUpdatableBAQs = this.setNonUpdatableBAQFilter(this.selectedFilter, nonUpdatableBAQs);\r\n this.pager = this.pagerService.getPager(nonUpdatableBAQs.length, page, this.pageSize);\r\n this.pagedItems = nonUpdatableBAQs.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n \r\n toggle() {\r\n if(this.opened) {\r\n this.opened = false;\r\n this.icon = 'expand_more';\r\n } else {\r\n this.opened = true;\r\n this.icon = 'expand_less';\r\n }\r\n }\r\n \r\n keepAll(checked: boolean): void {\r\n this._nonUpdatableBAQs.forEach(nonUpdatableBAQ => {\r\n nonUpdatableBAQ.keep = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n reviewedAll(checked: boolean): void {\r\n this._nonUpdatableBAQs.forEach(nonUpdatableBAQ => {\r\n nonUpdatableBAQ.reviewed = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n countReviewed(): number {\r\n let count = 0;\r\n this._nonUpdatableBAQs.forEach(nonUpdatableBAQ => {\r\n count += nonUpdatableBAQ.reviewed ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n \r\n countKeep(): number {\r\n let count = 0;\r\n this._nonUpdatableBAQs.forEach(nonUpdatableBAQ => {\r\n count += nonUpdatableBAQ.keep ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n \r\n setPage(page:number) {\r\n if (page < 1 || page > this.pager.totalPages) {\r\n return;\r\n }\r\n\r\n if (this.search !== '') {\r\n this.filterNonUpdatableBAQ(this.search, page);\r\n } else {\r\n this.pager = this.pagerService.getPager(this._nonUpdatableBAQs.length, page, this.pageSize);\r\n this.pagedItems = this._nonUpdatableBAQs.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\r\n this.finalBAQsList =\"\";\r\n this.checkedAll = false;\r\n this.reportComponentService.ngBAQsInitFlag(this.pagedItems)\r\n this.sort(this.column)\r\n } \r\n }\r\n openDialog(colElem: any) { \r\n var nonUpdatableBAQsDialogInput = {\r\n pagedItems: this.pagedItems, \r\n finalBAQsList: this.finalBAQsList,\r\n selectedColumn : colElem,\r\n checkedAll : this.checkedAll,\r\n baqsReportType : BAQsReportType[BAQsReportType.BAQs]\r\n };\r\n \r\n this.setFilterColorColumn = colElem\r\n\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.dialogNonBAQRef = this.dialog.open(BAQsReportDialog,config);\r\n this.dialogNonBAQRef.componentInstance.render(nonUpdatableBAQsDialogInput);\r\n\r\n this.dialogNonBAQRef.afterClosed().subscribe(result => {\r\n this.clickedOutside= this.dialogNonBAQRef.componentInstance.clickedOutside;\r\n if(!this.clickedOutside){\r\n this.selectedItems=[];\r\n this.finalBAQsList = this.dialogNonBAQRef.componentInstance.finalBAQsList;\r\n this.checkedAll = this.dialogNonBAQRef.componentInstance.checkedAll;\r\n \r\n if(this.finalBAQsList!=null && this.finalBAQsList!=undefined && this.finalBAQsList.length > 0){\r\n this.finalBAQsList.split(',').forEach(item => {\r\n this.selectedItems.push(item);\r\n })\r\n if(this.selectedItems.length != this.pagedItems.length)\r\n this.hidePagination= true;\r\n else\r\n this.hidePagination= false;\r\n }\r\n else\r\n this.hidePagination= false;\r\n }\r\n this.dialogNonBAQRef =null;\r\n }); \r\n }\r\n\r\n sort(property:any){\r\n this.isDesc = !this.isDesc; //change the direction\r\n this.column = property;\r\n this.direction = this.isDesc ? 1 : -1;\r\n\r\n };\r\n\r\n public setFilterColorCompany(){\r\n return this.reportComponentService.setFilterColorCompany(this.finalBAQsList, this.setFilterColorColumn);\r\n }\r\n public setFilterColorQueryId(){\r\n return this.reportComponentService.setFilterColorQueryId(this.finalBAQsList, this.setFilterColorColumn);\r\n }\r\n \r\n public setFilterColorDesc(){\r\n return this.reportComponentService.setFilterColorDesc(this.finalBAQsList, this.setFilterColorColumn);\r\n } \r\n public setFilterColorComplexity(){\r\n return this.reportComponentService.setFilterColorComplexity(this.finalBAQsList, this.setFilterColorColumn);\r\n }\r\n\r\n public setFilterColorExternal(){\r\n return this.reportComponentService.setFilterColorExternal(this.finalBAQsList, this.setFilterColorColumn);\r\n } \r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/nonUpdatableBAQs/nonUpdatableBAQs.component.ts\n **/","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({name: 'filterNonUpdatableBAQ'})\r\nexport class FilterNonUpdatableBAQPipe implements PipeTransform {\r\n transform(nonUpdatableBAQs: any[], query: string): any[] {\r\n if (query === '') {\r\n return nonUpdatableBAQs;\r\n }\r\n return nonUpdatableBAQs.filter(nubaq => \r\n nubaq.company.toLowerCase().indexOf(query.toLowerCase()) !== -1 ||\r\n nubaq.description.toLowerCase().indexOf(query.toLowerCase()) !== -1 ||\r\n nubaq.queryID.toLowerCase().indexOf(query.toLowerCase()) !== -1);\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/nonUpdatableBAQs/nonUpdatableBAQs.pipe.ts\n **/","module.exports = \"
0\\\">\\r\\n
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n \\r\\n\\t\\tBAQs ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_nonUpdatableBAQs?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_nonUpdatableBAQs?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Company\\r\\n \\r\\n \\r\\n Query ID\\r\\n \\r\\n \\r\\n Description\\r\\n \\r\\n \\r\\n Complexity\\r\\n \\r\\n \\r\\n Cloud Warning\\r\\n \\r\\n \\r\\n CompatibleKeepReviewed
{{ item?.company }}{{ item?.queryID }}{{ item?.description }}{{ item?.customComplexity }}\\r\\n
\\r\\n \\r\\n
\\r\\n Yes \\r\\n
\\r\\n
\\r\\n Yes\\r\\n
\\r\\n
\\r\\n
\\r\\n\\t\\t\\t\\t\\t\\t\\t No \\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n
\\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t
\\r\\n
10\\\">\\r\\n View: \\r\\n \\r\\n
1\\\" style=\\\"display:inline-block\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\t\\t
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/custom/nonUpdatableBAQs/nonUpdatableBAQs.component.html\n ** module id = 527\n ** module chunks = 0\n **/","import {\r\n Component,\r\n Input,\r\n EventEmitter,\r\n Output,\r\n OnInit,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { Response } from '@angular/http';\r\n\r\nimport {\r\n MdDialog,\r\n MdDialogConfig,\r\n MdDialogRef\r\n} from '@angular/material';\r\n\r\n import { SitesService } from '../../../core/sites.service';\r\nimport { CodeDialog, Code } from '../../../../code/code-dialog.component';\r\n import { PagerService } from '../../../../shared/services/pager.service';\r\nimport { FilterTriggersPipe } from './customTriggers.pipe';\r\n\r\nimport { ComplexityService } from '../../complexity-type.service';\r\n\r\nimport {ReportOrderByPipe} from '../../../reports/reportorderby.pipe';\r\nimport {ReportGroupByPipe} from '../../../reports/reportgroupby.pipe'\r\nimport {ReportFilterPipe} from '../../../reports/reportfilter.pipe'\r\nimport {CustomTriggerSearchPipe} from './customTriggers.search.pipe'\r\n\r\nimport {CustomTriggerDialog} from './customTriggers.modaldialog'\r\nimport {SQLReportType} from '../sql.modaldialog'\r\nimport {ReportComponentService} from '../../../reports/reports.component.service'\r\n\r\n@Component({\r\n selector: 'customTriggers',\r\n template: require('./customTriggers.html'),\r\n providers: [PagerService, ReportComponentService, ComplexityService]\r\n})\r\nexport class CustomTriggersComponent implements OnInit {\r\n dialogRef: MdDialogRef;\r\n _customTriggers: CustomTriggers[] = [];\r\n \r\n @Input() onAnalysisRefresh : EventEmitter;\r\n @Input() onFilterCustom: EventEmitter;\r\n @Input() sas: string;\r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n if (data.customTriggers) {\r\n this._customTriggers = data.customTriggers;\r\n }\r\n }\r\n }\r\n get data() { return this._customTriggers; }\r\n\r\n @Output() onChange = new EventEmitter();\r\n \r\n freezeInputs : boolean = false;\r\n opened: boolean = false;\r\n icon: string = 'expand_more';\r\n keep: boolean = false;\r\n reviewed: boolean = false;\r\n search: string = '';\r\n selectedFilter: string = '';\r\n pager: any = {};\r\n pagedItems: any[];\r\n filteCustomTriggersPipe = new FilterTriggersPipe();\r\n //page size\r\n pageSize:number = 10;\r\n\r\n customTriggersDialogRef: MdDialogRef; \r\n\r\n isDesc: boolean = false;\r\n column: string = 'name';\r\n direction: number;\r\n\r\n finalSQLList :string=\"\" ;\r\n toggleFlag = false;\r\n checkedAll :boolean =false;\r\n hidePagination =false;\r\n setFilterColorColumn = '';\r\n\tclickedOutside:boolean =false;\r\n selectedItems:any[];\r\n\r\n constructor(\r\n private pagerService: PagerService,\r\n private complexityService: ComplexityService, \r\n public sitesService: SitesService,\r\n public dialog: MdDialog,\r\n public viewContainerRef: ViewContainerRef,\r\n public reportComponentService: ReportComponentService) { }\r\n\r\n\r\n ngOnInit() {\r\n this.onFilterCustom.subscribe((res: any) => {\r\n this.selectedFilter = res;\r\n this.filterCustom(this.selectedFilter, 1);\r\n });\r\n \r\n this.onAnalysisRefresh.subscribe((res:boolean) => {\r\n this.freezeInputs = res;\r\n });\r\n \r\n // initial to page 1\r\n this.setPage(1);\r\n }\r\n\r\n filterCustom(filter: any, page?: number) {\r\n var customTriggers: CustomTriggers[] = this._customTriggers;\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n customTriggers = this.setCustomTriggerFilter(filter, customTriggers);\r\n this.pager = this.pagerService.getPager(customTriggers.length, page, this.pageSize);\r\n this.pagedItems = customTriggers.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n setCustomTriggerFilter(filter: any, customTriggers: CustomTriggers[]): CustomTriggers[] {\r\n customTriggers = this.pagerService.filter('custom', customTriggers, filter);\r\n\r\n return customTriggers;\r\n }\r\n\r\n filterCustomTrigger(query: any, page?: number) {\r\n var customTriggers: CustomTriggers[] = this._customTriggers;\r\n\r\n if (query === '') {\r\n this.setPage(1);\r\n }\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n // use pipe to filter data\r\n customTriggers = this.filteCustomTriggersPipe.transform(this._customTriggers, query);\r\n\r\n // apply custom filter\r\n customTriggers = this.setCustomTriggerFilter(this.selectedFilter, customTriggers);\r\n\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(customTriggers.length, page, this.pageSize);\r\n\r\n // get current page of items \r\n this.pagedItems = customTriggers.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n toggle() {\r\n if (this.opened) {\r\n this.opened = false;\r\n this.icon = 'expand_more';\r\n } else {\r\n this.opened = true;\r\n this.icon = 'expand_less';\r\n }\r\n }\r\n\r\n previewCode(url: string, name: string, language: string) {\r\n if (url) {\r\n this.sitesService.getFile(url + this.sas).subscribe((res: Response) => {\r\n\r\n var preview: Code = {\r\n source: res.text(),\r\n language: language,\r\n downloadUrl: url + this.sas,\r\n name: name\r\n };\r\n\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.dialogRef = this.dialog.open(CodeDialog, config);\r\n this.dialogRef.componentInstance.render(preview);\r\n\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n this.dialogRef = null;\r\n });\r\n });\r\n }\r\n }\r\n\r\n keepAll(checked: boolean) {\r\n this._customTriggers.forEach(function (customTriggers:any) {\r\n customTriggers.keep = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n reviewedAll(checked: boolean) {\r\n this._customTriggers.forEach(function (customTriggers) {\r\n customTriggers.reviewed = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n countReviewed() {\r\n let count = 0;\r\n this._customTriggers.forEach(function (customTriggers) {\r\n count += customTriggers.reviewed ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n countKeep() {\r\n let count = 0;\r\n this._customTriggers.forEach(function (customTriggers) {\r\n count += customTriggers.keep ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n previewCodeDisabled(item: CustomTriggers): boolean {\r\n if (item.definition && item.definition.cloudFilename) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n previewCodeIcon(item: CustomTriggers): string {\r\n if (this.previewCodeDisabled(item)) {\r\n return \"cloud_download\";\r\n }\r\n return \"cloud_download\";\r\n }\r\n\r\n setPage(page: number) {\r\n if (page < 1 || page > this.pager.totalPages) {\r\n return;\r\n }\r\n\r\n // if search query apply filter\r\n if (this.search !== '') {\r\n this.filterCustomTrigger(this.search, page);\r\n } else {\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(this._customTriggers.length, page, this.pageSize);\r\n\r\n // get current page of items\r\n this.pagedItems = this._customTriggers.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\r\n this.finalSQLList =\"\";\r\n this.checkedAll=false;\r\n this.reportComponentService.ngSQLInitFlag(this.pagedItems)\r\n this.sort(this.column); \r\n }\r\n }\r\n openDialog(colElem: any) { \r\n var customTriggerDialogInput = {\r\n pagedItems: this.pagedItems, \r\n finalSQLList: this.finalSQLList,\r\n selectedColumn : colElem,\r\n checkedAll : this.checkedAll,\r\n sqlReportType: SQLReportType[SQLReportType.Trigger]\r\n };\r\n\r\n this.setFilterColorColumn = colElem\r\n\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.customTriggersDialogRef = this.dialog.open(CustomTriggerDialog,config);\r\n this.customTriggersDialogRef.componentInstance.render(customTriggerDialogInput);\r\n\r\n this.customTriggersDialogRef.afterClosed().subscribe(result => {\r\n this.clickedOutside= this.customTriggersDialogRef.componentInstance.clickedOutside;\r\n if(!this.clickedOutside){\r\n this.selectedItems=[];\r\n this.finalSQLList = this.customTriggersDialogRef.componentInstance.finalSQLList;\r\n this.checkedAll = this.customTriggersDialogRef.componentInstance.checkedAll;\r\n \r\n if(this.finalSQLList!=null && this.finalSQLList!=undefined && this.finalSQLList.length > 0){\r\n this.finalSQLList.split(',').forEach(item => {\r\n this.selectedItems.push(item);\r\n })\r\n if(this.selectedItems.length != this.pagedItems.length)\r\n this.hidePagination= true;\r\n else\r\n this.hidePagination= false;\r\n }\r\n else\r\n this.hidePagination= false;\r\n }\r\n this.customTriggersDialogRef =null;\r\n });\r\n }\r\n\r\n sort(property:any){\r\n this.isDesc = !this.isDesc; //change the direction\r\n this.column = property;\r\n this.direction = this.isDesc ? 1 : -1;\r\n };\r\n\r\n public setFilterColorName(){\r\n return this.reportComponentService.setFilterColorName(this.finalSQLList.toString(), this.setFilterColorColumn); \r\n }\r\n public setFilterColorTableName(){\r\n return this.reportComponentService.setFilterColorTableName(this.finalSQLList.toString(), this.setFilterColorColumn); \r\n }\r\n public setFilterColorComplexity(){\r\n return this.reportComponentService.setFilterColorComplexity(this.finalSQLList.toString(), this.setFilterColorColumn); \r\n }\r\n public setFilterColorLOC(){\r\n return this.reportComponentService.setFilterColorLOC(this.finalSQLList.toString(), this.setFilterColorColumn); \r\n } \r\n}\r\n\r\nexport interface CustomTriggers {\r\n compatible: boolean;\r\n complexity: number;\r\n definition: Definition;\r\n keep: boolean;\r\n linesOfCode: number;\r\n name: string;\r\n reviewed: boolean;\r\n}\r\n\r\nexport interface Definition {\r\n cloudFilename: string;\r\n cloudFolder: string;\r\n fileHash: string;\r\n localFilePath: string;\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/triggers/customTriggers.component.ts\n **/","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { CustomTriggers, CustomTriggersComponent } from './customTriggers.component';\r\n\r\n@Pipe({name: 'filterTriggers'})\r\nexport class FilterTriggersPipe implements PipeTransform {\r\n transform(customTriggers: CustomTriggers[], query: string): CustomTriggers[] {\r\n if (query === '') {\r\n return customTriggers;\r\n }\r\n return customTriggers.filter(strg =>\r\n strg.name.toLowerCase().indexOf(query.toLowerCase()) !== -1);\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/triggers/customTriggers.pipe.ts\n **/","module.exports = \"
0\\\">\\r\\n
\\r\\n
\\r\\n Keep All\\r\\n Reviewed All\\r\\n
\\r\\n
\\r\\n\\t\\r\\n Triggers ({{pager?.totalItems}})\\r\\n \\r\\n Keep ({{ countKeep() }}/{{_customTriggers?.length}})\\r\\n Reviewed ({{ countReviewed() }}/{{_customTriggers?.length}})\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n \\t\\t\\t\\t\\t\\t\\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Trigger Name\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tTable Name\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tCodeLOC\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tComplexity\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tKeepReviewed
{{dataItem?.name}}{{dataItem?.tableName}}\\r\\n \\r\\n {{dataItem?.linesOfCode}}{{dataItem?.complexity}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\t\\t\\t
\\t\\t\\t\\r\\n
10\\\">\\r\\n View: \\r\\n \\r\\n
1\\\" style=\\\"display:inline-block\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\t\\t\\t
\\r\\n
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/custom/triggers/customTriggers.html\n ** module id = 530\n ** module chunks = 0\n **/","import {\r\n Component,\r\n Input,\r\n EventEmitter,\r\n Output,\r\n OnInit,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { Response } from '@angular/http';\r\n\r\nimport {\r\n MdDialog,\r\n MdDialogConfig,\r\n MdDialogRef\r\n} from '@angular/material';\r\n\r\n import { SitesService } from '../../../core/sites.service';\r\nimport { CodeDialog, Code } from '../../../../code/code-dialog.component';\r\n import { PagerService } from '../../../../shared/services/pager.service';\r\nimport { FiltersqlFunctionsPipe } from './sqlFunctions.pipe';\r\n\r\nimport { ComplexityService } from '../../complexity-type.service';\r\n\r\nimport {ReportOrderByPipe} from '../../../reports/reportorderby.pipe';\r\nimport {ReportGroupByPipe} from '../../../reports/reportgroupby.pipe'\r\nimport {ReportFilterPipe} from '../../../reports/reportfilter.pipe'\r\nimport {SQLSearchPipe} from '../sql.search.pipe'\r\n\r\nimport {SQLReportDialog} from '../sql.modaldialog'\r\nimport {SQLReportType} from '../sql.modaldialog'\r\nimport {ReportComponentService} from '../../../reports/reports.component.service'\r\n\r\n@Component({\r\n selector: 'sqlFunctions',\r\n template: require('./sqlFunctions.html'),\r\n providers: [PagerService, ReportComponentService, ComplexityService]\r\n})\r\nexport class SQLFunctionsComponent implements OnInit {\r\n dialogRef: MdDialogRef;\r\n _sqlFunctions: SQLFunctions[] = [];\r\n \r\n @Input() onAnalysisRefresh : EventEmitter;\r\n @Input() onFilterCustom: EventEmitter;\r\n @Input() sas: string;\r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n if (data.sqlFunctions) {\r\n this._sqlFunctions = data.sqlFunctions;\r\n\r\n this._sqlFunctions.forEach((element:any) => {\r\n if(element.hasOwnProperty('cloudComplexity')==false){\r\n element.cloudComplexity= true;\r\n }\r\n if(element.hasOwnProperty('cloudComplexityType')==false){\r\n element.cloudComplexityType= 'None';\r\n }\r\n if(element.hasOwnProperty('cloudComplexityDescription')==false){\r\n element.cloudComplexityDescription= '';\r\n }\r\n }); \r\n }\r\n }\r\n }\r\n get data() { return this._sqlFunctions; }\r\n\r\n @Output() onChange = new EventEmitter();\r\n \r\n freezeInputs : boolean = false;\r\n opened: boolean = false;\r\n icon: string = 'expand_more';\r\n keep: boolean = false;\r\n reviewed: boolean = false;\r\n search: string = '';\r\n selectedFilter: string = '';\r\n pager: any = {};\r\n pagedItems: any[];\r\n filterSqlFunctionsPipe = new FiltersqlFunctionsPipe();\r\n //page size\r\n pageSize:number = 10;\r\n\r\n sqlFunctionDialogRef: MdDialogRef; \r\n\r\n isDesc: boolean = false;\r\n column: string = 'name';\r\n direction: number;\r\n\r\n finalSQLList :string=\"\" ;\r\n toggleFlag = false;\r\n checkedAll :boolean =false;\r\n hidePagination =false;\r\n setFilterColorColumn = '';\r\n\tclickedOutside:boolean =false;\r\n selectedItems:any[];\r\n\r\n constructor(\r\n private pagerService: PagerService,\r\n private complexityService: ComplexityService, \r\n public sitesService: SitesService,\r\n public dialog: MdDialog,\r\n public viewContainerRef: ViewContainerRef,\r\n public reportComponentService: ReportComponentService) { }\r\n\r\n\r\n ngOnInit() {\r\n this.onFilterCustom.subscribe((res: any) => {\r\n this.selectedFilter = res;\r\n this.filterCustom(this.selectedFilter, 1);\r\n });\r\n \r\n this.onAnalysisRefresh.subscribe((res:boolean) => {\r\n this.freezeInputs = res;\r\n });\r\n \r\n // initial to page 1\r\n this.setPage(1);\r\n }\r\n\r\n filterCustom(filter: any, page?: number) {\r\n var sqlFunctions: SQLFunctions[] = this._sqlFunctions;\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n sqlFunctions = this.setsqlFunctionsFilter(filter, sqlFunctions);\r\n this.pager = this.pagerService.getPager(sqlFunctions.length, page, this.pageSize);\r\n this.pagedItems = sqlFunctions.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n setsqlFunctionsFilter(filter: any, sqlFunctions: SQLFunctions[]): SQLFunctions[] {\r\n sqlFunctions = this.pagerService.filter('custom', sqlFunctions, filter);\r\n\r\n return sqlFunctions;\r\n }\r\n\r\n filterSqlFunctions(query: any, page?: number) {\r\n var sqlFunctions: SQLFunctions[] = this._sqlFunctions;\r\n\r\n if (query === '') {\r\n this.setPage(1);\r\n }\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n // use pipe to filter data\r\n sqlFunctions = this.filterSqlFunctionsPipe.transform(this._sqlFunctions, query);\r\n\r\n // apply custom filter\r\n sqlFunctions = this.setsqlFunctionsFilter(this.selectedFilter, sqlFunctions);\r\n\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(sqlFunctions.length, page, this.pageSize);\r\n\r\n // get current page of items \r\n this.pagedItems = sqlFunctions.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n toggle() {\r\n if (this.opened) {\r\n this.opened = false;\r\n this.icon = 'expand_more';\r\n } else {\r\n this.opened = true;\r\n this.icon = 'expand_less';\r\n }\r\n }\r\n\r\n previewCode(url: string, name: string, language: string) {\r\n if (url) {\r\n this.sitesService.getFile(url + this.sas).subscribe((res: Response) => {\r\n\r\n var preview: Code = {\r\n source: res.text(),\r\n language: language,\r\n downloadUrl: url + this.sas,\r\n name: name\r\n };\r\n\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.dialogRef = this.dialog.open(CodeDialog, config);\r\n this.dialogRef.componentInstance.render(preview);\r\n\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n this.dialogRef = null;\r\n });\r\n });\r\n }\r\n }\r\n\r\n keepAll(checked: boolean) {\r\n this._sqlFunctions.forEach(function (sqlFunc) {\r\n sqlFunc.keep = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n reviewedAll(checked: boolean) {\r\n this._sqlFunctions.forEach(function (sqlFunc) {\r\n sqlFunc.reviewed = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n countReviewed() {\r\n let count = 0;\r\n this._sqlFunctions.forEach(function (sqlFunc) {\r\n count += sqlFunc.reviewed ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n countKeep() {\r\n let count = 0;\r\n this._sqlFunctions.forEach(function (sqlFunc) {\r\n count += sqlFunc.keep ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n previewCodeDisabled(item: SQLFunctions): boolean {\r\n if (item.definition && item.definition.cloudFilename) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n previewCodeIcon(item: SQLFunctions): string {\r\n if (this.previewCodeDisabled(item)) {\r\n return \"cloud_download\";\r\n }\r\n return \"cloud_download\";\r\n }\r\n\r\n setPage(page: number) {\r\n if (page < 1 || page > this.pager.totalPages) {\r\n return;\r\n }\r\n\r\n // if search query apply filter\r\n if (this.search !== '') {\r\n this.filterSqlFunctions(this.search, page);\r\n } else {\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(this._sqlFunctions.length, page, this.pageSize);\r\n\r\n // get current page of items\r\n this.pagedItems = this._sqlFunctions.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\r\n this.finalSQLList =\"\";\r\n this.checkedAll=false;\r\n this.reportComponentService.ngSQLInitFlag(this.pagedItems)\r\n this.sort(this.column); \r\n }\r\n }\r\n openDialog(colElem: any) { \r\n var SqlSprocDialogInput = {\r\n pagedItems: this.pagedItems, \r\n finalSQLList: this.finalSQLList,\r\n selectedColumn : colElem,\r\n checkedAll : this.checkedAll,\r\n sqlReportType: SQLReportType[SQLReportType.Function]\r\n };\r\n\r\n this.setFilterColorColumn = colElem\r\n\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.sqlFunctionDialogRef = this.dialog.open(SQLReportDialog,config);\r\n this.sqlFunctionDialogRef.componentInstance.render(SqlSprocDialogInput);\r\n\r\n this.sqlFunctionDialogRef.afterClosed().subscribe(result => {\r\n this.clickedOutside= this.sqlFunctionDialogRef.componentInstance.clickedOutside;\r\n if(!this.clickedOutside){\r\n this.selectedItems=[];\r\n this.finalSQLList = this.sqlFunctionDialogRef.componentInstance.finalSQLList;\r\n this.checkedAll = this.sqlFunctionDialogRef.componentInstance.checkedAll;\r\n \r\n if(this.finalSQLList!=null && this.finalSQLList!=undefined && this.finalSQLList.length > 0){\r\n this.finalSQLList.split(',').forEach(item => {\r\n this.selectedItems.push(item);\r\n })\r\n if(this.selectedItems.length != this.pagedItems.length)\r\n this.hidePagination= true;\r\n else\r\n this.hidePagination= false;\r\n }\r\n else\r\n this.hidePagination= false;\r\n }\r\n this.sqlFunctionDialogRef =null;\r\n });\r\n }\r\n\r\n sort(property:any){\r\n this.isDesc = !this.isDesc; //change the direction\r\n this.column = property;\r\n this.direction = this.isDesc ? 1 : -1;\r\n };\r\n\r\n public setFilterColorName(){\r\n return this.reportComponentService.setFilterColorName(this.finalSQLList.toString(), this.setFilterColorColumn); \r\n }\r\n public setFilterColorComplexity(){\r\n return this.reportComponentService.setFilterColorComplexity(this.finalSQLList.toString(), this.setFilterColorColumn); \r\n }\r\n public setFilterColorLOC(){\r\n return this.reportComponentService.setFilterColorLOC(this.finalSQLList.toString(), this.setFilterColorColumn); \r\n } \r\n}\r\n\r\nexport interface SQLFunctions {\r\n compatible: boolean;\r\n complexity: number;\r\n definition: Definition;\r\n keep: boolean;\r\n linesOfCode: number;\r\n name: string;\r\n reviewed: boolean;\r\n}\r\n\r\nexport interface Definition {\r\n cloudFilename: string;\r\n cloudFolder: string;\r\n fileHash: string;\r\n localFilePath: string;\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/sqlFunctions/sqlFunctions.component.ts\n **/","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SQLFunctions, SQLFunctionsComponent } from './sqlFunctions.component';\r\n\r\n@Pipe({name: 'filterFunctions'})\r\nexport class FiltersqlFunctionsPipe implements PipeTransform {\r\n transform(sqlFunctions: SQLFunctions[], query: string): SQLFunctions[] {\r\n if (query === '') {\r\n return sqlFunctions;\r\n }\r\n return sqlFunctions.filter(strg =>\r\n strg.name.toLowerCase().indexOf(query.toLowerCase()) !== -1);\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/sqlFunctions/sqlFunctions.pipe.ts\n **/","module.exports = \"
0\\\">\\r\\n
\\r\\n
\\r\\n Keep All\\r\\n Reviewed All\\r\\n
\\r\\n
\\r\\n\\t\\r\\n SQL Functions ({{pager?.totalItems}})\\r\\n \\r\\n Keep ({{ countKeep() }}/{{_sqlFunctions?.length}})\\r\\n Reviewed ({{ countReviewed() }}/{{_sqlFunctions?.length}})\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Name\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tCodeLOC\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tComplexity\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tKeepReviewed
{{dataItem?.name}}\\r\\n \\r\\n {{dataItem?.linesOfCode}}{{dataItem?.complexity}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\t\\t\\t
\\t\\t\\t\\r\\n
10\\\">\\r\\n View: \\r\\n \\r\\n
1\\\" style=\\\"display:inline-block\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\t\\t\\t
\\r\\n
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/custom/sqlFunctions/sqlFunctions.html\n ** module id = 533\n ** module chunks = 0\n **/","import { Component, Input, Output, OnInit, EventEmitter, ViewContainerRef } from '@angular/core';\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\n\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\n\r\nimport {ReportOrderByPipe} from '../../../reports/reportorderby.pipe';\r\nimport {ReportGroupByPipe} from '../../../reports/reportgroupby.pipe'\r\nimport {ReportFilterPipe} from '../../../reports/reportfilter.pipe'\r\nimport {UserDefinedTablesSearchPipe} from './userDefinedTables.search.pipe'\r\n\r\nimport {UserDefinedTablesReportDialog} from './userDefinedTables.modaldialog'\r\n\r\nimport {ReportComponentService} from '../../../reports/reports.component.service'\r\nimport {ComplexityService} from '../../complexity-type.service';\r\n\r\n\r\n@Component({\r\n selector: 'userDefinedTables',\r\n template: require('./userDefinedTables.html'),\r\n providers: [PagerService, ReportComponentService, ComplexityService]\r\n})\r\nexport class UserDefinedTableComponent implements OnInit {\r\n _userDefinedTables: UserDefinedTable[] = []; \r\n @Input() onAnalysisRefresh : EventEmitter;\r\n @Input() onFilterCustom: EventEmitter;\r\n\r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n if (data.userDefinedTables) {\r\n this._userDefinedTables = data.userDefinedTables;\r\n\r\n this._userDefinedTables.forEach((element:any) => {\r\n if(element.hasOwnProperty('cloudComplexity')==false){\r\n element.cloudComplexity= true;\r\n }\r\n if(element.hasOwnProperty('cloudComplexityType')==false){\r\n element.cloudComplexityType= 'None';\r\n }\r\n if(element.hasOwnProperty('cloudComplexityDescription')==false){\r\n element.cloudComplexityDescription= '';\r\n }\r\n }); \r\n }\r\n }\r\n }\r\n get data() { return this._userDefinedTables; }\r\n\r\n @Output() onChange = new EventEmitter();\r\n \r\n freezeInputs : boolean = false;\r\n opened: boolean = false;\r\n icon: string = 'expand_more';\r\n keep: boolean = false;\r\n reviewed: boolean = false;\r\n search: string = '';\r\n\r\n // pager object\r\n pager: any = {};\r\n\r\n // paged items\r\n pagedItems: any[];\r\n\r\n //page size\r\n pageSize:number = 10;\r\n\r\n finalUserDefinedTablesList : string=\"\";\r\n isDesc: boolean = false;\r\n column: string = 'udFormName';\r\n direction: number;\r\n \r\n checkedAll : boolean =false;\r\n rowIndex : number =1;\r\n \r\n selectedUdTablesCount:number = 0;\r\n hidePagination =false;\r\n toggleFlagPagination =false;\r\n setFilterColorColumn = '';\r\n customTabledialogRef: MdDialogRef;\r\n\tclickedOutside:boolean =false;\r\n\tselectedItems:any[];\r\n selectedFilter: any = {};\r\n\r\n constructor ( private pagerService: PagerService,\r\n public dialog: MdDialog,\r\n public viewContainerRef: ViewContainerRef,\r\n public reportComponentService: ReportComponentService,\r\n private complexityService: ComplexityService) { }\r\n\r\n\r\n ngOnInit() {\r\n this.onAnalysisRefresh.subscribe((res:boolean) => {\r\n this.freezeInputs = res;\r\n });\r\n\r\n this.onFilterCustom.subscribe((res: any) => {\r\n this.selectedFilter = res;\r\n this.filterCustom(this.selectedFilter, 1);\r\n });\r\n\r\n // initial to page 1\r\n this.setPage(1);\r\n }\r\n\r\n toggle() {\r\n if (this.opened) {\r\n this.opened = false;\r\n this.icon = 'expand_more';\r\n } else {\r\n this.opened = true;\r\n this.icon = 'expand_less';\r\n }\r\n }\r\n\r\n filterCustom(filter: string, page?: number) {\r\n var customTbls: UserDefinedTable[] = this._userDefinedTables;\r\n\r\n if (!page) {\r\n page = 1;\r\n }\r\n\r\n customTbls = this.setUserDefinedTblsFilter(filter, customTbls);\r\n this.pager = this.pagerService.getPager(customTbls.length, page, this.pageSize);\r\n this.pagedItems = customTbls.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n setUserDefinedTblsFilter(filter: any, customTbls: UserDefinedTable[]): UserDefinedTable[] {\r\n customTbls = this.pagerService.filter('custom', customTbls, filter);\r\n\r\n return customTbls;\r\n }\r\n\r\n keepAll(checked: boolean) {\r\n this._userDefinedTables.forEach(function (customTable) {\r\n customTable.keep = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n reviewedAll(checked: boolean) {\r\n this._userDefinedTables.forEach(function (customTable) {\r\n customTable.reviewed = checked;\r\n });\r\n this.onChange.emit(true);\r\n }\r\n\r\n countReviewed() {\r\n let count = 0;\r\n this._userDefinedTables.forEach(function (customTable) {\r\n count += customTable.reviewed ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n countKeep() {\r\n let count = 0;\r\n this._userDefinedTables.forEach(function (customTable) {\r\n count += customTable.keep ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n\r\n sortAsc: number = -1;\r\n\r\n\r\n sortItems(sortby: string) {\r\n let sortAsc = this.sortAsc;\r\n\r\n this._userDefinedTables = this._userDefinedTables.sort(function (a, b): number {\r\n if (a[sortby] > b[sortby]) {\r\n return -1 * sortAsc;\r\n }\r\n else return 1 * sortAsc;\r\n });\r\n sortAsc = sortAsc * -1;\r\n\r\n }\r\n\r\n setPage(page: number) {\r\n if (page < 1 || page > this.pager.totalPages) {\r\n return;\r\n }\r\n\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(this._userDefinedTables.length, page, this.pageSize);\r\n\r\n // get current page of items\r\n this.pagedItems = this._userDefinedTables.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\r\n this.finalUserDefinedTablesList =\"\";\r\n this.checkedAll = false;\r\n this.reportComponentService.ngUdFormsInitFlag(this.pagedItems)\r\n this.sort(this.column);\r\n }\r\n openDialog(colElem: any) {\r\n var userDefinedTablesDialogInput = {\r\n pagedItems: this.pagedItems, \r\n finalUserDefinedTablesList: this.finalUserDefinedTablesList,\r\n selectedColumn : colElem,\r\n checkedAll : this.checkedAll\r\n };\r\n \r\n this.setFilterColorColumn = colElem\r\n\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.customTabledialogRef = this.dialog.open(UserDefinedTablesReportDialog,config);\r\n this.customTabledialogRef.componentInstance.render(userDefinedTablesDialogInput);\r\n\r\n this.customTabledialogRef.afterClosed().subscribe(result => {\r\n this.clickedOutside= this.customTabledialogRef.componentInstance.clickedOutside;\r\n if(!this.clickedOutside){\r\n this.selectedItems=[];\r\n this.finalUserDefinedTablesList = this.customTabledialogRef.componentInstance.finalUserDefinedTablesList;\r\n this.checkedAll = this.customTabledialogRef.componentInstance.checkedAll;\r\n \r\n if(this.finalUserDefinedTablesList!=null && this.finalUserDefinedTablesList!=undefined && this.finalUserDefinedTablesList.length > 0){\r\n this.finalUserDefinedTablesList.split(',').forEach(item => {\r\n this.selectedItems.push(item);\r\n })\r\n if(this.selectedItems.length != this.pagedItems.length)\r\n this.hidePagination= true;\r\n else\r\n this.hidePagination= false;\r\n }\r\n else\r\n this.hidePagination= false;\r\n }\r\n this.customTabledialogRef =null;\r\n });\r\n }\r\n\r\n sort(property:any){\r\n this.isDesc = !this.isDesc; //change the direction\r\n this.column = property;\r\n this.direction = this.isDesc ? 1 : -1;\r\n };\r\n\r\n public setFilterColorName(){\r\n return this.reportComponentService.setFilterColorName(this.finalUserDefinedTablesList, this.setFilterColorColumn);\r\n }\r\n \r\n public setFilterColorRows(){\r\n return this.reportComponentService.setFilterColorRowCount(this.finalUserDefinedTablesList, this.setFilterColorColumn);\r\n } \r\n\r\n\r\n}\r\n\r\nexport interface UserDefinedTable {\r\n Name?: string;\r\n RowCount?: number;\r\n keep?: boolean;\r\n reviewed?: boolean;\r\n}\r\n\r\n\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/userDefinedTables/userDefinedTables.component.ts\n **/","module.exports = \"
0\\\">\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tKeep All\\r\\n\\t\\t\\tReviewed All\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\tCustom Tables ({{pager?.totalItems}})\\r\\n\\t\\t\\r\\n\\t\\tKeep ({{ countKeep() }}/{{_userDefinedTables?.length}})\\r\\n\\t\\tReviewed ({{ countReviewed() }}/{{_userDefinedTables?.length}})\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
Name \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tRows\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tKeepReviewed
{{dataItem?.name}}{{dataItem?.rowCount}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t
10\\\">\\r\\n\\t\\t\\t\\t\\t View: \\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t
1\\\" style=\\\"display:inline-block\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/custom/userDefinedTables/userDefinedTables.html\n ** module id = 536\n ** module chunks = 0\n **/","import { Component, Input } from '@angular/core';\r\nimport { PagerService } from '../../../../shared/services/pager.service';\r\n@Component({\r\n selector: 'software-and-platform',\r\n template: require('./software-and-platform.html'),\r\n providers: [PagerService]\r\n})\r\nexport class SoftwareAndPlatformComponent {\r\n _sas: SoftwareAndPlatform;\r\n _isCloud: Boolean = false;\r\n _isMultiTenant = false;\r\n hidePagination = false;\r\n pager: any = {};\r\n pagedItems: any[];\r\n pageSize: number = 10;\r\n opened: Boolean = true;\r\n icon: string = 'expand_more';\r\n\r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n this._isMultiTenant = data.isMultiTenant;\r\n if (data.softwareAndPlatform) {\r\n this._sas = data.softwareAndPlatform;\r\n }\r\n if (this._sas.collation != null && this._sas.collation.tableCollation != null) {\r\n this.pager = this.pagerService.getPager(this._sas.collation.tableCollation.length, 1, this.pageSize);\r\n this.pagedItems = this._sas.collation.tableCollation.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n }\r\n }\r\n get data() { return this._sas }\r\n\r\n @Input()\r\n set isCloud(input: Boolean) {\r\n this._isCloud = input;\r\n }\r\n get isCloud() { return this._isCloud }\r\n\r\n\r\n constructor(private pagerService: PagerService) {\r\n }\r\n\r\n toggle() {\r\n this.opened = !this.opened;\r\n\r\n if (this.opened) {\r\n this.expandLess();\r\n } else {\r\n this.expandMore();\r\n }\r\n }\r\n\r\n expandLess() {\r\n this.icon = 'expand_less';\r\n }\r\n\r\n expandMore() {\r\n this.icon = 'expand_more';\r\n }\r\n\r\n formatDataSize(sizeInMB: number): string {\r\n if (sizeInMB < 1000)\r\n return Math.round(sizeInMB) + \" MB\";\r\n else\r\n return Math.round(sizeInMB / 1000) + ' GB';\r\n }\r\n\r\n setPage(page: number) {\r\n if (page < 1 || page > this.pager.totalPages) {\r\n return;\r\n }\r\n\r\n // get pager object from service\r\n if (this._sas.collation != null && this._sas.collation.tableCollation != null) {\r\n this.pager = this.pagerService.getPager(this._sas.collation.tableCollation.length, page, this.pageSize);\r\n\r\n // get current page of items\r\n this.pagedItems = this._sas.collation.tableCollation.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n }\r\n\r\n getTenancyType() {\r\n return this._isMultiTenant ? \"Multi-Tenant\" : \"Dedicated\";\r\n }\r\n\r\n hideTenancyType() {\r\n return !this._isCloud || this._isMultiTenant === undefined;\r\n }\r\n \r\n public getModifiedERPProductVersion(version: SoftwareAndPlatform): string {\r\n if (version.productVersion && version.productVersion.indexOf('11.') === 0) {\r\n const [, minor, patch, build] = version.productVersion.split('.'); \r\n let versionString;\r\n if (minor === '1') {\r\n if (patch === '100') {\r\n versionString = `2021.1.${build}`;\r\n } else if (patch === '200') {\r\n versionString = `2021.2.${build}`;\r\n }\r\n } else if (minor === '2') {\r\n if (patch === '100') {\r\n versionString = `2022.1.${build}`;\r\n } else if (patch === '200') {\r\n versionString = `2022.2.${build}`;\r\n } else if (patch === '300') {\r\n versionString = `2023.1.${build}`;\r\n } else if (patch === '400') {\r\n versionString = `2023.2.${build}`;\r\n }\r\n } else if (minor === '3') {\r\n if (patch === '100') {\r\n versionString = `2024.1.${build}`;\r\n } else if (patch === '200') {\r\n versionString = `2024.2.${build}`;\r\n }\r\n } \r\n return `Kinetic ${versionString}`;\r\n }\r\n return version.productVersion || 'NONE';\r\n }\r\n} \r\nexport interface SoftwareAndPlatform {\r\n operatingSystem?: string;\r\n windowsVersion?: string;\r\n openEdgeVersion?: string;\r\n openEdgeIs64Bit: boolean;\r\n appServerName: string;\r\n name?: string;\r\n connectionDetails?: string;\r\n configurationFile?: string;\r\n proPath?: string;\r\n databaseName?: string;\r\n databasePath?: string;\r\n databaseType?: string;\r\n databaseTotalSizeMB?: number;\r\n databaseTableSizeMB?: number;\r\n databaseIndexSizeMB?: number;\r\n unicode: boolean;\r\n productName?: string;\r\n productVersion?: string;\r\n lastDBBackup?: string;\r\n top10LargestTables?: string;\r\n sqlVersion?: string;\r\n sqlServerName?: string;\r\n sqlEdition?: string;\r\n collation?: any;\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/environment/software-and-platform/software-and-platform.component.ts\n **/","module.exports = \"\\r\\n Software And Platform\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n Analysis Run By {{ _sas?.osUsername }} \\r\\n \\r\\n \\r\\n ERP Version {{ getModifiedERPProductVersion(_sas) }}\\r\\n \\r\\n \\r\\n Database Type {{ _sas?.databaseType }}\\r\\n \\r\\n
\\r\\n \\r\\n Environment Name {{ _sas?.name }}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Cloud Deployment {{ getTenancyType() }}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n App Server Name {{ _sas?.appServerName }}\\r\\n \\r\\n
\\r\\n
= 10}\\\"> \\r\\n \\r\\n Open Edge Version {{ _sas?.openEdgeVersion }}\\r\\n \\r\\n \\r\\n Open Edge 64Bit {{ _sas?.openEdgeIs64Bit }}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Operating System {{ _sas?.operatingSystem }} \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n SQL Server {{ _sas?.sqlServerName }}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n SQL Version {{ _sas?.sqlVersion }}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Database Collation Name {{_sas?.collation?.dbCollation}}\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Last DB Backup {{ _sas?.lastFullDBBackup | date: 'dd-MMM-y, H:mm:ss (Z)' }}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Database Total Size {{ formatDataSize(_sas?.databaseTotalSizeMB)}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Database Table Size {{ formatDataSize(_sas?.databaseTableSizeMB)}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Database Index Size {{ formatDataSize(_sas?.databaseIndexSizeMB)}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Database Top {{_sas.top10LargestTables?.length}} Tables\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
SchemaTableTable SizeIndex SizeRows
{{table?.schemaName}}{{table?.tableName}}{{formatDataSize(table?.tableSizeMB)}}{{formatDataSize(table?.indexSizeMB)}}{{table?.rows | number:0}}
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Database Top {{_sas?.topLargestTables?.length}} Tables\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
SchemaTableTable SizeIndex SizeRows
{{table?.schemaName}}{{table?.tableName}}{{formatDataSize(table?.tableSizeMB)}}{{formatDataSize(table?.indexSizeMB)}}{{table?.rows | number:0}}
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
0\\\">\\r\\n \\r\\n Collation \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
SchemaTableColumnCollation
{{table?.schemaName}}{{table?.tableName}}{{table?.columnName}}{{table?.collationName}}
\\r\\n
\\t\\t\\t\\r\\n
10\\\">\\r\\n
10\\\">\\r\\n View: \\r\\n \\r\\n
1\\\" style=\\\"display:inline-block\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/environment/software-and-platform/software-and-platform.html\n ** module id = 538\n ** module chunks = 0\n **/","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'connectivity',\r\n template: require('./connectivity.html')\r\n})\r\nexport class ConnectivityComponent {\r\n _c: Connectivity;\r\n\r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n if (data.connectivity) {\r\n this._c = data.connectivity;\r\n }\r\n }\r\n }\r\n get data() { return this._c }\r\n\r\n opened: Boolean = false; \r\n icon: string = 'expand_more';\r\n\r\n constructor() {}\r\n\r\n toggle() {\r\n this.opened = !this.opened;\r\n\r\n if (this.opened) {\r\n this.expandLess();\r\n } else {\r\n this.expandMore();\r\n }\r\n }\r\n\r\n expandLess() {\r\n this.icon = 'expand_less';\r\n }\r\n\r\n expandMore() {\r\n this.icon = 'expand_more';\r\n }\r\n}\r\n\r\nexport interface Connectivity {\r\n uploadSpeed?: string;\r\n downloadSpeed?: string;\r\n ipAddress?: string;\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/environment/connectivity/connectivity.component.ts\n **/","module.exports = \"\\r\\n Connectivity\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n Upload Speed {{ _c?.uploadSpeed }} \\r\\n \\r\\n \\r\\n Download Speed {{ _c?.downloadSpeed}}\\r\\n \\r\\n \\r\\n IP Address {{ _c?.ipAddress }}\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/environment/connectivity/connectivity.html\n ** module id = 540\n ** module chunks = 0\n **/","import { Component, Input, OnInit } from '@angular/core';\r\nimport { AuthService, LoggedInUser, Role, Permission } from '../../../auth/auth.service';\r\n\r\n@Component({\r\n selector: 'licenses',\r\n template: require('./licenses.html'),\r\n})\r\nexport class LicensesComponent implements OnInit {\r\n _licenses:any[]= [];\r\n\r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n this._licenses = data;\r\n this._licenses.forEach(function (lic) {\r\n lic.icon = 'expand_less';\r\n lic.openedChild = true;\r\n });\r\n }\r\n }\r\n get data() { return this._licenses; }\r\n\r\n opened: Boolean = true;\r\n icon: string = 'expand_more';\r\n search: string = '';\r\n constructor(private auth: AuthService) { }\r\n companiesList:any[]=[];\r\n\r\n ngOnInit() {\r\n this.companiesList = [];\r\n if(this._licenses[0] !=null){\r\n var tempCompaniesList = this._licenses[0].assignedCompanies;\r\n var colCount = 10;\r\n for (var i = 0; i < tempCompaniesList.length; i = i + colCount) {\r\n var element = tempCompaniesList[i];\r\n var row = [];\r\n while (row.length < colCount) {\r\n let company:any = tempCompaniesList[i + row.length];\r\n if (!company) {\r\n break;\r\n }\r\n row.push(company);\r\n }\r\n this.companiesList.push(row);\r\n }\r\n }\r\n }\r\n\r\n toggle(license?: Licenses) {\r\n this.opened = !this.opened;\r\n\r\n if (this.opened) {\r\n this.expandLess();\r\n } else {\r\n this.expandMore();\r\n }\r\n }\r\n\r\n expandLess() {\r\n this.icon = 'expand_less';\r\n }\r\n\r\n expandMore() {\r\n this.icon = 'expand_more';\r\n }\r\n\r\n toggleChild(lic?: Licenses) {\r\n lic.openedChild = !lic.openedChild;\r\n\r\n if (lic.openedChild) {\r\n this.expandLessChild(lic);\r\n } else {\r\n this.expandMoreChild(lic);\r\n }\r\n }\r\n\r\n expandLessChild(lic: Licenses) {\r\n lic.icon = 'expand_less';\r\n }\r\n\r\n expandMoreChild(lic: Licenses) {\r\n lic.icon = 'expand_more';\r\n }\r\n\r\n getLicensedIcon(enabled: boolean): string {\r\n if (enabled) {\r\n return 'check_circle';\r\n }\r\n return 'cancel';\r\n }\r\n\r\n getLicensedIconColour(enabled: boolean) {\r\n if (enabled) {\r\n return 'rgb(29, 233, 182)';\r\n }\r\n return 'rgb(255, 23, 68)';\r\n }\r\n\r\n getInUseIcon(module: any) {\r\n if (module.enabled && module.inUse) {\r\n return 'check_circle'\r\n } else if (module.enabled && !module.detectedUse) {\r\n return 'radio_button_unchecked';\r\n } else {\r\n return 'cancel';\r\n }\r\n }\r\n\r\n showInUseTooltip(module:any) {\r\n if (module.enabled && !module.detectedUse) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n getInUseIconColour(module:any) {\r\n if (module.enabled && module.inUse) {\r\n return 'rgb(29, 233, 182)';\r\n } else if (module.enabled && !module.detectedUse) {\r\n return ''; \r\n } else {\r\n return 'rgb(255, 23, 68)';\r\n }\r\n }\r\n\r\n getIconColour(module: any): string {\r\n if (module.enabled && module.inUse) {\r\n return 'rgb(29, 233, 182)';\r\n } else if (module.enabled && !module.detectedUse) {\r\n return 'rgb(255, 23, 68)';\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n hideInUse(): boolean {\r\n if (this.auth.hasRole(Role.Administrator) || this.auth.hasRole(Role.EpicorEmployee)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n}\r\n\r\nexport interface Licenses {\r\n name?: string;\r\n icon?: string;\r\n openedChild: boolean;\r\n keep?: boolean;\r\n reviewed?: boolean;\r\n purpose?: string;\r\n comments?: Comment[];\r\n address1?: string;\r\n city?: string;\r\n zip?: string;\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/licenses/licenses.component.ts\n **/","module.exports = \"\\r\\n Licenses ({{_licenses?.length}})\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n Serial : {{lic?.serialNumber}} Companies({{lic?.assignedCompanies?.length}})\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Modules\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Module NameCodeLicensedIn Use
{{mod?.name}}{{mod?.moduleCode}}\\r\\n {{getLicensedIcon(mod.enabled)}}\\r\\n \\r\\n \\r\\n {{getInUseIcon(mod)}}\\r\\n \\r\\n {{getInUseIcon(mod)}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/licenses/licenses.html\n ** module id = 542\n ** module chunks = 0\n **/","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'preUpgrade',\r\n template: require('./preUpgrade.html')\r\n})\r\nexport class PreUpgradeComponent {\r\n _preUpgrade: PreUpgrade[] = [];\r\n\r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n if (data.preUpgrade) {\r\n this._preUpgrade = data.preUpgrade;\r\n }\r\n }\r\n }\r\n get data() { return this._preUpgrade; }\r\n\r\n opened: boolean = true;\r\n icon: string = 'expand_less';\r\n\r\n constructor() { }\r\n\r\n toggle() {\r\n if (this.opened) {\r\n this.opened = false;\r\n this.icon = 'expand_more';\r\n } else {\r\n this.opened = true;\r\n this.icon = 'expand_less';\r\n }\r\n }\r\n}\r\n\r\nexport interface PreUpgrade {\r\n company?: string;\r\n name?: string;\r\n recordCount?: number;\r\n}\r\n\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/other/preUpgrade/preUpgrade.component.ts\n **/","module.exports = \"
0\\\">\\r\\n 0) ? 'report-section-warning' : 'report-section'\\\" (click)=\\\"toggle()\\\">\\r\\n Pre Upgrade Check ({{_preUpgrade?.length}})\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
CompanyDescriptionCount
{{dataItem?.company}}{{dataItem?.name}}{{dataItem?.recordCount}}
\\r\\n
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/other/preUpgrade/preUpgrade.html\n ** module id = 544\n ** module chunks = 0\n **/","import { Component, Input, ViewContainerRef } from '@angular/core';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\nimport { HelpDialog } from '../../../../shared/dialogs/help-dialog.component';\r\n\r\n//TODO(steve): create help markdown document\r\n//var markdownHTML = require('./healthChecks.md');\r\n\r\n@Component({\r\n selector: 'healthChecks',\r\n template: require('./healthChecks.html')\r\n})\r\nexport class HealthChecksComponent {\r\n helpDialogRef: MdDialogRef;\r\n _healthChecks: any[] = [];\r\n\r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n if (data.healthChecks) {\r\n this._healthChecks = data.healthChecks;\r\n }\r\n }\r\n }\r\n get data() { return this._healthChecks; }\r\n\r\n opened: boolean = true;\r\n icon: string = 'expand_less';\r\n\r\n constructor(public dialog: MdDialog,\r\n public viewContainerRef: ViewContainerRef) {\r\n\r\n }\r\n\r\n toggle() {\r\n if (this.opened) {\r\n this.opened = false;\r\n this.icon = 'expand_more';\r\n } else {\r\n this.opened = true;\r\n this.icon = 'expand_less';\r\n }\r\n }\r\n}\r\n\r\nexport interface HealthCheck {\r\n\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/other/healthChecks/healthChecks.component.ts\n **/","module.exports = \"
0\\\">\\r\\n \\r\\n Health Checks ({{_healthChecks?.length}})\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
IdTableDescription
{{healthCheck?.id}}{{healthCheck?.tableName}}{{healthCheck?.description}}
\\r\\n
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/other/healthChecks/healthChecks.html\n ** module id = 546\n ** module chunks = 0\n **/","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'data-conversions',\r\n template: require('./data-conversions.html')\r\n})\r\nexport class DataConversionsComponent {\r\n _conversions: Conversions[] = [];\r\n\r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n if (data.conversionsRunLast12Months) {\r\n this._conversions = data.conversionsRunLast12Months;\r\n }\r\n }\r\n }\r\n get data() { return this._conversions; }\r\n\r\n opened: boolean = true;\r\n icon: string = 'expand_less';\r\n\r\n constructor() { }\r\n\r\n toggle() {\r\n if (this.opened) {\r\n this.opened = false;\r\n this.icon = 'expand_more';\r\n } else {\r\n this.opened = true;\r\n this.icon = 'expand_less';\r\n }\r\n }\r\n}\r\n\r\nexport interface Conversions {\r\n sequence?: number;\r\n program?: string;\r\n description?: string;\r\n lastRan?: Date;\r\n}\r\n\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/other/conversions/data-conversions.component.ts\n **/","module.exports = \"
0\\\">\\r\\n\\r\\n Conversions Run Last 12 Months ({{_conversions?.length}})\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
SequenceDescriptionProgramLast Run
{{cl?.sequence}}{{cl?.description}}{{cl?.program}}{{cl?.lastRun | date:'MM/dd/yyyy'}}
\\r\\n
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/other/conversions/data-conversions.html\n ** module id = 548\n ** module chunks = 0\n **/","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'nonupgradable',\r\n template: require('./nonupgradable.component.html')\r\n})\r\nexport class NonupgradableComponent {\r\n _nonupgradable: Nonupgradable[] = [];\r\n\r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n if (data.nonupgradable) {\r\n this._nonupgradable = data.nonupgradable;\r\n }\r\n }\r\n }\r\n get data() { return this._nonupgradable; }\r\n\r\n opened: boolean = true;\r\n icon: string = 'expand_less';\r\n\r\n constructor() { }\r\n\r\n toggle() {\r\n if (this.opened) {\r\n this.opened = false;\r\n this.icon = 'expand_more';\r\n } else {\r\n this.opened = true;\r\n this.icon = 'expand_less';\r\n }\r\n }\r\n}\r\n\r\nexport interface Nonupgradable {\r\n id?: string;\r\n description?: string;\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/other/nonupgradable/nonupgradable.component.ts\n **/","module.exports = \"
0\\\">\\r\\n 0) ? 'report-section-error' : 'report-section'\\\">\\r\\n Non Upgradable ({{_nonupgradable?.length}})\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
IdDescription
{{dataItem?.id}}{{dataItem?.description}}
\\r\\n
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/other/nonupgradable/nonupgradable.component.html\n ** module id = 550\n ** module chunks = 0\n **/","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'thirdPartyModules',\r\n template: require('./thirdPartyModules.html')\r\n})\r\nexport class ThirdPartyModuleComponent {\r\n _thirdPartyModules: ThirdPartyModules[] = [];\r\n\r\n @Input()\r\n set data(data: any) {\r\n if (data) {\r\n if (data.thirdPartyModules) {\r\n this._thirdPartyModules = data.thirdPartyModules;\r\n }\r\n }\r\n }\r\n get data() { return this._thirdPartyModules; }\r\n\r\n opened: boolean = true;\r\n icon: string = 'expand_less';\r\n\r\n constructor() { }\r\n\r\n toggle() {\r\n if (this.opened) {\r\n this.opened = false;\r\n this.icon = 'expand_more';\r\n } else {\r\n this.opened = true;\r\n this.icon = 'expand_less';\r\n }\r\n }\r\n}\r\n\r\nexport interface ThirdPartyModules {\r\n thirdPartyModules?: number;\r\n}\r\n\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/other/thirdPartyModules/thirdPartyModules.component.ts\n **/","module.exports = \"
0\\\">\\r\\n 0) ? 'report-section-warning' : 'report-section'\\\" (click)=\\\"toggle()\\\">\\r\\n Third Party Modules ({{_thirdPartyModules?.length}})\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Name
{{dataItem?.name}}
\\r\\n
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/analysis/other/thirdPartyModules/thirdPartyModules.html\n ** module id = 552\n ** module chunks = 0\n **/","import { Component, ViewContainerRef, ViewChild, AfterViewChecked } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { DOMEvents } from '../../../dom-events';\r\nimport { Conversion } from '../_interfaces/conversions.interface';\r\nimport { ConversionsService } from '../_services/conversions.service';\r\nimport { ConversionFormAction } from './conversion-form.component';\r\n\r\n@Component({\r\n selector: 'create-conversion',\r\n template: require('./create-conversion.component.html'),\r\n providers: [ConversionsService]\r\n})\r\nexport class CreateConversionComponent {\r\n conversionFormAction: any = ConversionFormAction;\r\n siteId: number;\r\n submitting: boolean = false;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private domEvents: DOMEvents,\r\n private conversionsService: ConversionsService) {\r\n this.route.params.subscribe(params => {\r\n this.siteId = +params['siteId'];\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.domEvents.triggerOnDocument('appready');\r\n }\r\n \r\n onSubmit(conversionData:Conversion) {\r\n if (conversionData) {\r\n this.submitting = true;\r\n this.conversionsService.createConversion(conversionData).subscribe((conversion: any) => {\r\n this.submitting = false;\r\n\r\n if (conversion) { \r\n this.router.navigateByUrl(`/sites/${conversionData.siteId}/conversions/${conversion.id}`);\r\n }\r\n }, err => {\r\n this.submitting = false;\r\n });\r\n }\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/conversions/conversion/create-conversion.component.ts\n **/","import { Component, ViewContainerRef, ViewChild, Input, Output, EventEmitter, ElementRef, HostListener } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\nimport { IMyDpOptions, IMyDateModel } from 'mydatepicker';\r\nimport { SitesService } from '../../../sites/core/sites.service';\r\nimport { ConversionsService } from '../_services/conversions.service';\r\nimport { RegionService } from '../../../shared/services/region.service';\r\nimport { UsersService } from '../../../users/_services/users.service';\r\nimport { ReportsService } from '../../reports/reports.service';\r\nimport { ProductService } from '../../../shared/services/product.service';\r\nimport { ConversionConfigurationDialog } from '../_dialogs/conversion-configuration-dialog';\r\nimport { RemoveWhiteSpacePipe } from '../../../shared/pipes/string.pipe';\r\nimport { Conversion, NewConversion } from '../_interfaces/conversions.interface';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { forkJoin } from 'rxjs/observable/forkJoin';\r\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { Timezone } from './timezone';\r\nimport { TIMEZONES } from './mock-timezones';\r\nimport { ZoneService } from '../../../shared/services/zone.service';\r\nimport { ISite } from '../../core/_interfaces/ISite';\r\nimport { AuthService, Role, Permission } from '../../../auth/auth.service';\r\n\r\n@Component({\r\n selector: 'conversion-form',\r\n template: require('./conversion-form.component.html'),\r\n styles: [require('./conversion-form.component.css')],\r\n providers: [SitesService, ConversionsService, RegionService, ProductService, UsersService, ZoneService, ReportsService]\r\n})\r\nexport class ConversionFormComponent {\r\n @Input() id: any;\r\n @Input() action: ConversionFormAction;\r\n @Input() submitting: boolean;\r\n @Output() onSubmit: EventEmitter = new EventEmitter();\r\n @ViewChild('conversionForm') currentForm: NgForm;\r\n @ViewChild('fileInputSpreadsheet') fileInputSpreadsheet: ElementRef;\r\n @ViewChild('fileInputXml') fileInputXml: ElementRef;\r\n\r\n myDatePickerOptions: IMyDpOptions = {\r\n dateFormat: 'yyyy-mm-dd',\r\n inline: false,\r\n markCurrentDay: true,\r\n openSelectorOnInputClick: true\r\n };\r\n formLoaded: boolean = false;\r\n removeWhiteSpace = new RemoveWhiteSpacePipe();\r\n toolbarTitle: string;\r\n dialogRef: MdDialogRef;\r\n conversionForm: NgForm;\r\n users: any[] = [];\r\n currentConversionInfo: string;\r\n initConversionInfo: string;\r\n currentProduct: string;\r\n doesCustomerSpecificFileExist: boolean = false;\r\n loadingCSF: boolean = true;\r\n csfUOMAvailable: boolean = false;\r\n csfScriptAvailable: boolean = false;\r\n warningDialogRef: MdDialogRef;\r\n configDialogRef: MdDialogRef;\r\n uomMappingChangeConfirmationDialogRef: MdDialogRef;\r\n\r\n proceedSubmit = false;\r\n isLoading: boolean = true;\r\n isNotificationEmailsValid: boolean = true;\r\n initFromProduct: string = \"\";\r\n initFromVersion: string = \"\";\r\n initToProduct: string = \"\";\r\n initToVersion: string = \"\";\r\n region: string = \"\"\r\n regionDisable: boolean = true;\r\n conversion: Conversion = {\r\n siteId: null,\r\n siteName: null,\r\n live: false,\r\n status: null,\r\n configuration: {\r\n fromProduct: null,\r\n toProduct: null,\r\n conversionProcess: 'Cloud Converter',\r\n fromVersion: null,\r\n toVersion: null,\r\n conversionType: 'Upgrade',\r\n deployment: null,\r\n goLiveDate: null,\r\n enableDbPacker: false,\r\n enableCloudView: false,\r\n enableSendToSupport: true,\r\n dbBackupLocation: null,\r\n region: null,\r\n passesLimit: null,\r\n advanced: {\r\n toolingVersion: 'Latest',\r\n vmSize: 'Standard_DS13_V2',\r\n diskSize: '512GB',\r\n historicalTransactionDays: 365, \r\n UOMTemplate: null,\r\n shutdownAfter: 72,\r\n deleteAfter: 120\r\n },\r\n notificationEmails: null,\r\n projectCode: null,\r\n plannedDate: null,\r\n plannedTimezone: null,\r\n goLivePass: false,\r\n assignedUser: null,\r\n projectType: null,\r\n csfs: null,\r\n sendEmail: false,\r\n databaseVerification: false,\r\n owningCompanyID: null,\r\n owningCompanyName: null\r\n },\r\n uom: {\r\n Xml: null,\r\n Spreadsheet: null\r\n }\r\n };\r\n regions: any[] = [];\r\n products: any[];\r\n productNames: string[] = [];\r\n fromVersions: string[] = []\r\n toVersions: string[] = [];\r\n gaVersions: string[] = [];\r\n conversionProcess: string[] = this.conversionsService.getConversionProcessTypes();\r\n conversionType: string[] = this.conversionsService.getConversionTypes();\r\n deployment: string[] = this.conversionsService.getConversionDeploymentTypes();\r\n projectType: string[] = this.conversionsService.getConversionProjectTypes();\r\n toolingVersions: string[] = [];\r\n displayUOMFiles = false;\r\n uomFiles: any[] = [];\r\n verifyingUOMFiles = false;\r\n regionChanged: boolean = true;\r\n initRegionValue: string = \"\";\r\n currentRegionValue: string = \"\";\r\n remainingPasses: number = -1; \r\n txtremainingPasses: any = \"\";\r\n createConversion: boolean = false;\r\n isDirty: boolean = false;\r\n totalPassesRan: number = 0;\r\n hideDatabaseVerification: boolean = true;\r\n currentMappingType: string = \"\";\r\n selectedMappingType: string = \"\";\r\n previouslySelectedMappingType: string = \"\";\r\n\r\n editUOMMapping: boolean = false;\r\n confirmMapping: boolean = false;\r\n validatingUOMFile: boolean = false;\r\n uomFileValid: boolean = false;\r\n uomFileValidationMessage: any = \"\";\r\n\r\n timezones = TIMEZONES;\r\n planTimeZone = new Timezone();\r\n planDate: Date = null;\r\n planTime: any = null;\r\n goLivePassSelected: boolean;\r\n siteZone: string;\r\n site: ISite;\r\n restrictedSite: boolean = true;\r\n zoneRegions: any[] = [];\r\n toVersionsFiltered: string[] = [];\r\n companyDisable: boolean = false;\r\n owningCompanyDisable: boolean = true;\r\n companies: any;\r\n searchText:string = \"\"\r\n goLiveUsers: any[] = [];\r\n\r\n constructor(\r\n private router: Router,\r\n public dialog: MdDialog,\r\n public viewContainerRef: ViewContainerRef,\r\n private sitesService: SitesService,\r\n private conversionsService: ConversionsService,\r\n private regionService: RegionService,\r\n private productService: ProductService,\r\n private usersService: UsersService,\r\n private elementRef: ElementRef,\r\n private zoneServices: ZoneService,\r\n private auth: AuthService,\r\n private reportsService: ReportsService) { }\r\n\r\n ngOnInit() {\r\n this.getUsers();\r\n this.getCloudConverterToolingVersions();\r\n this.getProducts();\r\n\r\n\r\n \r\n if (this.action == 0)\r\n this.regionDisable = false;\r\n this.conversionsService.getSiteConversions(this.id).subscribe((conversions: any[]) => {\r\n if (conversions.filter(x => x.status === 0).length > 0) {\r\n //check for active conversions. If exists, redirect to login/home page.\r\n //there shoun't be any active conversions before creating a new one. \r\n this.router.navigate(['/login']);\r\n }\r\n });\r\n \r\n if (this.action == ConversionFormAction.Edit) {\r\n this.conversionsService.getRemainingPasses(this.id).subscribe((remainingPasses: any) => {\r\n if (typeof remainingPasses === \"number\"){\r\n this.remainingPasses = remainingPasses ;\r\n }\r\n else {\r\n //typeof remainingPasses is not number if the remaining pass is 0\r\n //this is weird. Need to check why. So setting to the default value if the API doesnot return a number. \r\n this.remainingPasses = 0;\r\n }\r\n //this.loading = false;\r\n } //,err => this.loading = false\r\n );\r\n \r\n }\r\n if (this.action == ConversionFormAction.Create) {\r\n this.goLivePassSelected = false;\r\n this.conversion.configuration.enableDbPacker = true; \r\n this.conversion.configuration.enableSendToSupport=true;\r\n }\r\n this.setTotalPassesRan();\r\n }\r\n\r\n getCloudConverterToolingVersions() {\r\n this.conversionsService.getCloudConverterToolingVersions().subscribe((versions: string[]) => {\r\n this.toolingVersions = versions;\r\n });\r\n }\r\n\r\n getUsers() {\r\n this.usersService.getUsersInRoles([\"Administrator\", \"EpicorEmployee\"]).subscribe((users: any) => {\r\n this.users = users;\r\n this.goLiveUsers = this.users\r\n });\r\n }\r\n\r\n getRegions() {\r\n this.regionService.getRegions().subscribe((regions: string[]) => {\r\n this.regions = regions;\r\n });\r\n }\r\n\r\n getOwningCompanies(siteId: number) {\r\n this.reportsService.getOwningCompanies(siteId).subscribe((companyDetails: any) => {\r\n this.companies = companyDetails.companies;\r\n if (companyDetails.companies == null) {\r\n this.owningCompanyDisable = true;\r\n this.conversion.configuration.owningCompanyID = null\r\n this.conversion.configuration.owningCompanyName = null\r\n }\r\n else {\r\n this.owningCompanyDisable = false;\r\n if (companyDetails.companies.length == 1)\r\n this.companyDisable = true;\r\n\r\n if (companyDetails.companies.length >= 1) {\r\n if (this.conversion.configuration.owningCompanyID == null && companyDetails.companies.length > 0) {\r\n this.conversion.configuration.owningCompanyID = this.companies[0].CompanyID\r\n this.conversion.configuration.owningCompanyName = this.companies[0].Name\r\n }\r\n }\r\n }\r\n\r\n });\r\n }\r\n\r\n getProducts() {\r\n this.productService.getProducts().subscribe((products: any) => {\r\n this.products = products;\r\n this.productNames = this.products.map((p: any) => { return p.name; });\r\n if (typeof this.id === \"number\") {\r\n this.getPassesLimit();\r\n this.loadingCSF = false;\r\n this.sitesService.getReportAndSiteDetails(this.id).subscribe((conversion: NewConversion) => {\r\n this.isLoading = false,\r\n this.conversion.siteId = conversion.siteId,\r\n this.conversion.siteName = conversion.siteName;\r\n this.conversion.configuration.region = conversion.region;\r\n this.getSite(this.conversion.siteId);\r\n this.getOwningCompanies(this.conversion.siteId);\r\n if (this.conversion.configuration.advanced.UOMTemplate == null) {\r\n this.conversion.configuration.advanced.UOMTemplate = (this.conversion.configuration.region == \"eastus\" || this.conversion.configuration.region == \"westus\") ? \"US\" : \"Metric\";\r\n }\r\n\r\n this.previouslySelectedMappingType = this.selectedMappingType = this.currentMappingType = this.conversion.configuration.advanced.UOMTemplate;\r\n\r\n this.conversion.status = \"NotStarted\";\r\n if (conversion.environment !== null) {\r\n this.conversion.configuration.fromProduct = this.getProductFromReport(conversion.environment.softwareAndPlatform.name);\r\n this.setFromVersions(this.conversion.configuration.fromProduct, conversion.environment.softwareAndPlatform.productVersion);\r\n this.conversion.configuration.fromVersion = conversion.environment.softwareAndPlatform.productVersion;\r\n }\r\n },\r\n err => {\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n if (typeof this.id === \"string\") {\r\n this.conversionsService.getConversion(this.id).subscribe((conversion: Conversion) => {\r\n this.isLoading = false;\r\n this.conversion.siteId = conversion.siteId;\r\n this.conversion.siteName = conversion.siteName;\r\n this.conversion.live = conversion.live;\r\n this.conversion.status = conversion.status;\r\n this.conversion.configuration = conversion.configuration;\r\n this.region = conversion.configuration.region;\r\n this.getSite(this.conversion.siteId);\r\n if (this.conversion.configuration.advanced === null) {\r\n this.conversion.configuration.advanced = {\r\n toolingVersion: 'Latest',\r\n vmSize: 'Standard_DS13_V2',\r\n diskSize: '512GB',\r\n historicalTransactionDays: 365, \r\n UOMTemplate: null,\r\n shutdownAfter: 72,\r\n deleteAfter: 120\r\n };\r\n }\r\n this.setFromVersions(conversion.configuration.fromProduct, conversion.configuration.fromVersion);\r\n this.setToVersions(conversion.configuration.toProduct, conversion.configuration.toVersion, 'load');\r\n this.setProductName(conversion.configuration.fromProduct, conversion.configuration.toProduct);\r\n this.initFromProduct = this.conversion.configuration.fromProduct;\r\n this.initFromVersion = this.conversion.configuration.fromVersion;\r\n this.initToProduct = this.conversion.configuration.toProduct;\r\n this.initToVersion = this.conversion.configuration.toVersion;\r\n this.initConversionInfo = this.currentProduct + conversion.configuration.fromVersion + \"-\" + this.currentProduct + conversion.configuration.toVersion;\r\n this.conversionsService.getCustomerSpecificDetails(this.conversion.siteId, this.region, this.currentProduct + conversion.configuration.fromVersion, this.currentProduct + conversion.configuration.toVersion).subscribe((result: any) => {\r\n this.loadingCSF = false;\r\n this.conversion.configuration.csfs = result;\r\n\r\n if (this.conversion.configuration.csfs != null) {\r\n var csfs = [].concat(this.conversion.configuration.csfs);\r\n if (csfs.length > 0 && typeof csfs[0] == \"string\") {\r\n csfs.forEach(x => {\r\n if (x.endsWith(\".xlsx\")) { this.csfUOMAvailable = true; }\r\n });\r\n csfs.forEach(x => {\r\n if (!x.endsWith(\".xlsx\")) { this.csfScriptAvailable = true; }\r\n });\r\n }\r\n }\r\n\r\n if (result.length != undefined)\r\n this.doesCustomerSpecificFileExist = true;\r\n else\r\n this.doesCustomerSpecificFileExist = false;\r\n\r\n\r\n this.regionDisable = false;\r\n });\r\n\r\n // verify whether the conversion has uom files\r\n this.verifyUOMExists(this.conversion.siteId, this.conversion.configuration.fromVersion, this.conversion.configuration.region);\r\n this.getOwningCompanies(this.conversion.siteId);\r\n this.dateFieldChanged();\r\n\r\n if (this.action == ConversionFormAction.Edit) {\r\n this.editConversionOnLoad();\r\n } \r\n if(this.conversion.configuration.deployment == 'DT SaaS')\r\n this.conversion.configuration.deployment = 'Epicor ERP Public Cloud'\r\n\r\n if (this.conversion.configuration.goLivePass)\r\n this.goLivePassSelected = true;\r\n else\r\n this.goLivePassSelected = false;\r\n\r\n\r\n sessionStorage.setItem('initConversion', JSON.stringify(Object.assign({}, this.conversion)))\r\n sessionStorage.removeItem('isDirty')\r\n sessionStorage.removeItem('isDirtyAdvanced')\r\n });\r\n }\r\n\r\n if (this.action == ConversionFormAction.Create) {\r\n this.toolbarTitle = \"Create Conversion\";\r\n this.createConversion = true;\r\n this.goLivePassSelected = false;\r\n this.setDatabaseVerificationFlag();\r\n }\r\n if (this.action == ConversionFormAction.Edit) {\r\n this.toolbarTitle = \"Edit Conversion\";\r\n this.createConversion = false;\r\n }\r\n this.formLoaded = true;\r\n });\r\n }\r\n\r\n filterUsers(): any {\r\n if(this.searchText=='')\r\n this.goLiveUsers = this.users\r\n else{\r\n this.goLiveUsers = this.users.filter((user:any) => user.emailAddress.toLowerCase().match(this.searchText.toLowerCase()))\r\n }\r\n return this.goLiveUsers\r\n }\r\n\r\n /**\r\n * Check for file changes\r\n * @param event \r\n * @param type \r\n */\r\n onFileChange(event: any, type: string) {\r\n let reader = new FileReader();\r\n if (event.target.files && event.target.files.length > 0) {\r\n let file = event.target.files[0];\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n this.conversion.uom[type] = {\r\n fileName: file.name,\r\n fileType: file.type,\r\n value: reader.result.split(',')[1]\r\n }\r\n\r\n //TODO: Call API and validate the results\r\n\r\n this.uomFileValid = false;\r\n this.validatingUOMFile = true;\r\n this.conversionsService.validateUomMappingFile(this.conversion).subscribe((d: any) => {\r\n this.validatingUOMFile = false;\r\n this.uomFileValid = d.valid;\r\n this.uomFileValidationMessage = d.error;\r\n }, err => { this.validatingUOMFile = false; this.uomFileValid = false; }\r\n );\r\n\r\n }\r\n }\r\n }\r\n\r\n getPassesLimit() {\r\n this.conversionsService.getConversionPassesLimitDefault().subscribe((passesLimit: number) => {\r\n this.conversion.configuration.passesLimit = passesLimit;\r\n });\r\n }\r\n\r\n getSite(siteId: number) {\r\n this.isLoading = true;\r\n\r\n this.sitesService.getSite(siteId).subscribe((site: any) => {\r\n this.site = site;\r\n this.isLoading = false;\r\n this.setZoneRegions();\r\n this.restrictedSite = this.site.restricted;\r\n this.conversion.configuration.enableCloudView = this.site.restricted ? false : this.conversion.configuration.enableCloudView;\r\n }, err => { this.isLoading = false; });\r\n }\r\n\r\n onRegionChange(conversion: any) {\r\n\r\n if (this.currentMappingType == \"Metric\" || this.currentMappingType == \"US\" || this.currentMappingType == \"\") {\r\n this.conversion.configuration.advanced.UOMTemplate = (this.conversion.configuration.region == \"eastus\" || this.conversion.configuration.region == \"westus\") ? \"US\" : \"Metric\";\r\n this.selectedMappingType = this.currentMappingType = this.conversion.configuration.advanced.UOMTemplate;\r\n }\r\n\r\n let initRegion = this.region;\r\n let currentRegion = conversion.region;\r\n\r\n let tempInitRegion = this.regions.filter((region: any) => region.value == initRegion)\r\n this.initRegionValue = tempInitRegion[0].key;\r\n\r\n let tempCurrentRegion = this.regions.filter((region: any) => region.value == currentRegion)\r\n this.currentRegionValue = tempCurrentRegion[0].key;\r\n\r\n this.setProductName(this.initFromProduct, this.initToProduct);\r\n let initConversionInfo = this.currentProduct + this.initFromVersion + \"-\" + this.currentProduct + this.initToVersion;\r\n this.regionChanged = false;\r\n\r\n if (this.doesCustomerSpecificFileExist == true) {\r\n if (this.region != conversion.region) {\r\n\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.warningDialogRef = this.dialog.open(AlertMessageDialog, config);\r\n\r\n let customerSpecificInfo = {\r\n initConversionInfo: initConversionInfo,\r\n initRegion: this.initRegionValue,\r\n currentRegion: this.currentRegionValue,\r\n submitFlag: false\r\n };\r\n\r\n this.warningDialogRef.componentInstance.render(customerSpecificInfo);\r\n\r\n this.warningDialogRef.afterClosed().subscribe(result => {\r\n this.proceedSubmit = this.warningDialogRef.componentInstance.proceedSubmit;\r\n\r\n if (!this.proceedSubmit) {\r\n this.conversion.configuration.region = initRegion;\r\n this.regionChanged = false;\r\n } else\r\n this.regionChanged = true;\r\n\r\n this.warningDialogRef = null;\r\n });\r\n }\r\n }\r\n this.fieldChanged();\r\n }\r\n /**\r\n * Open the advanced configuration dloag\r\n */\r\n openAdvancedConfiguration() {\r\n if (this.conversion.configuration.advanced) {\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.dialogRef = this.dialog.open(ConversionConfigurationDialog, config);\r\n this.dialogRef.componentInstance.toolingVersions = this.toolingVersions;\r\n this.dialogRef.componentInstance.vmSizes = this.conversionsService.getVMSizes();\r\n this.dialogRef.componentInstance.diskSizes = this.conversionsService.getDiskSizes();\r\n this.dialogRef.componentInstance.advanced = this.conversion.configuration.advanced;\r\n this.dialogRef.componentInstance.fromVersion = this.conversion.configuration.fromVersion;\r\n }\r\n }\r\n\r\n /** dynamically set the from versions based on selected from product */\r\n setFromVersions(fromProduct: string, fromVersion?: string) {\r\n if (fromProduct != null && fromProduct != '') {\r\n var product = this.products.filter(p => {\r\n if (p.name === fromProduct) {\r\n return p;\r\n }\r\n });\r\n\r\n if (product.length === 1) {\r\n this.fromVersions = product[0].fromVersions;\r\n this.fromVersions.pop();\r\n\r\n if (fromVersion == null) {\r\n this.conversion.configuration.fromVersion = this.fromVersions[0];\r\n if (this.conversion.configuration.fromVersion.startsWith(\"8.\")) {\r\n this.verifyUOMExists(this.conversion.siteId, this.conversion.configuration.fromVersion, this.conversion.configuration.region);\r\n }\r\n }\r\n }\r\n } else {\r\n this.fromVersions = [];\r\n }\r\n }\r\n\r\n /**\r\n * verify whether this conversion has UOM files\r\n * @param version \r\n */\r\n verifyUOMExists(siteId: number, fromVersion: string, region: string) {\r\n let sourceVersion = \"8.03.410\";\r\n let sourceVersionParts = sourceVersion.split('.');\r\n let sourceVersionMajor = +sourceVersionParts[0];\r\n let sourceVersionMinor = +sourceVersionParts[1];\r\n\r\n let versionParts = fromVersion.split('.');\r\n let major = +versionParts[0];\r\n let minor = +versionParts[1];\r\n\r\n if (major <= sourceVersionMajor && minor <= sourceVersionMinor) {\r\n this.displayUOMFiles = true;\r\n this.verifyingUOMFiles = true;\r\n this.conversionsService.verifyUOMExists(siteId, region).subscribe((files: any) => {\r\n this.uomFiles = files;\r\n\r\n //this.currentMappingType = (this.conversion.configuration.region == \"eastus\" || this.conversion.configuration.region == \"westus\") ? \"US\" : \"Metric\";\r\n\r\n //if((this.conversion.configuration.advanced.UOMTemplate != null)) \r\n //{\r\n // this.currentMappingType = this.conversion.configuration.advanced.UOMTemplate;\r\n //}\r\n\r\n this.currentMappingType = this.conversion.configuration.advanced.UOMTemplate;\r\n //Override if files exists in CTT \r\n this.uomFiles.forEach(x => { if (x.exists) { this.currentMappingType = x.fileType; } });\r\n\r\n this.uomFiles.forEach(x => { if (x.exists) { x.lastModifiedDate = this.getLocalDateString(x.lastModifiedDate); } });\r\n\r\n this.previouslySelectedMappingType = this.selectedMappingType = this.currentMappingType;\r\n\r\n this.verifyingUOMFiles = false;\r\n this.editUOMMapping = false;\r\n }, err => this.verifyingUOMFiles = false);\r\n } else {\r\n this.displayUOMFiles = false;\r\n }\r\n }\r\n\r\n getLocalDateString(dateString: string) {\r\n var date = new Date(dateString);\r\n return date.getFullYear() + \"-\" +\r\n (\"00\" + (date.getMonth() + 1)).slice(-2) + \"-\" +\r\n (\"00\" + date.getDate()).slice(-2) + \" \" +\r\n (\"00\" + date.getHours()).slice(-2) + \":\" +\r\n (\"00\" + date.getMinutes()).slice(-2);\r\n }\r\n\r\n downloadUOMFile(siteId: number, region: string, type: string) {\r\n let uri: string = null;\r\n this.uomFiles.forEach(x => { if (x.exists) { uri = x.uri; } });\r\n if (uri) {\r\n this.conversionsService.createUnitOfMeasureDownloadToken(uri).subscribe((result: any) => {\r\n let sas = result.sas;\r\n this.conversionsService.downloadUnitOfMeasures(uri, sas);\r\n });\r\n }\r\n }\r\n\r\n\r\n selectMappingType(event: any) {\r\n\r\n this.confirmMapping = false;\r\n this.conversion.uom[\"Xml\"] = null;\r\n this.conversion.uom[\"Spreadsheet\"] = null;\r\n this.uomFileValid = false;\r\n this.uomFileValidationMessage = \"\";\r\n if (this.currentMappingType == \"Xml\" || this.currentMappingType == \"Spreadsheet\") {\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n this.uomMappingChangeConfirmationDialogRef = this.dialog.open(UomMappingChangeConfirmationDialog, config);\r\n this.uomMappingChangeConfirmationDialogRef.componentInstance.render(this.currentMappingType, this.selectedMappingType);\r\n this.uomMappingChangeConfirmationDialogRef.afterClosed().subscribe(result => {\r\n this.confirmMapping = this.uomMappingChangeConfirmationDialogRef.componentInstance.confirm;\r\n if (this.confirmMapping && this.previouslySelectedMappingType != event) {\r\n this.selectedMappingType = event;\r\n this.previouslySelectedMappingType = event;\r\n }\r\n else {\r\n this.selectedMappingType = this.previouslySelectedMappingType;\r\n }\r\n this.uomMappingChangeConfirmationDialogRef = null;\r\n\r\n });\r\n }\r\n }\r\n\r\n toggleUOMMapping() {\r\n this.editUOMMapping = !this.editUOMMapping;\r\n this.uomFileValid = false;\r\n this.uomFileValidationMessage = \"\";\r\n }\r\n\r\n /** dynamically set the to versions based on selected to product */\r\n setToVersions(toProduct: string, toVersion?: string, event?: string) {\r\n let versionFound: boolean = false;\r\n if (toProduct != null && toProduct != '') {\r\n var product = this.products.filter(p => {\r\n if (p.name === toProduct) {\r\n return p;\r\n }\r\n });\r\n if (product.length === 1) {\r\n this.toVersions = product[0].toVersions;\r\n this.gaVersions = product[0].gaVersions;\r\n if(this.conversion.configuration.deployment == 'On Premise' ){\r\n var gaVersionList = [];\r\n for(var toV in this.toVersions){\r\n for(var gaV in this.gaVersions){\r\n if(this.toVersions[toV].indexOf(this.gaVersions[gaV]) !== -1){\r\n gaVersionList.push(this.toVersions[toV]);\r\n }\r\n }\r\n } \r\n this.toVersions = gaVersionList;\r\n }\r\n \r\n this.compareProductVersions(this.conversion.configuration.fromVersion);\r\n if(this.conversion.configuration.toVersion !=null)\r\n {\r\n if(this.initToVersion =='')\r\n this.initToVersion = this.conversion.configuration.toVersion\r\n\r\n let result = this.toVersionsFiltered.find(v => v == this.initToVersion)\r\n if(result != null)\r\n {\r\n versionFound = true;\r\n toVersion = this.initToVersion\r\n this.conversion.configuration.toVersion = this.initToVersion\r\n }\r\n if(versionFound == false)\r\n {\r\n toVersion = this.toVersionsFiltered[0];\r\n this.conversion.configuration.toVersion = toVersion\r\n }\r\n }\r\n if (toVersion == null) {\r\n this.conversion.configuration.toVersion = this.toVersionsFiltered[0];\r\n }\r\n }\r\n }\r\n else {\r\n this.toVersions = [];\r\n this.toVersionsFiltered = [];\r\n }\r\n if (event != 'load')\r\n this.setDatabaseVerificationFlag();\r\n }\r\n\r\n editConversionOnLoad() {\r\n if (this.auth.hasPermission(Permission.DatabaseVerification)\r\n && this.conversion.configuration.fromVersion.startsWith('10.') == true)\r\n this.hideDatabaseVerification = false\r\n else\r\n this.hideDatabaseVerification = true\r\n }\r\n\r\n setDatabaseVerificationFlag() {\r\n if (this.conversion.configuration.fromVersion != null &&\r\n this.conversion.configuration.fromVersion.startsWith('10.') == true) {\r\n this.conversion.configuration.databaseVerification = true\r\n\r\n if (this.auth.hasPermission(Permission.DatabaseVerification) == true)\r\n this.hideDatabaseVerification = false\r\n else\r\n this.hideDatabaseVerification = true\r\n }\r\n else {\r\n this.conversion.configuration.databaseVerification = false\r\n this.hideDatabaseVerification = true\r\n }\r\n }\r\n setZoneRegions() {\r\n this.siteZone = this.site.zoneId;\r\n this.zoneServices.getZoneRegions(this.siteZone).subscribe((regions: string[]) => {\r\n this.zoneRegions = regions;\r\n });\r\n }\r\n\r\n /**\r\n * Count notification emails in input\r\n */\r\n getNotificationEmailsCount(): number {\r\n if (this.conversion.configuration.notificationEmails) {\r\n return this.conversion.configuration.notificationEmails.split(';').length;\r\n }\r\n return 0;\r\n }\r\n\r\n /**\r\n * Validate and remove whitespace from notification emails\r\n */\r\n validateEmails() {\r\n if (this.conversion.configuration.notificationEmails) {\r\n this.conversion.configuration.notificationEmails = this.removeWhiteSpace.transform(this.conversion.configuration.notificationEmails);\r\n }\r\n }\r\n\r\n /**\r\n * Clear the planned date\r\n */\r\n clearPlannedDate() {\r\n this.conversion.configuration.plannedDate = null;\r\n this.planDate = null;\r\n this.planTime = null;\r\n this.planTimeZone = null;\r\n this.plannedDateTime();\r\n }\r\n\r\n isNullOrEmpty(val: any) {\r\n if (val == null || val == \"\") {\r\n return true\r\n }\r\n return false;\r\n }\r\n /**\r\n * Returns form data back to parent component so it can do something with it\r\n */\r\n submit() {\r\n\r\n if(this.action == ConversionFormAction.Edit && this.remainingPasses <= 0)\r\n {\r\n if(!confirm(\"This conversion configuration has zero passes remaining.\\nThe customer will not be able to initiate a new upgrade pass.\\nPress OK to save the configuration,\\n or Cancel if you would like to update the number of passes remaining\") )\r\n {\r\n return;\r\n }\r\n }\r\n if (this.createConversion && this.conversion.configuration.goLivePass) {\r\n alert(\"A successful test pass must be completed at the selected dot release prior to the go live.\");\r\n return\r\n }\r\n if (this.editUOMMapping) {\r\n if ((this.selectedMappingType == 'Spreadsheet' && this.isNullOrEmpty(this.fileInputSpreadsheet.nativeElement.value))\r\n || (this.selectedMappingType == 'Xml' && this.isNullOrEmpty(this.fileInputXml.nativeElement.value))) {\r\n alert(\"Please choose the UOM mapping file\");\r\n return;\r\n }\r\n if ((this.selectedMappingType == 'Spreadsheet' && !this.isNullOrEmpty(this.fileInputSpreadsheet.nativeElement.value) && !this.uomFileValid)\r\n || (this.selectedMappingType == 'Xml' && !this.isNullOrEmpty(this.fileInputXml.nativeElement.value) && !this.uomFileValid)) {\r\n alert(\"UOM mapping file is invalid. Please correct the mapping file and reupload.\");\r\n return;\r\n }\r\n this.conversion.configuration.advanced.UOMTemplate = this.selectedMappingType;\r\n }\r\n else {\r\n this.conversion.uom[\"Xml\"] = null;\r\n this.conversion.uom[\"Spreadsheet\"] = null;\r\n }\r\n if (this.site.restricted && this.conversion.configuration.enableCloudView) {\r\n this.conversion.configuration.enableCloudView = false;\r\n }\r\n if ((this.initFromProduct != this.conversion.configuration.fromProduct ||\r\n this.initFromVersion != this.conversion.configuration.fromVersion ||\r\n this.initToProduct != this.conversion.configuration.toProduct ||\r\n \r\n this.initToVersion != this.conversion.configuration.toVersion) && this.doesCustomerSpecificFileExist) { \r\n let conversionPasses: any;\r\n let toVersion = this.conversion.configuration.toVersion;\r\n this.conversionsService.getLatestConversionPass(this.id).subscribe((data: any) => {\r\n conversionPasses = data;\r\n }, null, () => {\r\n let validPass: boolean;\r\n if (this.conversion.configuration.goLivePass) {\r\n for (let conv of conversionPasses) {\r\n if (this.conversion.configuration.toVersion == conv.toVersion) {\r\n validPass = true;\r\n }\r\n }\r\n if (conversionPasses.length == 0 || !validPass) {\r\n alert('A successful test pass must be completed at the selected dot release prior to the go live.');\r\n return;\r\n }\r\n }\r\n \r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.setProductName(this.conversion.configuration.fromProduct, this.conversion.configuration.toProduct);\r\n this.currentConversionInfo = this.currentProduct + this.conversion.configuration.fromVersion + \"-\" + this.currentProduct + this.conversion.configuration.toVersion;\r\n let customerSpecificInfo = {\r\n initConversionInfo: this.initConversionInfo,\r\n currentConversionInfo: this.currentConversionInfo,\r\n regionChanged: this.regionChanged,\r\n initRegion: this.initRegionValue,\r\n currentRegion: this.currentRegionValue,\r\n submitFlag: true\r\n };\r\n\r\n this.warningDialogRef = this.dialog.open(AlertMessageDialog, config);\r\n this.warningDialogRef.componentInstance.render(customerSpecificInfo);\r\n\r\n this.warningDialogRef.afterClosed().subscribe(result => {\r\n this.proceedSubmit = this.warningDialogRef.componentInstance.proceedSubmit;\r\n\r\n if (this.proceedSubmit)\r\n if (this.ValidateNotificationEmails()) {\r\n this.submitConfiguration();\r\n } else {\r\n alert(\"Invalid characters in notification email.\\nPlease correct and retry to submit.\")\r\n }\r\n else {\r\n this.conversion.configuration.region = this.region;\r\n this.conversion.configuration.fromProduct = this.initFromProduct;\r\n this.conversion.configuration.fromVersion = this.initFromVersion;\r\n this.conversion.configuration.toVersion = this.initToVersion;\r\n this.conversion.configuration.toProduct = this.initToProduct;\r\n }\r\n this.warningDialogRef = null;\r\n }); \r\n });\r\n\r\n }\r\n else {\r\n if (this.ValidateNotificationEmails()) {\r\n this.validateTestPass();\r\n } else {\r\n alert(\"Invalid characters in notification email.\\nPlease correct and retry to submit.\")\r\n }\r\n }\r\n }\r\n\r\n ValidateNotificationEmails() {\r\n var emailValid = true;\r\n if (this.getNotificationEmailsCount() == 0) {\r\n return emailValid;\r\n }\r\n var re = /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n var emails = this.conversion.configuration.notificationEmails.split(';');\r\n emails.forEach(function (mail) {\r\n if (!re.test(mail)) {\r\n emailValid = false;\r\n }\r\n })\r\n return emailValid;\r\n }\r\n\r\n setProductName(fromProduct: string, toProduct: string) {\r\n if ((fromProduct == \"Epicor ERP\" && toProduct == \"Epicor ERP\") || toProduct == \"Kinetic\"){\r\n this.currentProduct = \"ERP\"\r\n }\r\n }\r\n\r\n getProductFromReport(productName: string) {\r\n if (productName.match(/^Epicor([0-9]+)$/) || productName.match(/^ERP([0-9]+)$/)\r\n || productName.search(/mfgsys/) || productName.search(/mfgPilot/) || productName.search(/mfgTrain/)\r\n || productName.search(/Epicor/) || productName.search(/ERP/)) {\r\n return \"Epicor ERP\";\r\n }\r\n return null;\r\n }\r\n\r\n\r\n plannedDateTime() {\r\n //\r\n if (this.planDate == null) {\r\n this.conversion.configuration.plannedDate = null;\r\n }\r\n else {\r\n let selectedDate = new Date(this.planDate.toString());\r\n let selectedTime = this.planTime;\r\n let selectedZone = this.planTimeZone.gmtAdjustment;\r\n let conversionDate = new Date();\r\n //Get date data\r\n\r\n let year = selectedDate.getFullYear();\r\n let month = (selectedDate.getMonth() + 1).toString();\r\n let day = selectedDate.getDate().toString();\r\n\r\n\r\n if (selectedTime == null) {\r\n selectedTime = \"00:00\";\r\n }\r\n\r\n //Get timezone data\r\n if (selectedZone == null) {\r\n selectedZone = \"+00:00\";\r\n }\r\n\r\n if (day.length == 1) {\r\n day = `0${day}`;\r\n }\r\n\r\n if (month.length == 1) {\r\n month = `0${month}`;\r\n }\r\n\r\n let selectedPlannedDate = `${year}-${month}-${day}T${selectedTime}:00`;\r\n this.conversion.configuration.plannedDate = selectedPlannedDate;\r\n this.conversion.configuration.plannedTimezone = selectedZone;\r\n }\r\n\r\n }\r\n\r\n dateFieldChanged() {\r\n\r\n //Get saved conversion planned date\r\n if (this.conversion.configuration.plannedDate == null) {\r\n this.planDate = null;\r\n this.planTime = null;\r\n this.planTimeZone = null;\r\n }\r\n else {\r\n\r\n this.planDate = this.conversion.configuration.plannedDate;\r\n let savedPlannedDate = new Date(this.conversion.configuration.plannedDate);\r\n let stringPlannedDate = this.conversion.configuration.plannedDate;\r\n\r\n //Get time data from conversion planned date\r\n let m = savedPlannedDate.getMinutes();\r\n let h = savedPlannedDate.getHours();\r\n let minutes = \"\";\r\n\r\n //Minutes\r\n if (m == 0 || m.toString().length == 1) {\r\n minutes = `0${m}`;\r\n this.planTime = `${h}:${minutes}`;\r\n }\r\n else {\r\n minutes = m.toString();\r\n }\r\n\r\n //Hours\r\n if (h.toString().length == 1) {\r\n this.planTime = `0${h}:${minutes}`;\r\n }\r\n else {\r\n this.planTime = `${h}:${minutes}`;\r\n }\r\n\r\n //Get time zone data from conversion planned date \r\n let timezone = this.conversion.configuration.plannedTimezone;\r\n if (timezone == null || timezone.includes(\"Z\")) {\r\n timezone = \"+00:00\";\r\n }\r\n\r\n let savedTimezone = this.timezones.find(vtime => vtime.gmtAdjustment == timezone);\r\n this.planTimeZone = savedTimezone;\r\n }\r\n }\r\n\r\n\r\n isVantage() {\r\n if (this.conversion.configuration.fromVersion) {\r\n return this.conversion.configuration.fromVersion.startsWith(\"8.\");\r\n }\r\n return false;\r\n }\r\n\r\n /* \r\n * Delete conversion \r\n */\r\n deleteConversion() {\r\n if (confirm(\"Are you sure you want to delete the conversion? This action cannot be undone later.\")) {\r\n this.conversionsService.deleteConversion(this.id).subscribe((res: any) => {\r\n //redirect to sites page\r\n this.router.navigate(['/sites/' + this.conversion.siteId]);\r\n });\r\n }\r\n }\r\n\r\n setTotalPassesRan() {\r\n this.conversionsService.getConversionPassSummaries(null, null, this.id).subscribe(response => {\r\n this.totalPassesRan = response.result.length;\r\n });\r\n }\r\n\r\n submitConfiguration() {\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n\r\n this.configDialogRef = this.dialog.open(ConfigurationMessageDialog, config);\r\n this.configDialogRef.componentInstance.render(this.createConversion);\r\n\r\n this.configDialogRef.afterClosed().subscribe((result: any) => {\r\n if (this.configDialogRef.componentInstance.sendEmail == true)\r\n this.conversion.configuration.sendEmail = true;\r\n else\r\n this.conversion.configuration.sendEmail = false;\r\n\r\n if (this.conversion.configuration.deployment == 'Epicor ERP Public Cloud')\r\n this.conversion.configuration.deployment = 'DT SaaS'\r\n\r\n this.onSubmit.emit(this.conversion);\r\n });\r\n }\r\n\r\n validateTestPass() {\r\n if (!this.conversion.configuration['goLivePass'] || this.createConversion) {\r\n this.submitConfiguration();\r\n return;\r\n }\r\n // plannedDate already has the date and time \r\n if (!this.conversion.configuration.plannedDate && !this.conversion.configuration.plannedTimezone) {\r\n alert('You must enter the expected date and time the final cutover pass will begin.');\r\n return;\r\n }\r\n let conversionPasses: any;\r\n let toVersion = this.conversion.configuration.toVersion;\r\n this.conversionsService.getLatestConversionPass(this.id).subscribe((data: any) => {\r\n conversionPasses = data;\r\n }, null, () => {\r\n let validPass: boolean;\r\n if (this.conversion.configuration.goLivePass) {\r\n for (let conv of conversionPasses) {\r\n if (this.conversion.configuration.toVersion == conv.toVersion) {\r\n validPass = true;\r\n }\r\n }\r\n if (conversionPasses.length == 0 || !validPass) {\r\n alert('A successful test pass must be completed at the selected dot release prior to the go live.');\r\n return;\r\n }\r\n }\r\n this.submitConfiguration();\r\n });\r\n }\r\n\r\n owningCompanyFieldChanged() {\r\n if (this.conversion.configuration.deployment != 'Epicor ERP Public Cloud' \r\n && this.conversion.configuration.deployment != 'Epicor ERP Government Cloud'\r\n && this.conversion.configuration.deployment != 'DT SaaS') {\r\n this.conversion.configuration.owningCompanyID = null;\r\n this.conversion.configuration.owningCompanyName = null;\r\n }\r\n else{\r\n if (this.companies != null) {\r\n if(this.conversion.configuration.owningCompanyID !=null){\r\n this.companies.filter((item: any) => item.CompanyID == this.conversion.configuration.owningCompanyID).forEach((element: any) => {\r\n this.conversion.configuration.owningCompanyID = element.CompanyID\r\n this.conversion.configuration.owningCompanyName = element.Name\r\n });\r\n }\r\n else{\r\n this.conversion.configuration.owningCompanyID = this.companies[0].CompanyID\r\n this.conversion.configuration.owningCompanyName = this.companies[0].Name\r\n\r\n if (this.companies.length == 1)\r\n this.companyDisable = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n fieldChanged() {\r\n\r\n if (this.action == ConversionFormAction.Edit) {\r\n this.conversionsService.getRemainingPasses(this.id).subscribe((remainingPasses: any) => {\r\n if (typeof remainingPasses === \"number\") {\r\n this.remainingPasses = remainingPasses ;\r\n }\r\n else {\r\n this.remainingPasses = 0;\r\n } \r\n \r\n if (typeof this.conversion.configuration.passesLimit === \"number\") {\r\n this.txtremainingPasses = this.conversion.configuration.passesLimit ;\r\n }\r\n else {\r\n this.txtremainingPasses = 0;\r\n } \r\n\r\n this.remainingPasses = this.txtremainingPasses - this.totalPassesRan;\r\n\r\n if ( this.remainingPasses < 0 ){\r\n this.remainingPasses = 0;\r\n alert(\"Passes Limit is less than the Total Passes Already Executed: \" + this.totalPassesRan + \" Passes Executed\" ); \r\n }\r\n //this.loading = false;\r\n } //,err => this.loading = false\r\n );\r\n } \r\n //this.verifyUOMExists(this.conversion.siteId, this.conversion.configuration.fromVersion, this.conversion.configuration.region);\r\n let isDirty = false;\r\n let initConversion = JSON.parse(sessionStorage.getItem('initConversion'))\r\n\r\n if (initConversion != null) {\r\n for (var initalConversion in initConversion.configuration) {\r\n for (var currentConversion in this.conversion.configuration) {\r\n if (initalConversion == currentConversion && currentConversion != 'ProductPasswordMaxLength') {\r\n if (initalConversion == 'enableCloudView' || initalConversion == 'goLivePass')\r\n this.conversion.configuration[currentConversion] = this.conversion.configuration[currentConversion] == null ? false : this.conversion.configuration[currentConversion]\r\n\r\n if (initalConversion == 'projectCode' || initalConversion == 'assignedUser' || initalConversion == 'notificationEmails')\r\n this.conversion.configuration[currentConversion] = this.conversion.configuration[currentConversion] == \"\" ? null : this.conversion.configuration[currentConversion]\r\n\r\n if (initalConversion != 'advanced' && (initConversion.configuration[initalConversion] != this.conversion.configuration[currentConversion])) {\r\n isDirty = true\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (initConversion.live != this.conversion.live) isDirty = true\r\n }\r\n\r\n if (this.conversion.configuration.goLivePass) {\r\n this.goLivePassSelected = true;\r\n this.conversion.configuration.goLiveDate = this.conversion.configuration.plannedDate;\r\n }\r\n else {\r\n this.goLivePassSelected = false;\r\n this.conversion.configuration.goLiveDate = null;\r\n }\r\n\r\n this.setDatabaseVerificationFlag();\r\n\r\n if (isDirty)\r\n sessionStorage.setItem('isDirty', 'true')\r\n else\r\n sessionStorage.setItem('isDirty', 'false')\r\n\r\n\r\n //this.verifyUOMExists(this.conversion.siteId, this.conversion.configuration.fromVersion, this.conversion.configuration.region);\r\n }\r\n\r\n splitProductVersion(version: string) {\r\n var v = version.split(\".\");\r\n\r\n if (v.length == 4) {\r\n var maj = parseInt(v[0]);\r\n var min = parseInt(v[1]);\r\n var build = parseInt(v[2]);\r\n var rev = parseInt(v[3]);\r\n }\r\n else {\r\n var maj = 0;\r\n var min = 0;\r\n var build = 0;\r\n var rev = 0;\r\n }\r\n return { maj: maj, min: min, build: build, revision: rev }\r\n }\r\n\r\n compareProductVersions(fromVersion: string) {\r\n\r\n var fv = this.splitProductVersion(fromVersion);\r\n this.toVersionsFiltered = [];\r\n this.toVersions.forEach(element => {\r\n var tv = this.splitProductVersion(element);\r\n if (tv.maj > fv.maj) {\r\n this.toVersionsFiltered.push(element);\r\n }\r\n else {\r\n if (tv.min > fv.min && tv.maj >= fv.maj) {\r\n this.toVersionsFiltered.push(element);\r\n }\r\n else {\r\n if (tv.build > fv.build && tv.min >= fv.min && tv.maj >= fv.maj) {\r\n this.toVersionsFiltered.push(element);\r\n }\r\n else {\r\n if (tv.revision > fv.revision && tv.build >= fv.build && tv.min >= fv.min && tv.maj >= fv.maj) {\r\n this.toVersionsFiltered.push(element);\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n\r\n if (this.conversion.configuration.toVersion == null || this.conversion.configuration.toVersion == '')\r\n this.conversion.configuration.toVersion = this.toVersionsFiltered[0];\r\n\r\n }\r\n \r\n}\r\n\r\n@Component({\r\n selector: 'alert-dialog',\r\n template: `\r\n
\r\n
\r\n
\r\n Warning \r\n
\r\n Target version of this conversion pass has changed from {{initConversionInfo}} to {{currentConversionInfo}} and there was a\r\n customer specific fix in place. Please review if this should be moved to the new target.\r\n
\r\n
\r\n Click OK to Submit
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n Warning \r\n
\r\n A customer specific fix is required for this conversion. Now that you have updated Region from {{initRegion}} to {{currentRegion}} , \r\n the fix needs to be moved to the new region before the customer starts their next conversion pass. \r\n Please wait for confirmation from the monitoring team before starting the upgrade.\r\n
\r\n
\r\n Click OK to Submit
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Warning \r\n
\r\n A customer specific fix is required for this conversion. \r\n Now that you have updated the conversion configuration from {{initConversionInfo}} to {{currentConversionInfo}} the fix needs to be reviewed and possibly moved to the new target before the customer starts their next conversion pass.\r\n Please wait for confirmation from the monitoring team before starting the upgrade.\r\n
\r\n
\r\n Click OK to Submit
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n`\r\n})\r\n\r\nexport class AlertMessageDialog {\r\n constructor(private dialogRef: MdDialogRef) { }\r\n\r\n @ViewChild('container') container: ElementRef;\r\n\r\n proceedSubmit = false;\r\n initConversionInfo: string = \"\";\r\n currentConversionInfo: string = \"\";\r\n submitFlag: boolean = false;\r\n initRegion: string = \"\";\r\n currentRegion: string = \"\";\r\n regionChanged: boolean = null;\r\n render(customerSpecificInfo: any) {\r\n if (customerSpecificInfo.submitFlag) {\r\n this.initConversionInfo = customerSpecificInfo.initConversionInfo;\r\n this.currentConversionInfo = customerSpecificInfo.currentConversionInfo;\r\n this.initRegion = customerSpecificInfo.initRegion,\r\n this.currentRegion = customerSpecificInfo.currentRegion\r\n this.submitFlag = true;\r\n } else {\r\n this.initConversionInfo = customerSpecificInfo.initConversionInfo;\r\n this.initRegion = customerSpecificInfo.initRegion,\r\n this.currentRegion = customerSpecificInfo.currentRegion\r\n this.submitFlag = false;\r\n }\r\n this.regionChanged = customerSpecificInfo.regionChanged;\r\n this.container.nativeElement.parentElement.parentElement.style.width = \"638px\";\r\n }\r\n\r\n ok() {\r\n this.proceedSubmit = true;\r\n this.dialogRef.close();\r\n }\r\n\r\n cancel() {\r\n this.proceedSubmit = false;\r\n this.dialogRef.close();\r\n }\r\n\r\n}\r\n\r\n@Component({\r\n selector: 'configuration-dialog',\r\n template: `\r\n
\r\n
\r\n Email Notification \r\n
\r\n
\r\n Send Begin your Upgrade Email?\r\n
\r\n
\r\n Click YES to send the upgrade email.
\r\n
\r\n
\r\n
\r\n
\r\n Resend Begin your Upgrade Email?\r\n
\r\n
\r\n Click YES to resend the upgrade email again.
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n`\r\n})\r\n\r\nexport class ConfigurationMessageDialog {\r\n constructor(private dialogRef: MdDialogRef) { }\r\n\r\n @ViewChild('container') container: ElementRef;\r\n\r\n sendEmail = false;\r\n createConversion: boolean;\r\n render(createConversion: boolean) {\r\n this.container.nativeElement.childNodes[1].childNodes[1].childNodes[0].childNodes[0].style.height = \"31px\"\r\n this.container.nativeElement.parentElement.parentElement.style.width = \"556px\";\r\n this.createConversion = createConversion\r\n }\r\n\r\n ok() {\r\n this.sendEmail = true;\r\n this.dialogRef.close();\r\n }\r\n\r\n cancel() {\r\n this.sendEmail = false;\r\n this.dialogRef.close();\r\n }\r\n\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'uommappingchangeconfirmation-dialog',\r\n template: `\r\n
\r\n
\r\n UOM Mapping Replacement \r\n
\r\n
\r\n Choosing {{selectedMappingType}} mappingtemplate will remove the existing {{currentMappingType}} mapping.
Are you sure you want to apply new mapping? \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n`\r\n})\r\n\r\nexport class UomMappingChangeConfirmationDialog {\r\n constructor(private dialogRef: MdDialogRef) { }\r\n\r\n @ViewChild('container') container: ElementRef;\r\n\r\n confirm = false;\r\n currentMappingType: string;\r\n selectedMappingType: string;\r\n render(currentMappingType: string, selectedMappingType: string) {\r\n this.container.nativeElement.childNodes[1].childNodes[1].childNodes[0].childNodes[0].style.height = \"31px\"\r\n this.container.nativeElement.parentElement.parentElement.style.width = \"556px\";\r\n this.currentMappingType = currentMappingType;\r\n this.selectedMappingType = selectedMappingType;\r\n }\r\n\r\n ok() {\r\n this.confirm = true;\r\n this.dialogRef.close();\r\n }\r\n\r\n cancel() {\r\n this.confirm = false;\r\n this.dialogRef.close();\r\n }\r\n}\r\n\r\nexport enum ConversionFormAction {\r\n Create,\r\n Edit\r\n} \n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/conversions/conversion/conversion-form.component.ts\n **/","import { Injectable } from '@angular/core';\r\nimport { Headers, Http, RequestOptions, Response } from '@angular/http';\r\nimport { AuthHttp, AuthConfig, AUTH_PROVIDERS } from 'angular2-jwt';\r\nimport { Observable, Subject } from 'rxjs/Rx';\r\nimport { ConfigService } from './config.service';\r\n\r\n@Injectable()\r\nexport class ProductService {\r\n private serviceBase: string = new ConfigService().getApiURI();\r\n private productsAPI = `${this.serviceBase}products`;\r\n\r\n constructor(\r\n private http: Http,\r\n private authHttp: AuthHttp) { }\r\n\r\n getProducts() {\r\n var url: string = `${this.productsAPI}`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n getProduct(id: string) {\r\n var url: string = `${this.productsAPI}/${id}`;\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n private extractData(res: Response) {\r\n let body = res.json();\r\n return body || {};\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/shared/services/product.service.ts\n **/","import { Component, OnInit } from '@angular/core';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\nimport { Advanced } from '../_interfaces/conversions.interface';\r\n\r\n@Component({\r\n selector: 'conversion-configuration-dialog',\r\n template: require('./conversion-configuration-dialog.html'),\r\n styles: [require('./conversion-configuration-dialog.css')],\r\n host: {\r\n '(document:click)': 'clickOutsideWindow($event)',\r\n }\r\n})\r\n\r\nexport class ConversionConfigurationDialog implements OnInit {\r\n toolingVersions: string[] = [];\r\n vmSizes: string[] = []; \r\n diskSizes: string[] = []; \r\n advanced: Advanced;\r\n fromVersion: string; \r\n\r\n constructor(public dialogRef: MdDialogRef) { \r\n }\r\n\r\n ngOnInit() {\r\n this.advanced = this.dialogRef.componentInstance.advanced;\r\n sessionStorage.removeItem('isDirtyAdvanced')\r\n }\r\n\r\n clickOutsideWindow(event: Event) {\r\n var target = event.target || event.srcElement;\r\n let initConversion =JSON.parse(sessionStorage.getItem('initConversion'))\r\n if((target as Element).className.indexOf(\"cdk-overlay-backdrop\") == 0)\r\n {\r\n if(JSON.stringify(this.advanced) != JSON.stringify(initConversion.configuration.advanced))\r\n sessionStorage.setItem('isDirtyAdvanced','true')\r\n else\r\n sessionStorage.setItem('isDirtyAdvanced','false')\r\n this.dialogRef.close();\r\n }\r\n }\r\n\r\n isVantage()\r\n {\r\n return this.fromVersion.startsWith(\"8.\"); \r\n }\r\n\r\n close() { \r\n this.dialogRef.close();\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/conversions/_dialogs/conversion-configuration-dialog.ts\n **/","module.exports = \"
\\r\\n

Advanced configuration

\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{ version }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{ vmSize }}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{ diskSize }}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n

TIME TO LIVE (hours)

\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/conversions/_dialogs/conversion-configuration-dialog.html\n ** module id = 557\n ** module chunks = 0\n **/","module.exports = \".field-spacer {\\r\\n margin:16px 0\\r\\n}\\r\\n\\r\\n.field-input {\\r\\n height:38px;\\r\\n}\\r\\n\\r\\n.field-input-fill-remaining-space {\\r\\n width: 100%;\\r\\n height: 38px;\\r\\n border: 1px solid #CCC;\\r\\n}\"\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/conversions/_dialogs/conversion-configuration-dialog.css\n ** module id = 558\n ** module chunks = 0\n **/","export class Timezone {\r\n timeZoneId: number;\r\n gmtAdjustment: string;\r\n name: string;\r\n }\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/conversions/conversion/timezone.ts\n **/","import { Timezone} from './timezone';\r\n\r\nexport const TIMEZONES: Timezone[] = [\r\n { timeZoneId:1, gmtAdjustment: \"-12:00\", name: \"(GMT-12:00) International Date Line West\"},\r\n { timeZoneId:2, gmtAdjustment: \"-11:00\", name: \"(GMT-11:00) Midway Island, Samoa\"},\r\n { timeZoneId:3, gmtAdjustment: \"-10:00\", name: \"(GMT-10:00) Hawaii\"},\r\n { timeZoneId:4, gmtAdjustment: \"-09:50\", name: \"(GMT-09:30) Taiohae\"},\r\n { timeZoneId:5, gmtAdjustment: \"-09:00\", name: \"(GMT-09:00) Alaska\"},\r\n { timeZoneId:6, gmtAdjustment: \"-08:00\", name: \"(GMT-08:00) Pacific Time (US & Canada)\"},\r\n { timeZoneId:7, gmtAdjustment: \"-07:00\", name: \"(GMT-07:00) Mountain Time (US & Canada)\"},\r\n { timeZoneId:8, gmtAdjustment: \"-06:00\", name: \"(GMT-06:00) Central Time (US & Canada), Mexico City, Monterrey\"},\r\n { timeZoneId:9, gmtAdjustment: \"-05:00\", name: \"(GMT-05:00) Eastern Time (US & Canada), Bogota, Lima\"},\r\n { timeZoneId:10, gmtAdjustment: \"-04:50\", name: \"(GMT-04:30) Caracas\"},\r\n { timeZoneId:11, gmtAdjustment: \"-04:00\", name: \"(GMT-04:00) Atlantic Time (Canada)\"},\r\n { timeZoneId:12, gmtAdjustment: \"-03:50\", name: \"(GMT-03:30) Newfoundland\"},\r\n { timeZoneId:13, gmtAdjustment: \"-03:00\", name: \"(GMT-03:00) Brazil, Buenos Aires, Georgetown\"},\r\n { timeZoneId:14, gmtAdjustment: \"-02:00\", name: \"(GMT-02:00) Mid-Atlantic\"},\r\n { timeZoneId:15, gmtAdjustment: \"-01:00\", name: \"(GMT-01:00) Azores, Cape Verde Islands\"},\r\n { timeZoneId:16, gmtAdjustment: \"+00:00\", name: \"(GMT+00:00) Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London\"},\r\n { timeZoneId:17, gmtAdjustment: \"+01:00\", name: \"(GMT+01:00) Brussels, Copenhagen, Madrid, Paris\"},\r\n { timeZoneId:18, gmtAdjustment: \"+02:00\", name: \"(GMT+02:00) Kaliningrad, South Africa\"},\r\n { timeZoneId:19, gmtAdjustment: \"+03:00\", name: \"(GMT+03:00) Baghdad, Riyadh, Moscow, St. Petersburg\"},\r\n { timeZoneId:20, gmtAdjustment: \"+03:50\", name: \"(GMT+03:30) Tehran\"},\r\n { timeZoneId:21, gmtAdjustment: \"+04:00\", name: \"(GMT+04:00) Abu Dhabi, Muscat, Baku, Tbilisi\"},\r\n { timeZoneId:22, gmtAdjustment: \"+04:50\", name: \"(GMT+04:30) Kabul\"},\r\n { timeZoneId:23, gmtAdjustment: \"+05:00\", name: \"(GMT+05:00) Ekaterinburg, Islamabad, Karachi, Tashkent\"},\r\n { timeZoneId:24, gmtAdjustment: \"+05:50\", name: \"(GMT+05:30) Bombay, Calcutta, Madras, New Delhi\"},\r\n { timeZoneId:25, gmtAdjustment: \"+05:75\", name: \"(GMT+05:45) Kathmandu, Pokhara\"},\r\n { timeZoneId:26, gmtAdjustment: \"+06:00\", name: \"(GMT+06:00) Almaty, Dhaka, Colombo\"},\r\n { timeZoneId:27, gmtAdjustment: \"+06:50\", name: \"(GMT+06:30) Yangon, Mandalay\"},\r\n { timeZoneId:28, gmtAdjustment: \"+07:00\", name: \"(GMT+07:00) Bangkok, Hanoi, Jakarta\"},\r\n { timeZoneId:29, gmtAdjustment: \"+08:00\", name: \"(GMT+08:00) Beijing, Perth, Singapore, Hong Kong\"},\r\n { timeZoneId:30, gmtAdjustment: \"+08:75\", name: \"(GMT+08:45) Eucla\"},\r\n { timeZoneId:31, gmtAdjustment: \"+09:00\", name: \"(GMT+09:00) Tokyo, Seoul, Osaka, Sapporo, Yakutsk\"},\r\n { timeZoneId:32, gmtAdjustment: \"+09:50\", name: \"(GMT+09:30) Adelaide, Darwin\"},\r\n { timeZoneId:33, gmtAdjustment: \"+10:00\", name: \"(GMT+10:00) Eastern Australia, Guam, Vladivostok\"},\r\n { timeZoneId:34, gmtAdjustment: \"+10:50\", name: \"(GMT+10:30) Lord Howe Island\"},\r\n { timeZoneId:35, gmtAdjustment: \"+11:00\", name: \"(GMT+11:00) Magadan, Solomon Islands, New Caledonia\"},\r\n { timeZoneId:36, gmtAdjustment: \"+11:50\", name: \"(GMT+11:30) Norfolk Island\"},\r\n { timeZoneId:37, gmtAdjustment: \"+12:00\", name: \"(GMT+12:00) Auckland, Wellington, Fiji, Kamchatka\"},\r\n { timeZoneId:38, gmtAdjustment: \"+12:75\", name: \"(GMT+12:45) Chatham Islands\"},\r\n { timeZoneId:49, gmtAdjustment: \"+13:00\", name: \"(GMT+13:00) Apia, Nukualofa\"},\r\n { timeZoneId:50, gmtAdjustment: \"+14:00\", name: \"(GMT+14:00) Line Islands, Tokelau\"}\r\n ];\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/conversions/conversion/mock-timezones.ts\n **/","module.exports = \"
\\r\\n \\r\\n {{ toolbarTitle }}\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
From
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
To
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
Current Mapping:  \\r\\n {{currentMappingType}}\\r\\n cloud_download\\r\\n  \\r\\n \\r\\n Change\\r\\n \\r\\n
\\r\\n Last modified on {{file.lastModifiedDate}}\\r\\n
\\r\\n
\\r\\n Cancel Changes\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Validating the UOM file... Please wait...
\\r\\n
\\r\\n check_circle_outline UOM file is valid.
\\r\\n
\\r\\n highlight_off UOM file has below error(s):\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Multiple emails need to be seperated by a semi-colon.

\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Go Live Pass\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n clear\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ user.emailAddress }}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Customer Specific Fix\\r\\n \\r\\n \\r\\n {{loadingCSF ? 'Loading...' : doesCustomerSpecificFileExist? 'Available' : 'Not Available'}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
UOM
\\r\\n
\\r\\n \\r\\n {{csf}}\\r\\n {{csf}}\\r\\n
\\r\\n
\\r\\n Warning: UOM sheet will not be applied due to incorrect file location.\\r\\n Please make sure the spreadsheet is placed in the root folder.
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Scripts and other files
\\r\\n
\\r\\n \\r\\n
{{csf}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Enable Db Packer\\r\\n \\r\\n \\r\\n \\r\\n Enable Send To Support\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Database Verification\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/conversions/conversion/conversion-form.component.html\n ** module id = 561\n ** module chunks = 0\n **/","module.exports = \".field-spacer {\\r\\n margin:12px 0\\r\\n}\\r\\n\\r\\n.field-input {\\r\\n height:38px;\\r\\n border:1px solid #CCC;\\r\\n}\\r\\n\\r\\n.field-input-fill-remaining-space {\\r\\n width: 100%;\\r\\n height: 38px;\\r\\n border:1px solid #CCC;\\r\\n}\\r\\n.field-input-date {\\r\\n width: 68%;\\r\\n height: 38px;\\r\\n border:1px solid #CCC;\\r\\n}\\r\\n\\r\\n.field-input-time {\\r\\n width: 30%;\\r\\n height: 30px;\\r\\n border:1px solid #CCC;\\r\\n}\\r\\n\\r\\n.field-input-timezone {\\r\\n width: 68%;\\r\\n border:1px solid #CCC;\\r\\n height: 34px;\\r\\n margin-top:1px;\\r\\n}\\r\\n\\r\\ninput[type=time]{\\r\\n font-size: 16px;\\r\\n}\\r\\n\\r\\n.group-go-live{\\r\\n border: 1px solid #CCC;\\r\\n padding: 8px 8px 8px 8px;\\r\\n}\"\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/conversions/conversion/conversion-form.component.css\n ** module id = 562\n ** module chunks = 0\n **/","module.exports = \"\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/conversions/conversion/create-conversion.component.html\n ** module id = 563\n ** module chunks = 0\n **/","import { Component, ViewContainerRef, ViewChild, AfterViewChecked, HostListener } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { DOMEvents } from '../../../dom-events';\r\nimport { ConversionsService } from '../_services/conversions.service';\r\nimport { ConversionFormAction } from './conversion-form.component';\r\n\r\n@Component({\r\n selector: 'edit-conversion',\r\n template: require('./edit-conversion.component.html'),\r\n providers: [ConversionsService]\r\n})\r\nexport class EditConversionComponent {\r\n conversionFormAction: any = ConversionFormAction;\r\n conversionId: string;\r\n submitting: boolean = false;\r\n isDirty:boolean=false;\r\n isDirtyAdvanced:boolean=false;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private domEvents: DOMEvents,\r\n private conversionsService: ConversionsService\r\n ) {\r\n this.route.params.subscribe(params => {\r\n this.conversionId = params['conversionId'];\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.domEvents.triggerOnDocument('appready');\r\n }\r\n\r\n onSubmit(conversionData: any) {\r\n if (conversionData){\r\n this.submitting = true;\r\n this.conversionsService.updateConversion(this.conversionId, conversionData).subscribe((res:any) => {\r\n this.submitting = false;\r\n this.router.navigateByUrl(`/sites/${conversionData.siteId}/conversions/${this.conversionId}`);\r\n }, err => {\r\n this.submitting = false;\r\n });\r\n sessionStorage.removeItem('isDirty');\r\n sessionStorage.removeItem('initConversion');\r\n sessionStorage.removeItem('isDirtyAdvanced');\r\n }\r\n }\r\n\r\n canDeactivate() { \r\n this.isDirty = sessionStorage.getItem('isDirty') == 'true'? true: false;\r\n this.isDirtyAdvanced = sessionStorage.getItem('isDirtyAdvanced') == 'true'? true: false;\r\n \r\n if( this.isDirty || this.isDirtyAdvanced)\r\n {\r\n var confirmationMessage = 'It looks like you have been editing something. '\r\n + 'If you leave before saving, your changes will be lost.';\r\n var confirm= window.confirm(confirmationMessage); \r\n if(confirm){\r\n sessionStorage.removeItem('isDirty');\r\n sessionStorage.removeItem('initConversion');\r\n sessionStorage.removeItem('isDirtyAdvanced');\r\n }\r\n return confirm;\r\n }\r\n return true; \r\n }\r\n \r\n \r\n @HostListener('window:beforeunload', ['$event'])\r\n unloadNotification() {\r\n if(this.isDirty || this.isDirtyAdvanced)\r\n {\r\n return window.confirm();\r\n }\r\n }\r\n\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/conversions/conversion/edit-conversion.component.ts\n **/","module.exports = \"\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/conversions/conversion/edit-conversion.component.html\n ** module id = 565\n ** module chunks = 0\n **/","import { Component, OnInit, OnDestroy, NgZone } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Headers, Http, RequestOptions, Response } from '@angular/http';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\nimport { AuthService, Role, Permission } from '../../../auth/auth.service';\r\n\r\nimport { ConversionsService, VirtualMachineStatus } from '../_services/conversions.service';\r\nimport { ConversionHubService } from '../_services/conversion-hub.service';\r\nimport { StorageAccountService } from '../../../storage-accounts/storage-account.service';\r\nimport { FilterConvesionPassLogByType } from '../_pipes/conversions.pipe';\r\n\r\nimport { Conversion, ConversionStatus, DocumentState, ConversionPassLog, ConversionPassLogType } from '../../../shared/interfaces';\r\nimport { RemoteDesktopService } from '../../../shared/services/remote-desktop.service';\r\nimport { SignalRConnectionStatus } from '../../../shared/interfaces';\r\nimport { ConversionPassTasksDialog } from '../_dialogs/conversion-pass-tasks-dialog';\r\nimport { IncidentDialog } from '../_dialogs/incident-dialog';\r\nimport { TimeToLiveDialog } from '../_dialogs/time-to-live-dialog';\r\nimport { ConversionStatusDialog } from '../_dialogs/conversion-status-dialog';\r\nimport { AddIPAddressToNSGDialog } from '../_dialogs/add-ip-address-to-nsg-dialog';\r\n\r\nimport { Project, IGanttOptions, Zooming } from '../../../../gantt';\r\nimport { DOMEvents } from '../../../dom-events';\r\nimport { ToastsManager } from 'ng2-toastr/ng2-toastr';\r\n\r\n@Component({\r\n selector: 'conversion-pass',\r\n template: require('./conversion-pass.component.html'),\r\n styles: [require('./conversion-pass.component.css')],\r\n providers: [ConversionsService, RemoteDesktopService, StorageAccountService]\r\n})\r\nexport class ConversionPassComponent implements OnInit, OnDestroy {\r\n Role: any = Role;\r\n Permission: any = Permission;\r\n\r\n conversionPassTaskDialogRef: MdDialogRef;\r\n incidentDialogRef: MdDialogRef;\r\n timeToLiveDialogRef: MdDialogRef;\r\n conversionStatusDialogRef: MdDialogRef;\r\n addIPAddressToNSGDialogRef: MdDialogRef;\r\n loading: boolean = false;\r\n logType: any = ConversionPassLogType;\r\n ganttProject: Project;\r\n ganttPreviousSuccessTask: any[];\r\n ganttOptions: IGanttOptions;\r\n displayGantt: boolean = false;\r\n subscribed: boolean;\r\n connectionId: any;\r\n zone: NgZone;\r\n password: string;\r\n resubmitting: boolean = false;\r\n conversionId: string;\r\n conversionPass: any;\r\n conversionPassId: string;\r\n passNumber: number;\r\n previousSuccessPassNumber: string;\r\n logs: any[] = [];\r\n logsContainer = {\r\n icon: 'expand_less',\r\n open: true\r\n };\r\n vmStatus: VirtualMachineStatus;\r\n VirtualMachineStatus = VirtualMachineStatus\r\n\r\n filterLogByType = new FilterConvesionPassLogByType();\r\n filterLogByTypeSelected: ConversionPassLogType;\r\n loadAllSelected: boolean = false;\r\n logsLoader: boolean = false;\r\n loadMoreLogsToken: string = null;\r\n logsHasMoreResult: boolean = false;\r\n errorsCount: number = 0;\r\n warningsCount: number = 0;\r\n informationCount: number = 0;\r\n incidentsCount: number = 0;\r\n resubmitSubcription: any;\r\n isProduction: boolean = false;\r\n reconciliationReports: any[];\r\n reconciliationReportsCount: number;\r\n selectedTab: string = 'progress';\r\n ConversionStatus: any = ConversionStatus;\r\n product: any = {\r\n description: null,\r\n source: null,\r\n target: null\r\n };\r\n uomFileExists: boolean = false;\r\n uom: any;\r\n enableRDP:boolean =false;\r\n\r\n constructor(\r\n public conversionPassTaskDialog: MdDialog,\r\n public incidentDialog: MdDialog,\r\n public timeToLiveDialog: MdDialog,\r\n public conversionStatusDialog: MdDialog,\r\n public addIPAddressToNSGDialog: MdDialog,\r\n private domEvents: DOMEvents,\r\n private auth: AuthService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private conversionHubService: ConversionHubService,\r\n private conversionsService: ConversionsService,\r\n private remoteDesktopService: RemoteDesktopService,\r\n private storageAccountService: StorageAccountService,\r\n private toastr: ToastsManager) {\r\n\r\n this.route.params.subscribe(params => {\r\n this.conversionId = params['conversionId'];\r\n this.passNumber = +params['passNumber'];\r\n });\r\n\r\n // This is required so log data is updated straight away in view\r\n this.zone = new NgZone({ enableLongStackTrace: false });\r\n }\r\n\r\n ngOnInit() {\r\n this.resubmitSubcription = this.route.params.subscribe(params => {\r\n const passNumber: number = params['passNumber'];\r\n this.logs = [];\r\n\r\n this.getPreviousSuccessConversionPass(this.conversionId, passNumber);\r\n\r\n this.listenForConnection();\r\n\r\n this.conversionHubService.connectionState.subscribe(\r\n connectionState => {\r\n if (connectionState == SignalRConnectionStatus.Connected) {\r\n console.log('Connected!');\r\n } else {\r\n console.log(connectionState.toString());\r\n }\r\n },\r\n error => {\r\n console.log(error);\r\n }\r\n );\r\n });\r\n\r\n if (process.env.ENV === 'production') {\r\n this.isProduction = true;\r\n }\r\n\r\n this.domEvents.triggerOnDocument('appready');\r\n }\r\n\r\n toggleTab(tab: string) {\r\n this.selectedTab = tab;\r\n }\r\n\r\n /** Update task progress based on received log entry from conversion hub */\r\n updateTaskProgress(task: any, status?: string) {\r\n let tasks: any[] = this.ganttProject.tasks;\r\n let previousPassDetails: any = null;\r\n let foundPreviousPassDetals: boolean = false;\r\n\r\n if (this.ganttPreviousSuccessTask.map(obj => obj.treePath).indexOf(task.treePath) < 0) {\r\n var tempTask = Object.assign({}, task);\r\n tempTask.start = null;\r\n tempTask.end = null;\r\n previousPassDetails = tempTask;\r\n foundPreviousPassDetals = true;\r\n }\r\n if (!foundPreviousPassDetals) {\r\n if (this.ganttPreviousSuccessTask.map(obj => obj.treePath).indexOf(task.treePath) >= 0) {\r\n this.ganttPreviousSuccessTask.map(function (obj) {\r\n if (obj.name == task.name) {\r\n var tempTask = Object.assign({}, obj);\r\n tempTask.start = tempTask.start == null ? null : new Date(tempTask.start);\r\n tempTask.end = tempTask.end == null ? null : new Date(tempTask.end)\r\n previousPassDetails = tempTask;\r\n }\r\n });\r\n }\r\n }\r\n foundPreviousPassDetals = false;\r\n\r\n let taskIndex = this.ganttProject.tasks.findIndex((t: any) => {\r\n return t.id == task.id\r\n });\r\n\r\n // a new task has been added so project tasks will need to be updated\r\n if (taskIndex === -1) {\r\n // convert string dates into date\r\n task.start = new Date(task.start);\r\n task.end = new Date(task.end);\r\n task.previousPassDetails = previousPassDetails;\r\n tasks.push(task);\r\n } else {\r\n this.ganttProject.tasks[taskIndex].start = new Date(task.start);\r\n this.ganttProject.tasks[taskIndex].end = new Date(task.end);\r\n this.ganttProject.tasks[taskIndex].percentComplete = task.percentComplete;\r\n this.ganttProject.tasks[taskIndex].status = status;\r\n this.ganttProject.tasks[taskIndex].previousPassDetails = previousPassDetails;\r\n }\r\n }\r\n\r\n /**\r\n * Get the previous conversion pass (if it has one) \r\n * @param conversionId \r\n * @param passNumber \r\n */\r\n getPreviousSuccessConversionPass(conversionId: string, passNumber: number) {\r\n this.loading = true;\r\n this.conversionsService.getPreviousSuccessConversionPass(conversionId, passNumber).subscribe(\r\n conversionPass => {\r\n this.conversionPass = conversionPass;\r\n let successTasks = this.conversionPass.tasks;\r\n this.previousSuccessPassNumber = this.conversionPass.passNumber;\r\n if (!Array.isArray(successTasks)) {\r\n successTasks = [];\r\n }\r\n this.ganttPreviousSuccessTask = successTasks.map((task: any) => {\r\n task.start = task.start == null ? null : new Date(task.start);\r\n task.end = task.end == null ? null : new Date(task.end)\r\n return task;\r\n })\r\n this.setSubscription(true);\r\n this.getConversionPass(conversionId, passNumber);\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Get the conversion pass\r\n * @param conversionId \r\n * @param passNumber \r\n */\r\n getConversionPass(conversionId: string, passNumber: number) {\r\n this.conversionsService.getConversionPass(conversionId, passNumber).subscribe(\r\n conversionPass => {\r\n this.conversionPass = conversionPass;\r\n this.conversionPassId = this.conversionPass.conversionPassId;\r\n let tasks = this.conversionPass.tasks;\r\n\r\n this.checkUOMFileExists(this.conversionPassId);\r\n \r\n this.remoteDesktopService.getConversionPassRDPToken(this.conversionPassId).subscribe(\r\n result => {this.enableRDP =true;},\r\n err => { if(err.status == \"403\") this.enableRDP= false;} \r\n );\r\n \r\n if (!Array.isArray(tasks)) {\r\n tasks = [];\r\n }\r\n\r\n // create the gantt options\r\n this.ganttOptions = {\r\n scale: {\r\n start: new Date(conversionPass.startDate)\r\n },\r\n zooming: \"hours\"\r\n };\r\n\r\n // used for reconciliation report component\r\n this.product = {\r\n source: `${conversionPass.fromProduct} ${conversionPass.fromVersion}`,\r\n target: `${conversionPass.toProduct} ${conversionPass.toVersion}`,\r\n goLive: `${conversionPass.goLive ? \"Yes\" : \"No\"}`\r\n };\r\n\r\n \r\n \r\n\r\n // create the gantt project object to pass to gantt component\r\n this.ganttProject = {\r\n id: conversionPass.conversionPassId,\r\n name: `${conversionPass.fromProduct} ${conversionPass.fromVersion} to ${conversionPass.toProduct} ${conversionPass.toVersion}, Go Live: ${conversionPass.goLive ? \"Yes\" : \"No\"}, Tooling Version : ${conversionPass.toolingVersion}`,\r\n startDate: new Date(conversionPass.startDate),\r\n previousSuccessPassNumber: this.previousSuccessPassNumber,\r\n tasks: tasks.map((task: any) => {\r\n if (this.ganttPreviousSuccessTask.map(obj => obj.treePath).indexOf(task.treePath) < 0) {\r\n var tempTask = Object.assign({}, task);\r\n tempTask.start = null;\r\n tempTask.end = null;\r\n task.previousPassDetails = tempTask;\r\n }\r\n if (this.ganttPreviousSuccessTask.map(obj => obj.treePath).indexOf(task.treePath) >= 0) {\r\n this.ganttPreviousSuccessTask.map(function (obj) {\r\n if (obj.name == task.name) {\r\n var tempTask = Object.assign({}, obj);\r\n tempTask.start = tempTask.start == null ? null : new Date(tempTask.start);\r\n tempTask.end = tempTask.end == null ? null : new Date(tempTask.end)\r\n task.previousPassDetails = tempTask;\r\n }\r\n });\r\n }\r\n task.start = task.start == null ? null : new Date(task.start);\r\n task.end = task.end == null ? null : new Date(task.end)\r\n return task;\r\n })\r\n };\r\n\r\n this.displayGantt = true;\r\n\r\n this.getVMStatus(this.conversionPassId);\r\n this.getConversionPassLogs(this.conversionPassId);\r\n this.getReconciliationReports(this.conversionPassId);\r\n this.getReconciliationReportsCount(this.conversionPassId); \r\n \r\n this.setSubscription(true);\r\n this.loading = false;\r\n }\r\n );\r\n\r\n this.conversionHubService.addPassLogEntry.subscribe(\r\n (data: any) => {\r\n let log: LogEntry = data.log;\r\n let task: ConversionPassTask = data.task;\r\n let logs: LogEntry[] = data.logs;\r\n let tasks: ConversionPassTask[] = data.tasks;\r\n\r\n // A single log entry has been created\r\n if (log) {\r\n if (log.description) {\r\n this.logs.unshift(log);\r\n }\r\n\r\n // important, otherwise the view is not updated straight away when data is received.\r\n this.zone.run(() => {\r\n this.updateTaskProgress(task, ConversionPassLogType[log.type]);\r\n })\r\n }\r\n\r\n // Multiple log entries have been created\r\n if (logs) {\r\n logs.forEach((log: LogEntry) => {\r\n if (log.description) {\r\n this.logs.unshift(log);\r\n\r\n switch (log.type) {\r\n case ConversionPassLogType.Error:\r\n this.errorsCount += 1;\r\n break;\r\n case ConversionPassLogType.Warning:\r\n this.warningsCount += 1;\r\n break;\r\n case ConversionPassLogType.Information:\r\n this.informationCount += 1;\r\n break;\r\n case ConversionPassLogType.Incident:\r\n this.incidentsCount += 1;\r\n break;\r\n }\r\n }\r\n\r\n let task: ConversionPassTask = tasks.filter((t: ConversionPassTask) => t.treePath === log.taskId)[0];\r\n\r\n if (task) {\r\n // important, otherwise the view is not updated straight away when data is received.\r\n this.zone.run(() => {\r\n this.updateTaskProgress(task, ConversionPassLogType[log.type]);\r\n });\r\n }\r\n });\r\n }\r\n },\r\n err => console.log(err)\r\n );\r\n\r\n this.conversionHubService.addConversionPassIncidentEntry.subscribe(\r\n (log: any) => {\r\n this.logs.unshift(log);\r\n this.incidentsCount += 1;\r\n },\r\n err => console.log(err)\r\n ); \r\n }\r\n\r\n /**\r\n * Load the next page of logs\r\n */\r\n loadMoreLogs() {\r\n this.getConversionPassLogs(this.conversionPassId, this.loadMoreLogsToken, this.filterLogByTypeSelected);\r\n }\r\n\r\n /**\r\n * Load all logs\r\n * @param val \r\n */\r\n loadAllLogs() { \r\n this.loadAllSelected = !this.loadAllSelected;\r\n if (this.loadAllSelected) {\r\n this.getAllConversionPassLogs(this.conversionPassId);\r\n } \r\n else {\r\n this.logs = [];\r\n this.getConversionPassLogs(this.conversionPassId, null, this.filterLogByTypeSelected);\r\n }\r\n }\r\n\r\n /**\r\n * Update the SignalR subscription connect/disconnect\r\n * @param val \r\n */\r\n setSubscription(val: boolean) {\r\n try {\r\n if (this.conversionPass.conversionPassId != null && this.conversionPass.conversionPassId != undefined) {\r\n this.subscribed = val;\r\n let subscription = {\r\n subscribe: val,\r\n groupName: this.conversionPass.conversionPassId\r\n }\r\n this.updateSubscription(subscription);\r\n }\r\n } catch (err) {\r\n console.error(\"Unable to subscribe to conversion hub\");\r\n this.subscribed = false;\r\n }\r\n }\r\n\r\n /**\r\n * Listen for connected / disconnected events\r\n */\r\n listenForConnection() {\r\n this.conversionHubService.setConnectionId.subscribe(\r\n id => {\r\n console.log(id);\r\n this.connectionId = id;\r\n },\r\n err => console.log(err)\r\n )\r\n }\r\n\r\n /**\r\n * Update SignalR subscription\r\n * @param subscription \r\n */\r\n updateSubscription(subscription: any) {\r\n if (subscription.subscribe === true) {\r\n this.conversionHubService.subscribeToFeed(subscription.groupName);\r\n } else {\r\n this.conversionHubService.unsubscribeFromFeed(subscription.groupName);\r\n }\r\n }\r\n\r\n /**\r\n * Toggle visibility of the container\r\n * @param container \r\n */\r\n toggleContainer(container: any) {\r\n if (container.open) {\r\n container.open = false;\r\n container.icon = 'expand_more';\r\n } else {\r\n container.open = true;\r\n container.icon = 'expand_less';\r\n }\r\n }\r\n\r\n /**\r\n * Filter the logs by type\r\n */\r\n filterLogs(type: ConversionPassLogType) {\r\n this.logs = [];\r\n\r\n if (this.filterLogByTypeSelected == type) {\r\n this.filterLogByTypeSelected = null;\r\n } else {\r\n this.filterLogByTypeSelected = type;\r\n }\r\n if (this.loadAllSelected) {\r\n this.getAllConversionPassLogs(this.conversionPassId);\r\n }\r\n else {\r\n this.getConversionPassLogs(this.conversionPassId, null, this.filterLogByTypeSelected);\r\n }\r\n }\r\n\r\n /**\r\n * Get the conversion pass logs - logs are paged\r\n * @param conversionPassId \r\n * @param token \r\n * @param logType \r\n */\r\n getConversionPassLogs(conversionPassId: string, token?: string, logType?: ConversionPassLogType) {\r\n if (token == null) {\r\n this.logsLoader = true;\r\n }\r\n\r\n this.conversionsService.getConversionPassLogs(conversionPassId, token, logType).subscribe(\r\n (pagedLogResult: any) => {\r\n pagedLogResult.result.forEach((log: any) => {\r\n this.logs.push(log);\r\n });\r\n\r\n this.logsLoader = false;\r\n\r\n if (pagedLogResult.hasMoreResults) {\r\n var rcToken = JSON.parse(pagedLogResult.requestContinuation).token;\r\n this.loadMoreLogsToken = rcToken;\r\n }\r\n\r\n this.logsHasMoreResult = pagedLogResult.hasMoreResults;\r\n\r\n this.getLogsTypeCount();\r\n },\r\n err => this.logsLoader = false\r\n );\r\n }\r\n\r\n getAllConversionPassLogs(conversionPassId: string) {\r\n this.logsLoader = true;\r\n\r\n this.conversionsService.getAllConversionPassLogs(conversionPassId).subscribe(\r\n (pagedLogResult: any) => {\r\n if (this.filterLogByTypeSelected === this.logType.Error) {\r\n this.logs = pagedLogResult.result.filter((log: any) => log.type === ConversionPassLogType.Error);\r\n } else if (this.filterLogByTypeSelected === this.logType.Warning) {\r\n this.logs = pagedLogResult.result.filter((log: any) => log.type === ConversionPassLogType.Warning);\r\n } else if (this.filterLogByTypeSelected === this.logType.Information) {\r\n this.logs = pagedLogResult.result.filter((log: any) => log.type === ConversionPassLogType.Information);\r\n } else if (this.filterLogByTypeSelected === this.logType.Incident) {\r\n this.logs = pagedLogResult.result.filter((log: any) => log.type === ConversionPassLogType.Incident);\r\n } else {\r\n this.logs = pagedLogResult.result;\r\n }\r\n \r\n this.logsLoader = false;\r\n \r\n this.logsHasMoreResult = pagedLogResult.hasMoreResults;\r\n\r\n this.getLogsTypeCount();\r\n },\r\n err => this.logsLoader = false\r\n );\r\n }\r\n\r\n /**\r\n * Get log type icon\r\n * @param type \r\n */\r\n getTypeIcon(type: ConversionPassLogType): string {\r\n if (ConversionPassLogType.Information === type) {\r\n return \"event_note\";\r\n } else if (ConversionPassLogType.Warning === type) {\r\n return \"warning\";\r\n } else if (ConversionPassLogType.Error === type) {\r\n return \"clear\";\r\n } else if (ConversionPassLogType.Incident === type) {\r\n return \"person\";\r\n }\r\n }\r\n\r\n /**\r\n * Get log type icon class\r\n * @param type \r\n */\r\n getTypeIconClass(type: ConversionPassLogType): string {\r\n if (ConversionPassLogType.Information === type || ConversionPassLogType.Incident === type) {\r\n return '';\r\n } else if (ConversionPassLogType.Warning === type) {\r\n return 'warning'; // orange\r\n } else if (ConversionPassLogType.Error === type) {\r\n return 'error'; // red/pinkish\r\n }\r\n }\r\n\r\n getLoadAllCount() { \r\n if (this.filterLogByTypeSelected == null) {\r\n return this.incidentsCount + this.informationCount + this.warningsCount + this.errorsCount;\r\n }\r\n else {\r\n switch (this.filterLogByTypeSelected) {\r\n case this.logType.Error:\r\n return this.errorsCount;\r\n case this.logType.Warning:\r\n return this.warningsCount;\r\n case this.logType.Information:\r\n return this.informationCount;\r\n case this.logType.Incident:\r\n return this.incidentsCount;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Get logs type count\r\n */\r\n getLogsTypeCount() {\r\n let passId = this.conversionPassId;\r\n\r\n this.conversionsService.getConversionPassLogsCount(passId, ConversionPassLogType.Error).subscribe((data: any) => {\r\n this.errorsCount = data.count;\r\n });\r\n\r\n this.conversionsService.getConversionPassLogsCount(passId, ConversionPassLogType.Warning).subscribe((data: any) => {\r\n this.warningsCount = data.count;\r\n });\r\n\r\n this.conversionsService.getConversionPassLogsCount(passId, ConversionPassLogType.Information).subscribe((data: any) => {\r\n this.informationCount = data.count;\r\n });\r\n\r\n this.conversionsService.getConversionPassLogsCount(passId, ConversionPassLogType.Incident).subscribe((data: any) => {\r\n this.incidentsCount = data.count;\r\n });\r\n }\r\n\r\n /**\r\n * Refresh the logs\r\n */\r\n refreshLogs() {\r\n this.logs = [];\r\n this.getConversionPassLogs(this.conversionPass.conversionPassId, null, this.filterLogByTypeSelected);\r\n }\r\n\r\n /**\r\n * Download conversion pass RDP file\r\n */\r\n downloadRDP() {\r\n var conversionPassId = this.conversionPass.conversionPassId;\r\n var validMultiDownload = (this.conversionPass.toVersion.startsWith(\"11\") && Number(this.conversionPass.toVersion.split('.')[2]) > 100 ||\r\n this.conversionPass.toVersion.startsWith(\"11\") && Number(this.conversionPass.toVersion.split('.')[1]) >=2) || this.conversionPass.toVersion.startsWith(\"12\")\r\n && (this.conversionPass.fromVersion.startsWith('9.') || this.conversionPass.fromVersion.startsWith('8.'));\r\n if(validMultiDownload && (this.conversionPass.fromVersion.startsWith('9.') || this.conversionPass.fromVersion.startsWith('8.'))) {\r\n this.remoteDesktopService.getConversionPassRDPToken(conversionPassId).subscribe((data: any) => {\r\n if (data != null) {\r\n var downloadUrl = this.remoteDesktopService.getConversionPassRDPDownloadUrl(conversionPassId, data.token,true);\r\n var newWindow = window.open(downloadUrl, '_self');\r\n newWindow = null;\r\n }\r\n }); \r\n } \r\n\r\n if(validMultiDownload && this.conversionPass.tasks.filter((task: { treePath: string; }) => (task.treePath === \"ERP Cloud Worker\" || task.treePath === \"Cloud Worker\")).length == 0 ){\r\n return;\r\n }\r\n this.remoteDesktopService.getConversionPassRDPToken(conversionPassId).subscribe((data: any) => {\r\n if (data != null) {\r\n var downloadUrl = this.remoteDesktopService.getConversionPassRDPDownloadUrl(conversionPassId, data.token,false);\r\n var newWindow = window.open(downloadUrl, '_self');\r\n newWindow = null; \r\n }\r\n }); \r\n }\r\n\r\n /**\r\n * Show the RDP password for a specified duration\r\n */\r\n showPassword(timeout: number = 60000) {\r\n this.password = null;\r\n\r\n this.conversionsService.getConversionPassRDPPassword(this.conversionPass.conversionPassId).subscribe((rdp: any) => {\r\n this.password = rdp.rdpPassword;\r\n\r\n setTimeout(() => {\r\n this.password = null;\r\n }, timeout);\r\n });\r\n }\r\n\r\n /**\r\n * Show the Product User password for a specified duration \r\n */\r\n showProductPassword(timeout: number = 60000) {\r\n this.password = null;\r\n\r\n this.conversionsService.getConversionPassProductPassword(this.conversionPass.conversionPassId).subscribe((product: any) => {\r\n this.password = product.productUserPassword;\r\n\r\n setTimeout(() => {\r\n this.password = null\r\n }, timeout);\r\n })\r\n }\r\n\r\n /** Opens the edit tasks dialog to allow deletion of tasks */\r\n openEditTasksDialog() {\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = null;\r\n let parentTasks: any[] = this.conversionPass.tasks.filter((t: any) => {\r\n if (t.treePath.split('/').length === 1) {\r\n t[\"selected\"] = false;\r\n return t;\r\n }\r\n });\r\n\r\n this.conversionPassTaskDialogRef = this.conversionPassTaskDialog.open(ConversionPassTasksDialog, config);\r\n this.conversionPassTaskDialogRef.componentInstance.parentTasks = parentTasks;\r\n this.conversionPassTaskDialogRef.afterClosed().subscribe((result: any) => {\r\n this.deleteTasks(result);\r\n });\r\n }\r\n\r\n /**\r\n * Resubmit the conversion pass\r\n */\r\n resubmitPass() {\r\n if (confirm(\"Are you sure you want to resubmit?\")) {\r\n if (this.resubmitting) {\r\n this.toastr.info('This pass has already been resubmitted');\r\n }\r\n\r\n if (!this.resubmitting) {\r\n this.resubmitting = true;\r\n this.toastr.success('Conversion pass has been resubmitted');\r\n\r\n // create a conversion pass\r\n this.conversionsService.resubmitConversionPass(this.conversionPass.conversionId, this.conversionPass.conversionPassId).subscribe((data: any) => {\r\n this.resubmitting = false;\r\n let conversionPassUri = `/conversions/${this.conversionPass.conversionId}/passes/${data.passNumber}`;\r\n\r\n // add a new incident to inform the conversion pass has been resubmitted\r\n this.conversionsService.logConversionPassIncident(this.conversionPass.conversionPassId, {\r\n description: `Conversion pass has been resubmitted and can be viewed at ${conversionPassUri}`\r\n }).subscribe((res: any) => {\r\n this.router.navigateByUrl(conversionPassUri);\r\n });\r\n }, err => this.resubmitting = false);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Open the incident dialog so a incident can be logged\r\n */\r\n openIncidentDialog() {\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = null;\r\n\r\n this.incidentDialogRef = this.incidentDialog.open(IncidentDialog, config);\r\n this.incidentDialogRef.componentInstance.conversionPassId = this.conversionPass.conversionPassId;\r\n }\r\n\r\n /**\r\n * Open the status dialog so the status can be changed\r\n */\r\n openChangeStatusDialog() {\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = null;\r\n\r\n this.conversionStatusDialogRef = this.conversionStatusDialog.open(ConversionStatusDialog, config);\r\n this.conversionStatusDialogRef.componentInstance.conversionPassId = this.conversionPass.conversionPassId;\r\n this.conversionStatusDialogRef.componentInstance.conversionPassStatus = this.conversionPass.status;\r\n\r\n this.conversionStatusDialogRef.afterClosed().subscribe((result: any) => {\r\n if (result) {\r\n this.getPreviousSuccessConversionPass(this.conversionId, this.passNumber);\r\n }\r\n });\r\n }\r\n\r\n openTimeToLiveDialog() {\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = null;\r\n\r\n this.timeToLiveDialogRef = this.timeToLiveDialog.open(TimeToLiveDialog, config);\r\n this.timeToLiveDialogRef.componentInstance.conversionPassId = this.conversionPass.conversionPassId;\r\n }\r\n\r\n /** Delete conversion pass tasks */\r\n deleteTasks(ids: any[]) {\r\n if (Array.isArray(ids)) {\r\n if (ids.length > 0) {\r\n this.conversionsService.deleteConversionPassTasks(this.conversionPass.conversionPassId, ids).subscribe((res: any) => {\r\n this.getPreviousSuccessConversionPass(this.conversionId, this.passNumber);\r\n });\r\n }\r\n }\r\n }\r\n\r\n /** select all text in rdp password input */\r\n selectAllText(input: any) {\r\n input.setSelectionRange(0, input.value.length);\r\n }\r\n\r\n /** copy text out of rdp password input into clipboard */\r\n copyToClipboard(input: any, button: any) {\r\n input.focus();\r\n\r\n try {\r\n var copied = document.execCommand('copy');\r\n if (copied) {\r\n button.innerHTML = 'Copied!';\r\n this.password = null;\r\n }\r\n } catch (err) {\r\n console.log('Unable to copy');\r\n }\r\n }\r\n\r\n /**\r\n * Get the cloud converter status\r\n * @param conversionPassId \r\n */\r\n getVMStatus(conversionPassId: string) { \r\n\r\n this.conversionsService.getConversionPassTTL(conversionPassId).subscribe((ttl: any) => {\r\n let shutdownOn = new Date(ttl.shutdownOn).getTime();\r\n let deleteOn = new Date(ttl.deleteOn).getTime();\r\n let today = new Date().getTime();\r\n \r\n if (today > shutdownOn) {\r\n this.vmStatus = VirtualMachineStatus.SHUTDOWN;\r\n }\r\n if (today > deleteOn) {\r\n this.vmStatus = VirtualMachineStatus.DELETED;\r\n }\r\n if (today < shutdownOn && today < deleteOn) {\r\n this.vmStatus = VirtualMachineStatus.ONLINE;\r\n }\r\n \r\n });\r\n }\r\n\r\n /**\r\n * Get the cloud converter status class\r\n */\r\n getVMStatusClass() {\r\n let vmStatusClass = '';\r\n\r\n switch (this.vmStatus) {\r\n case VirtualMachineStatus.ONLINE:\r\n vmStatusClass = 'vm-online';\r\n break;\r\n case VirtualMachineStatus.SHUTDOWN:\r\n vmStatusClass = 'vm-shutdown';\r\n break;\r\n case VirtualMachineStatus.DELETED:\r\n vmStatusClass = 'vm-deleted';\r\n break;\r\n default:\r\n vmStatusClass = 'vm-undefined';\r\n break;\r\n }\r\n\r\n return vmStatusClass;\r\n }\r\n\r\n /**\r\n * Get the cloud converter status text\r\n */\r\n getVMStatusText() {\r\n let vmStatusText = '';\r\n\r\n switch (this.vmStatus) {\r\n case VirtualMachineStatus.ONLINE:\r\n vmStatusText = VirtualMachineStatus[VirtualMachineStatus.ONLINE];\r\n break;\r\n case VirtualMachineStatus.SHUTDOWN:\r\n vmStatusText = VirtualMachineStatus[VirtualMachineStatus.SHUTDOWN];\r\n break;\r\n case VirtualMachineStatus.DELETED:\r\n vmStatusText = VirtualMachineStatus[VirtualMachineStatus.DELETED];\r\n break;\r\n default:\r\n vmStatusText = 'N/A';\r\n break;\r\n }\r\n\r\n return vmStatusText;\r\n }\r\n\r\n /**\r\n * Start the cloud converter Virtual Machine and set its shutdown time to live\r\n */\r\n startVM() {\r\n this.conversionsService.startVM(this.conversionPass.conversionPassId).subscribe((res: any) => {\r\n\r\n });\r\n }\r\n\r\n /**\r\n * Escalate conversion pass to development so issues can be investigated\r\n */\r\n escalateToDevelopment() {\r\n this.conversionsService.escalateConversionPassToDevelopment(this.conversionPass.conversionPassId).subscribe((res: any) => {\r\n this.toastr.success('Conversion pass has been moved to development');\r\n this.openConversionPassInStaging();\r\n }, err => {\r\n this.toastr.error('Failed to move conversion pass to development')\r\n });\r\n }\r\n\r\n /**\r\n * Change route to the conversion configuration screen\r\n */\r\n openConfiguration() {\r\n this.router.navigateByUrl(`/sites/${this.conversionPass.siteId}/conversions/${this.conversionPass.conversionId}`);\r\n }\r\n\r\n /**\r\n * Open new browser tab of conversion pass when escalated\r\n */\r\n openConversionPassInStaging() {\r\n let url = `https://cloudfactoryportal-staging.azurewebsites.net/#/conversions/${this.conversionId}/passes/${this.conversionPass.passNumber}`;\r\n window.open(url, \"_blank\");\r\n }\r\n\r\n /**\r\n * Add an IP Address to the network security gateway\r\n */\r\n addIPToNSG() {\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = null;\r\n\r\n this.addIPAddressToNSGDialogRef = this.addIPAddressToNSGDialog.open(AddIPAddressToNSGDialog, config);\r\n this.addIPAddressToNSGDialogRef.componentInstance.conversionPassId = this.conversionPass.conversionPassId;\r\n\r\n this.addIPAddressToNSGDialogRef.afterClosed().subscribe((result: any) => {\r\n\r\n });\r\n }\r\n\r\n /**\r\n * Get reconciliation reports for conversion pass\r\n */\r\n getReconciliationReports(conversionPassId: string, companyId?: string, category?: string, difference?: boolean) {\r\n this.conversionsService.getConversionPassReconciliationReports(conversionPassId, companyId, category, difference).subscribe((reports: any) => {\r\n this.reconciliationReports = reports;\r\n });\r\n }\r\n\r\n /**\r\n * Get reconciliation reports for conversion pass\r\n * @param conversionPassId \r\n */\r\n getReconciliationReportsCount(conversionPassId: string, companyId?: string, category?: string, difference?: boolean) {\r\n this.conversionsService.getConversionPassReconciliationReportsCount(conversionPassId, companyId, category, difference).subscribe((reportsCount: any) => {\r\n this.reconciliationReportsCount = reportsCount.count;\r\n });\r\n }\r\n\r\n /**\r\n * Listens for filter changes on reconciliation report\r\n * @param filters \r\n */\r\n reconciliationReportsChanged(filters: any) {\r\n let conversionPassId = this.conversionPassId;\r\n let companyId = filters[\"companyId\"];\r\n let category = filters[\"category\"];\r\n let difference = filters[\"difference\"];\r\n\r\n this.getReconciliationReports(conversionPassId, companyId, category, difference);\r\n this.getReconciliationReportsCount(conversionPassId, companyId, category, difference);\r\n }\r\n\r\n /**\r\n * Check whether a Unit of Measures file exists\r\n */\r\n checkUOMFileExists(conversionPassId: string) {\r\n this.conversionsService.checkUnitOfMeasuresFileExists(conversionPassId).subscribe((uom:any) => {\r\n if (uom.exists) {\r\n this.uomFileExists = true;\r\n this.uom = uom;\r\n }\r\n console.log(this.conversionPass.fromVersion);\r\n if(this.conversionPass.fromVersion.startsWith(\"8.\"))\r\n {\r\n this.showUOMTemplate();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Download the Unit of Measures file\r\n */\r\n downloadUOM() {\r\n if(this.uomFileExists) {\r\n this.conversionsService.createUnitOfMeasureDownloadToken(this.uom.uri).subscribe((result:any) => { \r\n let sas = result.sas;\r\n this.conversionsService.downloadUnitOfMeasures(this.uom.uri, sas); \r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.setSubscription(false);\r\n }\r\n\r\n showToolingVersion() {\r\n console.log(this.conversionPass);\r\n }\r\n\r\n showUOMTemplate(){ \r\n let lbl='';\r\n let uomMapping= this.conversionPass.uomMapping;\r\n console.log(uomMapping);\r\n\r\n switch(uomMapping){\r\n case 'Custom':\r\n case 'Xml':\r\n case 'Spreadsheet': \r\n lbl = `, UOMs: Custom Mapping Sheet`;\r\n break; \r\n case 'Metric':\r\n case 'US':\r\n lbl = `, UOMs: ${uomMapping} Template`;\r\n break; \r\n case null:\r\n default:\r\n lbl='';\r\n break;\r\n }\r\n \r\n this.ganttProject.name +=`${lbl}`; \r\n } \r\n\r\n} \r\n\r\nclass LogEntry {\r\n id: string;\r\n conversionPassId: string;\r\n taskId: string;\r\n percentComplete: number;\r\n type: any;\r\n description: string;\r\n eventTimestamp: any;\r\n docType: any;\r\n}\r\n\r\nclass ConversionPassTask {\r\n id: string;\r\n treePath: string;\r\n parentId: string;\r\n name: string;\r\n percentComplete: number;\r\n start: any;\r\n end: any;\r\n status: any;\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/conversions/pass/conversion-pass.component.ts\n **/","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { ConversionPassLogType } from '../../../shared/interfaces';\r\n\r\n\r\n@Pipe({ name: 'filterConversionPassLog' })\r\nexport class FilterConversionPassLog implements PipeTransform {\r\n transform(logs: any[], filter: string): any[] {\r\n\r\n if(filter === '') {\r\n return logs;\r\n }\r\n\r\n return logs.filter(l => {\r\n if (l.id.toString().toLowerCase().indexOf(filter.toString().toLowerCase()) !== -1 ||\r\n l.description.toString().toLowerCase().indexOf(filter.toString().toLowerCase()) !== -1) {\r\n return l;\r\n }\r\n });\r\n }\r\n}\r\n\r\n@Pipe({ name: 'filterConversionPassLogByType' })\r\nexport class FilterConvesionPassLogByType implements PipeTransform {\r\n transform(logs: any[], type: ConversionPassLogType): any[] {\r\n if(typeof type === \"number\") {\r\n return logs.filter(l => {\r\n if (l.type === type) {\r\n return l;\r\n }\r\n });\r\n }\r\n return logs;\r\n }\r\n}\r\n\r\n@Pipe({ \r\n name: 'filterConversionPassByStatus', \r\n pure: false \r\n})\r\nexport class FilterConversionPassByStatus implements PipeTransform {\r\n transform(conversionPasses: any[], status: any) {\r\n if (typeof status === 'number') {\r\n return conversionPasses.filter(cp => {\r\n if (cp.status === status) {\r\n return cp;\r\n }\r\n });\r\n }\r\n return conversionPasses;\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/conversions/_pipes/conversions.pipe.ts\n **/","import { Injectable } from '@angular/core';\r\nimport { Headers, Http, RequestOptions, Response } from '@angular/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { AuthHttp, AuthConfig, AUTH_PROVIDERS } from 'angular2-jwt';\r\nimport { ConfigService } from './config.service';\r\n\r\nimport 'rxjs/operator/map';\r\n\r\n@Injectable()\r\nexport class RemoteDesktopService {\r\n private serviceBase: string = new ConfigService().getApiURI();\r\n private remoteDesktopAPI = `${this.serviceBase}remotedesktop`;\r\n\r\n constructor(\r\n private http: Http,\r\n private authHttp: AuthHttp) { } \r\n\r\n /** Gets the conversion pass rdp download url */\r\n getConversionPassRDPDownloadUrl(conversionPassId: string, token: string, multiDownload : boolean) : string {\r\n let env = '';\r\n \r\n if (process.env.ENV !== 'production') {\r\n env = 's'\r\n } \r\n \r\n return `${this.remoteDesktopAPI}/conversion/${conversionPassId}?token=${encodeURIComponent(token)}&environment=${env}&legacyRdpDownload=${multiDownload}`;\r\n }\r\n\r\n /** Gets a temporary RDP download token for conversion pass*/\r\n getConversionPassRDPToken(conversionPassId: string) {\r\n let url = `${this.remoteDesktopAPI}/conversion/${conversionPassId}/download/token`;\r\n\r\n return this.authHttp.get(url).map(this.extractData);\r\n }\r\n\r\n /** Gets the cloudview rdp download url */\r\n getCloudViewInstanceRDPDownloadUrl(cloudviewInstanceId: string, token: string): string {\r\n let env = '';\r\n \r\n if (process.env.ENV !== 'production') {\r\n env = 's'\r\n } \r\n return `${this.remoteDesktopAPI}/cloudview/${cloudviewInstanceId}?token=${encodeURIComponent(token)}&env=${env}`;\r\n }\r\n\r\n /** Gets a temporary RDP download token for cloud view instance */\r\n getCloudViewInstanceRDPToken(cloudviewInstanceId: string) {\r\n let url = `${this.remoteDesktopAPI}/cloudview/${cloudviewInstanceId}/download/token`;\r\n\r\n return this.authHttp.get(url).map(this.extractData);\r\n }\r\n\r\n private extractData(res: Response) {\r\n let body = res.json();\r\n return body || {};\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/shared/services/remote-desktop.service.ts\n **/","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\n\r\n@Component({\r\n selector: 'conversion-pass-tasks-dialog',\r\n template: require('./conversion-pass-tasks-dialog.html'),\r\n providers: []\r\n})\r\nexport class ConversionPassTasksDialog {\r\n parentTasks: any[];\r\n\r\n constructor(\r\n public dialogRef: MdDialogRef) { }\r\n\r\n deleteTasks() {\r\n var ids = this.parentTasks.filter((task:any, index: number) => {\r\n if (task.selected) {\r\n return task;\r\n }\r\n }).map((t:any) => t.id);\r\n \r\n this.close(ids);\r\n }\r\n\r\n close(ids?:any[]) {\r\n this.dialogRef.close(ids);\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/conversions/_dialogs/conversion-pass-tasks-dialog.ts\n **/","module.exports = \" Delete Tasks\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n {{ task.name }}\\r\\n
  • \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/conversions/_dialogs/conversion-pass-tasks-dialog.html\n ** module id = 570\n ** module chunks = 0\n **/","import { Component } from '@angular/core';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\nimport { ConversionsService } from '../_services/conversions.service';\r\n\r\n@Component({\r\n selector: 'incident-dialog',\r\n template: require('./incident-dialog.html'),\r\n providers: [ConversionsService]\r\n})\r\nexport class IncidentDialog {\r\n createAnother:boolean = false;\r\n conversionPassId: string = '';\r\n\r\n incident: any = {\r\n description: ''\r\n }\r\n\r\n constructor(public dialogRef: MdDialogRef, private conversionsService:ConversionsService) {}\r\n\r\n createIncident() {\r\n this.conversionsService.logConversionPassIncident(this.conversionPassId, this.incident).subscribe((res:any) => {\r\n this.close();\r\n });\r\n }\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/conversions/_dialogs/incident-dialog.ts\n **/","module.exports = \"\\r\\n Log Incident\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/conversions/_dialogs/incident-dialog.html\n ** module id = 572\n ** module chunks = 0\n **/","import { Component, OnInit } from '@angular/core';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\nimport { ConversionsService } from '../_services/conversions.service';\r\n\r\n@Component({\r\n selector: 'time-to-live-dialog',\r\n template: require('./time-to-live-dialog.html'),\r\n styles: [`\r\n .field-spacer {\r\n margin:16px 0\r\n }\r\n\r\n .field-input {\r\n height:38px;\r\n }\r\n\r\n .field-input-fill-remaining-space {\r\n width: 100%;\r\n height: 38px;\r\n border: 1px solid #9E9E9E;\r\n }\r\n \r\n `],\r\n providers: [ConversionsService]\r\n})\r\nexport class TimeToLiveDialog implements OnInit {\r\n conversionPassId: string = '';\r\n\r\n constructor(public dialogRef: MdDialogRef, private conversionsService: ConversionsService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.getConversionPassTTL();\r\n }\r\n\r\n ttl: any = {\r\n shutdownOn: null,\r\n deleteOn: null\r\n }\r\n\r\n getConversionPassTTL() {\r\n this.conversionsService.getConversionPassTTL(this.conversionPassId).subscribe((ttl: any) => {\r\n // this.ttl = ttl;\r\n this.ttl.shutdownOn = ttl.shutdownOn.substr(0, 16);\r\n this.ttl.deleteOn = ttl.deleteOn.substr(0, 16);\r\n });\r\n } \r\n\r\n updateConversionPassTTL() {\r\n this.conversionsService.updateConversionPassTTL(this.conversionPassId, this.ttl).subscribe((ttl: any) => {\r\n this.ttl = ttl;\r\n\r\n this.close();\r\n }); \r\n }\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/conversions/_dialogs/time-to-live-dialog.ts\n **/","module.exports = \"\\r\\n Time To Live\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
Shutdown on
\\r\\n \\r\\n
\\r\\n
\\r\\n
Delete on
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/conversions/_dialogs/time-to-live-dialog.html\n ** module id = 574\n ** module chunks = 0\n **/","import { Component, OnInit } from '@angular/core';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\nimport { ConversionsService } from '../_services/conversions.service';\r\n\r\n@Component({\r\n selector: 'conversion-status-dialog',\r\n template: require('./conversion-status-dialog.html'),\r\n styles: [`\r\n .field-spacer {\r\n margin:16px 0\r\n }\r\n\r\n .field-input {\r\n height:38px;\r\n }\r\n\r\n .field-input-fill-remaining-space {\r\n width: 100%;\r\n height: 38px;\r\n border: 1px solid #9E9E9E;\r\n }\r\n `],\r\n providers: [ConversionsService]\r\n})\r\nexport class ConversionStatusDialog implements OnInit {\r\n conversionPassId: string = '';\r\n conversionPassStatus: number;\r\n changed: boolean = false;\r\n\r\n constructor(\r\n public dialogRef: MdDialogRef, \r\n private conversionsService: ConversionsService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n updateConversionPassStatus() {\r\n this.conversionsService.updateConversionPassStatus(this.conversionPassId, this.conversionPassStatus).subscribe((res:any) => {\r\n this.changed = true;\r\n this.close();\r\n });\r\n }\r\n \r\n close() {\r\n this.dialogRef.close(this.changed);\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/conversions/_dialogs/conversion-status-dialog.ts\n **/","module.exports = \"\\r\\n Status\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/conversions/_dialogs/conversion-status-dialog.html\n ** module id = 576\n ** module chunks = 0\n **/","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormGroup, FormControl, FormGroupDirective, NgForm, Validators } from '@angular/forms';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\nimport { ConversionsService } from '../_services/conversions.service';\r\n\r\n@Component({\r\n selector: 'add-ip-address-to-nsg-dialog',\r\n template: require('./add-ip-address-to-nsg-dialog.html'),\r\n providers: [ ConversionsService ]\r\n})\r\nexport class AddIPAddressToNSGDialog implements OnInit {\r\n conversionPassId: string;\r\n ipAddress: string;\r\n\r\n constructor(public dialogRef: MdDialogRef, \r\n private conversionsService: ConversionsService) {\r\n \r\n }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n\r\n onSubmit(form: NgForm) {\r\n let ipAddressCtrl = form.controls['ipAddress'];\r\n \r\n this.conversionsService.addIPAddressToNSG(this.conversionPassId, this.ipAddress).subscribe((res:any) => {\r\n this.close();\r\n }, err => {\r\n ipAddressCtrl.setErrors({'invalidFormat': true }); \r\n });\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/conversions/_dialogs/add-ip-address-to-nsg-dialog.ts\n **/","module.exports = \"\\r\\n Add IP to NSG\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/conversions/_dialogs/add-ip-address-to-nsg-dialog.html\n ** module id = 578\n ** module chunks = 0\n **/","module.exports = \"\\r\\n security\\r\\n Conversion Pass {{ conversionPass?.passNumber}} ({{ conversionPass?.siteName }} - {{ conversionPass?.siteId}})\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Cloud Converter {{ getVMStatusText() }}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n clear Errors ({{ errorsCount }})\\r\\n warning Warnings ({{ warningsCount }}) \\r\\n event_note Messages ({{ informationCount }})\\r\\n person Incidents ({{ incidentsCount }})\\r\\n
\\r\\n
\\r\\n assignment Load all ({{ getLoadAllCount() }})\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n 0 && !logsLoader\\\" id=\\\"logs\\\" class=\\\"fixed_headers\\\" style=\\\"width:100%; font-size:.85em\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
TimeTypeDetails
{{ log?.eventTimestamp | date: 'dd-MMM-y, H:mm:ss (Z)' }}{{ getTypeIcon(log?.type) }}
{{ log?.taskId }}: {{ log?.description }}
\\r\\n
\\r\\n Load More\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/conversions/pass/conversion-pass.component.html\n ** module id = 579\n ** module chunks = 0\n **/","module.exports = \".fixed_headers {\\r\\n width: 750px;\\r\\n table-layout: fixed;\\r\\n border-collapse: collapse;\\r\\n}\\r\\n.fixed_headers th {\\r\\n text-decoration: underline;\\r\\n}\\r\\n.fixed_headers th,\\r\\n.fixed_headers td {\\r\\n padding: 5px;\\r\\n text-align: left;\\r\\n}\\r\\n.fixed_headers td:nth-child(1),\\r\\n.fixed_headers th:nth-child(1) {\\r\\n min-width: 200px;\\r\\n}\\r\\n.fixed_headers td:nth-child(2),\\r\\n.fixed_headers th:nth-child(2) {\\r\\n min-width: 30px;\\r\\n}\\r\\n.fixed_headers td:nth-child(3),\\r\\n.fixed_headers th:nth-child(3) {\\r\\n width: 100%;\\r\\n}\\r\\n/*.fixed_headers thead {\\r\\n background-color: #333;\\r\\n color: #FDFDFD;\\r\\n}*/\\r\\n.fixed_headers thead tr {\\r\\n display: block;\\r\\n position: relative;\\r\\n}\\r\\n.fixed_headers tbody {\\r\\n display: block;\\r\\n overflow: auto;\\r\\n width: 100%;\\r\\n height: 450px;\\r\\n}\\r\\n/*.fixed_headers tbody tr:nth-child(even) {\\r\\n background-color: #DDD;\\r\\n}*/\\r\\n.old_ie_wrapper {\\r\\n height: 300px;\\r\\n width: 750px;\\r\\n overflow-x: hidden;\\r\\n overflow-y: auto;\\r\\n}\\r\\n.old_ie_wrapper tbody {\\r\\n height: auto;\\r\\n}\\r\\n\\r\\n.subscribed-section {\\r\\n animation: subscribe_pulse 5s infinite;\\r\\n color:#fff;\\r\\n}\\r\\n\\r\\n@keyframes subscribe_pulse {\\r\\n 0% {\\r\\n background-color: rgb(18, 195, 244);\\r\\n }\\r\\n 100% {\\r\\n background-color: rgb(33, 150, 243);\\r\\n }\\r\\n}\\r\\n\\r\\n.warning {\\r\\n color: rgb(255,140,0);\\r\\n}\\r\\n\\r\\n.error {\\r\\n color: rgb(236,0,140);\\r\\n}\\r\\n\\r\\n.logs-header {\\r\\n background-color:whitesmoke;\\r\\n color: #000;\\r\\n height: 50px;\\r\\n border: 1px solid #e0e0e0;\\r\\n display:flex;\\r\\n justify-content: space-between;\\r\\n align-items:center;\\r\\n}\\r\\n\\r\\n@media only screen and (max-width: 550px) {\\r\\n .logs-header {\\r\\n height: 120px;\\r\\n }\\r\\n}\\r\\n\\r\\n.schedule-header {\\r\\n background-color:whitesmoke;\\r\\n color: #000;\\r\\n height: 50px;\\r\\n border: 1px solid #e0e0e0;\\r\\n}\\r\\n\\r\\n.log-filter-button {\\r\\n cursor:pointer;\\r\\n padding:4px;\\r\\n}\\r\\n\\r\\n.log-filter-button:hover {\\r\\n background:#d8d8d8;\\r\\n padding:4px;\\r\\n}\\r\\n\\r\\n.active-filter {\\r\\n background: #d8d8d8;\\r\\n /*border: 1px solid #e0e0e0;*/\\r\\n}\\r\\n\\r\\ntable {\\r\\n border-collapse: collapse;\\r\\n background-color:#fff;\\r\\n}\\r\\n\\r\\ntbody, th, td {\\r\\n border-bottom: 1px solid #e0e0e0;\\r\\n}\\r\\n\\r\\n.vm-status {\\r\\n padding: 2px;\\r\\n}\\r\\n\\r\\n.vm-undefined {\\r\\n\\r\\n}\\r\\n\\r\\n.vm-online {\\r\\n background-color:green;\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n.vm-shutdown {\\r\\n background-color: orange;\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n.vm-deleted {\\r\\n background-color: red;\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n.active-tab { \\r\\n color: #0d6b9e;\\r\\n background: #f5f5f5;\\r\\n /* border-radius: 2px 2px 0px 0px; */\\r\\n border: 1px solid #e0e0e0;\\r\\n border-bottom: none; \\r\\n}\\r\\n\\r\\na:hover {\\r\\n color:#0d6b9e;\\r\\n}\\r\\n\\r\\n.conversion-status-bar {\\r\\n color: #fff;\\r\\n padding-left:14px;\\r\\n height:20px;\\r\\n border-top: 1px solid #e0e0e0;\\r\\n}\\r\\n\\r\\n.tab-bar {\\r\\n /* background: whitesmoke;\\r\\n border-top: 1px solid #e0e0e0; */\\r\\n display:flex;\\r\\n justify-content: space-between;\\r\\n}\\r\\n\\r\\n.InProgress {\\r\\n background:rgb(33, 150, 243);\\r\\n}\\r\\n\\r\\n.Stopped {\\r\\n background:red;\\r\\n}\\r\\n\\r\\n.Completed {\\r\\n background:green;\\r\\n}\"\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/conversions/pass/conversion-pass.component.css\n ** module id = 580\n ** module chunks = 0\n **/","import { Component, OnInit, OnDestroy, NgZone } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\n\r\nimport { ConversionStatus } from './_interfaces/conversions.interface';\r\nimport { ConversionsService } from './_services/conversions.service';\r\nimport { ConversionHubService } from './_services/conversion-hub.service';\r\nimport { AuthService, LoggedInUser, Permission, Role } from '../../auth/auth.service';\r\nimport { SignalRConnectionStatus } from '../../shared/interfaces';\r\nimport { TimeSpanPipe } from '../../shared/pipes/date.pipe';\r\nimport { DocumentState } from '../../shared/interfaces'\r\nimport { DOMEvents } from '../../dom-events';\r\nimport { DateService } from '../../shared/services/date.service';\r\nimport { isUndefined } from 'util';\r\nimport { SitesService } from '../core/sites.service';\r\nimport { THIS_EXPR } from '@angular/compiler/src/output/output_ast';\r\n\r\n@Component({\r\n selector: 'conversions',\r\n template: require('./conversions.component.html'),\r\n providers: [ConversionsService, DateService, SitesService],\r\n styles: [require('./conversions.component.css'), require('./conversions-responsive-table.css')]\r\n})\r\nexport class ConversionsComponent implements OnInit {\r\n status: any = ConversionStatus;\r\n docState: any = DocumentState;\r\n conversionPasses: any[] = [];\r\n conversionPassesLoader: boolean = false;\r\n subscribed: boolean;\r\n connectionId: any;\r\n statusFilter: string;\r\n user: LoggedInUser;\r\n currentDate: Date;\r\n timeSpan: TimeSpanPipe = new TimeSpanPipe();\r\n groupName: string = 'conversions';\r\n zone: NgZone;\r\n stoppedCount: number = 0;\r\n inProgressCount: number = 0;\r\n completedCount: number = 0;\r\n archiveCount: number = 0;\r\n scheduleVisible: boolean = false;\r\n searchText: string = '';\r\n pageIndex: number = 0;\r\n tokens: string[] = [\"\"]; // include empty to indicate page 1\r\n hasMoreResults: boolean = false;\r\n pageSize: number = 25;\r\n\r\n Role:any = Role;\r\n Permission:any = Permission;\r\n isAdmin: boolean;\r\n isEpicorEmployee: boolean;\r\n sortColumn:string=\"\";\r\n sortAsc?:boolean=null;\r\n\r\n site:any = null;\r\n siteFilter:any;\r\n isFirstLoad:boolean;\r\n \r\n constructor(\r\n private sitesService: SitesService,\r\n private domEvents: DOMEvents,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private conversionsService: ConversionsService,\r\n private conversionHubService: ConversionHubService,\r\n private dateService: DateService,\r\n private auth: AuthService) {\r\n\r\n // This is required so data is updated straight away in viewConversionPass\r\n this.zone = new NgZone({ enableLongStackTrace: false });\r\n this.route.params.subscribe(params => {\r\n this.site = params['siteId'];\r\n });\r\n\r\n }\r\n\r\n ngOnInit() {\r\n \r\n this.currentDate = new Date();\r\n this.listenForConnection();\r\n\r\n if(!isUndefined(this.site)){ \r\n this.statusFilter = ConversionStatus[ConversionStatus.InProgress];\r\n sessionStorage.setItem('isFirstLoad', 'true');\r\n this.isFirstLoad=true;\r\n this.siteFilter=true;\r\n sessionStorage.setItem('siteFilter', 'true');\r\n this.searchText=this.site;\r\n this.filterSiteConversions(); \r\n this.getConversionPassesCount([this.searchText]);\r\n \r\n }\r\n else\r\n {\r\n this.setSelectedTab();\r\n this.searchText='';\r\n this.siteFilter=false;\r\n sessionStorage.setItem('siteFilter', 'false');\r\n this.unfilterSiteConversions();\r\n sessionStorage.setItem('searchText', this.searchText);\r\n this.getConversionPassesCount();\r\n }\r\n \r\n this.user = this.auth.getUser();\r\n\r\n this.conversionHubService.connectionState.subscribe(\r\n connectionState => {\r\n if (connectionState == SignalRConnectionStatus.Connected) {\r\n console.log('Connected!');\r\n } else {\r\n console.log(connectionState.toString());\r\n }\r\n },\r\n error => {\r\n console.log(error);\r\n }\r\n );\r\n\r\n this.conversionHubService.addConversionPassEntry.subscribe(\r\n (conversionPass: any) => {\r\n this.zone.run(() => {\r\n if(this.isAdmin || this.isEpicorEmployee || this.user.sites.includes(conversionPass.siteId)){\r\n this.currentDate = new Date();\r\n this.conversionPasses.push(conversionPass);\r\n }\r\n });\r\n }\r\n );\r\n\r\n this.conversionHubService.updateConversionPassEntry.subscribe(\r\n (conversionPass: any) => {\r\n this.zone.run(() => {\r\n this.currentDate = new Date();\r\n var updateIndex = this.conversionPasses.findIndex(item => item.passId === conversionPass.passId);\r\n\r\n if (updateIndex != -1) {\r\n this.conversionPasses[updateIndex].status = conversionPass.status;\r\n }\r\n });\r\n }\r\n );\r\n\r\n this.isAdmin = this.auth.hasRole(Role.Administrator);\r\n this.isEpicorEmployee = this.auth.hasRole(Role.EpicorEmployee);\r\n\r\n this.domEvents.triggerOnDocument('appready');\r\n \r\n }\r\n\r\n /** Get a list of conversion passes */\r\n getConversionPasses(status?: any, token: string = \"\", sortColumn:string=null, sortAsc:boolean=null, pageSize: number = 25, docState?: any, searchText = \"\") {\r\n this.conversionPasses = [];\r\n this.conversionPassesLoader = true;\r\n \r\n if (status == 'Completed' || docState == 'Archived') {\r\n\r\n if(!this.siteFilter){\r\n this.conversionPassesLoader = false;\r\n return;\r\n }\r\n }\r\n\r\n if(searchText==null)\r\n searchText='';\r\n\r\n this.conversionsService.getConversionPassSummaries(searchText, status, null, token, sortColumn, sortAsc, pageSize, docState).subscribe((pagedResult: any) => { \r\n this.conversionPasses = pagedResult.result;\r\n this.hasMoreResults = pagedResult.hasMoreResults;\r\n\r\n if (pagedResult.requestContinuation != null) {\r\n var token = JSON.parse(pagedResult.requestContinuation).token;\r\n if (typeof this.tokens[this.pageIndex + 1] === 'undefined') {\r\n this.tokens.push(token);\r\n }\r\n }\r\n\r\n this.conversionPassesLoader = false;\r\n this.setSubscription(true);\r\n }, err => this.conversionPassesLoader = false);\r\n this.getConversionPassesCount([searchText]);\r\n }\r\n\r\n getConversionPassesCompletedOrArchived(status?: any, token: string = \"\", sortColumn:string=null, sortAsc:boolean=null, pageSize: number = 25, docState?: any, searchText = \"\") {\r\n this.conversionPasses = [];\r\n this.conversionPassesLoader = true;\r\n\r\n this.conversionsService.getConversionPassSummaries(searchText, status, null, token, sortColumn, sortAsc, pageSize, docState).subscribe((pagedResult: any) => { \r\n this.conversionPasses = pagedResult.result;\r\n this.hasMoreResults = pagedResult.hasMoreResults;\r\n\r\n if (pagedResult.requestContinuation != null) {\r\n var token = JSON.parse(pagedResult.requestContinuation).token;\r\n if (typeof this.tokens[this.pageIndex + 1] === 'undefined') {\r\n this.tokens.push(token);\r\n }\r\n }\r\n\r\n this.conversionPassesLoader = false;\r\n this.setSubscription(true);\r\n }, err => this.conversionPassesLoader = false);\r\n\r\n this.getConversionPassesCount([searchText]);\r\n }\r\n \r\n setSubscription(val: boolean) {\r\n try {\r\n this.subscribed = val;\r\n let subscription = {\r\n subscribe: val,\r\n groupName: this.groupName\r\n }\r\n this.updateSubscription(subscription);\r\n } catch (err) {\r\n console.error(\"Unable to subscribe to conversion hub\");\r\n this.subscribed = false;\r\n }\r\n }\r\n\r\n listenForConnection() {\r\n this.conversionHubService.setConnectionId.subscribe(\r\n id => {\r\n console.log(id);\r\n this.connectionId = id;\r\n },\r\n err => console.log(err)\r\n );\r\n }\r\n\r\n updateSubscription(subscription: any) {\r\n if (subscription.subscribe === true) {\r\n this.conversionHubService.subscribeToFeed(subscription.groupName);\r\n } else {\r\n this.conversionHubService.unsubscribeFromFeed(subscription.groupName);\r\n }\r\n }\r\n\r\n /** Get a count of conversion passes with specific status */\r\n getConversionPassesCount(siteId?:any[]) {\r\n this.conversionsService.getConversionPassSummariesCount(ConversionStatus[ConversionStatus.Stopped],null,null, siteId).subscribe((res:any) => {\r\n this.stoppedCount = res.count;\r\n });\r\n \r\n this.conversionsService.getConversionPassSummariesCount(ConversionStatus[ConversionStatus.InProgress],null,null, siteId).subscribe((res:any) => {\r\n this.inProgressCount = res.count;\r\n });\r\n \r\n this.conversionsService.getConversionPassSummariesCount(ConversionStatus[ConversionStatus.Completed],null,null, siteId).subscribe((res:any) => {\r\n this.completedCount = res.count;\r\n });\r\n\r\n this.conversionsService.getConversionPassSummariesCount(null, null, DocumentState[DocumentState.Archived], siteId ).subscribe((res:any) => {\r\n this.archiveCount = res.count;\r\n });\r\n }\r\n\r\n /** Filter conversion passes */\r\n filterConversionPasses(status: number, docState: number) {\r\n this.tokens = [\"\"];\r\n this.pageIndex = 0;\r\n this.sortColumn =\"\";\r\n this.sortAsc=null;\r\n this.isFirstLoad=false;\r\n\r\n \r\n if(!isUndefined(this.site)){\r\n sessionStorage.setItem('isFirstLoad', 'false');\r\n this.siteFilter=sessionStorage.getItem('siteFilter');\r\n\r\n if(this.siteFilter==='true' && this.isFirstLoad){\r\n this.searchText=this.site;\r\n }\r\n else\r\n {\r\n this.searchText= sessionStorage.getItem('searchText');\r\n }\r\n }\r\n else\r\n {\r\n sessionStorage.removeItem('searchText');\r\n }\r\n\r\n if (typeof status === \"number\") {\r\n if (this.statusFilter === ConversionStatus[status]) {\r\n this.statusFilter = null;\r\n this.getConversionPasses(this.statusFilter, null, this.sortColumn, this.sortAsc, this.pageSize, null, this.searchText);\r\n } \r\n else {\r\n this.statusFilter = ConversionStatus[status];\r\n this.getConversionPasses(this.statusFilter, null, this.sortColumn, this.sortAsc, this.pageSize, null, this.searchText);\r\n this.scheduleVisible = false;\r\n } \r\n }\r\n\r\n if (typeof docState === \"number\") {\r\n if (this.statusFilter === DocumentState[docState]) {\r\n this.statusFilter = null;\r\n this.getConversionPasses(this.statusFilter, null, this.sortColumn, this.sortAsc,this.pageSize, null, this.searchText);\r\n } \r\n else {\r\n this.statusFilter = DocumentState[docState]; \r\n this.getConversionPasses(null, null, this.sortColumn, this.sortAsc,this.pageSize, this.statusFilter, this.searchText);\r\n this.scheduleVisible = false;\r\n }\r\n }\r\n }\r\n\r\n unfilterSiteConversions(){\r\n if( this.statusFilter===DocumentState[DocumentState.Archived])\r\n this.getConversionPasses(null, null, null, null, null, this.statusFilter,'');\r\n else\r\n this.getConversionPasses(this.statusFilter, null, null, null, null, null,'');\r\n }\r\n\r\n filterSiteConversions(){\r\n this.getConversionPasses(this.statusFilter, null, this.sortColumn, this.sortAsc, this.pageSize, null, this.site);\r\n }\r\n \r\n\r\n openSchedule() {\r\n if(this.scheduleVisible) {\r\n this.scheduleVisible = false;\r\n this.statusFilter = null;\r\n } else {\r\n this.scheduleVisible = true;\r\n this.statusFilter = null;\r\n }\r\n }\r\n\r\n previousPassesPage() {\r\n this.sortColumn = sessionStorage.getItem('sortColumn');\r\n this.sortAsc = sessionStorage.getItem('sortAsc')== 'true' ? true:false;\r\n let searchText = sessionStorage.getItem('searchText')\r\n\r\n this.pageIndex -= 1;\r\n let token = this.tokens[this.pageIndex];\r\n if(typeof token !== 'undefined') {\r\n if (this.statusFilter === DocumentState[DocumentState.Archived]) { \r\n this.getConversionPasses(null, token, this.sortColumn, this.sortAsc,this.pageSize, this.statusFilter, searchText);\r\n } else {\r\n this.getConversionPasses(this.statusFilter, token, this.sortColumn, this.sortAsc,this.pageSize,null, searchText); \r\n }\r\n } else {\r\n this.pageIndex += 1;\r\n }\r\n }\r\n\r\n nextPassesPage() {\r\n this.sortColumn = sessionStorage.getItem('sortColumn');\r\n this.sortAsc = sessionStorage.getItem('sortAsc')== 'true' ? true:false;\r\n let searchText = sessionStorage.getItem('searchText')\r\n this.pageIndex += 1;\r\n let token = this.tokens[this.pageIndex];\r\n if(typeof token !== 'undefined') {\r\n if (this.statusFilter === DocumentState[DocumentState.Archived]) {\r\n this.getConversionPasses(null, token, this.sortColumn, this.sortAsc,this.pageSize, this.statusFilter, searchText); \r\n } else {\r\n this.getConversionPasses(this.statusFilter, token, this.sortColumn, this.sortAsc,this.pageSize,null, searchText);\r\n }\r\n } else {\r\n this.pageIndex -= 1;\r\n }\r\n }\r\n\r\n nextCompletedPassesPage(data: string[]) {\r\n this.tokens = data;\r\n this.sortColumn = sessionStorage.getItem('sortColumn');\r\n this.sortAsc = sessionStorage.getItem('sortAsc')== 'true' ? true:false;\r\n let searchText = sessionStorage.getItem('searchText')\r\n this.pageIndex += 1;\r\n let token = this.tokens[this.pageIndex];\r\n if(typeof token !== 'undefined') {\r\n if (this.statusFilter === DocumentState[DocumentState.Archived]) {\r\n this.getConversionPassesCompletedOrArchived(null, token, this.sortColumn, this.sortAsc,this.pageSize, this.statusFilter, searchText); \r\n } else {\r\n this.getConversionPassesCompletedOrArchived(this.statusFilter, token, this.sortColumn, this.sortAsc,this.pageSize,null, searchText);\r\n }\r\n } else {\r\n this.pageIndex -= 1;\r\n }\r\n }\r\n\r\n previousCompletedPassesPage(data: string[]) {\r\n this.tokens = data;\r\n this.sortColumn = sessionStorage.getItem('sortColumn');\r\n this.sortAsc = sessionStorage.getItem('sortAsc')== 'true' ? true:false;\r\n let searchText = sessionStorage.getItem('searchText')\r\n\r\n this.pageIndex -= 1;\r\n let token = this.tokens[this.pageIndex];\r\n if(typeof token !== 'undefined') {\r\n if (this.statusFilter === DocumentState[DocumentState.Archived]) { \r\n this.getConversionPassesCompletedOrArchived(null, token, this.sortColumn, this.sortAsc,this.pageSize, this.statusFilter, searchText);\r\n } else {\r\n this.getConversionPassesCompletedOrArchived(this.statusFilter, token, this.sortColumn, this.sortAsc,this.pageSize,null, searchText); \r\n }\r\n } else {\r\n this.pageIndex += 1;\r\n }\r\n }\r\n\r\n sorting() {\r\n this.tokens = [\"\"];\r\n this.pageIndex = 0;\r\n\r\n this.sortColumn = sessionStorage.getItem('sortColumn');\r\n this.sortAsc = sessionStorage.getItem('sortAsc')== 'true' ? true:false;\r\n let searchText = sessionStorage.getItem('searchText')\r\n\r\n if (this.statusFilter === DocumentState[DocumentState.Archived]) {\r\n this.getConversionPasses(null, null, this.sortColumn, this.sortAsc,this.pageSize, this.statusFilter, searchText); \r\n } else {\r\n this.getConversionPasses(this.statusFilter, null, this.sortColumn, this.sortAsc, this.pageSize, null, searchText);\r\n }\r\n }\r\n\r\n refreshPasses() {\r\n this.tokens = [\"\"];\r\n this.pageIndex = 0;\r\n\r\n let searchText= sessionStorage.getItem('searchText');\r\n if (this.statusFilter === DocumentState[DocumentState.Archived]) {\r\n this.getConversionPassesCompletedOrArchived(null, null, this.sortColumn, this.sortAsc,this.pageSize, this.statusFilter, searchText); \r\n } else {\r\n this.getConversionPassesCompletedOrArchived(this.statusFilter, null, this.sortColumn, this.sortAsc, this.pageSize,null, searchText);\r\n }\r\n }\r\n\r\n onRefresh(data:any) {\r\n if (data.pageSize) {\r\n this.pageSize = data.pageSize;\r\n }\r\n this.refreshPasses();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.setSubscription(false);\r\n }\r\n\r\n onUpdateConversionsCount(data:any){\r\n this.getConversionPassesCount(data);\r\n }\r\n\r\n setSelectedTab(){\r\n var selectedStatus=sessionStorage.getItem('currentStatus');\r\n var selectedDocState=sessionStorage.getItem('currentDocState');\r\n var selectedSchedule=sessionStorage.getItem('currentSchedule');\r\n\r\n if(selectedSchedule==='true'){\r\n this.scheduleVisible=true;\r\n }\r\n else{\r\n \r\n if(selectedStatus==null && selectedDocState==null){\r\n this.statusFilter = ConversionStatus[ConversionStatus.InProgress];\r\n }\r\n else{\r\n if(selectedStatus!=null){\r\n switch(selectedStatus){\r\n case 'InProgress':\r\n this.statusFilter=ConversionStatus[ConversionStatus.InProgress]; \r\n break;\r\n\r\n case 'Stopped':\r\n this.statusFilter=ConversionStatus[ConversionStatus.Stopped];\r\n break;\r\n\r\n case 'Completed':\r\n this.statusFilter=ConversionStatus[ConversionStatus.Completed];\r\n break;\r\n }\r\n\r\n }\r\n if(selectedDocState!=null && (selectedStatus==null || selectedDocState!='null')){\r\n this.statusFilter=DocumentState[DocumentState.Archived];\r\n }\r\n }\r\n }\r\n\r\n sessionStorage.removeItem('currentStatus');\r\n sessionStorage.removeItem('currentDocState');\r\n sessionStorage.removeItem('currentSchedule');\r\n \r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/conversions/conversions.component.ts\n **/","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'timespan'})\r\nexport class TimeSpanPipe implements PipeTransform {\r\n transform(start: Date, end: Date): string {\r\n try {\r\n let diffHours = (Math.abs(start.getTime() - end.getTime()) / MS_IN_HOUR);\r\n let duration = diffHours;\r\n\r\n if (duration > 24) {\r\n return `${Math.round(duration / 24)} day(s)`; // duration in days\r\n } else if(duration > 1) {\r\n return `${Math.round(duration)} hr(s)`; // duration in hours\r\n } else {\r\n let minutes = duration * 60;\r\n\r\n if (minutes < 1) {\r\n return `${Math.round(minutes * 60)} second(s)`; // duration in seconds\r\n }\r\n return `${Math.round(minutes)} min(s)`; // duration in minutes\r\n }\r\n\r\n } catch (err) {\r\n return '';\r\n }\r\n }\r\n}\r\n\r\nconst MS_IN_HOUR = 60 * 60 * 1000; // milliseconds in hour\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/shared/pipes/date.pipe.ts\n **/","import { Injectable } from '@angular/core';\r\nimport { TimeSpanPipe } from '../../shared/pipes/date.pipe';\r\n\r\n@Injectable()\r\nexport class DateService {\r\n private timeSpan: TimeSpanPipe = new TimeSpanPipe();\r\n\r\n getTimeSpan(start: Date, end: Date): string {\r\n if (start !== null && end !== null) {\r\n if (typeof start === \"string\") {\r\n start = new Date(start);\r\n }\r\n\r\n if (typeof end === \"string\") {\r\n end = new Date(end);\r\n }\r\n\r\n return `${this.timeSpan.transform(start, end)} ago`;\r\n\r\n }\r\n }\r\n getDate(start: Date): string {\r\n if (start !== null) {\r\n if (typeof start === \"string\") {\r\n start = new Date(start);\r\n }\r\n return `${start}`;\r\n }\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/shared/services/date.service.ts\n **/","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n // Allow for deprecating things in the process of starting up.\n if (isUndefined(global.process)) {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n if (process.noDeprecation === true) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/util/util.js\n ** module id = 584\n ** module chunks = 0\n **/","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/util/support/isBufferBrowser.js\n ** module id = 585\n ** module chunks = 0\n **/","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/util/~/inherits/inherits_browser.js\n ** module id = 586\n ** module chunks = 0\n **/","module.exports = \"Conversions \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/conversions/conversions.component.html\n ** module id = 587\n ** module chunks = 0\n **/","module.exports = \".subscribed {\\r\\n animation: subscribe_pulse 5s infinite;\\r\\n}\\r\\n\\r\\n@keyframes subscribe_pulse {\\r\\n 0% {\\r\\n color: rgb(18, 195, 244);\\r\\n }\\r\\n 100% {\\r\\n color: #000;\\r\\n }\\r\\n}\\r\\n\\r\\n.warning {\\r\\n color: rgb(255,140,0);\\r\\n}\\r\\n\\r\\n.error {\\r\\n color: rgb(236,0,140);\\r\\n}\\r\\n\\r\\n.info {\\r\\n color: #000;\\r\\n}\\r\\n\\r\\n.completed {\\r\\n color:#1DE9B6;\\r\\n}\\r\\n\\r\\n.active-filter {\\r\\n background: #69c09a;\\r\\n}\\r\\n\\r\\n.hightlight-warning {\\r\\n background: rgb(255,140,0);\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n.hightlight-error {\\r\\n background: rgb(236,0,140);\\r\\n color: #fff;\\r\\n}\"\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/conversions/conversions.component.css\n ** module id = 588\n ** module chunks = 0\n **/","module.exports = \"/*\\r\\n * Define the widths: play around with these \\r\\n * to get a best fit.\\r\\n */\\r\\n/*\\r\\n * Basic styles, good for a large display. Everything fits in\\r\\n * one row, no wrapping. All text based cells grow equally.\\r\\n */\\r\\n.table-row {\\r\\n display: flex;\\r\\n display: -webkit-flex;\\r\\n flex-direction: row;\\r\\n -webkit-flex-direction: row;\\r\\n flex-wrap: no-wrap;\\r\\n -webkit-flex-wrap: no-wrap;\\r\\n width: 100%;\\r\\n background-color:#fff;\\r\\n /*padding-left: 15px;\\r\\n padding-right: 15px;*/\\r\\n}\\r\\n\\r\\n.table-row:hover {\\r\\n background-color:whitesmoke;\\r\\n cursor:pointer;\\r\\n}\\r\\n\\r\\n.wrapper {\\r\\n display: flex;\\r\\n display: -webkit-flex;\\r\\n flex-direction: row;\\r\\n -webkit-flex-direction: row;\\r\\n}\\r\\n.column {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n flex-shrink: 0;\\r\\n -webkit-flex-shrink: 0;\\r\\n vertical-align: top;\\r\\n}\\r\\n/*.index {\\r\\n width: 25px;\\r\\n}*/\\r\\n.title {\\r\\n width: 50px;\\r\\n}\\r\\n.module {\\r\\n width: 110px;\\r\\n}\\r\\n.reporter {\\r\\n width: 85px;\\r\\n}\\r\\n.status {\\r\\n width: 95px;\\r\\n}\\r\\n.owner {\\r\\n width: 75px;\\r\\n}\\r\\n.severity {\\r\\n width: 80px;\\r\\n}\\r\\n.watch,\\r\\n.add-comment {\\r\\n width: 18px;\\r\\n}\\r\\n.date {\\r\\n width: 110px;\\r\\n}\\r\\n.index {\\r\\n text-align: center;\\r\\n}\\r\\n.title {\\r\\n /*font-weight: bold;*/\\r\\n /*color: gray;*/\\r\\n}\\r\\n.comment {\\r\\n width: 120px;\\r\\n}\\r\\n.title,\\r\\n.comment {\\r\\n flex-grow: 1;\\r\\n -webkit-flex-grow: 1;\\r\\n overflow: hidden;\\r\\n white-space: pre-wrap;\\r\\n text-overflow: ellipsis;\\r\\n padding-right: 4px;\\r\\n}\\r\\n.date {\\r\\n width: 110px;\\r\\n /*text-align:right;*/\\r\\n padding-right: 4px;\\r\\n}\\r\\n/* growable wrappers */\\r\\n.title-comment,\\r\\n.title-comment-module-reporter,\\r\\n.attributes {\\r\\n flex-grow: 1;\\r\\n -webkit-flex-grow: 1;\\r\\n}\\r\\n/*\\r\\n * Media queries: optimize for different screen widths.\\r\\n */\\r\\n/*\\r\\n * Media breaks.\\r\\n */\\r\\n@media all and (max-width: 1236px) {\\r\\n .title-comment {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n width: 220px;\\r\\n }\\r\\n .title-comment div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n .title-comment > div {\\r\\n width: 100%;\\r\\n }\\r\\n .module-reporter,\\r\\n .status-owner {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n }\\r\\n .module-reporter div,\\r\\n .status-owner div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n}\\r\\n@media all and (max-width: 956px) {\\r\\n .module-reporter {\\r\\n flex-direction: row;\\r\\n -webkit-flex-direction: row;\\r\\n }\\r\\n .title-comment-module-reporter {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n width: 220px;\\r\\n }\\r\\n .title-comment-module-reporter div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n .title-comment-module-reporter > div {\\r\\n width: 100%;\\r\\n }\\r\\n .status-owner-severity {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n }\\r\\n .status-owner-severity div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n .icons {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n }\\r\\n .icons div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n .dates {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n }\\r\\n .dates div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n}\\r\\n@media all and (max-width: 528px) {\\r\\n .table-row {\\r\\n padding-left: 4px;\\r\\n /*padding-right: 4px;*/\\r\\n }\\r\\n .attributes {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n width: 220px;\\r\\n }\\r\\n .attributes div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n .attributes > div {\\r\\n width: 100%;\\r\\n }\\r\\n .module-reporter,\\r\\n .status-owner {\\r\\n flex-direction: row;\\r\\n -webkit-flex-direction: row;\\r\\n }\\r\\n}\\r\\n/*\\r\\n * General good-look styles\\r\\n */\\r\\n.table-row {\\r\\n border-bottom: 1px solid #e0e0e0;\\r\\n border-collapse: collapse;\\r\\n padding-top: 2px;\\r\\n}\\r\\n.table-row.header {\\r\\n background-color: #fff;\\r\\n font-weight: bold;\\r\\n padding-top: 6px;\\r\\n padding-bottom: 6px;\\r\\n color:grey;\\r\\n font-size:12px;\\r\\n}\\r\\n\\r\\n.table-row {\\r\\n border-bottom: 1px solid #e0e0e0;\\r\\n border-collapse: collapse;\\r\\n padding-top: 2px;\\r\\n}\\r\\n\\r\\n.comment {\\r\\n font-style:unset;\\r\\n}\\r\\n.status.inprogress {\\r\\n color: #000;\\r\\n}\\r\\n.status.completed {\\r\\n color: #00E676;\\r\\n}\\r\\n.status.stopped {\\r\\n color: rgb(255, 23, 68);\\r\\n}\\r\\n\"\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/conversions/conversions-responsive-table.css\n ** module id = 589\n ** module chunks = 0\n **/","import { Component, OnInit, OnDestroy, NgZone } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { ConversionsService } from '../_services/conversions.service';\r\nimport { ConversionHubService } from '../_services/conversion-hub.service';\r\nimport { Conversion, ConversionPassLog, ConversionStatus } from '../../../shared/interfaces';\r\nimport { SignalRConnectionStatus, ConversionPassLogType } from '../../../shared/interfaces';\r\nimport { DateService } from '../../../shared/services/date.service';\r\n\r\nimport { Project, IGanttOptions, Zooming } from '../../../../gantt';\r\nimport { DOMEvents } from '../../../dom-events';\r\nimport { PagerService } from '../../../shared/services/pager.service';\r\nimport { SitesService } from '../../core/sites.service';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'conversion',\r\n template: require('./conversion.component.html'),\r\n providers: [ConversionsService, PagerService, SitesService, DateService, DatePipe]\r\n})\r\nexport class ConversionComponent implements OnInit, OnDestroy {\r\n currentDate: Date;\r\n siteId:number;\r\n conversionId: string;\r\n configurationContainer:any = {\r\n icon: 'expand_less',\r\n open: true \r\n };\r\n\r\n passesContainer:any = {\r\n icon: 'expand_less',\r\n open: true\r\n };\r\n\r\n site: any;\r\n conversion: any;\r\n conversionPasses: any[];\r\n status: any = ConversionStatus;\r\n editConfiguration:boolean = false;\r\n remainingPasses:any=\"\"; \r\n ttl: any = {\r\n shutdownOn: null,\r\n deleteOn: null\r\n } \r\n\r\n constructor(\r\n private pagerService: PagerService,\r\n private domEvents: DOMEvents,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private conversionHubService: ConversionHubService,\r\n private conversionsService: ConversionsService,\r\n private dateService: DateService,\r\n private sitesService: SitesService,\r\n private datePipe: DatePipe) {\r\n this.route.params.subscribe(params => {\r\n this.conversionId = params['conversionId'];\r\n this.siteId = +params['siteId'];\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.currentDate = new Date();\r\n this.getConversion(this.conversionId);\r\n this.getConversionPasses(this.conversionId);\r\n this.getSite(this.siteId);\r\n\r\n this.domEvents.triggerOnDocument('appready');\r\n\r\n this.conversionsService.getRemainingPasses(this.conversionId).subscribe((remainingPasses: any) => {\r\n if (typeof remainingPasses === \"number\") {\r\n this.remainingPasses = remainingPasses;\r\n }\r\n else\r\n {\r\n //typeof remainingPasses is not number if the remaining pass is 0\r\n //this is weird. Need to check why. So setting to the default value if the API doesnot return a number. \r\n this.remainingPasses = 0;\r\n }\r\n //this.loading = false;\r\n } //,err => this.loading = false\r\n );\r\n }\r\n\r\n getSite(siteId: number) {\r\n this.sitesService.getSite(siteId).subscribe(\r\n site => this.site = site\r\n );\r\n }\r\n\r\n getConversion(conversionId: string) {\r\n this.conversionsService.getConversion(conversionId).subscribe( (conversion:any) => {\r\n this.conversion = conversion\r\n\r\n if(this.conversion.configuration.deployment == 'DT SaaS')\r\n this.conversion.configuration.deployment = 'Epicor ERP Public Cloud'\r\n }\r\n );\r\n }\r\n\r\n editConversion() {\r\n if (this.conversionId) {\r\n this.router.navigateByUrl(`/conversions/${this.conversionId}`);\r\n }\r\n }\r\n\r\n getConversionPasses(conversionId: string) { \r\n this.conversionsService.getConversionPassSummaries(null, null, conversionId).subscribe(pagedResult => this.conversionPasses = pagedResult.result); \r\n }\r\n\r\n getConversionStatus(status: ConversionStatus): string {\r\n return ConversionStatus[status];\r\n }\r\n\r\n getConversionSubtitle(conversion: any): string{\r\n if(conversion) {\r\n return `${conversion.configuration.fromProduct} ${conversion.configuration.fromVersion} to ${conversion.configuration.toProduct} ${conversion.configuration.toVersion}`\r\n }\r\n return '';\r\n }\r\n\r\n viewConversionPass(conversionPass: any) {\r\n if (conversionPass) {\r\n this.router.navigateByUrl(`/conversions/${conversionPass.conversionId}/passes/${conversionPass.passNumber}`)\r\n }\r\n }\r\n \r\n\r\n deleteConversionPass(conversionPass: any) {\r\n if(confirm(\"Are you sure you want to delete conversion pass?\")) {\r\n //Update TTL\r\n this.ttl.shutdownOn=new Date().toISOString().substring(0,19);\r\n this.ttl.deleteOn=new Date().toISOString().substring(0,19);\r\n this.conversionsService.updateConversionPassTTL(conversionPass.passId, this.ttl).subscribe((ttl: any) => { \r\n \r\n this.conversionsService.deleteConversionPass(conversionPass.passId).subscribe((res: any) => {\r\n this.getConversionPasses(this.conversionId);\r\n }); \r\n });\r\n }\r\n }\r\n\r\n /** Gets the time span from modified date until now */\r\n getTimeSpanFromNow(modifiedDate: string): string {\r\n return this.dateService.getTimeSpan(this.currentDate, new Date(modifiedDate));\r\n }\r\n\r\n goLiveDateConversion(goLiveDate: string, plannedTimezone:string){\r\n if(goLiveDate!= null || goLiveDate!=\"\")\r\n {\r\n if(plannedTimezone!=null)\r\n {\r\n let convertedDate=new Date(`${goLiveDate}${plannedTimezone}`);\r\n return this.datePipe.transform(convertedDate, 'MMM dd, yyyy hh:mm aa');\r\n }\r\n else\r\n {\r\n let convertedDate=new Date(`${goLiveDate}`);\r\n return this.datePipe.transform(convertedDate, 'MMM dd, yyyy hh:mm aa');\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n \r\n }\r\n\r\n back()\r\n {\r\n window.history.back();\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/conversions/conversion/conversion.component.ts\n **/","module.exports = \"Conversion ({{ site.siteName }} - {{site.siteId}})\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n chevron_left\\r\\n \\r\\n Back\\r\\n\\r\\n\\r\\n
\\r\\n {{ getConversionSubtitle(conversion) }}\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
From Product: {{ conversion?.configuration?.fromProduct }}To Product: {{ conversion?.configuration?.toProduct }}Conversion Process: {{ conversion?.configuration?.conversionProcess }}
From Version: {{ conversion?.configuration?.fromVersion }}To Version: {{ conversion?.configuration?.toVersion }}Conversion Type: {{ conversion?.configuration?.conversionType }}
Status: {{ getConversionStatus(conversion?.status) }}Deployment: {{ conversion?.configuration?.deployment }}Go Live Date: {{conversion?.configuration?.goLivePass ? ((conversion?.configuration?.goLiveDate && conversion?.configuration?.goLivePass) ? goLiveDateConversion(conversion?.configuration?.goLiveDate, conversion?.configuration?.plannedTimezone) : (conversion?.configuration?.goLiveDate)) : '' }}
Enable Db Packer: {{ conversion?.configuration?.enableDbPacker === true ? 'Yes': 'No' }}Region: {{ conversion?.configuration?.region }}Passes Limit: {{ conversion?.configuration?.passesLimit }}
Enable Send To Support: {{ conversion?.configuration?.enableSendToSupport === true ? 'Yes': 'No' }}Remaining passes: {{remainingPasses}} Status:
Notification Emails: {{ conversion?.configuration?.notificationEmails }}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Pass NumberStart DateEnd DateStatusLast Modified
{{ conversionPass?.passNumber }}{{ conversionPass?.startDate | date: 'medium' }}{{ conversionPass?.endDate | date: 'medium' }}{{ status[conversionPass?.status] }}{{ getTimeSpanFromNow(conversionPass?.modifiedDate) }}
\\r\\n
\\r\\n
\\r\\n\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/conversions/conversion/conversion.component.html\n ** module id = 591\n ** module chunks = 0\n **/","import { Component, Input, OnInit, ElementRef, ViewChild } from '@angular/core';\r\nimport { IMyDpOptions, IMyDateModel } from 'mydatepicker';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\n\r\nimport { AuthService, LoggedInUser } from '../../../auth/auth.service';\r\nimport { ConversionsService } from '../_services/conversions.service';\r\nimport { isUndefined, isNullOrUndefined } from 'util';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'conversion-schedule',\r\n template: require('./conversion-schedule.component.html'),\r\n providers: [ConversionsService,DatePipe],\r\n styles: [require('./conversion-schedule.component.css')]\r\n})\r\nexport class ConversionScheduleComponent implements OnInit {\r\n showAll: boolean = false;\r\n loaded: boolean = false;\r\n user: LoggedInUser;\r\n schedule: any[] = [];\r\n scheduleLoader: boolean = false;\r\n myDatePickerOptions: IMyDpOptions = {\r\n dateFormat: 'yyyy-mm-dd',\r\n inline: false,\r\n markCurrentDay: true,\r\n openSelectorOnInputClick: true,\r\n height: '18px',\r\n width: '160px'\r\n };\r\n users: any[] = [];\r\n searchTimeout: any;\r\n searchText: string = '';\r\n pageIndex: number = 0;\r\n tokens: string[] = [\"\"]; // include empty to indicate page 1\r\n hasMoreResults: boolean = false;\r\n completedFilter: string = 'No';\r\n livePassFilter: string = '';\r\n plannedDateFilter: string = '';\r\n pageSize: number = 10;\r\n pageSizes: any[] = [\r\n { value: 5, viewValue: '5' },\r\n { value: 10, viewValue: '10' },\r\n { value: 25, viewValue: '25' },\r\n { value: 50, viewValue: '50' },\r\n { value: 100, viewValue: '100' }\r\n ];\r\n\r\n sortAsc:boolean= false;\r\n sortColName:string='';\r\n @ViewChild('columnDetails') columnDetails :ElementRef;\r\n\r\n site: any = null;\r\n siteFilter:any=false;\r\n isFirstLoad:any=false;\r\n\r\n constructor(\r\n private conversionsService: ConversionsService,\r\n private auth: AuthService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private datePipe: DatePipe) {\r\n }\r\n\r\n ngOnInit() {\r\n this.user = this.auth.getUser();\r\n this.route.params.subscribe(params => {\r\n this.site = params['siteId'];\r\n });\r\n\r\n if(!isUndefined(this.site)){ \r\n this.isFirstLoad=sessionStorage.getItem('isFirstLoad');\r\n if(this.isFirstLoad==='true'){\r\n this.siteFilter=true; \r\n this.searchText=this.site;\r\n this.loadSchedule();\r\n this.showAll = true;\r\n this.loaded = true;\r\n \r\n }\r\n else\r\n {\r\n this.siteFilter=false;\r\n this.searchText = sessionStorage.getItem('searchText');\r\n this.loadSchedule();\r\n this.showAll = true;\r\n this.loaded = true;\r\n }\r\n }\r\n \r\n else{\r\n if(sessionStorage.getItem('showAllFromFilter')==='true')\r\n { \r\n this.searchText='';\r\n this.loadSchedule();\r\n this.showAll = true;\r\n this.loaded = true;\r\n sessionStorage.setItem('currentSchedule', 'true');\r\n sessionStorage.removeItem('showAllFromFilter');\r\n\r\n }\r\n else\r\n {\r\n this.searchText='';\r\n }\r\n }\r\n\r\n }\r\n\r\n showAllSchedule() {\r\n if(!isUndefined(this.site)){\r\n sessionStorage.setItem('showAllFromFilter', 'true');\r\n sessionStorage.setItem('currentSchedule', 'true');\r\n this.router.navigateByUrl('conversions');\r\n this.siteFilter=false;\r\n }\r\n else{\r\n if (this.searchText != '' && (isUndefined(this.site))) {\r\n this.searchText = '';\r\n this.loadSchedule();\r\n } else {\r\n this.showAll = !this.showAll;\r\n }\r\n if (!this.loaded) {\r\n this.loadSchedule();\r\n this.showAll = true;\r\n this.loaded = true;\r\n }\r\n }\r\n }\r\n\r\n loadSchedule() {\r\n if (this.user.admin || this.user.epicorEmployee) { \r\n this.getSchedule(this.searchText, null, this.completedFilter, null, null, this.pageSize);\r\n }\r\n }\r\n\r\n getSchedule(searchText: string = \"\", token: string = \"\", completed: string = null, livePassFilter: string = null, plannedDateFilter: string = null, pageSize = 10,columnName:string=\"\",sortAsc:boolean=null) {\r\n this.schedule = [];\r\n this.scheduleLoader = true;\r\n\r\n let completedQueryParam = ((completed) ? ((completed.toUpperCase() == 'YES') ? true: false) : null);\r\n let livePassQueryParam = ((livePassFilter) ? ((livePassFilter.toUpperCase() == 'YES') ? true : false) : null);\r\n let plannedDateQueryParam = ((plannedDateFilter) ? ((plannedDateFilter.toUpperCase() == 'YES') ? true : false) : null);\r\n \r\n this.conversionsService.getConversionSchedule({searchText, token, completedQueryParam, livePassQueryParam, plannedDateQueryParam, pageSize, columnName, sortAsc}).subscribe((schedule: any) => {\r\n this.schedule = schedule.result;\r\n this.hasMoreResults = schedule.hasMoreResults;\r\n\r\n if (schedule.requestContinuation != null) {\r\n var token = JSON.parse(schedule.requestContinuation).token;\r\n if (typeof this.tokens[this.pageIndex + 1] === \"undefined\") {\r\n this.tokens.push(token);\r\n }\r\n }\r\n this.loaded = true;\r\n this.scheduleLoader = false;\r\n });\r\n }\r\n\r\n filterSchedule() {\r\n if (this.searchTimeout != undefined) clearTimeout(this.searchTimeout);\r\n this.searchTimeout = setTimeout(() => {\r\n this.pageIndex = 0;\r\n this.tokens = [\"\"];\r\n let token = this.tokens[this.pageIndex];\r\n\r\n this.getSchedule(this.searchText, token, this.completedFilter, this.livePassFilter, this.plannedDateFilter, this.pageSize, this.sortColName, this.sortAsc);\r\n this.showAll = true;\r\n }, 500);\r\n \r\n }\r\n\r\n previousSchedulePage() {\r\n this.pageIndex -= 1;\r\n let token = this.tokens[this.pageIndex];\r\n\r\n if(isUndefined(this.site)){\r\n this.searchText=null;\r\n }\r\n\r\n if (typeof token !== 'undefined') {\r\n this.getSchedule(this.searchText, token, this.completedFilter, this.livePassFilter, this.plannedDateFilter, this.pageSize, this.sortColName, this.sortAsc);\r\n } else {\r\n this.pageIndex += 1;\r\n }\r\n }\r\n\r\n nextSchedulePage() {\r\n this.pageIndex += 1;\r\n let token = this.tokens[this.pageIndex];\r\n\r\n if(isUndefined(this.site)){\r\n this.searchText=null;\r\n }\r\n\r\n if (typeof token !== 'undefined') {\r\n this.getSchedule(this.searchText, token, this.completedFilter, this.livePassFilter, this.plannedDateFilter, this.pageSize, this.sortColName, this.sortAsc);\r\n } else {\r\n this.pageIndex -= 1;\r\n }\r\n }\r\n\r\n refreshSchedule() {\r\n this.tokens = [\"\"];\r\n this.pageIndex = 0;\r\n if (this.site) {\r\n if(isNullOrUndefined(this.site)){\r\n this.searchText=null;\r\n }\r\n }\r\n \r\n this.getSchedule(this.searchText, null, this.completedFilter, this.livePassFilter, this.plannedDateFilter, this.pageSize,this.sortColName, this.sortAsc);\r\n }\r\n\r\n filterScheduleDetails() {\r\n if (this.searchTimeout != undefined) clearTimeout(this.searchTimeout);\r\n this.searchTimeout = setTimeout(() => {\r\n this.pageIndex = 0;\r\n this.tokens = [\"\"];\r\n let token = this.tokens[this.pageIndex];\r\n this.showAll = this.searchText == '' ? false : true;\r\n\r\n if(this.searchText!=''){\r\n this.siteFilter=true;\r\n }\r\n else{\r\n this.siteFilter=false;\r\n }\r\n\r\n sessionStorage.setItem('searchText', this.searchText);\r\n \r\n if (this.site) {\r\n if(isNullOrUndefined(this.site)){\r\n this.searchText=null;\r\n }\r\n }\r\n this.getSchedule(this.searchText, token, this.completedFilter, this.livePassFilter, this.plannedDateFilter, this.pageSize, this.sortColName, this.sortAsc);\r\n }, 500);\r\n\r\n }\r\n\r\n viewConversionConfiguration(conversion: any) {\r\n if (conversion) {\r\n this.router.navigateByUrl(`/sites/${conversion.siteId}/conversions/${conversion.id}`)\r\n }\r\n }\r\n\r\n onMenuRefresh() {\r\n this.refreshSchedule();\r\n }\r\n\r\n onPageSizeChange() {\r\n this.refreshSchedule();\r\n }\r\n\r\n getDSTVal(){\r\n var d = new Date();\r\n var year = d.getFullYear();\r\n var jan = new Date(year, 0, 1);\r\n var jul = new Date(year, 6, 1);\r\n var diff = Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset()) - d.getTimezoneOffset();\r\n return diff;\r\n //return d.getTimezoneOffset() < Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset())\r\n }\r\n\r\n getDSTTime(convertedDate : Date){\r\n var dstTime = this.getDSTVal();\r\n if(dstTime != 0){\r\n var hours = (dstTime / 60);\r\n var rhours = Math.floor(hours);\r\n var minutes = (hours - rhours) * 60;\r\n var rminutes = Math.round(minutes);\r\n if(convertedDate.getMinutes() - rminutes < 0){\r\n rminutes = 60 + (convertedDate.getMinutes() - rminutes);\r\n rhours = rhours + 1;\r\n }\r\n else if(rminutes > 0){\r\n rminutes = convertedDate.getMinutes() - rminutes;\r\n }\r\n return convertedDate.setHours(convertedDate.getHours() - rhours,convertedDate.getMinutes() - rminutes,convertedDate.getSeconds());\r\n }\r\n return convertedDate;\r\n }\r\n\r\n plannedDateConversion(plannedDate: string, plannedTimezone:string){\r\n if(plannedDate!= null || plannedDate!=\"\")\r\n {\r\n if(plannedTimezone!=null)\r\n {\r\n let convertedDate=new Date(`${plannedDate}${plannedTimezone}`);\r\n return this.datePipe.transform(this.getDSTTime(convertedDate), 'MMM dd, yyyy hh:mm aa');\r\n }\r\n else\r\n {\r\n let convertedDate=new Date(`${plannedDate}`);\r\n return this.datePipe.transform(convertedDate, 'MMM dd, yyyy hh:mm aa');\r\n }\r\n } \r\n }\r\n \r\n\r\n\r\n sort(selectedColumnName: string, event:any){\r\n this.sortAsc =!this.sortAsc;\r\n this.sortColName = selectedColumnName;\r\n this.searchTimeout = setTimeout(() => {\r\n this.pageIndex = 0;\r\n this.tokens = [\"\"];\r\n let token = this.tokens[this.pageIndex];\r\n \r\n let columnCount =0;\r\n for(columnCount; columnCount < this.columnDetails.nativeElement.children.length-1; columnCount ++){\r\n if (this.columnDetails.nativeElement.children[columnCount].children.length >0){\r\n this.columnDetails.nativeElement.children[columnCount].children[0].classList.remove('arrow-down');\r\n this.columnDetails.nativeElement.children[columnCount].children[0].classList.remove('arrow-up');\r\n }\r\n }\r\n \r\n if(isUndefined(this.site)){\r\n this.searchText=null;\r\n }\r\n this.getSchedule(this.searchText, token, this.completedFilter, this.livePassFilter,this.plannedDateFilter, this.pageSize, selectedColumnName, this.sortAsc);\r\n\r\n if (this.sortAsc ==true){\r\n event.target.childNodes[1].classList.remove('arrow-down');\r\n event.target.childNodes[1].classList.add('arrow-up');\r\n }\r\n else{\r\n event.target.childNodes[1].classList.remove('arrow-up');\r\n event.target.childNodes[1].classList.add('arrow-down');\r\n } \r\n \r\n }, 500);\r\n }\r\n\r\n unfilterSearchConversion(){\r\n if(isUndefined(this.site)){\r\n if(this.siteFilter!=false){\r\n this.searchText = '';\r\n sessionStorage.setItem('searchText', '');\r\n this.scheduleLoader = true;\r\n this.loadSchedule();\r\n this.showAll = true;\r\n this.loaded = true;\r\n this.siteFilter=false;\r\n }\r\n else{\r\n this.searchText = '';\r\n sessionStorage.setItem('searchText', '');\r\n }\r\n }\r\n else{\r\n sessionStorage.setItem('currentSchedule', 'true');\r\n this.router.navigateByUrl('conversions');\r\n this.siteFilter=false;\r\n \r\n }\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'conversion-schedule-remaining-passes',\r\n template: `
\r\n
{{remaining}}
`,\r\n providers: [ConversionsService]\r\n})\r\nexport class ConversionScheduleRemainingPassesComponent {\r\n @Input() conversionId: string;\r\n remaining: number = 0;\r\n loading: boolean = false;\r\n\r\n constructor(private conversionsService: ConversionsService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.loading = true;\r\n\r\n this.conversionsService.getRemainingPasses(this.conversionId).subscribe((remainingPasses: any) => {\r\n if (typeof remainingPasses === \"number\") {\r\n this.remaining = remainingPasses;\r\n }\r\n\r\n this.loading = false;\r\n }, err => this.loading = false);\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'conversion-schedule-next-pass-number',\r\n template: `
\r\n
{{passNumber}}
`,\r\n providers: [ConversionsService]\r\n})\r\nexport class ConversionScheduleNextPassNumberComponent {\r\n @Input() conversionId: string;\r\n passNumber: number = 0;\r\n loading: boolean = false;\r\n\r\n constructor(private conversionsService: ConversionsService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.loading = true;\r\n\r\n this.conversionsService.getNextPassNumberSchedule(this.conversionId).subscribe((nextPassNumber: any) => {\r\n if (typeof nextPassNumber === \"number\") {\r\n this.passNumber = nextPassNumber;\r\n }\r\n\r\n this.loading = false;\r\n }, err => this.loading = false);\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/conversions/schedule/conversion-schedule.component.ts\n **/","module.exports = \"\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n clear\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Completed: \\r\\n \\r\\n {{option}} \\r\\n \\r\\n Live Pass:\\r\\n \\r\\n {{option}}\\r\\n \\r\\n Planned Date: \\r\\n \\r\\n {{option}} \\r\\n \\r\\n \\r\\n Items per page:\\r\\n \\r\\n \\r\\n {{ pageSize.viewValue }}\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
Site Id Site Name Description Project Code Go Live Pass Next Pass NumberRemaining Passes Assigned User Planned Date
security{{ conversion?.siteId}}{{ conversion?.siteName }}{{ conversion?.fromProduct }} {{ conversion?.fromVersion}} to {{ conversion?.toProduct }} {{ conversion?.toVersion}}{{ conversion?.projectCode }}{{ conversion?.goLivePass ? 'Yes' : 'No' }}\\r\\n \\r\\n \\r\\n \\r\\n {{ conversion?.assignedUser }}{{ conversion.goLivePass ? ((conversion.plannedDate && conversion.goLivePass) ? plannedDateConversion(conversion?.plannedDate, conversion.plannedTimezone) : (conversion?.plannedDate)) : ''}}\\r\\n \\r\\n \\r\\n
\\r\\n\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/conversions/schedule/conversion-schedule.component.html\n ** module id = 593\n ** module chunks = 0\n **/","module.exports = \"/*\\r\\n * Define the widths: play around with these \\r\\n * to get a best fit.\\r\\n */\\r\\n/*\\r\\n * Basic styles, good for a large display. Everything fits in\\r\\n * one row, no wrapping. All text based cells grow equally.\\r\\n */\\r\\n.table-row {\\r\\n display: flex;\\r\\n display: -webkit-flex;\\r\\n flex-direction: row;\\r\\n -webkit-flex-direction: row;\\r\\n flex-wrap: no-wrap;\\r\\n -webkit-flex-wrap: no-wrap;\\r\\n width: 100%;\\r\\n background-color:#fff;\\r\\n /*padding-left: 15px;\\r\\n padding-right: 15px;*/\\r\\n}\\r\\n\\r\\n.table-row:hover {\\r\\n background-color:whitesmoke;\\r\\n /*cursor:pointer;*/\\r\\n}\\r\\n\\r\\n.wrapper {\\r\\n display: flex;\\r\\n display: -webkit-flex;\\r\\n flex-direction: row;\\r\\n -webkit-flex-direction: row;\\r\\n}\\r\\n.column {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n flex-shrink: 0;\\r\\n -webkit-flex-shrink: 0;\\r\\n vertical-align: top;\\r\\n}\\r\\n.index {\\r\\n width: 25px;\\r\\n}\\r\\n.title {\\r\\n width: 220px;\\r\\n}\\r\\n.module {\\r\\n width: 110px;\\r\\n}\\r\\n.reporter {\\r\\n width: 85px;\\r\\n}\\r\\n.status {\\r\\n width: 95px;\\r\\n}\\r\\n.owner {\\r\\n width: 75px;\\r\\n}\\r\\n.severity {\\r\\n width: 80px;\\r\\n}\\r\\n.watch,\\r\\n.add-comment {\\r\\n width: 18px;\\r\\n}\\r\\n.date {\\r\\n width: 110px;\\r\\n}\\r\\n.index {\\r\\n text-align: center;\\r\\n}\\r\\n.title {\\r\\n /*font-weight: bold;*/\\r\\n /*color: rgb(18,195,244);*/\\r\\n}\\r\\n.comment {\\r\\n width: 120px;\\r\\n}\\r\\n.title,\\r\\n.comment {\\r\\n flex-grow: 1;\\r\\n -webkit-flex-grow: 1;\\r\\n overflow: hidden;\\r\\n /*white-space: nowrap;*/\\r\\n text-overflow: ellipsis;\\r\\n padding-right: 4px;\\r\\n}\\r\\n.date {\\r\\n width: 110px;\\r\\n /*text-align: right;*/\\r\\n padding-right: 4px;\\r\\n}\\r\\n/* growable wrappers */\\r\\n.title-comment,\\r\\n.title-comment-module-reporter,\\r\\n.attributes {\\r\\n flex-grow: 1;\\r\\n -webkit-flex-grow: 1;\\r\\n}\\r\\n/*\\r\\n * Media queries: optimize for different screen widths.\\r\\n */\\r\\n/*\\r\\n * Media breaks.\\r\\n */\\r\\n@media all and (max-width: 1236px) {\\r\\n .title-comment {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n width: 220px;\\r\\n }\\r\\n .title-comment div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n .title-comment > div {\\r\\n width: 100%;\\r\\n }\\r\\n .module-reporter,\\r\\n .status-owner {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n }\\r\\n .module-reporter div,\\r\\n .status-owner div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n}\\r\\n@media all and (max-width: 956px) {\\r\\n .module-reporter {\\r\\n flex-direction: row;\\r\\n -webkit-flex-direction: row;\\r\\n }\\r\\n .title-comment-module-reporter {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n width: 220px;\\r\\n }\\r\\n .title-comment-module-reporter div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n .title-comment-module-reporter > div {\\r\\n width: 100%;\\r\\n }\\r\\n .status-owner-severity {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n }\\r\\n .status-owner-severity div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n .icons {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n }\\r\\n .icons div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n .dates {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n }\\r\\n .dates div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n}\\r\\n@media all and (max-width: 528px) {\\r\\n .table-row {\\r\\n padding-left: 4px;\\r\\n padding-right: 4px;\\r\\n }\\r\\n .attributes {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n width: 220px;\\r\\n }\\r\\n .attributes div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n .attributes > div {\\r\\n width: 100%;\\r\\n }\\r\\n .module-reporter,\\r\\n .status-owner {\\r\\n flex-direction: row;\\r\\n -webkit-flex-direction: row;\\r\\n }\\r\\n}\\r\\n/*\\r\\n * General good-look styles\\r\\n */\\r\\n.table-row {\\r\\n border-bottom: 1px solid #e0e0e0;\\r\\n border-collapse: collapse;\\r\\n padding-top: 2px;\\r\\n}\\r\\n.table-row.header {\\r\\n background-color: #fff;\\r\\n font-weight: bold;\\r\\n padding-top: 6px;\\r\\n padding-bottom: 6px;\\r\\n color:grey;\\r\\n font-size:12px;\\r\\n}\\r\\n.glyphicon {\\r\\n color: #DDDDDD;\\r\\n}\\r\\n\\r\\n.reporter {\\r\\n color: #999999;\\r\\n}\\r\\n.comment {\\r\\n /*font-style: italic;*/\\r\\n}\\r\\n\\r\\ntd {\\r\\n padding:0;\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.arrow-up {\\r\\n width: 0;\\r\\n height: 0;\\r\\n border-left: 5px solid transparent;\\r\\n border-right: 5px solid transparent;\\r\\n border-bottom: 5px solid black;\\r\\n position: relative;\\r\\n top: -26%;\\r\\n left: 1%;\\r\\n}\\r\\n\\r\\n.arrow-down {\\r\\n width: 0;\\r\\n height: 0;\\r\\n border-left: 5px solid transparent;\\r\\n border-right: 5px solid transparent;\\r\\n border-top: 5px solid #f00;\\r\\n position: relative;\\r\\n top: 26%;\\r\\n left: 1%;\\r\\n}\\r\\n\\r\\ninput:disabled {\\r\\n cursor: not-allowed;\\r\\n}\\r\\n\\r\\n.apply-filter {\\r\\n margin-right: 8px;\\r\\n margin-left: 8px;\\r\\n}\\r\\n\"\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/conversions/schedule/conversion-schedule.component.css\n ** module id = 594\n ** module chunks = 0\n **/","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\n\r\nimport { AuthService, LoggedInUser, Permission, Role } from '../../../auth/auth.service';\r\nimport { ConversionsService } from '../_services/conversions.service';\r\nimport { ConversionScheduleEditDialog } from '../_dialogs/conversion-schedule-edit-dialog';\r\n\r\n@Component({\r\n selector: 'conversion-schedule-menu',\r\n template: require('./conversion-schedule-menu.component.html'),\r\n providers: [ConversionsService],\r\n styles: []\r\n})\r\nexport class ConversionScheduleMenuComponent {\r\n @Input() conversion: any;\r\n @Output() refresh: EventEmitter = new EventEmitter();\r\n Role: any = Role;\r\n Permission: any = Permission;\r\n editDialogRef: MdDialogRef;\r\n\r\n constructor(public editDialog: MdDialog, private conversionsService: ConversionsService,\r\n private auth: AuthService) {\r\n \r\n }\r\n\r\n openInNewTab() {\r\n let id = this.conversion.id;\r\n let siteId = this.conversion.siteId;\r\n let url = `${window.location.origin}/#/conversions/${id}`;\r\n window.open(url, \"_blank\");\r\n }\r\n\r\n markAsComplete() {\r\n let id = this.conversion.id;\r\n let status = 'Completed';\r\n \r\n this.conversionsService.updateConversionStatus(id, status).subscribe((response:any) => { \r\n this.refresh.emit(true);\r\n }); \r\n }\r\n\r\n markAsIncomplete() {\r\n let id = this.conversion.id;\r\n let status = 'NotStarted';\r\n\r\n this.conversionsService.updateConversionStatus(id, status).subscribe((response:any) => {\r\n this.refresh.emit(true);\r\n });\r\n }\r\n\r\n delete() {\r\n let id = this.conversion.id;\r\n\r\n this.conversionsService.deleteConversion(id).subscribe((res:any) => {\r\n this.refresh.emit(true);\r\n });\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/conversions/schedule/conversion-schedule-menu.component.ts\n **/","module.exports = \"\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/conversions/schedule/conversion-schedule-menu.component.html\n ** module id = 596\n ** module chunks = 0\n **/","import { Component, Input, Output, EventEmitter, ElementRef, ViewChild, SimpleChanges } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\n\r\nimport { AuthService, LoggedInUser } from '../../../auth/auth.service';\r\nimport { ConversionStatus } from '../_interfaces/conversions.interface';\r\nimport { ConversionsService } from '../_services/conversions.service';\r\nimport { DateService } from '../../../shared/services/date.service';\r\nimport { DocumentState } from '../../../shared/interfaces';\r\nimport { isUndefined, isNullOrUndefined } from 'util';\r\n\r\n@Component({\r\n selector: 'conversion-passes',\r\n template: require('./conversion-passes.component.html'),\r\n styles: [require('./conversion-passes.component.css')],\r\n providers: [ConversionsService,DateService]\r\n})\r\nexport class ConversionPassesComponent {\r\n @Input() data: any[] = [];\r\n @Input() statusFilter:any;\r\n @Input() docStateFilter:any;\r\n @Input() pageSize: number;\r\n @Input() pageIndex: number;\r\n @Input() hasMoreResults: boolean;\r\n @Input() tokens: string[];\r\n @Input() showAll: boolean;\r\n @Output() onPreviousPage: EventEmitter = new EventEmitter();\r\n @Output() onNextPage: EventEmitter = new EventEmitter();\r\n @Output() refresh: EventEmitter = new EventEmitter();\r\n @Output() onSorting: EventEmitter = new EventEmitter();\r\n @Output() onCompletedNextPage: EventEmitter = new EventEmitter();\r\n @Output() onCompletedPreviousPage: EventEmitter = new EventEmitter();\r\n @Output() onCountConversionsSummaries: EventEmitter = new EventEmitter();\r\n \r\n\r\n user: LoggedInUser;\r\n status: any = ConversionStatus;\r\n currentDate: Date;\r\n pageSizes: any[] = [\r\n { value: 5, viewValue: '5' },\r\n { value: 10, viewValue: '10' },\r\n { value: 25, viewValue: '25' },\r\n { value: 50, viewValue: '50' },\r\n { value: 100, viewValue: '100' }\r\n ];\r\n\r\n searchTimeout: any;\r\n searchText:string=\"\"\r\n sortAsc:boolean =false;\r\n sortColumn:string=\"\";\r\n @ViewChild('columnDetails') columnDetails :ElementRef;\r\n @ViewChild('siteID') siteId : ElementRef;\r\n @ViewChild('siteName') siteName : ElementRef;\r\n @ViewChild('desc') desc : ElementRef;\r\n @ViewChild('modifiedDate') modifiedDate : ElementRef;\r\n\r\n conversionPassesLoader:boolean =false;\r\n initialLoad: boolean = false;\r\n\r\n site:any=null;\r\n siteFilter:any=false;\r\n isFirstLoad:any=false;\r\n selectedStatus:any;\r\n selectedDocState:any;\r\n showAllFromFilter:string;\r\n\r\n constructor(\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private authService: AuthService,\r\n private conversionsService: ConversionsService,\r\n private dateService: DateService) {\r\n\r\n this.user = this.authService.getUser();\r\n this.currentDate = new Date(); \r\n this.currentDate = new Date(); \r\n\r\n }\r\n ngOnInit(){\r\n this.route.params.subscribe(params => {\r\n this.site = params['siteId'];\r\n }); \r\n\r\n \r\n \r\n if(!isUndefined(this.site)){ \r\n this.isFirstLoad=sessionStorage.getItem('isFirstLoad');\r\n if(this.isFirstLoad==='true'){\r\n this.siteFilter=true; \r\n this.searchText=this.site;\r\n this.conversionPassesLoader = true;\r\n this.showAll = true;\r\n this.initialLoad = true;\r\n this.filterConversionDetails();\r\n\r\n }\r\n else\r\n {\r\n this.siteFilter=false;\r\n this.searchText = sessionStorage.getItem('searchText');\r\n \r\n }\r\n\r\n }\r\n else{\r\n var selectedDocState=sessionStorage.getItem('currentDocState');\r\n if(selectedDocState!=null){\r\n this.statusFilter = DocumentState[DocumentState.Archived];\r\n }\r\n\r\n if(sessionStorage.getItem('showAllFromFilter')==='true')\r\n {\r\n this.conversionPassesLoader = true;\r\n this.filterForShowAll();\r\n this.showAll = true;\r\n this.initialLoad = true;\r\n sessionStorage.removeItem('showAllFromFilter');\r\n }\r\n else\r\n {\r\n if(sessionStorage.getItem('status')==null)\r\n sessionStorage.setItem('status', this.statusFilter !=null ? this.statusFilter : this.docStateFilter);\r\n\r\n if(sessionStorage.getItem('status')!=null){\r\n if(this.statusFilter !=null){\r\n if(sessionStorage.getItem('status')!= this.statusFilter ){\r\n sessionStorage.removeItem('sortAsc');\r\n sessionStorage.removeItem('sortColumn');\r\n sessionStorage.removeItem('searchText')\r\n }\r\n }\r\n if(this.docStateFilter !=null){\r\n if(sessionStorage.getItem('status')!= this.docStateFilter ){\r\n sessionStorage.removeItem('sortAsc');\r\n sessionStorage.removeItem('sortColumn');\r\n sessionStorage.removeItem('searchText');\r\n }\r\n }\r\n \r\n sessionStorage.setItem('status', this.statusFilter !=null ? this.statusFilter : this.docStateFilter);\r\n }\r\n this.searchText = sessionStorage.getItem('searchText')\r\n }\r\n }\r\n } \r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (typeof changes.statusFilter != 'undefined') {\r\n if (changes.statusFilter.currentValue === ConversionStatus[ConversionStatus.Completed]) {\r\n this.showAll = false;\r\n if (typeof changes.docStateFilter != 'undefined' && changes.docStateFilter.previousValue === DocumentState[DocumentState.Archived]) {\r\n this.initialLoad = false;\r\n this.searchText = sessionStorage.getItem('searchText');\r\n } else {\r\n this.initialLoad = true;\r\n if (typeof changes.pageIndex != 'undefined') {\r\n if (changes.pageIndex.currentValue != 0) {\r\n this.showAll = true;\r\n } else if (changes.pageIndex.currentValue == 0 && changes.data.currentValue.length > 0) {\r\n this.showAll = true;\r\n }\r\n }\r\n if (changes.statusFilter.previousValue === ConversionStatus[ConversionStatus.InProgress] || changes.statusFilter.previousValue === ConversionStatus[ConversionStatus.Stopped]) {\r\n if (this.searchText != '') {\r\n this.searchText = '';\r\n }\r\n }\r\n }\r\n if (changes.data.currentValue.length == 0) {\r\n this.initialLoad = false;\r\n }\r\n }\r\n }\r\n if (typeof changes.docStateFilter != 'undefined') {\r\n if (changes.docStateFilter.currentValue === DocumentState[DocumentState.Archived]) {\r\n this.showAll = false;\r\n if (typeof changes.statusFilter != 'undefined' && changes.statusFilter.previousValue === ConversionStatus[ConversionStatus.Completed]) {\r\n this.initialLoad = false;\r\n this.searchText = sessionStorage.getItem('searchText');\r\n } else {\r\n this.initialLoad = true;\r\n if (typeof changes.pageIndex != 'undefined') {\r\n if (changes.pageIndex.currentValue != 0) {\r\n this.showAll = true;\r\n } else if (changes.pageIndex.currentValue == 0 && changes.data.currentValue.length > 0) {\r\n this.showAll = true;\r\n }\r\n }\r\n if (typeof changes.statusFilter != 'undefined' && (changes.statusFilter.previousValue === ConversionStatus[ConversionStatus.InProgress] || changes.statusFilter.previousValue === ConversionStatus[ConversionStatus.Stopped])) {\r\n if (this.searchText != '') {\r\n this.searchText = '';\r\n }\r\n }\r\n }\r\n if (changes.data.currentValue.length == 0) {\r\n this.initialLoad = false;\r\n }\r\n }\r\n }\r\n if (isNullOrUndefined(this.searchText)) {\r\n this.searchText = '';\r\n }\r\n if(isUndefined(this.site)){ \r\n this.onCountConversionsSummaries.emit(this.searchText);\r\n }\r\n }\r\n\r\n getStatusIcon(status: ConversionStatus) {\r\n let icon = '';\r\n\r\n switch (status) {\r\n case ConversionStatus.Stopped:\r\n icon = 'cancel';\r\n break;\r\n case ConversionStatus.InProgress:\r\n icon = 'update';\r\n break;\r\n case ConversionStatus.Completed:\r\n icon = 'check_circle';\r\n break;\r\n }\r\n return icon;\r\n }\r\n\r\n getStatusIconColor(status: ConversionStatus) {\r\n let color = '';\r\n\r\n switch (status) {\r\n case ConversionStatus.Stopped:\r\n color = 'red';\r\n break;\r\n case ConversionStatus.Completed:\r\n color = 'green';\r\n break;\r\n }\r\n return color;\r\n }\r\n\r\n /**\r\n * Routes to conversion pass component\r\n * @param conversionPass \r\n */\r\n viewConversionPass(conversionPass: any) {\r\n if (conversionPass) {\r\n this.router.navigate([`/conversions/${conversionPass.conversionId}/passes/${conversionPass.passNumber}`]);\r\n }\r\n }\r\n\r\n /**\r\n * Gets the time span from modified date until now\r\n */\r\n getTimeSpanFromNow(modifiedDate: string): string {\r\n return this.dateService.getTimeSpan(this.currentDate, new Date(modifiedDate));\r\n }\r\n\r\n getDate(modifiedDate:string):string {\r\n return this.dateService.getDate(new Date(modifiedDate));\r\n }\r\n\r\n onMenuRefresh() {\r\n this.refresh.emit(true);\r\n }\r\n\r\n onPageSizeChange() {\r\n this.refresh.emit({ pageSize: this.pageSize });\r\n }\r\n\r\n previousPage() {\r\n if (this.statusFilter == ConversionStatus[ConversionStatus.Completed] || this.docStateFilter == DocumentState[DocumentState.Archived]) {\r\n this.onCompletedPreviousPage.emit(this.tokens);\r\n } else {\r\n this.onPreviousPage.emit(true);\r\n }\r\n }\r\n\r\n nextPage() {\r\n if (this.statusFilter == ConversionStatus[ConversionStatus.Completed] || this.docStateFilter == DocumentState[DocumentState.Archived]) {\r\n this.onCompletedNextPage.emit(this.tokens);\r\n } else {\r\n this.onNextPage.emit(true);\r\n }\r\n }\r\n\r\n isAdmin() {\r\n return this.user.admin === 'true';\r\n }\r\n\r\n initComponentWhenShowAll() {\r\n if(sessionStorage.getItem('status')==null)\r\n sessionStorage.setItem('status', this.statusFilter !=null ? this.statusFilter : this.docStateFilter);\r\n\r\n if(sessionStorage.getItem('status')!=null){\r\n if(this.statusFilter !=null){\r\n if(sessionStorage.getItem('status')!= this.statusFilter ){\r\n sessionStorage.removeItem('sortAsc');\r\n sessionStorage.removeItem('sortColumn');\r\n sessionStorage.removeItem('searchText');\r\n this.initialLoad = false;\r\n }\r\n }\r\n if(this.docStateFilter !=null){\r\n if(sessionStorage.getItem('status')!= this.docStateFilter ){\r\n sessionStorage.removeItem('sortAsc');\r\n sessionStorage.removeItem('sortColumn');\r\n sessionStorage.removeItem('searchText');\r\n this.initialLoad = false;\r\n }\r\n } \r\n }\r\n sessionStorage.setItem('status', this.statusFilter !=null ? this.statusFilter : this.docStateFilter);\r\n }\r\n\r\n showAllConversions() {\r\n if(!isUndefined(this.site)){\r\n sessionStorage.setItem('currentStatus', this.statusFilter);\r\n sessionStorage.setItem('currentDocState', this.docStateFilter);\r\n sessionStorage.setItem('showAllFromFilter', 'true');\r\n this.router.navigateByUrl('conversions');\r\n this.siteFilter=false;\r\n }\r\n else{\r\n this.initComponentWhenShowAll();\r\n this.showAll = !this.showAll;\r\n if (!this.initialLoad) {\r\n this.searchText = '';\r\n this.conversionPassesLoader = true;\r\n this.filterForShowAll();\r\n this.showAll = true;\r\n this.initialLoad = true;\r\n }\r\n else{\r\n this.searchText = '';\r\n this.conversionPassesLoader = true;\r\n this.filterForShowAll();\r\n this.showAll = true;\r\n this.initialLoad = true;\r\n }\r\n }\r\n }\r\n\r\n filterForShowAll() {\r\n if (this.searchTimeout != undefined) clearTimeout(this.searchTimeout);\r\n this.searchTimeout = setTimeout(() => {\r\n this.pageIndex = 0;\r\n this.tokens = [\"\"];\r\n let token = this.tokens[this.pageIndex];\r\n sessionStorage.setItem('searchText', this.searchText)\r\n this.searchText= sessionStorage.getItem('searchText');\r\n if(this.docStateFilter == DocumentState[DocumentState.Archived])\r\n this.getConversionPasses(this.searchText, null, token, null,null, this.pageSize, this.docStateFilter);\r\n else\r\n this.getConversionPasses(this.searchText, this.statusFilter, token, null,null, this.pageSize, null);\r\n\r\n this.onCountConversionsSummaries.emit(this.searchText);\r\n }, 500);\r\n }\r\n\r\n filterConversionDetails() {\r\n if (this.searchTimeout != undefined) clearTimeout(this.searchTimeout);\r\n this.searchTimeout = setTimeout(() => {\r\n this.pageIndex = 0;\r\n this.tokens = [\"\"];\r\n let token = this.tokens[this.pageIndex];\r\n \r\n this.isFirstLoad=false;\r\n \r\n if(this.searchText!=''){\r\n this.siteFilter=true;\r\n }\r\n else{\r\n this.siteFilter=false;\r\n }\r\n\r\n sessionStorage.setItem('isFirstLoad', 'false');\r\n sessionStorage.setItem('siteFilter', 'false');\r\n this.isSiteFilterActive();\r\n\r\n sessionStorage.setItem('searchText', this.searchText)\r\n this.searchText= sessionStorage.getItem('searchText');\r\n this.showAll = (this.searchText == '' && (this.statusFilter === 'Completed' || this.docStateFilter === 'Archived')) ? false : true;\r\n if(this.docStateFilter == DocumentState[DocumentState.Archived])\r\n this.getConversionPasses(this.searchText, null, token, null,null, this.pageSize, this.docStateFilter);\r\n else\r\n this.getConversionPasses(this.searchText, this.statusFilter, token, null,null, this.pageSize, null);\r\n\r\n this.onCountConversionsSummaries.emit(this.searchText);\r\n }, 500);\r\n }\r\n\r\n getConversionPasses(searchText?:string, status?: any, token: string = \"\", sortColumn:string=null, sortAsc:boolean=null, pageSize: number = 25, docState?: any) {\r\n this.conversionPassesLoader = true;\r\n this.conversionsService.getConversionPassSummaries(searchText, status, null, token, sortColumn, sortAsc, pageSize, docState).subscribe((pagedResult: any) => { \r\n this.data = pagedResult.result;\r\n this.hasMoreResults = pagedResult.hasMoreResults;\r\n if (pagedResult.requestContinuation != null) {\r\n var token = JSON.parse(pagedResult.requestContinuation).token;\r\n if (typeof this.tokens[this.pageIndex + 1] === 'undefined') {\r\n this.tokens.push(token);\r\n }\r\n }\r\n this.initialLoad = true;\r\n this.conversionPassesLoader = false;\r\n }, (err:any) => {\r\n this.conversionPassesLoader = false;\r\n this.showAll = false;\r\n });\r\n }\r\n\r\n sort(selectedColumnName: string){\r\n let columnCount =1;\r\n \r\n if(sessionStorage.getItem('sortAsc')==null){\r\n this.sortAsc = false;\r\n sessionStorage.setItem('sortAsc','false');\r\n }\r\n else{\r\n let tempSortAsc = sessionStorage.getItem('sortAsc') == 'true'? 'false': 'true';\r\n sessionStorage.setItem('sortAsc', tempSortAsc);\r\n this.sortAsc = tempSortAsc == 'true'?true:false;\r\n }\r\n sessionStorage.setItem('sortColumn',selectedColumnName);\r\n for(columnCount; columnCount < this.columnDetails.nativeElement.children.length-1; columnCount ++){\r\n this.columnDetails.nativeElement.children[columnCount].children[0].classList.remove('arrow-down');\r\n this.columnDetails.nativeElement.children[columnCount].children[0].classList.remove('arrow-up');\r\n }\r\n\r\n let status = this.statusFilter== DocumentState[DocumentState.Archived] ? null:this.statusFilter;\r\n let docStatus = this.docStateFilter != DocumentState[DocumentState.Archived] ?null:DocumentState[DocumentState.Archived]\r\n \r\n this.onSorting.emit(true);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.sortAsc = sessionStorage.getItem('sortAsc') == 'true' ?true:false;\r\n this.sortColumn = sessionStorage.getItem('sortColumn');\r\n if (this.sortColumn !=null){\r\n if(this.sortColumn=='siteId')\r\n this.setSortingIcons(this.siteId, this.sortAsc)\r\n if(this.sortColumn=='siteName')\r\n this.setSortingIcons(this.siteName, this.sortAsc)\r\n if(this.sortColumn=='description')\r\n this.setSortingIcons(this.desc, this.sortAsc)\r\n if(this.sortColumn=='modifiedDate')\r\n this.setSortingIcons(this.modifiedDate, !this.sortAsc)\r\n }\r\n }\r\n\r\n setSortingIcons(element:any, sortAsc:boolean){\r\n if(sortAsc==true){\r\n element.nativeElement.childNodes[1].classList.add('arrow-up');\r\n element.nativeElement.childNodes[1].classList.remove('arrow-down');\r\n }else{\r\n element.nativeElement.childNodes[1].classList.remove('arrow-up');\r\n element.nativeElement.childNodes[1].classList.add('arrow-down');\r\n }\r\n }\r\n\r\n isSiteFilterActive(){\r\n if(!isUndefined(this.site)){\r\n if(this.siteFilter){\r\n this.searchText=this.site;\r\n }\r\n else{\r\n sessionStorage.setItem('searchText', this.searchText);\r\n }\r\n }\r\n }\r\n\r\n unfilterSearchConversion(){\r\n if(isUndefined(this.site)){\r\n if(this.siteFilter!=false){\r\n this.searchText = '';\r\n sessionStorage.setItem('searchText', '');\r\n this.conversionPassesLoader = true;\r\n this.filterForShowAll();\r\n this.showAll = true;\r\n this.siteFilter=false;\r\n }\r\n else{\r\n this.searchText = '';\r\n sessionStorage.setItem('searchText', '');\r\n }\r\n }\r\n else{\r\n sessionStorage.setItem('currentStatus', this.statusFilter);\r\n sessionStorage.setItem('currentDocState', this.docStateFilter);\r\n this.router.navigateByUrl('conversions');\r\n this.siteFilter=false;\r\n }\r\n }\r\n \r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/conversions/passes/conversion-passes.component.ts\n **/","module.exports = \"\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n clear\\r\\n \\r\\n
Site Id Site Name Description Go Live Completed Date Last Modified Status
security{{ conversionPass?.siteId }}{{ conversionPass?.siteName }} {{ conversionPass?.description }}{{ conversionPass?.goLive === true ? 'GO LIVE' : 'TESTING'}} {{ conversionPass?.passNumber }} \\r\\n {{ getDate(conversionPass?.modifiedDate) | date:'MM/dd/yyyy'}} \\r\\n \\r\\n {{ getTimeSpanFromNow(conversionPass?.modifiedDate) }}\\r\\n \\r\\n
\\r\\n {{ getStatusIcon(conversionPass?.status) }}\\r\\n {{ status[conversionPass?.status] }}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Items per page:\\r\\n \\r\\n \\r\\n {{ pageSize.viewValue }}\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/conversions/passes/conversion-passes.component.html\n ** module id = 598\n ** module chunks = 0\n **/","module.exports = \"td {\\r\\n padding:2px;\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\na {\\r\\n color: #0078d7;\\r\\n}\\r\\n\\r\\na:hover {\\r\\n text-decoration: underline;\\r\\n}\\r\\n\\r\\n.arrow-up {\\r\\n width: 0;\\r\\n height: 0;\\r\\n border-left: 5px solid transparent;\\r\\n border-right: 5px solid transparent;\\r\\n border-bottom: 5px solid black;\\r\\n position: relative;\\r\\n top: -26%;\\r\\n left: 1%;\\r\\n}\\r\\n\\r\\n.arrow-down {\\r\\n width: 0;\\r\\n height: 0;\\r\\n border-left: 5px solid transparent;\\r\\n border-right: 5px solid transparent;\\r\\n border-top: 5px solid #f00;\\r\\n position: relative;\\r\\n top: 26%;\\r\\n left: 1%;\\r\\n}\\r\\n\\r\\ninput:disabled {\\r\\n cursor: not-allowed;\\r\\n}\\r\\n\"\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/conversions/passes/conversion-passes.component.css\n ** module id = 599\n ** module chunks = 0\n **/","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { ConversionsService } from '../sites/conversions/_services/conversions.service';\r\nimport { AuthService, LoggedInUser, Permission, Role } from '../auth/auth.service';\r\nimport { DocumentState, ConversionStatus } from '../shared/interfaces';\r\n\r\n@Component({\r\n selector: 'golive-passes-menu',\r\n template: require('./golive-passes-menu.component.html'),\r\n providers: [ConversionsService],\r\n styles: []\r\n})\r\nexport class GoLiveConversionPassesMenuComponent {\r\n @Input() conversionPass: any;\r\n @Output() refresh: EventEmitter = new EventEmitter();\r\n Role: any = Role;\r\n Permission: any = Permission;\r\n\r\n isResubmitting = false;\r\n isDeleting = false;\r\n conversionId: string;\r\n conversionPassId: string;\r\n passNumber: number;\r\n states: any = ConversionStatus;\r\n status: any;\r\n docStates: any = DocumentState;\r\n docState: any = DocumentState.Undefined;\r\n isAdmin: boolean;\r\n isEpicorEmployeeAndConversionMonitor: boolean;\r\n\r\n constructor(\r\n private router: Router,\r\n private auth: AuthService,\r\n private conversionsService: ConversionsService) {}\r\n\r\n ngOnInit() {\r\n this.conversionId = this.conversionPass.conversionId;\r\n this.passNumber = this.conversionPass.passNumber;\r\n }\r\n\r\n /**\r\n * Open converison pass in new browser tab\r\n */\r\n openInNewTab() {\r\n let url = `${window.location.origin}/#/conversions/${this.conversionId}/passes/${this.passNumber}`;\r\n window.open(url, \"_blank\");\r\n }\r\n\r\n /**\r\n * Routes to conversion pass component\r\n * @param conversionPass \r\n */\r\n viewConversionPass() {\r\n if (this.conversionPass) {\r\n this.router.navigate([`/conversions/${this.conversionPass.conversionId}/passes/${this.conversionPass.passNumber}`]);\r\n }\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/golivereport/golive-passes-menu.component.ts\n **/","module.exports = \"\\r\\n\\r\\n \\r\\n \\r\\n\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/golivereport/golive-passes-menu.component.html\n ** module id = 601\n ** module chunks = 0\n **/","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { ConversionsService} from '../_services/conversions.service';\r\n\r\nimport { AuthService, LoggedInUser, Permission, Role } from '../../../auth/auth.service';\r\nimport { DocumentState, ConversionStatus } from '../../../shared/interfaces';\r\n\r\n@Component({\r\n selector: 'conversion-passes-menu',\r\n template: require('./conversion-passes-menu.component.html'),\r\n providers: [ConversionsService],\r\n styles: []\r\n})\r\nexport class ConversionPassesMenuComponent {\r\n @Input() conversionPass: any;\r\n @Output() refresh: EventEmitter = new EventEmitter();\r\n Role: any = Role;\r\n Permission: any = Permission;\r\n\r\n isResubmitting = false;\r\n isDeleting = false;\r\n conversionId: string;\r\n conversionPassId: string;\r\n passNumber: number;\r\n states: any = ConversionStatus;\r\n status: any;\r\n docStates: any = DocumentState;\r\n docState: any = DocumentState.Undefined;\r\n isAdmin: boolean;\r\n isEpicorEmployeeAndConversionMonitor: boolean;\r\n\r\n constructor(\r\n private router: Router,\r\n private auth: AuthService,\r\n private conversionsService: ConversionsService) {}\r\n\r\n ngOnInit() {\r\n this.conversionId = this.conversionPass.conversionId;\r\n this.conversionPassId = this.conversionPass.passId;\r\n this.passNumber = this.conversionPass.passNumber;\r\n this.docState = this.conversionPass.docState;\r\n this.status = this.conversionPass.status;\r\n this.isAdmin = this.auth.hasRole(Role.Administrator);\r\n this.isEpicorEmployeeAndConversionMonitor = this.auth.hasRole(Role.EpicorEmployee) && this.auth.hasPermission(Permission.ConversionMonitor); \r\n }\r\n\r\n /**\r\n * Open converison pass in new browser tab\r\n */\r\n openInNewTab() {\r\n let url = `${window.location.origin}/#/conversions/${this.conversionId}/passes/${this.passNumber}`;\r\n window.open(url, \"_blank\");\r\n }\r\n\r\n /**\r\n * Resubmit conversion pass\r\n */\r\n resubmit() {\r\n if(confirm(\"Are you sure you want to resubmit?\")) {\r\n this.isResubmitting = true;\r\n \r\n this.conversionsService.resubmitConversionPass(this.conversionId, this.conversionPassId).subscribe((res:any) => {\r\n this.isResubmitting = false;\r\n this.refresh.emit(true);\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Routes to conversion pass component\r\n * @param conversionPass \r\n */\r\n viewConversionPass() {\r\n if (this.conversionPass) {\r\n this.router.navigate([`/conversions/${this.conversionPass.conversionId}/passes/${this.conversionPass.passNumber}`]);\r\n }\r\n }\r\n\r\n /**\r\n * Delete conversion pass\r\n */\r\n delete() {\r\n if (confirm(\"Are you sure you want to delete this conversion pass?\")) {\r\n this.isDeleting = true;\r\n\r\n this.conversionsService.deleteConversionPass(this.conversionPassId).subscribe((res:any) => {\r\n this.isDeleting = false;\r\n this.refresh.emit(true);\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Archive conversion pass\r\n */\r\n archive() { \r\n this.conversionsService.archiveConversionPass(this.conversionPassId).subscribe((res:any) => {\r\n this.refresh.emit(true);\r\n });\r\n }\r\n\r\n /**\r\n * Unarchive conversion pass \r\n */\r\n unarchive() { \r\n this.conversionsService.unarchiveConversionPass(this.conversionPassId).subscribe((res:any) => {\r\n this.refresh.emit(true);\r\n });\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/conversions/passes/conversion-passes-menu.component.ts\n **/","module.exports = \"\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/conversions/passes/conversion-passes-menu.component.html\n ** module id = 603\n ** module chunks = 0\n **/","import { Component, OnInit, OnDestroy, NgZone, ViewChild, ElementRef, ViewContainerRef } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef, MdSnackBar } from '@angular/material';\r\n\r\nimport { RegionService } from '../shared/services/region.service';\r\nimport { ProductService } from '../shared/services/product.service';\r\nimport { CloudViewService, LogSeverity, LogType, HostType, InstanceStatus } from './cloudview.service';\r\nimport { CloudViewHubService } from './cloudview-hub.service';\r\nimport { DOMEvents } from '../dom-events';\r\nimport { SignalRConnectionStatus } from '../shared/interfaces';\r\nimport { AuthService, Role, Permission } from '../auth/auth.service';\r\nimport { CloudViewHostDialog } from './cloudview-host-dialog';\r\nimport { CloudViewInstanceDialog } from './cloudview-instance-dialog';\r\nimport { CloudViewCommandDialog } from './cloudview-command-dialog';\r\nimport { DragulaService } from 'ng2-dragula';\r\nimport { Observable } from '../../../node_modules/rxjs/Observable';\r\nimport { forEach } from '../../../node_modules/@angular/router/src/utils/collection';\r\nimport { Subscription } from '../../../node_modules/rxjs';\r\nimport { ApplicationDocDialog } from '../shared/dialogs/applicationdoc-dialog';\r\nimport { ApplicationService, Application } from '../applications/application.service';\r\nimport { CloudViewDocDialog } from '../shared/dialogs/cloudviewdoc-dialog';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'cloudview',\r\n template: require('./cloudview.component.html'),\r\n styles: [require('./cloudview.css'), require('./cloudview-instances-table.css')],\r\n providers: [CloudViewService, CloudViewHubService, RegionService, ProductService, ApplicationService],\r\n viewProviders: [\r\n DragulaService\r\n ]\r\n})\r\nexport class CloudViewComponent implements OnInit, OnDestroy {\r\n sentViewMode: ViewMode;\r\n searchText: string;\r\n Role: any = Role;\r\n Permission: any = Permission;\r\n hostsDisplay: boolean = true;\r\n docDialogRef: MdDialogRef;\r\n cloudViewHostDialogRef: MdDialogRef;\r\n cloudViewCommandDialogRef: MdDialogRef;\r\n cloudViewInstanceDialogRef: MdDialogRef;\r\n appHostsLoader: boolean = false;\r\n appHosts: any[] = [];\r\n appHostsCount: number = 0;\r\n dbHostsLoader: boolean = false;\r\n dbHosts: any[] = [];\r\n dbHostsCount: number = 0;\r\n unallocatedInstancesLoader: boolean = false;\r\n unallocatedInstances: any[] = [];\r\n unallocatedAppInstances: any[] = [];\r\n unallocatedDbInstances: any[] = [];\r\n unallocatedIntancesCount: number = 0;\r\n logsLoader: boolean = false;\r\n logs: any[] = [];\r\n logsPageIndex: number = 0;\r\n logsContinuationTokens: string[] = [\"\"]; // include empty to indicate page 1\r\n logsCount: number = 0;\r\n logFilter: any = {\r\n type: null,\r\n typeUID: null,\r\n severity: null,\r\n instance: null,\r\n debug: false\r\n };\r\n LogSeverity: any = LogSeverity;\r\n LogType: any = LogType;\r\n hostInstances: any;\r\n hostinstancesLoaded: boolean = false;\r\n subscribed: boolean;\r\n connectionId: any;\r\n zone: NgZone;\r\n settingsMenuOpen: boolean = false;\r\n commandsMenuOpen: boolean = false;\r\n HostAction = HostAction;\r\n InstanceAction = InstanceAction;\r\n regions: any[];\r\n products: any[];\r\n hostRegion: string = '';\r\n dbHostRegion: string;\r\n HostType = HostType;\r\n creatingHost: boolean = false;\r\n instanceDetailShow: boolean = false;\r\n instances: any[] = [];\r\n instancesLoader: boolean = false;\r\n sortRefresh: boolean = false;\r\n InstanceStatus: any = InstanceStatus;\r\n instanceStates: any = [\r\n { key: 'Offline', value: InstanceStatus.Offline },\r\n { key: 'Running', value: InstanceStatus.Running },\r\n { key: 'Deleting', value: InstanceStatus.Deleting },\r\n { key: 'Deleted', value: InstanceStatus.Deleted },\r\n { key: 'Warning', value: InstanceStatus.Warning },\r\n { key: 'Error', value: InstanceStatus.Error }\r\n ];\r\n selectedViewMode: ViewMode;\r\n ViewMode: any = ViewMode;\r\n instancesFilter: any = {\r\n query: '',\r\n region: '',\r\n product: '',\r\n status: ''\r\n };\r\n applications: any[] = [];\r\n isLoading: boolean = false;\r\n\r\n searchTimeout: any;\r\n logUpdater: Subscription;\r\n sortAsc: boolean = false;\r\n sortColumn: string = \"\";\r\n\r\n showAll: boolean = false;\r\n loaded: boolean = false;\r\n\r\n @ViewChild('siteName') siteName: ElementRef;\r\n @ViewChild('deleteOn') deletionDate: ElementRef;\r\n @ViewChild('columnDetails') columnDetails: ElementRef;\r\n constructor(\r\n public hostDialog: MdDialog,\r\n public dialog: MdDialog,\r\n public instanceDialog: MdDialog,\r\n public commandDialog: MdDialog,\r\n public snackBar: MdSnackBar,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n public auth: AuthService,\r\n private regionService: RegionService,\r\n private productService: ProductService,\r\n public cloudviewService: CloudViewService,\r\n private cloudviewHubService: CloudViewHubService,\r\n private domEvents: DOMEvents,\r\n private dragulaService: DragulaService,\r\n public viewContainerRef: ViewContainerRef,\r\n private applicationService: ApplicationService) {\r\n this.zone = new NgZone({ enableLongStackTrace: false });\r\n\r\n dragulaService.drop.subscribe((value: any) => {\r\n const [bagName, e, el] = value;\r\n this.onDrop(value.slice(1), bagName);\r\n });\r\n this.isLoading = true;\r\n this.applicationService.getApplications().subscribe((applications: Application[]) => {\r\n this.applications = applications;\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n if (this.auth.hasRole(Role.Administrator) ||\r\n (this.auth.hasRole(Role.EpicorEmployee) &&\r\n this.auth.hasPermission(Permission.CloudViewDashboardView)) ||\r\n (this.auth.hasRole(Role.EpicorEmployee) &&\r\n this.auth.hasPermission(Permission.CloudViewAdmin))) {\r\n this.searchText = this.route.snapshot.queryParamMap.get('searchText');\r\n if (this.searchText) {\r\n this.instancesFilter.query = this.searchText;\r\n }\r\n this.route.queryParams.subscribe(params => this.sentViewMode = +params['viewMode']);\r\n if (!this.sentViewMode) {\r\n this.selectedViewMode = ViewMode.Dashboard;\r\n } else {\r\n this.router.navigate(['cloudview']);\r\n this.selectedViewMode = this.sentViewMode;\r\n }\r\n this.getAppHosts();\r\n this.getDbHosts();\r\n this.getUnallocatedInstances();\r\n this.getLogs(null, false);\r\n this.getLogsCount();\r\n this.getRegions();\r\n this.getProducts();\r\n } else {\r\n this.selectedViewMode = ViewMode.Instances;\r\n this.getInstances();\r\n }\r\n this.domEvents.triggerOnDocument(\"appready\");\r\n }\r\n\r\n getAppHosts() {\r\n this.appHosts = [];\r\n this.appHostsLoader = true;\r\n this.cloudviewService.getAppHosts().subscribe((hosts: any[]) => {\r\n this.appHosts = hosts;\r\n this.appHostsLoader = false;\r\n });\r\n\r\n this.getAppHostsCount();\r\n }\r\n\r\n getAppHostsCount() {\r\n this.cloudviewService.getAppHostsCount().subscribe((count: number) => {\r\n this.appHostsCount = count;\r\n });\r\n }\r\n\r\n getDbHosts() {\r\n this.dbHosts = [];\r\n this.dbHostsLoader = true;\r\n this.cloudviewService.getDbHosts().subscribe((hosts: any[]) => {\r\n this.dbHosts = hosts;\r\n this.dbHostsLoader = false;\r\n });\r\n\r\n this.getDbHostsCount();\r\n }\r\n\r\n getDbHostsCount() {\r\n this.cloudviewService.getDbHostsCount().subscribe((count: number) => {\r\n this.dbHostsCount = count;\r\n });\r\n }\r\n\r\n getUnallocatedInstances() {\r\n this.unallocatedInstancesLoader = true;\r\n this.cloudviewService.getUnallocatedInstances().subscribe((instances: any[]) => {\r\n this.unallocatedInstances = [];\r\n this.unallocatedAppInstances = [];\r\n this.unallocatedDbInstances = [];\r\n this.unallocatedIntancesCount = instances.length;\r\n instances.forEach((instance: any) => {\r\n let appInstance = Object.assign({}, instance);\r\n appInstance[\"type\"] = HostType.APP;\r\n\r\n let dbInstance = Object.assign({}, instance);\r\n dbInstance[\"type\"] = HostType.DB;\r\n\r\n this.unallocatedAppInstances.push(appInstance);\r\n this.unallocatedDbInstances.push(dbInstance);\r\n });\r\n\r\n this.unallocatedInstances = instances;\r\n this.unallocatedInstancesLoader = false;\r\n });\r\n\r\n //this.getUnallocatedInstancesCount();\r\n }\r\n\r\n getUnallocatedInstancesCount() {\r\n this.cloudviewService.getUnallocatedInstancesCount().subscribe((count: number) => {\r\n this.unallocatedIntancesCount = count;\r\n });\r\n }\r\n\r\n showAllInstances() {\r\n if (this.instancesFilter.query != '') {\r\n this.instancesFilter.query = '';\r\n this.showAll = false;\r\n this.getInstances();\r\n } else {\r\n this.showAll = !this.showAll;\r\n }\r\n\r\n if (!this.loaded) {\r\n this.getInstances();\r\n this.showAll = true;\r\n this.loaded = true;\r\n }\r\n }\r\n\r\n filterInstances() {\r\n if (this.searchTimeout != undefined) clearTimeout(this.searchTimeout);\r\n this.searchTimeout = setTimeout(() => {\r\n this.showAll = this.instancesFilter.query == '' ? false : true;\r\n this.getInstances();\r\n }, 500);\r\n }\r\n\r\n getInstances() {\r\n this.instances = [];\r\n let query = this.instancesFilter.query;\r\n let region = this.instancesFilter.region;\r\n let product = this.instancesFilter.product;\r\n let status = this.instancesFilter.status;\r\n\r\n this.instancesLoader = true;\r\n\r\n this.cloudviewService.getInstances(query, region, product, status, \"\", \"\").subscribe((instances: any) => {\r\n instances.forEach((instance: any) => {\r\n if (instance.deleteOn) {\r\n instance.deleteOn = instance.deleteOn.substr(0, 16);\r\n }\r\n });\r\n this.instances = instances;\r\n this.instancesLoader = false;\r\n this.loaded = true;\r\n }, err => {\r\n this.instancesLoader = false;\r\n });\r\n }\r\n\r\n sort(selectedColumnName: string) {\r\n let columnCount = 1;\r\n if (sessionStorage.getItem('sortAsc') == null) {\r\n this.sortAsc = false;\r\n sessionStorage.setItem('sortAsc', 'false');\r\n }\r\n else {\r\n let tempSortAsc = sessionStorage.getItem('sortAsc') == 'true' ? 'false' : 'true';\r\n sessionStorage.setItem('sortAsc', tempSortAsc);\r\n this.sortAsc = tempSortAsc == 'true' ? true : false;\r\n }\r\n sessionStorage.setItem('sortColumn', selectedColumnName);\r\n for (columnCount; columnCount < this.columnDetails.nativeElement.children.length - 1; columnCount++) {\r\n this.columnDetails.nativeElement.children[columnCount].children[0].classList.remove('arrow-down');\r\n this.columnDetails.nativeElement.children[columnCount].children[0].classList.remove('arrow-up');\r\n }\r\n this.sortRefresh = true;\r\n this.cloudviewService.getInstances(this.instancesFilter.query, this.instancesFilter.region, this.instancesFilter.product, this.instancesFilter.status, this.sortAsc ? \"asc\" : \"desc\", selectedColumnName).subscribe((instances: any) => {\r\n instances.forEach((instance: any) => {\r\n if (instance.deleteOn) {\r\n instance.deleteOn = instance.deleteOn.substr(0, 16);\r\n }\r\n });\r\n this.instances = instances;\r\n this.sortRefresh = false;\r\n }, err => {\r\n this.sortRefresh = false;\r\n });\r\n this.SetIcons();\r\n }\r\n\r\n uploadApplicationDocs(applicationName: string, applicationDocument: any) {\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n config.width = \"500px\";\r\n config.height = \"300px\";\r\n\r\n this.docDialogRef = this.dialog.open(CloudViewDocDialog, config);\r\n this.docDialogRef.componentInstance.setCloudView(applicationName, applicationDocument);\r\n this.docDialogRef.afterClosed().subscribe((result: any) => {\r\n if (result === \"cancel\") return;\r\n this.applicationService.getApplications().subscribe((applications: Application[]) => {\r\n this.applications = applications;\r\n this.isLoading = false;\r\n })\r\n });\r\n }\r\n\r\n SetIcons() {\r\n this.sortAsc = sessionStorage.getItem('sortAsc') == 'true' ? true : false;\r\n this.sortColumn = sessionStorage.getItem('sortColumn');\r\n if (this.sortColumn != null) {\r\n if (this.sortColumn == 'deleteOn')\r\n this.setSortingIcons(this.deletionDate, this.sortAsc)\r\n if (this.sortColumn == 'siteName')\r\n this.setSortingIcons(this.siteName, this.sortAsc)\r\n }\r\n }\r\n\r\n setSortingIcons(element: any, sortAsc: boolean) {\r\n if (sortAsc == true) {\r\n element.nativeElement.childNodes[1].classList.add('arrow-up');\r\n element.nativeElement.childNodes[1].classList.remove('arrow-down');\r\n } else {\r\n element.nativeElement.childNodes[1].classList.remove('arrow-up');\r\n element.nativeElement.childNodes[1].classList.add('arrow-down');\r\n }\r\n }\r\n\r\n getLogs(token: string = \"\", clearContinuationTokens: boolean) {\r\n this.logs = [];\r\n this.logsCount = 0;\r\n this.logsLoader = true;\r\n\r\n if (clearContinuationTokens) {\r\n this.logsContinuationTokens = [\"\"];\r\n }\r\n\r\n this.cloudviewService.getLogs(this.logFilter.type, this.logFilter.typeUID, this.logFilter.severity, this.logFilter.instance, token, this.logFilter.debug, false).subscribe((response: any) => {\r\n this.logs = response.result;\r\n\r\n if (response.requestContinuation != null) {\r\n var token = JSON.parse(response.requestContinuation).token;\r\n if (typeof this.logsContinuationTokens[this.logsPageIndex + 1] === 'undefined') {\r\n this.logsContinuationTokens.push(token);\r\n }\r\n }\r\n\r\n this.logsLoader = false;\r\n });\r\n }\r\n\r\n getHostLogs(token: string = \"\", clearContinuationTokens: boolean) {\r\n this.logs = [];\r\n this.logsCount = 0;\r\n this.logsLoader = true;\r\n\r\n if (clearContinuationTokens) {\r\n this.logsContinuationTokens = [\"\"];\r\n }\r\n\r\n this.cloudviewService.getLogs(this.logFilter.type, this.logFilter.typeUID, this.logFilter.severity, this.logFilter.instance, token, this.logFilter.debug, true).subscribe((response: any) => {\r\n this.logs = response.result;\r\n\r\n if (response.requestContinuation != null) {\r\n var token = JSON.parse(response.requestContinuation).token;\r\n if (typeof this.logsContinuationTokens[this.logsPageIndex + 1] === 'undefined') {\r\n this.logsContinuationTokens.push(token);\r\n }\r\n }\r\n\r\n this.logsLoader = false;\r\n });\r\n }\r\n\r\n RefreshLogs(checked: boolean) {\r\n this.logFilter.debug = checked;\r\n this.getLogs(null, true);\r\n }\r\n\r\n getLogsCount() {\r\n this.cloudviewService.getLogsCount(this.logFilter.type, this.logFilter.typeUID, this.logFilter.severity, this.logFilter.instance, this.logFilter.debug, false).subscribe((data: any) => {\r\n this.logsCount = data.logsCount;\r\n });\r\n }\r\n\r\n getHostLogsCount() {\r\n this.cloudviewService.getLogsCount(this.logFilter.type, this.logFilter.typeUID, this.logFilter.severity, this.logFilter.instance, false, true).subscribe((data: any) => {\r\n this.logsCount = data.logsCount;\r\n });\r\n }\r\n\r\n previousLogsPage(host: boolean = false) {\r\n this.logsPageIndex -= 1;\r\n let token = this.logsContinuationTokens[this.logsPageIndex];\r\n\r\n if (typeof token !== 'undefined') {\r\n if (host) {\r\n this.getHostLogs(token, false);\r\n } else {\r\n this.getLogs(token, false);\r\n }\r\n } else {\r\n this.logsPageIndex += 1;\r\n }\r\n }\r\n\r\n nextLogsPage(host: boolean = false) {\r\n this.logsPageIndex += 1;\r\n let token = this.logsContinuationTokens[this.logsPageIndex];\r\n\r\n if (typeof token !== 'undefined') {\r\n if (host) {\r\n this.getHostLogs(token, false);\r\n } else {\r\n this.getLogs(token, false);\r\n }\r\n } else {\r\n this.logsPageIndex -= 1;\r\n }\r\n }\r\n\r\n getRegions() {\r\n this.regions = [];\r\n\r\n this.regionService.getRegions().subscribe((regions: any) => {\r\n this.regions = regions;\r\n });\r\n }\r\n\r\n getProducts() {\r\n this.products = [];\r\n\r\n this.productService.getProducts().subscribe((products: any) => {\r\n this.products = products;\r\n });\r\n }\r\n\r\n getHostInstances() {\r\n this.hostinstancesLoaded = false;\r\n this.cloudviewService.getHostInstanceCollection().subscribe((allInstances) => {\r\n this.hostinstancesLoaded = true;\r\n this.hostInstances = allInstances;\r\n });\r\n\r\n }\r\n\r\n /** Create a new host */\r\n createHost(type: HostType) {\r\n this.openHostDialog(type);\r\n }\r\n\r\n listenForConnection() {\r\n this.cloudviewHubService.setConnectionId.subscribe(\r\n id => {\r\n this.connectionId = id;\r\n },\r\n err => console.log(err)\r\n );\r\n }\r\n\r\n updateSubScription(subscription: any) {\r\n if (subscription.subscribe === true) {\r\n this.cloudviewHubService.subscribeToCloudViewHub(subscription.groupName);\r\n } else {\r\n this.cloudviewHubService.unsubscribeFromCloudViewHub(subscription.groupName);\r\n }\r\n }\r\n\r\n setSubscription(val: boolean) {\r\n try {\r\n this.subscribed = val;\r\n let subscription = {\r\n subscribe: val,\r\n groupName: 'cloudview'\r\n }\r\n this.updateSubScription(subscription);\r\n } catch (err) {\r\n console.error(\"Unable to subscribe to cloudview hub\");\r\n this.subscribed = false;\r\n }\r\n }\r\n\r\n toggleSettings() {\r\n if (this.settingsMenuOpen) {\r\n this.settingsMenuOpen = false;\r\n } else {\r\n this.settingsMenuOpen = true;\r\n }\r\n }\r\n\r\n openHostDialog(hostType: HostType) {\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = null\r\n config.width = '250px';\r\n\r\n this.cloudViewHostDialogRef = this.hostDialog.open(CloudViewHostDialog, config);\r\n this.cloudViewHostDialogRef.componentInstance.type = hostType;\r\n this.cloudViewHostDialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n if (result.created) {\r\n this.getAppHosts();\r\n this.getDbHosts();\r\n }\r\n }\r\n })\r\n }\r\n\r\n openInstanceDialog() {\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = null;\r\n\r\n this.cloudViewInstanceDialogRef = this.instanceDialog.open(CloudViewInstanceDialog, config);\r\n this.cloudViewInstanceDialogRef.afterClosed().subscribe((res) => {\r\n this.getInstances();\r\n });\r\n }\r\n\r\n openCommandDialog(host: string) {\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = null\r\n config.width = '500px';\r\n\r\n this.cloudViewCommandDialogRef = this.commandDialog.open(CloudViewCommandDialog, config);\r\n this.cloudViewCommandDialogRef.componentInstance.hostid = host;\r\n }\r\n\r\n viewInstance(instance: any) {\r\n if (instance.id && instance.appServer && this.instancesFilter.query) {\r\n this.router.navigate([`cloudview/hosts/${instance.appServer}/instances/${instance.id}`, { searchText: this.instancesFilter.query }]);\r\n }\r\n if (instance.id && instance.appServer && !this.instancesFilter.query) {\r\n this.router.navigate([`cloudview/hosts/${instance.appServer}/instances/${instance.id}`]);\r\n }\r\n }\r\n\r\n setViewMode(viewMode: ViewMode) {\r\n this.selectedViewMode = viewMode;\r\n\r\n if (this.selectedViewMode === ViewMode.Instances) {\r\n // this.getInstances();\r\n this.showAll = false;\r\n if (this.logUpdater != null) {\r\n this.logUpdater.unsubscribe();\r\n }\r\n }\r\n if (this.selectedViewMode === ViewMode.Hosts) {\r\n this.logUpdater = Observable.interval(1000 * 60 * 1).subscribe(() => this.getHostLogs(null, false));\r\n this.getHostLogs(null, false);\r\n this.getHostLogsCount();\r\n this.getHostInstances();\r\n }\r\n if (this.selectedViewMode === ViewMode.Dashboard) {\r\n this.getLogs(null, false);\r\n this.getLogsCount();\r\n if (this.logUpdater != null) {\r\n this.logUpdater.unsubscribe();\r\n }\r\n }\r\n }\r\n\r\n updateInstanceTTL(instance: any) {\r\n if (new Date(instance.deleteOn) < new Date()) {\r\n if (confirm(\"The date selected for delete is older than current date (This will delete the instance immediately).\\nAre you sure you want to continue?\")) {\r\n this.updateTTL(instance);\r\n } else {\r\n this.getInstances();\r\n }\r\n } else {\r\n this.updateTTL(instance);\r\n }\r\n }\r\n\r\n updateTTL(instance: any) {\r\n if (this.searchTimeout != undefined) clearTimeout(this.searchTimeout);\r\n this.searchTimeout = setTimeout(() => {\r\n this.cloudviewService.setInstanceTTL(instance.id, instance.deleteOn).subscribe((res) => {\r\n //this.getInstances();\r\n });\r\n }, 1000);\r\n }\r\n\r\n onHostDelete(host: any) {\r\n switch (host.type) {\r\n case HostType.APP:\r\n this.getAppHosts();\r\n break;\r\n case HostType.DB:\r\n this.getDbHosts();\r\n break;\r\n }\r\n }\r\n\r\n updateAppServer(instance: any) {\r\n let instanceId = instance.id;\r\n let appServer = instance.appServer;\r\n this.cloudviewService.setAppServer(instanceId, appServer).subscribe(() => {\r\n //this.refreshDashboard();\r\n }, err => {\r\n let snackBarRef = this.snackBar.open(`Instance ${instanceId} cannot be assigned to ${appServer} due to product, version or region mismatch. Please assign to valid host.`, null, {\r\n duration: 4000\r\n });\r\n });\r\n }\r\n\r\n updateDbServer(instance: any) {\r\n let instanceId = instance.id;\r\n let dbServer = instance.dbServer;\r\n\r\n this.cloudviewService.setDbServer(instanceId, dbServer).subscribe(() => {\r\n //this.refreshDashboard();\r\n }, err => {\r\n\r\n });\r\n }\r\n\r\n refreshDashboard() {\r\n this.getInstances();\r\n this.getUnallocatedInstances();\r\n this.getAppHosts();\r\n this.getDbHosts();\r\n }\r\n\r\n refreshHosts() {\r\n this.getAppHosts();\r\n this.getDbHosts();\r\n }\r\n\r\n deleteInstance(instance: any) {\r\n if (confirm(`Are you sure you want to delete ${instance.id}?`)) {\r\n this.cloudviewService.deleteInstance(instance.id).subscribe((res: any) => {\r\n this.refreshDashboard();\r\n });\r\n }\r\n }\r\n\r\n runCommand(command: string, host: any) {\r\n this.cloudviewService.runCommandsOnHost(command, host.id).subscribe((res) => {\r\n //Show success\r\n }, err => {\r\n\r\n });\r\n }\r\n\r\n toggleCommandMenu() {\r\n if (this.commandsMenuOpen) {\r\n this.commandsMenuOpen = false;\r\n } else {\r\n this.commandsMenuOpen = true;\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.setSubscription(false);\r\n }\r\n\r\n private onDrop(args: any, hostType: HostType) {\r\n let [instance, container] = args; //element, elementList\r\n let instanceId = instance.dataset.id;\r\n let containerId = container.dataset.id;\r\n\r\n if (instanceId != null) {\r\n switch (hostType) {\r\n case HostType.APP:\r\n if (containerId === 'unallocated') {\r\n containerId = null;\r\n }\r\n this.updateAppServer({ id: instanceId, appServer: containerId });\r\n\r\n break;\r\n case HostType.DB:\r\n if (containerId === 'unallocated') {\r\n containerId = null;\r\n }\r\n this.updateDbServer({ id: instanceId, dbServer: containerId });\r\n\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport enum HostAction {\r\n Create,\r\n Delete\r\n}\r\n\r\nexport enum InstanceAction {\r\n Create,\r\n Delete\r\n}\r\n\r\nexport enum ViewMode {\r\n Dashboard = 0,\r\n Instances = 1,\r\n Hosts = 2\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/cloudview/cloudview.component.ts\n **/","import { Component } from '@angular/core';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\nimport { CloudViewService, HostType } from './cloudview.service';\r\nimport { RegionService } from '../shared/services/region.service';\r\nimport { ProductService } from '../shared/services/product.service';\r\n\r\n@Component({\r\n selector: 'cloudview-host-dialog',\r\n template: require('./cloudview-host-dialog.html'),\r\n providers: [CloudViewService, RegionService, ProductService]\r\n})\r\nexport class CloudViewHostDialog {\r\n type: HostType\r\n\r\n private vmSizes: any[] = [\r\n { size: 'Standard_DS2_v2', cpuCores: 2, memoryGiB: 7., localSSDGiB: 14 },\r\n { size: 'Standard_DS3_v2', cpuCores: 4, memoryGiB: 14, localSSDGiB: 28 },\r\n { size: 'Standard_DS4_v2', cpuCores: 8, memoryGiB: 28, localSSDGiB: 56 },\r\n { size: 'Standard_DS5_v2', cpuCores: 16, memoryGiB: 56, localSSDGiB: 112 }\r\n ];\r\n private regions: string[];\r\n private products: any[];\r\n private productVersions: string[];\r\n private HostType = HostType;\r\n private creating: boolean = false;\r\n private created: boolean = false;\r\n\r\n private host: any = {\r\n type: null,\r\n region: 'eastus',\r\n size: 'Standard_DS2_v2',\r\n product: null,\r\n version: null\r\n };\r\n\r\n private vmSizeOverview: any = {\r\n cpuCores: this.vmSizes[0].cpuCores,\r\n memoryGiB: this.vmSizes[0].memoryGiB,\r\n localSSDGiB: this.vmSizes[0].localSSDGiB\r\n };\r\n\r\n constructor(\r\n public dialogRef: MdDialogRef, \r\n private regionService: RegionService,\r\n private productService: ProductService,\r\n private cloudViewService: CloudViewService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.host.type = HostType[this.type];\r\n this.getRegions();\r\n this.getProducts();\r\n }\r\n\r\n getProducts() {\r\n this.products = [];\r\n\r\n this.productService.getProducts().subscribe((products:any) => {\r\n this.products = products;\r\n }); \r\n }\r\n\r\n getProductVersions(product: any) { \r\n this.productVersions = this.uniqueVersions(this.products.find(p => p.id == product).toVersions.map((version:string) => {\r\n return version.substring(0, version.lastIndexOf('.')); // ignore patch versions\r\n }));\r\n }\r\n\r\n uniqueVersions(arr:any[]) {\r\n var u = {}, a = [];\r\n for(var i = 0, l = arr.length; i < l; ++i){\r\n if(!u.hasOwnProperty(arr[i])) {\r\n a.push(arr[i]);\r\n u[arr[i]] = 1;\r\n }\r\n }\r\n return a;\r\n }\r\n\r\n getRegions() {\r\n this.regions = [];\r\n\r\n this.regionService.getRegions().subscribe((regions:any) => {\r\n this.regions = regions;\r\n });\r\n }\r\n\r\n createHost() {\r\n let region = this.host.region;\r\n let size = this.host.size; \r\n \r\n this.creating = true;\r\n \r\n switch(this.type) {\r\n case HostType.APP:\r\n this.cloudViewService.createHost(this.host).subscribe((res:any) => {\r\n this.creating = false;\r\n this.created = true;\r\n this.close();\r\n });\r\n break;\r\n case HostType.DB:\r\n this.cloudViewService.createHost(this.host).subscribe((res:any) => {\r\n this.creating = false;\r\n this.created = true;\r\n this.close();\r\n });\r\n break;\r\n }\r\n }\r\n\r\n onVMSizeChange() { \r\n this.vmSizeOverview = this.vmSizes.find(vm => vm.size == this.host.size);\r\n }\r\n\r\n close() {\r\n this.dialogRef.close({ created: this.created });\r\n }\r\n\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/cloudview/cloudview-host-dialog.ts\n **/","module.exports = \"

Create host

\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n {{ region?.key }} \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{ vmSize.size }} \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Cores{{ vmSizeOverview?.cpuCores }}
Memory{{ vmSizeOverview?.memoryGiB }} GB
SSD{{ vmSizeOverview?.localSSDGiB }} GB
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{ product.name }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{ version }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/cloudview/cloudview-host-dialog.html\n ** module id = 606\n ** module chunks = 0\n **/","import { Component } from '@angular/core';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\nimport { SitesService } from '../sites/core/sites.service';\r\nimport { RegionService } from '../shared/services/region.service';\r\nimport { ProductService } from '../shared/services/product.service';\r\nimport { CloudViewService } from './cloudview.service';\r\nimport { RemoveWhiteSpacePipe } from '../shared/pipes/string.pipe';\r\n\r\n@Component({\r\n selector: 'cloudview-instance-dialog',\r\n template: require('./cloudview-instance-dialog.html'),\r\n providers: [CloudViewService, ProductService, RegionService, SitesService]\r\n})\r\nexport class CloudViewInstanceDialog {\r\n hostId: string;\r\n message : string;\r\n instances: any;\r\n error: any;\r\n regions: any[];\r\n products: any[];\r\n site: any;\r\n searchTimeout: any;\r\n removeWhiteSpace = new RemoveWhiteSpacePipe();\r\n creating: boolean = false;\r\n buttonText: string = 'Create';\r\n instanceLimitExceeded : boolean = false;\r\n\r\n instance:any = {\r\n siteId: null,\r\n siteName: null,\r\n region: null,\r\n product: null,\r\n version: null,\r\n dbPath: null,\r\n vanilla: false,\r\n siteExists: false,\r\n configExists: false\r\n };\r\n\r\n constructor(\r\n public dialogRef: MdDialogRef,\r\n private regionService: RegionService,\r\n private productService: ProductService,\r\n private cloudViewService: CloudViewService,\r\n private sitesService: SitesService) {\r\n\r\n this.getRegions();\r\n this.getProducts();\r\n }\r\n\r\n getSite(siteId: number) {\r\n this.message = \"\";\r\n if (this.searchTimeout != undefined) clearTimeout(this.searchTimeout);\r\n this.searchTimeout = setTimeout(() => {\r\n this.sitesService.getSite(siteId).subscribe((site: any) => {\r\n this.site = site;\r\n this.instance.siteId = this.site.siteId;\r\n this.instance.siteName = this.site.siteName;\r\n this.instance.siteExists = true;\r\n\r\n if (this.site.region != null) {\r\n this.instance.region = this.site.region;\r\n }\r\n }, err => {\r\n this.instance.siteId = null;\r\n this.instance.siteName = null;\r\n this.instance.siteExists = false; \r\n });\r\n\r\n this.cloudViewService.getSiteConfig(siteId).subscribe((config) => {\r\n this.instance.configExists = true;\r\n });\r\n\r\n this.cloudViewService.hasInstanceLimitExceeded(siteId).subscribe((res) => {\r\n this.instanceLimitExceeded = false;\r\n }, err => {\r\n this.message = err._body;\r\n this.instanceLimitExceeded = true;\r\n });\r\n }, 1000);\r\n }\r\n\r\n getRegions() {\r\n this.regionService.getRegions().subscribe((regions: any) => {\r\n this.regions = regions;\r\n });\r\n }\r\n\r\n getProducts() {\r\n this.productService.getProducts().subscribe((products: any) => {\r\n this.products = products;\r\n });\r\n }\r\n\r\n getProductVersions(productName: string): string[] {\r\n let productVersions = this.products.filter(p => p.name === productName);\r\n\r\n if (productVersions.length > 0) {\r\n return productVersions[0].toVersions;\r\n }\r\n return [];\r\n }\r\n\r\n validateDBPath() {\r\n this.instance.dbPath = this.removeWhiteSpace.transform(this.instance.dbPath);\r\n }\r\n\r\n createInstance() {\r\n this.creating = true;\r\n this.buttonText = 'Creating...';\r\n this.cloudViewService.createInstance(this.instance).subscribe((res:any) => {\r\n this.close();\r\n this.buttonText = 'Create';\r\n }, err => { \r\n if (err._body) {\r\n this.error = err._body;\r\n }\r\n this.creating = false;\r\n this.buttonText = 'Create';\r\n }); \r\n }\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/cloudview/cloudview-instance-dialog.ts\n **/","module.exports = \"

Create instance

\\r\\n

{{message}}

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{region.key}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{product.name}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{version}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/cloudview/cloudview-instance-dialog.html\n ** module id = 608\n ** module chunks = 0\n **/","import { Component } from '@angular/core';\r\nimport { CloudViewService } from \"./cloudview.service\";\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\n\r\n@Component({\r\n selector: 'cloudview-command-dialog',\r\n template: require('./cloudview-command-dialog.html'),\r\n providers: [CloudViewService]\r\n})\r\nexport class CloudViewCommandDialog {\r\n hostid : string;\r\n command : string;\r\n message : string;\r\n executing : boolean = false;\r\n success : boolean = false;\r\n error : boolean = false;\r\n constructor(\r\n public dialogRef: MdDialogRef, \r\n private cloudViewService: CloudViewService) {\r\n }\r\n\r\n ngOnInit() { \r\n \r\n }\r\n\r\n Execute(command: string) {\r\n this.executing = true;\r\n this.cloudViewService.runCommandsOnHost(command,this.hostid).subscribe((res) => {\r\n //Show success\r\n this.success = true;\r\n this.executing = false;\r\n setTimeout(() => {\r\n this.success = false;\r\n }, 3600);\r\n }, err => {\r\n this.error = true;\r\n this.executing = false;\r\n this.message = err._body;\r\n setTimeout(() => {\r\n this.error = false;\r\n }, 3600);\r\n });\r\n }\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/cloudview/cloudview-command-dialog.ts\n **/","module.exports = \"

Run Command

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

{{hostid}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
check_circle_outlineSuccess
\\r\\n
error_outlineError

{{message}}

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/cloudview/cloudview-command-dialog.html\n ** module id = 610\n ** module chunks = 0\n **/","import { Component } from '@angular/core';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\n\r\nimport { ApplicationService, ApplicationDocument, CloudViewDocument } from '../../applications/application.service';\r\nimport { AuthService } from '../../auth/auth.service';\r\nimport { start } from 'repl';\r\nimport { ToastsManager } from 'ng2-toastr/ng2-toastr';\r\n\r\n@Component({\r\n styles: [require('./applicationdoc-dialog.css')],\r\n selector: 'cloudviewdocdoc-dialog',\r\n template: require('./cloudviewdoc-dialog.html'),\r\n providers: [ApplicationService]\r\n})\r\nexport class CloudViewDocDialog {\r\n applicationName: string;\r\n applicationDocument: ApplicationDocument;\r\n file: File;\r\n fileNameLbl: string = \"\";\r\n fileAccept: string;\r\n\r\n constructor(\r\n public dialogRef: MdDialogRef,\r\n private auth: AuthService,\r\n private applicationService: ApplicationService,\r\n private toastr: ToastsManager) { }\r\n\r\n\r\n setCloudView(applicationName: string, applicationDocument: CloudViewDocument) {\r\n applicationName = \"CloudView\";\r\n }\r\n\r\n onChange(event: any) {\r\n let files = event.target.files;\r\n if (files.length === 0) {\r\n return;\r\n }\r\n this.file = files[0];\r\n this.fileNameLbl = this.file.name;\r\n }\r\n\r\n submit() {\r\n if (this.file == null) {\r\n return;\r\n }\r\n let fileToUpload = this.file;\r\n let formData = new FormData();\r\n formData.append('file', fileToUpload, fileToUpload.name);\r\n this.applicationService.uploadcloudviewDoc('CloudView.pdf', formData)\r\n .subscribe((res: any) => {\r\n this.toastr.success('upload successful');\r\n window.open(res.uri, \"_self\");\r\n }, (err: any) => {\r\n this.toastr.error('failed to upload');\r\n err.status;\r\n\r\n });\r\n this.close();\r\n\r\n }\r\n\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/shared/dialogs/cloudviewdoc-dialog.ts\n **/","module.exports = \"\\r\\n Upload a file\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/shared/dialogs/cloudviewdoc-dialog.html\n ** module id = 612\n ** module chunks = 0\n **/","module.exports = \"Cloud View\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Unallocated ({{ unallocatedIntancesCount }})\\r\\n refresh\\r\\n
\\r\\n
\\r\\n
Applications
\\r\\n
\\r\\n \\r\\n
{{ instance.id }}\\r\\n \\r\\n
\\r\\n
{{ instance?.id }}
\\r\\n
{{ instance?.siteName }} - {{ instance?.siteId }}
\\r\\n
{{ instance?.product }} {{ instance?.version }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Databases
\\r\\n
\\r\\n \\r\\n
{{ instance.id }}\\r\\n \\r\\n
\\r\\n
{{ instance?.id }}
\\r\\n
{{ instance?.siteName }} - {{ instance?.siteId }}
\\r\\n
{{ instance?.product }} {{ instance?.version }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Application Hosts ({{ appHostsCount }}) \\r\\n add_box\\r\\n refresh\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Database Hosts ({{ dbHostsCount }})\\r\\n add_box\\r\\n refresh\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Logs ({{logsCount}})\\r\\n Debug\\r\\n \\r\\n Severity\\r\\n \\r\\n Type\\r\\n \\r\\n Instance\\r\\n \\r\\n\\r\\n chevron_left\\r\\n chevron_right\\r\\n refresh\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
TIMESEVERITYTYPETYPE UIDDESCRIPTION
\\r\\n
{{ log?.eventTimeStamp | date: 'dd-MMM-y, H:mm:ss (Z)' }}
\\r\\n
\\r\\n
{{ LogSeverity[log?.severity] }}
\\r\\n
\\r\\n
{{ LogType[log?.type] }}
\\r\\n
\\r\\n
{{ log?.typeUID }}
\\r\\n
\\r\\n
{{ log?.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 \\r\\n Instances\\r\\n 0\\\">  ({{instances.length}}) \\r\\n add_box\\r\\n refresh\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Id\\r\\n \\r\\n Site Id\\r\\n \\r\\n Site Name\\r\\n \\r\\n Region\\r\\n \\r\\n Product\\r\\n \\r\\n Application Server\\r\\n \\r\\n Database Server\\r\\n \\r\\n Delete On\\r\\n \\r\\n Status\\r\\n \\r\\n
\\r\\n security\\r\\n {{ instance?.id}}{{ instance?.siteId}}{{ instance?.siteName }}{{ instance?.region}}{{ instance?.product}} {{ instance?.version }}\\r\\n \\r\\n {{ instance?.appServer }}\\r\\n \\r\\n \\r\\n {{ instance?.dbServer }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n {{ instance?.deleteOn | date: 'medium' }}\\r\\n \\r\\n {{ InstanceStatus[instance?.status] }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Hosts\\r\\n refresh\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
ServerInstancesTypeRegionStatus
{{ apphost?.id}}\\r\\n \\r\\n \\r\\n {{ HostType[apphost?.type]}}{{ apphost?.region}}{{ InstanceStatus[apphost?.status]}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{ dbhost?.id}}\\r\\n \\r\\n \\r\\n {{ HostType[dbhost?.type]}}{{ dbhost?.region}}{{ InstanceStatus[dbhost?.status]}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Monitor ({{logsCount}})\\r\\n chevron_left\\r\\n chevron_right\\r\\n refresh\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
TIMESEVERITYSERVERRESPONSE
\\r\\n
{{ log?.eventTimeStamp | date: 'dd-MMM-y, H:mm:ss (Z)' }}
\\r\\n
\\r\\n
{{ LogSeverity[log?.severity] }}
\\r\\n
\\r\\n
{{ log?.typeUID }}
\\r\\n
\\r\\n
{{ log?.description}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/cloudview/cloudview.component.html\n ** module id = 613\n ** module chunks = 0\n **/","module.exports = \".status-container {\\r\\n display:flex;\\r\\n flex-wrap: wrap;\\r\\n justify-content: flex-start;\\r\\n padding: 10px;\\r\\n}\\r\\n\\r\\n.status-item {\\r\\n margin:2px;\\r\\n display: flex;\\r\\n justify-content: center;\\r\\n align-items: center\\r\\n}\\r\\n\\r\\n.status {\\r\\n height: 10px;\\r\\n width: 10px;\\r\\n margin-right: 2px;\\r\\n}\\r\\n\\r\\n.containers {\\r\\n display: flex;\\r\\n flex-wrap: wrap;\\r\\n justify-content: unset;\\r\\n}\\r\\n\\r\\n.instance-container {\\r\\n height: 50px;\\r\\n width: 50px;\\r\\n border: 1px dashed #fff;\\r\\n display: flex;\\r\\n justify-content: center;\\r\\n align-items: center;\\r\\n flex-wrap: nowrap;\\r\\n cursor: pointer;\\r\\n user-select: none;\\r\\n font-size:10px\\r\\n}\\r\\n\\r\\n.instance-container:hover {\\r\\n background:whitesmoke;\\r\\n color:#000;\\r\\n}\\r\\n\\r\\n.running {\\r\\n background:#1DE9B6;\\r\\n color: #000;\\r\\n}\\r\\n\\r\\n.error {\\r\\n background: rgb(255,23,68);\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n.warning {\\r\\n background:#FF9100;\\r\\n color: #000;\\r\\n}\\r\\n\\r\\n.offline {\\r\\n background: #B0BEC5;\\r\\n color: #000;\\r\\n}\\r\\n\\r\\n.log-error {\\r\\n color: rgb(255,23,68);\\r\\n font-weight:bold;\\r\\n}\\r\\n\\r\\n.log-warn {\\r\\n color: #FF9100;\\r\\n font-weight:bold;\\r\\n}\\r\\n\\r\\n.empty {\\r\\n background: #fff;\\r\\n border: 1px dashed #e0e0e0;\\r\\n}\\r\\n\\r\\n.host-container {\\r\\n border: 1px solid #e0e0e0;\\r\\n margin: 4px;\\r\\n display: flex;\\r\\n flex-wrap: wrap;\\r\\n width:160px;\\r\\n background:#fff;\\r\\n justify-content: flex-end;\\r\\n}\\r\\n\\r\\n.host-header {\\r\\n display: flex;\\r\\n flex-wrap: wrap;\\r\\n align-items: center;\\r\\n padding: 6px;\\r\\n font-size:14px;\\r\\n width:100%;\\r\\n font-weight:bold;\\r\\n}\\r\\n\\r\\n.host-header-item {\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.host-instances {\\r\\n display: flex;\\r\\n flex-wrap: wrap;\\r\\n justify-content: unset;\\r\\n /*flex:1;*/\\r\\n}\\r\\n\\r\\n.arrow-up {\\r\\n width: 0;\\r\\n height: 0;\\r\\n border-left: 5px solid transparent;\\r\\n border-right: 5px solid transparent;\\r\\n border-bottom: 5px solid black;\\r\\n position: relative;\\r\\n top: -26%;\\r\\n left: 1%;\\r\\n}\\r\\n\\r\\n.arrow-down {\\r\\n width: 0;\\r\\n height: 0;\\r\\n border-left: 5px solid transparent;\\r\\n border-right: 5px solid transparent;\\r\\n border-top: 5px solid #f00;\\r\\n position: relative;\\r\\n top: 26%;\\r\\n left: 1%;\\r\\n}\\r\\n/*\\r\\n.loader,\\r\\n.loader:after {\\r\\n border-radius: 50%;\\r\\n width: 10em;\\r\\n height: 10em;\\r\\n}\\r\\n.loader {\\r\\n font-size: 7px;\\r\\n position: relative;\\r\\n text-indent: -9999em;\\r\\n border-top: 1.1em solid rgba(0,0,0, 0.2);\\r\\n border-right: 1.1em solid rgba(0,0,0, 0.2);\\r\\n border-bottom: 1.1em solid rgba(0,0,0, 0.2);\\r\\n border-left: 1.1em solid #000000;\\r\\n -webkit-transform: translateZ(0);\\r\\n -ms-transform: translateZ(0);\\r\\n transform: translateZ(0);\\r\\n -webkit-animation: load8 1.1s infinite linear;\\r\\n animation: load8 1.1s infinite linear;\\r\\n}\\r\\n@-webkit-keyframes load8 {\\r\\n 0% {\\r\\n -webkit-transform: rotate(0deg);\\r\\n transform: rotate(0deg);\\r\\n }\\r\\n 100% {\\r\\n -webkit-transform: rotate(360deg);\\r\\n transform: rotate(360deg);\\r\\n }\\r\\n}\\r\\n@keyframes load8 {\\r\\n 0% {\\r\\n -webkit-transform: rotate(0deg);\\r\\n transform: rotate(0deg);\\r\\n }\\r\\n 100% {\\r\\n -webkit-transform: rotate(360deg);\\r\\n transform: rotate(360deg);\\r\\n }\\r\\n}*/\\r\\n\\r\\n.container {\\r\\n margin:10px; \\r\\n border: 1px solid #e0e0e0;\\r\\n}\\r\\n\\r\\n.container-header {\\r\\n padding:6px;\\r\\n border-bottom:1px solid #e0e0e0;\\r\\n font-size:12px;\\r\\n font-weight:bold;\\r\\n background: #fff;\\r\\n display:flex;\\r\\n justify-content: flex-end;\\r\\n align-items: center;\\r\\n}\\r\\n\\r\\n.container-header span {\\r\\n width:100%;\\r\\n}\\r\\n\\r\\n.container-header-button {\\r\\n font-size:14px; \\r\\n margin-left:10px; \\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.container-header-button:hover {\\r\\n background-color: #fff;\\r\\n border-radius: 2px;\\r\\n}\\r\\n\\r\\n.host-button {\\r\\n background: #fff;\\r\\n border:none;\\r\\n font-size:16px;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.actions-menu {\\r\\n z-index:10; \\r\\n padding:0; \\r\\n margin:0; \\r\\n position:fixed; \\r\\n margin-top:28px; \\r\\n width:160px; \\r\\n background:#fff; \\r\\n border-top:1px solid #e0e0e0; \\r\\n border-bottom:1px solid #e0e0e0;\\r\\n font-size:10px;\\r\\n}\\r\\n\\r\\n/* Tooltip container */\\r\\n/*.tooltip {\\r\\n position: relative;\\r\\n display: inline-block;\\r\\n border-bottom: 1px dotted black; /* If you want dots under the hoverable text\\r\\n}*/\\r\\n\\r\\n/* Tooltip text */\\r\\n .instance-container .tooltiptext {\\r\\n font-size:12px;\\r\\n visibility: hidden;\\r\\n width: 120px;\\r\\n background-color: #fff;\\r\\n color: #000;\\r\\n text-align: center;\\r\\n padding: 5px 0;\\r\\n border-radius: 2px;\\r\\n box-shadow: 0 19px 38px rgba(0,0,0,0.30), 0 15px 12px rgba(0,0,0,0.22);\\r\\n\\r\\n /* Position the tooltip text - see examples below! */\\r\\n position: absolute;\\r\\n z-index: 1;\\r\\n}\\r\\n\\r\\n/* Show the tooltip text when you mouse over the tooltip container */\\r\\n.instance-container:hover .tooltiptext {\\r\\n visibility: visible;\\r\\n}\\r\\n\\r\\n.instance-detail-container {\\r\\n display:flex;\\r\\n flex-wrap: wrap;\\r\\n font-size:9px;\\r\\n}\\r\\n\\r\\n.instance-detail-row {\\r\\n width:100%;\\r\\n}\\r\\n\\r\\n.active-filter {\\r\\n background: #69c09a;\\r\\n}\\r\\n\\r\\n.icon-button {\\r\\n font-size:20px; \\r\\n margin-left:10px; \\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.icon-button:hover {\\r\\n color:#025064;\\r\\n}\\r\\n\\r\\ntd {\\r\\n padding: 2px;\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n#search:disabled {\\r\\n cursor: not-allowed;\\r\\n}\"\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/cloudview/cloudview.css\n ** module id = 614\n ** module chunks = 0\n **/","module.exports = \"/*\\r\\n * Define the widths: play around with these \\r\\n * to get a best fit.\\r\\n */\\r\\n/*\\r\\n * Basic styles, good for a large display. Everything fits in\\r\\n * one row, no wrapping. All text based cells grow equally.\\r\\n */\\r\\n.table-row {\\r\\n display: flex;\\r\\n display: -webkit-flex;\\r\\n flex-direction: row;\\r\\n -webkit-flex-direction: row;\\r\\n flex-wrap: nowrap;\\r\\n -webkit-flex-wrap: nowrap;\\r\\n /*width: 100%;*/\\r\\n padding-left: 6px;\\r\\n /*padding-right: 15px;*/\\r\\n background-color:#fff;\\r\\n}\\r\\n.wrapper {\\r\\n display: flex;\\r\\n display: -webkit-flex;\\r\\n flex-direction: row;\\r\\n -webkit-flex-direction: row;\\r\\n}\\r\\n.column {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n flex-shrink: 0;\\r\\n -webkit-flex-shrink: 0;\\r\\n vertical-align: top;\\r\\n}\\r\\n/*.index {\\r\\n width: 25px;\\r\\n}*/\\r\\n.title {\\r\\n width: 50px;\\r\\n}\\r\\n.module {\\r\\n width: 110px;\\r\\n}\\r\\n.reporter {\\r\\n width: 85px;\\r\\n}\\r\\n.status {\\r\\n width: 95px;\\r\\n}\\r\\n.owner {\\r\\n width: 75px;\\r\\n}\\r\\n.severity {\\r\\n width: 80px;\\r\\n}\\r\\n.watch,\\r\\n.add-comment {\\r\\n width: 18px;\\r\\n}\\r\\n.date {\\r\\n width: 110px;\\r\\n}\\r\\n.index {\\r\\n text-align: center;\\r\\n}\\r\\n.title {\\r\\n /*font-weight: bold;*/\\r\\n /*color: gray;*/\\r\\n}\\r\\n.comment {\\r\\n width: 120px;\\r\\n}\\r\\n.title,\\r\\n.comment {\\r\\n flex-grow: 1;\\r\\n -webkit-flex-grow: 1;\\r\\n overflow: hidden;\\r\\n white-space: pre-wrap;\\r\\n text-overflow: ellipsis;\\r\\n padding-right: 4px;\\r\\n}\\r\\n.date {\\r\\n width: 180px;\\r\\n /*text-align:right;*/\\r\\n padding-right: 4px;\\r\\n}\\r\\n/* growable wrappers */\\r\\n.title-comment,\\r\\n.title-comment-module-reporter,\\r\\n.attributes {\\r\\n flex-grow: 1;\\r\\n -webkit-flex-grow: 1;\\r\\n}\\r\\n/*\\r\\n * Media queries: optimize for different screen widths.\\r\\n */\\r\\n/*\\r\\n * Media breaks.\\r\\n */\\r\\n@media all and (max-width: 1236px) {\\r\\n .title-comment {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n width: 220px;\\r\\n }\\r\\n .title-comment div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n .title-comment > div {\\r\\n width: 100%;\\r\\n }\\r\\n .module-reporter,\\r\\n .status-owner {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n }\\r\\n .module-reporter div,\\r\\n .status-owner div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n}\\r\\n@media all and (max-width: 956px) {\\r\\n .module-reporter {\\r\\n flex-direction: row;\\r\\n -webkit-flex-direction: row;\\r\\n }\\r\\n .title-comment-module-reporter {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n width: 220px;\\r\\n }\\r\\n .title-comment-module-reporter div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n .title-comment-module-reporter > div {\\r\\n width: 100%;\\r\\n }\\r\\n .status-owner-severity {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n }\\r\\n .status-owner-severity div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n .icons {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n }\\r\\n .icons div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n .dates {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n }\\r\\n .dates div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n}\\r\\n@media all and (max-width: 528px) {\\r\\n .table-row {\\r\\n padding-left: 4px;\\r\\n /*padding-right: 4px;*/\\r\\n }\\r\\n .attributes {\\r\\n flex-direction: column;\\r\\n -webkit-flex-direction: column;\\r\\n width: 220px;\\r\\n }\\r\\n .attributes div {\\r\\n flex-grow: 0;\\r\\n -webkit-flex-grow: 0;\\r\\n }\\r\\n .attributes > div {\\r\\n width: 100%;\\r\\n }\\r\\n .module-reporter,\\r\\n .status-owner {\\r\\n flex-direction: row;\\r\\n -webkit-flex-direction: row;\\r\\n }\\r\\n}\\r\\n/*\\r\\n * General good-look styles\\r\\n */\\r\\n.table-row {\\r\\n border-bottom: 1px solid #e0e0e0;\\r\\n border-collapse: collapse;\\r\\n padding-top: 2px;\\r\\n font-size:12px;\\r\\n}\\r\\n\\r\\n.table-row:hover {\\r\\n background-color:whitesmoke;\\r\\n cursor:pointer;\\r\\n}\\r\\n\\r\\n.table-row.header {\\r\\n /*background-color: rgba(18,195,244, 0.1);*/\\r\\n font-weight: bold;\\r\\n padding-top: 6px;\\r\\n padding-bottom: 6px;\\r\\n font-size:12px;\\r\\n}\\r\\n.glyphicon {\\r\\n color: #DDDDDD;\\r\\n}\\r\\n.header .glyphicon {\\r\\n color: #333;\\r\\n}\\r\\n.glyphicon-eye-open.active {\\r\\n color: blue;\\r\\n}\\r\\n.glyphicon-comment.active {\\r\\n color: #3EBB0D;\\r\\n}\\r\\n.glyphicon:hover {\\r\\n color: #666;\\r\\n cursor: pointer;\\r\\n text-decoration: underline;\\r\\n}\\r\\n.reporter {\\r\\n color: #999999;\\r\\n}\\r\\n.comment {\\r\\n font-style:unset;\\r\\n}\\r\\n.status.inprogress {\\r\\n color: #000;\\r\\n}\\r\\n.status.completed {\\r\\n color: #00E676;\\r\\n}\\r\\n.status.stopped {\\r\\n color: rgb(255, 23, 68);\\r\\n}\"\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/cloudview/cloudview-instances-table.css\n ** module id = 615\n ** module chunks = 0\n **/","import { Component, Input, Output, OnInit, EventEmitter } from '@angular/core';\r\nimport { AuthService, Role, Permission } from '../auth/auth.service';\r\nimport { InstanceStatus, CloudViewService, HostType } from './cloudview.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'cloudview-host',\r\n template: require('./cloudview-host.component.html'),\r\n styles: [ require('./cloudview.css')],\r\n providers: [CloudViewService]\r\n})\r\nexport class CloudViewHostComponent implements OnInit {\r\n @Input() host:any;\r\n @Output() delete: EventEmitter = new EventEmitter();\r\n InstanceStatus = InstanceStatus;\r\n Role: any = Role;\r\n Permission: any = Permission;\r\n HostType: any = HostType;\r\n hostHeartbeatSubscription: Subscription;\r\n \r\n constructor(public auth:AuthService, public cloudviewService: CloudViewService) {}\r\n\r\n ngOnInit() {\r\n // check to see whether the host is still online\r\n this.hostHeartbeatSubscription = this.cloudviewService.pollHostHeartbeat(this.host.id).subscribe((host:any) => {\r\n this.host = host;\r\n });\r\n\r\n }\r\n\r\n deleteHost(host:any) {\r\n if(confirm(`Are you sure you want to delete HOST \"${host.id}\"`)) {\r\n this.cloudviewService.deleteHost(host.id).subscribe((res:any) => {\r\n this.delete.emit(host);\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.hostHeartbeatSubscription.unsubscribe();\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/cloudview/cloudview-host.component.ts\n **/","module.exports = \"
\\r\\n
\\r\\n
\\r\\n {{ host?.displayName }} \\r\\n \\r\\n
\\r\\n
{{ host?.region }}
\\r\\n
{{ host?.vmSize }}
\\r\\n
{{ InstanceStatus[host?.status] }}
\\r\\n
{{ host?.product?.name }}
\\r\\n
{{ host?.product?.version }}
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/cloudview/cloudview-host.component.html\n ** module id = 617\n ** module chunks = 0\n **/","import { Component, Input, Output, OnInit, ViewContainerRef, EventEmitter } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\nimport { CloudViewService, InstanceStatus, HostType } from './cloudview.service';\r\nimport { CloudViewInstanceDialog } from './cloudview-instance-dialog';\r\n\r\n@Component({\r\n selector: 'cloudview-host-instances',\r\n template: require('./cloudview-host-instances.component.html'),\r\n styles: [require('./cloudview.css')],\r\n providers: [CloudViewService]\r\n})\r\nexport class CloudViewHostInstancesComponent implements OnInit {\r\n @Input() host: any;\r\n loading: boolean = false;\r\n instances: any[] = [];\r\n instancesViewModel: any[] = [];\r\n cloudViewInstanceDialogRef: MdDialogRef;\r\n InstanceStatus: any = InstanceStatus;\r\n\r\n constructor(\r\n public instanceDialog: MdDialog,\r\n private router: Router,\r\n private cloudviewService: CloudViewService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.getInstances(this.host);\r\n }\r\n\r\n getInstances(host: any) {\r\n this.loading = true;\r\n\r\n this.instancesViewModel = new Array(this.host.slots);\r\n\r\n this.cloudviewService.getHostInstances(host.id).subscribe((instances: any) => {\r\n if (Array.isArray(instances)) {\r\n if (instances.length > 0) {\r\n this.instances = instances;\r\n\r\n for (var i = 0; i < instances.length; i++) {\r\n var instance = instances[i];\r\n this.instancesViewModel[i] = instances[i];\r\n }\r\n }\r\n }\r\n\r\n this.loading = false;\r\n }, err => this.loading = false);\r\n }\r\n\r\n getContainerDisplayName(instanceId: string) {\r\n if (instanceId) {\r\n return `${instanceId}`;\r\n }\r\n return '';\r\n }\r\n\r\n openInstanceDialog(hostId: string) {\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = null;\r\n\r\n this.cloudViewInstanceDialogRef = this.instanceDialog.open(CloudViewInstanceDialog, config);\r\n this.cloudViewInstanceDialogRef.componentInstance.hostId = hostId;\r\n this.cloudViewInstanceDialogRef.componentInstance.instances = this.instances;\r\n\r\n this.cloudViewInstanceDialogRef.afterClosed().subscribe((result) => {\r\n this.getInstances(hostId);\r\n });\r\n }\r\n\r\n /** Only allow app servers to route to cloudview on click */\r\n viewInstance(host: any, instance: any) {\r\n if (host && instance) {\r\n if (host.type === HostType.APP) {\r\n this.router.navigate([`cloudview/hosts/${host.id}/instances/${instance.id}`]);\r\n }\r\n }\r\n }\r\n\r\n deleteInstance(instance: any) {\r\n if (confirm(`Are you sure you want to delete ${instance.id}?`)) {\r\n this.cloudviewService.deleteInstance(instance.id).subscribe((res: any) => {\r\n this.getInstances(this.host);\r\n });\r\n }\r\n }\r\n\r\n unallocatedInstance(host: any, instance: any) {\r\n this.cloudviewService.unallocatedInstance(host.id, instance.id).subscribe((res: any) => {\r\n this.getInstances(this.host);\r\n });\r\n\r\n } \r\n}\r\n\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/cloudview/cloudview-host-instances.component.ts\n **/","module.exports = \"\\r\\n
\\r\\n
{{ getContainerDisplayName(instance?.id) }} \\r\\n\\r\\n \\r\\n
\\r\\n
{{ instance?.id }}
\\r\\n
{{ instance?.siteName }} - {{ instance?.siteId }}
\\r\\n
{{ instance?.product }} {{ instance?.version }}
\\r\\n
Status: {{ InstanceStatus[instance?.appServerStatus] }}
\\r\\n
Status: {{ InstanceStatus[instance?.dbServerStatus] }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/cloudview/cloudview-host-instances.component.html\n ** module id = 619\n ** module chunks = 0\n **/","import { Component, OnInit, ViewChild, ElementRef, ViewContainerRef } from '@angular/core';\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { DOMEvents } from '../dom-events';\r\nimport { CloudViewService } from './cloudview.service';\r\nimport { AuthService, LoggedInUser } from '../auth/auth.service';\r\nimport { RemoteDesktopService } from '../shared/services/remote-desktop.service';\r\nimport { MdDialog, MdDialogRef, MdDialogConfig, MD_DIALOG_DATA } from '../../../node_modules/@angular/material';\r\nimport { forEach } from '../../../node_modules/@angular/router/src/utils/collection';\r\nimport { ViewMode } from './cloudview.component';\r\n\r\n@Component({\r\n selector: 'cloudview-instance',\r\n template: require('./cloudview-instance.component.html'),\r\n styles: [require('./cloudview.css')],\r\n providers: [CloudViewService, RemoteDesktopService]\r\n})\r\nexport class CloudViewInstanceComponent implements OnInit {\r\n private user: LoggedInUser;\r\n\r\n srcValue: SafeResourceUrl;\r\n instanceId: string = '';\r\n iframeLoader: boolean = true;\r\n settingsMenuOpen: boolean = false;\r\n accessToken: string;\r\n stagingSuffix = true;\r\n alertDialogRef: MdDialogRef;\r\n sentText: string;\r\n\r\n constructor(\r\n private domSantizer: DomSanitizer,\r\n private dialog : MdDialog,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private domEvents: DOMEvents,\r\n private authService: AuthService,\r\n private cloudViewService: CloudViewService,\r\n public viewContainerRef: ViewContainerRef,\r\n private remoteDesktopService: RemoteDesktopService) {\r\n\r\n this.route.params.subscribe(params => {\r\n this.instanceId = params['instanceId']\r\n });\r\n\r\n if (process.env.ENV === 'production') {\r\n this.stagingSuffix = false;\r\n }\r\n\r\n this.user = this.authService.getUser();\r\n }\r\n\r\n ngOnInit() {\r\n this.domEvents.triggerOnDocument(\"appready\");\r\n this.getAccessToken(this.instanceId);\r\n\r\n this.sentText = this.route.snapshot.paramMap.get('searchText');\r\n }\r\n\r\n /** Get the access token for this instance */\r\n getAccessToken(instanceId: string) {\r\n this.cloudViewService.getInstanceAccessToken(instanceId).subscribe((res: any) => {\r\n this.load(instanceId, res.access_token);\r\n });\r\n }\r\n\r\n /** Load the iframe for the given instance */\r\n load(instanceId: string, access_token: string) {\r\n let suffix = this.stagingSuffix ? '-s' : '';\r\n let srcURL = `https://${instanceId}${suffix}.cloudview.epicor.com/admin/#/connect/${access_token}`;\r\n this.srcValue = this.domSantizer.bypassSecurityTrustResourceUrl(srcURL);\r\n\r\n this.iframeLoader = false;\r\n }\r\n\r\n /** Download cloud view instance RDP file */\r\n downloadRDP() {\r\n let instanceId = this.instanceId;\r\n\r\n this.remoteDesktopService.getCloudViewInstanceRDPToken(instanceId).subscribe((data: any) => {\r\n if (data != null) {\r\n let downloadUrl = this.remoteDesktopService.getCloudViewInstanceRDPDownloadUrl(instanceId, data.token);\r\n let newWindow = window.open(downloadUrl, '_self');\r\n newWindow = null;\r\n\r\n this.toggleSettings();\r\n }\r\n });\r\n }\r\n\r\n /** Show access token for 1 minute */\r\n showAccessToken() {\r\n let timeout: number = 60000; // 1 min\r\n\r\n this.cloudViewService.getInstanceAccessToken(this.instanceId).subscribe((data: any) => {\r\n this.accessToken = data.access_token;\r\n\r\n setTimeout(() => {\r\n this.accessToken = null;\r\n }, timeout);\r\n\r\n this.settingsMenuOpen = false;\r\n });\r\n }\r\n\r\n refreshAccessToken() {\r\n this.accessToken = null;\r\n\r\n this.cloudViewService.refreshInstanceAccessToken(this.instanceId).subscribe((res: any) => {\r\n this.getAccessToken(this.instanceId);\r\n });\r\n }\r\n\r\n restartCloudViewWorker(instanceId: string) {\r\n this.settingsMenuOpen = false;\r\n this.cloudViewService.getInstance(instanceId).subscribe((instance: any) => {\r\n this.cloudViewService.runCommandsOnHost(\"RestartCloudViewWorker\",instance.appServer).subscribe((res) => {\r\n this.alertDialogRef = this.dialog.open(RestartServiceDialog);\r\n this.alertDialogRef.componentInstance.message = 'CloudView worker restarted successfully.Please wait 5 minutes for the service to initialize...'\r\n }, err => {\r\n this.alertDialogRef = this.dialog.open(RestartServiceDialog);\r\n this.alertDialogRef.componentInstance.message = err._body;\r\n });\r\n });\r\n }\r\n\r\n downloadHelp(){\r\n this.cloudViewService.getHelp();\r\n }\r\n\r\n toggleSettings() {\r\n if (this.settingsMenuOpen) {\r\n this.settingsMenuOpen = false;\r\n } else {\r\n this.settingsMenuOpen = true;\r\n }\r\n }\r\n\r\n copyToClipboard(input: any, button: any) {\r\n input.focus();\r\n\r\n try {\r\n var copied = document.execCommand('copy');\r\n if (copied) {\r\n button.innerHTML = 'Copied!';\r\n this.accessToken = null;\r\n }\r\n } catch (err) {\r\n console.log('Unable to copy');\r\n }\r\n }\r\n\r\n selectAllText(input: any) {\r\n input.setSelectionRange(0, input.value.length);\r\n }\r\n\r\n back() {\r\n // window.history.back();\r\n this.router.navigate(['cloudview'], {queryParams: {viewMode: ViewMode.Instances, searchText: this.sentText}});\r\n }\r\n\r\n}\r\n\r\n@Component({\r\n selector: 'restartservicedialog',\r\n template: `\r\n
\r\n
\r\n
\r\n {{message}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n`\r\n})\r\n\r\nexport class RestartServiceDialog {\r\n message : string;\r\n constructor(public dialogRef: MdDialogRef){}\r\n @ViewChild('container') container: ElementRef;\r\n\r\n render() {\r\n this.container.nativeElement.parentElement.parentElement.style.width = \"638px\";\r\n }\r\n\r\n ok() {\r\n this.dialogRef.close();\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/cloudview/cloudview-instance.component.ts\n **/","module.exports = \"Cloud View {{ instanceId }}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Restart Cloud View Worker\\r\\n RDP Connect\\r\\n Show Access Token\\r\\n Refresh Access Token\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n chevron_left\\r\\n \\r\\n Back\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/cloudview/cloudview-instance.component.html\n ** module id = 621\n ** module chunks = 0\n **/","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'cloudview-host-statistics',\r\n template: require('./cloudview-host-statistics.component.html'),\r\n styles: [ require('./cloudview.css')]\r\n})\r\nexport class CloudViewHostStatisticsComponent {\r\n @Input() host: any;\r\n stats: any = {\r\n cpu: {\r\n utilisation: \"10\",\r\n speed: \"2.69\"\r\n },\r\n memory: {\r\n inUse: \"6.5\",\r\n available: \"9.3\",\r\n commited: \"8.3/18.3 GB\"\r\n },\r\n disk: {\r\n usedSpace: \"206GB\",\r\n freeSpace: \"15.8GB\",\r\n capacity: \"222GB\"\r\n }\r\n }\r\n\r\n constructor() {\r\n \r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/cloudview/cloudview-host-statistics.component.ts\n **/","module.exports = \"
\\r\\n
Performance
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/cloudview/cloudview-host-statistics.component.html\n ** module id = 623\n ** module chunks = 0\n **/","import { Component, OnInit } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { DOMEvents } from '../dom-events';\r\nimport { CloudViewService } from './cloudview.service';\r\nimport { CloudViewConfigAction } from './cloudview-config-form.component';\r\n\r\n@Component({\r\n selector: 'create-site-cloudview-config',\r\n template: require('./create-site-cloudview-config.component.html'),\r\n providers: [CloudViewService]\r\n})\r\nexport class CreateSiteCloudViewConfigComponent implements OnInit {\r\n action: any = CloudViewConfigAction;\r\n siteId: number;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private cloudviewService: CloudViewService,\r\n private domEvents: DOMEvents) {\r\n this.route.params.subscribe(params => {\r\n this.siteId = +params['siteId'];\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.domEvents.triggerOnDocument(\"appready\");\r\n }\r\n\r\n onSubmit(config: any) {\r\n if (config) {\r\n this.cloudviewService.createSiteConfig(config).subscribe((res:any) => {\r\n this.router.navigateByUrl(`/sites/${config.siteId}`);\r\n });\r\n }\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/cloudview/create-site-cloudview-config.component.ts\n **/","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\r\nimport { SitesService } from '../sites/core/sites.service';\r\nimport { RegionService } from '../shared/services/region.service';\r\nimport { CloudViewService } from './cloudview.service';\r\n\r\n@Component({\r\n selector: 'cloudview-config-form',\r\n template: require('./cloudview-config-form.component.html'),\r\n styles: [`\r\n .field-spacer {\r\n margin:16px 0\r\n }\r\n\r\n .field-input {\r\n height:38px;\r\n }\r\n\r\n .field-input-fill-remaining-space {\r\n width: 100%;\r\n height: 38px;\r\n }\r\n `],\r\n providers: [RegionService, CloudViewService, SitesService]\r\n})\r\nexport class CloudViewConfigFormComponent implements OnInit {\r\n @Input() siteId: number;\r\n @Input() action: CloudViewConfigAction;\r\n @Output() onSubmit: EventEmitter = new EventEmitter();\r\n\r\n private formLoaded: boolean = false;\r\n private toolbarTitle: string;\r\n submitButtonText: string = 'submit';\r\n regions:any[];\r\n\r\n config:any = {\r\n siteId: null,\r\n siteName: null,\r\n instances: 3,\r\n region: null,\r\n deleteAfter: 2190\r\n }\r\n\r\n constructor(\r\n private regionService: RegionService, \r\n private cloudviewService: CloudViewService,\r\n private sitesService: SitesService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n if (this.action == CloudViewConfigAction.Create) {\r\n this.toolbarTitle = 'Create Cloud View Configuration';\r\n this.submitButtonText = 'Create';\r\n this.getSite(this.siteId);\r\n this.getRegions();\r\n this.formLoaded = true;\r\n }\r\n\r\n if (this.action == CloudViewConfigAction.Edit) {\r\n this.toolbarTitle = 'Edit Cloud View Configuration';\r\n this.submitButtonText = 'Save Changes';\r\n this.getRegions();\r\n this.getConfig();\r\n this.formLoaded = true;\r\n }\r\n }\r\n\r\n\r\n getSite(siteId: number) {\r\n this.sitesService.getSite(siteId).subscribe((site:any) => {\r\n this.config.siteId = site.siteId;\r\n this.config.siteName = site.siteName;\r\n });\r\n }\r\n\r\n getRegions() {\r\n this.regionService.getRegions().subscribe((regions:any) => {\r\n this.regions = regions;\r\n });\r\n }\r\n\r\n getConfig() {\r\n this.cloudviewService.getSiteConfig(this.siteId).subscribe((config: any) => {\r\n this.config = config;\r\n });\r\n }\r\n\r\n submit() {\r\n this.onSubmit.emit(this.config);\r\n }\r\n}\r\n\r\nexport enum CloudViewConfigAction {\r\n Create,\r\n Edit\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/cloudview/cloudview-config-form.component.ts\n **/","module.exports = \"
\\r\\n \\r\\n {{ toolbarTitle }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/cloudview/cloudview-config-form.component.html\n ** module id = 626\n ** module chunks = 0\n **/","module.exports = \"\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/cloudview/create-site-cloudview-config.component.html\n ** module id = 627\n ** module chunks = 0\n **/","import { Component, OnInit } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { DOMEvents } from '../dom-events';\r\nimport { CloudViewService } from './cloudview.service';\r\nimport { CloudViewConfigAction } from './cloudview-config-form.component';\r\n\r\n@Component({\r\n selector: 'edit-site-cloudview-config',\r\n template: require('./edit-site-cloudview-config.component.html'),\r\n providers: [CloudViewService]\r\n})\r\nexport class EditSiteCloudViewConfigComponent implements OnInit {\r\n action: any = CloudViewConfigAction;\r\n siteId: number;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private cloudviewService: CloudViewService,\r\n private domEvents: DOMEvents) {\r\n this.route.params.subscribe(params => {\r\n this.siteId = +params['siteId'];\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.domEvents.triggerOnDocument(\"appready\");\r\n }\r\n\r\n onSubmit(config: any) {\r\n if(config) {\r\n this.cloudviewService.updateSiteConfig(config).subscribe((res:any) => {\r\n this.router.navigateByUrl(`/sites/${config.siteId}`);\r\n });\r\n }\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/cloudview/edit-site-cloudview-config.component.ts\n **/","module.exports = \"\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/cloudview/edit-site-cloudview-config.component.html\n ** module id = 629\n ** module chunks = 0\n **/","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'cloudview-host-performance',\r\n template: require('./cloudview-host-performance.component.html'),\r\n styles: [`\r\n .info {\r\n display: flex;\r\n justify-content:flex-start;\r\n flex-direction:column;\r\n font-size:1em;\r\n font-weight:normal;\r\n }\r\n `]\r\n})\r\nexport class CloudViewHostPerformanceComponent {\r\n @Input() host: any;\r\n visible = false;\r\n cpu = '';\r\n memory = '';\r\n disk = '';\r\n\r\n ngOnInit() {\r\n this.getCPUInfo();\r\n this.getMemoryInfo();\r\n this.getDiskInfo();\r\n }\r\n\r\n /**\r\n * Get CPU Performance info\r\n */\r\n getCPUInfo() {\r\n try {\r\n let utilization = Math.ceil(this.host.performance.cpu.utilization);\r\n this.cpu = `CPU: ${utilization}%`;\r\n } catch (err) {\r\n // no cpu info\r\n }\r\n }\r\n\r\n /**\r\n * Get Memory Performance info\r\n */\r\n getMemoryInfo() {\r\n try {\r\n let inUse = this.round(this.host.performance.memory.inUse / 1000, 1); // mb to gb\r\n let total = this.round(this.host.performance.memory.total / 1000, 1);\r\n this.memory = `Memory: ${inUse}/${total} GB`;\r\n } catch (err) {\r\n // no memory info\r\n }\r\n }\r\n\r\n /**\r\n * Get Disk info\r\n */\r\n getDiskInfo() {\r\n try {\r\n let usedSpace = this.host.performance.disks[0].usedSpace;\r\n let capacity = this.host.performance.disks[0].capacity;\r\n this.disk = `Disk: ${usedSpace}/${capacity} GB`;\r\n } catch (err) { \r\n // no disk info\r\n }\r\n }\r\n\r\n round(value:number, precision: number) {\r\n let multiplier = Math.pow(10, precision || 0);\r\n return Math.round(value * multiplier) / multiplier;\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/cloudview/cloudview-host-performance.component.ts\n **/","module.exports = \"
\\r\\n
{{ cpu }}
\\r\\n
{{ memory }}
\\r\\n
{{ disk }}
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/cloudview/cloudview-host-performance.component.html\n ** module id = 631\n ** module chunks = 0\n **/","import { Injectable } from '@angular/core';\r\nimport { CanDeactivate } from '@angular/router';\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\nexport interface CanComponentDeactivate {\r\n canDeactivate: () => Observable | Promise | boolean;\r\n}\r\n\r\n@Injectable()\r\nexport class DeactivateGuardService implements CanDeactivate{\r\n\r\n canDeactivate(component: CanComponentDeactivate) {\r\n return component.canDeactivate ? component.canDeactivate() : true;\r\n }\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/shared/services/deactivate-guard.service.ts\n **/","import { Component, OnInit } from '@angular/core';\r\nimport { DOMEvents } from '../dom-events';\r\nimport { ZoneService } from '../shared/services/zone.service';\r\nimport { AuthService, Role, Permission } from '../auth/auth.service';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'zones',\r\n template: require('./zones.component.html'),\r\n styles: [require('./zones.component.css')],\r\n providers: [ZoneService]\r\n})\r\nexport class ZonesComponent implements OnInit {\r\n searchText: string = '';\r\n zone: any;\r\n region: any[];\r\n regions: any[] = [];\r\n zones: Zone[] = [];\r\n zoneRegions: string[] = [];\r\n searchTimeout: any;\r\n Role: any = Role;\r\n Permission: any = Permission;\r\n zonesLoader: boolean = false;\r\n showZoneDetail: boolean = false;\r\n\r\n constructor(private domEvents: DOMEvents,\r\n private zoneService: ZoneService,\r\n private router: Router,\r\n private auth: AuthService) { }\r\n\r\n ngOnInit(): void {\r\n this.domEvents.triggerOnDocument('appready');\r\n this.getZonesDetails();\r\n }\r\n\r\n filterZone() {\r\n if (this.searchTimeout != undefined) clearTimeout(this.searchTimeout);\r\n this.searchTimeout = setTimeout(() => {\r\n if (this.searchText == '') {\r\n this.getZonesDetails();\r\n } else {\r\n this.getZone(this.searchText);\r\n }\r\n }, 500);\r\n }\r\n\r\n getZonesDetails() {\r\n this.zonesLoader = true;\r\n this.zoneService.getZonesDetails().subscribe((data: any) => {\r\n this.zones = data;\r\n this.zonesLoader = false;\r\n }, err => {\r\n this.zonesLoader = false;\r\n });\r\n }\r\n\r\n getZone(id: string = '') {\r\n this.zonesLoader = true;\r\n this.zoneService.getZone(id).subscribe((data: any) => {\r\n this.zones = [data];\r\n this.zonesLoader = false;\r\n }, err => {\r\n this.zonesLoader = false;\r\n });\r\n }\r\n\r\n getZoneRegions(id: string = '') {\r\n this.zoneService.getZoneRegions('').subscribe((data: any) => {\r\n this.region = data;\r\n }, err => {\r\n console.log(err);\r\n });\r\n } \r\n\r\n getRegions(zone: Zone) {\r\n this.zoneRegions = zone.regions.map(reg => reg.key);\r\n return this.zoneRegions;\r\n }\r\n\r\n create() {\r\n this.router.navigateByUrl('/zones/create');\r\n }\r\n\r\n delete(id: string) {\r\n if (confirm(`Are you sure you want to delete zone \"${id}\"?`)) {\r\n this.zoneService.deleteZone(id).subscribe(() => {\r\n this.getZonesDetails();\r\n });\r\n }\r\n }\r\n\r\n edit(id: string) {\r\n this.router.navigateByUrl(`/zones/${id}`);\r\n }\r\n\r\n viewZone(zone: Zone) {\r\n this.zone = zone;\r\n this.showZoneDetail = !this.showZoneDetail;\r\n }\r\n}\r\n\r\nexport interface Zone {\r\n id: string;\r\n name: string;\r\n country: string;\r\n subscriptionId: string;\r\n defaultStorage: string;\r\n regions: Region[];\r\n}\r\n\r\nexport interface Region {\r\n key: string;\r\n value: string;\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/zones/zones.component.ts\n **/","module.exports = \"\\r\\n Zones\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
Zone IdNameSubscription IdDefault storageCountryRegions
\\r\\n expand_more\\r\\n {{zone.id}}{{zone.name}}{{zone.subscriptionId}}{{zone.defaultStorage}}{{zone.country}}{{getRegions(zone)}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/zones/zones.component.html\n ** module id = 634\n ** module chunks = 0\n **/","module.exports = \"td {\\r\\n padding: 2px;\\r\\n margin: 0;\\r\\n}\"\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/zones/zones.component.css\n ** module id = 635\n ** module chunks = 0\n **/","import { Component, OnInit, Input } from '@angular/core';\r\nimport { DOMEvents } from '../../dom-events';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ZoneService } from '../../shared/services/zone.service';\r\nimport { Zone } from '../zones.component';\r\nimport { NgForm } from '@angular/forms';\r\nimport { RegionService, ICountryCode } from '../../shared/services/region.service';\r\nimport { AuthService } from '../../auth/auth.service';\r\n\r\n@Component({\r\n selector: 'zone',\r\n template: require('./zone.component.html'),\r\n providers: [ZoneService, RegionService]\r\n})\r\nexport class ZoneComponent implements OnInit {\r\n zoneId: string;\r\n zone: Zone = {\r\n id: '',\r\n name: '',\r\n country: '',\r\n subscriptionId: '',\r\n defaultStorage: '',\r\n regions: []\r\n };\r\n selectedRegions: any[] = [];\r\n regions: any[] = [];\r\n countryCodes: ICountryCode[];\r\n @Input() selectedZone: Zone;\r\n\r\n constructor(private domEvents: DOMEvents,\r\n private auth: AuthService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private zoneService: ZoneService,\r\n private regionService: RegionService) {\r\n this.route.params.subscribe(params => {\r\n this.zoneId = params['zoneId'];\r\n });\r\n this.regionService.getCountryCodes().subscribe((countryCodes:ICountryCode[]) => {\r\n this.countryCodes = countryCodes;\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.domEvents.triggerOnDocument('appready');\r\n if (this.selectedZone == null) {\r\n this.getZone();\r\n } else {\r\n this.zone = this.selectedZone;\r\n }\r\n this.getRegions();\r\n }\r\n\r\n getZone() {\r\n this.zoneService.getZone(this.zoneId).subscribe((data: any) => {\r\n this.zone = data;\r\n });\r\n }\r\n\r\n selectRegion(region: any) {\r\n region.isSelected = !region.isSelected;\r\n if (region.isSelected) {\r\n this.selectedRegions.push(region);\r\n }\r\n if (this.selectedRegions.find(r => r.value === region.value) && !region.isSelected) {\r\n this.selectedRegions = this.selectedRegions.filter(r => r.value !== region.value);\r\n }\r\n }\r\n\r\n onSubmit(form: NgForm) {\r\n if (form.valid && this.selectedRegions.length > 0) {\r\n this.zone.regions = this.selectedRegions.map(r => {\r\n return { key: r.key, value: r.value };\r\n });\r\n this.zoneService.updateZone(this.zone).subscribe(() => {\r\n this.router.navigateByUrl('/zones');\r\n }, err => {\r\n this.auth.unauthorized(err);\r\n });\r\n }\r\n }\r\n\r\n cancel() {\r\n if (confirm('Are you sure you want to cancel?')) {\r\n this.router.navigateByUrl('/zones');\r\n }\r\n }\r\n\r\n getRegions() {\r\n this.regionService.getRegions().subscribe((data: any) => {\r\n this.regions = data;\r\n }, null, () => {\r\n for (let region of this.regions) {\r\n region.isSelected = this.zone.regions.find(r => r.value === region.value) == undefined ? false : true;\r\n }\r\n this.selectedRegions = this.regions.filter(r => r.isSelected);\r\n });\r\n }\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/zones/zone/zone.component.ts\n **/","module.exports = \"\\r\\n
\\r\\n \\r\\n Edit Zone\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{countryCode?.country}} ({{ countryCode?.continent }})\\r\\n \\r\\n \\r\\n \\r\\n

\\r\\n Regions:\\r\\n
\\r\\n {{ region.key }}\\r\\n
\\r\\n

\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/zones/zone/zone.component.html\n ** module id = 637\n ** module chunks = 0\n **/","import { Component, OnInit } from '@angular/core';\r\nimport { ZoneService } from '../../shared/services/zone.service';\r\nimport { Router } from '@angular/router';\r\nimport { DOMEvents } from '../../dom-events';\r\nimport { RegionService, ICountryCode } from '../../shared/services/region.service';\r\nimport { NgForm } from '@angular/forms';\r\nimport { AuthService } from '../../auth/auth.service';\r\nimport { Zone, Region } from '../zones.component';\r\n\r\n\r\n@Component({\r\n selector: 'zone-create',\r\n template: require('./zone-create.component.html'),\r\n styles: [require('./zone-create.component.css')],\r\n providers: [ZoneService, RegionService]\r\n})\r\nexport class ZoneCreateComponent implements OnInit {\r\n regions: any[] = [];\r\n zone: Zone = {\r\n id: '',\r\n name: '',\r\n country: '',\r\n subscriptionId: '',\r\n defaultStorage: '',\r\n regions: []\r\n };\r\n countryCodes: ICountryCode[];\r\n selectedRegion: Region = {\r\n key: '',\r\n value: ''\r\n };\r\n selectedRegions: Region[] = [];\r\n\r\n constructor(\r\n private router: Router,\r\n private domEvents: DOMEvents,\r\n private auth: AuthService,\r\n private zoneService: ZoneService,\r\n private regionService: RegionService) {\r\n this.regionService.getCountryCodes().subscribe((countryCodes:ICountryCode[]) => {\r\n this.countryCodes = countryCodes;\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.domEvents.triggerOnDocument('appready');\r\n this.getRegions();\r\n }\r\n\r\n getRegions() {\r\n this.regionService.getRegions().subscribe((data: any) => {\r\n this.regions = data;\r\n });\r\n }\r\n\r\n onSubmit(form: NgForm) {\r\n if (form.valid && this.selectedRegions.length > 0) {\r\n this.zone.regions = this.selectedRegions;\r\n this.zoneService.addZone(this.zone).subscribe(() => {\r\n this.router.navigateByUrl('/zones');\r\n }, err => {\r\n this.auth.unauthorized(err);\r\n });\r\n }\r\n }\r\n\r\n cancel() {\r\n if (confirm('Are you sure you want to cancel?')) {\r\n this.router.navigateByUrl('/zones');\r\n }\r\n }\r\n\r\n selectRegion(region: any) {\r\n this.selectedRegion = {\r\n key: '',\r\n value: ''\r\n };\r\n if (region.value) {\r\n this.selectedRegion.key = region.name.key;\r\n this.selectedRegion.value = region.name.value;\r\n this.selectedRegions.push(this.selectedRegion);\r\n }\r\n if (this.selectedRegions.filter(r => r.value === region.name.value) && !region.value) {\r\n this.selectedRegions = this.selectedRegions.filter(r => r.value != region.name.value);\r\n } \r\n }\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/zones/zone-create/zone-create.component.ts\n **/","module.exports = \"
0\\\" class=\\\"card-container\\\">\\r\\n \\r\\n Create Zone\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{countryCode?.country}} ({{ countryCode?.continent }})\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Regions:\\r\\n
\\r\\n {{ region.key }}\\r\\n
\\r\\n

\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/zones/zone-create/zone-create.component.html\n ** module id = 639\n ** module chunks = 0\n **/","import { Component, OnInit} from '@angular/core';\r\nimport { DOMEvents } from '../dom-events';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\nimport { NewFeaturesEditorDialog } from './_dialogs/new-features-editor-dialog';\r\nimport { NotificationDialog } from './_dialogs/notification-dialog';\r\nimport { AuthService, LoggedInUser, Permission, Role } from '../auth/auth.service';\r\nimport { IRelease } from './_interfaces/IRelease';\r\nimport { NewFeaturesService } from './new-features.service';\r\nimport { DateService } from '../shared/services/date.service';\r\nimport { PagerService } from '../shared/services/pager.service';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-new-features',\r\n template: require('./new-features.component.html'),\r\n styles: [require('./new-features.component.css')],\r\n providers: [NewFeaturesService, DateService, PagerService, DatePipe]\r\n})\r\nexport class NewFeaturesComponent implements OnInit {\r\n private loginSubscription: any;\r\n\tprivate logoutSubscription: any;\r\n private user: LoggedInUser;\r\n \r\n Role: any = Role;\r\n Permission:any = Permission;\r\n\r\n NewFeaturesEditorDialogRef: MdDialogRef;\r\n NotificationDialogRef: MdDialogRef;\r\n isDocumentDeleted: boolean;\r\n isNewRelease: boolean = false;\r\n isLoadingRel: boolean = false;\r\n isLoadingTBR: boolean = false;\r\n todayDate: Date = new Date();\r\n\r\n /*output*/\r\n toBeReleasedDocs: IRelease[];\r\n releases: IRelease[];\r\n\r\n // pager object\r\n pager: any = {\r\n totalItems: 0,\r\n currentPage: 1,\r\n totalPages: 1\r\n };\r\n\r\n pagerToBeReleased: any = {\r\n totalItems: 0,\r\n currentPage: 1,\r\n totalPages: 1\r\n };\r\n\r\n // paged items\r\n pagedItems: IRelease[];\r\n pagedItemsToBeReleased: IRelease[];\r\n\r\n constructor(\r\n public NewFeaturesEditorDialog: MdDialog,\r\n public NotificationDialog: MdDialog, \r\n private domEvents: DOMEvents, \r\n private auth: AuthService,\r\n private newFeaturesService: NewFeaturesService,\r\n private dateService: DateService,\r\n private pagerService: PagerService,\r\n private datePipe: DatePipe){\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.user = this.auth.getUser();\r\n this.getReleases();\r\n this.getToBeReleased();\r\n\r\n this.domEvents.triggerOnDocument(\"appready\");\r\n }\r\n\r\n /**\r\n * Editor\r\n */\r\n openReleasesEditor(release: IRelease) {\r\n let config = new MdDialogConfig();\r\n config.height= \"auto\";\r\n config.viewContainerRef = null;\r\n\r\n if(release != null)\r\n this.NewFeaturesEditorDialogRef = this.NewFeaturesEditorDialog.open(NewFeaturesEditorDialog, {\r\n height : \"auto\",\r\n data: {\r\n release: release\r\n } \r\n }); \r\n else\r\n this.NewFeaturesEditorDialogRef = this.NewFeaturesEditorDialog.open(NewFeaturesEditorDialog, config);\r\n\r\n this.NewFeaturesEditorDialogRef.afterClosed().subscribe((result: any) => {\r\n if(result === \"cancel\") return;\r\n let snackBarMessage = result === \"register\" ? \"created\" : (result === \"update\" ? \"updated\" : \"\");\r\n if(snackBarMessage != \"\") {\r\n this.NotificationDialogRef = this.NotificationDialog.open(NotificationDialog, {\r\n data: {\r\n message: snackBarMessage\r\n }\r\n }).updatePosition({ top: '50px', left: '43%'});\r\n }\r\n \r\n this.getReleases();\r\n this.getToBeReleased();\r\n });\r\n }\r\n\r\n getReleases() {\r\n this.isLoadingRel = true;\r\n this.newFeaturesService.getReleases().subscribe((releases: IRelease[]) => {\r\n this.releases = releases;\r\n this.getPagerForReleases();\r\n this.isLoadingRel = false;\r\n });\r\n }\r\n\r\n getToBeReleased() {\r\n this.isLoadingTBR = true;\r\n this.newFeaturesService.getToBeReleased().subscribe((toBeReleasedDocs: IRelease[]) => {\r\n this.toBeReleasedDocs = toBeReleasedDocs;\r\n this.filterToBeReleasedDocs();\r\n this.getPagerForToBeReleased();\r\n this.isLoadingTBR = false;\r\n });\r\n }\r\n\r\n getDate(modifiedDate:string):string {\r\n return this.dateService.getDate(new Date(modifiedDate));\r\n }\r\n\r\n getFeaturesFromDescription(description: string) {\r\n if(description != null) {\r\n return description.split('\\n').slice(1);\r\n }\r\n }\r\n\r\n deleteRelease(releaseId: string){\r\n if (window.confirm(\"Are you sure you want to delete release?\")) {\r\n if(releaseId != \"\") {\r\n this.newFeaturesService.deleteRelease(releaseId).subscribe( \r\n res => {\r\n this.getReleases();\r\n this.getToBeReleased();\r\n this.NotificationDialogRef = this.NotificationDialog.open(NotificationDialog, {\r\n data: {\r\n message: \"deleted\"\r\n }\r\n }).updatePosition({ top: '50px', left: '43%'});\r\n },\r\n err => console.log(err)\r\n );\r\n }\r\n }\r\n }\r\n\r\n getPagerForReleases() {\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(this.releases.length, 1, 5);\r\n\r\n // get current page of items\r\n this.pagedItems = this.releases.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n setPage(page: number) {\r\n if (page < 1 || page > this.pager.totalPages) {\r\n return;\r\n }\r\n // get pager object from service\r\n this.pager = this.pagerService.getPager(this.releases.length, page, 5);\r\n\r\n // get current page of items\r\n this.pagedItems = this.releases.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n }\r\n\r\n getPagerForToBeReleased() {\r\n // get pager object from service\r\n this.pagerToBeReleased = this.pagerService.getPager(this.toBeReleasedDocs.length, 1, 3);\r\n\r\n // get current page of items\r\n this.pagedItemsToBeReleased = this.toBeReleasedDocs.slice(this.pagerToBeReleased.startIndex, this.pagerToBeReleased.endIndex + 1);\r\n }\r\n\r\n setPageForToBeReleased(page: number) {\r\n if (page < 1 || page > this.pagerToBeReleased.totalPages) {\r\n return;\r\n }\r\n // get pager object from service\r\n this.pagerToBeReleased = this.pagerService.getPager(this.toBeReleasedDocs.length, page, 3);\r\n\r\n // get current page of items\r\n this.pagedItemsToBeReleased = this.toBeReleasedDocs.slice(this.pagerToBeReleased.startIndex, this.pagerToBeReleased.endIndex + 1);\r\n }\r\n\r\n filterToBeReleasedDocs() {\r\n this.toBeReleasedDocs = this.toBeReleasedDocs.filter((release) => {\r\n return new Date(this.datePipe.transform(release.releaseDate, 'MM/dd/yyyy')) >= new Date(this.datePipe.transform(this.todayDate, 'MM/dd/yyyy'));\r\n });\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/new-features/new-features.component.ts\n **/","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MdDialogRef, MD_DIALOG_DATA} from '@angular/material';\r\nimport { IRelease } from '../_interfaces/IRelease';\r\nimport { NewFeaturesService } from '../new-features.service';\r\nimport { AuthService, LoggedInUser, Permission, Role } from '../../auth/auth.service';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'new-features-editor-dialog',\r\n template: require('./new-features-editor-dialog.html'),\r\n styles: [require('./new-features-editor-dialog.css')],\r\n providers: [NewFeaturesService]\r\n})\r\nexport class NewFeaturesEditorDialog implements OnInit {\r\n private user: LoggedInUser;\r\n \r\n Role: any = Role;\r\n Permission:any = Permission;\r\n isAdmin: boolean;\r\n isEpicorEmployee: boolean;\r\n\r\n selected: string = \"category1\";\r\n releaseDate: Date = new Date();\r\n releaseDescription: string = \"\";\r\n releaseToEdit: IRelease;\r\n isUpdate: boolean = false;\r\n\r\n constructor(public dialogRef: MdDialogRef,\r\n private newFeaturesService: NewFeaturesService,\r\n private auth: AuthService,\r\n private router: Router,\r\n @Inject(MD_DIALOG_DATA) public data: any) {\r\n if(data != null) {\r\n this.isUpdate = true;\r\n this.releaseToEdit = data.release;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.isAdmin = this.auth.hasRole(Role.Administrator);\r\n this.isEpicorEmployee = this.auth.hasRole(Role.EpicorEmployee);\r\n this.user = this.auth.getUser();\r\n if(this.isUpdate) {\r\n this.selected = this.releaseToEdit.releaseDate == null ? \"category1\" : \"category2\";\r\n this.releaseDate = this.releaseToEdit.releaseDate;\r\n this.releaseDescription = this.releaseToEdit.description;\r\n }\r\n }\r\n\r\n close(result: string) {\r\n this.dialogRef.close(result);\r\n }\r\n\r\n areFieldsValid(){\r\n if(this.releaseDescription.length > 0) {\r\n if(this.selected == \"category2\")\r\n return this.releaseDate != null ? false : true\r\n return false;\r\n }\r\n return true;\r\n }\r\n onSubmit() {\r\n if(this.isUpdate)\r\n this.updateRelease();\r\n else\r\n this.registerRelease(); \r\n }\r\n\r\n registerRelease() {\r\n var newRelease: IRelease = {\r\n id: '',\r\n category: this.selected === \"category1\" ? \"released\" : \"toBeReleased\",\r\n createdDate: new Date(),\r\n releaseDate: this.selected === \"category1\" ? null : this.releaseDate,\r\n description: this.releaseDescription,\r\n author: this.user.emailAddress\r\n } \r\n\r\n this.newFeaturesService.registerRelease(newRelease).subscribe(\r\n () => {\r\n this.close('register');\r\n this.router.navigate([\"/whatsnew\"]);\r\n },\r\n err => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n\r\n updateRelease() {\r\n var releaseUpdated: IRelease = {\r\n id: this.releaseToEdit.id,\r\n category: this.selected === \"category1\" ? \"released\" : \"toBeReleased\",\r\n createdDate: this.releaseToEdit.createdDate,\r\n releaseDate: this.selected === \"category1\" ? null : this.releaseDate,\r\n description: this.releaseDescription,\r\n author: this.user.emailAddress\r\n } \r\n\r\n this.newFeaturesService.updateRelease(releaseUpdated).subscribe(\r\n () => {\r\n this.close('update');\r\n this.router.navigate([\"/whatsnew\"]);\r\n },\r\n err => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/new-features/_dialogs/new-features-editor-dialog.ts\n **/","import { Injectable, HostListener, Output, EventEmitter } from '@angular/core';\r\nimport { Headers, Http, RequestOptions, Response } from '@angular/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { AuthHttp, AuthConfig, AUTH_PROVIDERS } from 'angular2-jwt';\r\nimport { Permission } from '../auth/auth.service';\r\nimport { ConfigService } from '../shared/services/config.service';\r\nimport { IRelease } from './_interfaces/IRelease';\r\n\r\n@Injectable()\r\nexport class NewFeaturesService {\r\n\r\n private serviceBase: string = new ConfigService().getApiURI();\r\n\r\n constructor(\r\n private http: Http,\r\n private authHttp: AuthHttp) { \r\n\r\n }\r\n \r\n registerRelease(release: IRelease) {\r\n var url: string = this.serviceBase + \"release/registerrelease\";\r\n var body = release;\r\n \r\n return this.authHttp.post(url, body);\r\n }\r\n\r\n getReleases() {\r\n var url: string = this.serviceBase + \"release/getreleases\";\r\n \r\n return this.authHttp.get(url).map(this.extractData);\r\n }\r\n\r\n getToBeReleased() {\r\n var url: string = this.serviceBase + \"release/gettobereleased\";\r\n \r\n return this.authHttp.get(url).map(this.extractData);\r\n }\r\n\r\n deleteRelease(releaseId: string) {\r\n var url: string = this.serviceBase + \"release/deleterelease/\" + releaseId;\r\n \r\n return this.authHttp.delete(url);\r\n }\r\n\r\n updateRelease(release: IRelease) {\r\n var url: string = this.serviceBase + \"release/updaterelease/\";\r\n var body = release;\r\n\r\n return this.authHttp.put(url, body);\r\n }\r\n\r\n private extractData(res: Response) {\r\n let body = res.json();\r\n return body || {};\r\n }\r\n\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/new-features/new-features.service.ts\n **/","module.exports = \" \\r\\n {{ isUpdate ? 'Update release' : 'Create a new release' }}\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Release\\r\\n Coming Soon\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/new-features/_dialogs/new-features-editor-dialog.html\n ** module id = 644\n ** module chunks = 0\n **/","module.exports = \".releaseDescritpion {\\r\\n border: 1px solid rgba(0,0,0,.12) !important;\\r\\n color: black;\\r\\n}\\r\\n.releaseDescritpion:focus {\\r\\n border: 1px solid #288fc7 !important;\\r\\n outline-offset: -2px;\\r\\n outline: -webkit-focus-ring-color auto 1px;\\r\\n}\\r\\n\"\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/new-features/_dialogs/new-features-editor-dialog.css\n ** module id = 645\n ** module chunks = 0\n **/","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MdDialogRef, MD_DIALOG_DATA} from '@angular/material';\r\n\r\n@Component({\r\n selector: 'notification-dialog',\r\n template: require('./notification-dialog.html')\r\n})\r\nexport class NotificationDialog implements OnInit {\r\n\r\n message:string = \"\";\r\n\r\n constructor(public dialogRef: MdDialogRef,\r\n @Inject(MD_DIALOG_DATA) public data: any) {\r\n if(data != null) {\r\n this.message = data.message;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n setTimeout(() => { this.close(); }, 2000);\r\n }\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n\r\n getColorForMessage() {\r\n if(this.message === \"created\") return \"#2cac36\"\r\n else if (this.message === \"updated\") return \"#288fc7\";\r\n else if (this.message === \"deleted\") return \"rgb(201, 38, 38)\";\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/new-features/_dialogs/notification-dialog.ts\n **/","module.exports = \"
\\r\\n \\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/new-features/_dialogs/notification-dialog.html\n ** module id = 647\n ** module chunks = 0\n **/","module.exports = \"\\r\\n
\\r\\n \\r\\n \\r\\n What's new\\r\\n \\r\\n
\\r\\n \\r\\n Releases\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{ getDate(release?.createdDate) | date:'MM/dd/yyyy' }} : {{ release?.description.includes('\\\\n') ? release?.description.split('\\\\n')[0] : release?.description }}\\r\\n \\r\\n \\r\\n \\r\\n {{ feature }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ pager.currentPage + \\\"/\\\" + pager.totalPages}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Coming Soon\\r\\n
\\r\\n {{ toBeReleased?.description.includes('\\\\n') ? toBeReleased?.description.split('\\\\n')[0] : toBeReleased?.description }}\\r\\n \\r\\n \\r\\n Expected release date: {{ getDate(toBeReleased?.releaseDate) | date:'MM/dd/yyyy' }}\\r\\n
\\r\\n
\\r\\n {{ pagerToBeReleased.currentPage + \\\"/\\\" + pagerToBeReleased.totalPages}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/new-features/new-features.component.html\n ** module id = 648\n ** module chunks = 0\n **/","module.exports = \"::ng-deep .mat-list .mat-list-item .mat-list-item-content {\\r\\n height: auto !important;\\r\\n}\"\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/new-features/new-features.component.css\n ** module id = 649\n ** module chunks = 0\n **/","import { Component, OnInit } from '@angular/core';\r\nimport { DOMEvents } from '../dom-events';\r\nimport { MdDialog, MdDialogConfig } from '@angular/material';\r\nimport { AuthService, LoggedInUser, Permission, Role } from '../auth/auth.service';\r\nimport { ConfigurationService } from './configurations.service';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'configurations',\r\n template: require('./configurations.component.html'),\r\n styles: [require('./configurations.component.css')],\r\n providers: [ConfigurationService]\r\n})\r\nexport class ConfigurationsComponent implements OnInit {\r\n private loginSubscription: any;\r\n private logoutSubscription: any;\r\n private user: LoggedInUser;\r\n \r\n\r\n Role: any = Role;\r\n Permission: any = Permission;\r\n sectionSiteHide : boolean = false;\r\n sectionConversionHide : boolean = true;\r\n sectionUserHide : boolean = true;\r\n jobs : any;\r\n isDocumentDeleted: boolean;\r\n todayDate: Date = new Date();\r\n executing : boolean = false;\r\n isLoading : boolean = true;\r\n disableCAM : boolean= false;\r\n constructor(\r\n private domEvents: DOMEvents,\r\n private auth: AuthService,\r\n private configServices : ConfigurationService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.user = this.auth.getUser();\r\n this.getLatestJobDetails();\r\n this.domEvents.triggerOnDocument(\"appready\");\r\n }\r\n\r\n toggleSection(event : Event){\r\n var element = event.target as HTMLElement\r\n var section = element.id.split('-')[1];\r\n this.sectionSiteHide = true;\r\n this.sectionConversionHide = true;\r\n this.sectionUserHide = true;\r\n switch(section){\r\n case \"site\" :\r\n this.sectionSiteHide = false;\r\n break;\r\n case \"conversion\" :\r\n this.sectionConversionHide = false;\r\n break;\r\n case \"user\" :\r\n this.sectionUserHide = false;\r\n break;\r\n }\r\n }\r\n\r\n UpdateLatestChildSites(){\r\n this.configServices.executePartnerChildSync().subscribe(() => {\r\n this.executing = true;\r\n this.getLatestJobDetails();\r\n });\r\n \r\n }\r\n\r\n UpdateCAMDetails(){\r\n this.configServices.camUpdateDetails().subscribe(() => {\r\n this.executing = true;\r\n this.getLatestJobDetails();\r\n });\r\n \r\n }\r\n\r\n\r\n getLatestJobDetails(){\r\n this.configServices.getLatestJobDetails().subscribe((res : any) => {\r\n this.jobs = res;\r\n this.isLoading = false;\r\n this.disableCAMUpdate();\r\n })\r\n }\r\n\r\n disableCAMUpdate(){\r\n console.log(process.env.ENV)\r\n if(process.env.ENV !=\"production\"){\r\n this.disableCAM = true;\r\n }\r\n }\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/configurations/configurations.component.ts\n **/","import { Injectable, HostListener, Output, EventEmitter } from '@angular/core';\r\nimport { Headers, Http, RequestOptions, Response } from '@angular/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { AuthHttp, AuthConfig, AUTH_PROVIDERS } from 'angular2-jwt';\r\nimport { Permission } from '../auth/auth.service';\r\nimport { ConfigService } from '../shared/services/config.service';\r\n\r\n@Injectable()\r\nexport class ConfigurationService {\r\n\r\n private serviceBase: string = new ConfigService().getApiURI();\r\n\r\n constructor(\r\n private http: Http,\r\n private authHttp: AuthHttp) { \r\n\r\n }\r\n \r\n executePartnerChildSync() {\r\n var url: string = this.serviceBase + \"configuration/updatepartnerchild\";\r\n \r\n return this.authHttp.post(url,null);\r\n }\r\n\r\n camUpdateDetails() {\r\n var url: string = this.serviceBase + \"configuration/camupdate\";\r\n \r\n return this.authHttp.post(url,null);\r\n }\r\n\r\n getLatestJobDetails() {\r\n var url: string = this.serviceBase + \"configuration/fetchdetails\";\r\n \r\n return this.authHttp.get(url).map(this.extractData);\r\n }\r\n\r\n private extractData(res: Response) {\r\n let body = res.json();\r\n return body || {};\r\n }\r\n\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/configurations/configurations.service.ts\n **/","module.exports = \"
\\r\\n\\r\\n \\r\\n Configurations\\r\\n \\r\\n
\\r\\n
Sites
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
Update partner child sites
\\r\\n
CAM Update
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
{{job.lastexecutionstatus}}Last executed by {{job.lastexecutedby}} on {{job.lastexecutedtime}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • Reserved for conversion related configurations
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • Reserved for user related configurations
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/configurations/configurations.component.html\n ** module id = 652\n ** module chunks = 0\n **/","module.exports = \"::ng-deep .mat-list .mat-list-item .mat-list-item-content {\\r\\n height: auto !important;\\r\\n}\\r\\n\\r\\n.sidenav {\\r\\n height: 70%;\\r\\n width: 140px;\\r\\n position: relative;\\r\\n z-index: 1;\\r\\n top: 0;\\r\\n left: 0;\\r\\n background-color: #025064;\\r\\n overflow-x: hidden;\\r\\n padding-top: 20px;\\r\\n float: left;\\r\\n }\\r\\n \\r\\n .sidenav a {\\r\\n padding: 6px 8px 6px 16px;\\r\\n text-decoration: none;\\r\\n font-size: 25px;\\r\\n color: #818181;\\r\\n display: block;\\r\\n }\\r\\n \\r\\n .sidenav a:hover {\\r\\n color: #f1f1f1;\\r\\n }\\r\\n \\r\\n .sidenav div {\\r\\n font-size: 18px;\\r\\n text-align: center;\\r\\n color: white;\\r\\n cursor: pointer;\\r\\n padding-top: 10px;\\r\\n padding-bottom: 10px;\\r\\n }\\r\\n\\r\\n .sidenav div:hover{\\r\\n background-color: aliceblue;\\r\\n color: black;\\r\\n }\\r\\n \\r\\n .nav-highlight {\\r\\n background-color: aliceblue;\\r\\n color: black;\\r\\n }\\r\\n\\r\\n table tr td {\\r\\n text-align: center;\\r\\n font-weight: bold;\\r\\n }\\r\\n\\r\\n .main {\\r\\n margin-left: 140px; /* Same as the width of the sidenav */\\r\\n font-size: 20px; /* Increased text to enable scrolling */\\r\\n padding: 0px 10px;\\r\\n }\\r\\n \\r\\n @media screen and (max-height: 450px) {\\r\\n .sidenav {padding-top: 15px;}\\r\\n .sidenav a {font-size: 18px;}\\r\\n }\\r\\n\\r\\n .list-options {\\r\\n font-size: 17px;\\r\\n font-family: 'Source Sans Pro', 'Helvetica Neue';\\r\\n }\"\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/configurations/configurations.component.css\n ** module id = 653\n ** module chunks = 0\n **/","import { Component, OnInit, ElementRef, ViewChild } from '@angular/core';\r\nimport { DOMEvents } from '../dom-events';\r\nimport { ConversionStatus } from '../sites/conversions/_interfaces/conversions.interface';\r\nimport { MdDialog, } from '@angular/material';\r\nimport { AuthService, LoggedInUser, Permission, Role } from '../auth/auth.service';\r\nimport { ConversionAssesmentService } from './conversion-assesment.service';\r\nimport { ConversionsService } from '../sites/conversions/_services/conversions.service';\r\nimport { DateService } from '../shared/services/date.service';\r\nimport { PagerService } from '../shared/services/pager.service';\r\nimport { DatePipe } from '@angular/common';\r\nimport { SitesService } from '../sites/core/sites.service';\r\nimport { Router } from '@angular/router';\r\nimport {TIMEZONES} from '../sites/conversions/conversion/mock-timezones';\r\n\r\n@Component({\r\n selector: 'app-conversion-assesment',\r\n template: require('./conversion-assesment.component.html'),\r\n styles: [require('./conversion-assesment.component.css')],\r\n providers: [ConversionAssesmentService, DateService, PagerService, DatePipe, SitesService, ConversionsService]\r\n})\r\nexport class ConversionAssesmentComponent implements OnInit {\r\n status: any = ConversionStatus;\r\n user: LoggedInUser;\r\n searchText: string = '';\r\n pageSize: number = 25;\r\n pageIndex: number = 0; \r\n sitesPageIndex: number = 0; \r\n tokens: string[] = [\"\"]; // include empty to indicate page 1 \r\n tokensSites: string[] = [\"\"]; // include empty to indicate page 1 \r\n sites: any[];\r\n searchTimeout: any;\r\n searchTimeoutSites: any;\r\n hasMoreResults: boolean = false;\r\n sitesHasMoreResults: boolean = false;\r\n Role: any = Role;\r\n Permission: any = Permission;\r\n sortColumn: string = \"startDate\";\r\n sortAsc?: boolean = false;\r\n isFirstLoad:boolean;\r\n timezones=TIMEZONES;\r\n\r\n pageSizes: any[] = [\r\n { value: 5, viewValue: '5' },\r\n { value: 10, viewValue: '10' },\r\n { value: 25, viewValue: '25' },\r\n { value: 50, viewValue: '50' },\r\n { value: 100, viewValue: '100' }\r\n ];\r\n\r\n @ViewChild('columnDetails') columnDetails: ElementRef;\r\n @ViewChild('passNum') PassNum : ElementRef;\r\n @ViewChild('startDate') StartDate : ElementRef;\r\n @ViewChild('completedDate') CompletedDate : ElementRef;\r\n @ViewChild('effective') Effective : ElementRef;\r\n \r\n\r\n isLoadingScreen: boolean = true; \r\n isLoadingConfig: boolean = true; \r\n conversionPassesLoader: boolean = false;\r\n noPasses: boolean = false;\r\n noConfig: boolean = false;\r\n showUOM: boolean = false;\r\n sitesLoader: boolean = false;\r\n currentSiteConfig: any[1] = [];\r\n totalConversions: number = 0;\r\n totalLiveConversions: number = 0; \r\n completedCount: number = 0;\r\n conversionPasses: any[] = [];\r\n\r\n\r\n constructor(\r\n private router: Router,\r\n private sitesService: SitesService,\r\n public NewFeaturesEditorDialog: MdDialog,\r\n public NotificationDialog: MdDialog,\r\n private domEvents: DOMEvents,\r\n private auth: AuthService,\r\n private conversionAssesmentService: ConversionAssesmentService,\r\n private conversionsService: ConversionsService,\r\n private dateService: DateService,\r\n private pagerService: PagerService) {\r\n \r\n this.user = this.auth.getUser();\r\n\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.isFirstLoad = true;\r\n this.getConversionPassesCount();\r\n this.domEvents.triggerOnDocument(\"appready\"); \r\n }\r\n\r\n ngAfterViewInit() {\r\n this.sorting();\r\n } \r\n\r\n onRefresh(data:any) {\r\n if (data.pageSize) {\r\n this.pageSize = data.pageSize;\r\n }\r\n this.refreshPasses();\r\n } \r\n /**\r\n * Gets the date format according the time zone\r\n */\r\n getDate(date: string): string {\r\n return this.dateService.getDate(new Date(date));\r\n }\r\n /**\r\n * Gets the Time span minutes between two dates\r\n */\r\n getElapsedTime(startDate: string, endDate: string): string {\r\n return endDate === null ? \"\" : this.msToTime((new Date(endDate)).valueOf() - (new Date(startDate)).valueOf());\r\n }\r\n\r\n msToTime(duration: number): string {\r\n return this.fixNumberTwoDecimals(duration / (1000 * 60 * 60)) + \" hrs.\";\r\n }\r\n\r\n fixNumberTwoDecimals(num: number): string {\r\n return num >= 0 ? num.toFixed(2): \"\";\r\n }\r\n\r\n /** reset tokens and get data matching search text */\r\n filterConversions(siteId: string) {\r\n if (this.searchTimeout != undefined) clearTimeout(this.searchTimeout);\r\n this.searchTimeout = setTimeout(() => {\r\n this.getConversionPasses(null, null, this.sortColumn, this.sortAsc, this.pageSize, null, siteId);\r\n }, 500);\r\n }\r\n\r\n unfilterSearchConversion() {\r\n this.searchText = '';\r\n this.sortColumn = 'startDate';\r\n this.conversionPasses = [];\r\n this.sites = [];\r\n this.sitesLoader = false;\r\n this.conversionPassesLoader = false;\r\n }\r\n /** Get a list of conversion passes */\r\n getConversionPasses(status?: any, token: string = \"\", sortColumn: string = null, sortAsc: boolean = null, pageSize: number = 25, docState?: any, searchText = \"\") {\r\n this.conversionPasses = [];\r\n if (searchText === null || searchText === \"\") {\r\n return;\r\n }\r\n if (!this.isFirstLoad) {\r\n this.beforeloadingPasses();\r\n } \r\n this.isFirstLoad = false;\r\n this.noPasses = false; \r\n this.conversionPassesLoader = true; \r\n this.conversionsService.getConversionPassSummaries(searchText, status, null, token, sortColumn, sortAsc, pageSize, docState).subscribe((pagedResult: any) => {\r\n this.conversionPasses = pagedResult.result;\r\n this.hasMoreResults = pagedResult.hasMoreResults;\r\n\r\n if (pagedResult.requestContinuation != null) {\r\n var token = JSON.parse(pagedResult.requestContinuation).token;\r\n if (typeof this.tokens[this.pageIndex + 1] === 'undefined') {\r\n this.tokens.push(token);\r\n }\r\n }\r\n if (pagedResult.result.length > 0)\r\n {\r\n this.conversionPasses.forEach((cp: any, index) => {\r\n this.conversionsService.getConversionPass(cp.conversionId, cp.passNumber).subscribe((res: any) => {\r\n cp.toolingVersion = res.toolingVersion;\r\n cp.configuration = [];\r\n cp.openedChild = false;\r\n this.conversionsService.getEffectiveTimeConversionPass(res.conversionPassId,cp.modifiedDate).subscribe((res: any) => {\r\n cp.effectiveTime = res.effectiveTime;\r\n cp.hasErrors = res.numErrors > 0 ? true : false;\r\n if (index === this.conversionPasses.length - 1)\r\n this.conversionPassesLoader = false;\r\n });\r\n\r\n });\r\n });\r\n }\r\n else\r\n {\r\n this.conversionPassesLoader = false;\r\n this.noPasses = true;\r\n }\r\n }, err => this.conversionPassesLoader = false);\r\n }\r\n\r\n /** Get a count of conversion passes with specific status */\r\n getConversionPassesCount() {\r\n this.totalConversions = 0;\r\n this.totalLiveConversions = 0;\r\n\r\n this.conversionsService.getConversionLivePassSummariesCount(null, null, \"-1\", null).subscribe((res: any) => {\r\n this.totalConversions += res.goLiveCount + res.noGoLiveCount;\r\n this.totalLiveConversions += res.goLiveCount;\r\n this.isLoadingScreen = false;\r\n });\r\n this.conversionsService.getConversionPassSummariesCount(ConversionStatus[ConversionStatus.Completed],null,null, null).subscribe((res:any) => {\r\n this.completedCount = res.count;\r\n });\r\n }\r\n\r\n getSiteLatestConfig(siteId: number){\r\n this.isLoadingConfig = true;\r\n this.noConfig = false;\r\n this.conversionAssesmentService.getSiteLatestConfig(siteId).subscribe((res:any) => {\r\n this.currentSiteConfig[0] = res;\r\n this.noConfig = false;\r\n this.isLoadingConfig = false;\r\n }, err => { this.noConfig = true; this.isLoadingConfig = false });\r\n }\r\n\r\n previousPassesPage() {\r\n this.pageIndex -= 1;\r\n let token = this.tokens[this.pageIndex];\r\n if (typeof token !== 'undefined') {\r\n this.getConversionPasses(null, token, this.sortColumn, this.sortAsc, this.pageSize, null, this.searchText);\r\n\r\n } else {\r\n this.pageIndex += 1;\r\n }\r\n }\r\n\r\n nextPassesPage() {\r\n this.pageIndex += 1;\r\n let token = this.tokens[this.pageIndex];\r\n if (typeof token !== 'undefined') {\r\n this.getConversionPasses(null, token, this.sortColumn, this.sortAsc, this.pageSize, null, this.searchText);\r\n } else {\r\n this.pageIndex -= 1;\r\n }\r\n }\r\n\r\n onPageSizeChange() {\r\n this.onRefresh({ pageSize: this.pageSize });\r\n }\r\n\r\n sort(selectedColumnName: string) {\r\n let columnCount = 0;\r\n\r\n if (this.sortAsc == null) {\r\n this.sortAsc = false;\r\n }\r\n else {\r\n let tempSortAsc = this.sortAsc == true ? false : true;\r\n this.sortAsc = tempSortAsc;\r\n }\r\n this.sortColumn = selectedColumnName;\r\n for (columnCount; columnCount < this.columnDetails.nativeElement.children.length - 1; columnCount++) {\r\n this.columnDetails.nativeElement.children[columnCount].children[0].classList.remove('arrow-down');\r\n this.columnDetails.nativeElement.children[columnCount].children[0].classList.remove('arrow-up');\r\n } \r\n this.sorting();\r\n }\r\n sorting() {\r\n this.tokens = [\"\"];\r\n this.pageIndex = 0;\r\n this.getConversionPasses(null, null, this.sortColumn, this.sortAsc, this.pageSize, null, this.searchText);\r\n }\r\n\r\n refreshPasses() {\r\n this.tokens = [\"\"];\r\n this.pageIndex = 0;\r\n this.getConversionPasses(null, null, this.sortColumn, this.sortAsc, this.pageSize, null, this.searchText);\r\n\r\n }\r\n\r\n beforeloadingPasses() {\r\n if (this.sortColumn != null){\r\n if(this.sortColumn =='passNumber')\r\n this.setSortingIcons(this.PassNum, this.sortAsc)\r\n if(this.sortColumn =='startDate')\r\n this.setSortingIcons(this.StartDate, this.sortAsc)\r\n if(this.sortColumn =='modifiedDate')\r\n this.setSortingIcons(this.CompletedDate, this.sortAsc)\r\n }\r\n }\r\n \r\n getStatusIcon(status: ConversionStatus) {\r\n let icon = '';\r\n\r\n switch (status) {\r\n case ConversionStatus.Stopped:\r\n icon = 'cancel';\r\n break;\r\n case ConversionStatus.InProgress:\r\n icon = 'update';\r\n break;\r\n case ConversionStatus.Completed:\r\n icon = 'check_circle';\r\n break;\r\n }\r\n return icon;\r\n }\r\n\r\n getStatusIconColor(status: ConversionStatus) {\r\n let color = '';\r\n\r\n switch (status) {\r\n case ConversionStatus.Stopped:\r\n color = 'red';\r\n break;\r\n case ConversionStatus.Completed:\r\n color = 'green';\r\n break;\r\n }\r\n return color;\r\n }\r\n\r\n setSortingIcons(element:any, sortAsc:boolean){\r\n if(sortAsc==true){\r\n element.nativeElement.childNodes[1].classList.add('arrow-up');\r\n element.nativeElement.childNodes[1].classList.remove('arrow-down');\r\n }else{\r\n element.nativeElement.childNodes[1].classList.remove('arrow-up');\r\n element.nativeElement.childNodes[1].classList.add('arrow-down');\r\n }\r\n }\r\n toggleChild(child?: any) {\r\n child.openedChild = !child.openedChild;\r\n\r\n if (child.openedChild) {\r\n this.sites.forEach((site: any, index) => {\r\n if (site.openedChild && site.siteId != child.siteId && site.siteName != child.siteName)\r\n //site.icon = 'expand_more';\r\n site.openedChild = false;\r\n });\r\n this.noPasses = false; \r\n this.noConfig = true; \r\n this.conversionPasses = [];\r\n this.currentSiteConfig = [];\r\n this.expandLessChild(child);\r\n } else {\r\n this.expandMoreChild(child);\r\n }\r\n }\r\n\r\n expandLessChild(child: any) {\r\n child.icon = 'expand_less';\r\n }\r\n\r\n expandMoreChild(child: any) {\r\n child.icon = 'expand_more';\r\n }\r\n\r\n viewConversionConfiguration(conversionId: string) {\r\n this.router.navigate([`/conversions/${conversionId}`]);\r\n }\r\n\r\n /**\r\n * Open converison pass in new browser tab\r\n */\r\n openInNewTab(conversionId: string) {\r\n let url = `${window.location.origin}/#/conversions/${conversionId}`;\r\n window.open(url, \"_blank\");\r\n }\r\n openConversionInNewTab(conversionId: string, passNumber: string) {\r\n let url = `${window.location.origin}/#/conversions/${conversionId}/passes/${passNumber}`;\r\n window.open(url, \"_blank\");\r\n }\r\n\r\n\r\n filterSite() {\r\n if (this.searchTimeoutSites != undefined) clearTimeout(this.searchTimeoutSites);\r\n this.searchTimeoutSites = setTimeout(() => {\r\n this.sitesPageIndex = 0;\r\n this.tokensSites = [\"\"];\r\n let token = this.tokensSites[this.sitesPageIndex];\r\n this.sites = [];\r\n this.getSites(this.searchText, token);\r\n }, 500);\r\n }\r\n\r\n getSites(searchTerm: string = \"\", token: string = \"\") {\r\n this.sitesLoader = true;\r\n\r\n this.sitesService.getSitesDTO(searchTerm, token).subscribe((response: any) => {\r\n this.sites = response.result;\r\n this.sitesHasMoreResults = response.hasMoreResults;\r\n\r\n this.sites.forEach((site: any, index) => {\r\n site.openedChild = false;\r\n });\r\n\r\n if (response.requestContinuation != null) {\r\n var token = JSON.parse(response.requestContinuation).token;\r\n if (typeof this.tokensSites[this.sitesPageIndex + 1] === 'undefined') {\r\n this.tokensSites.push(token);\r\n } \r\n }\r\n\r\n this.sitesLoader = false;\r\n });\r\n }\r\n /** get the previous page using token */\r\n previousSite() {\r\n this.sitesPageIndex -= 1;\r\n let token = this.tokensSites[this.sitesPageIndex];\r\n\r\n if (typeof token !== 'undefined') {\r\n this.getSites(this.searchText, token);\r\n } else {\r\n this.sitesPageIndex += 1;\r\n }\r\n }\r\n\r\n /** get the next page using token */\r\n nextSite() {\r\n this.sitesPageIndex += 1;\r\n let token = this.tokensSites[this.sitesPageIndex];\r\n\r\n if (typeof token !== 'undefined') {\r\n this.getSites(this.searchText, token);\r\n } else {\r\n this.sitesPageIndex -= 1;\r\n }\r\n }\r\n\r\n convertTimeZone(timeZone: any){\r\n let zone = this.timezones.find(vtime => vtime.gmtAdjustment == timeZone);\r\n return zone == null ? \"\" : zone.name;\r\n }\r\n\r\n FormatDeployment(deployment: any)\r\n {\r\n return deployment == null ? \"\" : (deployment == \"DT SaaS\" ? \"Epicor ERP Public Cloud (US)\" : deployment)\r\n }\r\n\r\n IsUOMValid(fromVersion: any)\r\n {\r\n if (fromVersion != null && fromVersion.startsWith(\"8.\"))\r\n {\r\n return true;\r\n }\r\n return false\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/conversion-assesment/conversion-assesment.component.ts\n **/","import { Injectable, HostListener, Output, EventEmitter } from '@angular/core';\r\nimport { Headers, Http, RequestOptions, Response } from '@angular/http';\r\nimport { AuthHttp, AuthConfig, AUTH_PROVIDERS } from 'angular2-jwt';\r\nimport { Observable, Subject } from 'rxjs/Rx';\r\nimport { ConfigService } from '../shared/services/config.service';\r\nimport { QueryStringPipe } from './../shared/pipes/url.pipe';\r\nimport { ConversionPassLogType } from './../shared/interfaces';\r\n\r\n\r\n@Injectable()\r\nexport class ConversionAssesmentService {\r\n private serviceBase: string = new ConfigService().getApiURI();\r\n private conversionsAPI = this.serviceBase + 'conversions';\r\n private queryStringPipe = new QueryStringPipe();\r\n constructor(\r\n private http: Http,\r\n private authHttp: AuthHttp) { }\r\n\r\n getSiteLatestConfig(siteId: number) {\r\n var url: string = `${this.conversionsAPI}/configuration/${siteId}`\r\n\r\n return this.authHttp.get(url)\r\n .map(this.extractData);\r\n }\r\n\r\n private extractData(res: Response) {\r\n let body = res.json();\r\n return body || {};\r\n }\r\n\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/conversion-assesment/conversion-assesment.service.ts\n **/","module.exports = \"Site Planner\\r\\n\\r\\n
\\r\\n
\\r\\n
Total conversions to date: {{ totalConversions }}
\\r\\n
Total Go-Live conversions: {{ totalLiveConversions }}
\\r\\n
Total Successful conversions: {{ completedCount }}
\\r\\n
\\r\\n \\r\\n Sites\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n clear\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{sitegroup?.siteId}} - {{sitegroup?.siteName}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n

No conversion configuration found for this site.

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

Current Configuration

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

No conversion passes found for this site.

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Pass Tooling\\r\\n Version Start Datetime \\r\\n Go-Live?\\r\\n Status Completed\\r\\n Datetime \\r\\n Errors Found?\\r\\n \\r\\n \\r\\n Elapsed Time \\r\\n \\r\\n Effective Time \\r\\n \\r\\n
\\r\\n {{conversion?.passNumber}}\\r\\n {{conversion?.toolingVersion}}\\r\\n {{getDate(conversion?.startDate) | date:'MM/dd/yyyy HH:mm:ss'}}\\r\\n \\r\\n \\r\\n
\\r\\n {{ getStatusIcon(conversion?.status) }}\\r\\n {{ status[conversion?.status]}}\\r\\n \\r\\n
\\r\\n
\\r\\n {{ conversion?.status === 5 ? ((conversion?.modifiedDate) | date:'MM/dd/yyyy HH:mm:ss') : null}}\\r\\n \\r\\n \\r\\n \\r\\n {{getElapsedTime(conversion?.startDate, conversion?.modifiedDate)}}\\r\\n {{fixNumberTwoDecimals(conversion?.effectiveTime)}} hrs.\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/conversion-assesment/conversion-assesment.component.html\n ** module id = 656\n ** module chunks = 0\n **/","module.exports = \"::ng-deep .mat-list .mat-list-item .mat-list-item-content {\\r\\n height: auto !important;\\r\\n}\\r\\n.arrow-up {\\r\\n width: 0;\\r\\n height: 0;\\r\\n border-left: 5px solid transparent;\\r\\n border-right: 5px solid transparent;\\r\\n border-bottom: 5px solid black;\\r\\n position: relative;\\r\\n top: -26%;\\r\\n left: 1%;\\r\\n}\\r\\n\\r\\n.arrow-down {\\r\\n width: 0;\\r\\n height: 0;\\r\\n border-left: 5px solid transparent;\\r\\n border-right: 5px solid transparent;\\r\\n border-top: 5px solid #f00;\\r\\n position: relative;\\r\\n top: 26%;\\r\\n left: 1%;\\r\\n}\"\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/conversion-assesment/conversion-assesment.component.css\n ** module id = 657\n ** module chunks = 0\n **/","import { Component, OnInit} from '@angular/core';\r\nimport { DOMEvents } from '../dom-events';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\nimport { AuthService, LoggedInUser, Permission, Role } from '../auth/auth.service';\r\nimport { DateService } from '../shared/services/date.service';\r\nimport { PagerService } from '../shared/services/pager.service';\r\nimport { DatePipe } from '@angular/common';\r\nimport { UsersService } from '../users/_services/users.service';\r\nimport { IMyDpOptions, IMyDateModel } from 'mydatepicker';\r\nimport { ConversionsService } from '../sites/conversions/_services/conversions.service';\r\nimport { MdSnackBar } from '@angular/material';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { RegionService} from '../shared/services/region.service';\r\n\r\n@Component({\r\n selector: 'golive-report',\r\n template: require('./golive-report.component.html'),\r\n styles: [require('./golive-report.component.css')],\r\n providers: [DateService, PagerService, DatePipe, UsersService, ConversionsService,RegionService]\r\n})\r\nexport class GoLiveReportComponent implements OnInit {\r\n constructor(\r\n private domEvents: DOMEvents, \r\n private auth: AuthService,\r\n private dateService: DateService,\r\n private pagerService: PagerService,\r\n private datePipe: DatePipe,\r\n private usersService: UsersService,\r\n private ConversionsService: ConversionsService,\r\n public snackBar: MdSnackBar ,\r\n private router: Router,\r\n private regionService: RegionService\r\n\r\n ){\r\n\r\n }\r\n months: any[] = [];\r\n today = new Date();\r\n toDate = new Date(this.today.getFullYear(),this.today.getMonth(),this.today.getDate());\r\n fromDate = new Date(\"01-01-2017\");\r\n planTime: any = null;\r\n conversions:any[]\r\n hasMoreResults: boolean = false;\r\n selectedToDate:string = '';\r\n selectedFromDate:string = '';\r\n myDatePickerOptions: IMyDpOptions = {\r\n dateFormat: 'yyyy-mm-dd',\r\n inline: false,\r\n markCurrentDay: true,\r\n openSelectorOnInputClick: true\r\n };\r\n pageIndex: number = 0;\r\n tokens: string[] = [\"\"];\r\n searchText: string = '';\r\n searchTimeout: any;\r\n conversionPassesLoader:boolean =null;\r\n isLoading : boolean = false ;\r\n goLiveCount: number = 0;\r\n download:boolean =false;\r\n regions:any[];\r\n golivestatus:any;\r\n teststatus:any;\r\n duration:any;\r\n durationDate:any;\r\n durationStartDate:any;\r\n durationEndDate:any;\r\n\r\n downloadFile(data:any[], filename = 'data') {\r\n let arrHeader = [\"restricted\",\"siteId\", \"siteName\", \"region\", \"deployment\", \"projectCode\", \"projectType\",\"fromVersion\", \"toVersion\", \"passNumber\",\"plannedDate\",\"startDate\",\"endDate\",\"conversionStatus\",\"totalDuration\",\"conversionUrl\"];\r\n let csvData = this.ConvertToCSV(data, arrHeader);\r\n let blob = new Blob(['\\ufeff' + csvData], { type: 'text/csv;charset=utf-8;' });\r\n let dwldLink = document.createElement(\"a\");\r\n let url = URL.createObjectURL(blob);\r\n let isSafariBrowser = navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1;\r\n if (isSafariBrowser) { //if Safari open in new window to save file with random filename.\r\n dwldLink.setAttribute(\"target\", \"_blank\");\r\n }\r\n dwldLink.setAttribute(\"href\", url);\r\n dwldLink.setAttribute(\"download\", filename);\r\n dwldLink.style.visibility = \"hidden\";\r\n document.body.appendChild(dwldLink);\r\n dwldLink.click();\r\n document.body.removeChild(dwldLink);\r\n }\r\n\r\n ConvertToCSV(objArray:any[], headerList:any) {\r\n let array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;\r\n let str = '';\r\n let row = 'S.No,';\r\n \r\n let newHeaders = [\"ITAR\", \"Site ID\", \"Site Name\", \"Region\",\"Deployment\", \"Project Code\", \"Project Type\", \"From Version\", \"To Version\", \"Pass Number\", \"GoLive Date\",\"Start Date\",\"Completed Date\",\"Status\",\"Duration (in Hrs)\",\"Conversion Url\"];\r\n \r\n for (let index in newHeaders) {\r\n row += newHeaders[index] + ',';\r\n }\r\n row = row.slice(0, -1);\r\n str += row + '\\r\\n';\r\n for (let i = 0; i < array.length; i++) {\r\n let line = (i + 1) + '';\r\n for (let index in headerList) {\r\n let head = headerList[index];\r\n \r\n line += ',' + this.strRep(array[i][head],head);\r\n }\r\n str += line + '\\r\\n';\r\n }\r\n return str;\r\n }\r\n\r\n strRep(data:any, header:any) {\r\n if(header.indexOf('Date') !== -1 && !isNaN(Date.parse(data)) ==true) {\r\n return this.datePipe.transform(data, 'MMM dd yyyy hh:mm aa');\r\n }\r\n else if(header == \"restricted\"){\r\n if(data)\r\n return 'Yes'\r\n else\r\n return 'No'\r\n }\r\n else if(typeof data == \"undefined\") {\r\n return \"-\";\r\n }\r\n else if(typeof data == \"number\") {\r\n return data.toString();\r\n }\r\n else if(typeof data == \"string\") {\r\n let newData = data.replace(/,/g, \" \");\r\n return newData;\r\n } \r\n else {\r\n return data;\r\n }\r\n }\r\n ngOnInit() {\r\n this.domEvents.triggerOnDocument(\"appready\");\r\n this.getRegions()\r\n this.duration= 'currentMonth'\r\n this.golivestatus='success'\r\n this.teststatus='success'\r\n }\r\n\r\n viewConversionPass(conversionPass: any) {\r\n if (conversionPass) {\r\n this.router.navigate([`/conversions/${conversionPass.conversionId}/passes/${conversionPass.passNumber}`]);\r\n }\r\n }\r\n\r\n getRegions() {\r\n this.regionService.getRegions().subscribe((regions:any) => {\r\n this.regions = regions;\r\n });\r\n }\r\n getGoLive(searchText: string = \"\", token: string = \"\") {\r\n let pageSize =25\r\n let fromDate = this.selectedFromDate\r\n let toDate = this.selectedToDate\r\n let download = this.download\r\n this.conversionPassesLoader = false;\r\n this.isLoading =true\r\n let goliveConversionStatus = this.golivestatus;\r\n let testConversionStatus = this.teststatus;\r\n this.ConversionsService.getConversionGoLive({searchText, token,fromDate , toDate, goliveConversionStatus,testConversionStatus, pageSize, download}).subscribe((response: any) => {\r\n this.conversions = response.result\r\n this.hasMoreResults = response.hasMoreResults;\r\n if (this.conversions.length > 0){\r\n this.goLiveCount = this.conversions.length\r\n }\r\n if (response.requestContinuation != null) {\r\n let token = JSON.parse(response.requestContinuation).token\r\n \r\n if( token == null){\r\n token = JSON.parse(response.requestContinuation)[0].token\r\n }\r\n\r\n if (typeof this.tokens[this.pageIndex + 1] === 'undefined') {\r\n this.tokens.push(token);\r\n } \r\n }\r\n\r\n this.conversionPassesLoader = true;\r\n this.isLoading =false\r\n\r\n this.ConversionsService.getGoLiveCount({searchText, token, fromDate , toDate, goliveConversionStatus, testConversionStatus}).subscribe((response: any) => {\r\n this.goLiveCount = response.result\r\n }); \r\n });\r\n }\r\n\r\n exportAsCsv(){\r\n let pageSize =25\r\n let fromDate = this.selectedFromDate\r\n let toDate = this.selectedToDate\r\n let download = true\r\n let searchText =this.searchText\r\n let token=\"\"\r\n let filename=`GoLiveReport_${this.selectedFromDate}_${this.selectedToDate}.csv`\r\n let goliveConversionStatus = this.golivestatus\r\n let testConversionStatus = this.teststatus\r\n\r\n let snackBarDownloading = this.snackBar.open(`Please wait. File ${filename} is downloading..`); \r\n\r\n this.ConversionsService.getConversionGoLive({searchText, token,fromDate , toDate, goliveConversionStatus,testConversionStatus, pageSize, download}).subscribe((response: any) => {\r\n let conversions = response.result\r\n this.downloadFile(conversions,filename)\r\n\r\n let snackBarDownloaded = this.snackBar.open(`File ${filename} is successfully downloaded.`, null, {\r\n duration: 2000\r\n });\r\n })\r\n }\r\n \r\n onSubmit()\r\n {\r\n this.goLiveCount = 0\r\n let durationDate = new Date()\r\n \r\n if(this.duration == 'currentMonth'){\r\n this.durationStartDate = new Date(durationDate.getFullYear(), durationDate.getMonth(), 1);\r\n this.durationEndDate = new Date(this.durationStartDate.getFullYear(), this.durationStartDate.getMonth() + 1, 0);\r\n }\r\n \r\n if(this.duration == 'previousMonth'){\r\n this.durationStartDate = new Date(durationDate.getFullYear(), durationDate.getMonth()-1, 1);\r\n this.durationEndDate = new Date(durationDate.getFullYear(), durationDate.getMonth() , 1);\r\n }\r\n\r\n if(this.duration=='period'){\r\n if(this.fromDate == null || this.toDate == null){\r\n alert('Please select valid date');\r\n return;\r\n }\r\n else{\r\n this.durationStartDate = new Date(this.fromDate.toString()); \r\n this.durationEndDate = new Date(this.toDate.toString());\r\n }\r\n }\r\n\r\n if(this.duration=='currentYear'){\r\n this.durationStartDate = new Date(durationDate.getFullYear(),0,1);\r\n this.durationEndDate = new Date(durationDate.getFullYear(), durationDate.getMonth(), durationDate.getDate());\r\n }\r\n\r\n if(this.duration == 'previousYear'){\r\n this.durationStartDate = new Date(durationDate.getFullYear()-1,0,1);\r\n this.durationEndDate = new Date(durationDate.getFullYear(), 0,1);\r\n }\r\n\r\n if(this.duration == 'all'){\r\n this.durationStartDate = new Date(2017,0,1);\r\n this.durationEndDate = new Date(durationDate.getFullYear(), durationDate.getMonth(),durationDate.getDate());\r\n }\r\n\r\n let fyear = this.durationStartDate.getFullYear();\r\n let fmonth = (this.durationStartDate.getMonth() + 1).toString();\r\n let fday = this.durationStartDate.getDate().toString();\r\n\r\n this.selectedFromDate = `${fyear}-${fmonth}-${fday}`;\r\n\r\n let toDate = new Date(this.durationEndDate.getFullYear(), this.durationEndDate.getMonth(), this.durationEndDate.getDate()+1);\r\n let tyear = toDate.getFullYear();\r\n let tmonth = (toDate.getMonth() + 1).toString();\r\n let tday = toDate.getDate().toString();\r\n\r\n this.selectedToDate = `${tyear}-${tmonth}-${tday}`;\r\n\r\n if(this.durationStartDate > this.durationEndDate){\r\n alert('From Date should be less than End Date');\r\n this.fromDate= null \r\n this.toDate=null \r\n return;\r\n }\r\n this.getGoLive(this.searchText)\r\n }\r\n \r\n previous() {\r\n this.pageIndex -= 1;\r\n let token = this.tokens[this.pageIndex];\r\n\r\n if (typeof token !== 'undefined') {\r\n this.getGoLive(this.searchText, token);\r\n } else {\r\n this.pageIndex += 1;\r\n }\r\n }\r\n\r\n next() {\r\n this.pageIndex += 1;\r\n let token = this.tokens[this.pageIndex];\r\n\r\n if (typeof token !== 'undefined') {\r\n this.getGoLive(this.searchText, token);\r\n } else {\r\n this.pageIndex -= 1;\r\n }\r\n }\r\n\r\n filterConversion() {\r\n this.searchTimeout = setTimeout(() => {\r\n this.pageIndex = 0;\r\n this.tokens = [\"\"];\r\n let token = this.tokens[this.pageIndex];\r\n this.getGoLive(this.searchText, token);\r\n }, 500);\r\n }\r\n\r\n getStatusIconColor(status:string) {\r\n let color = '';\r\n\r\n switch (status) {\r\n case \"Stopped\":\r\n color = 'red';\r\n break;\r\n case \"Completed\":\r\n color = 'green';\r\n break;\r\n }\r\n return color;\r\n } \r\n\r\n getStatusIcon(status:string) {\r\n let icon = '';\r\n\r\n switch (status) {\r\n case \"Stopped\":\r\n icon = 'cancel';\r\n break;\r\n case \"Completed\":\r\n icon = 'check_circle';\r\n break;\r\n case \"InProgress\":\r\n icon = 'update';\r\n break; \r\n }\r\n return icon;\r\n }\r\n\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/golivereport/golive-report.component.ts\n **/","module.exports = \"Go Live Report ({{goLiveCount}})\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Success\\r\\n Failed\\r\\n All\\r\\n None\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Success\\r\\n Failed\\r\\n All\\r\\n None\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Current Month\\r\\n Previous Month\\r\\n Duration\\r\\n Current Year\\r\\n Previous Year\\r\\n All\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Site IDSite NameDescriptionPass NumberGoLive DateStart DateEnd DateStatus
security{{conversion?.siteId}}{{conversion?.siteName}}{{conversion?.fromProduct}} {{conversion?.fromVersion}} to {{conversion?.toProduct}} {{conversion?.toVersion}} Go-LiveTest {{ conversion?.passNumber }}{{conversion.plannedDate | date:'MM/dd/yyyy'}}{{conversion.startDate | date:'MM/dd/yyyy'}}{{conversion.endDate | date:'MM/dd/yyyy'}}\\r\\n
\\r\\n {{ getStatusIcon(conversion?.conversionStatus) }}\\r\\n {{ conversion?.conversionStatus }}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n \";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/golivereport/golive-report.component.html\n ** module id = 659\n ** module chunks = 0\n **/","module.exports = \"a {\\r\\n color: #0078d7;\\r\\n }\\r\\n \\r\\n a:hover {\\r\\n text-decoration: underline;\\r\\n }\"\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/golivereport/golive-report.component.css\n ** module id = 660\n ** module chunks = 0\n **/","import { FilterConfiguratorPipe } from './sites/analysis/custom/configurators/configurators.pipe';\r\nimport { FilterCustomisationPipe } from './sites/analysis/custom/customisations/customisations.pipe';\r\nimport { FilterProvisionSitesPipe } from './account/provision/user-provision.pipe'; \r\nimport { FilterReportsPipe } from './sites/reports/reports.pipe';\r\nimport { FilterCustomTablePipe } from './sites/analysis/custom/customTables/customTables.pipe';\r\nimport { FilterLicensesPipe } from './sites/analysis/licenses/licenses.pipe';\r\n\r\nimport { RoundNumberPipe } from './shared/pipes/number.pipe';\r\nimport { FilterConvesionPassLogByType, FilterConversionPassByStatus } from './sites/conversions/_pipes/conversions.pipe';\r\n\r\nimport {ReportOrderByPipe} from './sites/reports/reportorderby.pipe';\r\nimport {ReportGroupByPipe} from './sites/reports/reportgroupby.pipe';\r\nimport {ReportFilterPipe} from './sites/reports/reportfilter.pipe';\r\nimport {BPMsSearchPipe} from './sites/analysis/custom/bpms.search.pipe';\r\nimport {BAQsSearchPipe} from './sites/analysis/custom/baqs.search.pipe'\r\nimport {MenusSearchPipe} from './sites/analysis/custom/menus/menus.search.pipe'\r\nimport {UDFormSearchPipe} from './sites/analysis/custom/udforms/udforms.search.pipe'\r\nimport {SdkSearchPipe} from './sites/analysis/custom/sdk/sdk.search.pipe'\r\nimport {UserDefinedTablesSearchPipe } from './sites/analysis/custom/UserDefinedTables/userDefinedTables.search.pipe'\r\nimport {CustomTriggerSearchPipe } from './sites/analysis/custom/triggers/customTriggers.search.pipe'\r\n\r\nimport {BankInterfaceSearchPipe} from './sites/analysis/custom/bankInterfaces/bankInterfaces.search.pipe'\r\nimport {ExternalReportSearchPipe} from './sites/analysis/custom/externalReports/externalReports.search.pipe'\r\nimport {ChangeLogsSearchPipe} from './sites/analysis/custom/changelogs/changelogs.search.pipe'\r\nimport {APMObjectSearchPipe} from './sites/analysis/custom/apmObjects/apmObjects.search.pipe'\r\n\r\n\r\nexport const AppPipes: any[] = [\r\n FilterConfiguratorPipe,\r\n FilterCustomisationPipe,\r\n FilterProvisionSitesPipe,\r\n FilterReportsPipe,\r\n FilterCustomTablePipe,\r\n FilterLicensesPipe,\r\n RoundNumberPipe,\r\n FilterConvesionPassLogByType,\r\n FilterConversionPassByStatus,\r\n ReportOrderByPipe,\r\n ReportGroupByPipe,\r\n ReportFilterPipe,\r\n BPMsSearchPipe,\r\n BAQsSearchPipe,\r\n MenusSearchPipe,\r\n UDFormSearchPipe,\r\n SdkSearchPipe, \r\n BankInterfaceSearchPipe,\r\n ExternalReportSearchPipe,\r\n ChangeLogsSearchPipe,\r\n APMObjectSearchPipe,\r\n UserDefinedTablesSearchPipe,\r\n CustomTriggerSearchPipe\r\n];\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/app.pipes.ts\n **/","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({name: 'filterProvisionSites'})\r\nexport class FilterProvisionSitesPipe implements PipeTransform {\r\n transform(sites: any[], query: string, custType: string): any[] {\r\n if (query === '') {\r\n return sites.filter(s => {\r\n if (s.detail.custType === custType) {\r\n return s;\r\n }\r\n });\r\n }\r\n return sites.filter(s => \r\n (s.id.toString().indexOf(query) !== -1 ||\r\n s.detail.orgName.toLowerCase().indexOf(query.toLowerCase()) !== -1) && \r\n s.detail.custType === custType\r\n ); \r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/account/provision/user-provision.pipe.ts\n **/","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Report } from './reports.component';\r\n\r\n@Pipe({ name: 'filterReports'})\r\nexport class FilterReportsPipe implements PipeTransform {\r\n transform(reports: Report[], query: string): Report[] {\r\n if (query === '') {\r\n return reports;\r\n }\r\n return reports.filter(r =>\r\n r.siteId.toString().indexOf(query.toString()) !== -1 ||\r\n r.siteName.toLowerCase().indexOf(query.toLowerCase()) !== -1);\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/reports/reports.pipe.ts\n **/","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { CustomTable } from './customTables.component';\r\n\r\n@Pipe({name: 'filterCustomTable'})\r\nexport class FilterCustomTablePipe implements PipeTransform {\r\n transform(customTable: CustomTable[], query: string): CustomTable[] {\r\n if (query === '') {\r\n return customTable;\r\n }\r\n return customTable.filter(c => \r\n c.name.toLowerCase().indexOf(query.toLowerCase()) !== -1 \r\n // ||\r\n // c.columns.filter(cl => cl.description.toLowerCase().indexOf(query.toLowerCase()) !== -1)\r\n ); \r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/customTables/customTables.pipe.ts\n **/","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Licenses } from './licenses.component';\r\n\r\n@Pipe({name: 'filterLicenses'})\r\nexport class FilterLicensesPipe implements PipeTransform {\r\n transform(licenses: Licenses[], query: string): Licenses[] {\r\n if (query === '') {\r\n return licenses;\r\n }\r\n return licenses.filter(l => \r\n l.name.toLowerCase().indexOf(query.toLowerCase()) !== -1 \r\n ); \r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/licenses/licenses.pipe.ts\n **/","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'roundNumber'})\r\nexport class RoundNumberPipe implements PipeTransform {\r\n transform(value:number): number {\r\n return Math.round(value); \r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/shared/pipes/number.pipe.ts\n **/","import { Component, NgModule, Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({name: 'reportorderby'})\r\n\r\nexport class ReportOrderByPipe implements PipeTransform {\r\n transform(records: Array, args?: any): any {\r\n\r\n return records.sort(function(a, b){\r\n if(a[args.property] < b[args.property]){\r\n return -1 * args.direction;\r\n }\r\n else if( a[args.property] > b[args.property]){\r\n return 1 * args.direction;\r\n }\r\n else{\r\n return 0;\r\n }\r\n });\r\n };\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/reports/reportorderby.pipe.ts\n **/","import { Component, NgModule, Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'reportgroupby'\r\n})\r\n\r\nexport class ReportGroupByPipe implements PipeTransform {\r\n transform(value: Array, field: string): Array {\r\n let tempValue: any[] = [];\r\n const groupedObj = value.reduce((prev, cur)=> {\r\n if(!prev[cur[field]]) {\r\n prev[cur[field]] = [cur];\r\n } else {\r\n prev[cur[field]].push(cur);\r\n }\r\n return prev;\r\n }, {});\r\n \r\n return Object.keys(groupedObj).map(key => ({ key, value: groupedObj[key] }));\r\n }\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/reports/reportgroupby.pipe.ts\n **/","import { Component, NgModule, Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'reportfilter'\r\n})\r\n\r\n\r\nexport class ReportFilterPipe implements PipeTransform {\r\ntransform(items: any[], searchField:any): any[]{\r\n let filteredList:any[]=[];\r\n \r\n if(searchField==undefined){\r\n return items;\r\n }\r\n else if (items && items.length ){\r\n items.forEach((item: any) => { \r\n if(searchField!=null){\r\n var splitIDs = searchField.split(',');\r\n splitIDs.forEach((id: any)=>{\r\n if(id.length > 0){ \r\n if(item.rowIndex == id){\r\n filteredList.push(item);\r\n }\r\n }\r\n else{\r\n filteredList.push(item);\r\n }\r\n });\r\n }\r\n });\r\n return filteredList;\r\n }\r\n else{\r\n return items;\r\n }\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/reports/reportfilter.pipe.ts\n **/","import { Component, NgModule, Pipe, PipeTransform } from '@angular/core';\r\nimport {BAQsFilterColumnName} from './baqs.modaldialog'\r\n\r\n@Pipe({\r\n name: 'baqssearch'\r\n})\r\n\r\nexport class BAQsSearchPipe implements PipeTransform {\r\n transform(items: any[], Search:any): any[]{\r\n let search =Object.keys(Search[0]).toString();\r\n if (items && items.length ){\r\n return items.filter(item =>{\r\n if(search.toString() == BAQsFilterColumnName[BAQsFilterColumnName.Company]){\r\n if (Search[0].Company && item.key.toString().toLowerCase().indexOf(Search[0].Company) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == BAQsFilterColumnName[BAQsFilterColumnName.QueryId]){\r\n if (Search[0].QueryId && item.key.toString().toLowerCase().indexOf(Search[0].QueryId) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == BAQsFilterColumnName[BAQsFilterColumnName.Description]){\r\n if (Search[0].Description && item.key.toString().toLowerCase().indexOf(Search[0].Description) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == BAQsFilterColumnName[BAQsFilterColumnName.Author]){\r\n if (Search[0].Author && item.key.toString().toLowerCase().indexOf(Search[0].Author) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == BAQsFilterColumnName[BAQsFilterColumnName.Complexity]){\r\n if (Search[0].Complexity && item.key.toString().toLowerCase().indexOf(Search[0].Complexity) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == BAQsFilterColumnName[BAQsFilterColumnName.Compatible]){\r\n if (Search[0].Compatible && item.key.toString().toLowerCase().indexOf(Search[0].Compatible) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == BAQsFilterColumnName[BAQsFilterColumnName.Shared]){\r\n if (Search[0].Shared && item.key.toString().toLowerCase().indexOf(Search[0].Shared) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == BAQsFilterColumnName[BAQsFilterColumnName.Tables]){\r\n if (Search[0].Tables && item.key.toString().toLowerCase().indexOf(Search[0].Tables) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == BAQsFilterColumnName[BAQsFilterColumnName.External]){\r\n if (Search[0].External && item.key.toString().toLowerCase().indexOf(Search[0].External) === -1){\r\n return false;\r\n }\r\n } \r\n return true;\r\n });\r\n }\r\n else{\r\n return items;\r\n }\r\n }\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/baqs.search.pipe.ts\n **/","import { Component, NgModule, Pipe, PipeTransform } from '@angular/core';\r\nimport {MenusFilterColumnName} from './menus.dialog'\r\n\r\n@Pipe({\r\n name: 'menussearch'\r\n})\r\n\r\nexport class MenusSearchPipe implements PipeTransform {\r\n transform(items: any[], Search:any): any[]{\r\n let search =Object.keys(Search[0]).toString();\r\n\r\n if (items && items.length ){\r\n return items.filter(item =>{\r\n if(search.toString() == MenusFilterColumnName[MenusFilterColumnName.ID]){\r\n if (Search[0].ID && item.key.toString().toLowerCase().indexOf(Search[0].ID) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == MenusFilterColumnName[MenusFilterColumnName.Name]){\r\n if (Search[0].Name && item.key.toString().toLowerCase().indexOf(Search[0].Name) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == MenusFilterColumnName[MenusFilterColumnName.Program]){\r\n if (Search[0].Program && item.key.toString().toLowerCase().indexOf(Search[0].Program) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == MenusFilterColumnName[MenusFilterColumnName.Arguments]){\r\n if (Search[0].Arguments && item.key.toString().toLowerCase().indexOf(Search[0].Arguments) === -1){\r\n return false;\r\n }\r\n } \r\n return true;\r\n });\r\n }\r\n else{\r\n return items;\r\n }\r\n }\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/menus/menus.search.pipe.ts\n **/","import { Component, NgModule, Pipe, PipeTransform } from '@angular/core';\r\nimport {UDFormsFilterColumnName} from './udforms.modaldialog'\r\n\r\n@Pipe({\r\n name: 'udformsearch'\r\n})\r\n\r\nexport class UDFormSearchPipe implements PipeTransform {\r\n transform(items: any[], Search:any): any[]{\r\n let search =Object.keys(Search[0]).toString();\r\n\r\n if (items && items.length ){\r\n return items.filter(item =>{\r\n if(search.toString() == UDFormsFilterColumnName[UDFormsFilterColumnName.Name]){\r\n if (Search[0].Name && item.key.toString().toLowerCase().indexOf(Search[0].Name) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == UDFormsFilterColumnName[UDFormsFilterColumnName.Description]){\r\n if (Search[0].Description && item.key.toString().toLowerCase().indexOf(Search[0].Description) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == UDFormsFilterColumnName[UDFormsFilterColumnName.Rows]){\r\n if (Search[0].Rows && item.key.toString().toLowerCase().indexOf(Search[0].Rows) === -1){\r\n return false;\r\n }\r\n } \r\n return true;\r\n });\r\n }\r\n else{\r\n return items;\r\n }\r\n }\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/udforms/udforms.search.pipe.ts\n **/","import { Component, NgModule, Pipe, PipeTransform } from '@angular/core';\r\nimport {SdkFilterColumnName} from './sdk.modaldialog'\r\n\r\n@Pipe({\r\n name: 'sdksearch'\r\n})\r\n\r\nexport class SdkSearchPipe implements PipeTransform {\r\n transform(items: any[], Search:any): any[]{\r\n let search =Object.keys(Search[0]).toString();\r\n\r\n if (items && items.length ){\r\n return items.filter(item =>{\r\n if(search.toString() == SdkFilterColumnName[SdkFilterColumnName.ClassName]){\r\n if (Search[0].ClassName && item.key.toString().toLowerCase().indexOf(Search[0].ClassName) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == SdkFilterColumnName[SdkFilterColumnName.Description]){\r\n if (Search[0].Description && item.key.toString().toLowerCase().indexOf(Search[0].Description) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == SdkFilterColumnName[SdkFilterColumnName.ClassType]){\r\n if (Search[0].ClassType && item.key.toString().toLowerCase().indexOf(Search[0].ClassType) === -1){\r\n return false;\r\n }\r\n } \r\n return true;\r\n });\r\n }\r\n else{\r\n return items;\r\n }\r\n }\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/sdk/sdk.search.pipe.ts\n **/","import { Component, NgModule, Pipe, PipeTransform } from '@angular/core';\r\nimport {UserDefinedTablesFilterColumnName} from './userDefinedTables.modaldialog'\r\n\r\n@Pipe({\r\n name: 'userDefinedTables'\r\n})\r\n\r\nexport class UserDefinedTablesSearchPipe implements PipeTransform {\r\n transform(items: any[], Search:any): any[]{\r\n let search =Object.keys(Search[0]).toString();\r\n\r\n if (items && items.length ){\r\n return items.filter(item =>{\r\n if(search.toString() == UserDefinedTablesFilterColumnName[UserDefinedTablesFilterColumnName.Name]){\r\n if (Search[0].Name && item.key.toString().toLowerCase().indexOf(Search[0].Name) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == UserDefinedTablesFilterColumnName[UserDefinedTablesFilterColumnName.RowCount]){\r\n if (Search[0].RowCount && item.key.toString().toLowerCase().indexOf(Search[0].RowCount) === -1){\r\n return false;\r\n }\r\n } \r\n return true;\r\n });\r\n }\r\n else{\r\n return items;\r\n }\r\n }\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/UserDefinedTables/userDefinedTables.search.pipe.ts\n **/","import { Component, NgModule, Pipe, PipeTransform } from '@angular/core';\r\nimport { CustomTriggersFilterColumnName} from './customTriggers.modaldialog'\r\n\r\n@Pipe({\r\n name: 'customTriggers'\r\n})\r\n\r\nexport class CustomTriggerSearchPipe implements PipeTransform {\r\n transform(items: any[], Search:any): any[]{\r\n let search =Object.keys(Search[0]).toString();\r\n let tempItem: any[]=[];\r\n if (items && items.length ){\r\n return items.filter(item =>{\r\n if(search.toString() == CustomTriggersFilterColumnName[CustomTriggersFilterColumnName.Name]){\r\n if (Search[0].Name && item.key.toString().toLowerCase().indexOf(Search[0].Name) === -1){\r\n return false;\r\n }\r\n }\r\n if(search.toString() == CustomTriggersFilterColumnName[CustomTriggersFilterColumnName.TableName]){\r\n if (Search[0].TableName && item.key.toString().toLowerCase().indexOf(Search[0].TableName) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == CustomTriggersFilterColumnName[CustomTriggersFilterColumnName.LOC]){\r\n if (Search[0].LOC && item.key.toString().toLowerCase().indexOf(Search[0].LOC) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == CustomTriggersFilterColumnName[CustomTriggersFilterColumnName.Complexity]){\r\n if (Search[0].Complexity && item.key.toString().toLowerCase().indexOf(Search[0].Complexity) === -1){\r\n return false;\r\n }\r\n } \r\n return true;\r\n });\r\n }\r\n else{\r\n return items;\r\n }\r\n }\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/triggers/customTriggers.search.pipe.ts\n **/","import { Component, NgModule, Pipe, PipeTransform } from '@angular/core';\r\nimport {BankInterfaceFilterColumnName} from './bankInterfaces.modaldialog'\r\n\r\n@Pipe({\r\n name: 'bankinterfacesearch'\r\n})\r\n\r\nexport class BankInterfaceSearchPipe implements PipeTransform {\r\n transform(items: any[], Search:any): any[]{\r\n let search =Object.keys(Search[0]).toString();\r\n\r\n if (items && items.length ){\r\n return items.filter(item =>{\r\n if(search.toString() == BankInterfaceFilterColumnName[BankInterfaceFilterColumnName.Companies]){\r\n if (Search[0].Companies && item.key.toString().toLowerCase().indexOf(Search[0].Companies) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == BankInterfaceFilterColumnName[BankInterfaceFilterColumnName.Name]){\r\n if (Search[0].Name && item.key.toString().toLowerCase().indexOf(Search[0].Name) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == BankInterfaceFilterColumnName[BankInterfaceFilterColumnName.Type]){\r\n if (Search[0].Type && item.key.toString().toLowerCase().indexOf(Search[0].Type) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == BankInterfaceFilterColumnName[BankInterfaceFilterColumnName.LOC]){\r\n if (Search[0].LOC && item.key.toString().toLowerCase().indexOf(Search[0].LOC) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == BankInterfaceFilterColumnName[BankInterfaceFilterColumnName.Complexity]){\r\n if (Search[0].Complexity && item.key.toString().toLowerCase().indexOf(Search[0].Complexity) === -1){\r\n return false;\r\n }\r\n } \r\n return true;\r\n });\r\n }\r\n else{\r\n return items;\r\n }\r\n }\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/bankInterfaces/bankInterfaces.search.pipe.ts\n **/","import { Component, NgModule, Pipe, PipeTransform } from '@angular/core';\r\nimport {ExternalReportsFilterColumnName} from './externalReports.modaldialog'\r\n\r\n@Pipe({\r\n name: 'externalreportsearch'\r\n})\r\n\r\nexport class ExternalReportSearchPipe implements PipeTransform {\r\n transform(items: any[], Search:any): any[]{\r\n let search =Object.keys(Search[0]).toString();\r\n\r\n if (items && items.length ){\r\n return items.filter(item =>{\r\n if(search.toString() == ExternalReportsFilterColumnName[ExternalReportsFilterColumnName.Description]){\r\n if (Search[0].Description && item.key.toString().toLowerCase().indexOf(Search[0].Description) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == ExternalReportsFilterColumnName[ExternalReportsFilterColumnName.ID]){\r\n if (Search[0].ID && item.key.toString().toLowerCase().indexOf(Search[0].ID) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == ExternalReportsFilterColumnName[ExternalReportsFilterColumnName.Type]){\r\n if (Search[0].Type && item.key.toString().toLowerCase().indexOf(Search[0].Type) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == ExternalReportsFilterColumnName[ExternalReportsFilterColumnName.Complexity]){\r\n if (Search[0].Complexity && item.key.toString().toLowerCase().indexOf(Search[0].Complexity) === -1){\r\n return false;\r\n }\r\n } \r\n return true;\r\n });\r\n }\r\n else{\r\n return items;\r\n }\r\n }\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/externalReports/externalReports.search.pipe.ts\n **/","import { Component, NgModule, Pipe, PipeTransform } from '@angular/core';\r\nimport {ChangeLogsFilterColumnName} from './changelogs.modaldialog'\r\n\r\n@Pipe({\r\n name: 'changelogssearch'\r\n})\r\n\r\nexport class ChangeLogsSearchPipe implements PipeTransform {\r\n transform(items: any[], Search:any): any[]{\r\n let search =Object.keys(Search[0]).toString();\r\n if (items && items.length ){\r\n return items.filter(item =>{\r\n if(search.toString() == ChangeLogsFilterColumnName[ChangeLogsFilterColumnName.Description]){\r\n if (Search[0].Description && item.key.toString().toLowerCase().indexOf(Search[0].Description) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == ChangeLogsFilterColumnName[ChangeLogsFilterColumnName.Table]){\r\n if (Search[0].Table && item.key.toString().toLowerCase().indexOf(Search[0].Table) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == ChangeLogsFilterColumnName[ChangeLogsFilterColumnName.Complexity]){\r\n if (Search[0].Complexity && item.key.toString().toLowerCase().indexOf(Search[0].Complexity) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == ChangeLogsFilterColumnName[ChangeLogsFilterColumnName.LOC]){\r\n if (Search[0].LOC && item.key.toString().toLowerCase().indexOf(Search[0].LOC) === -1){\r\n return false;\r\n }\r\n } \r\n return true;\r\n });\r\n }\r\n else{\r\n return items;\r\n }\r\n }\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/changelogs/changelogs.search.pipe.ts\n **/","import { Component, NgModule, Pipe, PipeTransform } from '@angular/core';\r\nimport {APMObjectFilterColumnName} from './apmObjects.modaldialog'\r\n\r\n@Pipe({\r\n name: 'apmsearch'\r\n})\r\n\r\nexport class APMObjectSearchPipe implements PipeTransform {\r\n transform(items: any[], Search:any): any[]{\r\n let search =Object.keys(Search[0]).toString();\r\n\r\n if (items && items.length ){\r\n return items.filter(item =>{\r\n if(search.toString() == APMObjectFilterColumnName[APMObjectFilterColumnName.DocumentID]){\r\n if (Search[0].DocumentID && item.key.toString().toLowerCase().indexOf(Search[0].DocumentID) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == APMObjectFilterColumnName[APMObjectFilterColumnName.DocumentType]){\r\n if (Search[0].DocumentType && item.key.toString().toLowerCase().indexOf(Search[0].DocumentType) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == APMObjectFilterColumnName[APMObjectFilterColumnName.Documents]){\r\n if (Search[0].Documents && item.key.toString().toLowerCase().indexOf(Search[0].Documents) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == APMObjectFilterColumnName[APMObjectFilterColumnName.Properties]){\r\n if (Search[0].Properties && item.key.toString().toLowerCase().indexOf(Search[0].Properties) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == APMObjectFilterColumnName[APMObjectFilterColumnName.Routings]){\r\n if (Search[0].Routings && item.key.toString().toLowerCase().indexOf(Search[0].Routings) === -1){\r\n return false;\r\n }\r\n } \r\n else if(search.toString() == APMObjectFilterColumnName[APMObjectFilterColumnName.Recipients]){\r\n if (Search[0].Recipients && item.key.toString().toLowerCase().indexOf(Search[0].Recipients) === -1){\r\n return false;\r\n }\r\n } \r\n return true;\r\n });\r\n }\r\n else{\r\n return items;\r\n }\r\n }\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/analysis/custom/apmObjects/apmObjects.search.pipe.ts\n **/","import { Component, ViewChild, ElementRef, HostListener } from '@angular/core';\r\nimport { MdDialogRef } from '@angular/material';\r\n\r\n@Component({\r\n selector: 'help-dialog',\r\n template: require('./help-dialog.component.html'),\r\n styles: [require('./help-dialog.component.css')]\r\n})\r\nexport class HelpDialog {\r\n\r\n @ViewChild('container') container: ElementRef;\r\n\r\n constructor(public dialogRef: MdDialogRef) { }\r\n\r\n innerHTML(html: string, navigateTo?: string) {\r\n this.container.nativeElement.innerHTML = html;\r\n\r\n this.container.nativeElement.style.height = window.innerHeight - 200;\r\n this.container.nativeElement.style.width = window.innerWidth - 200;\r\n this.container.nativeElement.style.overflowY = 'auto';\r\n\r\n if (navigateTo) { \r\n //TODO(dale): jump to a particular section in document\r\n }\r\n }\r\n\r\n jump(h: string) {\r\n var url = location.href;\r\n location.href = \"#\" + h;\r\n }\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n\r\n @HostListener('window:resize', ['$event'])\r\n resize(event: any) {\r\n this.container.nativeElement.style.height = window.innerHeight - 200;\r\n this.container.nativeElement.style.width = window.innerWidth - 200;\r\n this.container.nativeElement.style.overflowY = 'auto';\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/shared/dialogs/help-dialog.component.ts\n **/","module.exports = \"
\\r\\n
\\r\\n
\\r\\n Help \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/shared/dialogs/help-dialog.component.html\n ** module id = 681\n ** module chunks = 0\n **/","module.exports = \".dialog-header {\\r\\n background-color:#025064;\\r\\n color: white;\\r\\n}\"\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/shared/dialogs/help-dialog.component.css\n ** module id = 682\n ** module chunks = 0\n **/","import { Component } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\n\r\nimport { ConversionsService } from '../_services/conversions.service';\r\nimport { UsersService } from '../../../users/_services/users.service';\r\nimport { Timezone } from '../conversion/timezone';\r\nimport {TIMEZONES} from '../conversion/mock-timezones';\r\n\r\n@Component({\r\n selector: 'conversion-schedule-edit-dialog',\r\n template: require('./conversion-schedule-edit-dialog.html'),\r\n providers: [ConversionsService, UsersService]\r\n})\r\nexport class ConversionScheduleEditDialog {\r\n conversion: any;\r\n userRoles: string[] = [\"Administrator\", \"EpicorEmployee\"];\r\n users: any[];\r\n message: any;\r\n loading: boolean = false;\r\n assignedUserCtrl: FormControl;\r\n filteredUsers: any;\r\n\r\n \r\n timezones=TIMEZONES;\r\n planTimeZone = new Timezone();\r\n planDate: Date =null;\r\n planTime: any = null;\r\n\r\n constructor(\r\n public dialogRef: MdDialogRef,\r\n private conversionsService: ConversionsService,\r\n private usersService: UsersService) {\r\n\r\n this.assignedUserCtrl = new FormControl();\r\n this.filteredUsers = this.assignedUserCtrl.valueChanges\r\n .startWith(null)\r\n .map(emailAddress => this.filterUsers(emailAddress));\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.loading = true;\r\n\r\n this.usersService.getUsersInRoles(this.userRoles).subscribe((users: any) => {\r\n this.users = users.map((user:any)=> {\r\n return user.emailAddress;\r\n });\r\n\r\n this.loading = false;\r\n }, err => this.loading = false);\r\n this.dateFieldChanged();\r\n }\r\n\r\n onFieldChange() {\r\n var ts = new Date();\r\n \r\n this.conversionsService.updateConversionSchedule(this.conversion).subscribe(() => {\r\n let diff = ts.getTime() - new Date().getTime();\r\n let seconds = diff / 1000;\r\n let diffSeconds = Math.abs(seconds);\r\n\r\n this.message = { text: `Saved ${diffSeconds} seconds ago.`, ts: new Date(), color: 'green' };\r\n }, err => { \r\n this.message = { text: 'Failed to save, please retry...', ts: new Date(), color: 'red' };\r\n });\r\n }\r\n\r\n filterUsers(val: string) {\r\n return val ? this.users.filter(s => s.toLowerCase().indexOf(val.toLowerCase()) === 0)\r\n : this.users;\r\n }\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n\r\n \r\n plannedDateTime(){\r\n if(this.planDate==null){\r\n this.conversion.plannedDate=null;\r\n }\r\n else{\r\n //Get date data\r\n let selectedDate= new Date(this.planDate.toString());\r\n let year=selectedDate.getFullYear();\r\n let month=(selectedDate.getMonth()+1).toString();\r\n let day= selectedDate.getDate().toString();\r\n \r\n\r\n var selectedTime=\"00:00\";\r\n var selectedZone=\"+00:00\";\r\n\r\n if(this.planTime!=null && this.planTime != \"\"){\r\n selectedTime=this.planTime;\r\n }\r\n\r\n if(this.planTimeZone!=null){\r\n selectedZone=this.planTimeZone.gmtAdjustment;\r\n }\r\n\r\n if(day.length==1){\r\n day=`0${day}`;\r\n }\r\n\r\n if(month.length==1){\r\n month=`0${month}`;\r\n }\r\n\r\n var selectedPlannedDate= `${year}-${month}-${day}T${selectedTime}:00`;\r\n this.conversion.plannedDate = selectedPlannedDate;\r\n this.conversion.plannedTimezone = selectedZone;\r\n\r\n }\r\n this.onFieldChange();\r\n }\r\n \r\n \r\n dateFieldChanged(){\r\n \r\n //Get saved conversion planned date\r\n if(this.conversion.plannedDate==null)\r\n {\r\n this.planDate=null;\r\n this.planTime=null;\r\n this.planTimeZone=null;\r\n }\r\n else\r\n {\r\n this.planDate=this.conversion.plannedDate;\r\n let savedPlannedDate = new Date(this.conversion.plannedDate);\r\n \r\n //Get time data from conversion planned date\r\n let m=savedPlannedDate.getMinutes();\r\n let h=savedPlannedDate.getHours();\r\n let minutes=\"\";\r\n\r\n //Minutes\r\n if(m==0||m.toString().length == 1)\r\n {\r\n minutes=`0${m}`; \r\n this.planTime= `${h}:${minutes}`;\r\n }\r\n else\r\n {\r\n minutes=m.toString();\r\n }\r\n\r\n //Hours\r\n if(h.toString().length ==1)\r\n {\r\n this.planTime = `0${h}:${minutes}`;\r\n }\r\n else\r\n {\r\n this.planTime= `${h}:${minutes}`;\r\n }\r\n \r\n //Get time zone data from conversion planned date \r\n let timezone = this.conversion.plannedTimezone; \r\n if(timezone==null || timezone.includes(\"Z\"))\r\n {\r\n timezone=\"+00:00\";\r\n }\r\n \r\n let savedTimezone=this.timezones.find(vtime => vtime.gmtAdjustment==timezone);\r\n this.planTimeZone = savedTimezone; \r\n\r\n }\r\n }\r\n\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/sites/conversions/_dialogs/conversion-schedule-edit-dialog.ts\n **/","module.exports = \"
\\r\\n \\r\\n Edit Schedule\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{ user }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n {{ message.text }} ({{ message.ts | date: 'mediumTime' }})\\r\\n
\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/sites/conversions/_dialogs/conversion-schedule-edit-dialog.html\n ** module id = 684\n ** module chunks = 0\n **/","import {ToastOptions} from 'ng2-toastr';\r\n\r\nexport class ToastsManagerOptions extends ToastOptions {\r\n animate = 'flyRight'; \r\n toastLife = 2500; \r\n dismiss = 'auto'; \r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/shared/toasts-manager-options.ts\n **/","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'settings-page',\r\n styles: [`\r\n .title {\r\n font-size:14px;\r\n padding: 0;\r\n margin: 0;\r\n font-weight: bold;\r\n }\r\n\r\n .settings-page {\r\n margin: 0 auto;\r\n width: 680px;\r\n margin-top: 10px\r\n }\r\n\r\n @media screen and (max-width: 680px) {\r\n .settings-page {\r\n width: 100%;\r\n }\r\n }\r\n `],\r\n template: `\r\n
\r\n

{{title}}

\r\n \r\n
\r\n `\r\n})\r\nexport class SettingsPageComponent {\r\n @Input() title: string;\r\n}\r\n\r\n@Component({\r\n selector: 'settings-section',\r\n styles: [`\r\n .settings-section {\r\n background: #fff;\r\n border-radius: 2px;\r\n box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);\r\n }\r\n `],\r\n template: `\r\n
\r\n \r\n
\r\n `\r\n})\r\nexport class SettingsSectionComponent {\r\n\r\n}\r\n\r\n@Component({\r\n selector: 'settings-box',\r\n styles: [`\r\n .settings-box {\r\n padding: 16px;\r\n border-bottom: 1px solid rgb(240,240,240);\r\n font-size:14px;\r\n min-height: 20px;\r\n display: flex;\r\n align-items:center;\r\n justify-content: space-between;\r\n height: 25px;\r\n }\r\n\r\n .settings-box-summary {\r\n font-size:12px;\r\n color: grey;\r\n }\r\n \r\n `],\r\n template: `\r\n
\r\n \r\n
\r\n `\r\n})\r\nexport class SettingsBoxComponent {\r\n\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/shared/components/settings-page.component.ts\n **/","export * from './reconciliation-reports.module';\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/reconciliation-reports/index.ts\n **/","import { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms'\r\nimport { MaterialModule } from '@angular/material';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { ReconciliationReportsComponent } from './reconciliation-reports.component';\r\nimport { ReconciliationReportsHeatmapBarComponent } from './reconciliation-reports-heatmap-bar/reconciliation-reports-heatmap-bar.component'\r\n\r\n@NgModule({\r\n imports: [ CommonModule, FormsModule, MaterialModule ],\r\n declarations: [ ReconciliationReportsComponent, ReconciliationReportsHeatmapBarComponent ],\r\n exports: [ ReconciliationReportsComponent ]\r\n})\r\nexport class ReconciliationReportsModule {\r\n\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/reconciliation-reports/reconciliation-reports.module.ts\n **/","import { Component, Input, Output, NgModule, EventEmitter, ViewContainerRef } from '@angular/core';\r\nimport { Options } from './reconciliation-reports-heatmap-bar/reconciliation-reports-heatmap-bar.service';\r\nimport { MdDialog, MdDialogRef, MdDialogConfig } from '@angular/material';\r\nimport { faqdialog } from './faq-dialog';\r\nimport { instructionsdialog } from \"./instructions-dialog\"\r\n\r\n@Component({\r\n selector: 'reconciliation-reports',\r\n styles: [require('./reconciliation-reports.component.css')],\r\n template: require('./reconciliation-reports.component.html')\r\n})\r\nexport class ReconciliationReportsComponent {\r\n @Input() product: any;\r\n @Input() title: string;\r\n @Input() reports: any[];\r\n @Input() reportsCount: number;\r\n @Output() onChange: EventEmitter = new EventEmitter();\r\n visible: boolean = true;\r\n heatmapBarOptions: Options = { totalCount: 0, zones: [] };\r\n companies: any[] = [];\r\n categories: any[] = [];\r\n zones: any[] = [\r\n { key: \"Matching\", value: false },\r\n { key: \"Differing\", value: true }\r\n ];\r\n filters: any = {\r\n difference: null,\r\n category: null,\r\n companyId: null\r\n };\r\n\r\n faqDialogRef: MdDialogRef;\r\n instructionsDialogRef: MdDialogRef;\r\n constructor(public dialog: MdDialog,\r\n public viewContainerRef: ViewContainerRef) { }\r\n\r\n ngOnInit() {\r\n this.reports = this.reports ? this.reports : [];\r\n this.reportsCount = this.reportsCount ? this.reportsCount : this.reports.length;\r\n this.create();\r\n }\r\n\r\n /**\r\n * Create the reconciliation reports\r\n */\r\n create() {\r\n let matchingCount: number = 0;\r\n let reviewCount: number = 0;\r\n\r\n this.heatmapBarOptions.totalCount = this.reports.length;\r\n\r\n this.reports.filter((item: any) => {\r\n if (item.sumDifference == 0 && item.countDifference == 0) {\r\n matchingCount++;\r\n } else {\r\n reviewCount++;\r\n }\r\n });\r\n\r\n this.heatmapBarOptions.zones.push({\r\n backgroundColor: 'green',\r\n count: matchingCount,\r\n title: 'Matching',\r\n color: 'white'\r\n });\r\n\r\n this.heatmapBarOptions.zones.push({\r\n backgroundColor: 'red',\r\n count: reviewCount,\r\n title: 'Differing',\r\n color: 'white'\r\n });\r\n\r\n this.getCategories();\r\n this.getCompanies();\r\n }\r\n\r\n /**\r\n * Toggle the visibility \r\n */\r\n toggle() {\r\n this.visible = this.visible ? false : true;\r\n }\r\n\r\n /**\r\n * Toggle the visiblity of report differences\r\n * @param report \r\n */\r\n toggleDifferences(report: any) {\r\n report[\"differencesVisible\"] = report[\"differencesVisible\"] ? false : true;\r\n }\r\n\r\n /**\r\n * Determine which icon to show\r\n * @param report \r\n */\r\n isMatching(report: any) {\r\n if (this.getType(report) == \"Warning\") {\r\n return {\r\n icon: 'info',\r\n color: '#2a7ce0'\r\n }\r\n }\r\n if (this.getType(report) == \"Error\") {\r\n return {\r\n icon: 'error',\r\n color: '#e84a4a'\r\n }\r\n }\r\n else if (report.sumDifference == 0 && report.countDifference == 0) {\r\n return {\r\n icon: 'check_circle',\r\n color: 'green'\r\n };\r\n }\r\n else {\r\n return {\r\n icon: 'remove_circle',\r\n color: '#e84a4a'\r\n }\r\n }\r\n }\r\n\r\n iconToolTip(icon: string) {\r\n if (icon == 'info') {\r\n return 'No records to compare, click More Info to review report parameters';\r\n }\r\n if (icon == 'error') {\r\n return 'Report could not be generated, click More Info to review error message';\r\n }\r\n if (icon == 'check_circle') {\r\n return 'No discrepancy';\r\n }\r\n if (icon == 'remove_circle') {\r\n return 'Click More Info to review discrepancies';\r\n }\r\n }\r\n\r\n hasError(report: any) {\r\n if (report && (report.sourceReportError != null || report.targetreportError != null))\r\n return true;\r\n else\r\n return false;\r\n }\r\n\r\n sourceHasError(report: any) {\r\n if (report && report.sourceReportError != null)\r\n return true;\r\n else\r\n return false;\r\n }\r\n targetHasError(report: any) {\r\n if (report && report.sourceReportError != null)\r\n return true;\r\n else\r\n return false;\r\n }\r\n\r\n getType(report: any) {\r\n if (report.sourceReportError) {\r\n var err = JSON.parse(report.sourceReportError)[0];\r\n return err.Type;\r\n }\r\n else\r\n return \"Success\";\r\n }\r\n\r\n getHTMLTablefromJson(reportParam: any) {\r\n if (reportParam) {\r\n var json = JSON.parse(reportParam);\r\n var table = \"\";\r\n if (json) {\r\n for (var i in json[0]) {\r\n table = table + \"\";\r\n }\r\n }\r\n table = table + \"
\" + i + \"\" + this.getParameterValue(json[0][i]) + \"
\"\r\n return table;\r\n }\r\n else\r\n return \"\";\r\n }\r\n\r\n getJsonFromString(jsonString: any) {\r\n if (jsonString && this.isJsonStringValid(jsonString)) {\r\n return JSON.parse(jsonString)[0];\r\n }\r\n else\r\n return null;\r\n }\r\n\r\n isJsonStringValid(str: any) {\r\n try {\r\n JSON.parse(str);\r\n } catch (e) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n getKeys(obj: any) {\r\n if (obj) {\r\n return Object.keys(obj);\r\n }\r\n else\r\n return [];\r\n }\r\n\r\n getParameterValue(value: any) {\r\n if ((!value || value == undefined || value == \"\" || value.length == 0))\r\n return \"\";\r\n else\r\n return value;\r\n }\r\n\r\n getErrorMessage(report: any) {\r\n var msg = \"\";\r\n if (report.sourceReportError) {\r\n var err = JSON.parse(report.sourceReportError)[0];\r\n msg = \"Epicor 9.05.702A Message:
\" + err.Message;\r\n //msg += \"

Description:
\" + err.Description; \r\n }\r\n if (report.targetReportError) {\r\n var err = JSON.parse(report.targetReportError)[0];\r\n msg += (msg != \"\") ? \"

\" : \"\";\r\n msg += this.product.target + \" Message:
\" + err.Message;\r\n //msg += \"

Description
\" + err.Description; \r\n }\r\n return msg;\r\n }\r\n getErrorDescription(report: any) {\r\n if (report.sourceReportError) {\r\n var err = JSON.parse(report.sourceReportError)[0];\r\n return err.Description;\r\n }\r\n else\r\n return \"\";\r\n }\r\n getCompanies() {\r\n this.companies = this.reports.map((item: any) => {\r\n return item[\"companyId\"];\r\n }).filter((item: string, index: number, array: string[]) => {\r\n return array.indexOf(item) === index;\r\n });\r\n }\r\n\r\n getCategories() {\r\n this.categories = this.reports.map((item: any) => {\r\n return item[\"category\"];\r\n }).filter((item: string, index: number, array: string[]) => {\r\n return array.indexOf(item) === index;\r\n });\r\n }\r\n\r\n change() {\r\n this.onChange.emit(this.filters);\r\n }\r\n\r\n openfaqDialog() {\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n this.faqDialogRef = this.dialog.open(faqdialog, config);\r\n }\r\n\r\n openinstructionsDialog() {\r\n let config = new MdDialogConfig();\r\n config.viewContainerRef = this.viewContainerRef;\r\n this.instructionsDialogRef = this.dialog.open(instructionsdialog, config);\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/reconciliation-reports/reconciliation-reports.component.ts\n **/","import { Component, OnInit } from '@angular/core';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\n\r\n@Component({\r\n selector: 'faq-dialog',\r\n template: require('./faq-dialog.html')\r\n\r\n})\r\nexport class faqdialog {\r\n\r\n constructor(public dialogRef: MdDialogRef) {}\r\n\r\n close() {\r\n this.dialogRef.close()\r\n }\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/reconciliation-reports/faq-dialog.ts\n **/","module.exports = \"
\\r\\n \\r\\n FAQs\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
  1. Why are the reports compared to Epicor 9.05.702A when I am upgrading from a different version such as 9.05.701 or\\r\\n 9.04? It would be impractical to develop reconciliation report for each one of dozens of releases of Epicor 9.04\\r\\n and 9.05 for availability in the conversion tooling, therefore the reconciliation is performed at the 9.05.702A\\r\\n level. When upgrading from a version prior to 9.05.702A, this does introduce the possibility of a discrepancy\\r\\n between 9.04.X or 9.05.X and 9.05.702A that is not displayed in the reconciliation reporting. Please verify your\\r\\n source system in this case.
  2. \\r\\n
  3. I see errors on my report, what do I do now? Please follow the reconciliation report instructions on the main page\\r\\n to review and report the errors.
  4. \\r\\n
  5. Support has provided a data fix to correct a reconciliation report error, how can this be applied to correct my reconciliation\\r\\n report discrepancies? Unfortunately it is not possible to correct the discrepancies within the already-generated\\r\\n reconciliation report. Instead, work with support to understand whether your data issue can be corrected in Epicor\\r\\n 9. If so, ensure you apply the fix to your legacy system prior to your next upgrade pass. In some cases, issues\\r\\n can only be corrected in the upgraded database. In this scenario, you will need to apply the fix after each upgrade\\r\\n pass is completed.
  6. \\r\\n
  7. How can I review the Reconciliation Report data set? Please locate your Upgrades folder in the Cloud Transfer Tool.\\r\\n Browse to the folder for the upgrade pass in question, and download the file named ERPReconciliationData.7z.\\r\\n This is a compressed folder containing the report XML data.
  8. \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/reconciliation-reports/faq-dialog.html\n ** module id = 691\n ** module chunks = 0\n **/","import { Component, OnInit } from '@angular/core';\r\nimport { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material';\r\n\r\n@Component({\r\n selector: 'instructions-dialog',\r\n template: require('./instructions-dialog.html')\r\n\r\n})\r\nexport class instructionsdialog {\r\n\r\n constructor(public dialogRef: MdDialogRef) {}\r\n\r\n close() {\r\n this.dialogRef.close()\r\n }\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/reconciliation-reports/instructions-dialog.ts\n **/","module.exports = \"
\\r\\n \\r\\n Reconciliation Report Instructions\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
  1. Each row represents comparison between reports generated in Epicor 9.05.702A and your conversion target.
  2. \\r\\n
  3. Click More Info to review report parameters, detailed discrepancies, and/or error messages
  4. \\r\\n
  5. Specific discrepancies can be logged with Epicor support for investigation. When requesting investigation, please\\r\\n open a new ticket at http://epicor.com/epiccare and include the following information:\\r\\n
\\r\\n
    \\r\\n
  • Copy and paste the specific row discrepancy into the support case
  • \\r\\n
  • Clarify which system is correct (source database or upgraded database) based on your review of the data
  • \\r\\n
  • Include the direct link to your reconciliation report (you can copy and paste the address from your browser window)
  • \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/reconciliation-reports/instructions-dialog.html\n ** module id = 693\n ** module chunks = 0\n **/","module.exports = \".header {\\r\\n background-color:whitesmoke;\\r\\n color: #000;\\r\\n height: 40px;\\r\\n border: 1px solid #e0e0e0;\\r\\n display:flex;\\r\\n justify-content: space-between;\\r\\n align-items:center;\\r\\n font-weight:normal;\\r\\n padding-left:12px;\\r\\n font-size:16px;\\r\\n padding-top:2px;\\r\\n border-bottom:none;\\r\\n}\\r\\n.sub-header {\\r\\n background-color:whitesmoke;\\r\\n color: #000;\\r\\n height: 50px;\\r\\n border: 1px solid #e0e0e0;\\r\\n display:flex;\\r\\n justify-content: space-between;\\r\\n align-items:center;\\r\\n font-weight:normal;\\r\\n}\\r\\n\\r\\n.title {\\r\\n /* padding-top:6px; */\\r\\n padding-left: 12px;\\r\\n font-size:1em;\\r\\n display: flex;\\r\\n justify-content: space-between;\\r\\n align-items:center;\\r\\n}\\r\\n\\r\\n table {\\r\\n border: 1px solid #ccc;\\r\\n border-collapse: collapse;\\r\\n margin: 0;\\r\\n padding: 0;\\r\\n width: 100%;\\r\\n table-layout: fixed;\\r\\n }\\r\\n table caption {\\r\\n font-size: 1.5em;\\r\\n margin: .5em 0 .75em;\\r\\n }\\r\\n table tr {\\r\\n background: #fff;\\r\\n border: 1px solid #ddd;\\r\\n padding: .35em;\\r\\n }\\r\\n table th,\\r\\n table td {\\r\\n padding: .625em;\\r\\n text-align: center;\\r\\n }\\r\\n table th {\\r\\n font-size: .85em;\\r\\n /* letter-spacing: .1em; */\\r\\n /* text-transform: uppercase; */\\r\\n background:whitesmoke;\\r\\n }\\r\\n @media screen and (max-width: 800px) {\\r\\n table {\\r\\n border: 0;\\r\\n }\\r\\n table caption {\\r\\n font-size: 1.3em;\\r\\n }\\r\\n table thead {\\r\\n border: none;\\r\\n clip: rect(0 0 0 0);\\r\\n height: 1px;\\r\\n margin: -1px;\\r\\n overflow: hidden;\\r\\n padding: 0;\\r\\n position: absolute;\\r\\n width: 1px;\\r\\n }\\r\\n table tr {\\r\\n border-bottom: 3px solid #ddd;\\r\\n display: block;\\r\\n margin-bottom: .625em;\\r\\n }\\r\\n table td {\\r\\n border-bottom: 1px solid #ddd;\\r\\n display: block;\\r\\n /* font-size: .8em; */\\r\\n text-align: right;\\r\\n }\\r\\n table td:before {\\r\\n /*\\r\\n * aria-label has no advantage, it won't be read inside a table\\r\\n content: attr(aria-label);\\r\\n */\\r\\n content: attr(data-label);\\r\\n float: left;\\r\\n font-weight: bold;\\r\\n /* text-transform: uppercase; */\\r\\n }\\r\\n table td:last-child {\\r\\n border-bottom: 0;\\r\\n }\\r\\n }\\r\\n\\r\\n /* Tooltip container */\\r\\n .tooltip {\\r\\n position: relative;\\r\\n display: inline-block;\\r\\n cursor: default;\\r\\n}\\r\\n\\r\\n/* Tooltip text */\\r\\n.tooltip .tooltiptext {\\r\\n visibility: hidden;\\r\\n width: 160px;\\r\\n height: 100px;\\r\\n overflow-x: hidden;\\r\\n overflow-y: scroll;\\r\\n /* background-color: #555; */\\r\\n background-color: #fff;\\r\\n box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); \\r\\n color: #000;\\r\\n text-align: center;\\r\\n border-radius: 4px;\\r\\n \\r\\n /* Position the tooltip text */\\r\\n padding: 5px 0;\\r\\n position: absolute;\\r\\n z-index: 1;\\r\\n /* bottom: 125%; */\\r\\n left: 50%;\\r\\n margin-left: -60px;\\r\\n \\r\\n /* Fade in tooltip */\\r\\n /* opacity: 0;\\r\\n transition: opacity 1s; */\\r\\n}\\r\\n\\r\\n/* Tooltip arrow */\\r\\n.tooltip .tooltiptext::after {\\r\\n content: \\\"\\\";\\r\\n position: absolute;\\r\\n top: 100%;\\r\\n left: 50%;\\r\\n margin-left: -5px;\\r\\n border-width: 5px;\\r\\n border-style: solid;\\r\\n border-color: #fff transparent transparent transparent;\\r\\n}\\r\\n\\r\\n/* Show the tooltip text when you mouse over the tooltip container */\\r\\n.tooltip:hover .tooltiptext {\\r\\n visibility: visible;\\r\\n opacity: 1;\\r\\n}\\r\\n\\r\\n/* Tooltip used when displayed on the top left of the screen */\\r\\n.tooltip-left {\\r\\n position: relative;\\r\\n display: inline-block;\\r\\n cursor: default;\\r\\n}\\r\\n\\r\\n.tooltip-left .tooltiptext-left {\\r\\n visibility: hidden;\\r\\n width: 160px;\\r\\n overflow-x: hidden;\\r\\n overflow-y: hidden;\\r\\n /* background-color: #555; */\\r\\n background-color: #fff;\\r\\n box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); \\r\\n color: #000;\\r\\n text-align: center;\\r\\n border-radius: 4px;\\r\\n \\r\\n /* Position the tooltip text */\\r\\n padding: 5px 0;\\r\\n position: absolute;\\r\\n z-index: 1;\\r\\n /* bottom: 125%; */\\r\\n left: 50%;\\r\\n margin-left: -30px;\\r\\n}\\r\\n\\r\\n.tooltip-left .tooltiptext-left::after {\\r\\n content: \\\"\\\";\\r\\n position: absolute;\\r\\n top: 100%;\\r\\n left: 50%;\\r\\n margin-left: -5px;\\r\\n border-width: 5px;\\r\\n border-style: solid;\\r\\n border-color: #fff transparent transparent transparent;\\r\\n}\\r\\n\\r\\n.tooltip-left:hover .tooltiptext-left {\\r\\n visibility: visible;\\r\\n opacity: 1;\\r\\n}\"\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/reconciliation-reports/reconciliation-reports.component.css\n ** module id = 694\n ** module chunks = 0\n **/","module.exports = \"
\\r\\n {{ product?.source }} to {{ product?.target }}, Go Live: {{ product?.goLive }}\\r\\n
\\r\\n
\\r\\n
{{title}} ({{ reportsCount }})\\r\\n \\r\\n
\\r\\n
\\r\\n Company:\\r\\n \\r\\n\\r\\n Category:\\r\\n \\r\\n\\r\\n Zone:\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n
ReportCompanyTypeEpicor 9.05.702A Total{{product?.target}} TotalTotal Δ Epicor 9.05.702A Count{{product?.target}} CountCount Δ
\\r\\n
\\r\\n {{ isMatching(report).icon }}\\r\\n
\\r\\n {{ iconToolTip(isMatching(report).icon) }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{ report?.reportName }}\\r\\n
\\r\\n {{ report?.tooltipText }}\\r\\n
\\r\\n
\\r\\n
{{ report?.companyId }}{{ report?.category }}\\r\\n NA \\r\\n {{ report?.sourceSum?.toLocaleString() }} \\r\\n \\r\\n NA \\r\\n {{ report?.targetSum?.toLocaleString() }} \\r\\n \\r\\n NA \\r\\n {{ report?.sumDifference?.toLocaleString() }} \\r\\n \\r\\n NA \\r\\n {{ report?.sourceCount?.toLocaleString() }} \\r\\n \\r\\n NA \\r\\n {{ report?.targetCount?.toLocaleString() }} \\r\\n \\r\\n NA \\r\\n {{ report?.countDifference?.toLocaleString() }} \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
Epicor 9.05.702A Report Parameters
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{key}}\\r\\n \\r\\n {{getJsonFromString(report?.sourceReportParameters)[key]}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{product?.target}} Report Parameters
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{key}}\\r\\n \\r\\n {{getJsonFromString(report?.targetReportParameters)[key]}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{ isMatching(report).icon }}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Epicor 9.05.702A Source Key{{product?.target}} Target KeyKey ValueRow Differences
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{ key?.sourceKeyName }}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{ key?.targetKeyName }}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{ key?.keyValue }}
\\r\\n
\\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
FieldEpicor 9.05.702A Source{{product?.target}} Target
{{ temp?.sourceFieldName }}\\r\\n
\\r\\n {{ temp?.sourceValue?.toLocaleString() }}\\r\\n
\\r\\n
\\r\\n
\\r\\n {{ temp?.targetValue?.toLocaleString() }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Epicor 9.05.702A Source Key{{product?.target}} Target KeyKey ValueGroup Differences
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{ key?.sourceKeyName }}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{ key?.targetKeyName }}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{ key?.keyValue }}
\\r\\n
\\r\\n 0 \\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
FieldEpicor 9.05.702A Source{{product?.target}} Target
{{ temp?.sourceFieldName }}\\r\\n
\\r\\n {{ temp?.sourceValue?.toLocaleString() }}\\r\\n
\\r\\n
\\r\\n
\\r\\n {{ temp?.targetValue?.toLocaleString() }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/reconciliation-reports/reconciliation-reports.component.html\n ** module id = 695\n ** module chunks = 0\n **/","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ReconciliationReportsHeatmapBarService, Options, Zone } from './reconciliation-reports-heatmap-bar.service';\r\n\r\n@Component({\r\n selector: 'reconciliation-reports-heatmap-bar',\r\n template: require('./reconciliation-reports-heatmap-bar.component.html'),\r\n providers: [ReconciliationReportsHeatmapBarService]\r\n})\r\nexport class ReconciliationReportsHeatmapBarComponent implements OnInit {\r\n @Input() options: Options;\r\n zones:any[];\r\n \r\n constructor(private heatmapBarService: ReconciliationReportsHeatmapBarService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.createHeatmap();\r\n }\r\n\r\n createHeatmap() {\r\n let zones = this.options.zones;\r\n let totalCount = this.options.totalCount;\r\n \r\n this.zones = this.heatmapBarService.generateHeatmapZones(zones, totalCount);\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/reconciliation-reports/reconciliation-reports-heatmap-bar/reconciliation-reports-heatmap-bar.component.ts\n **/","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class ReconciliationReportsHeatmapBarService {\r\n\r\n /**\r\n * Generate heat map zones array\r\n * @param zones \r\n * @param totalCount \r\n */\r\n generateHeatmapZones(zones: any[], totalCount: number): HeatMapZone[] {\r\n let itemPercent: number = 1 / totalCount;\r\n\r\n return zones.map((zone:Zone) => {\r\n let flex: number = this.calculateFlex(zone.count, itemPercent);\r\n\r\n return {\r\n title: zone.title,\r\n count: zone.count,\r\n style: {\r\n flex: flex,\r\n backgroundColor: zone.backgroundColor,\r\n color: zone.color\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Calculate the flex value for a zone\r\n * @param count \r\n * @param percent \r\n */\r\n private calculateFlex(count: number, percent: number, fractionDigits: number = 1): number { \r\n return count * percent;\r\n //return parseFloat((count * percent).toFixed(fractionDigits)); \r\n }\r\n}\r\n\r\ninterface HeatMapZone {\r\n title: string;\r\n count: number;\r\n style:HeatMapZoneStyle;\r\n}\r\n\r\ninterface HeatMapZoneStyle {\r\n flex: number;\r\n backgroundColor: string;\r\n color: string;\r\n}\r\n\r\nexport interface Options {\r\n totalCount: number;\r\n zones: Zone[];\r\n}\r\n\r\nexport interface Zone {\r\n backgroundColor: string;\r\n count: number;\r\n title: string;\r\n color: string;\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/angular2-template-loader!./src/app/reconciliation-reports/reconciliation-reports-heatmap-bar/reconciliation-reports-heatmap-bar.service.ts\n **/","module.exports = \"
0\\\" style=\\\"display:flex; height: 20px\\\">\\r\\n
\\r\\n 0\\\" style=\\\"padding-left:6px\\\">{{ zone?.count }} {{ zone?.title }}\\r\\n
\\r\\n
\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/app/reconciliation-reports/reconciliation-reports-heatmap-bar/reconciliation-reports-heatmap-bar.component.html\n ** module id = 698\n ** module chunks = 0\n **/"],"sourceRoot":""}