{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./node_modules/moment/locale sync ^\\.\\/.*$","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.facade.ts","./src/app/app.module.ts","./src/app/auth/auth-manager.config.ts","./src/app/auth/auth.facade.ts","./src/app/auth/auth.module.ts","./src/app/auth/service/api-auth.service.ts","./src/app/auth/states/auth/auth.query.ts","./src/app/auth/states/auth/auth.store.ts","./src/app/auth/states/auth/index.ts","./src/app/core/app-state/app-state.query.ts","./src/app/core/app-state/app-state.service.ts","./src/app/core/app-state/app-state.store.ts","./src/app/core/app-state/index.ts","./src/app/core/base-ui-state/base-ui-query.ts","./src/app/core/base-ui-state/base-ui-service.ts","./src/app/core/base-ui-state/base-ui-state-interface.ts","./src/app/core/base-ui-state/base-ui-utils.ts","./src/app/core/classes/http-url-encoder.ts","./src/app/core/http-interceptor.service.ts","./src/app/core/init-app.ts","./src/app/core/route-events.service.ts","./src/app/features/agent/agent.facade.ts","./src/app/features/agent/agent.module.ts","./src/app/features/agent/api/agent.api.service.ts","./src/app/features/agent/containers/agent-delete-dialog/agent-delete-dialog.component.ts","./src/app/features/agent/containers/agent-delete-dialog/agent-delete-dialog.component.html","./src/app/features/agent/containers/agent-edit-page/agent-edit-page.component.ts","./src/app/features/agent/containers/agent-edit-page/agent-edit-page.component.html","./src/app/features/agent/containers/agent-mass-update/agent-mass-update.component.ts","./src/app/features/agent/containers/agent-mass-update/agent-mass-update.component.html","./src/app/features/agent/containers/agent-page/agent-page.component.ts","./src/app/features/agent/containers/agent-page/agent-page.component.html","./src/app/features/agent/state/agent-mass-update/agent-mass-update.query.ts","./src/app/features/agent/state/agent-mass-update/agent-mass-update.service.ts","./src/app/features/agent/state/agent-mass-update/agent-mass-update.store.ts","./src/app/features/agent/state/agent-mass-update/index.ts","./src/app/features/agent/state/agent-syncs/agent-syncs.query.ts","./src/app/features/agent/state/agent-syncs/agent-syncs.service.ts","./src/app/features/agent/state/agent-syncs/agent-syncs.store.ts","./src/app/features/agent/state/agent-syncs/index.ts","./src/app/features/agent/state/agent-ui/agent-ui.query.ts","./src/app/features/agent/state/agent-ui/agent-ui.service.ts","./src/app/features/agent/state/agent-ui/agent-ui.store.ts","./src/app/features/agent/state/agent-ui/index.ts","./src/app/features/agent/state/agent/agent.query.ts","./src/app/features/agent/state/agent/agent.service.ts","./src/app/features/agent/state/agent/agent.store.ts","./src/app/features/agent/state/agent/index.ts","./src/app/features/db-config/api/db-config.api.service.ts","./src/app/features/db-config/api/db-config.interface.ts","./src/app/features/db-config/containers/db-config-page/db-config-page.component.ts","./src/app/features/db-config/containers/db-config-page/db-config-page.component.html","./src/app/features/db-config/containers/db-connection-check-dialog/db-connection-check-dialog.component.ts","./src/app/features/db-config/containers/db-connection-check-dialog/db-connection-check-dialog.component.html","./src/app/features/db-config/containers/db-upgrade/db-upgrade.component.ts","./src/app/features/db-config/containers/db-upgrade/db-upgrade.component.html","./src/app/features/db-config/db-config.facade.ts","./src/app/features/db-config/db-config.module.ts","./src/app/features/db-config/service/db-form.service.ts","./src/app/features/db-config/state/db-config/db-config.query.ts","./src/app/features/db-config/state/db-config/db-config.service.ts","./src/app/features/db-config/state/db-config/db-config.store.ts","./src/app/features/db-config/state/db-config/index.ts","./src/app/features/domain/api/domain.api.service.ts","./src/app/features/domain/api/models/connectivity-status.enum.ts","./src/app/features/domain/containers/add-edit-domain-page/add-edit-domain-page.component.ts","./src/app/features/domain/containers/add-edit-domain-page/add-edit-domain-page.component.html","./src/app/features/domain/containers/domain-connectivity-dialog/domain-connectivity-dialog.component.ts","./src/app/features/domain/containers/domain-connectivity-dialog/domain-connectivity-dialog.component.html","./src/app/features/domain/containers/domain-delete-dialog/domain-delete-dialog.component.ts","./src/app/features/domain/containers/domain-delete-dialog/domain-delete-dialog.component.html","./src/app/features/domain/containers/domain-page/domain-page.component.ts","./src/app/features/domain/containers/domain-page/domain-page.component.html","./src/app/features/domain/domain.facade.ts","./src/app/features/domain/domain.module.ts","./src/app/features/domain/state/domain-ui/domain-ui.query.ts","./src/app/features/domain/state/domain-ui/domain-ui.service.ts","./src/app/features/domain/state/domain-ui/domain-ui.store.ts","./src/app/features/domain/state/domain-ui/index.ts","./src/app/features/domain/state/domain.query.ts","./src/app/features/domain/state/domain.service.ts","./src/app/features/domain/state/domain.store.ts","./src/app/features/domain/state/index.ts","./src/app/features/entity/api/api-entity.service.ts","./src/app/features/entity/containers/entity-page/entity-page.component.ts","./src/app/features/entity/containers/entity-page/entity-page.component.html","./src/app/features/entity/entity.facade.ts","./src/app/features/entity/entity.module.ts","./src/app/features/entity/state/entity-ui/entity-ui.query.ts","./src/app/features/entity/state/entity-ui/entity-ui.service.ts","./src/app/features/entity/state/entity-ui/entity-ui.store.ts","./src/app/features/entity/state/entity-ui/index.ts","./src/app/features/entity/state/entity/entity-component.query.ts","./src/app/features/entity/state/entity/entity-component.service.ts","./src/app/features/entity/state/entity/entity-component.store.ts","./src/app/features/entity/state/entity/index.ts","./src/app/features/relations/api/relations.api.service.ts","./src/app/features/relations/containers/relations-page/relations-page.component.ts","./src/app/features/relations/containers/relations-page/relations-page.component.html","./src/app/features/relations/relations.facade.ts","./src/app/features/relations/relations.module.ts","./src/app/features/relations/state/relations-ui/index.ts","./src/app/features/relations/state/relations-ui/relations-ui.query.ts","./src/app/features/relations/state/relations-ui/relations-ui.service.ts","./src/app/features/relations/state/relations-ui/relations-ui.store.ts","./src/app/features/relations/state/relations/index.ts","./src/app/features/relations/state/relations/relations.query.ts","./src/app/features/relations/state/relations/relations.service.ts","./src/app/features/relations/state/relations/relations.store.ts","./src/app/features/service-config/api/service-config.api.service.ts","./src/app/features/service-config/api/service-config.model.ts","./src/app/features/service-config/components/approval-request/approval-request.component.ts","./src/app/features/service-config/components/approval-request/approval-request.component.html","./src/app/features/service-config/containers/adavanced-tab/advanced-tab.component.ts","./src/app/features/service-config/containers/adavanced-tab/advanced-tab.component.html","./src/app/features/service-config/containers/notification-tab/notification-tab.component.ts","./src/app/features/service-config/containers/notification-tab/notification-tab.component.html","./src/app/features/service-config/containers/service-config-page/service-config-page.component.ts","./src/app/features/service-config/containers/service-config-page/service-config-page.component.html","./src/app/features/service-config/containers/time-settings-tab/time-settings-tab.component.ts","./src/app/features/service-config/containers/time-settings-tab/time-settings-tab.component.html","./src/app/features/service-config/containers/time-settings-tab/timezones.ts","./src/app/features/service-config/containers/users-groups-delete-dialog/users-groups-delete-dialog.component.ts","./src/app/features/service-config/containers/users-groups-delete-dialog/users-groups-delete-dialog.component.html","./src/app/features/service-config/service-config.facade.ts","./src/app/features/service-config/service-config.module.ts","./src/app/features/service-config/state/service-config/index.ts","./src/app/features/service-config/state/service-config/service-config.query.ts","./src/app/features/service-config/state/service-config/service-config.service.ts","./src/app/features/service-config/state/service-config/service-config.store.ts","./src/app/features/sync-history/containers/sync-history-page/sync-history-detail/sync-history-detail.component.ts","./src/app/features/sync-history/containers/sync-history-page/sync-history-detail/sync-history-detail.component.html","./src/app/features/sync-history/containers/sync-history-page/sync-history-page.component.ts","./src/app/features/sync-history/containers/sync-history-page/sync-history-page.component.html","./src/app/features/sync-history/models/sync-history-detail.interface.ts","./src/app/features/sync-history/models/sync-history.interface.ts","./src/app/features/sync-history/services/sync-history.api.service.ts","./src/app/features/sync-history/state/sync-history-detail-ui/index.ts","./src/app/features/sync-history/state/sync-history-detail-ui/sync-history-detail-ui.query.ts","./src/app/features/sync-history/state/sync-history-detail-ui/sync-history-detail-ui.service.ts","./src/app/features/sync-history/state/sync-history-detail-ui/sync-history-detail-ui.store.ts","./src/app/features/sync-history/state/sync-history-detail/index.ts","./src/app/features/sync-history/state/sync-history-detail/sync-history-detail.query.ts","./src/app/features/sync-history/state/sync-history-detail/sync-history-detail.service.ts","./src/app/features/sync-history/state/sync-history-detail/sync-history-detail.store.ts","./src/app/features/sync-history/state/sync-history-ui/index.ts","./src/app/features/sync-history/state/sync-history-ui/sync-history-ui.query.ts","./src/app/features/sync-history/state/sync-history-ui/sync-history-ui.service.ts","./src/app/features/sync-history/state/sync-history-ui/sync-history-ui.store.ts","./src/app/features/sync-history/state/sync-history/index.ts","./src/app/features/sync-history/state/sync-history/sync-history.query.ts","./src/app/features/sync-history/state/sync-history/sync-history.service.ts","./src/app/features/sync-history/state/sync-history/sync-history.store.ts","./src/app/features/sync-history/sync-history.facade.ts","./src/app/features/sync-history/sync-history.module.ts","./src/app/features/sync/containers/add-sync-page/add-sync-page.component.ts","./src/app/features/sync/containers/add-sync-page/add-sync-page.component.html","./src/app/features/sync/containers/add-sync-page/destination-time-tab/destination-time-tab.component.ts","./src/app/features/sync/containers/add-sync-page/destination-time-tab/destination-time-tab.component.html","./src/app/features/sync/containers/add-sync-page/group-rules-tab/group-rules-tab.component.ts","./src/app/features/sync/containers/add-sync-page/group-rules-tab/group-rules-tab.component.html","./src/app/features/sync/containers/add-sync-page/object-tab/object-tab.component.ts","./src/app/features/sync/containers/add-sync-page/object-tab/object-tab.component.html","./src/app/features/sync/containers/add-sync-page/project-rules-tab/project-rules-tab.component.ts","./src/app/features/sync/containers/add-sync-page/project-rules-tab/project-rules-tab.component.html","./src/app/features/sync/containers/sync-delete-dialog/sync-delete-dialog.component.ts","./src/app/features/sync/containers/sync-delete-dialog/sync-delete-dialog.component.html","./src/app/features/sync/containers/sync-mass-update/sync-mass-update.component.ts","./src/app/features/sync/containers/sync-mass-update/sync-mass-update.component.html","./src/app/features/sync/containers/sync-page/reset-sync-confirmation-dialog/reset-sync-confirmation-dialog.component.ts","./src/app/features/sync/containers/sync-page/reset-sync-confirmation-dialog/reset-sync-confirmation-dialog.component.html","./src/app/features/sync/containers/sync-page/sync-page.component.ts","./src/app/features/sync/containers/sync-page/sync-page.component.html","./src/app/features/sync/containers/sync-test-dialog/sync-test-dialog.component.ts","./src/app/features/sync/containers/sync-test-dialog/sync-test-dialog.component.html","./src/app/features/sync/models/sync.interface.ts","./src/app/features/sync/service/sync-form.service.ts","./src/app/features/sync/service/sync.api.service.ts","./src/app/features/sync/state/sync-form/index.ts","./src/app/features/sync/state/sync-form/sync-form.query.ts","./src/app/features/sync/state/sync-form/sync-form.service.ts","./src/app/features/sync/state/sync-form/sync-form.store.ts","./src/app/features/sync/state/sync-mass-update/index.ts","./src/app/features/sync/state/sync-mass-update/sync-mass-update.query.ts","./src/app/features/sync/state/sync-mass-update/sync-mass-update.service.ts","./src/app/features/sync/state/sync-mass-update/sync-mass-update.store.ts","./src/app/features/sync/state/sync-ui/sync-ui.query.ts","./src/app/features/sync/state/sync-ui/sync-ui.service.ts","./src/app/features/sync/state/sync-ui/sync-ui.store.ts","./src/app/features/sync/state/sync/index.ts","./src/app/features/sync/state/sync/sync.query.ts","./src/app/features/sync/state/sync/sync.service.ts","./src/app/features/sync/state/sync/sync.store.ts","./src/app/features/sync/sync.facade.ts","./src/app/features/sync/sync.module.ts","./src/app/layout/layout-facade.service.ts","./src/app/layout/state/layout/index.ts","./src/app/layout/state/layout/layout.query.ts","./src/app/layout/state/layout/layout.service.ts","./src/app/layout/state/layout/layout.store.ts","./src/app/shared/components/no-permission/no-permission.component.ts","./src/app/shared/components/no-permission/no-permission.component.html","./src/app/shared/components/olm-textarea/olm-textarea.component.ts","./src/app/shared/components/olm-textarea/olm-textarea.component.html","./src/app/shared/confirm-dialog/confirm-dialog.component.ts","./src/app/shared/confirm-dialog/confirm-dialog.component.html","./src/app/shared/const.ts","./src/app/shared/data-structures-select.ts","./src/app/shared/date/date-utils.ts","./src/app/shared/date/time-convert.pipe.ts","./src/app/shared/directives/delayed-hover.directive.ts","./src/app/shared/directives/time-mask.directive.ts","./src/app/shared/ejs-imports.ts","./src/app/shared/guards/routes.service.ts","./src/app/shared/icons-init/icons-init.enums.ts","./src/app/shared/icons-init/icons-init.service.ts","./src/app/shared/loader/loader.component.ts","./src/app/shared/loader/loader.component.html","./src/app/shared/loader/loader.service.ts","./src/app/shared/material.imports.ts","./src/app/shared/pipes/booleanToString.pipe.ts","./src/app/shared/pipes/directory.pipe.ts","./src/app/shared/pipes/highlight-search.pipe.ts","./src/app/shared/pipes/int-to-status.pipe.ts","./src/app/shared/pipes/object-types-entity.pipe.ts","./src/app/shared/pipes/text-swap.pipe.ts","./src/app/shared/pipes/user-date.pipe.ts","./src/app/shared/search-input/search-input.component.ts","./src/app/shared/search-input/search-input.component.html","./src/app/shared/shared.module.ts","./src/app/shared/show-filter-button/show-filter-button.component.ts","./src/app/shared/show-filter-button/show-filter-button.component.html","./src/app/shared/side-dialog/side-dialog.module.ts","./src/app/shared/side-dialog/side-dialog.service.ts","./src/app/shared/side-dialog/side-dialog/side-dialog-container.component.ts","./src/app/shared/side-dialog/side-dialog/side-dialog-container.component.html","./src/app/shared/snackbar/snackbar-dialog/message.injection-token.ts","./src/app/shared/snackbar/snackbar-dialog/snackbar-dialog.component.ts","./src/app/shared/snackbar/snackbar-dialog/snackbar-dialog.component.html","./src/app/shared/snackbar/snackbar-service/snackbar.service.ts","./src/app/shared/snackbar/snackbar.component.ts","./src/app/shared/translations/index.ts","./src/app/shared/unsaved-changes-dialog/unsaved-changes-dialog.component.ts","./src/app/shared/unsaved-changes-dialog/unsaved-changes-dialog.component.html","./src/app/shared/utils.ts","./src/environments/environment.ts","./src/environments/version.ts","./src/main.ts"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,wE;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6E;;;;;;;;;;;;ACvSA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyC;AACc;AACwD;AACd;AACI;AACR;AACQ;AACc;AACX;AAC4B;AACpB;AACc;AACb;AACd;AACuB;;;AAG1H,MAAM,MAAM,GAAW;IACrB;QACE,IAAI,EAAE,EAAE;QACR,UAAU,EAAE,QAAQ;QACpB,SAAS,EAAE,MAAM;KAClB;IACD;QACE,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,6GAAkB;QAC7B,WAAW,EAAE,CAAC,iFAAmB,CAAC;KACnC;IACD;QACE,IAAI,EAAE,YAAY;QAClB,SAAS,EAAE,2HAAsB;QACjC,aAAa,EAAE,CAAC,gFAAkB,CAAC;QACnC,WAAW,EAAE,CAAC,iFAAmB,CAAC;KAEnC;IACD;QACE,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,iHAAmB;QAC9B,WAAW,EAAE,CAAC,iFAAmB,CAAC;KAEnC;IACD;QACE,IAAI,EAAE,aAAa;QACnB,SAAS,EAAE,2IAA0B;QACrC,aAAa,EAAE,CAAC,gFAAkB,CAAC;QACnC,WAAW,EAAE,CAAC,iFAAmB,EAAE,sFAAwB,CAAC;KAE7D;IACD;QACE,IAAI,EAAE,aAAa;QACnB,SAAS,EAAE,2IAA0B;QACrC,aAAa,EAAE,CAAC,gFAAkB,CAAC;QACnC,WAAW,EAAE,CAAC,iFAAmB,EAAE,sFAAwB,CA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","file":"main-es2015.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ps\": \"./node_modules/moment/locale/ar-ps.js\",\n\t\"./ar-ps.js\": \"./node_modules/moment/locale/ar-ps.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn-bd\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn-bd.js\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-in\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-in.js\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-sg\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./en-sg.js\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-mx\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-mx.js\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fil\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fil.js\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-deva\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-deva.js\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ku-kmr\": \"./node_modules/moment/locale/ku-kmr.js\",\n\t\"./ku-kmr.js\": \"./node_modules/moment/locale/ku-kmr.js\",\n\t\"./ku.js\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./oc-lnc\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./oc-lnc.js\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tk\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tk.js\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-mo\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-mo.js\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { AgentEditPageComponent } from './features/agent/containers/agent-edit-page/agent-edit-page.component';\nimport { AgentPageComponent } from './features/agent/containers/agent-page/agent-page.component';\nimport { DomainPageComponent } from './features/domain/containers/domain-page/domain-page.component';\nimport { SyncPageComponent } from './features/sync/containers/sync-page/sync-page.component';\nimport { EntityPageComponent } from './features/entity/containers/entity-page/entity-page.component';\nimport { AuthActivationGuard, DssConfigActivationGuard, CanDeactivateGuard } from './shared/guards/routes.service';\nimport { AddSyncPageComponent } from './features/sync/containers/add-sync-page/add-sync-page.component';\nimport { ServiceConfigPageComponent } from './features/service-config/containers/service-config-page/service-config-page.component';\nimport { DbConfigPageComponent } from './features/db-config/containers/db-config-page/db-config-page.component';\nimport { AddEditDomainPageComponent } from './features/domain/containers/add-edit-domain-page/add-edit-domain-page.component';\nimport { RelationsPageComponent } from './features/relations/containers/relations-page/relations-page.component';\nimport {DbUpgradeComponent} from './features/db-config/containers/db-upgrade/db-upgrade.component';\nimport {SyncHistoryPageComponent} from './features/sync-history/containers/sync-history-page/sync-history-page.component';\n\n\nconst routes: Routes = [\n {\n path: '',\n redirectTo: 'agents',\n pathMatch: 'full'\n },\n {\n path: 'agents',\n component: AgentPageComponent,\n canActivate: [AuthActivationGuard]\n },\n {\n path: 'agents/:id',\n component: AgentEditPageComponent,\n canDeactivate: [CanDeactivateGuard],\n canActivate: [AuthActivationGuard]\n\n },\n {\n path: 'domains',\n component: DomainPageComponent,\n canActivate: [AuthActivationGuard]\n\n },\n {\n path: 'domains/add',\n component: AddEditDomainPageComponent,\n canDeactivate: [CanDeactivateGuard],\n canActivate: [AuthActivationGuard, DssConfigActivationGuard]\n\n },\n {\n path: 'domains/:id',\n component: AddEditDomainPageComponent,\n canDeactivate: [CanDeactivateGuard],\n canActivate: [AuthActivationGuard, DssConfigActivationGuard]\n\n },\n {\n path: 'entities',\n component: EntityPageComponent,\n canDeactivate: [CanDeactivateGuard],\n canActivate: [AuthActivationGuard]\n\n },\n {\n path: 'relations',\n component: RelationsPageComponent,\n canDeactivate: [CanDeactivateGuard],\n canActivate: [AuthActivationGuard]\n\n },\n {\n path: 'sync-history',\n component: SyncHistoryPageComponent,\n canDeactivate: [CanDeactivateGuard],\n canActivate: [AuthActivationGuard]\n },\n {\n path: 'syncs',\n component: SyncPageComponent,\n canActivate: [AuthActivationGuard]\n\n },\n {\n path: 'syncs/add',\n component: AddSyncPageComponent,\n canDeactivate: [CanDeactivateGuard],\n canActivate: [AuthActivationGuard, DssConfigActivationGuard]\n\n },\n {\n path: 'syncs/:id',\n component: AddSyncPageComponent,\n canDeactivate: [CanDeactivateGuard],\n canActivate: [AuthActivationGuard, DssConfigActivationGuard]\n\n },\n {\n path: 'service-config',\n component: ServiceConfigPageComponent,\n canDeactivate: [CanDeactivateGuard],\n canActivate: [AuthActivationGuard]\n },\n {\n path: 'db-config',\n component: DbConfigPageComponent,\n canDeactivate: [CanDeactivateGuard],\n canActivate: [AuthActivationGuard]\n },\n {\n path: 'db-upgrade',\n component: DbUpgradeComponent,\n canDeactivate: [CanDeactivateGuard],\n canActivate: [AuthActivationGuard]\n },\n {\n path: '**',\n redirectTo: ''\n }\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes, {\n useHash: true\n })],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import {Component, HostListener, OnInit} from '@angular/core';\nimport {AuthFacade} from './auth/auth.facade';\nimport {LayoutFacadeService} from './layout/layout-facade.service';\nimport {IconsInitService} from './shared/icons-init/icons-init.service';\nimport {Router} from '@angular/router';\nimport {RouteEventsService} from './core/route-events.service';\nimport {AgentUiService} from './features/agent/state/agent-ui';\nimport {version} from '../environments/version';\nimport {MatDialog} from '@angular/material/dialog';\nimport {AppFacade} from './app.facade';\nimport {DomainUiService} from './features/domain/state/domain-ui';\nimport {SyncUiService} from './features/sync/state/sync-ui/sync-ui.service';\nimport {RelationsUiService} from './features/relations/state/relations-ui';\nimport {EntityUiService} from './features/entity/state/entity-ui';\nimport {filter} from 'rxjs/operators';\n\ninterface PanelsContent {\n categoryTitle: string;\n categoryIcon: string;\n routerLink?: string;\n categoryItems?: {\n categoryTitle: string;\n categoryIcon?: string;\n routerLink: string;\n }[];\n cssClass?: string;\n onlyInAdminMode?: boolean;\n}\n\ndeclare let isCloud: boolean;\ndeclare let useSecurity: boolean;\ndeclare let useSpecialActivation: boolean;\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponent implements OnInit {\n\n constructor(\n public authFacade: AuthFacade,\n public layoutFacade: LayoutFacadeService,\n private iconsService: IconsInitService,\n private router: Router,\n private routeEventsService: RouteEventsService,\n private agentsUiService: AgentUiService,\n private matDialog: MatDialog,\n private appFacade: AppFacade,\n private domainUiService: DomainUiService,\n private syncUiService: SyncUiService,\n private relationsUiService: RelationsUiService,\n private entityUiService: EntityUiService\n ) {\n }\n\n public version = version;\n\n public sidenavOpenedStatus = this.layoutFacade.getSidenavOpenedStatus() || false;\n\n public isCloud: boolean = isCloud;\n public useSecurity: boolean = useSecurity;\n public searchTerm: string;\n public readonly sidenavContent: PanelsContent[] = [\n {categoryTitle: 'Agent Manager', categoryIcon: 'agent-manager', routerLink: '/agents', cssClass: 'when-not-loggin'},\n {categoryTitle: 'Domain Manager', categoryIcon: 'domains-manager', routerLink: '/domains', cssClass: 'when-not-loggin'},\n {categoryTitle: 'Sync Manager', categoryIcon: 'sync-manager', routerLink: '/syncs', cssClass: 'when-not-loggin'},\n {categoryTitle: 'Entities', categoryIcon: 'entities', routerLink: '/entities', cssClass: 'when-not-loggin'},\n {categoryTitle: 'Relations', categoryIcon: 'relations', routerLink: '/relations', cssClass: 'when-not-loggin'},\n {categoryTitle: 'Sync history', categoryIcon: 'sync-history', routerLink: '/sync-history', cssClass: 'when-not-loggin'},\n {\n categoryTitle: 'Service Configuration',\n categoryIcon: 'service-configuration',\n routerLink: '/service-config',\n },\n {\n categoryTitle: 'Tools',\n categoryIcon: 'tools',\n onlyInAdminMode: isCloud,\n categoryItems: [\n {categoryTitle: 'DB Configuration', routerLink: '/db-config'},\n {categoryTitle: 'DB Upgrade', routerLink: 'db-upgrade'},\n ]\n }\n ];\n\n public useSpecialActivation: boolean = useSpecialActivation;\n public permissionState: 'PENDING' | 'FETCHED' = 'PENDING';\n public hasPermission: boolean = false;\n\n\n @HostListener('document:visibilitychange', [])\n visibilityChange(): void {\n this.authFacade.toggleTokenSilentRefreshForImpersonatedToken();\n }\n\n ngOnInit(): void {\n this.iconsService.registerIcons();\n this.routeEventsService.initUrlHistoryHandling();\n this.appFacade.loadGlobalDssConfiguration();\n this.authFacade.startSilentRefreshForImpersonatedToken();\n\n this.authFacade.isLoggedIn$\n .pipe(\n filter(isAuthenticated => isAuthenticated)\n )\n .subscribe(() => {\n if (useSpecialActivation) {\n this.permissionState = 'FETCHED';\n this.hasPermission = this.authFacade.hasDSSAccessRoles();\n }\n });\n }\n\n public toggleSideNav(): void {\n this.sidenavOpenedStatus = !this.sidenavOpenedStatus;\n this.layoutFacade.updateSidenavOpenedStatus(this.sidenavOpenedStatus);\n }\n\n public isChildItemActive(items): boolean {\n if (items) {\n for (const item of items) {\n if (item.routerLink && this.router.isActive(item.routerLink, false)) {\n return true;\n }\n }\n }\n return false;\n }\n\n public resetUiState(link): void {\n switch (link) {\n case '/agents':\n this.agentsUiService.reset();\n break;\n case '/domains':\n this.domainUiService.reset();\n break;\n case '/syncs':\n this.syncUiService.reset();\n break;\n case '/entites':\n this.entityUiService.reset();\n break;\n case '/relations':\n this.relationsUiService.reset();\n break;\n }\n }\n\n public onLogoutClick() {\n this.authFacade.logout();\n }\n}\n","\n\n\n\n
\n \n \n \n \n \n \n \n \n \n \n
\n\n\n
\n \n DSS \n \n \n {{ (authFacade.currentlyLoggedInUser$ | async).name }}\n \n \n \n \n \n \n \n
\n\n\n\n \n \n \n \n\n","import { Injectable } from '@angular/core';\nimport { AppStateQuery, AppStateService } from './core/app-state';\nimport { ServiceConfigApiService } from './features/service-config/api/service-config.api.service';\nimport { SnackbarService } from './shared/snackbar/snackbar-service/snackbar.service';\nimport { ConfirmDialogComponent, DialogData } from './shared/confirm-dialog/confirm-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppFacade {\n\n constructor(\n private appStateService: AppStateService,\n private appStateQuery: AppStateQuery,\n private serviceConfigApiService: ServiceConfigApiService,\n private snackbarService: SnackbarService,\n private matDialog: MatDialog\n ) {\n }\n\n public async loadGlobalDssConfiguration() {\n try {\n const configuration = await this.serviceConfigApiService.getConfig().toPromise();\n this.appStateService.update({\n isDssApproved: configuration.ldapServiceApproved,\n isMigrationRequired: configuration.requiredOlmMigration\n })\n } catch (e) {\n console.log(e);\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: 'Failed to load dss configuration'\n })\n }\n }\n\n public get globalDssConfiguration() {\n return this.appStateQuery.getValue();\n }\n\n public async checkForDssConfig(showDialog = true): Promise {\n let isNotConfigured = !this.globalDssConfiguration.isDssApproved || this.globalDssConfiguration.isMigrationRequired\n if (isNotConfigured) {\n await this.loadGlobalDssConfiguration()\n isNotConfigured = !this.globalDssConfiguration.isDssApproved || this.globalDssConfiguration.isMigrationRequired\n }\n if (isNotConfigured && showDialog) {\n this.showMissingConfigDialog();\n }\n return !isNotConfigured;\n }\n\n public showMissingConfigDialog() {\n this.matDialog.open(ConfirmDialogComponent, {\n width: '600px',\n data: {\n header: `Action unavailable`,\n // tslint:disable\n body: !this.globalDssConfiguration.isDssApproved\n ? `You must first finish configuring the DSS connection to OpenLM Server.
To do so, click the Service Configuration tab on the left menu.`\n : `You must first finish the synchronization migration process.
To do so, go to OpenLM EasyAdmin → Administration → External Platforms → Directory Synchronization Service and follow the instructions.`,\n // tslint:enable\n confirmButton: true,\n confirmButtonName: 'ok',\n confirmButtonType: 'primary'\n } as DialogData\n })\n }\n\n}\n","import { BrowserModule } from '@angular/platform-browser';\nimport {APP_INITIALIZER, NgModule} from '@angular/core';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport {HTTP_INTERCEPTORS, HttpClient, HttpClientModule} from '@angular/common/http';\nimport { CommonModule } from '@angular/common';\nimport { AkitaNgDevtools } from '@datorama/akita-ngdevtools';\n\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { HttpInterceptorService } from './core/http-interceptor.service';\nimport { OpenlmModule } from 'openlm';\nimport { environment } from '../environments/environment';\nimport { SharedModule } from './shared/shared.module';\nimport { AgentModule } from './features/agent/agent.module';\nimport { DomainModule } from './features/domain/domain.module';\nimport { SyncModule } from './features/sync/sync.module';\nimport { EntityModule } from './features/entity/entity.module';\nimport { ServiceConfigModule } from './features/service-config/service-config.module';\nimport { DbConfigModule } from './features/db-config/db-config.module';\nimport {SnackbarDialogComponent} from './shared/snackbar/snackbar-dialog/snackbar-dialog.component';\nimport { RelationsModule } from './features/relations/relations.module';\nimport { AuthModule } from './auth/auth.module';\nimport {initApp} from './core/init-app';\nimport {OAuthService} from 'angular-oauth2-oidc';\nimport {AuthFacade} from './auth/auth.facade';\nimport {SyncHistoryModule} from './features/sync-history/sync-history.module';\n\n\n@NgModule({\n declarations: [\n AppComponent,\n ],\n imports: [\n environment.production ? [] : AkitaNgDevtools,\n BrowserModule,\n BrowserAnimationsModule,\n AppRoutingModule,\n CommonModule,\n SharedModule,\n OpenlmModule,\n HttpClientModule,\n AgentModule,\n DomainModule,\n EntityModule,\n SyncModule,\n SyncHistoryModule,\n ServiceConfigModule,\n DbConfigModule,\n RelationsModule,\n AuthModule.forRoot()\n ],\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: HttpInterceptorService,\n multi: true\n },\n {\n provide: APP_INITIALIZER,\n useFactory: initApp,\n deps: [OAuthService, HttpClient, AuthFacade],\n multi: true,\n }\n ],\n bootstrap: [\n AppComponent\n ],\n entryComponents: [\n SnackbarDialogComponent\n ]\n})\nexport class AppModule { }\n","import {AuthConfig, OAuthModuleConfig, OAuthService, OAuthSuccessEvent} from 'angular-oauth2-oidc';\nimport {ITokenResponse} from './service/security.interface';\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport {AuthFacade} from './auth.facade';\n\ndeclare let securityUrl: string;\n\nexport const AUTH_MODULE_CONFIG: OAuthModuleConfig = {\n resourceServer: {\n sendAccessToken: true,\n }\n};\n\nexport function authConfigFactory(): AuthConfig {\n return {\n redirectUri: `${window.location.origin}`,\n clientId: 'openlm.dss.ui',\n responseType: 'code',\n issuer: securityUrl,\n loginUrl: `${securityUrl}/connect/authorize`,\n tokenEndpoint: 'connect/token',\n logoutUrl: `${securityUrl}/connect/endsession`,\n postLogoutRedirectUri: `${window.location.origin}`,\n scope: 'openlm.dss.scope openid offline_access roles',\n requireHttps: false,\n showDebugInformation: false,\n clearHashAfterLogin: false\n };\n}\n\nexport function setupSecurityFlow(oauthService: OAuthService, httpClient: HttpClient, authFacade: AuthFacade): () => Promise {\n const adminToken = localStorage.getItem('adminAccessToken');\n const accountId = localStorage.getItem('accountId');\n const isImpersonationRequest = !!adminToken && !!accountId;\n authFacade.blockLogoutRequest = isImpersonationRequest;\n\n return () => ((!isImpersonationRequest\n ? oauthService.loadDiscoveryDocumentAndLogin()\n : oauthService.loadDiscoveryDocument()\n ) as Promise)\n .then(() => {\n\n if (!!adminToken && !!accountId) {\n return impersonateCustomer(adminToken, accountId, httpClient);\n }\n\n return Promise.resolve();\n })\n .then(() => {\n if (!localStorage.getItem('impersonated_access_token') && !oauthService.hasValidAccessToken() && !!oauthService.getRefreshToken()) {\n return oauthService.refreshToken()\n .then(() => Promise.resolve())\n .catch(() => console.warn('Unable to refresh the token.'));\n }\n\n return Promise.resolve();\n })\n .then(() => {\n if (!localStorage.getItem('impersonated_access_token')) {\n oauthService.setupAutomaticSilentRefresh();\n }\n\n return Promise.resolve();\n });\n}\n\n\nasync function impersonateCustomer(accessToken: string, accountId: string, httpClient: HttpClient): Promise {\n try {\n const payload = new URLSearchParams({\n grant_type: 'impersonate',\n scope: 'openlm.dss.scope openid offline_access roles',\n token: accessToken,\n client_id: 'openlm.dss.ui',\n account_id: accountId\n });\n\n const impersonatedToken = await httpClient\n .post(`${authConfigFactory().issuer}/connect/token`, payload.toString(), {\n headers: new HttpHeaders({\n 'Content-Type': 'application/x-www-form-urlencoded'\n })\n })\n .toPromise();\n\n localStorage.setItem('impersonated_access_token', impersonatedToken.access_token);\n localStorage.setItem('impersonated_refresh_token', impersonatedToken.refresh_token);\n localStorage.removeItem('adminAccessToken');\n localStorage.removeItem('accountId');\n } catch (err) {\n console.error(err);\n }\n}\n","import {Injectable} from '@angular/core';\nimport {ApiAuthService} from './service/api-auth.service';\nimport {AuthQuery, AuthStore} from './states/auth';\nimport {OAuthService} from 'angular-oauth2-oidc';\nimport {Observable} from 'rxjs';\nimport {filter, map} from 'rxjs/operators';\nimport {parseJwt} from '../shared/utils';\nimport {ISession} from './service/security.interface';\n\ndeclare let useSecurity: boolean;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthFacade {\n constructor(\n private apiAuthService: ApiAuthService,\n private authQuery: AuthQuery,\n private authStore: AuthStore,\n private oauthService: OAuthService\n ) {\n\n if (useSecurity) {\n this.oauthService.events\n .subscribe(() => {\n const impersonatedAccessToken = localStorage.getItem('impersonated_access_token');\n\n this.authStore.update({\n hasValidOauth2Token: !!impersonatedAccessToken || this.oauthService.hasValidAccessToken(),\n userState: parseJwt(impersonatedAccessToken || localStorage.getItem('access_token'))\n })\n });\n }\n }\n\n public showCloudPreLoginOverlay$: Observable = this.authQuery.select()\n .pipe(\n filter(() => useSecurity),\n map(s => !s.hasValidOauth2Token)\n );\n public currentlyLoggedInUser$: Observable = this.authQuery.select(({userState}) => userState)\n private silentRefreshIntervalId: number;\n\n public get isLoggedIn() {\n return this.authQuery.getValue().hasValidOauth2Token;\n }\n\n public isLoggedIn$ = this.authQuery.select()\n .pipe(\n map(s => useSecurity ? s.hasValidOauth2Token : false)\n );\n public blockLogoutRequest: boolean;\n\n public logout() {\n if (useSecurity) {\n this.oauthService.logOut();\n }\n }\n\n public toggleTokenSilentRefreshForImpersonatedToken(): void {\n if (document.visibilityState === 'visible' && !this.silentRefreshIntervalId) {\n this.startSilentRefreshForImpersonatedToken();\n }\n\n if (document.visibilityState === 'hidden' && !!this.silentRefreshIntervalId) {\n this.stopSilentRefreshForImpersonatedToken();\n }\n }\n\n public startSilentRefreshForImpersonatedToken(intervalInMs?: number): void {\n const impersonatedRefreshToken = localStorage.getItem('impersonated_refresh_token');\n\n if (!!impersonatedRefreshToken && !this.silentRefreshIntervalId) {\n this.refreshToken();\n this.silentRefreshIntervalId = setInterval(() => this.refreshToken(), intervalInMs ?? 120000);\n }\n }\n\n public stopSilentRefreshForImpersonatedToken(): void {\n const impersonatedRefreshToken = localStorage.getItem('impersonated_refresh_token');\n\n if (!!impersonatedRefreshToken && !!this.silentRefreshIntervalId) {\n clearInterval(this.silentRefreshIntervalId);\n this.silentRefreshIntervalId = null;\n }\n }\n\n private async refreshToken(): Promise {\n try {\n const tokenResponse = await this.apiAuthService.refreshImpersonatedToken().toPromise();\n\n localStorage.setItem('impersonated_access_token', tokenResponse.access_token);\n localStorage.setItem('impersonated_refresh_token', tokenResponse.refresh_token);\n\n this.authStore.update({\n hasValidOauth2Token: true,\n userState: parseJwt(tokenResponse.access_token)\n });\n } catch (err) {\n console.error(`Unable to refresh the token: ${err}`);\n this.logout();\n }\n }\n\n public hasDSSAccessRoles(): boolean {\n const requiredRoles = ['onedir_admin_role', 'onedir_viewer_role', 'dss_admin_role', 'dss_viewer_role', 'LdapConnector_admin_role', 'LdapConnector_viewer_role'];\n if (!(this.authStore.getValue().userState && this.authStore.getValue().userState.role)) {\n return false;\n }\n\n if (Array.isArray(this.authStore.getValue().userState.role)) {\n const filteredArray = (this.authStore.getValue().userState.role as string[]).filter(value => requiredRoles.includes(value));\n\n return filteredArray.length > 0;\n }\n\n return requiredRoles.includes(this.authStore.getValue().userState.role);\n }\n}\n","import {ModuleWithProviders, NgModule, Optional, SkipSelf} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OpenlmModule } from 'openlm';\nimport { SharedModule } from '../shared/shared.module';\nimport { RouterModule } from '@angular/router';\nimport {AuthConfig, OAuthModule, OAuthModuleConfig, OAuthStorage} from 'angular-oauth2-oidc';\nimport {AUTH_MODULE_CONFIG, authConfigFactory} from './auth-manager.config';\n\n@NgModule({\n imports: [\n CommonModule,\n SharedModule,\n OpenlmModule,\n RouterModule,\n OAuthModule.forRoot()\n ],\n exports: [\n OAuthModule\n ]\n})\nexport class AuthModule {\n\n constructor(@Optional() @SkipSelf() parentModule: AuthModule) {\n if (!!parentModule) {\n throw new Error('AuthManagerModule should be loaded into AppModule only.');\n }\n }\n\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: AuthModule,\n providers: [\n {provide: AuthConfig, useFactory: authConfigFactory},\n {provide: OAuthModuleConfig, useValue: AUTH_MODULE_CONFIG},\n {provide: OAuthStorage, useValue: localStorage}\n ]\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport {HttpClient, HttpHeaders, HttpParams} from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { environment } from '../../../environments/environment';\nimport { urlJoin } from '../../shared/utils';\nimport {ISecurityInfo, ITokenResponse} from './security.interface';\nimport {authConfigFactory} from '../auth-manager.config';\n\ndeclare let securityUrl: string;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiAuthService {\n\n constructor(\n private httpClient: HttpClient\n ) { }\n\n public getSecurityServerInfo(): Observable {\n return this.httpClient.get(securityUrl);\n }\n\n public refreshImpersonatedToken(): Observable {\n const body = new HttpParams({\n fromObject: {\n client_id: 'openlm.dss.ui',\n grant_type: 'refresh_token',\n refresh_token: localStorage.getItem('impersonated_refresh_token')\n }\n });\n\n return this.httpClient.post(`${authConfigFactory().issuer}/connect/token`, body, {\n headers: new HttpHeaders({\n 'Content-Type': 'application/x-www-form-urlencoded'\n })\n })\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Query } from '@datorama/akita';\nimport { AuthStore, AuthState } from './auth.store';\n\n@Injectable({ providedIn: 'root' })\nexport class AuthQuery extends Query {\n\n constructor(protected store: AuthStore) {\n super(store);\n }\n}\n","import {Injectable} from '@angular/core';\nimport {Store, StoreConfig} from '@datorama/akita';\nimport {ISession} from '../../service/security.interface';\n\n\nexport interface AuthState {\n userState?: ISession & {role?: string[] | string};\n hasValidOauth2Token?: boolean;\n}\n\nexport function createInitialState(): AuthState {\n return {\n userState: {} as ISession,\n hasValidOauth2Token: false\n };\n}\n\n@Injectable({providedIn: 'root'})\n@StoreConfig({name: 'auth'})\nexport class AuthStore extends Store {\n\n constructor() {\n super(createInitialState());\n }\n\n}\n\n","export * from './auth.query';\nexport * from './auth.store';\n","import { Injectable } from '@angular/core';\nimport { Query } from '@datorama/akita';\nimport { AppState, AppStateStore } from './app-state.store';\n\n@Injectable({ providedIn: 'root' })\nexport class AppStateQuery extends Query {\n\n constructor(protected store: AppStateStore) {\n super(store);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { AppState, AppStateStore } from './app-state.store';\n\n@Injectable({ providedIn: 'root' })\nexport class AppStateService {\n\n constructor(\n private appStateStore: AppStateStore\n ) {}\n\n update(state: Partial) {\n this.appStateStore.update(state);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Store, StoreConfig } from '@datorama/akita';\n\nexport interface AppState {\n isDssApproved: boolean;\n isMigrationRequired: boolean;\n}\n\nexport function createInitialState(): AppState {\n return {\n isDssApproved: true,\n isMigrationRequired: false,\n };\n}\n\n@Injectable({ providedIn: 'root' })\n@StoreConfig({ name: 'app-state' })\nexport class AppStateStore extends Store {\n\n constructor() {\n super(createInitialState());\n }\n\n}\n\n","export * from './app-state.query';\nexport * from './app-state.store';\nexport * from './app-state.service';\n","import {Query, QueryEntity, Store} from '@datorama/akita';\nimport {filter, map} from 'rxjs/operators';\n\nexport class BaseUiQuery extends Query {\n\n constructor(protected store: Store) {\n super(store);\n }\n\n public selectPagination$ = this.select().pipe(\n filter(state => !state._preventDispatching),\n map(state => state.paginationState)\n );\n\n public selectPaginationStartFrom$ = this.select('paginationStartFrom');\n public selectSort$ = this.select('sortState');\n public selectSearchTerm$ = this.select('searchTerm');\n public selectTableColumns$ = this.select('tableColumns');\n\n public get sortState() {\n return this.getValue().sortState;\n }\n\n public get searchTerm() {\n return this.getValue().searchTerm;\n }\n\n public get pagination() {\n return this.getValue().paginationState;\n }\n\n public get selected() {\n return this.getValue().selected;\n }\n\n public get tableColumns() {\n return this.getValue().tableColumns;\n }\n\n public isSelected(id: number): boolean {\n return this.getValue().selected.includes(id);\n }\n\n}\n","import {OlmPaginationData, OlmSortState} from 'openlm';\nimport {Store} from '@datorama/akita';\n\nexport class BaseUiService {\n\n constructor(private baseUiStore: Store) {}\n\n public updatePagination(paginationState: OlmPaginationData): void {\n this.baseUiStore.update(state => ({...state, paginationState, _preventDispatching: false}));\n }\n\n public setPaginationFromResponse(responseObject): void {\n const {currentPage, totalPages, pageSize, totalCount, hasPrevious, hasNext} = responseObject;\n const paginationState: OlmPaginationData = {\n currentPage,\n totalPages,\n pageSize,\n totalCount,\n hasPrevious,\n hasNext\n };\n this.baseUiStore.update(state => ({...state, paginationState, _preventDispatching: true}));\n }\n\n public setPaginationStartFrom(startFrom: number, paginationState: OlmPaginationData) {\n const indexOfElement = (startFrom % paginationState.pageSize || paginationState.pageSize) - 1;\n this.baseUiStore\n .update(state => ({\n ...state,\n paginationState,\n paginationStartFrom: {startFrom, indexOfElement},\n _preventDispatching: false\n }));\n }\n\n public resetPaginationStartFrom() {\n this.baseUiStore.update({paginationStartFrom: null});\n }\n\n public updateSort(sortState: OlmSortState) {\n this.baseUiStore.update(state => ({...state, sortState}));\n }\n\n public toggleSelection(id: number) {\n const selected = this.baseUiStore.getValue().selected.slice();\n const idIndex = selected.findIndex(value => value === id);\n idIndex > -1\n ? selected.splice(idIndex, 1)\n : selected.push(id);\n this.baseUiStore.update({selected});\n }\n\n public removeSelected(ids: number[]) {\n const selected = this.baseUiStore.getValue().selected.slice();\n this.baseUiStore.update({selected: selected.filter(value => !ids.includes(value))})\n }\n\n public addSelected(ids: number[]) {\n this.baseUiStore.update(state => {\n const stateSelected = state.selected || [];\n const idsWithoutDuplicate = ids.filter(id => !stateSelected.includes(id));\n return {...state, selected: [...state.selected, ...idsWithoutDuplicate]}\n });\n }\n\n public setSelected(ids: number[]) {\n this.baseUiStore.update({selected: ids});\n }\n\n public resetSelection() {\n this.baseUiStore.update({selected: []});\n }\n\n public setSearchTerm(searchTerm: string) {\n this.baseUiStore.update({searchTerm});\n }\n\n public setTableColumns(tableColumns) {\n this.baseUiStore.update({tableColumns})\n }\n\n public reset(): void {\n this.baseUiStore.update(state => ({\n ...state,\n paginationState: {\n ...state.paginationState,\n currentPage: 1\n },\n selected: [],\n searchTerm: null,\n sortState: null,\n paginationStartFrom: null,\n _preventDispatching: false,\n }));\n }\n\n}\n","import {OlmPaginationData, OlmSortState, TableColumn} from 'openlm';\n\nexport interface BaseUiStateInterface {\n paginationState: OlmPaginationData\n paginationStartFrom: {\n startFrom: number;\n indexOfElement: number;\n };\n sortState: OlmSortState;\n searchTerm: string;\n selected: number[];\n tableColumns: TableColumn[] | any[];\n _preventDispatching: boolean;\n}\n\nexport const BASE_UI_STATE = {\n paginationState: {\n pageSize: 25,\n currentPage: 1,\n totalCount: 1,\n totalPages: 1,\n hasNext: false,\n hasPrevious: false\n },\n paginationStartFrom: null,\n sortState: null,\n searchTerm: null,\n selected: [],\n tableColumns: null,\n _preventDispatching: false,\n};\n\nexport interface UIState {\n pagination: OlmPaginationData;\n sort: OlmSortState;\n searchTerm: string;\n excludedColumns?: string[];\n}\n\nexport interface BaseUI {\n startFromElementIndex: number;\n areAllSelected: () => boolean;\n getSelection: () => number[];\n tryToFocusElement: () => void;\n masterToggle: () => void;\n}\n","import {List} from 'immutable';\nimport {UIState} from './base-ui-state-interface';\nimport {HttpParams} from '@angular/common/http';\n\nexport function areAllSelected(dataList: List, selectedData: number[], idKey: string = 'id') {\n return dataList &&\n dataList.size &&\n dataList\n .map(data => data[idKey])\n .toArray()\n .every(elem => selectedData.includes(elem));\n}\n\nexport function getSelection(dataList: List, selectedData: number[], idKey: string = 'id'): number[] {\n const selection = [];\n let mappedIds = [];\n if (idKey === 'syncDefId' || idKey === 'domainId' || idKey === 'agentId') {\n mappedIds = dataList && dataList.map(entity => entity[idKey]).toArray();\n } else {\n mappedIds = dataList?.filter(e => e[idKey] !== null).map(e => e['syncDefId']).toArray();\n }\n\n selectedData.forEach(id => {\n if (mappedIds && mappedIds.includes(id)) {\n selection.push(id)\n }\n });\n\n return selection;\n}\n\nexport function buildUiStateHttpParams(uiState: UIState): HttpParams {\n let params = new HttpParams();\n if (uiState) {\n if (uiState.pagination) {\n params = params.append('PageNumber', uiState.pagination.currentPage.toString());\n params = params.append('PageSize', uiState.pagination.pageSize.toString());\n }\n if (uiState.sort && uiState.sort.direction) {\n params = params.append('SortBy', uiState.sort.id);\n params = params.append('OrderDir', uiState.sort.direction === 'ASC' ? '1' : '2');\n }\n if (uiState.searchTerm) {\n params = params.append('SearchTerm', uiState.searchTerm);\n }\n if (uiState.excludedColumns) {\n uiState.excludedColumns.forEach(col => {\n params = params.append('ColumnsExcludedFromSearch', col);\n })\n }\n }\n return params;\n}\n","import {HttpParameterCodec} from '@angular/common/http';\n\nexport class HttpUrlEncoder implements HttpParameterCodec {\n encodeKey(k: string): string { return standardEncoding(k); }\n encodeValue(v: string): string { return standardEncoding(v); }\n decodeKey(k: string): string { return decodeURIComponent(k); }\n decodeValue(v: string) { return decodeURIComponent(v); }\n}\nfunction standardEncoding(v: string): string {\n return encodeURIComponent(v);\n}","import {HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport { finalize, tap } from 'rxjs/operators';\nimport {Router} from '@angular/router';\nimport {Injectable} from '@angular/core';\nimport { LoaderService } from '../shared/loader/loader.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { AuthFacade } from '../auth/auth.facade';\n\n// declare let isCloud: boolean;\ndeclare let useSecurity: boolean;\n\n@Injectable()\nexport class HttpInterceptorService implements HttpInterceptor {\n constructor(\n private router: Router,\n private loaderService: LoaderService,\n private matDialog: MatDialog,\n private authFacade: AuthFacade\n ) {}\n\n private count = 0;\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n let disableLoader = false;\n const isUploadRequest = req.headers.has('file-upload');\n\n if (req.headers.has('disable-loader')) {\n disableLoader = true;\n const headers = req.headers.delete('disable-loader');\n req = req.clone({headers});\n }\n\n if (!disableLoader) {\n this.loaderService.show();\n }\n\n this.count++;\n\n // if (!isCloud) {\n // const token = localStorage.getItem('token');\n //\n // if (token) {\n // const setHeaders = isUploadRequest\n // ? {\n // Authorization: `Bearer ${token}`\n // }\n // : {\n // 'Content-Type': 'application/json',\n // Authorization: `Bearer ${token}`\n // };\n //\n // req = req.clone({setHeaders});\n // }\n // }\n\n if (useSecurity) {\n const impersonatedToken = localStorage.getItem('impersonated_access_token');\n\n if (!!impersonatedToken) {\n req = req.clone({\n headers: req.headers.set('Authorization', `Bearer ${impersonatedToken}`)\n })\n }\n }\n\n return next.handle(req).pipe(\n tap(() => {},\n async (err: any) => {\n if (err instanceof HttpErrorResponse) {\n if (err.status !== 401) {\n return;\n }\n\n if (useSecurity && !this.authFacade.blockLogoutRequest) {\n // Set timeout is here for Firefox.\n // When user is not logged in, the app is supposed to navigate to the identity server for authorization.\n // On chromium based browsers it navigates immediately, on Firefox it got to the logout part of the code first.\n // Set timeout ensures that the logout event will be pushed further down the event loop,\n // and that the navigation to the login screen will happen first.\n setTimeout(() => this.authFacade.logout(), 0);\n }\n }\n }),\n finalize(() => {\n this.count--;\n\n if (this.count === 0) {\n this.loaderService.hide();\n }\n })\n );\n }\n}\n","import * as moment from 'moment-timezone';\nimport {setupSecurityFlow} from '../auth/auth-manager.config';\nimport {OAuthService} from 'angular-oauth2-oidc';\nimport {HttpClient} from '@angular/common/http';\nimport {AuthFacade} from '../auth/auth.facade';\n\ndeclare let useSecurity: boolean;\n\nexport function initApp(oauthService: OAuthService, httpClient: HttpClient, authFacade: AuthFacade): () => Promise {\n return () => {\n return new Promise((res) => {\n const timeZoneValue = window.localStorage.getItem('user-timezone');\n const timeFormatValue = window.localStorage.getItem('user-date-format');\n\n if (!timeZoneValue) {\n window.localStorage.setItem('user-timezone', moment.tz.guess())\n }\n\n if (!timeFormatValue) {\n window.localStorage.setItem('user-date-format', 'dd/MM/yyyy HH:mm:ss')\n }\n\n if (useSecurity) {\n setupSecurityFlow(oauthService, httpClient, authFacade)().then(() => res());\n } else {\n res();\n }\n })\n }\n}\n","import { Injectable } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { filter, map, pairwise } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RouteEventsService {\n\n constructor(\n private router: Router\n ) { }\n\n public initUrlHistoryHandling() {\n\n console.log('inits');\n if (!window.localStorage.getItem('previousUrl')) {\n window.localStorage.setItem('previousUrl', '/')\n }\n this.router.events.pipe(\n filter(e => e instanceof NavigationEnd),\n pairwise()\n ).pipe(\n map(p => {\n return p[0]\n })\n )\n .subscribe((event: any) => {\n if (event && event.url) {\n window.localStorage.setItem('previousUrl', event.url);\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n IAgent,\n IAgentDeleteList,\n IAgentSync,\n} from './api/agent.interface';\nimport { AgentQuery, AgentService } from './state/agent';\nimport {AgentSyncsQuery, AgentSyncsService} from './state/agent-syncs';\nimport {Observable} from 'rxjs';\nimport {DirtyCheckPlugin, EntityDirtyCheckPlugin } from '@datorama/akita';\nimport {filter} from 'rxjs/operators';\nimport {AgentMassUpdateQuery, AgentMassUpdateService} from './state/agent-mass-update';\nimport { clearObjectFromEmptyValues, parseError } from '../../shared/utils';\nimport {SnackbarService} from '../../shared/snackbar/snackbar-service/snackbar.service';\nimport {LayoutFacadeService} from '../../layout/layout-facade.service';\nimport {AgentUiQuery, AgentUiService} from './state/agent-ui';\nimport {UIState} from '../../core/base-ui-state/base-ui-state-interface';\nimport {AgentApiService} from './api/agent.api.service';\n\n@Injectable()\nexport class AgentFacade {\n constructor(\n private agentApiService: AgentApiService,\n private agentQuery: AgentQuery,\n private agentService: AgentService,\n private agentSyncsService: AgentSyncsService,\n private agentSyncsQuery: AgentSyncsQuery,\n private agentMassUpdateService: AgentMassUpdateService,\n private agentMassUpdateQuery: AgentMassUpdateQuery,\n private snackbarService: SnackbarService,\n private layoutFacadeService: LayoutFacadeService,\n private agentsUiQuery: AgentUiQuery,\n private agentsUiService: AgentUiService\n ) {}\n\n public agentMassUpdateDirtyCheck = new DirtyCheckPlugin(this.agentMassUpdateQuery).setHead();\n public agentDirtyCheckPlugin = new EntityDirtyCheckPlugin(this.agentQuery).setHead();\n\n public async loadPaginatedAgents(uiState: UIState = null): Promise {\n try {\n uiState = uiState || {\n pagination: this.agentsUiQuery.pagination,\n sort: this.agentsUiQuery.sortState,\n searchTerm: this.agentsUiQuery.searchTerm,\n };\n uiState['excludedColumns'] = this.agentsUiQuery.tableColumns.filter(col => !col.visible).map(col => col.value);\n\n const result = await this.agentApiService.getPaginated(uiState).toPromise();\n\n this.agentService.setError(null);\n this.agentsUiService.setPaginationFromResponse(result);\n this.agentService.set(result.items);\n\n return result.items;\n } catch (err) {\n console.log(err); // still log the error, in production may be useful :)\n\n this.agentService.setError({\n action: 'GET',\n type: null,\n details: {\n failedToLoadAllAgents: true\n }\n });\n\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Failed to load agents, ${parseError(err)}`\n });\n }\n }\n\n public async getAllAgents(): Promise {\n let agents = [];\n try {\n agents = await this.agentApiService.getAll().toPromise();\n } catch (err) {\n console.log(err);\n\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Failed to load agents, ${parseError(err)}`\n });\n }\n return agents;\n }\n\n public async partialGetAllAgents(filterByStatus: number = null): Promise> {\n let agents: Partial = []\n try {\n agents = await this.agentApiService.partialGetAll(filterByStatus).toPromise();\n } catch (e) {\n console.log(e);\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Failed to load agents, ${parseError(e)}`\n });\n }\n return agents;\n }\n\n public async loadAgentById(agentId: number): Promise {\n try {\n this.agentService.setError(null);\n const result = await this.agentApiService.get(agentId).toPromise();\n this.agentService.upsert(result);\n this.agentDirtyCheckPlugin.setHead();\n } catch (err) {\n if (err.status === 404) {\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Agent with id ${agentId} not found`\n });\n this.agentService.setError({\n action: 'GET',\n type: 404,\n details: {\n agentId\n }\n });\n } else {\n this.snackbarService.triggerSnackbar({\n isError: true, message: `Failed to load agent with id ${agentId}, ${parseError(err)}`\n })\n }\n }\n }\n\n public selectAllAgents$(): Observable {\n return this.agentQuery.selectAll();\n }\n\n public selectAgentById$(id: number): Observable {\n return this.agentQuery.selectEntity(id).pipe(filter(agent => !!agent));\n }\n\n public selectAgentsByIds$(ids: number[]): Observable {\n return this.agentQuery.selectMany(ids);\n }\n\n public selectAgentError$(): Observable {\n return this.agentQuery.selectError();\n }\n\n public async saveAgent(agentId: number): Promise {\n const agentEntity: IAgent = this.agentQuery.getEntity(agentId);\n try {\n this.agentService.setError(null);\n await this.agentApiService.updateAgent(agentId, agentEntity).toPromise();\n this.snackbarService.triggerSnackbar({message: `Agent with name: ${agentEntity.agentName} was saved successfully`});\n } catch (e) {\n console.log(e);\n if (e.status === 400 || e.status === 409) {\n this.agentService.setError({\n action: 'PATCH',\n type: e.status,\n });\n }\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: parseError(e) || 'Unable to save the agent.'\n });\n }\n }\n\n public async deleteAgent(agentList: IAgentDeleteList[]): Promise {\n for (let i = 0; i < agentList.length; i++) {\n try {\n await this.agentApiService.deleteAgent(agentList[i]).toPromise();\n this.agentService.delete(agentList[i].agentId);\n if (i + 1 === agentList.length) {\n this.snackbarService.triggerSnackbar({\n message: agentList.length > 1\n ? 'Agents deleted successfully.'\n : 'Agent deleted successfully.'\n });\n this.loadPaginatedAgents();\n }\n } catch (e) {\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Failed to delete selected Agent(s), details: ${parseError(e)}`\n });\n }\n }\n }\n\n public updateAgentInTheStore(agent: IAgent): void {\n this.agentService.update(agent);\n }\n\n public downloadAgentCsv() {\n try {\n return this.agentApiService.downloadAgentCsv().toPromise();\n } catch (e) {\n console.log(e)\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Failed to export agent, ${parseError(e)}`\n })\n }\n }\n\n public setAgentMassUpdateStore(value): void {\n this.agentMassUpdateService.set(value);\n }\n\n public async massUpdateAgents(agentsIds: number[]): Promise {\n const massUpdateFormValue = clearObjectFromEmptyValues(this.agentMassUpdateQuery.getValue());\n for (let i = 0; i < agentsIds.length; i++) {\n try {\n await this.agentApiService.updateAgent(\n agentsIds[i],\n massUpdateFormValue\n ).toPromise();\n if (i + 1 === agentsIds.length) {\n this.snackbarService.triggerSnackbar({\n message: 'Agents saved successfully'\n });\n }\n } catch (e) {\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Failed to save agent with id ${agentsIds[i]}, ${parseError(e)}`\n });\n }\n this.agentMassUpdateDirtyCheck.reset();\n this.loadPaginatedAgents();\n }\n }\n}\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AgentEditPageComponent } from './containers/agent-edit-page/agent-edit-page.component';\nimport { AgentPageComponent } from './containers/agent-page/agent-page.component';\nimport { AgentDeleteDialogComponent } from './containers/agent-delete-dialog/agent-delete-dialog.component';\nimport { AgentApiService } from './api/agent.api.service';\nimport { SharedModule } from '../../shared/shared.module';\nimport { OpenlmModule } from 'openlm';\nimport { AgentFacade } from './agent.facade';\nimport {RouterModule} from '@angular/router';\nimport { AgentMassUpdateComponent } from './containers/agent-mass-update/agent-mass-update.component';\nimport {SnackbarDialogComponent} from '../../shared/snackbar/snackbar-dialog/snackbar-dialog.component';\n\n\n@NgModule({\n entryComponents: [\n AgentEditPageComponent,\n AgentDeleteDialogComponent,\n AgentMassUpdateComponent,\n SnackbarDialogComponent\n ],\n declarations: [\n AgentEditPageComponent,\n AgentPageComponent,\n AgentDeleteDialogComponent,\n AgentMassUpdateComponent\n ],\n imports: [\n CommonModule,\n SharedModule,\n OpenlmModule,\n RouterModule,\n ],\n exports: [\n AgentPageComponent,\n ],\n providers: [\n AgentApiService,\n AgentFacade\n ],\n\n})\nexport class AgentModule { }\n","import {HttpClient, HttpParams} from '@angular/common/http';\nimport {\n IAgent,\n IAgentDelete, IAgentResponse,\n IAgentSyncs\n} from './agent.interface';\nimport {Observable} from 'rxjs';\nimport {Injectable} from '@angular/core';\nimport {urlJoin} from '../../../shared/utils';\nimport {environment} from '../../../../environments/environment';\nimport {UIState} from '../../../core/base-ui-state/base-ui-state-interface';\nimport {buildUiStateHttpParams} from '../../../core/base-ui-state/base-ui-utils';\n\n@Injectable()\nexport class AgentApiService {\n constructor(private http: HttpClient) {\n }\n\n private baseUrl = urlJoin(environment.baseUrl, 'admin/agents');\n\n getPaginated(uiState: UIState): Observable {\n // NOTE, this custom search functionality is temporary\n if (uiState.searchTerm && uiState.searchTerm.includes('domainID')) {\n const cloneUiState = {...uiState}\n delete cloneUiState.searchTerm;\n const options = {params: buildUiStateHttpParams(cloneUiState)}\n options.params = options.params.append('domainId', uiState.searchTerm.replace('domainID:', ''))\n return this.http.get(this.baseUrl, options);\n }\n return this.http.get(this.baseUrl, {params: buildUiStateHttpParams(uiState)});\n }\n\n public partialGetAll(filterByStatus: number = null): Observable> {\n let options = {};\n if (typeof filterByStatus === 'number') {\n options = {params: new HttpParams().append('agentStatus', String(filterByStatus))}\n }\n return this.http.get>(\n urlJoin(environment.baseUrl, 'admin/dropdown-values/agent'),\n options\n )\n }\n\n getAll(): Observable {\n return this.http.get(urlJoin(this.baseUrl, 'all'));\n }\n\n get(agentId: number): Observable {\n return this.http.get(urlJoin(this.baseUrl, String(agentId)));\n }\n\n updateAgent(id: number, model: IAgent): Observable {\n return this.http.patch(`${this.baseUrl}/${id}`, model);\n }\n\n downloadAgentCsv(): Observable {\n const options = {\n responseType: 'text',\n observe: 'response'\n } as {};\n\n return this.http.get(`${this.baseUrl}/export`, options);\n }\n\n deleteAgent(val: IAgentDelete): Observable {\n return val.newAgentId\n ? this.http.delete(`${this.baseUrl}/${val.agentId}?newAgentId=${val.newAgentId}`)\n : this.http.delete(`${this.baseUrl}/${val.agentId}`);\n }\n\n checkAgentsSyncs(agentId: number): Observable {\n return this.http.get(`${this.baseUrl}/${agentId}/syncs`);\n }\n}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { AgentFacade } from '../../agent.facade';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport {IAgent, IAgentDeleteList, IAgentSync} from '../../api/agent.interface';\nimport { FormControl } from '@angular/forms';\n\n\n@Component({\n selector: 'app-agent-delete-page',\n templateUrl: './agent-delete-dialog.component.html',\n styleUrls: ['./agent-delete-dialog.component.scss']\n})\nexport class AgentDeleteDialogComponent implements OnInit {\n constructor(\n private agentFacade: AgentFacade,\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data\n ) {\n }\n\n public agentsTableDataSource: IAgentSync[];\n public hasSyncs: boolean;\n public displayedColumns: any[] = [\n {\n label: 'Agent Name',\n value: 'agentName'\n }\n ];\n public newLdapAgentId: FormControl = new FormControl('');\n public agents: IAgent[] = null;\n\n async ngOnInit() {\n const agents = await this.agentFacade.getAllAgents();\n\n this.agents = agents.filter(a => a.status === 2 && this.data.agents.every(d => d !== a.agentId));\n this.agentsTableDataSource = agents.filter(agent => this.data.agents.includes(agent.agentId));\n this.agentsTableDataSource.some(item => {\n if (item.syncCount) {\n this.displayedColumns = [\n {\n label: 'Agent Name',\n value: 'agentName'\n },\n {\n label: 'Syncs',\n value: 'syncCount'\n }\n ];\n this.hasSyncs = true;\n return true;\n }\n });\n\n this.dialogRef.afterClosed().subscribe(() => {\n this.agentsTableDataSource = [];\n });\n }\n\n onCancelClick() {\n this.dialogRef.close();\n }\n\n async onDeleteClick() {\n const agentsToDelete: IAgentDeleteList[] = [];\n this.agentsTableDataSource.forEach(data => {\n agentsToDelete.push(\n data.syncCount\n ? {agentId: data.agentId, newAgentId: this.newLdapAgentId.value}\n : {agentId: data.agentId}\n );\n });\n this.agentFacade.deleteAgent(agentsToDelete);\n this.dialogRef.close(true);\n }\n\n}\n","
\n\t
\n\t\tDelete {{agentsTableDataSource?.length > 1 ? 'Agents' : 'Agent'}}\n\t
\n\t
\n
\n
\n\t
\n\t\tAre you sure you want to delete the following {{agentsTableDataSource?.length > 1 ? 'Agents' : 'Agent'}} ?\n\t
\n\t
\n\t\tOne or more Agents have syncs associated with them.\n\t
\n\t
\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{{column.label}}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{{el[column.value]}}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t
\n\t\n\t\t
\n\t\t\t{{\n\t\t\t\tagentsTableDataSource?.length > 1\n\t\t\t\t\t? 'To delete the Agents, assign the syncs to another Directory Synchronization Agent'\n\t\t\t\t\t: 'To delete the Agent, assign the syncs to another Directory Synchronization Agent'\n\t\t\t}}\n\t\t
\n\t\t
\n\t\t\t\n\t\t\t\n\t\t
\n\t
\n\t
\n\t\t\n\t\t\n\t
\n\n
\n","import {Component, OnDestroy, OnInit} from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { AgentFacade } from '../../agent.facade';\nimport { IAgent } from '../../api/agent.interface';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Location } from '@angular/common';\nimport { CanComponentDeactivate } from '../../../../shared/guards/routes.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport {\n UnsavedChangesDialogComponent,\n UnsavedDialogResponse\n} from '../../../../shared/unsaved-changes-dialog/unsaved-changes-dialog.component';\nimport { untilComponentDestroyed } from '../../../../shared/utils';\nimport { IAgentStatusList, STATUS_SELECT_SOURCE } from '../../../../shared/data-structures-select';\nimport {filter} from 'rxjs/operators';\nimport { StringMap } from '@angular/compiler/src/compiler_facade_interface';\nimport { UIError } from '../../../../shared/interfaces';\n\n\n@Component({\n selector: 'app-agent-dialog-page',\n templateUrl: './agent-edit-page.component.html',\n styleUrls: ['./agent-edit-page.component.scss'],\n})\n\nexport class AgentEditPageComponent implements OnInit, CanComponentDeactivate, OnDestroy {\n constructor(\n private fb: FormBuilder,\n public agentFacade: AgentFacade,\n private router: Router,\n private route: ActivatedRoute,\n private location: Location,\n private matDialog: MatDialog\n ) {\n }\n\n public agentForm: FormGroup;\n public agentStatusList: IAgentStatusList[] = STATUS_SELECT_SOURCE.slice();\n\n public agent: IAgent = null;\n public agentId: number = null;\n\n public ignoreDeactivation = false;\n public silentUpdate: boolean = null;\n public agentNotFound = false;\n private failedToSaveAgent = false;\n\n private statusSelectInitialized = false;\n public approveMode = false;\n\n public infoTexts: StringMap = {};\n\n\n ngOnInit() {\n this.agentId = Number(this.route.snapshot.params.id);\n if (isNaN(this.agentId)) {\n this.router.navigateByUrl('/');\n return;\n }\n\n this.agentForm = this.fb.group({\n agentName: ['', Validators.required],\n agentDescription: ['', Validators.maxLength(200)],\n status: [''],\n // alertEnabled: [false],\n requestIntervalSec: ['', [Validators.min(5), Validators.max(300), Validators.required]],\n allowParallel: [''],\n logLevel: ['']\n });\n\n this.agentFacade.loadAgentById(this.agentId);\n\n this.agentFacade\n .selectAgentError$()\n .pipe(untilComponentDestroyed(this))\n .subscribe((error: UIError) => {\n this.agentNotFound = error &&\n error.action === 'GET' &&\n error.type === 404 &&\n error.details.agentId === this.agentId;\n\n this.failedToSaveAgent = error &&\n error.action === 'PATCH' &&\n (error.type === 400 ||\n error.type === 409);\n });\n\n this.agentFacade\n .selectAgentById$(this.agentId)\n .pipe(untilComponentDestroyed(this))\n .subscribe(agent => {\n this.agent = agent;\n this.fillForm(agent);\n\n // Removing New or Pending values in Status DropDown\n if (!this.statusSelectInitialized) {\n if (agent.status !== 0) {\n this.agentStatusList.splice(this.agentStatusList.findIndex(s => s.id === 0), 1);\n }\n if (agent.status !== 1 && agent.status !== 0) {\n this.agentStatusList.splice(this.agentStatusList.findIndex(s => s.id === 1), 1);\n }\n this.approveMode = agent.status === 1;\n this.statusSelectInitialized = true;\n }\n });\n\n this.agentForm.valueChanges\n .pipe(untilComponentDestroyed(this))\n .pipe(filter(_ => !this.silentUpdate))\n .subscribe(val => {\n this.agentFacade.updateAgentInTheStore({...val, agentId: this.agentId});\n });\n\n this.initInfoTexts();\n }\n\n public fillForm(agent: IAgent): void {\n this.silentUpdate = true;\n Object.keys(this.agentForm.controls).forEach(item => {\n this.agentForm.controls[item].setValue(agent[item]);\n });\n this.silentUpdate = false;\n }\n\n public async onSaveClick() {\n if (await this.saveAgent()) {\n this.router.navigate(['/agents']);\n }\n }\n\n onBackClick(): void {\n this.router.navigateByUrl(window.localStorage.getItem('previousUrl'))\n }\n\n onCancelClick(): void {\n this.agentFacade.agentDirtyCheckPlugin.reset();\n }\n\n private async saveAgent(): Promise {\n await this.agentFacade.saveAgent(this.agentId);\n if (!this.failedToSaveAgent) {\n this.ignoreDeactivation = true;\n return true;\n }\n return false;\n }\n\n async canDeactivate(): Promise {\n if (!this.ignoreDeactivation) {\n if (this.agentFacade.agentDirtyCheckPlugin.isDirty(this.agentId, false)) {\n const result: UnsavedDialogResponse = await this.matDialog.open(UnsavedChangesDialogComponent, {\n width: '430px',\n data: {\n screenName: 'Edit Agent'\n }\n }).afterClosed().toPromise();\n switch (result) {\n case 'CLOSE':\n return false;\n case 'CANCEL':\n this.agentFacade.agentDirtyCheckPlugin.reset();\n return true;\n default:\n return this.agentForm.valid\n ? await this.saveAgent()\n : false;\n }\n }\n }\n return true;\n }\n\n private initInfoTexts(): void {\n // tslint:disable\n // JSON do not support multi lanes keys\n this.infoTexts.agentTitle = `Approve & Edit Agent
Approve & Edit the Directory Synchronization Agent (DSA) properties
Agent name: The name of the DSA reports to the Directory Synchronization Service (DSS). The agent name must be unique.
Description: free text to describe the DSA and write notes. Up to 255 characters.
Status: The DSA has 3 different statuses
Pending: the initial status when configuring DSA to report the DSS.
When DSA in status pending approval no sync will take place, and once the status was changed it will be removed from the dropdown list.
Enabled: the DSA is up and queries the DSS for Syncs requests.
Suspend: all the Syncs connected to the DSA are suspended. Only when switching to enable the syncs will start running again.
Alerts: the DSS has default alerts configured to report on the sync status.
When turned ON, all the syncs alerts related to the DSA will be sent as usual.
When turned OFF, the syncs alerts being handled by the Agent won't be sent.
Request interval: how often the DSA will query the DSS to check if there are sync requests.
It can be any integer between 5 - 600 seconds.
Sync Method: Determine how the DSA will execute the syncs.
In serial mode, the syncs will run one by one based on FIFO ( first in first out).In parallel mode, few syncs can be run at once.`;\n // tslint:enable\n }\n\n ngOnDestroy(): void {}\n}\n\n","\n\t
\n\t\t\n\t\t\n\t\t
\n\t\t\t{{approveMode ? 'Approve' : 'Edit'}} {{'Agent'}} \n\t\t
\n\t\t\n\t\t
Agent ID: {{agentId}}
\n\t
\n\n\t\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\tAgent name\n\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\tDescription\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{{agentForm?.controls.agentDescription.value.length}}/200\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\tStatus\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\tAdvanced Settings\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\tAgent Request Interval\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t sec\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\tSync method\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
Parallel
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
Serial
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tThe change will take place only for future syncs\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\n\t
\n\t\t\n\t\t\tcancel\n\t\t\n\t\t\n\t\t\t{{approveMode ? 'Approve' : 'Save changes'}}\n\t\t\n\t
\n\n\n\tagent not found\n\n","import {\n Component,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport {SideDialogRef} from '../../../../shared/side-dialog/side-dialog.service';\nimport {MatDialog} from '@angular/material/dialog';\nimport {ConfirmDialogComponent, DialogData} from '../../../../shared/confirm-dialog/confirm-dialog.component';\nimport {FormBuilder, FormGroup, Validators} from '@angular/forms';\nimport {AgentFacade} from '../../agent.facade';\nimport {ALERTS, ALLOW_PARALLEL, STATUS_SELECT_SOURCE} from '../../../../shared/data-structures-select';\nimport {UnsavedChangesDialogComponent} from '../../../../shared/unsaved-changes-dialog/unsaved-changes-dialog.component';\nimport { isObject, untilComponentDestroyed } from '../../../../shared/utils';\n\n@Component({\n selector: 'app-mass-update',\n templateUrl: './agent-mass-update.component.html',\n styleUrls: ['./agent-mass-update.component.scss']\n})\nexport class AgentMassUpdateComponent implements OnInit, OnDestroy {\n\n constructor(\n public sideDialogRef: SideDialogRef,\n private matDialog: MatDialog,\n private fb: FormBuilder,\n private agentFacade: AgentFacade,\n ) {\n }\n\n public selectedAgents: number[] = null;\n public agentMassUpdateForm: FormGroup;\n\n public status: { id: number, name: string }[] = STATUS_SELECT_SOURCE.slice();\n public alerts: { name: string, value: boolean; }[] = ALERTS.slice();\n public allowParallel: { name: string, value: boolean }[] = ALLOW_PARALLEL.slice();\n\n public massUpdateDirtyCheck = this.agentFacade.agentMassUpdateDirtyCheck;\n\n ngOnInit() {\n this.selectedAgents = this.sideDialogRef.data.data.selected;\n\n this.agentMassUpdateForm = this.fb.group({\n status: ['', {disabled: true}],\n // alertEnabled: [''],\n requestIntervalSec: ['', [Validators.min(5), Validators.max(300)]],\n allowParallel: ['']\n });\n\n this.status.splice(this.status.findIndex(s => s.id === 0), 1);\n this.status.splice(this.status.findIndex(s => s.id === 1), 1);\n\n this.agentMassUpdateForm.valueChanges\n .pipe(untilComponentDestroyed(this))\n .subscribe(val => {\n const massUpdateForm = {};\n Object.keys(val).forEach(key => {\n if (isObject(val[key])) {\n massUpdateForm[key] = val[key].hasOwnProperty('value') ? val[key].value : val[key].id;\n } else {\n massUpdateForm[key] = val[key] || '';\n }\n });\n this.agentFacade.setAgentMassUpdateStore(massUpdateForm);\n });\n\n this.sideDialogRef.closeOnBackdrop = false;\n this.sideDialogRef.overlay.backdropClick().subscribe(async event => {\n const canDeactivate = await this.canDeactivateDialog();\n if (canDeactivate) {\n this.sideDialogRef.close();\n }\n });\n }\n\n async onCloseClick() {\n const canDeactivate = await this.canDeactivateDialog();\n if (canDeactivate) {\n this.sideDialogRef.close();\n }\n }\n\n\n async onSaveClick() {\n const length = this.selectedAgents.length;\n const confirmation = await this.matDialog.open(ConfirmDialogComponent, {\n width: '430px',\n data: {\n alertType: 'warning',\n header: 'Confirm',\n body: `You are about to update ${length} Agents with the selected properties. Click Yes to continue or Cancel to abort?`,\n discardButtonName: 'cancel',\n discardButton: true,\n confirmButton: true,\n confirmButtonName: 'yes',\n confirmButtonType: 'primary test'\n } as DialogData,\n }).afterClosed().toPromise();\n if (confirmation) {\n this.agentFacade.massUpdateAgents(this.selectedAgents);\n this.sideDialogRef.close();\n }\n }\n\n async canDeactivateDialog(): Promise {\n if (this.massUpdateDirtyCheck.isDirty()) {\n const result = await this.matDialog.open(\n UnsavedChangesDialogComponent, {\n data: {\n screenName: 'Agent Bulk Edit'\n }\n }\n ).afterClosed().toPromise();\n console.log('result', result);\n switch (result) {\n case 'CLOSE':\n return false;\n case 'CANCEL':\n this.massUpdateDirtyCheck.reset();\n return true;\n default:\n if (this.agentMassUpdateForm.valid) {\n this.onSaveClick();\n } else {\n return false;\n }\n break;\n }\n }\n return true;\n }\n\n ngOnDestroy(): void {\n }\n}\n","\n\t\n\t\t
Bulk edit agents
\n\t\t\n\t\n\t
\n\t\t\n\t\t\tThe change will take place for {{selectedAgents.length}} selected agents\n\t\t
\n\t\t\n\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\tStatus\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\tRequest interval\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\tsec\n\t\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\tSync method\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\n\t\t\n\n\t\n\t\n\t\t\n\t\t\tsave\n\t\t\n\t\n\n\n\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n OnInit,\n ViewChild\n} from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { AgentFacade } from '../../agent.facade';\nimport { PaginationComponent, TableColumn, TableComponent} from 'openlm';\nimport { AgentDeleteDialogComponent } from '../agent-delete-dialog/agent-delete-dialog.component';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { SideDialogService } from '../../../../shared/side-dialog/side-dialog.service';\nimport { AgentMassUpdateComponent } from '../agent-mass-update/agent-mass-update.component';\nimport { downloadFile } from '../../../../shared/utils';\nimport { IAgent } from '../../api/agent.interface';\nimport { List } from 'immutable';\nimport { UIError } from '../../../../shared/interfaces';\nimport { AgentUiQuery, AgentUiService } from '../../state/agent-ui';\nimport { combineLatest } from 'rxjs';\nimport { filter, startWith } from 'rxjs/operators';\nimport {BaseUI} from '../../../../core/base-ui-state/base-ui-state-interface';\nimport {areAllSelected, getSelection} from '../../../../core/base-ui-state/base-ui-utils';\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\n\n@UntilDestroy()\n@Component({\n selector: 'app-agent-list',\n templateUrl: './agent-page.component.html',\n styleUrls: ['./agent-page.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AgentPageComponent implements OnInit, BaseUI {\n\n constructor(\n private dialog: MatDialog,\n private router: Router,\n private route: ActivatedRoute,\n public agentFacade: AgentFacade,\n private sideDialogService: SideDialogService,\n private cd: ChangeDetectorRef,\n public agentUiQuery: AgentUiQuery,\n public agentUiService: AgentUiService\n ) {}\n\n @ViewChild(TableComponent, { read: ElementRef }) table;\n @ViewChild(PaginationComponent) pagination: PaginationComponent;\n\n public columns: TableColumn[] | any[];\n public infoTexts: any = {};\n\n public agentsList: List;\n public failedToLoadAgents: boolean = null;\n\n public startFromElementIndex: number = null;\n public searchTermToHighlight: string = null;\n\n ngOnInit() {\n this.initInfoTexts();\n\n this.route.queryParams\n .pipe(untilDestroyed(this))\n .subscribe(params => {\n if (params.searchForDomainId) {\n this.agentUiService.setSearchTerm(`domainID:${params.searchForDomainId}`);\n } else if (params.searchForAgentName) {\n this.agentUiService.setSearchTerm(decodeURI(params.searchForAgentName));\n } else {\n this.agentUiService.setSearchTerm(null);\n }\n })\n\n\n this.agentUiQuery.selectPaginationStartFrom$\n .pipe(untilDestroyed(this))\n .subscribe(value => {\n this.startFromElementIndex = value && value.indexOfElement;\n });\n\n combineLatest([\n this.agentUiQuery.selectPagination$.pipe(startWith(this.agentUiQuery.pagination)),\n this.agentUiQuery.selectSort$,\n this.agentUiQuery.selectSearchTerm$,\n this.agentUiQuery.selectTableColumns$\n .pipe(filter(value => {\n if (!value) {\n this.agentUiService.setTableColumns(this.getDefaultColumns())\n return false;\n }\n return true;\n }))\n ]).pipe(untilDestroyed(this))\n .subscribe(async ([pagination, sort, searchTerm, columns]) => {\n // NOTE, temporary\n if (!searchTerm) {\n this.router.navigateByUrl('/agents');\n }\n this.columns = columns;\n await this.agentFacade.loadPaginatedAgents({pagination, sort, searchTerm});\n this.tryToFocusElement();\n this.searchTermToHighlight = searchTerm;\n this.cd.detectChanges();\n });\n\n this.agentFacade.selectAgentError$()\n .pipe(untilDestroyed(this))\n .subscribe((error: UIError) => {\n this.failedToLoadAgents = error &&\n error.action === 'GET' &&\n error.details\n && error.details.failedToLoadAllAgents;\n this.cd.detectChanges();\n });\n\n this.agentFacade.selectAllAgents$()\n .pipe(untilDestroyed(this))\n .subscribe(agents => {\n this.agentsList = List(agents);\n this.cd.detectChanges();\n });\n }\n\n public onRowClick(event: MouseEvent, row: IAgent): void {\n if (event.detail === 2) {\n this.router.navigate(['../agents', row.agentId]);\n }\n }\n\n public onDeleteClick(): void {\n if (this.getSelection().length > 0) {\n this.dialog.open(AgentDeleteDialogComponent, {\n data: {agents: this.getSelection()},\n width: '550px',\n minHeight: '240px',\n panelClass: 'scroll'\n }).afterClosed().subscribe((deleteAction: boolean) => {\n if (deleteAction) {\n this.agentUiService.removeSelected(this.getSelection())\n }\n });\n }\n }\n\n public onMassUpdateClick(): void {\n this.sideDialogService.openComponent(\n AgentMassUpdateComponent,\n {\n width: '400px',\n data: {\n selected: this.getSelection()\n }\n }\n );\n }\n\n public onEditAgentClick(agentId: number): void {\n this.router.navigate(['../agents', agentId]);\n }\n\n public async onExportTableClick(): Promise {\n const text = await this.agentFacade.downloadAgentCsv();\n downloadFile(text);\n }\n\n public trackByFn(index, item) {\n return item.agentId;\n }\n\n public areAllSelected(): boolean {\n return areAllSelected(this.agentsList, this.agentUiQuery.selected, 'agentId');\n }\n\n public getSelection(): number[] {\n return getSelection(this.agentsList, this.agentUiQuery.selected, 'agentId');\n }\n\n public tryToFocusElement(): void {\n if (this.startFromElementIndex !== null) {\n this.table.nativeElement.querySelector('tbody').children[this.startFromElementIndex].focus();\n this.startFromElementIndex = null;\n this.agentUiService.resetPaginationStartFrom();\n }\n }\n\n public masterToggle(): void {\n this.areAllSelected()\n ? this.agentUiService.removeSelected(this.agentsList.map(agent => agent.agentId).toArray())\n : this.agentUiService.addSelected(this.agentsList.map(agent => agent.agentId).toArray())\n }\n\n public getDefaultColumns(): TableColumn[] | any[] {\n return [\n {\n label: 'Agent name',\n value: 'agentName',\n disableVisibilityChange: true,\n visible: true,\n sortTooltip: 'Sort by Agent name',\n },\n {\n label: 'Agent ID',\n value: 'agentId',\n visible: false,\n sortTooltip: 'Sort by Agent ID',\n },\n {\n label: 'Description',\n value: 'agentDescription',\n visible: true,\n sortTooltip: 'Sort by Agent description',\n },\n {\n label: 'Status',\n value: 'status',\n visible: true,\n sortTooltip: 'Sort by Agent status',\n },\n // {\n // label: 'Alerts',\n // value: 'alertEnabled',\n // visible: true,\n // sortTooltip: 'Sort by Alerts active/inactive',\n // },\n {\n label: 'Domains',\n value: 'domainCount',\n visible: true,\n sortTooltip: 'Sort by domains descending/ascending',\n },\n {\n label: 'Syncs',\n value: 'syncCount',\n visible: true,\n sortTooltip: 'Sort by Syncs Descending/Ascending'\n },\n {\n label: 'Request Interval',\n value: 'requestIntervalSec',\n visible: false,\n disableSort: true,\n },\n {\n label: 'Sync Method',\n value: 'allowParallel',\n visible: false,\n disableSort: true,\n },\n ];\n }\n\n private initInfoTexts() {\n // tslint:disable-next-line:max-line-length\n this.infoTexts.agentManager = `Agent Manager:
the Agent Manager is the control hub for Directory Synchronization Agents (DSA). On this screen you can approve, edit and disable Agents.

Agent name: the name of the Agent that reports to the Directory Synchronization Service (DSS). The Agent name must be unique.

Description: input any text or notes to describe and identify the Agent. Up to 256 characters.

Status: an Agent can have one of 3 statuses.
Pending: the initial status when configuring an Agent to report to the DSS. This status means that the Agent is not operational and is pending approval.
Enabled: the Agent is up and running and able to query the DSS for synchronization
Suspended: all Agent synchronizations are suspended. The syncs will start running only when switched to Enabled again.

Domains: the total number of domains (directories) the Agent is set up to query.

Syncs: the list of synchronization definitions connected to an Agent.

Request interval: how often the Agent will query the DSS and check for sync requests.

Data Chunk Size: how many rows will be reported to the DSS in one chunk.

Alerts: By default, DSS alerts are configured to report the synchronization status. When turned On, all syncs connected to the Agent will send a status alert. When turned Off, no alert will be sent.

Delete: Delete the agent from the Agent Manager list.`;\n }\n\n}\n\n\n","\n\t\n\t\t
\n\t\t\tAgent Manager\n\t\t
\n\t\t\n\t\n\n\t\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\tBulk Edit\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\tDelete\n\t\t\t\n\t\t
\n\t\t
\n\t\t\t\n\n\t\t\t\n\t\t\t\n\t\t
\n\t\n\n\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{{column.label}}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tNo results found\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\n\n\n\n\n\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t 0\"\n\t\t\t\t\t\t\t\t\t[olmTooltip]=\"'Agent domains'\"\n\t\t\t\t\t\t\t\t\t[innerHTML]=\"agent[column.value] | highlight: searchTermToHighlight\"\n\t\t\t\t\t\t\t\t\t[routerLink]=\"['/domains']\"\n\t\t\t\t\t\t\t\t\t[queryParams]=\"{searchForAgentId: agent?.agentId}\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t 0\"\n\t\t\t\t\t\t\t\t\t[olmTooltip]=\"'Agent syncs'\"\n\t\t\t\t\t\t\t\t\t[innerHTML]=\"agent[column.value] | highlight: searchTermToHighlight\"\n\t\t\t\t\t\t\t\t\t[routerLink]=\"['/syncs']\"\n\t\t\t\t\t\t\t\t\t[queryParams]=\"{serachForAgent: agent?.agentName}\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{{agent[column.value]}} sec\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{{getSelection().length}} Agents selected\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t\n
\n\n\t
\n\t\tFailed to load Agents\n\t
\n
\n","import { Injectable } from '@angular/core';\nimport { Query } from '@datorama/akita';\nimport { AgentMassUpdateStore } from './agent-mass-update.store';\nimport {IAgentMassForm} from '../../api/agent.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class AgentMassUpdateQuery extends Query {\n\n constructor(protected store: AgentMassUpdateStore) {\n super(store);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { AgentMassUpdateStore } from './agent-mass-update.store';\nimport {IAgentMassForm} from '../../api/agent.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class AgentMassUpdateService {\n\n constructor(private agentMassUpdateStore: AgentMassUpdateStore) {\n }\n\n set(val: IAgentMassForm) {\n this.agentMassUpdateStore.update(() => val);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Store, StoreConfig } from '@datorama/akita';\nimport {IAgentMassForm} from '../../api/agent.interface';\n\nexport function createInitialState(): IAgentMassForm {\n return {\n status: '',\n // alertEnabled: '',\n requestIntervalSec: '',\n allowParallel: ''\n };\n}\n\n@Injectable({ providedIn: 'root' })\n@StoreConfig({ name: 'agent-mass-update' })\nexport class AgentMassUpdateStore extends Store {\n\n constructor() {\n super(createInitialState());\n }\n\n}\n\n","export * from './agent-mass-update.query';\nexport * from './agent-mass-update.store';\nexport * from './agent-mass-update.service';\n","import { Injectable } from '@angular/core';\nimport { QueryEntity } from '@datorama/akita';\nimport { AgentSyncsStore, AgentSyncsState } from './agent-syncs.store';\n\n@Injectable({ providedIn: 'root' })\nexport class AgentSyncsQuery extends QueryEntity {\n\n constructor(protected store: AgentSyncsStore) {\n super(store);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { AgentSyncsStore } from './agent-syncs.store';\nimport { IAgentSyncs } from '../../api/agent.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class AgentSyncsService {\n\n constructor(private agentSyncsStore: AgentSyncsStore) {\n }\n\n upsert(agentId: number, agent: IAgentSyncs) {\n this.agentSyncsStore.upsert(agentId, agent);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { EntityState, EntityStore, StoreConfig } from '@datorama/akita';\nimport { IAgentSyncs } from '../../api/agent.interface';\n\nexport interface AgentSyncsState extends EntityState {}\n\n@Injectable({ providedIn: 'root' })\n@StoreConfig({ name: 'agent-syncs', idKey: 'agentId' })\nexport class AgentSyncsStore extends EntityStore {\n\n constructor() {\n super();\n }\n\n}\n\n","export * from './agent-syncs.query';\nexport * from './agent-syncs.store';\nexport * from './agent-syncs.service';\n","import { Injectable } from '@angular/core';\nimport { AgentUiStore, AgentUiState } from './agent-ui.store';\nimport {BaseUiQuery} from '../../../../core/base-ui-state/base-ui-query';\n\n@Injectable({ providedIn: 'root' })\nexport class AgentUiQuery extends BaseUiQuery {\n constructor(protected store: AgentUiStore) {\n super(store);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AgentUiStore } from './agent-ui.store';\nimport { BaseUiService } from '../../../../core/base-ui-state/base-ui-service';\n\n@Injectable({ providedIn: 'root' })\nexport class AgentUiService extends BaseUiService {\n constructor(agentsUiStore: AgentUiStore) {\n super(agentsUiStore);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Store, StoreConfig } from '@datorama/akita';\nimport {BASE_UI_STATE, BaseUiStateInterface} from '../../../../core/base-ui-state/base-ui-state-interface';\n\n// tslint:disable-next-line:no-empty-interface\nexport interface AgentUiState extends BaseUiStateInterface {}\n\nexport function createInitialState(): AgentUiState {\n return JSON.parse(JSON.stringify(BASE_UI_STATE))\n}\n\n@Injectable({ providedIn: 'root' })\n@StoreConfig({\n name: 'agent-ui',\n})\nexport class AgentUiStore extends Store {\n\n constructor() {\n super(createInitialState());\n }\n\n}\n\n","export * from './agent-ui.query';\nexport * from './agent-ui.store';\nexport * from './agent-ui.service';\n","import { Injectable } from '@angular/core';\nimport { QueryEntity } from '@datorama/akita';\nimport { AgentStore, AgentState } from './agent.store';\n\n@Injectable({ providedIn: 'root' })\nexport class AgentQuery extends QueryEntity {\n\n constructor(protected store: AgentStore) {\n super(store);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AgentStore } from './agent.store';\nimport { IAgent } from '../../api/agent.interface';\nimport { UIError } from '../../../../shared/interfaces';\nimport { isArray, transaction } from '@datorama/akita';\n\n@Injectable({ providedIn: 'root' })\nexport class AgentService {\n\n constructor(\n private agentStore: AgentStore) {\n }\n\n set(agents: IAgent[]) {\n this.agentStore.set(agents);\n }\n\n @transaction()\n upsert(agent: IAgent | IAgent[]) {\n if (isArray(agent)) {\n this.agentStore.upsertMany(agent)\n } else {\n this.agentStore.upsert(agent.agentId, agent);\n }\n }\n\n update(agent: IAgent) {\n this.agentStore.update(agent.agentId, agent);\n }\n\n delete(agentIds) {\n this.agentStore.remove(agentIds);\n }\n\n setError(error: UIError) {\n this.agentStore.setError(error);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { EntityState, EntityStore, StoreConfig } from '@datorama/akita';\nimport {IAgent} from '../../api/agent.interface';\n\nexport interface AgentState extends EntityState {}\n\n@Injectable({ providedIn: 'root' })\n@StoreConfig({ name: 'agent', idKey: 'agentId' })\nexport class AgentStore extends EntityStore {\n constructor() {\n super();\n }\n\n}\n","export * from './agent.query';\nexport * from './agent.store';\nexport * from './agent.service';\n","import {Injectable} from '@angular/core';\nimport {HttpClient, HttpParams} from '@angular/common/http';\nimport {environment} from '../../../../environments/environment';\nimport {urlJoin} from '../../../shared/utils';\nimport {IDbConfig} from './db-config.interface';\nimport {Observable} from 'rxjs';\nimport {IFullServiceConfig} from '../../service-config/api/service-config.model';\nimport {HttpUrlEncoder} from '../../../core/classes/http-url-encoder';\n\n@Injectable({providedIn: 'root'})\nexport class DbConfigApiService {\n\n constructor(private http: HttpClient) {\n }\n\n private baseUrl = urlJoin(environment.baseUrl, 'system/config');\n\n checkDbConnection(dbConfig: IDbConfig): Observable {\n let params = new HttpParams({\n fromObject: {\n dbType: dbConfig.dbType.toString(),\n dbServer: dbConfig.dbServer,\n dbName: dbConfig.dbName,\n dbUser: dbConfig.dbUser,\n dbPassword: dbConfig.dbPassword,\n trustServerCertificate: dbConfig.trustServerCertificate.toString(),\n encryptedConnectionSql: dbConfig.encryptedConnectionSql.toString(),\n },\n encoder: new HttpUrlEncoder()\n });\n\n if (!!dbConfig.dbPort) {\n params = params.append('dbPort', dbConfig.dbPort.toString());\n }\n\n return this.http.get(`${this.baseUrl}/db/check`, {params});\n }\n\n getConfig(): Observable {\n return this.http.get(this.baseUrl);\n }\n\n updateConfig(dbConfig: IDbConfig): Observable {\n return this.http.patch(`${this.baseUrl}/db`, dbConfig);\n }\n\n upgradeDb(dbConfig: IDbConfig): Observable {\n const url = 'api/system/upgrade';\n\n return this.http.patch(url, dbConfig);\n }\n\n getAllDbNames(dbConfig: IDbConfig): Observable {\n return this.http.post(`${this.baseUrl}/db-names`, dbConfig);\n }\n}\n","\nexport interface IDbConfig {\n dbType: DatabaseType;\n dbServer: string;\n dbPort: number;\n dbName: string;\n dbUser: string;\n dbPassword: string;\n firebirdDbType?: number;\n getListForUpgrade?: boolean;\n trustServerCertificate: boolean;\n encryptedConnectionSql: boolean;\n}\n\nexport enum DatabaseType {\n MsSqlWindowsAuth = 1,\n MsSqlDbAuth = 2,\n MySql = 3,\n Firebird = 4\n}\n\nexport const DbConfigModel: IDbConfig = {\n dbType: null,\n dbServer: null,\n dbPort: null,\n dbName: null,\n dbUser: null,\n dbPassword: null,\n trustServerCertificate: null,\n encryptedConnectionSql: null,\n // firebirdDbType: null\n};\n","import {AfterViewChecked, ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport {KeyValue} from '@angular/common';\nimport {StringMap} from '@angular/compiler/src/compiler_facade_interface';\nimport {DbConfigFacade} from '../../db-config.facade';\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\nimport {IDbConfig} from '../../api/db-config.interface';\nimport {filter} from 'rxjs/operators';\nimport {MatDialog} from '@angular/material/dialog';\nimport {DbConnectionCheckDialogComponent} from '../db-connection-check-dialog/db-connection-check-dialog.component';\nimport {\n UnsavedChangesDialogComponent,\n UnsavedDialogResponse\n} from '../../../../shared/unsaved-changes-dialog/unsaved-changes-dialog.component';\nimport {DirtyCheckPlugin} from '@datorama/akita';\nimport {DbFormService} from '../../service/db-form.service';\nimport {merge} from 'rxjs';\n\n@UntilDestroy()\n@Component({\n selector: 'app-db-config-page',\n templateUrl: './db-config-page.component.html',\n styleUrls: ['./db-config-page.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbConfigPageComponent implements OnInit, AfterViewChecked {\n\n constructor(private dbConfigFacade: DbConfigFacade,\n private changeDetector: ChangeDetectorRef,\n private matDialog: MatDialog,\n private dbFormService: DbFormService) {\n }\n\n public infoText: StringMap = {};\n public readonly dbProviders: KeyValue[] = [\n {key: 'SQL Windows Authentication', value: 1},\n {key: 'SQL Server Authentication', value: 2},\n {key: 'MySQL', value: 3},\n {key: 'MariaDB', value: 5}\n ];\n\n public canRetrieveDbNames: boolean;\n public dbConfig: IDbConfig;\n public dbNamesFromServer: string[][] = [];\n public dbConfigFormGroup: FormGroup;\n public dbConfigDirtyCheck: DirtyCheckPlugin = this.dbConfigFacade.dbConfigFormDirtyCheck.setHead();\n\n private dbTypeValue: number;\n private shouldTriggerFormValueChanges = true;\n private shouldPatchFormGroup = true;\n private ignoreDeactivation: boolean;\n\n public ngOnInit(): void {\n this.initInfoText();\n this.dbConfigFormGroup = this.dbFormService.initForm();\n\n this.dbConfigFacade.loadDbConfig();\n\n this.dbConfigFacade.selectDbConfigError$()\n .pipe(untilDestroyed(this))\n .subscribe(err => console.log(err));\n\n this.dbConfigFacade.selectDbConfig$()\n .pipe(\n untilDestroyed(this),\n filter(config => config.hasOwnProperty('dbType'))\n ).subscribe(config => {\n this.dbConfig = config;\n\n if (this.shouldPatchFormGroup) {\n this.patchFormGroup(this.dbConfig);\n }\n\n this.changeDetector.detectChanges();\n });\n\n this.dbConfigFormGroup.valueChanges\n .pipe(\n untilDestroyed(this),\n filter(() => this.shouldTriggerFormValueChanges)\n )\n .subscribe((value: IDbConfig) => {\n if (this.dbTypeValue !== value.dbType) {\n this.dbFormService.changeFormValidators(this.dbConfigFormGroup);\n }\n\n this.dbFormService.patchEmbeddedFirebirdValues(this.dbConfigFormGroup);\n this.dbTypeValue = value.dbType;\n this.ignoreDeactivation = false;\n\n this.canRetrieveDbNames = this.dbFormService.canRetrieveDbNames(this.dbConfigFormGroup);\n this.dbConfigFacade.updateDbConfigStore(this.dbConfigFormGroup.value);\n });\n\n this.dbFormService.shouldTriggerFormValueChangesEmitter$\n .pipe(untilDestroyed(this))\n .subscribe(res => this.shouldTriggerFormValueChanges = res);\n\n merge(\n this.dbConfigFormGroup.controls.dbUser.valueChanges,\n this.dbConfigFormGroup.controls.dbPassword.valueChanges,\n this.dbConfigFormGroup.controls.dbServer.valueChanges\n )\n .pipe(\n untilDestroyed(this)\n )\n .subscribe(() => {\n this.dbNamesFromServer = [];\n\n if (this.dbConfigFormGroup.controls.dbType.value !== 4 && this.dbConfigFormGroup.controls.dbType.value !== 1) {\n this.dbConfigFormGroup.controls.dbName.setValue('', {emitEvent: false});\n }\n });\n }\n\n public ngAfterViewChecked(): void {\n this.changeDetector.detectChanges();\n }\n\n public onCancelClick(): void {\n for (const key in this.dbConfigFormGroup.controls) {\n if (this.dbConfigFormGroup.controls.hasOwnProperty(key)) {\n this.dbConfigFormGroup.get(key).markAsUntouched();\n }\n }\n\n this.dbConfigFacade.dbConfigFormDirtyCheck.reset();\n this.changeDetector.detectChanges();\n }\n\n public async onTestClick(): Promise {\n const dbConfig = this.dbFormService.getDbConfigWithOnlyRelevantProps(this.dbConfigFormGroup);\n\n await this.matDialog.open(DbConnectionCheckDialogComponent, {\n data: {...dbConfig},\n width: '480px',\n disableClose: true\n }).afterClosed().toPromise();\n }\n\n public async onSaveClick(): Promise {\n this.shouldPatchFormGroup = false;\n this.ignoreDeactivation = true;\n\n const dbConfig = this.dbFormService.getDbConfigWithOnlyRelevantProps(this.dbConfigFormGroup);\n\n this.dbConfigFacade.updateDbConfigStore(dbConfig);\n await this.dbConfigFacade.saveDbConfig();\n\n this.shouldPatchFormGroup = true;\n }\n\n public async canDeactivate(): Promise {\n if (!this.ignoreDeactivation) {\n if (this.dbConfigDirtyCheck.isDirty()) {\n const result: UnsavedDialogResponse = await this.matDialog.open(UnsavedChangesDialogComponent, {\n width: '430px',\n data: {\n screenName: 'Database configuration'\n }\n }).afterClosed().toPromise();\n\n switch (result) {\n case 'CLOSE':\n return false;\n case 'CANCEL':\n this.dbConfigDirtyCheck.reset();\n return true;\n default:\n this.dbConfigFacade.saveDbConfig();\n }\n }\n }\n\n return true;\n }\n\n public async getDbNamesForServer(): Promise {\n if (this.canRetrieveDbNames) {\n const dbConfig = this.dbFormService.getDbConfigWithOnlyRelevantProps(this.dbConfigFormGroup);\n\n if (!this.dbNamesFromServer[dbConfig.dbType]) {\n this.dbNamesFromServer[dbConfig.dbType] = await this.dbConfigFacade.getDbNamesFromServer(dbConfig);\n }\n }\n }\n\n private patchFormGroup(dbConfig: IDbConfig): void {\n this.shouldTriggerFormValueChanges = false;\n dbConfig.dbPassword = dbConfig.dbType === 4 && dbConfig.firebirdDbType === 1 ? 'masterkey' : dbConfig.dbPassword;\n\n for (const key in dbConfig) {\n if (dbConfig.hasOwnProperty(key)) {\n this.dbConfigFormGroup.controls[key].setValue(dbConfig[key], {emitEvent: false});\n }\n }\n\n const {dbType} = this.dbConfigFormGroup.controls;\n this.shouldTriggerFormValueChanges = true;\n\n if (this.dbTypeValue !== dbType.value) {\n this.dbFormService.changeFormValidators(this.dbConfigFormGroup);\n }\n\n this.dbTypeValue = dbType.value;\n this.canRetrieveDbNames = this.dbFormService.canRetrieveDbNames(this.dbConfigFormGroup);\n }\n\n private initInfoText(): void {\n this.infoText.dbConfiguration = 'Configure which database the Directory Synchronization Service (DSS) will work with.

By default, DSS is configured to work with an embedded Firebird DB. MySQL and SQL Server can also be used.';\n this.infoText.windowsAuthentication = 'Windows Authentication works for users that meet these prerequisites:

1. The DSS service is configured to log on with a user that has \"Local System account\" permissions

2. SQL Server is configured to grant access to that user via Windows Authentication.';\n }\n}\n","\n
\n
\n {{'DB Configuration'}} \n
\n\n \n
\n\n
\n
\n \n {{'DB provider'}}\n \n\n \n
\n
\n\n \n
\n
\n \n Please note:\n there are some prerequisites to work with Windows Authentication. To learn more, click the info icon.\n \n\n \n \n
\n\n
\n \n Server name\n \n\n \n \n
\n\n
\n
\n Encrypted Connection\n
\n \n \n
\n\n
\n
\n Trust Server Certificate\n
\n \n \n
\n\n
\n \n DB Name\n \n\n \n \n\n \n Will display only DSS compatible databases\n \n
\n
\n\n
\n
\n \n Server name\n \n\n \n \n
\n\n
\n \n User ID\n \n\n \n \n
\n\n
\n \n Password\n \n\n \n \n
\n\n
\n
\n Encrypted Connection\n
\n \n \n
\n\n
\n
\n Trust Server Certificate\n
\n \n \n
\n\n
\n \n DB Name\n \n\n \n \n\n \n Will display only DSS compatible databases\n \n
\n
\n\n
\n
\n \n Database file location\n \n\n
\n
\n \n \n
\n
\n
\n\n
\n \n Username\n \n\n \n \n
\n\n
\n \n Password\n \n\n \n \n
\n\n
\n \n
\n Embedded\n
\n \n
\n
\n\n
\n
\n \n Server name\n \n\n \n \n
\n\n
\n \n Port\n \n\n \n \n
\n\n
\n \n User ID\n \n\n \n \n
\n\n
\n \n Password\n \n\n \n \n
\n\n
\n \n DB Name\n \n\n \n \n\n \n Will display only DSS compatible databases\n \n
\n
\n
\n\n
\n \n Cancel\n \n \n Test\n \n \n Apply\n \n
\n
\n","import {Component, Inject, OnDestroy, OnInit} from '@angular/core';\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\nimport {DbConfigFacade} from '../../db-config.facade';\nimport {LoaderService} from '../../../../shared/loader/loader.service';\nimport {DatabaseType, IDbConfig} from '../../api/db-config.interface';\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\nimport {Subscription} from 'rxjs';\nimport {ConnectivityStatusEnum} from '../../../domain/api/models/connectivity-status.enum';\nimport {SnackbarService} from '../../../../shared/snackbar/snackbar-service/snackbar.service';\nimport {parseError} from '../../../../shared/utils';\n\n@UntilDestroy()\n@Component({\n selector: 'app-db-connection-check-dialog',\n templateUrl: './db-connection-check-dialog.component.html',\n styleUrls: ['./db-connection-check-dialog.component.scss']\n})\nexport class DbConnectionCheckDialogComponent implements OnInit, OnDestroy {\n\n constructor(private dialogRef: MatDialogRef,\n private dbConfigFacade: DbConfigFacade,\n private snackbarService: SnackbarService,\n private loaderService: LoaderService,\n @Inject(MAT_DIALOG_DATA) public data: IDbConfig) {\n\n }\n\n public dbConnectionSubscription: Subscription;\n public connectionStatus: ConnectivityStatusEnum;\n public selectedDbType: string;\n\n public ngOnInit(): void {\n this.loaderService.disableLoader();\n this.selectedDbType = DatabaseType[this.data.dbType];\n\n this.dbConfigFacade.selectDbConfigError$()\n .pipe(untilDestroyed(this))\n .subscribe(err => {\n if (!!err) {\n this.connectionStatus = ConnectivityStatusEnum.failure;\n }\n });\n\n this.dbConnectionSubscription = this.dbConfigFacade.checkDbConnection(this.data)\n .pipe(untilDestroyed(this))\n .subscribe(() => {\n this.connectionStatus = ConnectivityStatusEnum.success;\n });\n }\n\n public closeDialog(): void {\n this.dialogRef.close(this.connectionStatus);\n }\n\n public ngOnDestroy(): void {\n if (!!this.dbConnectionSubscription) {\n this.dbConnectionSubscription.unsubscribe();\n }\n\n this.dbConfigFacade.setStoreError(null);\n this.loaderService.enableLoader();\n }\n\n public dbTypeToString(dbType: string): string {\n switch (dbType) {\n case 'MsSqlWindowsAuth':\n return 'SQL Windows Authentication';\n case 'MsSqlDbAuth':\n return 'SQL Server Authentication';\n case 'MySql':\n return 'MySql';\n case 'Firebird':\n return 'Firebird';\n default:\n return '';\n }\n }\n}\n","\n
\n Database connection check in-process\n
\n
\n\n
\n
\n \n Please wait, the test might take up to 2 minutes.\n \n\n \n
\n
\n \n abort\n \n
\n
\n
\n\n\n\n
\n \n {{connectionStatus === 1 ? 'Test succeeded' : 'Test failed'}}\n \n
\n
\n\n
\n
\n \n {{'OpenLM successfully connected to ' + dbTypeToString(selectedDbType) + ' DB'}}\n \n\n \n \n {{'OpenLM failed to connect to ' + dbTypeToString(selectedDbType) + (selectedDbType === 'Firebird' ? ' DB' : ' DB on ' + data.dbServer)}}\n \n \n
\n
\n \n close\n \n
\n
\n
\n","import {AfterViewChecked, ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit} from '@angular/core';\nimport {StringMap} from '@angular/compiler/src/compiler_facade_interface';\nimport {KeyValue} from '@angular/common';\nimport {IDbConfig} from '../../api/db-config.interface';\nimport {FormGroup} from '@angular/forms';\nimport {DirtyCheckPlugin} from '@datorama/akita';\nimport {DbConfigFacade} from '../../db-config.facade';\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\nimport {filter} from 'rxjs/operators';\nimport {DbFormService} from '../../service/db-form.service';\nimport {\n UnsavedChangesDialogComponent,\n UnsavedDialogResponse\n} from '../../../../shared/unsaved-changes-dialog/unsaved-changes-dialog.component';\nimport {MatDialog} from '@angular/material/dialog';\nimport {merge} from 'rxjs';\n\n@UntilDestroy()\n@Component({\n selector: 'app-db-upgrade',\n templateUrl: './db-upgrade.component.html',\n styleUrls: ['./db-upgrade.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbUpgradeComponent implements OnInit, AfterViewChecked {\n\n constructor(\n private dbConfigFacade: DbConfigFacade,\n private changeDetector: ChangeDetectorRef,\n private dbFormService: DbFormService,\n private matDialog: MatDialog\n ) { }\n\n public infoText: StringMap = {};\n public readonly dbProviders: KeyValue[] = [\n {key: 'SQL Windows Authentication', value: 1},\n {key: 'SQL Server Authentication', value: 2},\n {key: 'MySQL', value: 3},\n {key: 'MariaDB', value: 5}\n ];\n\n public canRetrieveDbNames: boolean;\n public dbNamesFromServer: string[][] = [];\n public dbConfigFormGroup: FormGroup;\n public dbConfigDirtyCheck: DirtyCheckPlugin = this.dbConfigFacade.dbConfigFormDirtyCheck.setHead();\n\n private dbTypeValue: number;\n private shouldTriggerFormValueChanges = true;\n private ignoreDeactivation: boolean;\n\n public ngOnInit(): void {\n this.initInfoText();\n this.dbConfigFormGroup = this.dbFormService.initForm();\n\n this.dbConfigFacade.loadDbConfig();\n\n this.dbConfigFacade.selectDbConfig$()\n .pipe(\n untilDestroyed(this),\n filter(config => config.hasOwnProperty('dbType') && config.dbType !== this.dbTypeValue)\n ).subscribe(config => {\n this.shouldTriggerFormValueChanges = false;\n this.dbConfigFormGroup.get('dbType').setValue(config.dbType);\n this.shouldTriggerFormValueChanges = true;\n\n this.changeDetector.detectChanges();\n });\n\n this.dbConfigFacade.selectDbConfigError$()\n .pipe(untilDestroyed(this))\n .subscribe(err => console.log(err));\n\n this.dbConfigFormGroup.valueChanges\n .pipe(\n untilDestroyed(this),\n filter(() => this.shouldTriggerFormValueChanges)\n )\n .subscribe((value: IDbConfig) => {\n if (this.dbTypeValue !== value.dbType) {\n this.dbFormService.changeFormValidators(this.dbConfigFormGroup);\n }\n\n this.dbFormService.patchEmbeddedFirebirdValues(this.dbConfigFormGroup);\n this.dbTypeValue = value.dbType;\n this.ignoreDeactivation = false;\n\n this.canRetrieveDbNames = this.dbFormService.canRetrieveDbNames(this.dbConfigFormGroup);\n this.dbConfigFacade.updateDbConfigStore(this.dbConfigFormGroup.value);\n });\n\n this.dbFormService.shouldTriggerFormValueChangesEmitter$\n .pipe(untilDestroyed(this))\n .subscribe(res => this.shouldTriggerFormValueChanges = res);\n\n\n merge(\n this.dbConfigFormGroup.controls.dbUser.valueChanges,\n this.dbConfigFormGroup.controls.dbPassword.valueChanges,\n this.dbConfigFormGroup.controls.dbServer.valueChanges\n )\n .pipe(\n untilDestroyed(this)\n )\n .subscribe(() => {\n this.dbNamesFromServer = [];\n\n if (this.dbConfigFormGroup.controls.dbType.value !== 4) {\n this.dbConfigFormGroup.controls.dbName.setValue('', {emitEvent: false});\n }\n });\n }\n\n public ngAfterViewChecked(): void {\n this.changeDetector.detectChanges();\n }\n\n public onCancelClick(): void {\n this.dbConfigFormGroup.get('firebirdDbType').setValue(0);\n\n for (const key in this.dbConfigFormGroup.controls) {\n if (this.dbConfigFormGroup.controls.hasOwnProperty(key) && key !== 'dbType') {\n this.dbConfigFormGroup.get(key).setValue(undefined);\n this.dbConfigFormGroup.get(key).markAsUntouched();\n }\n }\n\n this.dbConfigFacade.dbConfigFormDirtyCheck.reset();\n this.changeDetector.detectChanges();\n }\n\n public async onSaveClick(): Promise {\n this.ignoreDeactivation = true;\n await this.dbConfigFacade.upgradeDb();\n }\n\n public async getDbNamesForServer(): Promise {\n if (this.canRetrieveDbNames) {\n const dbConfig = this.dbFormService.getDbConfigWithOnlyRelevantProps(this.dbConfigFormGroup);\n\n\n if (!this.dbNamesFromServer[dbConfig.dbType]) {\n this.dbNamesFromServer[dbConfig.dbType] = await this.dbConfigFacade.getDbNamesFromServer({...dbConfig, getListForUpgrade: true});\n }\n }\n }\n\n public async canDeactivate(): Promise {\n if (!this.ignoreDeactivation) {\n if (this.dbConfigDirtyCheck.isDirty()) {\n const result: UnsavedDialogResponse = await this.matDialog.open(UnsavedChangesDialogComponent, {\n width: '430px',\n data: {\n screenName: 'Database upgrade'\n }\n }).afterClosed().toPromise();\n\n switch (result) {\n case 'CLOSE':\n return false;\n case 'CANCEL':\n this.dbConfigDirtyCheck.reset();\n return true;\n default:\n this.dbConfigFacade.upgradeDb();\n }\n }\n }\n\n return true;\n }\n\n private initInfoText(): void {\n this.infoText.dbUpgrade = 'Upgrade the Directory Synchronization Service (DSS) database to the latest DB schema.

To upgrade the DB select your DB type and follow the wizard.';\n this.infoText.databaseFilePath = 'The location of the OpenLM database file.';\n this.infoText.windowsAuthentication = 'Windows Authentication is applicable only for users that meet the following requirements:

1. The OpenLM service is configured to log on with a logged-in user that has \"Local system account\" permissions

2. The MS-SQL server is configured to grant access to that user via Windows Authentication.

If these steps are not met, access to the OpenLM MS-SQL database will be denied.';\n }\n}\n","\n
\n
\n {{'DB Upgrade'}} \n
\n\n \n
\n\n
\n
\n \n {{'DB provider'}}\n \n\n \n
\n
\n\n \n
\n
\n \n Please note:\n Windows Authentication is applicable for users with prerequisites.\n \n\n \n \n
\n\n
\n \n Server name\n \n\n \n \n
\n\n
\n
\n Encrypted Connection\n
\n \n \n
\n\n
\n
\n Trust Server Certificate\n
\n \n \n
\n\n
\n \n DB Name\n \n\n \n \n\n \n Will display only DSS compatible databases\n \n
\n
\n\n
\n
\n \n Server name\n \n\n \n \n
\n\n
\n \n User ID\n \n\n \n \n
\n\n
\n \n Password\n \n\n \n \n
\n\n
\n
\n Encrypted Connection\n
\n \n \n
\n\n
\n
\n Trust Server Certificate\n
\n \n \n
\n\n
\n \n DB Name\n \n\n \n \n\n \n Will display only DSS compatible databases\n \n
\n
\n\n
\n
\n \n Database file location\n \n\n
\n
\n \n \n
\n\n \n \n
\n
\n\n
\n \n Username\n \n\n \n \n
\n\n
\n \n Password\n \n\n \n \n
\n\n
\n \n
\n Embedded\n
\n \n
\n
\n\n
\n
\n \n Server name\n \n\n \n \n
\n\n
\n \n Port\n \n\n \n \n
\n\n
\n \n User ID\n \n\n \n \n
\n\n
\n \n Password\n \n\n \n \n
\n\n
\n \n DB Name\n \n\n \n \n\n \n Will display only DSS compatible databases\n \n
\n
\n
\n\n
\n \n Cancel\n \n \n Upgrade\n \n
\n
\n","import {Injectable} from '@angular/core';\nimport {DbConfigApiService} from './api/db-config.api.service';\nimport {DbConfigQuery, DbConfigService} from './state/db-config';\nimport {SnackbarService} from '../../shared/snackbar/snackbar-service/snackbar.service';\nimport {DirtyCheckPlugin} from '@datorama/akita';\nimport {Observable, throwError} from 'rxjs';\nimport {DbConfigModel, IDbConfig} from './api/db-config.interface';\nimport {UIError} from '../../shared/interfaces';\nimport {catchError, map} from 'rxjs/operators';\nimport {alignToModel, parseError} from '../../shared/utils';\n\n@Injectable({providedIn: 'root'})\nexport class DbConfigFacade {\n\n constructor(\n private dbConfigApiService: DbConfigApiService,\n private dbConfigService: DbConfigService,\n private dbConfigQuery: DbConfigQuery,\n private snackbarService: SnackbarService\n ) {\n }\n\n public dbConfigFormDirtyCheck = new DirtyCheckPlugin(this.dbConfigQuery);\n\n public async loadDbConfig(): Promise {\n try {\n const fullConfig = await this.dbConfigApiService.getConfig().toPromise();\n fullConfig.dbPassword = '';\n\n this.dbConfigService.set(fullConfig);\n this.dbConfigFormDirtyCheck.setHead();\n } catch (err) {\n console.log(err);\n\n this.setStoreError({\n action: 'GET',\n type: null,\n details: {\n failedToLoadDbConfig: true\n }\n });\n\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Failed to load Db Config, ${parseError(err)}`\n });\n }\n }\n\n public selectDbConfig$(): Observable {\n return this.dbConfigQuery.select().pipe(map(config => alignToModel(config, DbConfigModel)));\n }\n\n public selectDbConfigError$(): Observable {\n return this.dbConfigQuery.selectError();\n }\n\n public checkDbConnection(dbConfig: IDbConfig): Observable {\n const request = this.createPayloadByDbType(dbConfig);\n\n return this.dbConfigApiService.checkDbConnection(request)\n .pipe(catchError(err => {\n this.setStoreError({\n action: 'GET',\n type: err.status,\n details: {\n errorMessage: parseError(err)\n }\n });\n return throwError(err);\n }))\n }\n\n public async saveDbConfig(): Promise {\n try {\n let newDbConfig = this.dbConfigQuery.getDbConfig();\n newDbConfig = alignToModel(newDbConfig, DbConfigModel);\n const request = this.createPayloadByDbType(newDbConfig);\n\n await this.dbConfigApiService.updateConfig(request).toPromise();\n this.dbConfigFormDirtyCheck.setHead();\n\n this.snackbarService.triggerSnackbar({\n message: `Database configuration updated successfully.`\n });\n } catch (err) {\n console.log(err);\n this.setStoreError({\n action: 'PATCH',\n type: err.status\n });\n\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Unable to update the Database config, details: ${parseError(err)}`,\n timeoutTime: 10000\n });\n }\n }\n\n public updateDbConfigStore(dbConfig: IDbConfig): void {\n this.dbConfigService.update(dbConfig);\n }\n\n public setStoreError(error: UIError): void {\n this.dbConfigService.setError(error);\n }\n\n public async upgradeDb(): Promise {\n try {\n let dbConfig = this.dbConfigQuery.getDbConfig();\n dbConfig = alignToModel(dbConfig, DbConfigModel);\n const request = this.createPayloadByDbType(dbConfig);\n\n await this.dbConfigApiService.upgradeDb(request).toPromise();\n this.snackbarService.triggerSnackbar({message: 'Successfully upgraded the Database.'});\n } catch (err) {\n console.log(err);\n this.setStoreError({\n action: 'PATCH',\n type: err.status\n });\n\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Unable to upgrade the Database, ${parseError(err)}`\n });\n }\n }\n\n public async getDbNamesFromServer(dbConfig: IDbConfig): Promise {\n try {\n const request = this.createPayloadByDbType(dbConfig);\n\n const result = await this.dbConfigApiService.getAllDbNames(request).toPromise();\n\n if (!result.length) {\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: 'Could not find any DSS compatible databases using the provided account.',\n timeoutTime: 10000\n })\n }\n\n return result;\n } catch (err) {\n this.setStoreError({\n action: 'POST',\n type: err.status\n });\n\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Unable to retrieve database names from specified server, ${parseError(err)}`\n });\n }\n }\n\n private createPayloadByDbType(newDbConfig: IDbConfig): IDbConfig {\n return newDbConfig.dbType !== 1 && newDbConfig.dbType !== 2 ? {\n ...newDbConfig,\n trustServerCertificate: false,\n encryptedConnectionSql: false\n } : newDbConfig\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DbConfigPageComponent } from './containers/db-config-page/db-config-page.component';\nimport { SharedModule } from '../../shared/shared.module';\nimport { OpenlmModule } from 'openlm';\nimport { DbConnectionCheckDialogComponent } from './containers/db-connection-check-dialog/db-connection-check-dialog.component';\nimport { DbUpgradeComponent } from './containers/db-upgrade/db-upgrade.component';\n\n\n\n@NgModule({\n declarations: [\n DbConfigPageComponent,\n DbConnectionCheckDialogComponent,\n DbUpgradeComponent\n ],\n imports: [\n CommonModule,\n SharedModule,\n OpenlmModule\n ]\n})\nexport class DbConfigModule { }\n","import {EventEmitter, Injectable} from '@angular/core';\nimport {FormBuilder, FormGroup, Validators} from '@angular/forms';\nimport {KeyValue} from '@angular/common';\nimport {IDbConfig} from '../api/db-config.interface';\n\n@Injectable({providedIn: 'root'})\nexport class DbFormService {\n\n constructor(private formBuilder: FormBuilder) {\n }\n\n public shouldTriggerFormValueChangesEmitter$: EventEmitter = new EventEmitter();\n\n private readonly requiredControlsBasedOnProvider: KeyValue[] = [\n {key: 1, value: ['dbName','trustServerCertificate','encryptedConnectionSql', 'dbServer']},\n {key: 2, value: ['dbServer','trustServerCertificate','encryptedConnectionSql', 'dbUser', 'dbPassword', 'dbName']},\n {key: 3, value: ['dbUser', 'dbPassword', 'dbServer', 'dbName', 'dbPort']},\n {key: 5, value: ['dbUser', 'dbPassword', 'dbServer', 'dbName', 'dbPort']},\n ];\n\n public changeFormValidators(dbConfigFormGroup: FormGroup): void {\n this.shouldTriggerFormValueChangesEmitter$.emit(false);\n\n const {dbType} = dbConfigFormGroup.controls;\n const requiredControls = this.requiredControlsBasedOnProvider.find(c => c.key === dbType.value).value;\n\n for (const key in dbConfigFormGroup.controls) {\n if (dbConfigFormGroup.controls.hasOwnProperty(key)) {\n dbConfigFormGroup.get(key).clearValidators();\n\n if (!requiredControls.some(k => k === key) && key !== 'dbType') {\n dbConfigFormGroup.get(key).setValue(undefined);\n }\n }\n }\n\n requiredControls.forEach(k => dbConfigFormGroup.controls[k].markAsUntouched());\n requiredControls.forEach(k => dbConfigFormGroup.controls[k].setValidators(Validators.required));\n Object.keys(dbConfigFormGroup.controls).forEach(k => dbConfigFormGroup.controls[k].updateValueAndValidity({emitEvent: false}));\n\n this.shouldTriggerFormValueChangesEmitter$.emit(true);\n }\n\n public initForm(): FormGroup {\n return this.formBuilder.group({\n dbType: [5],\n dbUser: [null, Validators.required],\n dbPassword: [null, Validators.required],\n dbServer: [null],\n dbName: [null, Validators.required],\n dbPort: [0],\n firebirdDbType: [0],\n trustServerCertificate: [false],\n encryptedConnectionSql: [false],\n });\n }\n\n public getDbConfigWithOnlyRelevantProps(dbConfigFormGroup: FormGroup): IDbConfig {\n const dbConfig = {\n dbType: dbConfigFormGroup.get('dbType').value,\n dbPassword: null,\n dbServer: null,\n dbUser: null,\n dbName: null,\n dbPort: null,\n trustServerCertificate: null,\n encryptedConnectionSql: null,\n // firebirdDbType: 1\n } as IDbConfig;\n\n for (const key in dbConfigFormGroup.controls) {\n if (dbConfigFormGroup.controls.hasOwnProperty(key) && !!dbConfigFormGroup.get(key).validator) {\n dbConfig[key] = dbConfigFormGroup.get(key).value;\n }\n }\n\n return dbConfig;\n }\n\n public canRetrieveDbNames(dbConfigFormGroup: FormGroup): boolean {\n const formGroupControls = dbConfigFormGroup.controls;\n\n return Object.keys(formGroupControls).filter(k => k !== 'dbName').every(k => formGroupControls[k].valid);\n }\n\n public patchEmbeddedFirebirdValues(dbConfigFormGroup: FormGroup): void {\n this.shouldTriggerFormValueChangesEmitter$.emit(false);\n const {dbType, firebirdDbType, dbUser, dbPassword} = dbConfigFormGroup.controls;\n\n firebirdDbType.setValue(firebirdDbType.value ? 1 : 0);\n\n if (dbType.value === 4 && !!firebirdDbType.value) {\n dbUser.setValue('sysdba');\n dbPassword.setValue('masterkey');\n }\n\n this.shouldTriggerFormValueChangesEmitter$.emit(true);\n }\n}\n","import {Injectable} from '@angular/core';\nimport {Query} from '@datorama/akita';\nimport {IDbConfig} from '../../api/db-config.interface';\nimport {DbConfigStore} from './db-config.store';\n\n@Injectable({providedIn: 'root'})\nexport class DbConfigQuery extends Query {\n \n constructor(protected store: DbConfigStore) {\n super(store);\n }\n \n getDbConfig(): IDbConfig {\n return this.store.getValue();\n }\n}\n","import {Injectable} from '@angular/core';\nimport {DbConfigStore} from './db-config.store';\nimport {DbConfigModel, IDbConfig} from '../../api/db-config.interface';\nimport {UIError} from '../../../../shared/interfaces';\nimport {IFullServiceConfig} from '../../../service-config/api/service-config.model';\nimport {alignToModel} from '../../../../shared/utils';\n\n@Injectable({providedIn: 'root'})\nexport class DbConfigService {\n\n constructor(private dbConfigStore: DbConfigStore) {\n }\n\n update(serviceConfig: IDbConfig): void {\n this.dbConfigStore.update(serviceConfig);\n }\n\n set(dbConfig: IFullServiceConfig): void {\n const alignedDbConfig: IDbConfig = alignToModel(dbConfig, DbConfigModel);\n\n this.dbConfigStore.update(alignedDbConfig);\n }\n\n setError(error: UIError): void {\n this.dbConfigStore.setError(error);\n }}\n","import {IDbConfig} from '../../api/db-config.interface';\nimport {Injectable} from '@angular/core';\nimport {Store, StoreConfig} from '@datorama/akita';\n\nexport function createInitialState(): IDbConfig {\n return {} as IDbConfig;\n}\n\n@Injectable({providedIn: 'root'})\n@StoreConfig({name: 'db-config'})\nexport class DbConfigStore extends Store {\n\n constructor() {\n super(createInitialState());\n }\n}\n","export * from './db-config.query';\nexport * from './db-config.service';\nexport * from './db-config.store';\n","import {HttpClient, HttpParams} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {Injectable} from '@angular/core';\nimport {IDomain, IDomainDetails, IDomainResponse} from './models/domain.interface';\nimport {UIState} from '../../../core/base-ui-state/base-ui-state-interface';\nimport {buildUiStateHttpParams} from '../../../core/base-ui-state/base-ui-utils';\nimport {urlJoin} from '../../../shared/utils';\nimport {environment} from '../../../../environments/environment';\nimport {HttpUrlEncoder} from '../../../core/classes/http-url-encoder';\n\n\n@Injectable()\nexport class DomainApiService {\n\n constructor(private http: HttpClient) {}\n\n private baseUrl = urlJoin(environment.baseUrl, 'admin/domains');\n\n getPaginated(uiState: UIState): Observable {\n\n // NOTE, this custom search functionality is temporary\n if (uiState.searchTerm && uiState.searchTerm.includes('agentID')) {\n const cloneUiState = {...uiState}\n delete cloneUiState.searchTerm;\n const options = {params: buildUiStateHttpParams(cloneUiState)}\n options.params = options.params.append('agentId', uiState.searchTerm.replace('agentID:', ''))\n return this.http.get(this.baseUrl, options);\n }\n return this.http.get(this.baseUrl, {params: buildUiStateHttpParams(uiState)});\n }\n\n getAll(): Observable {\n return this.http.get(`${this.baseUrl}/all`);\n }\n\n partialGetAll(): Observable> {\n return this.http.get>(urlJoin(environment.baseUrl, 'admin/dropdown-values/domain'));\n }\n\n get(domainId: number): Observable {\n return this.http.get(`${this.baseUrl}/${domainId}`);\n }\n\n post(domain: IDomain): Observable {\n return this.http.post(this.baseUrl, domain);\n }\n\n patch(domain: IDomain): Observable {\n return this.http.patch(this.baseUrl, domain);\n }\n\n delete(domainId: number): Observable {\n return this.http.delete(`${this.baseUrl}/${domainId}`);\n }\n\n massDelete(domainIds: number[]): Observable {\n const params = new HttpParams({\n fromObject: {\n domainIds: domainIds.map(d => d.toString())\n }\n });\n\n return this.http.delete(this.baseUrl, {params});\n }\n\n downloadDomainCsv(): Observable {\n const options: object = {\n responseType: 'text',\n observe: 'response'\n };\n\n return this.http.get(`${this.baseUrl}/export`, options);\n }\n\n checkDomainConnectivity(domain: IDomain, agentId: number): Observable {\n const apiEndpoint = '/api/admin/check/domain';\n const httpParams = new HttpParams({\n fromObject: {\n checkAgentId: agentId.toString(),\n domainName: domain.domainName,\n userName: domain.userName,\n password: domain.password,\n type: domain.type.toString(),\n ssl: `${domain.ssl}`,\n port: domain.port.toString(),\n clientId: domain.clientId,\n clientSecret: domain.clientSecret,\n tenantId: domain.tenantId\n },\n encoder: new HttpUrlEncoder()\n });\n\n return this.http.get(apiEndpoint, {params: httpParams});\n }\n}\n","\nexport enum ConnectivityStatusEnum {\n success = 1,\n failure = 2\n}\n","import {Component, OnInit} from '@angular/core';\nimport {FormBuilder, FormGroup, Validators} from '@angular/forms';\nimport {StringMap} from '@angular/compiler/src/compiler_facade_interface';\nimport {MatDialog} from '@angular/material/dialog';\nimport {DomainConnectivityDialogComponent} from '../domain-connectivity-dialog/domain-connectivity-dialog.component';\nimport {ConnectivityStatusEnum} from '../../api/models/connectivity-status.enum';\nimport {DomainFacade} from '../../domain.facade';\nimport {filter} from 'rxjs/operators';\nimport {IDomain, IDomainDetails} from '../../api/models/domain.interface';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {KeyValue} from '@angular/common';\nimport {\n UnsavedChangesDialogComponent,\n UnsavedDialogResponse\n} from '../../../../shared/unsaved-changes-dialog/unsaved-changes-dialog.component';\nimport {SnackbarService} from '../../../../shared/snackbar/snackbar-service/snackbar.service';\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\nimport {UIError} from '../../../../shared/interfaces';\n\n@UntilDestroy()\n@Component({\n selector: 'app-add-edit-domain-page',\n templateUrl: './add-edit-domain-page.component.html',\n styleUrls: ['./add-edit-domain-page.component.scss']\n})\nexport class AddEditDomainPageComponent implements OnInit {\n\n constructor(\n public domainFacade: DomainFacade,\n private formBuilder: FormBuilder,\n private matDialog: MatDialog,\n private activatedRoute: ActivatedRoute,\n private router: Router,\n private snackbarService: SnackbarService\n ) {\n }\n\n public formGroup: FormGroup;\n public domain: IDomainDetails;\n public domainId: number = null;\n\n private ignoreDeactivation = false;\n\n public connectivityTestResult: ConnectivityStatusEnum;\n\n public infoText: StringMap = {};\n\n public readonly directoryTypes: KeyValue[] = [\n {key: 'Active Directory / AWS', value: 0},\n {key: 'EDirectory', value: 1},\n {key: 'ApacheDs', value: 2},\n {key: 'AzureAd', value: 3},\n {key: 'Google CDS', value: 4},\n {key: 'Okta Directory', value: 5},\n {key: 'Nis Directory', value: 6}\n ];\n\n private domainErrors: boolean = null;\n\n public ngOnInit(): void {\n this.initInfoText();\n this.formGroup = this.buildFormGroup();\n\n this.domainId = Number(this.activatedRoute.snapshot.params.id) || null;\n\n this.domainFacade\n .selectDomainById(this.domainId)\n .pipe(untilDestroyed(this))\n .subscribe(value => {\n this.domain = value as IDomainDetails;\n this.patchFormGroup();\n })\n\n if (this.domainId) {\n this.domainFacade.loadDomainById(this.domainId);\n } else {\n this.formGroup.controls.port.patchValue(this.getDefaultPortValue());\n }\n\n this.domainFacade.selectStoreError$()\n .pipe(untilDestroyed(this))\n .subscribe((error: UIError) => {\n this.domainErrors = error &&\n (error.action === 'PATCH' || error.action === 'POST') &&\n error.details &&\n error.details.failedToSaveDomain\n });\n\n this.formGroup.valueChanges\n .pipe(\n untilDestroyed(this),\n filter(_ => !!this.domain))\n .subscribe(domain => {\n this.domainFacade.updateDomain({...domain, domainId: this.domain.domainId});\n });\n }\n\n public onBackClick(): void {\n this.router.navigateByUrl(window.localStorage.getItem('previousUrl'));\n }\n\n public onCancelClick() {\n if (this.domainId) {\n this.domainFacade.domainDirtyCheck.reset(this.domainId);\n } else {\n this.formGroup.reset();\n this.formGroup.controls.type.patchValue(1);\n this.formGroup.controls.port.patchValue(389);\n }\n }\n\n public setPortInputFieldValue(typeOfChange: 'SSL' | 'DIR_TYPE'): void {\n const defaultPort = this.getDefaultPortValue();\n const currentPortIsDefault = [22, 389, 636, 10389, 10636].includes(this.formGroup.controls.port.value);\n this.formGroup.controls.port.patchValue(defaultPort);\n if (!currentPortIsDefault) {\n const directoryType = this.directoryTypes[this.formGroup.controls.type.value].key;\n const ssl = this.formGroup.controls.ssl.value;\n\n if (this.formGroup.value.type !== 3) {\n this.snackbarService.triggerSnackbar({\n message: typeOfChange === 'SSL'\n ? `Please note: the default port for ${directoryType} ${ssl ? 'with' : 'without'} SSL is ${defaultPort}`\n : `Please note: the default port for ${directoryType} is ${defaultPort}`\n })\n }\n }\n }\n\n public async onConnectivityButtonClick(): Promise {\n const {\n type,\n domainName,\n port,\n ssl,\n userName,\n password,\n clientId,\n clientSecret,\n tenantId,\n } = this.formGroup.controls;\n\n let domainToCheck: IDomain;\n\n if (type.value === 5) {\n // okta is special case\n domainToCheck = {\n type: type.value,\n domainName: domainName.value,\n port: port.value,\n ssl: ssl.value,\n userName: userName.value,\n password: password.value,\n clientId: clientId.value,\n clientSecret: clientSecret.value,\n tenantId: tenantId.value\n } as IDomain;\n } else {\n domainToCheck = {\n type: type.value,\n domainName: domainName.value,\n port: port.value,\n ssl: ssl.value,\n userName: userName.value,\n password: password.value,\n clientId: clientId.value,\n clientSecret: clientSecret.value,\n tenantId: tenantId.value\n } as IDomain;\n }\n\n const dialog = await this.matDialog.open(\n DomainConnectivityDialogComponent,\n {\n data: {domainToCheck},\n width: '480px',\n disableClose: true\n })\n .afterClosed()\n .toPromise();\n\n this.connectivityTestResult = dialog || this.connectivityTestResult;\n }\n\n public async onSaveButtonClick(proceedToSync: boolean): Promise {\n await this.saveDomain();\n if (!this.domainErrors) {\n this.domainId\n ? this.router.navigate(['/', 'domains'])\n : this.router.navigate(proceedToSync ? ['/', 'syncs', 'add'] : ['/', 'domains'], {queryParams: {domainName: this.domain.domainName}});\n }\n }\n\n public async saveDomain() {\n this.ignoreDeactivation = true;\n if (this.domainId) {\n await this.domainFacade.saveUpdatedDomain(this.domainId);\n } else {\n let domainToSave: IDomain;\n\n const {\n type,\n domainName,\n port,\n ssl,\n userName,\n password,\n clientId,\n clientSecret,\n tenantId,\n } = this.formGroup.controls;\n\n if (type.value === 5) {\n domainToSave = {\n domainId: this.domainId,\n domainName: domainName.value.toString(),\n userName: userName.value.toString(),\n password: password.value.toString(),\n type: type.value,\n port: port.value,\n ssl: ssl.value,\n clientId: clientId.value,\n clientSecret: clientSecret.value,\n tenantId: tenantId.value\n } as IDomain;\n } else {\n domainToSave = {\n domainId: this.domainId,\n domainName: domainName.value.toString(),\n userName: userName.value.toString(),\n password: password.value.toString(),\n type: type.value,\n port: port.value,\n ssl: ssl.value,\n clientId: clientId.value,\n clientSecret: clientSecret.value,\n tenantId: tenantId.value\n } as IDomain;\n }\n\n await this.domainFacade.createDomain(domainToSave);\n }\n this.ignoreDeactivation = !this.domainErrors;\n }\n\n public shouldCancelButtonBeVisible(): boolean {\n return this.domainId\n ? this.domainFacade.domainDirtyCheck.isDirty(this.domainId, false)\n : this.formGroup.dirty\n }\n\n public shouldSaveButtonBeEnabled(): boolean {\n return this.domainId\n ? this.domainFacade.domainDirtyCheck.isDirty(this.domainId, false) && this.formGroup.valid\n : this.formGroup.valid;\n }\n\n private buildFormGroup(): FormGroup {\n return this.formBuilder.group({\n type: [0],\n domainName: ['', Validators.required],\n port: [undefined, Validators.required],\n ssl: [false],\n userName: ['', Validators.required],\n password: ['', Validators.required],\n clientId: [''],\n clientSecret: [''],\n tenantId: [''],\n }, {\n validators: this.domainFacade.getDomainFormValidators()\n });\n }\n\n private patchFormGroup(): void {\n if (this.domain.type === 5) {\n this.formGroup.patchValue({\n type: this.domain.type,\n domainName: this.domain.domainName,\n ssl: this.domain.ssl,\n userName: this.domain.userName,\n password: this.domain.password,\n port: this.domain.port,\n clientId: this.domain.clientId,\n clientSecret: this.domain.clientSecret,\n tenantId: this.domain.tenantId\n }, {emitEvent: false});\n } else {\n this.formGroup.patchValue({\n type: this.domain.type,\n domainName: this.domain.domainName,\n ssl: this.domain.ssl,\n userName: this.domain.userName,\n password: this.domain.password,\n port: this.domain.port,\n clientId: this.domain.clientId,\n clientSecret: this.domain.clientSecret,\n tenantId: this.domain.tenantId\n }, {emitEvent: false});\n }\n }\n\n public async canDeactivate(): Promise {\n const dirtyInEditMode = this.domainId && this.domainFacade.domainDirtyCheck.isDirty(this.domainId, false);\n const dirtyInCreateMode = !this.domainId && this.formGroup.dirty;\n\n if (!this.ignoreDeactivation && (dirtyInCreateMode || dirtyInEditMode)) {\n const result: UnsavedDialogResponse = await this.matDialog.open(UnsavedChangesDialogComponent, {\n width: '430px',\n data: {\n screenName: this.domainId ? 'Edit Domain' : 'Add Domain'\n }\n }).afterClosed().toPromise();\n switch (result) {\n case 'CLOSE':\n return false;\n case 'CANCEL':\n if (this.domainId) {\n this.domainFacade.domainDirtyCheck.reset(this.domainId)\n }\n return true;\n default:\n Object.keys(this.formGroup.controls).forEach(control => this.formGroup.controls[control].markAsTouched());\n if (this.formGroup.valid) {\n await this.saveDomain();\n return !this.domainErrors;\n } else {\n return false;\n }\n }\n }\n return new Promise(r => r(true));\n }\n\n private getDefaultPortValue(): number {\n const {ssl, type, port} = this.formGroup.controls;\n\n switch (true) {\n case ssl.value === false && (type.value === 0 || type.value === 1):\n return 389;\n\n case ssl.value === true && (type.value === 0 || type.value === 1):\n return 636;\n\n case ssl.value === false && type.value === 2:\n return 10389;\n\n case ssl.value === true && type.value === 2:\n return 10636;\n\n case type.value === 6:\n return 22;\n\n default:\n return port.value;\n }\n }\n\n private initInfoText(): void {\n // tslint:disable\n this.infoText.addEditDomain = 'Before adding a domain sync, you must first configure the domain you would like to sync with.
The domain name has to be unique.

After entering domain details, the save buttons will become active and you will be able to choose between:

1. Save: which saves the domain configuration.

2. Save Domain & Add Sync: which saves the domain configuration and opens the Sync Manager\\'s Add Sync window.

You can also click on Check domain connectivity to make sure the domain configuration is valid before saving.';\n this.infoText.failedToValidate = 'Possible causes:

• Incorrect username or password

• Incompatible domain/directory type

• Network connectivity issues';\n // tslint: enable\n }\n}\n","\n
\n \n \n
\n {{!domainId ? 'Add Domain' : 'Edit Domain'}}\n
\n \n
\n\n
\n
\n
\n
\n Directory type\n
\n \n \n
\n
\n\n \n
\n
\n
\n Domain name\n
\n \n \n
\n
\n
\n\n \n\n \n
\n
\n
\n Client Id\n
\n \n \n
\n
\n\n
\n
\n
\n Client Secret\n
\n \n \n
\n
\n\n
\n
\n
\n Tenant ID\n
\n \n \n
\n
\n
\n\n \n
\n
\n
\n Client Id\n
\n \n \n
\n
\n\n
\n
\n
\n Username\n
\n \n \n
\n
\n\n
\n\n \n
\n
\n
\n Okta Domain\n
\n \n \n
\n
\n\n
\n
\n
\n Client ID\n
\n \n \n
\n
\n\n
\n
\n
\n Client Private Key\n
\n \n \n
\n
\n
\n\n \n
\n
\n
\n Port\n
\n \n \n
\n
\n\n
\n
\n SSL\n
\n \n \n
\n\n
\n
\n
\n Username\n
\n \n \n
\n
\n\n
\n
\n
\n Password\n
\n \n \n
\n
\n
\n
\n\n
\n
\n
\n
\n \n Check domain connectivity\n \n
\n\n \n
\n Domain successfully validated\n
\n
\n\n \n
\n Failed to validate domain\n \n \n
\n
\n
\n\n
\n \n Cancel\n \n\n \n Save\n \n\n \n Save Domain & Add Sync\n \n
\n
\n\n
\n
\n
\n","import {Component, Inject, OnDestroy, OnInit} from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport {List} from 'immutable';\nimport {IAgent} from '../../../agent/api/agent.interface';\nimport {IDomain} from '../../api/models/domain.interface';\nimport {DomainFacade} from '../../domain.facade';\nimport {LoaderService} from '../../../../shared/loader/loader.service';\nimport {ConnectivityStatusEnum} from '../../api/models/connectivity-status.enum';\nimport {Subscription} from 'rxjs';\nimport { AgentFacade } from '../../../agent/agent.facade';\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\n\n@UntilDestroy()\n@Component({\n selector: 'app-domain-connectivity-dialog',\n templateUrl: './domain-connectivity-dialog.component.html',\n styleUrls: ['./domain-connectivity-dialog.component.scss']\n})\nexport class DomainConnectivityDialogComponent implements OnInit, OnDestroy {\n\n constructor(\n private dialogRef: MatDialogRef,\n private domainFacade: DomainFacade,\n private loaderService: LoaderService,\n private agentFacade: AgentFacade,\n @Inject(MAT_DIALOG_DATA) private data: { agents: List, domainToCheck: IDomain }\n ) {\n }\n\n public isAgentSelected: boolean;\n public agents: List = List();\n public selectedAgentId: number;\n private domainConnectivitySubscription: Subscription;\n\n public async ngOnInit(): Promise {\n const allAgents = await this.agentFacade.getAllAgents();\n this.agents = List(allAgents.filter(a => a.status === 2));\n\n this.domainFacade.selectStoreError$()\n .pipe(untilDestroyed(this))\n .subscribe(res => {\n if (!!res) {\n this.dialogRef.close(ConnectivityStatusEnum.failure);\n }\n });\n }\n\n public closeDialog(): void {\n this.dialogRef.close();\n }\n\n public async proceedToNextDialog(): Promise {\n this.loaderService.disableLoader();\n this.isAgentSelected = true;\n\n this.domainConnectivitySubscription = this.domainFacade.checkDomainConnectivity(this.data.domainToCheck, this.selectedAgentId)\n .subscribe(hasConnected => {\n hasConnected\n ? this.dialogRef.close(ConnectivityStatusEnum.success)\n : this.dialogRef.close(ConnectivityStatusEnum.failure);\n });\n\n this.domainFacade.setStoreError(null);\n }\n\n public ngOnDestroy(): void {\n if (this.domainConnectivitySubscription) {\n this.domainConnectivitySubscription.unsubscribe();\n }\n this.domainFacade.setStoreError(null);\n this.loaderService.enableLoader();\n }\n}\n","\n
\n Select Agent\n
\n
\n\n
\n
\n
\n \n The connection between the OpenLM Directory Synchronization Service and the domain is facilitated by an Agent.\n \n

\n Please select the Agent you would like to use for this test.\n
\n\n \n \n
\n\n\n
\n \n\n \n
\n
\n
\n\n\n
\n Domain connectivity test in progress.\n
\n
\n\n
\n
\n \n Please wait. This might take up to 2 minutes.\n \n \n
\n
\n \n abort\n \n
\n
\n
\n\n","import {Component, Inject, OnDestroy, OnInit} from '@angular/core';\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\nimport {DomainFacade} from '../../domain.facade';\nimport {TableColumn} from 'openlm';\nimport {untilComponentDestroyed} from '../../../../shared/utils';\nimport {UIError} from '../../../../shared/interfaces';\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\n\n@UntilDestroy()\n@Component({\n selector: 'app-domain-delete-dialog',\n templateUrl: './domain-delete-dialog.component.html',\n styleUrls: ['./domain-delete-dialog.component.scss']\n})\nexport class DomainDeleteDialogComponent implements OnInit, OnDestroy {\n\n constructor(\n private domainFacade: DomainFacade,\n private dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any\n ) { }\n\n public displayedColumns: TableColumn[] = [\n {\n label: 'Domain Name',\n value: 'domainName',\n visible: true\n }\n ];\n public shouldDeleteSyncs: boolean;\n public hasRunningJobs: boolean;\n public hasSyncs: boolean;\n public domainsAndSyncsWithRunningJobs: { domainName: string, syncName: string }[];\n\n public ngOnInit(): void {\n this.data = this.domainFacade.getDomainsById(this.data);\n this.domainFacade.selectStoreError$()\n .pipe(untilDestroyed(this))\n .subscribe((res: UIError) => {\n if (!!res) {\n this.hasRunningJobs = true;\n this.domainsAndSyncsWithRunningJobs = this.setNewTableData(res.details.domainsWithJobs);\n\n this.displayedColumns = [\n {\n label: 'Domain',\n value: 'domainName',\n visible: true\n },\n {\n label: 'Sync',\n value: 'syncName',\n visible: true\n }\n ];\n }\n });\n\n if (this.data.some(d => !!d.syncCount)) {\n this.hasSyncs = true;\n this.displayedColumns.push(\n {\n label: 'Syncs',\n value: 'syncCount',\n visible: true\n });\n }\n }\n\n public onCancelButtonClick(): void {\n this.dialogRef.close();\n }\n\n public async onDeleteButtonClick(): Promise {\n this.data.length > 1 ? await this.domainFacade.massDeleteDomains(this.data) : await this.domainFacade.deleteDomain(this.data[0]);\n\n if (!this.hasRunningJobs) {\n this.dialogRef.close(true);\n }\n }\n\n private setNewTableData(domainsWithJobs: {domainId: number, syncName: string}[]): { domainName: string, syncName: string }[] {\n return this.data.filter(d => domainsWithJobs.some(e => e.domainId === d.domainId)).map(d => {\n const errorDomainSyncName = domainsWithJobs.find(e => e.domainId === d.domainId).syncName;\n\n if (!!errorDomainSyncName) {\n return {\n domainName: d.domainName,\n syncName: errorDomainSyncName\n };\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.domainFacade.setStoreError(null);\n }\n}\n","
\n\n
\n Delete {{data.length > 1 ? 'Domains' : 'Domain'}}\n
\n
\n\n
\n
\n \n Are you sure you would like to delete the selected {{data.length > 1 ? 'domains' : 'domain'}}?\n \n
\n One or more domains are connected to syncs.\n
\n
\n \n \n \n \n \n {{column.label}}\n \n \n \n \n \n \n \n \n {{!!el[column.value] ? el[column.value] : ''}}\n \n \n \n \n \n
\n\n 1\">\n
\n \n \n Note: There are sync definitions connected to the selected domain. Checking the box will delete them as well.\n \n \n
\n
\n
\n\n\n
\n \n 1 && !shouldDeleteSyncs\"\n class=\"btn warn w-50\">\n DELETE\n \n
\n
\n
\n\n\n
\n
\n Delete {{data.length > 1 ? 'Domains' : 'Domain'}}\n
\n
\n
\n
\n
\n \n Cannot delete domain.\n One or more syncs connected to it are currently in progress.\n \n \n To solve this, disable the associated syncs and try again.\n \n
\n
\n \n \n \n \n \n {{column.label}}\n \n \n \n \n \n \n \n \n {{el[column.value]}}\n \n \n \n \n \n
\n
\n
\n \n
\n
\n
\n
\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n OnInit,\n ViewChild\n} from '@angular/core';\nimport {DomainFacade} from '../../domain.facade';\nimport {MatDialog} from '@angular/material/dialog';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {LayoutFacadeService} from '../../../../layout/layout-facade.service';\nimport {TableColumn, TableComponent} from 'openlm';\nimport {downloadFile} from '../../../../shared/utils';\nimport {IDomain, IDomainDetails} from '../../api/models/domain.interface';\nimport {List} from 'immutable';\nimport {StringMap} from '@angular/compiler/src/compiler_facade_interface';\nimport {DomainDeleteDialogComponent} from '../domain-delete-dialog/domain-delete-dialog.component';\nimport {DomainUiQuery, DomainUiService} from '../../state/domain-ui';\nimport {combineLatest} from 'rxjs';\nimport { filter, startWith } from 'rxjs/operators';\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\nimport {getSelection, areAllSelected} from '../../../../core/base-ui-state/base-ui-utils';\nimport {BaseUI} from '../../../../core/base-ui-state/base-ui-state-interface';\nimport { AppFacade } from '../../../../app.facade';\n\n@UntilDestroy()\n@Component({\n selector: 'app-domain-page',\n templateUrl: './domain-page.component.html',\n styleUrls: ['./domain-page.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DomainPageComponent implements OnInit, BaseUI {\n\n constructor(\n private dialog: MatDialog,\n private router: Router,\n private route: ActivatedRoute,\n public layoutFacade: LayoutFacadeService,\n public domainFacade: DomainFacade,\n private changeDetector: ChangeDetectorRef,\n public domainUiQuery: DomainUiQuery,\n public domainUiService: DomainUiService,\n private cd: ChangeDetectorRef,\n public appFacade: AppFacade,\n ) {\n }\n\n public searchTerm: string = null;\n public columns: TableColumn[];\n public domains: List;\n public infoTexts: StringMap = {};\n\n @ViewChild(TableComponent, { read: ElementRef }) table;\n\n public startFromElementIndex: number = null;\n public searchTermToHighlight: string = null;\n\n public failedToLoadDomains = false;\n\n public ngOnInit(): void {\n this.initInfoTexts();\n\n this.route.queryParams\n .pipe(untilDestroyed(this))\n .subscribe(params => {\n if (params.searchForAgentId) {\n this.domainUiService.setSearchTerm(`agentID:${params.searchForAgentId}`);\n } else if (params.searchForDomainName) {\n this.domainUiService.setSearchTerm(decodeURI(params.searchForDomainName));\n } else {\n this.domainUiService.setSearchTerm(null);\n }\n })\n\n this.domainUiQuery.selectPaginationStartFrom$\n .pipe(untilDestroyed(this))\n .subscribe(value => {\n this.startFromElementIndex = value && value.indexOfElement;\n });\n\n combineLatest([\n this.domainUiQuery.selectPagination$.pipe(startWith(this.domainUiQuery.pagination)),\n this.domainUiQuery.selectSort$,\n this.domainUiQuery.selectSearchTerm$,\n this.domainUiQuery.selectTableColumns$\n .pipe(filter(value => {\n if (!value) {\n this.domainUiService.setTableColumns(this.getDefaultColumns())\n return false;\n }\n return true;\n }))\n ]).pipe(untilDestroyed(this))\n .subscribe(async ([pagination, sort, searchTerm, columns]) => {\n // NOTE, temporary\n if (!searchTerm) {\n this.router.navigateByUrl('/domains');\n }\n this.columns = columns;\n await this.domainFacade.loadPaginatedDomains({pagination, sort, searchTerm});\n this.tryToFocusElement();\n this.searchTermToHighlight = searchTerm;\n this.cd.detectChanges();\n });\n\n this.domainFacade.selectAllDomains$()\n .pipe\n (untilDestroyed(this))\n .subscribe(domains => {\n this.domains = List(domains);\n this.changeDetector.detectChanges();\n });\n\n this.domainFacade.selectStoreError$()\n .pipe(untilDestroyed(this))\n .subscribe(error => {\n this.failedToLoadDomains = error && error.details && error.details.failedToLoadDomains;\n this.cd.detectChanges();\n })\n }\n\n public onRowClick(event: MouseEvent, domain: IDomainDetails): void {\n if (event.detail === 2) {\n this.navigateToAddEditDomain(domain.domainId);\n }\n }\n\n public async openDeleteDialog(): Promise {\n if (await this.appFacade.checkForDssConfig()) {\n const dialog = await this.dialog.open(DomainDeleteDialogComponent, {\n data: this.getSelection(),\n width: '510px',\n maxHeight: '670px',\n panelClass: 'scroll'\n }).afterClosed().toPromise();\n\n if (dialog) {\n this.changeDetector.detectChanges();\n }\n }\n }\n\n public navigateToAddEditDomain(id?: number): void {\n this.router.navigate(['/', 'domains', `${!!id ? id : 'add'}`]);\n }\n\n public async exportClicked(): Promise {\n downloadFile(await this.domainFacade.downloadDomainCsv());\n }\n\n public areAllSelected(): boolean {\n return areAllSelected(this.domains, this.domainUiQuery.selected, 'domainId')\n }\n\n public getSelection(): number[] {\n return getSelection(this.domains, this.domainUiQuery.selected, 'domainId')\n }\n\n public tryToFocusElement(): void {\n if (this.startFromElementIndex !== null) {\n this.table.nativeElement.querySelector('tbody').children[this.startFromElementIndex].focus();\n this.startFromElementIndex = null;\n this.domainUiService.resetPaginationStartFrom();\n }\n }\n\n public masterToggle(): void {\n this.areAllSelected()\n ? this.domainUiService.removeSelected(this.domains.map(domain => domain.domainId).toArray())\n : this.domainUiService.addSelected(this.domains.map(domain => domain.domainId).toArray())\n }\n\n public getDefaultColumns(): TableColumn[] | any[] {\n return [\n {\n label: 'Domain Name',\n value: 'domainName',\n disableVisibilityChange: true,\n visible: true,\n sortTooltip: 'Sort by Domain Name',\n },\n {\n label: 'Directory Type',\n value: 'type',\n disableVisibilityChange: true,\n visible: true,\n sortTooltip: 'Sort by Directory Type',\n },\n {\n label: 'SSL',\n value: 'ssl',\n visible: true,\n sortTooltip: 'Sort by SSL flag',\n },\n {\n label: 'Agents',\n value: 'agentCount',\n visible: true,\n sortTooltip: 'Sort by the number of Agents',\n },\n {\n label: 'Syncs',\n value: 'syncCount',\n visible: true,\n sortTooltip: 'Sort by the number of Syncs',\n },\n {\n label: 'Last Connection On',\n value: 'recentSyncUtc',\n visible: true,\n sortTooltip: 'Sort by Last Connection On',\n }\n ]\n }\n\n private initInfoTexts(): void {\n // tslint:disable-next-line:max-line-length\n this.infoTexts.domainManager = `On this screen you can configure the directories you would like OpenLM to sync with.

Domain Name: The name of the directory. The domain name must be unique.

Directory Type: Indicates the directory type. Can be either Active Directory, eDirectory or ApacheDS.

SSL: Shows whether the connection to the synced directory uses SSL or not.

Agents: Shows the number of Directory Synchronization Agents (DSA) configured to work with a particular domain.

Syncs: Shows the number of syncs configured to run on the domain.

Remove: Delete the domain from the Domain Manager.`;\n }\n}\n","\n\n \n
\n Domain Manager\n \n
\n \n \n \n
\n \n \n Add Domain\n \n \n \n Delete\n \n
\n
\n \n \n
\n \n
\n \n\n \n \n \n \n \n \n \n \n {{column.label}}\n \n \n \n \n \n \n \n\n \n \n \n \n No results found\n \n \n \n \n \n \n \n \n \n
\n \n \n\n \n 0\"\n [innerHTML]=\"domain[column.value] || '' | highlight: searchTermToHighlight\"\n [routerLink]=\"['/syncs']\"\n [queryParams]=\"{searchForDomain: domain.domainName}\"\n >\n \n \n\n \n 0\"\n [innerHTML]=\"domain[column.value] || '' | highlight: searchTermToHighlight\"\n [routerLink]=\"['/agents']\"\n [queryParams]=\"{searchForDomainId: domain.domainId}\"\n >\n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n\n \n \n
\n
\n {{getSelection().length}} Domain selected\n
\n \n \n
\n
\n \n
No results found
\n\n \n\n\n
\n Failed to load Domains\n
\n
\n\n","import {DomainService, DomainQuery, DomainStore} from './state';\nimport {DomainApiService} from './api/domain.api.service';\nimport {Injectable} from '@angular/core';\nimport { filterBy, parseError } from '../../shared/utils';\nimport {Observable, throwError} from 'rxjs';\nimport { IDomain, IDomainDetails, IDomainResponse } from './api/models/domain.interface';\nimport {SnackbarService} from '../../shared/snackbar/snackbar-service/snackbar.service';\nimport {EntityDirtyCheckPlugin, guid} from '@datorama/akita';\nimport {catchError, filter, tap} from 'rxjs/operators';\nimport {UIError} from '../../shared/interfaces';\nimport {DomainUiQuery, DomainUiService} from './state/domain-ui';\nimport {UIState} from '../../core/base-ui-state/base-ui-state-interface';\nimport {FormGroup} from '@angular/forms';\n\n@Injectable()\nexport class DomainFacade {\n\n constructor(\n private domainApiService: DomainApiService,\n private domainService: DomainService,\n private domainQuery: DomainQuery,\n private snackbarService: SnackbarService,\n private domainUiService: DomainUiService,\n private domainUiQuery: DomainUiQuery,\n private domainStore: DomainStore\n ) {\n }\n\n public domainDirtyCheck = new EntityDirtyCheckPlugin(this.domainQuery).setHead();\n public activeEntity$: Observable = this.domainQuery.selectActive()\n .pipe(\n filter(active => !!active)\n );\n\n public domainsForSyncForm$: Observable = this.domainQuery.select(q => q.domainsForSyncForm)\n\n public async loadPaginatedDomains(uiState: UIState = null): Promise {\n try {\n uiState = uiState || {\n pagination: this.domainUiQuery.pagination,\n sort: this.domainUiQuery.sortState,\n searchTerm: this.domainUiQuery.searchTerm\n };\n uiState['excludedColumns'] = this.domainUiQuery.tableColumns.filter(col => !col.visible).map(col => col.value);\n uiState['excludedColumns'].push('userName')\n const result = await this.domainApiService.getPaginated(uiState).toPromise() as unknown as IDomainResponse;\n this.domainUiService.setPaginationFromResponse(result);\n this.domainService.set(result.items);\n this.domainService.setError(null);\n } catch (e) {\n console.log(e);\n this.domainService.setError({\n action: 'GET',\n type: 400,\n details: {\n failedToLoadDomains: true\n }\n });\n this.snackbarService.triggerSnackbar({\n isError: true, message: `Failed to load domains, ${parseError(e)}`\n })\n }\n }\n\n public async partialGetAllDomains(): Promise> {\n let domains = [];\n try {\n domains = await this.domainApiService.partialGetAll().toPromise();\n this.domainStore.update({\n domainsForSyncForm: domains,\n });\n } catch (e) {\n console.log(e);\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Failed to load domains, ${parseError(e)}`\n });\n }\n return domains;\n }\n\n public async getAllDomains(): Promise {\n let domains = [];\n\n try {\n domains = await this.domainApiService.getAll().toPromise();\n } catch (err) {\n console.log(err);\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Failed to load domains, ${parseError(err)}`\n });\n }\n\n return domains;\n }\n\n public selectAllDomains$(searchTerm?: string): Observable {\n return this.domainQuery.selectAll({\n filterBy: filterBy(searchTerm)\n }) as Observable;\n }\n\n public async loadDomainById(id: number, options?: {setAsActiveEntity?: boolean}): Promise {\n try {\n const domain = await this.domainApiService.get(id).toPromise() as IDomain;\n domain.password = domain.password || '';\n this.domainService.upsert(id, domain);\n this.domainDirtyCheck.setHead();\n\n if (options?.setAsActiveEntity) {\n this.domainService.setActive(id);\n }\n } catch (e) {\n console.log(e);\n // TODO: handle 404 not found domain\n this.snackbarService.triggerSnackbar({\n isError: true, message: `Failed to load domain with id ${id}, ${parseError(e)}`\n })\n }\n }\n\n public selectDomainById(id: number): Observable {\n return this.domainQuery.selectEntity(id)\n .pipe(\n filter(v => !!v)\n );\n }\n\n public getDomainById(domainId: number): IDomainDetails {\n return this.domainQuery.getEntity(domainId) as IDomainDetails;\n }\n\n public getDomainsById(ids: number[]): IDomain[] {\n return this.domainQuery.getAll({filterBy: domain => ids.includes(domain.domainId)});\n }\n\n public async createDomain(value: IDomain): Promise {\n try {\n value = this.getUpdatedDomainForSaving(value);\n await this.domainApiService.post(value).toPromise();\n this.setStoreError(null);\n this.domainService.add(value);\n this.snackbarService.triggerSnackbar({message: 'Domain added successfully'});\n } catch (e) {\n console.log(e);\n this.setStoreError({\n action: 'PATCH',\n type: e.status,\n details: {\n failedToSaveDomain: true,\n }\n });\n this.snackbarService.triggerSnackbar({isError: true, message: `Unable to add the domain, ${parseError(e)}`});\n }\n }\n\n public updateDomain(domain: Partial, domainId?: number): void {\n this.domainService.update(domain, domainId);\n }\n\n public async saveUpdatedDomain(domainId: number): Promise {\n const domain = this.domainQuery.getEntity(domainId);\n try {\n await this.domainApiService.patch(this.getUpdatedDomainForSaving(domain)).toPromise();\n this.setStoreError(null);\n this.snackbarService.triggerSnackbar({message: 'Successfully updated the Domain'});\n } catch (e) {\n console.log(e);\n this.setStoreError({\n action: 'PATCH',\n type: e.status,\n details: {\n failedToSaveDomain: true,\n }\n });\n this.snackbarService.triggerSnackbar(\n {isError: true, message: `Failed to delete domain, details: ${parseError(e)}`}\n );\n }\n }\n\n public async deleteDomain(domain: IDomainDetails): Promise {\n try {\n await this.domainApiService.delete(domain.domainId).toPromise();\n\n const {domainsForSyncForm} = this.domainStore.getValue();\n\n if(!!domainsForSyncForm) {\n this.domainStore.update({\n domainsForSyncForm: domainsForSyncForm.filter(d => domain.domainId !== d.domainId)\n });\n }\n this.domainService.delete(domain.domainId);\n this.snackbarService.triggerSnackbar(\n {message: 'The selected domain was deleted successfully.', timeoutTime: 5000});\n this.loadPaginatedDomains();\n } catch (e) {\n console.log(e);\n if (e.status === 409) {\n this.setStoreError({\n action: 'DELETE',\n type: e.status,\n details: {\n domainsWithJobs: e.error\n }\n });\n }\n\n this.snackbarService.triggerSnackbar(\n {isError: true, message: `Failed to delete domain, details: ${parseError(e)}`, timeoutTime: 5000});\n }\n }\n\n public async massDeleteDomains(domains: IDomainDetails[]): Promise {\n try {\n const domainIds = domains.map(d => d.domainId);\n\n await this.domainApiService.massDelete(domainIds).toPromise();\n \n const {domainsForSyncForm} = this.domainStore.getValue();\n\n if(!!domainsForSyncForm) {\n this.domainStore.update({\n domainsForSyncForm: domainsForSyncForm.filter(d => !domainIds.includes(d.domainId))\n });\n }\n this.domainService.delete(domainIds);\n\n this.snackbarService.triggerSnackbar({message: 'The selected domains were deleted successfully.', timeoutTime: 5000});\n this.loadPaginatedDomains();\n } catch (e) {\n console.log(e);\n if (e.status === 409) {\n this.setStoreError({\n action: 'DELETE',\n type: e.status,\n details: {\n domainsWithJobs: e.error\n }\n });\n }\n\n this.snackbarService.triggerSnackbar(\n {isError: true, message: `Failed to delete the domains, ${parseError(e)}`, timeoutTime: 5000});\n }\n }\n\n public async downloadDomainCsv(): Promise {\n try {\n const csv = await this.domainApiService.downloadDomainCsv().toPromise();\n this.snackbarService.triggerSnackbar({message: 'Download started'});\n\n return csv;\n } catch (e) {\n console.log(e);\n this.snackbarService.triggerSnackbar({isError: true, message: `Unable to download the file, ${parseError(e)}`});\n }\n }\n\n\n public checkDomainConnectivity(domain: IDomain, agentId: number): Observable {\n return this.domainApiService.checkDomainConnectivity(domain, agentId)\n .pipe(catchError(e => {\n this.setStoreError({\n action: 'GET',\n type: e.status\n });\n\n return throwError(e);\n }));\n }\n\n public setStoreError(error: UIError): void {\n this.domainService.setError(error);\n }\n\n public selectStoreError$(): Observable {\n return this.domainQuery.selectError();\n }\n\n public domainDirtyCheckPlugin(): EntityDirtyCheckPlugin {\n return new EntityDirtyCheckPlugin(this.domainQuery).setHead();\n }\n\n public getDomainFormValidators(): ((formGroup: FormGroup) => null)[] {\n return [\n this.domainQuery.getDomainNameValidator(),\n this.domainQuery.getPortValidator(),\n this.domainQuery.getUserNameValidator(),\n this.domainQuery.getPasswordValidator(),\n this.domainQuery.getClientIdValidator(),\n this.domainQuery.getClientSecretValidator(),\n this.domainQuery.getTenantIdValidator(),\n this.domainQuery.getOktaDomainValidator(),\n this.domainQuery.getOktaClientIdValidator(),\n this.domainQuery.getOktaPrivateKeyValidator()\n ];\n }\n\n private getUpdatedDomainForSaving(domain: IDomain): IDomain {\n if(domain.type === 5)\n return {...domain}\n\n return {\n ...domain,\n userName: domain.type === 3 ? '' : domain.userName,\n password: domain.type === 3 || domain.type === 4 ? '' : domain.password,\n clientId: domain.type === 3 || domain.type === 4 ? domain.clientId : '',\n clientSecret: domain.type === 3 ? domain.clientSecret : '',\n tenantId: domain.type === 3 ? domain.tenantId : ''\n };\n }\n\n public resetActiveEntityState(): void {\n this.domainService.resetActiveEntity(this.domainQuery.getActiveId());\n }\n\n public updateActiveEntityForSyncForm(domainId: number): void {\n if (this.domainQuery.getActiveId() !== domainId) {\n this.domainStore.setActive(domainId);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from '../../shared/shared.module';\nimport { OpenlmModule } from 'openlm';\nimport { DomainPageComponent } from './containers/domain-page/domain-page.component';\nimport { AddEditDomainPageComponent } from './containers/add-edit-domain-page/add-edit-domain-page.component';\nimport { DomainApiService } from './api/domain.api.service';\nimport { DomainFacade } from './domain.facade';\nimport { DomainConnectivityDialogComponent } from './containers/domain-connectivity-dialog/domain-connectivity-dialog.component';\nimport { DomainDeleteDialogComponent } from './containers/domain-delete-dialog/domain-delete-dialog.component';\nimport {RouterModule} from '@angular/router';\n\n\n\n@NgModule({\n declarations: [\n DomainPageComponent,\n AddEditDomainPageComponent,\n DomainConnectivityDialogComponent,\n DomainDeleteDialogComponent\n ],\n imports: [\n CommonModule,\n SharedModule,\n OpenlmModule,\n RouterModule\n ],\n exports: [\n DomainPageComponent\n ],\n providers: [\n DomainApiService,\n DomainFacade\n ],\n entryComponents: [DomainConnectivityDialogComponent, DomainDeleteDialogComponent]\n})\nexport class DomainModule { }\n","import { Injectable } from '@angular/core';\nimport { DomainUiStore, DomainUiState } from './domain-ui.store';\nimport {BaseUiQuery} from '../../../../core/base-ui-state/base-ui-query';\n\n@Injectable({ providedIn: 'root' })\nexport class DomainUiQuery extends BaseUiQuery {\n\n constructor(protected store: DomainUiStore) {\n super(store);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { DomainUiStore } from './domain-ui.store';\nimport {BaseUiService} from '../../../../core/base-ui-state/base-ui-service';\n\n@Injectable({ providedIn: 'root' })\nexport class DomainUiService extends BaseUiService{\n constructor(private domainUiStore: DomainUiStore) {\n super(domainUiStore)\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Store, StoreConfig } from '@datorama/akita';\nimport {BASE_UI_STATE, BaseUiStateInterface} from '../../../../core/base-ui-state/base-ui-state-interface';\n\n// tslint:disable-next-line:no-empty-interface\nexport interface DomainUiState extends BaseUiStateInterface {}\n\nexport function createInitialState(): DomainUiState {\n return JSON.parse(JSON.stringify(BASE_UI_STATE));\n}\n\n@Injectable({ providedIn: 'root' })\n@StoreConfig({ name: 'domain-ui' })\nexport class DomainUiStore extends Store {\n\n constructor() {\n super(createInitialState());\n }\n\n}\n\n","export * from './domain-ui.query';\nexport * from './domain-ui.store';\nexport * from './domain-ui.service';\n","import { Injectable } from '@angular/core';\nimport { QueryEntity } from '@datorama/akita';\nimport { DomainStore, DomainState } from './domain.store';\nimport {FormGroup} from '@angular/forms';\n\n@Injectable({ providedIn: 'root' })\nexport class DomainQuery extends QueryEntity {\n\n constructor(protected store: DomainStore) {\n super(store);\n }\n\n public getDomainNameValidator(): (formGroup: FormGroup) => null {\n return formGroup => {\n const {domainName, type} = formGroup.controls;\n const error = type.value === 5 || !!domainName.value\n ? null\n : {required: true};\n domainName.setErrors(error);\n\n return null;\n };\n }\n\n public getPortValidator(): (formGroup: FormGroup) => null {\n return formGroup => {\n const {port, type} = formGroup.controls;\n const error = [3,5].includes(type.value) || !!port.value\n ? null\n : {required: true};\n port.setErrors(error);\n\n return null;\n };\n }\n\n public getUserNameValidator(): (formGroup: FormGroup) => null {\n return formGroup => {\n const {userName, type} = formGroup.controls;\n const error = [3,5].includes(type.value) || !!userName.value\n ? null\n : {required: true};\n userName.setErrors(error);\n\n return null;\n };\n }\n\n public getPasswordValidator(): (formGroup: FormGroup) => null {\n return formGroup => {\n const {password, type} = formGroup.controls;\n const error = type.value >= 3 || !!password.value\n ? null\n : {required: true};\n password.setErrors(error);\n\n return null;\n };\n }\n\n public getClientIdValidator(): (formGroup: FormGroup) => null {\n return formGroup => {\n const {clientId, type} = formGroup.controls;\n const error = !(type.value >= 3) || type.value === 5 || !!clientId.value\n ? null\n : {required: true};\n clientId.setErrors(error);\n\n return null;\n };\n }\n\n public getClientSecretValidator(): (formGroup: FormGroup) => null {\n return formGroup => {\n const {clientSecret, type} = formGroup.controls;\n const error = type.value !== 3 || !!clientSecret.value\n ? null\n : {required: true};\n clientSecret.setErrors(error);\n\n return null;\n };\n }\n\n public getTenantIdValidator(): (formGroup: FormGroup) => null {\n return formGroup => {\n const {tenantId, type} = formGroup.controls;\n const error = type.value !== 3 || !!tenantId.value\n ? null\n : {required: true};\n tenantId.setErrors(error);\n\n return null;\n };\n }\n\n public getOktaDomainValidator(): (formGroup: FormGroup) => null {\n return formGroup => {\n const {domainName, type} = formGroup.controls;\n const error = type.value !== 5 || !!domainName.value\n ? null\n : {required: true};\n domainName.setErrors(error);\n\n return null;\n };\n }\n\n public getOktaClientIdValidator(): (formGroup: FormGroup) => null {\n return formGroup => {\n const {clientId, type} = formGroup.controls;\n const error = type.value !== 5 || !!clientId.value\n ? null\n : {required: true};\n clientId.setErrors(error);\n\n return null;\n };\n }\n\n public getOktaPrivateKeyValidator(): (formGroup: FormGroup) => null {\n return formGroup => {\n const {clientSecret, type} = formGroup.controls;\n const error = type.value !== 5 || !!clientSecret.value\n ? null\n : {required: true};\n clientSecret.setErrors(error);\n\n return null;\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { DomainStore } from './domain.store';\nimport {IDomain} from '../api/models/domain.interface';\nimport {ID, OrArray} from '@datorama/akita';\nimport {UIError} from '../../../shared/interfaces';\n\n@Injectable({ providedIn: 'root' })\nexport class DomainService {\n\n constructor(private domainStore: DomainStore) {\n }\n\n set(domains: any[]) {\n this.domainStore.set(domains);\n }\n\n add(domain: OrArray) {\n this.domainStore.add(domain);\n }\n\n update(domain: Partial, id?: number): void {\n const domainId = 'domainId';\n\n this.domainStore.update(!id ? domain[domainId] : id, domain);\n }\n\n upsert(domainId: number, domain: IDomain) {\n this.domainStore.upsert(domainId, domain);\n }\n\n delete(domainId: OrArray) {\n this.domainStore.remove(domainId);\n }\n\n setError(error: UIError) {\n this.domainStore.setError(error);\n }\n\n public setActive(domainId: number): void {\n this.domainStore.setActive(domainId);\n }\n\n public resetActiveEntity(activeId: ID): void {\n this.domainStore.remove(activeId);\n }\n}\n","import { Injectable } from '@angular/core';\nimport {ActiveState, EntityState, EntityStore, StoreConfig} from '@datorama/akita';\nimport {IDomain} from '../api/models/domain.interface';\n\nexport interface DomainState extends EntityState, ActiveState {}\n\n@Injectable({ providedIn: 'root' })\n@StoreConfig({ name: 'domain', idKey: 'domainId' })\nexport class DomainStore extends EntityStore {\n\n constructor() {\n super();\n }\n\n}\n","export * from './domain.query';\nexport * from './domain.store';\nexport * from './domain.service';\n","import { Injectable } from '@angular/core';\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport { environment } from '../../../../environments/environment';\nimport { IEntityResponse } from '../models/entity.interface';\nimport { urlJoin } from '../../../shared/utils';\nimport { StringMap } from '@angular/compiler/src/compiler_facade_interface';\nimport { BooleanMap } from '../../../shared/interfaces';\nimport {UIState} from '../../../core/base-ui-state/base-ui-state-interface';\nimport {buildUiStateHttpParams} from '../../../core/base-ui-state/base-ui-utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiEntityService {\n constructor(private http: HttpClient) {}\n\n private baseUrl = urlJoin(environment.baseUrl, 'admin/entities');\n\n public getPaginated(uiState: UIState, disableLoader = false, syncId: string = null): Observable {\n const options = {\n params: buildUiStateHttpParams(uiState)\n };\n\n if (disableLoader) {\n options['headers'] = new HttpHeaders({\n 'disable-loader': 'true'\n });\n }\n\n if (syncId) {\n options.params = options.params.append('SyncId', syncId);\n }\n\n return this.http.get(this.baseUrl, options);\n }\n\n public ignoreEntities(body: BooleanMap): Observable {\n return this.http.patch(\n `${this.baseUrl}/ignore`,\n body\n );\n }\n\n public syncNow(entityId): Observable {\n return this.http.post(\n urlJoin(environment.baseUrl, 'admin/syncNow/entity', entityId),\n {\n headers: new HttpHeaders({\n 'disable-loader': 'true'\n })\n }\n );\n }\n\n downloadEntityCsv(): Observable {\n const options: unknown = {\n responseType: 'text',\n observe: 'response'\n };\n\n return this.http.get(`${this.baseUrl}/export`, options);\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n OnDestroy,\n OnInit,\n ViewChild\n} from '@angular/core';\nimport { CanComponentDeactivate } from '../../../../shared/guards/routes.service';\nimport { EntityFacade } from '../../entity.facade';\nimport { IEntity } from '../../models/entity.interface';\nimport { List } from 'immutable';\nimport { TableColumn, TableComponent } from 'openlm';\nimport {\n UnsavedChangesDialogComponent,\n UnsavedDialogResponse\n} from '../../../../shared/unsaved-changes-dialog/unsaved-changes-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { StringMap } from '@angular/compiler/src/compiler_facade_interface';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\nimport {EntityUiQuery, EntityUiService} from '../../state/entity-ui';\nimport {combineLatest} from 'rxjs';\nimport { filter, startWith } from 'rxjs/operators';\nimport { UIError } from '../../../../shared/interfaces';\nimport { downloadFile } from '../../../../shared/utils';\n\n@UntilDestroy()\n@Component({\n selector: 'app-entity-page',\n templateUrl: './entity-page.component.html',\n styleUrls: ['./entity-page.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EntityPageComponent implements OnInit, CanComponentDeactivate, OnDestroy {\n constructor(\n public entityFacade: EntityFacade,\n private cd: ChangeDetectorRef,\n private matDialog: MatDialog,\n private router: Router,\n public route: ActivatedRoute,\n public entityUiService: EntityUiService,\n public entityUiQuery: EntityUiQuery\n ) {}\n\n @ViewChild(TableComponent, { read: ElementRef }) table;\n\n public ldapEntities: List = List();\n public ldapTableColumns: TableColumn[] | any;\n\n public infoTexts: StringMap = {};\n public searchTermToHighlight: string = null;\n private startFromElementIndex: number = null;\n\n public failedToLoadEntities = false;\n\n\n ngOnInit(): void {\n this.initInfoTexts();\n\n this.entityUiQuery.selectPaginationStartFrom$\n .pipe(untilDestroyed(this))\n .subscribe(value => {\n this.startFromElementIndex = value && value.indexOfElement;\n });\n\n this.route.queryParams\n .pipe(untilDestroyed(this))\n .subscribe(params => {\n if (params.searchForEntityName || params.searchForSyncName) {\n this.entityUiService.setSearchTerm(decodeURI(params.searchForEntityName || params.searchForSyncName))\n } else {\n this.entityUiService.setSearchTerm(null)\n }\n });\n\n\n combineLatest([\n this.entityUiQuery.selectPagination$.pipe(startWith(this.entityUiQuery.pagination)),\n this.entityUiQuery.selectSort$,\n this.entityUiQuery.selectSearchTerm$,\n this.entityUiQuery.selectTableColumns$\n .pipe(filter(value => {\n if (!value) {\n this.entityUiService.setTableColumns(this.getDefaultColumns());\n return false;\n }\n return true;\n }))\n ]).pipe(untilDestroyed(this))\n .subscribe(async ([pagination, sort, searchTerm, columns]) => {\n // NOTE, temporary\n if (!searchTerm) {\n this.router.navigateByUrl('/entities');\n }\n this.ldapTableColumns = columns;\n await this.entityFacade.loadAllEntities({pagination, sort, searchTerm}, this.route.snapshot.queryParams.syncId);\n this.searchTermToHighlight = searchTerm;\n this.tryToFocusElement();\n });\n\n this.entityFacade.selectAllEntities$()\n .pipe(untilDestroyed(this))\n .subscribe(entities => {\n const isThereAnySyncRunning = entities.some(entity => entity.syncJobStatus !== null);\n if (isThereAnySyncRunning) {\n this.entityFacade.startPeriodicallyCheckingSyncs();\n }\n this.ldapEntities = List(entities);\n this.cd.detectChanges();\n });\n\n this.entityFacade.selectEntitiesError$()\n .pipe(untilDestroyed(this))\n .subscribe((error: UIError) => {\n this.failedToLoadEntities = error && error.details && error.details.failedToLoadEntities;\n })\n }\n\n public onEntityIgnoreCheck(checkboxValue: boolean, entity: IEntity) {\n const updatedEntity: IEntity = {\n ...entity,\n shouldBeSync: !checkboxValue\n };\n\n this.entityFacade.updateLdapEntityInStore(updatedEntity);\n }\n\n public onSaveClick(): void {\n this.entityFacade.saveIgnoredEntities();\n }\n\n async canDeactivate(): Promise {\n if (this.entityFacade.ldapEntityDirtyCheck.someDirty()) {\n const result: UnsavedDialogResponse = await this.matDialog.open(UnsavedChangesDialogComponent, {\n width: '430px',\n data: {\n screenName: 'Entities'\n }\n }).afterClosed().toPromise();\n switch (result) {\n case 'CLOSE':\n return false;\n case 'CANCEL':\n this.entityFacade.ldapEntityDirtyCheck.reset();\n return true;\n default:\n await this.entityFacade.saveIgnoredEntities();\n }\n }\n return true;\n }\n\n public trackByFn(index, item: IEntity): number {\n return item.id;\n }\n\n public onBackClick(): void {\n this.router.navigateByUrl(window.localStorage.getItem('previousUrl'));\n }\n\n public onSyncEntityClick(entity: IEntity) {\n this.entityFacade.syncEntity(entity.id);\n }\n\n private initInfoTexts() {\n this.infoTexts.ldpapEntites = 'On this screen you can see the entities created by the DSS syncs. Use the filter to see which entities were modified by which sync, and/or search for a specific Entity and sync it separately.';\n }\n\n public tryToFocusElement(): void {\n if (this.startFromElementIndex !== null) {\n this.table.nativeElement.querySelector('tbody').children[this.startFromElementIndex].focus();\n this.startFromElementIndex = null;\n this.entityUiService.resetPaginationStartFrom();\n }\n }\n\n public async onExportTableClick(): Promise {\n const text = await this.entityFacade.downloadEntityCsv();\n downloadFile(text);\n }\n\n public getDefaultColumns() {\n return [\n {\n label: 'ID',\n value: 'id',\n visible: true,\n tooltipText: 'The Entity ID in DSS',\n sortTooltip: 'Sort by ID',\n },\n {\n label: 'Entity Name',\n value: 'name',\n disableVisibilityChange: true,\n visible: true,\n tooltipText: 'Entity Name',\n sortTooltip: 'Sort by entity name',\n },\n {\n label: 'Entity Type',\n value: 'entityType',\n disableVisibilityChange: true,\n visible: true,\n tooltipText: 'Entity Type',\n sortTooltip: 'Sort by entity type'\n\n },\n {\n label: 'Last Synced By',\n value: 'lastSyncName',\n visible: true,\n tooltipText: 'The name of the sync that last modified the entity',\n sortTooltip: 'Sort by Last Synced By'\n },\n {\n label: 'Last Synced On',\n value: 'lastSyncDate',\n visible: true,\n tooltipText: 'Last synced on',\n sortTooltip: 'Sort by Last Synced On'\n },\n {\n label: 'Ignore',\n value: 'shouldBeSync',\n visible: true,\n tooltipText: 'Exclude the entity from being synced',\n style: 'width: 65px; min-width: 65px;',\n sortTooltip: 'Sort by excluded/included entities'\n },\n {\n label: 'Distinguished Name',\n value: 'ldapUniqueId',\n visible: false,\n tooltipText: 'The string that uniquely identifies the entity in the directory',\n sortTooltip: 'Sort by Distinguished Name'\n }\n ];\n }\n\n ngOnDestroy(): void {\n this.entityFacade.stopPeriodicallyCheckingSyncs();\n }\n}\n","\n \n \n \n
\n Entities\n
\n \n \n \n
\n \n \n \n
\n \n \n \n \n \n \n \n \n
\n {{column.label}}\n
\n\n \n
\n \n\n \n \n \n \n \n \n
\n \n \n \n No results found\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n
\n
\n \n
No results found
\n \n\n \n \n cancel\n \n \n save\n \n \n
\n\n
\n Failed to load Entities\n
\n
\n","import { Injectable } from '@angular/core';\nimport { EntityComponentQuery, EntityComponentService } from './state/entity';\nimport { IEntity } from './models/entity.interface';\nimport { Observable } from 'rxjs';\nimport { ApiEntityService } from './api/api-entity.service';\nimport { SnackbarService } from '../../shared/snackbar/snackbar-service/snackbar.service';\nimport { BooleanMap, UIError } from '../../shared/interfaces';\nimport { EntityDirtyCheckPlugin } from '@datorama/akita';\nimport { filter } from 'rxjs/operators';\nimport {EntityUiQuery, EntityUiService} from './state/entity-ui';\nimport {UIState} from '../../core/base-ui-state/base-ui-state-interface';\nimport { parseError } from '../../shared/utils';\n\n@Injectable()\nexport class EntityFacade {\n\n constructor(\n private apiEntityService: ApiEntityService,\n private entityService: EntityComponentService,\n private entityQuery: EntityComponentQuery,\n private snackbarService: SnackbarService,\n private entityUiService: EntityUiService,\n private entityUiQuery: EntityUiQuery\n ) {}\n\n public ldapEntityDirtyCheck = new EntityDirtyCheckPlugin(this.entityQuery, {\n comparator: (obj1, obj2) => { return obj1.shouldBeSync !== obj2.shouldBeSync }\n }).setHead();\n\n private checkingSyncsInterval: ReturnType;\n private isCheckingSyncStatus: boolean = null;\n\n public async loadAllEntities(uiState: UIState = null, syncId: string = null): Promise {\n try {\n const ldapEntitiesResponse = await this.apiEntityService\n .getPaginated(this.buildUiStateParams(uiState), false, syncId).toPromise() as any;\n this.entityUiService.setPaginationFromResponse(ldapEntitiesResponse);\n this.entityService.setError(null);\n this.entityService.set(ldapEntitiesResponse.items);\n\n } catch (e) {\n console.log(e);\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Failed to load entities, ${parseError(e)}`\n });\n this.entityService.setError({\n action: 'GET',\n type: e.statusCode,\n details: {\n failedToLoadEntities: true\n }\n });\n }\n }\n\n public async loadEntitiesAndUpdateSyncStatus(): Promise {\n this.isCheckingSyncStatus = true;\n try {\n const ldapEntityResponse = await this.apiEntityService.getPaginated(this.buildUiStateParams(), true).toPromise();\n this.entityService.updateSyncStatus(ldapEntityResponse.items);\n } catch (e) {\n console.log(e);\n }\n this.isCheckingSyncStatus = false;\n }\n\n public selectAllEntities$(): Observable {\n return this.entityQuery.selectAll().pipe(filter(v => !!v));\n }\n\n public selectEntitiesError$(): Observable {\n return this.entityQuery.selectError();\n }\n\n public updateLdapEntityInStore(entity) {\n this.entityService.update(entity);\n }\n\n public async saveIgnoredEntities() {\n try {\n const ignoreEntitiesBody: BooleanMap = {};\n\n this.entityQuery.getAll().forEach(entity => {\n if (this.ldapEntityDirtyCheck.isDirty(entity.id, false)) {\n ignoreEntitiesBody[entity.id] = entity.shouldBeSync;\n }\n });\n await this.apiEntityService.ignoreEntities(ignoreEntitiesBody).toPromise();\n\n this.loadAllEntities();\n this.ldapEntityDirtyCheck.setHead();\n\n this.snackbarService.triggerSnackbar({message: 'Saved successfully'});\n } catch (e) {\n console.log(e);\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Failed to save changes, ${parseError(e)}`\n });\n }\n }\n\n public async syncEntity(entityId: number) {\n try {\n await this.apiEntityService.syncNow(entityId).toPromise();\n this.snackbarService.triggerSnackbar({message: 'Synchronization started successfully'});\n this.loadAllEntities();\n } catch (e) {\n console.log(e);\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: parseError(e) || 'Failed to sync entity'\n })\n }\n }\n\n public startPeriodicallyCheckingSyncs(): void {\n if (!this.checkingSyncsInterval) {\n this.checkingSyncsInterval = setInterval(() => {\n if (!this.isCheckingSyncStatus) {\n this.loadEntitiesAndUpdateSyncStatus()\n }\n }, 5000);\n }\n }\n\n public stopPeriodicallyCheckingSyncs(): void {\n if (this.checkingSyncsInterval) {\n window.clearInterval(this.checkingSyncsInterval);\n this.checkingSyncsInterval = null;\n }\n }\n\n private buildUiStateParams(uiState: UIState = null): UIState {\n uiState = uiState || {\n pagination: this.entityUiQuery.pagination,\n sort: this.entityUiQuery.sortState,\n searchTerm: this.entityUiQuery.searchTerm\n };\n\n uiState['excludedColumns'] = this.entityUiQuery.tableColumns.filter(col => !col.visible).map(col => col.value);\n\n return uiState;\n }\n\n public downloadEntityCsv() {\n try {\n return this.apiEntityService.downloadEntityCsv().toPromise();\n } catch (e) {\n console.log(e)\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Failed to export agent, ${parseError(e)}`\n })\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from '../../shared/shared.module';\nimport { OpenlmModule } from 'openlm';\nimport {EntityFacade} from './entity.facade';\nimport {EntityPageComponent} from './containers/entity-page/entity-page.component';\nimport { RouterModule } from '@angular/router';\n\n\n\n@NgModule({\n declarations: [EntityPageComponent],\n imports: [\n CommonModule,\n SharedModule,\n OpenlmModule,\n RouterModule\n ],\n exports: [\n EntityPageComponent\n ],\n providers: [\n EntityFacade\n ],\n})\nexport class EntityModule { }\n","import { Injectable } from '@angular/core';\nimport { EntityUiStore, EntityUiState } from './entity-ui.store';\nimport {BaseUiQuery} from '../../../../core/base-ui-state/base-ui-query';\n\n@Injectable({ providedIn: 'root' })\nexport class EntityUiQuery extends BaseUiQuery {\n constructor(protected store: EntityUiStore) {\n super(store);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { EntityUiStore } from './entity-ui.store';\nimport {BaseUiService} from '../../../../core/base-ui-state/base-ui-service';\n\n@Injectable({ providedIn: 'root' })\nexport class EntityUiService extends BaseUiService {\n constructor(entityUiStore: EntityUiStore) {\n super(entityUiStore);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Store, StoreConfig } from '@datorama/akita';\nimport {BASE_UI_STATE, BaseUiStateInterface} from '../../../../core/base-ui-state/base-ui-state-interface';\n\n// tslint:disable-next-line:no-empty-interface\nexport interface EntityUiState extends BaseUiStateInterface {}\n\nexport function createInitialState(): EntityUiState {\n return JSON.parse(JSON.stringify(BASE_UI_STATE));\n}\n\n@Injectable({ providedIn: 'root' })\n@StoreConfig({ name: 'entity-ui' })\nexport class EntityUiStore extends Store {\n constructor() {\n super(createInitialState());\n }\n\n}\n\n","export * from './entity-ui.query';\nexport * from './entity-ui.store';\nexport * from './entity-ui.service';\n","import { Injectable } from '@angular/core';\nimport { QueryEntity } from '@datorama/akita';\nimport { EntityComponentStore, LdapEntityState } from './entity-component.store';\n\n@Injectable({ providedIn: 'root' })\nexport class EntityComponentQuery extends QueryEntity {\n\n constructor(protected store: EntityComponentStore) {\n super(store);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { EntityComponentStore } from './entity-component.store';\nimport { IEntity, IEntityIgnore } from '../../models/entity.interface';\nimport { UIError } from '../../../../shared/interfaces';\nimport {transaction} from \"@datorama/akita\";\n\n@Injectable({ providedIn: 'root' })\nexport class EntityComponentService {\n\n constructor(private entityStore: EntityComponentStore) {\n }\n\n set(entities: IEntity[]) {\n this.entityStore.set(entities);\n }\n\n setError(error: UIError) {\n this.entityStore.setError(error);\n }\n\n update(entity: IEntityIgnore) {\n this.entityStore.update(entity.id, entity);\n }\n\n @transaction()\n updateSyncStatus(entities: IEntity[]) {\n entities.forEach((entity: IEntity) => {\n this.entityStore.update(entity.id, {syncJobStatus: entity.syncJobStatus});\n })\n }\n\n delete(entityIds: number[]) {\n this.entityStore.remove(entityIds);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { EntityState, EntityStore, StoreConfig } from '@datorama/akita';\nimport { IEntity } from '../../models/entity.interface';\n\nexport interface LdapEntityState extends EntityState {}\n\n@Injectable({ providedIn: 'root' })\n@StoreConfig({ name: 'entity', idKey: 'id' })\nexport class EntityComponentStore extends EntityStore {\n\n constructor() {\n super();\n }\n\n}\n\n","export * from './entity-component.query';\nexport * from './entity-component.store';\nexport * from './entity-component.service';\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { parseError, urlJoin } from '../../../shared/utils';\nimport { environment } from '../../../../environments/environment';\nimport { Observable } from 'rxjs';\nimport { IEntityResponse } from '../../entity/models/entity.interface';\nimport { IRelationsResponse } from './relations.model';\nimport { BooleanMap } from '../../../shared/interfaces';\nimport { UIState } from '../../../core/base-ui-state/base-ui-state-interface';\nimport { buildUiStateHttpParams } from '../../../core/base-ui-state/base-ui-utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RelationsApiService {\n\n constructor(\n private httpClient: HttpClient\n ) { }\n\n private baseUrl = urlJoin(environment.baseUrl, 'admin/entities');\n\n public getPaginated(uiState: UIState): Observable {\n const options = {\n params: buildUiStateHttpParams(uiState)\n };\n return this.httpClient.get(`${this.baseUrl}/relations`, options);\n }\n\n public ignoreRelations(relationBody: BooleanMap): Observable {\n return this.httpClient.patch(`${this.baseUrl}/ignore/relations`, relationBody);\n }\n\n public downloadRelationCsv(): Observable {\n const options: unknown = {\n responseType: 'text',\n observe: 'response'\n };\n\n return this.httpClient.get(`${this.baseUrl}/export/relations`, options);\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { StringMap } from '@angular/compiler/src/compiler_facade_interface';\nimport { RelationsFacade } from '../../relations.facade';\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\nimport { IRelation } from '../../api/relations.model';\nimport { List } from 'immutable';\nimport { TableColumn, TableComponent } from 'openlm';\nimport { RelationsUiQuery, RelationsUiService } from '../../state/relations-ui';\nimport { combineLatest } from 'rxjs';\nimport { filter, startWith } from 'rxjs/operators';\nimport {\n UnsavedChangesDialogComponent,\n UnsavedDialogResponse\n} from '../../../../shared/unsaved-changes-dialog/unsaved-changes-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { downloadFile } from '../../../../shared/utils';\n\n@UntilDestroy()\n@Component({\n selector: 'app-relations-page',\n templateUrl: './relations-page.component.html',\n styleUrls: ['./relations-page.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RelationsPageComponent implements OnInit {\n\n constructor(\n private router: Router,\n private route: ActivatedRoute,\n public relationsFacade: RelationsFacade,\n private cd: ChangeDetectorRef,\n public relationsUiService: RelationsUiService,\n public relationsUiQuery: RelationsUiQuery,\n private matDialog: MatDialog\n ) { }\n\n @ViewChild(TableComponent, { read: ElementRef }) table;\n\n public infoTexts: StringMap = {};\n public relations: List = List();\n\n public relationsTableColumns: TableColumn[] | any[];\n public searchTermToHighlight: string = null;\n private startFromElementIndex: number = null;\n\n public failedToLoadRelations = false;\n\n ngOnInit(): void {\n this.initInfoTexts();\n\n this.route.queryParams\n .pipe(untilDestroyed(this))\n .subscribe(params => {\n if (params.searchForEntityName) {\n this.relationsUiService.setSearchTerm(decodeURI(params.searchForEntityName))\n } else {\n this.relationsUiService.setSearchTerm(null)\n }\n });\n\n this.relationsUiQuery.selectPaginationStartFrom$\n .pipe(untilDestroyed(this))\n .subscribe(value => {\n this.startFromElementIndex = value && value.indexOfElement;\n });\n\n combineLatest([\n this.relationsUiQuery.selectPagination$.pipe(startWith(this.relationsUiQuery.pagination)),\n this.relationsUiQuery.selectSort$,\n this.relationsUiQuery.selectSearchTerm$,\n this.relationsUiQuery.selectTableColumns$\n .pipe(filter(value => {\n if (!value) {\n this.relationsUiService.setTableColumns(this.getDefaultColumns());\n return false;\n }\n return true;\n }))\n ]).pipe(untilDestroyed(this))\n .subscribe(async ([pagination, sort, searchTerm, columns]) => {\n // NOTE, temporary\n if (!searchTerm) {\n this.router.navigateByUrl('/relations');\n }\n this.relationsTableColumns = columns;\n await this.relationsFacade.loadAllRelations({pagination, sort, searchTerm});\n this.searchTermToHighlight = searchTerm;\n this.tryToFocusElement();\n });\n\n\n\n this.relationsFacade.selectAllRelations$()\n .pipe(untilDestroyed(this))\n .subscribe(relations => {\n this.relations = List(relations);\n this.cd.detectChanges();\n });\n\n this.relationsFacade.selectRelationsError$()\n .pipe(untilDestroyed(this))\n .subscribe(error => {\n this.failedToLoadRelations = error && error.details && error.details.failedToLoadRelations;\n })\n }\n\n public onRelationIgnoreCheck(checkboxValue: boolean, relation: IRelation) {\n const updatedRelation: IRelation = {\n ...relation,\n shouldBeSync: !checkboxValue\n };\n this.relationsFacade.updateRelationInStore(updatedRelation);\n }\n\n public tryToFocusElement(): void {\n if (this.startFromElementIndex !== null) {\n this.table.nativeElement.querySelector('tbody').children[this.startFromElementIndex].focus();\n this.startFromElementIndex = null;\n this.relationsUiService.resetPaginationStartFrom();\n }\n }\n\n public onBackClick(): void {\n this.router.navigateByUrl(window.localStorage.getItem('previousUrl'));\n }\n\n public onSaveClick(): void {\n this.relationsFacade.saveIgnoredRelations();\n }\n\n public trackByFn(index, item) {\n return index;\n }\n\n public async onExportTableClick(): Promise {\n const text = await this.relationsFacade.downloadRelationCsv();\n downloadFile(text);\n }\n\n public getDefaultColumns(): TableColumn[] | any[] {\n return [\n {\n label: 'Agent',\n value: 'agentName',\n visible: true,\n tooltipText: 'The Agent that queried the directory for this entity',\n sortTooltip: 'Sort by Agent source',\n },\n {\n label: 'Domain',\n value: 'domainName',\n visible: true,\n disableVisibilityChange: true,\n tooltipText: 'The name of the domain that was queried for this entity',\n sortTooltip: 'Sort by domain source '\n },\n {\n label: 'Sync Name',\n value: 'syncName',\n visible: true,\n disableVisibilityChange: true,\n tooltipText: 'The name of the sync definition associated with this entity',\n sortTooltip: 'Sort by sync name'\n },\n {\n label: 'Entity Name',\n value: 'entityName',\n visible: true,\n disableVisibilityChange: true,\n tooltipText: 'Entity name',\n sortTooltip: 'Sort by entity name'\n },\n {\n label: 'Parent Name',\n value: 'groupName',\n visible: true,\n disableVisibilityChange: true,\n tooltipText: 'Entity parent name',\n sortTooltip: 'Sort by entity type'\n },\n {\n label: 'Last Synced On',\n value: 'syncDate',\n visible: true,\n tooltipText: 'Date the entity was last synced on',\n sortTooltip: 'Sort by last synced on'\n },\n {\n label: 'Ignore',\n value: 'shouldBeSync',\n visible: true,\n tooltipText: 'Exclude the entity from being synced by the associated sync',\n style: 'width: 60px; min-width: 60px;',\n sortTooltip: 'Sort by excluded/included entities'\n }\n ];\n }\n\n async canDeactivate(): Promise {\n if (this.relationsFacade.relationDirtyCheck.someDirty()) {\n const result: UnsavedDialogResponse = await this.matDialog.open(UnsavedChangesDialogComponent, {\n width: '430px',\n data: {\n screenName: 'Relations'\n }\n }).afterClosed().toPromise();\n switch (result) {\n case 'CLOSE':\n return false;\n case 'CANCEL':\n this.relationsFacade.relationDirtyCheck.reset();\n return true;\n default:\n await this.relationsFacade.saveIgnoredRelations();\n }\n }\n return true;\n }\n\n private initInfoTexts(): void {\n this.infoTexts.relations = 'On this screen, you can see all the relations an entity has in the DSS. Use the filters to see which relations were updated and when. The ignore functionality is per entity for the sync it is associated with.';\n }\n\n}\n","\n \n \n \n
\n Relations\n
\n \n \n \n
\n \n \n \n
\n \n \n \n \n \n \n \n \n \n {{column.label}}\n \n \n \n \n \n \n \n \n \n \n \n \n No results found\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n
\n
\n \n
No results found
\n \n \n \n cancel\n \n \n save\n \n \n
\n\n
\n Failed to load Relations\n
\n
\n","import { Injectable } from '@angular/core';\nimport { RelationsApiService } from './api/relations.api.service';\nimport { RelationsQuery, RelationsService } from './state/relations';\nimport { EntityDirtyCheckPlugin, guid } from '@datorama/akita';\nimport { Observable } from 'rxjs';\nimport { IRelation } from './api/relations.model';\nimport { BooleanMap, UIError } from '../../shared/interfaces';\nimport { SnackbarService } from '../../shared/snackbar/snackbar-service/snackbar.service';\nimport { UIState } from '../../core/base-ui-state/base-ui-state-interface';\nimport {RelationsUiQuery, RelationsUiService} from './state/relations-ui';\nimport { parseError } from '../../shared/utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RelationsFacade {\n\n constructor(\n private relationsApiService: RelationsApiService,\n private relationsService: RelationsService,\n private relationsQuery: RelationsQuery,\n private snackbarService: SnackbarService,\n private relationsUiService: RelationsUiService,\n private relationsUiQuery: RelationsUiQuery\n ) { }\n\n public relationDirtyCheck = new EntityDirtyCheckPlugin(this.relationsQuery).setHead();\n\n public async loadAllRelations(uiState: UIState = null): Promise {\n try {\n const result = await this.relationsApiService.getPaginated(this.buildUiStateParams(uiState)).toPromise() as any;\n\n this.relationsUiService.setPaginationFromResponse(result);\n this.relationsService.set(\n result.items.map(relation => ({...relation, _id: guid()}))\n );\n this.relationDirtyCheck.setHead();\n } catch (e) {\n console.log(e);\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Failed to load relations, ${parseError(e)}`\n });\n this.relationsService.setError({\n action: 'GET',\n type: 400,\n details: {\n failedToLoadRelations: true\n }\n });\n }\n }\n\n public selectAllRelations$(): Observable {\n return this.relationsQuery.selectAll();\n }\n\n public selectRelationsError$(): Observable {\n return this.relationsQuery.selectError();\n }\n public updateRelationInStore(relation: IRelation): void {\n this.relationsService.update(relation);\n }\n\n public async saveIgnoredRelations(): Promise {\n try {\n const ignoreRelationsBody: BooleanMap = {};\n\n this.relationsQuery.getAll().forEach(relation => {\n if (this.relationDirtyCheck.isDirty(relation._id, false)) {\n ignoreRelationsBody[relation.ldapPath] = relation.shouldBeSync;\n }\n });\n await this.relationsApiService.ignoreRelations(ignoreRelationsBody).toPromise();\n\n this.loadAllRelations();\n this.relationDirtyCheck.setHead();\n\n this.snackbarService.triggerSnackbar({message: 'Saved successfully'});\n } catch (e) {\n console.log(e);\n this.snackbarService.triggerSnackbar({isError: true, message: `Failed to save changes, ${parseError(e)}`});\n }\n }\n\n public downloadRelationCsv() {\n try {\n return this.relationsApiService.downloadRelationCsv().toPromise();\n } catch (e) {\n console.log(e);\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Failed to export agent, ${parseError(e)}`\n })\n }\n }\n\n private buildUiStateParams(uiState: UIState = null): UIState {\n uiState = uiState || {\n pagination: this.relationsUiQuery.pagination,\n sort: this.relationsUiQuery.sortState,\n searchTerm: this.relationsUiQuery.searchTerm\n };\n\n uiState['excludedColumns'] = this.relationsUiQuery.tableColumns.filter(col => !col.visible).map(col => col.value);\n\n return uiState;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RelationsPageComponent } from './containers/relations-page/relations-page.component';\nimport { SharedModule } from '../../shared/shared.module';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { OpenlmModule } from 'openlm';\nimport { RouterModule } from '@angular/router';\n\n@NgModule({\n declarations: [\n RelationsPageComponent\n ],\n imports: [\n CommonModule,\n SharedModule,\n ReactiveFormsModule,\n OpenlmModule,\n RouterModule\n ],\n exports: []\n})\nexport class RelationsModule { }\n","export * from './relations-ui.query';\nexport * from './relations-ui.store';\nexport * from './relations-ui.service';\n","import { Injectable } from '@angular/core';\nimport { RelationsUiStore, RelationsUiState } from './relations-ui.store';\nimport { BaseUiQuery } from '../../../../core/base-ui-state/base-ui-query';\n\n@Injectable({ providedIn: 'root' })\nexport class RelationsUiQuery extends BaseUiQuery {\n\n constructor(protected store: RelationsUiStore) {\n super(store);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { RelationsUiStore } from './relations-ui.store';\nimport { BaseUiService } from '../../../../core/base-ui-state/base-ui-service';\n\n@Injectable({ providedIn: 'root' })\nexport class RelationsUiService extends BaseUiService {\n constructor(private relationsUiStore: RelationsUiStore) {\n super(relationsUiStore);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Store, StoreConfig } from '@datorama/akita';\nimport { BASE_UI_STATE, BaseUiStateInterface } from '../../../../core/base-ui-state/base-ui-state-interface';\n\n\n// tslint:disable-next-line:no-empty-interface\nexport interface RelationsUiState extends BaseUiStateInterface { }\n\nexport function createInitialState(): RelationsUiState {\n return JSON.parse(JSON.stringify(BASE_UI_STATE));\n}\n\n@Injectable({ providedIn: 'root' })\n@StoreConfig({ name: 'relations-ui' })\nexport class RelationsUiStore extends Store {\n\n constructor() {\n super(createInitialState());\n }\n\n}\n\n","export * from './relations.query';\nexport * from './relations.store';\nexport * from './relations.service';\n","import { Injectable } from '@angular/core';\nimport { QueryEntity } from '@datorama/akita';\nimport { RelationsStore, RelationsState } from './relations.store';\nimport { IRelation } from '../../api/relations.model';\n\n@Injectable({ providedIn: 'root' })\nexport class RelationsQuery extends QueryEntity {\n\n constructor(protected store: RelationsStore) {\n super(store);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { RelationsStore } from './relations.store';\nimport { IRelation } from '../../api/relations.model';\nimport { UIError } from '../../../../shared/interfaces';\n\n@Injectable({ providedIn: 'root' })\nexport class RelationsService {\n\n constructor(\n private relationsStore: RelationsStore\n ) {\n }\n\n public set(relations: IRelation[]): void {\n this.relationsStore.set(relations);\n }\n\n public update(relation: IRelation): void {\n this.relationsStore.update(relation._id, relation);\n }\n\n public setError(error: UIError) {\n this.relationsStore.setError(error);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { EntityState, EntityStore, StoreConfig } from '@datorama/akita';\nimport { IRelation } from '../../api/relations.model';\n\nexport interface RelationsState extends EntityState {}\n\n@Injectable({ providedIn: 'root' })\n@StoreConfig({ name: 'relations', idKey: '_id' })\nexport class RelationsStore extends EntityStore {\n\n constructor() {\n super();\n }\n\n}\n\n","import {Injectable} from '@angular/core';\nimport {HttpClient, HttpHeaders, HttpParams} from '@angular/common/http';\nimport {environment} from '../../../../environments/environment';\nimport {IEmailsNotificationConfig, IFullServiceConfig, IServiceConfig, IServiceConfigUpdateResult} from './service-config.model';\nimport {Observable} from 'rxjs';\nimport {urlJoin} from '../../../shared/utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ServiceConfigApiService {\n\n constructor(private httpClient: HttpClient) {\n\n }\n\n private baseUrl = urlJoin(environment.baseUrl, 'system/config');\n\n public getEmailsNotificationConfig(): Observable {\n return this.httpClient.get(`${this.baseUrl}/notifications`);\n }\n\n public updateEmailsNotificationConfig(emailsNotificationConfig: IEmailsNotificationConfig): Observable {\n return this.httpClient.put(`${this.baseUrl}/notifications`, emailsNotificationConfig);\n }\n\n public getConfig(): Observable {\n return this.httpClient.get(this.baseUrl);\n }\n\n public updateConfig(serviceConfig: Partial): Observable {\n return this.httpClient.patch(`${this.baseUrl}/general`, serviceConfig);\n }\n\n public uploadConfigCertificate(certificate: File): Observable<{ path: string }> {\n const formData = new FormData();\n const headers = new HttpHeaders({'file-upload': 'true'});\n\n formData.append('certificate', certificate, certificate.name);\n\n return this.httpClient.post<{ path: string }>(`${this.baseUrl}/upload-certificate`, formData, {headers});\n }\n\n public dssChangedCheck(olmConnectionDto: Partial): Observable {\n const params = new HttpParams({\n fromObject: {\n olmServiceHost: olmConnectionDto.olmServiceHost,\n olmServicePort: `${olmConnectionDto.olmServicePort}`\n }\n });\n\n return this.httpClient.get(`${this.baseUrl}/dss-changed-check`, {params});\n }\n\n public checkUGS(olmConnectionDto: Partial): Observable {\n const params = new HttpParams({\n fromObject: {\n olmServiceHost: olmConnectionDto.olmServiceHost,\n olmServicePort: `${olmConnectionDto.olmServicePort}`\n }\n });\n\n return this.httpClient.get(`${this.baseUrl}/ugs/check`, {params});\n }\n\n public deleteUsersAndGroups(): Observable {\n return this.httpClient.delete(urlJoin(environment.baseUrl, 'admin/entities'));\n }\n}\n","import {IDbConfig} from '../../db-config/api/db-config.interface';\n\nexport interface IServiceConfig extends IOlmConnectionServiceConfig {\n kestrel: Partial;\n ldapServiceApproved: boolean;\n requiredOlmMigration: boolean;\n ldapServiceHost: string;\n _openlmServerWasChanged: boolean;\n emailsNotification: IEmailsNotificationConfig;\n}\n\nexport interface IFullServiceConfig extends IDbConfig, IOlmConnectionServiceConfig {\n olmGuid: string;\n kestrelConfig: IKestrelConfig;\n activeUsersRefreshDate: Date;\n ldapServiceApproved: boolean;\n needSendLdapServiceUrlToOlm: boolean;\n requiredOlmMigration: boolean;\n ldapServiceHost: string;\n ldapServiceGuid: string;\n}\n\nexport interface IEmailsNotificationConfig {\n notificationsEnabled: boolean,\n notificationEmails: string[]\n}\n\nexport interface IOlmConnectionServiceConfig {\n olmServiceHost: string;\n olmServicePort: number;\n olmUserName: string;\n olmPassword: string;\n}\n\ninterface IKestrelConfig {\n port: number;\n useSsl: boolean;\n certFileName: string;\n certPassword: string;\n}\n\nexport interface IServiceConfigUpdateResult {\n boolVal: boolean;\n errorMessages: string[];\n errorStatusCode: number;\n errorType: number;\n hasError: boolean;\n intVal: number;\n stringVal: string;\n}\n\nexport const ServiceConfigModel: Partial = {\n olmServiceHost: null,\n olmServicePort: null,\n olmUserName: null,\n olmPassword: null,\n kestrel: {\n port: null,\n useSsl: null,\n certFileName: null,\n certPassword: null\n },\n ldapServiceApproved: null,\n requiredOlmMigration: null,\n ldapServiceHost: null\n};\n","import {Component, Inject, OnInit} from '@angular/core';\nimport { timer } from 'rxjs';\nimport { map, take } from 'rxjs/operators';\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\n\n@Component({\n selector: 'app-approval-request',\n templateUrl: './approval-request.component.html',\n styleUrls: ['./approval-request.component.scss']\n})\nexport class ApprovalRequestComponent implements OnInit {\n\n constructor(private dialogRef: MatDialogRef) {\n }\n\n public countdownStart = 300;\n public minutes = 5;\n public seconds = 0;\n\n ngOnInit() {\n timer(0, 1000)\n .pipe(map(i => this.countdownStart - i), take(this.countdownStart + 1))\n .subscribe(i => {\n this.minutes = Math.floor(i / 60);\n this.seconds = i - this.minutes * 60;\n if (i === 0) {\n this.dialogRef.close();\n }\n });\n }\n\n}\n","
\n
\n \n {{'Approval request was sent to OpenLM Server.'}}\n \n
\n\n
\n
\n {{'To approve the request go to OpenLM EasyAdmin → Administrator → External platform → Directory Synchronization Service'}}\n
\n\n
\n {{'The approval request will be valid for the next'}}\n\n 0{{minutes}}:{{seconds > 9 ? seconds : '0' + seconds}}\n\n \n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport {UntilDestroy} from '@ngneat/until-destroy';\nimport { UsersAndGroupsDeleteDialogComponent } from '../users-groups-delete-dialog/users-groups-delete-dialog.component';\n\n@UntilDestroy()\n@Component({\n selector: 'app-advanced-tab',\n templateUrl: './advanced-tab.component.html',\n styleUrls: ['./advanced-tab.component.scss']\n})\nexport class AdvancedTabComponent implements OnInit {\n\n constructor(\n private dialog: MatDialog\n ) { };\n\n ngOnInit(): void {\n }\n\n public onDeleteClick(): void {\n this.dialog.open(UsersAndGroupsDeleteDialogComponent, {\n width: '550px',\n minHeight: '200px',\n panelClass: 'scroll'\n })\n }\n}\n","
\n
\n

\n Delete all existing entities from the Directory Synchronization Service database.\n

\n
\n
\n
\n \n Delete users & groups from DSS DB\n \n
\n
\n","import {AfterViewInit, ChangeDetectorRef, Component, Input, OnInit} from '@angular/core';\nimport {FormControl, FormGroup} from '@angular/forms';\nimport {ServiceConfigFacade} from '../../service-config.facade';\nimport {IEmailsNotificationConfig} from '../../api/service-config.model';\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\nimport {filter} from 'rxjs/operators';\nimport {IColumn} from '../../../../shared/interfaces';\nimport {isDsConnectorEnabled} from '../../../../shared/utils';\n\n@UntilDestroy()\n@Component({\n selector: 'app-notification-tab',\n templateUrl: './notification-tab.component.html',\n styleUrls: ['./notification-tab.component.scss']\n})\nexport class NotificationTabComponent implements OnInit, AfterViewInit {\n\n constructor(\n public serviceConfigFacade: ServiceConfigFacade,\n private changeDetector: ChangeDetectorRef,\n ) {\n }\n\n @Input() public isEmailPendingApproval: boolean = false;\n @Input() public isServiceConfigFormGroupInvalid: boolean = false;\n\n public notificationFormGroup: FormGroup;\n public selectedTableEmails: string[] = [];\n public isDsConnecterOn: boolean = false;\n public emailsArr: string[] = [];\n public isShowAddEmailRecipientInput: boolean = false;\n // public email: FormControl = new FormControl(\n // '',\n // [\n // Validators.email,\n // Validators.required,\n // this.serviceConfigFacade.getRecipientListValidator()\n // ]);\n public columns: IColumn[] = [\n {\n label: 'Email',\n value: 'email',\n visible: true,\n disableVisibilityChange: true,\n tooltip: 'Email address who already receiving notification'\n },\n ];\n\n public ngOnInit(): void {\n this.initFormGroup();\n this.isDsConnecterOn = isDsConnectorEnabled();\n this.serviceConfigFacade.loadEmailsNotificationConfig();\n\n this.serviceConfigFacade.emailsNotificationConfig$\n .pipe(\n untilDestroyed(this),\n filter(value => !!value)\n )\n .subscribe((value) => {\n this.emailsArr = value.notificationEmails\n this.notificationFormGroup.setValue(value, {emitEvent: false})\n })\n this.notificationFormGroup.valueChanges\n .pipe(untilDestroyed(this))\n .subscribe((value: IEmailsNotificationConfig) => {\n this.serviceConfigFacade.updateEmailsNotificationConfigToStore(value)\n })\n this.serviceConfigFacade.isEmailPendingApproval\n .pipe(untilDestroyed(this))\n .subscribe((v) => {\n if (v) {\n this.serviceConfigFacade.email.setErrors({approve: true}, {emitEvent: false})\n }\n if (!v) {\n this.clearValidate();\n }\n })\n }\n\n public ngAfterViewInit(): void {\n this.changeDetector.detectChanges();\n }\n\n // todo move in facade\n public async saveServiceConfig(): Promise {\n if (this.serviceConfigFacade.email.invalid) return;\n\n if (!this.isEmailPendingApproval) {\n this.serviceConfigFacade.updateEmailsNotificationConfig();\n\n this.notificationFormGroup.controls['notificationEmails'].setValue(null, {emitEvent: false})\n this.selectedTableEmails = [];\n } else {\n this.serviceConfigFacade.isEmailPendingApproval.next(true)\n }\n }\n\n public onCancelChangesClick() {\n this.serviceConfigFacade.serviceConfigFormDirtyCheck.reset();\n this.serviceConfigFacade.serviceConfigFormDirtyCheck.setHead();\n }\n\n public isToggled(formControlName: string): boolean {\n return this.notificationFormGroup.controls[formControlName].value;\n }\n\n private initFormGroup(): void {\n this.notificationFormGroup = new FormGroup({\n notificationsEnabled: new FormControl(false, []),\n notificationEmails: new FormControl([], []),\n })\n }\n\n public async addBtnClicked(): Promise {\n this.isShowAddEmailRecipientInput = !this.isShowAddEmailRecipientInput\n this.serviceConfigFacade.isEmailPendingApproval.next(true)\n }\n\n public onCancelEmailClick(): void {\n this.serviceConfigFacade.email.reset(null, {emitEvent: false})\n this.clearValidate();\n this.serviceConfigFacade.isEmailPendingApproval.next(false)\n\n this.isShowAddEmailRecipientInput = !this.isShowAddEmailRecipientInput\n }\n\n public onApprovalEmailClick(): void {\n this.serviceConfigFacade.email.setErrors({approve: false}, {emitEvent: false})\n this.serviceConfigFacade.email.updateValueAndValidity({emitEvent: false})\n\n if (this.serviceConfigFacade.email?.value?.length > 0 && this.serviceConfigFacade.email.valid) {\n this.serviceConfigFacade.isEmailPendingApproval.next(false)\n this.serviceConfigFacade.addEmailsNotificationAddress(this.serviceConfigFacade.email.value)\n this.onCancelEmailClick();\n }\n }\n\n public deleteBtnClicked(): void {\n this.notificationFormGroup.controls['notificationEmails'].setValue(this.combineArrays(this.selectedTableEmails, this.emailsArr))\n this.serviceConfigFacade.isEmailPendingApproval.next(false)\n }\n\n public combineArrays(selectedTableEmails: string[], emailsArr: string[]): string[] {\n const combinedArray = selectedTableEmails.concat(emailsArr);\n\n const resultArray: string[] = [];\n\n for (const item of combinedArray) {\n if (resultArray.includes(item)) {\n const index = resultArray.indexOf(item);\n resultArray.splice(index, 1);\n } else {\n resultArray.push(item);\n }\n }\n\n return resultArray;\n }\n\n public masterToggle(): void {\n this.selectedTableEmails?.length === this.emailsArr?.length\n ? (this.selectedTableEmails = [])\n : (this.selectedTableEmails = this.emailsArr);\n }\n\n public areAllSelected(): boolean {\n return (\n this.selectedTableEmails.length > 0 &&\n this.selectedTableEmails.length === this.emailsArr.length\n );\n }\n\n public toggleTableRow(email: string, index: number): void {\n const selectedIndex = this.selectedTableEmails.findIndex(i => i === email);\n\n selectedIndex > -1\n ? this.selectedTableEmails.splice(selectedIndex, 1)\n : this.selectedTableEmails.push(email);\n }\n\n public isTableRowChecked(_guid: string): boolean {\n return this.selectedTableEmails.some(i => i === _guid);\n }\n\n private clearValidate(): void {\n this.serviceConfigFacade.email.setErrors(null, {emitEvent: false})\n this.serviceConfigFacade.email.markAsTouched()\n this.serviceConfigFacade.email.markAsPristine()\n this.serviceConfigFacade.email.markAsDirty()\n }\n}\n","
\n
\n Notifications\n \n \n
\n\n
\n Email recipients\n\n \n
\n \n \n Add email\n \n\n \n \n Delete\n \n
\n\n \n \n \n \n \n \n\n \n \n {{ column.label }}\n \n \n \n\n \n \n
\n \n\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n\n \n \n \n \n \n \n\n {{ email }}\n \n \n \n \n
\n
\n\n
\n \n cancel\n \n \n Save\n \n
\n\n","import {Component, OnDestroy, OnInit, ViewChild} from '@angular/core';\nimport {FormBuilder, FormGroup, Validators} from '@angular/forms';\nimport {ServiceConfigFacade} from '../../service-config.facade';\nimport {IServiceConfig} from '../../api/service-config.model';\nimport {MatDialog, MatDialogRef} from '@angular/material/dialog';\nimport {ConfirmDialogComponent, DialogData} from '../../../../shared/confirm-dialog/confirm-dialog.component';\nimport {filter} from 'rxjs/operators';\nimport {StringMap} from '@angular/compiler/src/compiler_facade_interface';\nimport {\n UnsavedChangesDialogComponent,\n UnsavedDialogResponse\n} from '../../../../shared/unsaved-changes-dialog/unsaved-changes-dialog.component';\nimport {ApprovalRequestComponent} from '../../components/approval-request/approval-request.component';\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\nimport {LoaderService} from '../../../../shared/loader/loader.service';\nimport {SnackbarService} from '../../../../shared/snackbar/snackbar-service/snackbar.service';\nimport {ButtonPropsModel, DialogComponent} from '@syncfusion/ej2-angular-popups';\nimport {TextSwapPipe} from 'src/app/shared/pipes/text-swap.pipe';\nimport {isDsConnectorEnabled} from 'src/app/shared/utils';\n\ndeclare let isCloud: boolean;\n\n@UntilDestroy()\n@Component({\n selector: 'app-service-config-page',\n templateUrl: './service-config-page.component.html',\n styleUrls: ['./service-config-page.component.scss']\n})\nexport class ServiceConfigPageComponent implements OnInit, OnDestroy {\n\n constructor(\n private fb: FormBuilder,\n public serviceConfigFacade: ServiceConfigFacade,\n private matDialog: MatDialog,\n private loaderService: LoaderService,\n private snackbarService: SnackbarService,\n private textSwapPipe: TextSwapPipe\n ) {\n }\n\n @ViewChild('securityChangedDialog')\n public securityChangedDialog: DialogComponent;\n\n public isCloud: boolean = isCloud;\n public serviceConfigFormGroup: FormGroup = null;\n\n public silentUpdate: boolean = null;\n public ignoreDeactivation = false;\n public invalidCertError: any;\n\n public infoText: StringMap = {};\n public uploadedFileName: string;\n public headerText: string;\n public isEmailPendingApproval: boolean = false;\n public isDsConnecterOn: boolean = false;\n public generalConfig: Partial = {};\n public securityChangedDialogText: string;\n public securityChangedDialogButtons: ButtonPropsModel[] = [\n {\n buttonModel: {\n isPrimary: true,\n content: 'OK, I understand'\n },\n click: () => this.securityChangedDialog.hide()\n }\n ];\n\n\n async ngOnInit() {\n this.initInfoText();\n this.isDsConnecterOn = isDsConnectorEnabled();\n\n this.serviceConfigFormGroup = this.fb.group({\n olmServiceHost: [null, [Validators.required]],\n olmServicePort: [isDsConnectorEnabled() ? 7094 : 5015, [Validators.required, Validators.min(1), Validators.max(65535)]],\n olmUserName: [null],\n olmPassword: [null],\n ldapServiceHost: [null, [Validators.required]],\n port: [7026],\n useSsl: [false],\n certFileName: [null],\n certPassword: [null]\n });\n\n this.serviceConfigFacade.loadConfig();\n\n this.serviceConfigFacade.selectServiceConfig$()\n .pipe(\n untilDestroyed(this),\n filter(c => Object.keys(c).length > 0)\n )\n .subscribe((config: Partial) => {\n this.updateForm(config);\n this.securityChangedDialogText = this.getSecurityChangeDialogText(config.ldapServiceHost, config.kestrel?.port);\n this.generalConfig = config;\n });\n\n this.serviceConfigFacade.selectServiceConfigError$()\n .pipe(untilDestroyed(this))\n .subscribe(err => {\n this.ignoreDeactivation = false;\n\n if (err && err.type === 400 && err.action === 'PATCH' && !!err.details?.invalidCertError) {\n this.invalidCertError = err.details.invalidCertError;\n }\n });\n\n this.serviceConfigFormGroup.valueChanges\n .pipe(untilDestroyed(this))\n .pipe(filter(_ => !this.silentUpdate))\n .subscribe(value => {\n const cleanObject = {\n ...value,\n kestrel: {\n port: value.port,\n useSsl: value.useSsl,\n certFileName: value.certFileName,\n certPassword: value.certPassword\n }\n };\n\n delete cleanObject.port;\n delete cleanObject.useSsl;\n delete cleanObject.certFileName;\n\n this.serviceConfigFacade.updateServiceConfigStore(cleanObject);\n });\n this.serviceConfigFacade.isEmailPendingApproval\n .pipe(untilDestroyed(this))\n .subscribe((isEmailPendingApproval) => {\n this.isEmailPendingApproval = isEmailPendingApproval;\n })\n }\n\n public updateForm(serviceConfig: Partial) {\n this.silentUpdate = true;\n\n Object.keys(serviceConfig).forEach(key => {\n if (this.serviceConfigFormGroup.controls[key] && serviceConfig[key]) {\n this.serviceConfigFormGroup.controls[key].patchValue(serviceConfig[key]);\n }\n });\n\n Object.keys(serviceConfig?.kestrel).forEach(key => {\n if (this.serviceConfigFormGroup.controls[key]) {\n this.serviceConfigFormGroup.controls[key].patchValue(serviceConfig.kestrel[key]);\n }\n });\n\n if (serviceConfig.kestrel && serviceConfig.kestrel.certFileName) {\n this.uploadedFileName = serviceConfig.kestrel.certFileName.split('\\\\').pop();\n }\n\n this.silentUpdate = false;\n }\n\n public checkUGSConnection(): void {\n this.serviceConfigFacade.checkUGS(this.generalConfig);\n }\n\n public async saveServiceConfig(): Promise {\n if (this.serviceConfigFacade.email.invalid) return;\n\n if (!this.isEmailPendingApproval) {\n this.serviceConfigFacade.updateEmailsNotificationConfig();\n this.serviceConfigFacade.updateServiceConfig();\n }\n\n this.serviceConfigFacade.isEmailPendingApproval.next(true)\n }\n\n public async onSaveClick(): Promise {\n this.ignoreDeactivation = true;\n let approveRequestDialog: MatDialogRef;\n\n const sameDss = await this.serviceConfigFacade.dssStayedTheSame(this.generalConfig);\n\n if (sameDss === undefined) {\n return;\n }\n\n if (!sameDss) {\n const agreedToMigrate = await this.openConnectionChangeDialog();\n\n if (!agreedToMigrate) {\n return;\n }\n }\n\n if (!this.generalConfig.ldapServiceApproved) {\n this.loaderService.disableLoader();\n approveRequestDialog = this.matDialog.open(ApprovalRequestComponent, {\n disableClose: true,\n width: '500px',\n height: '200px'\n });\n }\n\n const securitySettingsAreDifferent = await this.serviceConfigFacade.updateServiceConfig();\n\n if (!!approveRequestDialog) {\n approveRequestDialog.close();\n }\n this.loaderService.enableLoader();\n\n if (securitySettingsAreDifferent) {\n this.securityChangedDialog.show();\n }\n }\n\n public onCancelClick() {\n this.serviceConfigFacade.serviceConfigFormDirtyCheck.reset();\n this.serviceConfigFacade.serviceConfigFormDirtyCheck.setHead();\n this.uploadedFileName = '';\n }\n\n public async canDeactivate(): Promise {\n if (!this.ignoreDeactivation) {\n if (this.serviceConfigFacade.serviceConfigFormDirtyCheck.isDirty()) {\n const result: UnsavedDialogResponse = await this.matDialog.open(UnsavedChangesDialogComponent, {\n width: '430px',\n data: {\n screenName: 'Service Configuration'\n }\n }).afterClosed().toPromise();\n switch (result) {\n case 'CLOSE':\n return false;\n case 'CANCEL':\n this.serviceConfigFacade.serviceConfigFormDirtyCheck.reset();\n this.serviceConfigFacade.serviceConfigFormDirtyCheck.setHead();\n return true;\n default:\n this.onSaveClick();\n return false; // intentionally return false, don't allow user to leave this page as saving process implies multiple actions\n }\n }\n }\n return true;\n }\n\n public openConnectionChangeDialog(): Promise {\n return this.matDialog.open(ConfirmDialogComponent, {\n width: '600px',\n data: {\n header: 'OpenLM Server change detected',\n body: `The unique identifier of the OpenLM Server is different from the one previously configured to work with DSS. This might be a different installation.

Approving the DSS request in OpenLM EasyAdmin will clear the DSS database of any existing entities. These will be recreated on the next sync cycle.`,\n discardButton: true,\n discardButtonName: 'cancel',\n discardButtonType: 'default',\n confirmButton: true,\n confirmButtonName: 'I understand, Continue',\n confirmButtonType: 'primary'\n } as DialogData\n }).afterClosed().toPromise();\n }\n\n public async uploadCertificate(input: HTMLInputElement): Promise {\n if (input.files[0].type !== 'application/x-pkcs12') {\n this.snackbarService.triggerSnackbar({isError: true, message: 'Please provide a certificate in PFX format.'});\n\n return;\n }\n\n const certificatePath = await this.serviceConfigFacade.uploadCertificate(input.files[0]);\n\n this.serviceConfigFormGroup.get('certFileName').setValue(certificatePath);\n this.uploadedFileName = input.files[0].name;\n }\n\n private initInfoText() {\n this.headerText = this.textSwapPipe.transform('serviceConfig.connectivity.title');\n this.infoText.serviceConfig = this.textSwapPipe.transform('serviceConfig.connectivity.description');\n }\n\n ngOnDestroy() {\n }\n\n private getSecurityChangeDialogText(host: string, port: number) {\n return `We detected that the Enable Security in OpenLM is switched on.
To keep the DSS continuing and running synchs normally, you need to follow the steps below:

1. Access your Identity Service to Configure the DSS Address URL
DSS URL: ${host}:${port}
2. Restart DSS
3. Restart all the DSA`;\n }\n}\n","\n \n \n
\n Connectivity\n
\n
\n \n
\n
\n {{'Service configuration'}} \n
\n \n \n
\n
\n
\n
\n {{'serviceConfig.connectivity.formHeader' | textSwap }}\n
\n
\n
\n
\n IP/Hostname\n
\n \n
\n
\n
\n
\n
\n Port\n
\n \n
\n
\n
\n \n
\n
\n {{'DSS Server'}}\n
\n
\n
\n
\n IP/Hostname\n
\n \n
\n
\n
\n
\n
\n Port\n
\n \n
\n
\n
\n {{'SSL'}}\n \n
\n
\n
\n
\n
\n Password\n
\n \n\n \n Invalid Password\n \n
\n
\n
\n
\n
\n SSL certificate file (pfx)\n
\n \n
\n
\n
\n \n {{uploadedFileName}}\n
\n
\n
\n \n \n
\n
\n
\n\n \n \n
\n Time & Date\n
\n
\n \n \n \n
\n\n \n \n
\n Advanced\n
\n
\n \n \n \n
\n\n \n \n
\n Notifications\n
\n
\n
\n \n
\n
\n
\n\n
\n \n cancel\n \n \n Save\n \n
\n\n\n\n","import { Component, OnInit } from '@angular/core';\nimport * as moment from 'moment-timezone';\nimport {FormControl} from '@angular/forms';\nimport {timezoneList} from './timezones';\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\n\n@UntilDestroy()\n@Component({\n selector: 'app-time-settings-tab',\n templateUrl: './time-settings-tab.component.html',\n styleUrls: ['./time-settings-tab.component.scss']\n})\nexport class TimeSettingsTabComponent implements OnInit {\n\n constructor() { }\n\n public timezoneList: {\n label: string;\n tzCode: string\n }[] = timezoneList.slice();\n public timeZoneValue = new FormControl('');\n\n public timeFormatValue = new FormControl();\n\n public hoursFormats = [\n 'dd/MM/yyyy HH:mm:ss',\n 'MM/dd/yyyy HH:mm:ss',\n 'yyyy-MM-dd HH:mm:ss'\n ];\n\n ngOnInit(): void {\n const localStorageValues = this.initFromLocalStorage();\n this.timeZoneValue.patchValue(localStorageValues.timeZone);\n this.timeFormatValue.patchValue(localStorageValues.timeFormat);\n\n this.timeZoneValue\n .valueChanges\n .pipe(untilDestroyed(this))\n .subscribe(value => window.localStorage.setItem('user-timezone', value));\n\n this.timeFormatValue\n .valueChanges\n .pipe(untilDestroyed(this))\n .subscribe(value => window.localStorage.setItem('user-date-format', value));\n }\n\n private initFromLocalStorage(): {timeZone: string; timeFormat: string} {\n const timeZoneValue = window.localStorage.getItem('user-timezone');\n const timeFormatValue = window.localStorage.getItem('user-date-format');\n\n if (!timeZoneValue) {\n window.localStorage.setItem('user-timezone', moment.tz.guess())\n }\n\n if (!timeFormatValue) {\n window.localStorage.setItem('user-date-format', this.hoursFormats[0])\n }\n\n return {\n timeZone: window.localStorage.getItem('user-timezone'),\n timeFormat: window.localStorage.getItem('user-date-format')\n };\n }\n}\n","
\n
\n
\n Configure the DSS display timezone.\n
\n \n \n
\n\n
\n
\n Configure the DSS Date format\n
\n \n \n
\n
\n","export const timezoneList = [{offset: '-11:00', label: '(GMT-11:00) Niue', tzCode: 'Pacific/Niue'},\n {offset: '-11:00', label: '(GMT-11:00) Pago Pago', tzCode: 'Pacific/Pago_Pago'},\n {offset: '-10:00', label: '(GMT-10:00) Hawaii Time', tzCode: 'Pacific/Honolulu'},\n {offset: '-10:00', label: '(GMT-10:00) Rarotonga', tzCode: 'Pacific/Rarotonga'},\n {offset: '-10:00', label: '(GMT-10:00) Tahiti', tzCode: 'Pacific/Tahiti'},\n {offset: '-09:30', label: '(GMT-09:30) Marquesas', tzCode: 'Pacific/Marquesas'},\n {offset: '-09:00', label: '(GMT-09:00) Alaska Time', tzCode: 'America/Anchorage'},\n {offset: '-09:00', label: '(GMT-09:00) Gambier', tzCode: 'Pacific/Gambier'},\n {offset: '-08:00', label: '(GMT-08:00) Pacific Time', tzCode: 'America/Los_Angeles'},\n {offset: '-08:00', label: '(GMT-08:00) Pacific Time - Tijuana', tzCode: 'America/Tijuana'},\n {offset: '-08:00', label: '(GMT-08:00) Pacific Time - Vancouver', tzCode: 'America/Vancouver'},\n {offset: '-08:00', label: '(GMT-08:00) Pacific Time - Whitehorse', tzCode: 'America/Whitehorse'},\n {offset: '-08:00', label: '(GMT-08:00) Pitcairn', tzCode: 'Pacific/Pitcairn'},\n {offset: '-07:00', label: '(GMT-07:00) Mountain Time', tzCode: 'America/Denver'},\n {offset: '-07:00', label: '(GMT-07:00) Mountain Time - Arizona', tzCode: 'America/Phoenix'},\n {offset: '-07:00', label: '(GMT-07:00) Mountain Time - Chihuahua, Mazatlan', tzCode: 'America/Mazatlan'},\n {offset: '-07:00', label: '(GMT-07:00) Mountain Time - Dawson Creek', tzCode: 'America/Dawson_Creek'},\n {offset: '-07:00', label: '(GMT-07:00) Mountain Time - Edmonton', tzCode: 'America/Edmonton'},\n {offset: '-07:00', label: '(GMT-07:00) Mountain Time - Hermosillo', tzCode: 'America/Hermosillo'},\n {offset: '-07:00', label: '(GMT-07:00) Mountain Time - Yellowknife', tzCode: 'America/Yellowknife'},\n {offset: '-06:00', label: '(GMT-06:00) Belize', tzCode: 'America/Belize'},\n {offset: '-06:00', label: '(GMT-06:00) Central Time', tzCode: 'America/Chicago'},\n {offset: '-06:00', label: '(GMT-06:00) Central Time - Mexico City', tzCode: 'America/Mexico_City'},\n {offset: '-06:00', label: '(GMT-06:00) Central Time - Regina', tzCode: 'America/Regina'},\n {offset: '-06:00', label: '(GMT-06:00) Central Time - Tegucigalpa', tzCode: 'America/Tegucigalpa'},\n {offset: '-06:00', label: '(GMT-06:00) Central Time - Winnipeg', tzCode: 'America/Winnipeg'},\n {offset: '-06:00', label: '(GMT-06:00) Costa Rica', tzCode: 'America/Costa_Rica'},\n {offset: '-06:00', label: '(GMT-06:00) El Salvador', tzCode: 'America/El_Salvador'},\n {offset: '-06:00', label: '(GMT-06:00) Galapagos', tzCode: 'Pacific/Galapagos'},\n {offset: '-06:00', label: '(GMT-06:00) Guatemala', tzCode: 'America/Guatemala'},\n {offset: '-06:00', label: '(GMT-06:00) Managua', tzCode: 'America/Managua'},\n {offset: '-05:00', label: '(GMT-05:00) America Cancun', tzCode: 'America/Cancun'},\n {offset: '-05:00', label: '(GMT-05:00) Bogota', tzCode: 'America/Bogota'},\n {offset: '-05:00', label: '(GMT-05:00) Easter Island', tzCode: 'Pacific/Easter'},\n {offset: '-05:00', label: '(GMT-05:00) Eastern Time', tzCode: 'America/New_York'},\n {offset: '-05:00', label: '(GMT-05:00) Eastern Time - Iqaluit', tzCode: 'America/Iqaluit'},\n {offset: '-05:00', label: '(GMT-05:00) Eastern Time - Toronto', tzCode: 'America/Toronto'},\n {offset: '-05:00', label: '(GMT-05:00) Guayaquil', tzCode: 'America/Guayaquil'},\n {offset: '-05:00', label: '(GMT-05:00) Havana', tzCode: 'America/Havana'},\n {offset: '-05:00', label: '(GMT-05:00) Jamaica', tzCode: 'America/Jamaica'},\n {offset: '-05:00', label: '(GMT-05:00) Lima', tzCode: 'America/Lima'},\n {offset: '-05:00', label: '(GMT-05:00) Nassau', tzCode: 'America/Nassau'},\n {offset: '-05:00', label: '(GMT-05:00) Panama', tzCode: 'America/Panama'},\n {offset: '-05:00', label: '(GMT-05:00) Port-au-Prince', tzCode: 'America/Port-au-Prince'},\n {offset: '-05:00', label: '(GMT-05:00) Rio Branco', tzCode: 'America/Rio_Branco'},\n {offset: '-04:00', label: '(GMT-04:00) Atlantic Time - Halifax', tzCode: 'America/Halifax'},\n {offset: '-04:00', label: '(GMT-04:00) Barbados', tzCode: 'America/Barbados'},\n {offset: '-04:00', label: '(GMT-04:00) Bermuda', tzCode: 'Atlantic/Bermuda'},\n {offset: '-04:00', label: '(GMT-04:00) Boa Vista', tzCode: 'America/Boa_Vista'},\n {offset: '-04:00', label: '(GMT-04:00) Caracas', tzCode: 'America/Caracas'},\n {offset: '-04:00', label: '(GMT-04:00) Curacao', tzCode: 'America/Curacao'},\n {offset: '-04:00', label: '(GMT-04:00) Grand Turk', tzCode: 'America/Grand_Turk'},\n {offset: '-04:00', label: '(GMT-04:00) Guyana', tzCode: 'America/Guyana'},\n {offset: '-04:00', label: '(GMT-04:00) La Paz', tzCode: 'America/La_Paz'},\n {offset: '-04:00', label: '(GMT-04:00) Manaus', tzCode: 'America/Manaus'},\n {offset: '-04:00', label: '(GMT-04:00) Martinique', tzCode: 'America/Martinique'},\n {offset: '-04:00', label: '(GMT-04:00) Port of Spain', tzCode: 'America/Port_of_Spain'},\n {offset: '-04:00', label: '(GMT-04:00) Porto Velho', tzCode: 'America/Porto_Velho'},\n {offset: '-04:00', label: '(GMT-04:00) Puerto Rico', tzCode: 'America/Puerto_Rico'},\n {offset: '-04:00', label: '(GMT-04:00) Santo Domingo', tzCode: 'America/Santo_Domingo'},\n {offset: '-04:00', label: '(GMT-04:00) Thule', tzCode: 'America/Thule'},\n {offset: '-03:30', label: '(GMT-03:30) Newfoundland Time - St. Johns', tzCode: 'America/St_Johns'},\n {offset: '-03:00', label: '(GMT-03:00) Araguaina', tzCode: 'America/Araguaina'},\n {offset: '-03:00', label: '(GMT-03:00) Asuncion', tzCode: 'America/Asuncion'},\n {offset: '-03:00', label: '(GMT-03:00) Belem', tzCode: 'America/Belem'},\n {offset: '-03:00', label: '(GMT-03:00) Buenos Aires', tzCode: 'America/Argentina/Buenos_Aires'},\n {offset: '-03:00', label: '(GMT-03:00) Campo Grande', tzCode: 'America/Campo_Grande'},\n {offset: '-03:00', label: '(GMT-03:00) Cayenne', tzCode: 'America/Cayenne'},\n {offset: '-03:00', label: '(GMT-03:00) Cuiaba', tzCode: 'America/Cuiaba'},\n {offset: '-03:00', label: '(GMT-03:00) Fortaleza', tzCode: 'America/Fortaleza'},\n {offset: '-03:00', label: '(GMT-03:00) Godthab', tzCode: 'America/Godthab'},\n {offset: '-03:00', label: '(GMT-03:00) Maceio', tzCode: 'America/Maceio'},\n {offset: '-03:00', label: '(GMT-03:00) Miquelon', tzCode: 'America/Miquelon'},\n {offset: '-03:00', label: '(GMT-03:00) Montevideo', tzCode: 'America/Montevideo'},\n {offset: '-03:00', label: '(GMT-03:00) Palmer', tzCode: 'Antarctica/Palmer'},\n {offset: '-03:00', label: '(GMT-03:00) Paramaribo', tzCode: 'America/Paramaribo'},\n {offset: '-03:00', label: '(GMT-03:00) Punta Arenas', tzCode: 'America/Punta_Arenas'},\n {offset: '-03:00', label: '(GMT-03:00) Recife', tzCode: 'America/Recife'},\n {offset: '-03:00', label: '(GMT-03:00) Rothera', tzCode: 'Antarctica/Rothera'},\n {offset: '-03:00', label: '(GMT-03:00) Salvador', tzCode: 'America/Bahia'},\n {offset: '-03:00', label: '(GMT-03:00) Santiago', tzCode: 'America/Santiago'},\n {offset: '-03:00', label: '(GMT-03:00) Stanley', tzCode: 'Atlantic/Stanley'},\n {offset: '-02:00', label: '(GMT-02:00) Noronha', tzCode: 'America/Noronha'},\n {offset: '-02:00', label: '(GMT-02:00) Sao Paulo', tzCode: 'America/Sao_Paulo'},\n {offset: '-02:00', label: '(GMT-02:00) South Georgia', tzCode: 'Atlantic/South_Georgia'},\n {offset: '-01:00', label: '(GMT-01:00) Azores', tzCode: 'Atlantic/Azores'},\n {offset: '-01:00', label: '(GMT-01:00) Cape Verde', tzCode: 'Atlantic/Cape_Verde'},\n {offset: '-01:00', label: '(GMT-01:00) Scoresbysund', tzCode: 'America/Scoresbysund'},\n {offset: '+00:00', label: '(GMT+00:00) Abidjan', tzCode: 'Africa/Abidjan'},\n {offset: '+00:00', label: '(GMT+00:00) Accra', tzCode: 'Africa/Accra'},\n {offset: '+00:00', label: '(GMT+00:00) Bissau', tzCode: 'Africa/Bissau'},\n {offset: '+00:00', label: '(GMT+00:00) Canary Islands', tzCode: 'Atlantic/Canary'},\n {offset: '+00:00', label: '(GMT+00:00) Casablanca', tzCode: 'Africa/Casablanca'},\n {offset: '+00:00', label: '(GMT+00:00) Danmarkshavn', tzCode: 'America/Danmarkshavn'},\n {offset: '+00:00', label: '(GMT+00:00) Dublin', tzCode: 'Europe/Dublin'},\n {offset: '+00:00', label: '(GMT+00:00) El Aaiun', tzCode: 'Africa/El_Aaiun'},\n {offset: '+00:00', label: '(GMT+00:00) Faeroe', tzCode: 'Atlantic/Faroe'},\n {offset: '+00:00', label: '(GMT+00:00) GMT (no daylight saving)', tzCode: 'Etc/GMT'},\n {offset: '+00:00', label: '(GMT+00:00) Lisbon', tzCode: 'Europe/Lisbon'},\n {offset: '+00:00', label: '(GMT+00:00) London', tzCode: 'Europe/London'},\n {offset: '+00:00', label: '(GMT+00:00) Monrovia', tzCode: 'Africa/Monrovia'},\n {offset: '+00:00', label: '(GMT+00:00) Reykjavik', tzCode: 'Atlantic/Reykjavik'},\n {offset: '+01:00', label: '(GMT+01:00) Algiers', tzCode: 'Africa/Algiers'},\n {offset: '+01:00', label: '(GMT+01:00) Amsterdam', tzCode: 'Europe/Amsterdam'},\n {offset: '+01:00', label: '(GMT+01:00) Andorra', tzCode: 'Europe/Andorra'},\n {offset: '+01:00', label: '(GMT+01:00) Berlin', tzCode: 'Europe/Berlin'},\n {offset: '+01:00', label: '(GMT+01:00) Brussels', tzCode: 'Europe/Brussels'},\n {offset: '+01:00', label: '(GMT+01:00) Budapest', tzCode: 'Europe/Budapest'},\n {offset: '+01:00', label: '(GMT+01:00) Central European Time - Belgrade', tzCode: 'Europe/Belgrade'},\n {offset: '+01:00', label: '(GMT+01:00) Central European Time - Prague', tzCode: 'Europe/Prague'},\n {offset: '+01:00', label: '(GMT+01:00) Ceuta', tzCode: 'Africa/Ceuta'},\n {offset: '+01:00', label: '(GMT+01:00) Copenhagen', tzCode: 'Europe/Copenhagen'},\n {offset: '+01:00', label: '(GMT+01:00) Gibraltar', tzCode: 'Europe/Gibraltar'},\n {offset: '+01:00', label: '(GMT+01:00) Lagos', tzCode: 'Africa/Lagos'},\n {offset: '+01:00', label: '(GMT+01:00) Luxembourg', tzCode: 'Europe/Luxembourg'},\n {offset: '+01:00', label: '(GMT+01:00) Madrid', tzCode: 'Europe/Madrid'},\n {offset: '+01:00', label: '(GMT+01:00) Malta', tzCode: 'Europe/Malta'},\n {offset: '+01:00', label: '(GMT+01:00) Monaco', tzCode: 'Europe/Monaco'},\n {offset: '+01:00', label: '(GMT+01:00) Ndjamena', tzCode: 'Africa/Ndjamena'},\n {offset: '+01:00', label: '(GMT+01:00) Oslo', tzCode: 'Europe/Oslo'},\n {offset: '+01:00', label: '(GMT+01:00) Paris', tzCode: 'Europe/Paris'},\n {offset: '+01:00', label: '(GMT+01:00) Rome', tzCode: 'Europe/Rome'},\n {offset: '+01:00', label: '(GMT+01:00) Stockholm', tzCode: 'Europe/Stockholm'},\n {offset: '+01:00', label: '(GMT+01:00) Tirane', tzCode: 'Europe/Tirane'},\n {offset: '+01:00', label: '(GMT+01:00) Tunis', tzCode: 'Africa/Tunis'},\n {offset: '+01:00', label: '(GMT+01:00) Vienna', tzCode: 'Europe/Vienna'},\n {offset: '+01:00', label: '(GMT+01:00) Warsaw', tzCode: 'Europe/Warsaw'},\n {offset: '+01:00', label: '(GMT+01:00) Zurich', tzCode: 'Europe/Zurich'},\n {offset: '+02:00', label: '(GMT+02:00) Amman', tzCode: 'Asia/Amman'},\n {offset: '+02:00', label: '(GMT+02:00) Athens', tzCode: 'Europe/Athens'},\n {offset: '+02:00', label: '(GMT+02:00) Beirut', tzCode: 'Asia/Beirut'},\n {offset: '+02:00', label: '(GMT+02:00) Bucharest', tzCode: 'Europe/Bucharest'},\n {offset: '+02:00', label: '(GMT+02:00) Cairo', tzCode: 'Africa/Cairo'},\n {offset: '+02:00', label: '(GMT+02:00) Chisinau', tzCode: 'Europe/Chisinau'},\n {offset: '+02:00', label: '(GMT+02:00) Damascus', tzCode: 'Asia/Damascus'},\n {offset: '+02:00', label: '(GMT+02:00) Gaza', tzCode: 'Asia/Gaza'},\n {offset: '+02:00', label: '(GMT+02:00) Helsinki', tzCode: 'Europe/Helsinki'},\n {offset: '+02:00', label: '(GMT+02:00) Jerusalem', tzCode: 'Asia/Jerusalem'},\n {offset: '+02:00', label: '(GMT+02:00) Johannesburg', tzCode: 'Africa/Johannesburg'},\n {offset: '+02:00', label: '(GMT+02:00) Khartoum', tzCode: 'Africa/Khartoum'},\n {offset: '+02:00', label: '(GMT+02:00) Kiev', tzCode: 'Europe/Kiev'},\n {offset: '+02:00', label: '(GMT+02:00) Maputo', tzCode: 'Africa/Maputo'},\n {offset: '+02:00', label: '(GMT+02:00) Moscow-01 - Kaliningrad', tzCode: 'Europe/Kaliningrad'},\n {offset: '+02:00', label: '(GMT+02:00) Nicosia', tzCode: 'Asia/Nicosia'},\n {offset: '+02:00', label: '(GMT+02:00) Riga', tzCode: 'Europe/Riga'},\n {offset: '+02:00', label: '(GMT+02:00) Sofia', tzCode: 'Europe/Sofia'},\n {offset: '+02:00', label: '(GMT+02:00) Tallinn', tzCode: 'Europe/Tallinn'},\n {offset: '+02:00', label: '(GMT+02:00) Tripoli', tzCode: 'Africa/Tripoli'},\n {offset: '+02:00', label: '(GMT+02:00) Vilnius', tzCode: 'Europe/Vilnius'},\n {offset: '+02:00', label: '(GMT+02:00) Windhoek', tzCode: 'Africa/Windhoek'},\n {offset: '+03:00', label: '(GMT+03:00) Baghdad', tzCode: 'Asia/Baghdad'},\n {offset: '+03:00', label: '(GMT+03:00) Istanbul', tzCode: 'Europe/Istanbul'},\n {offset: '+03:00', label: '(GMT+03:00) Minsk', tzCode: 'Europe/Minsk'},\n {offset: '+03:00', label: '(GMT+03:00) Moscow+00 - Moscow', tzCode: 'Europe/Moscow'},\n {offset: '+03:00', label: '(GMT+03:00) Nairobi', tzCode: 'Africa/Nairobi'},\n {offset: '+03:00', label: '(GMT+03:00) Qatar', tzCode: 'Asia/Qatar'},\n {offset: '+03:00', label: '(GMT+03:00) Riyadh', tzCode: 'Asia/Riyadh'},\n {offset: '+03:00', label: '(GMT+03:00) Syowa', tzCode: 'Antarctica/Syowa'},\n {offset: '+03:30', label: '(GMT+03:30) Tehran', tzCode: 'Asia/Tehran'},\n {offset: '+04:00', label: '(GMT+04:00) Baku', tzCode: 'Asia/Baku'},\n {offset: '+04:00', label: '(GMT+04:00) Dubai', tzCode: 'Asia/Dubai'},\n {offset: '+04:00', label: '(GMT+04:00) Mahe', tzCode: 'Indian/Mahe'},\n {offset: '+04:00', label: '(GMT+04:00) Mauritius', tzCode: 'Indian/Mauritius'},\n {offset: '+04:00', label: '(GMT+04:00) Moscow+01 - Samara', tzCode: 'Europe/Samara'},\n {offset: '+04:00', label: '(GMT+04:00) Reunion', tzCode: 'Indian/Reunion'},\n {offset: '+04:00', label: '(GMT+04:00) Tbilisi', tzCode: 'Asia/Tbilisi'},\n {offset: '+04:00', label: '(GMT+04:00) Yerevan', tzCode: 'Asia/Yerevan'},\n {offset: '+04:30', label: '(GMT+04:30) Kabul', tzCode: 'Asia/Kabul'},\n {offset: '+05:00', label: '(GMT+05:00) Aqtau', tzCode: 'Asia/Aqtau'},\n {offset: '+05:00', label: '(GMT+05:00) Aqtobe', tzCode: 'Asia/Aqtobe'},\n {offset: '+05:00', label: '(GMT+05:00) Ashgabat', tzCode: 'Asia/Ashgabat'},\n {offset: '+05:00', label: '(GMT+05:00) Dushanbe', tzCode: 'Asia/Dushanbe'},\n {offset: '+05:00', label: '(GMT+05:00) Karachi', tzCode: 'Asia/Karachi'},\n {offset: '+05:00', label: '(GMT+05:00) Kerguelen', tzCode: 'Indian/Kerguelen'},\n {offset: '+05:00', label: '(GMT+05:00) Maldives', tzCode: 'Indian/Maldives'},\n {offset: '+05:00', label: '(GMT+05:00) Mawson', tzCode: 'Antarctica/Mawson'},\n {offset: '+05:00', label: '(GMT+05:00) Moscow+02 - Yekaterinburg', tzCode: 'Asia/Yekaterinburg'},\n {offset: '+05:00', label: '(GMT+05:00) Tashkent', tzCode: 'Asia/Tashkent'},\n {offset: '+05:30', label: '(GMT+05:30) Colombo', tzCode: 'Asia/Colombo'},\n {offset: '+05:30', label: '(GMT+05:30) India Standard Time', tzCode: 'Asia/Kolkata'},\n {offset: '+05:45', label: '(GMT+05:45) Kathmandu', tzCode: 'Asia/Kathmandu'},\n {offset: '+06:00', label: '(GMT+06:00) Almaty', tzCode: 'Asia/Almaty'},\n {offset: '+06:00', label: '(GMT+06:00) Bishkek', tzCode: 'Asia/Bishkek'},\n {offset: '+06:00', label: '(GMT+06:00) Chagos', tzCode: 'Indian/Chagos'},\n {offset: '+06:00', label: '(GMT+06:00) Dhaka', tzCode: 'Asia/Dhaka'},\n {offset: '+06:00', label: '(GMT+06:00) Moscow+03 - Omsk', tzCode: 'Asia/Omsk'},\n {offset: '+06:00', label: '(GMT+06:00) Thimphu', tzCode: 'Asia/Thimphu'},\n {offset: '+06:00', label: '(GMT+06:00) Vostok', tzCode: 'Antarctica/Vostok'},\n {offset: '+06:30', label: '(GMT+06:30) Cocos', tzCode: 'Indian/Cocos'},\n {offset: '+06:30', label: '(GMT+06:30) Rangoon', tzCode: 'Asia/Yangon'},\n {offset: '+07:00', label: '(GMT+07:00) Bangkok', tzCode: 'Asia/Bangkok'},\n {offset: '+07:00', label: '(GMT+07:00) Christmas', tzCode: 'Indian/Christmas'},\n {offset: '+07:00', label: '(GMT+07:00) Davis', tzCode: 'Antarctica/Davis'},\n {offset: '+07:00', label: '(GMT+07:00) Hanoi', tzCode: 'Asia/Saigon'},\n {offset: '+07:00', label: '(GMT+07:00) Hovd', tzCode: 'Asia/Hovd'},\n {offset: '+07:00', label: '(GMT+07:00) Jakarta', tzCode: 'Asia/Jakarta'},\n {offset: '+07:00', label: '(GMT+07:00) Moscow+04 - Krasnoyarsk', tzCode: 'Asia/Krasnoyarsk'},\n {offset: '+08:00', label: '(GMT+08:00) Brunei', tzCode: 'Asia/Brunei'},\n {offset: '+08:00', label: '(GMT+08:00) China Time - Beijing', tzCode: 'Asia/Shanghai'},\n {offset: '+08:00', label: '(GMT+08:00) Choibalsan', tzCode: 'Asia/Choibalsan'},\n {offset: '+08:00', label: '(GMT+08:00) Hong Kong', tzCode: 'Asia/Hong_Kong'},\n {offset: '+08:00', label: '(GMT+08:00) Kuala Lumpur', tzCode: 'Asia/Kuala_Lumpur'},\n {offset: '+08:00', label: '(GMT+08:00) Macau', tzCode: 'Asia/Macau'},\n {offset: '+08:00', label: '(GMT+08:00) Makassar', tzCode: 'Asia/Makassar'},\n {offset: '+08:00', label: '(GMT+08:00) Manila', tzCode: 'Asia/Manila'},\n {offset: '+08:00', label: '(GMT+08:00) Moscow+05 - Irkutsk', tzCode: 'Asia/Irkutsk'},\n {offset: '+08:00', label: '(GMT+08:00) Singapore', tzCode: 'Asia/Singapore'},\n {offset: '+08:00', label: '(GMT+08:00) Taipei', tzCode: 'Asia/Taipei'},\n {offset: '+08:00', label: '(GMT+08:00) Ulaanbaatar', tzCode: 'Asia/Ulaanbaatar'},\n {offset: '+08:00', label: '(GMT+08:00) Western Time - Perth', tzCode: 'Australia/Perth'},\n {offset: '+08:30', label: '(GMT+08:30) Pyongyang', tzCode: 'Asia/Pyongyang'},\n {offset: '+09:00', label: '(GMT+09:00) Dili', tzCode: 'Asia/Dili'},\n {offset: '+09:00', label: '(GMT+09:00) Jayapura', tzCode: 'Asia/Jayapura'},\n {offset: '+09:00', label: '(GMT+09:00) Moscow+06 - Yakutsk', tzCode: 'Asia/Yakutsk'},\n {offset: '+09:00', label: '(GMT+09:00) Palau', tzCode: 'Pacific/Palau'},\n {offset: '+09:00', label: '(GMT+09:00) Seoul', tzCode: 'Asia/Seoul'},\n {offset: '+09:00', label: '(GMT+09:00) Tokyo', tzCode: 'Asia/Tokyo'},\n {offset: '+09:30', label: '(GMT+09:30) Central Time - Darwin', tzCode: 'Australia/Darwin'},\n {offset: '+10:00', label: '(GMT+10:00) Dumont D\\'Urville', tzCode: 'Antarctica/DumontDUrville'},\n {offset: '+10:00', label: '(GMT+10:00) Eastern Time - Brisbane', tzCode: 'Australia/Brisbane'},\n {offset: '+10:00', label: '(GMT+10:00) Guam', tzCode: 'Pacific/Guam'},\n {offset: '+10:00', label: '(GMT+10:00) Moscow+07 - Vladivostok', tzCode: 'Asia/Vladivostok'},\n {offset: '+10:00', label: '(GMT+10:00) Port Moresby', tzCode: 'Pacific/Port_Moresby'},\n {offset: '+10:00', label: '(GMT+10:00) Truk', tzCode: 'Pacific/Chuuk'},\n {offset: '+10:30', label: '(GMT+10:30) Central Time - Adelaide', tzCode: 'Australia/Adelaide'},\n {offset: '+11:00', label: '(GMT+11:00) Casey', tzCode: 'Antarctica/Casey'},\n {offset: '+11:00', label: '(GMT+11:00) Eastern Time - Hobart', tzCode: 'Australia/Hobart'},\n {offset: '+11:00', label: '(GMT+11:00) Eastern Time - Melbourne, Sydney', tzCode: 'Australia/Sydney'},\n {offset: '+11:00', label: '(GMT+11:00) Efate', tzCode: 'Pacific/Efate'},\n {offset: '+11:00', label: '(GMT+11:00) Guadalcanal', tzCode: 'Pacific/Guadalcanal'},\n {offset: '+11:00', label: '(GMT+11:00) Kosrae', tzCode: 'Pacific/Kosrae'},\n {offset: '+11:00', label: '(GMT+11:00) Moscow+08 - Magadan', tzCode: 'Asia/Magadan'},\n {offset: '+11:00', label: '(GMT+11:00) Norfolk', tzCode: 'Pacific/Norfolk'},\n {offset: '+11:00', label: '(GMT+11:00) Noumea', tzCode: 'Pacific/Noumea'},\n {offset: '+11:00', label: '(GMT+11:00) Ponape', tzCode: 'Pacific/Pohnpei'},\n {offset: '+12:00', label: '(GMT+12:00) Funafuti', tzCode: 'Pacific/Funafuti'},\n {offset: '+12:00', label: '(GMT+12:00) Kwajalein', tzCode: 'Pacific/Kwajalein'},\n {offset: '+12:00', label: '(GMT+12:00) Majuro', tzCode: 'Pacific/Majuro'},\n {offset: '+12:00', label: '(GMT+12:00) Moscow+09 - Petropavlovsk-Kamchatskiy', tzCode: 'Asia/Kamchatka'},\n {offset: '+12:00', label: '(GMT+12:00) Nauru', tzCode: 'Pacific/Nauru'},\n {offset: '+12:00', label: '(GMT+12:00) Tarawa', tzCode: 'Pacific/Tarawa'},\n {offset: '+12:00', label: '(GMT+12:00) Wake', tzCode: 'Pacific/Wake'},\n {offset: '+12:00', label: '(GMT+12:00) Wallis', tzCode: 'Pacific/Wallis'},\n {offset: '+13:00', label: '(GMT+13:00) Auckland', tzCode: 'Pacific/Auckland'},\n {offset: '+13:00', label: '(GMT+13:00) Enderbury', tzCode: 'Pacific/Enderbury'},\n {offset: '+13:00', label: '(GMT+13:00) Fakaofo', tzCode: 'Pacific/Fakaofo'},\n {offset: '+13:00', label: '(GMT+13:00) Fiji', tzCode: 'Pacific/Fiji'},\n {offset: '+13:00', label: '(GMT+13:00) Tongatapu', tzCode: 'Pacific/Tongatapu'},\n {offset: '+14:00', label: '(GMT+14:00) Apia', tzCode: 'Pacific/Apia'},\n {offset: '+14:00', label: '(GMT+14:00) Kiritimati', tzCode: 'Pacific/Kiritimati'}\n];\n","import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { ServiceConfigFacade } from '../../service-config.facade';\n\n\n@Component({\n selector: 'app-users-groups-delete-page',\n templateUrl: './users-groups-delete-dialog.component.html',\n styleUrls: ['./users-groups-delete-dialog.component.scss']\n})\nexport class UsersAndGroupsDeleteDialogComponent {\n constructor(\n public serviceConfigFacade: ServiceConfigFacade,\n public dialogRef: MatDialogRef\n ) {\n }\n\n public onCancelClick(): void {\n this.dialogRef.close();\n }\n\n public async onDeleteClick(): Promise {\n await this.serviceConfigFacade.deleteUsersAndGroups();\n this.dialogRef.close(true);\n }\n}\n","
\n\t
\n\t\tDelete users & groups from DSS DB \n\t
\n\t
\n
\n
\n\t
\n\t\tYou are about to delete all users and groups entities from the DSS database. This is an irreversible action. Proceed?\n\t
\n
\n
\n\t
\n\t\t\n\t\t\n\t
\n
\n","import {Injectable} from '@angular/core';\nimport {ServiceConfigApiService} from './api/service-config.api.service';\nimport {IEmailsNotificationConfig, IServiceConfig, ServiceConfigModel} from './api/service-config.model';\nimport {ServiceConfigQuery, ServiceConfigService, ServiceConfigStore} from './state/service-config';\nimport {SnackbarService} from '../../shared/snackbar/snackbar-service/snackbar.service';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {DirtyCheckPlugin} from '@datorama/akita';\nimport {alignToModel, parseError} from '../../shared/utils';\nimport {UIError} from '../../shared/interfaces';\nimport {FormControl, FormGroup, ValidatorFn, Validators} from '@angular/forms';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ServiceConfigFacade {\n\n constructor(\n private serviceConfigApiService: ServiceConfigApiService,\n private serviceConfigService: ServiceConfigService,\n private serviceConfigQuery: ServiceConfigQuery,\n private serviceConfigStore: ServiceConfigStore,\n private snackbarService: SnackbarService\n ) {\n }\n\n public serviceConfigFormDirtyCheck = new DirtyCheckPlugin(this.serviceConfigQuery);\n public isEmailPendingApproval: BehaviorSubject = new BehaviorSubject(false);\n public emailsNotificationConfig$: Observable = this.serviceConfigQuery.select(q => q.emailsNotification)\n public email: FormControl = new FormControl(\n '',\n [\n Validators.email,\n Validators.required,\n this.getRecipientListValidator()\n ]);\n\n public async loadEmailsNotificationConfig(): Promise {\n try {\n const config = await this.serviceConfigApiService.getEmailsNotificationConfig().toPromise();\n\n this.serviceConfigStore.update((state) => ({\n ...state,\n emailsNotification: config\n }));\n this.serviceConfigFormDirtyCheck.setHead();\n } catch (e) {\n this.snackbarService.triggerSnackbar({\n message: parseError(e),\n isError: true,\n });\n }\n }\n\n public async updateEmailsNotificationConfig(): Promise {\n try {\n const emailsNotificationConfig = this.serviceConfigStore.getValue().emailsNotification;\n\n await this.serviceConfigApiService.updateEmailsNotificationConfig(emailsNotificationConfig).toPromise();\n\n this.snackbarService.triggerSnackbar({message: 'Email notification configuration saved successfully.'});\n this.serviceConfigFormDirtyCheck.setHead()\n } catch (e) {\n const parsedError = parseError(e);\n\n const uiError = {\n type: e.status,\n action: 'PATCH'\n } as UIError;\n\n if (parsedError === 'Provided certificate password is not valid.') {\n uiError.details = {\n invalidCertError: {\n password: this.serviceConfigQuery.getServiceConfigDTO().kestrel.certPassword\n }\n };\n }\n\n this.setStoreError(uiError);\n\n this.snackbarService.triggerSnackbar({\n message: parsedError,\n isError: true,\n });\n }\n }\n\n public updateEmailsNotificationConfigToStore(formValue: IEmailsNotificationConfig): void {\n this.serviceConfigStore.update((state) => ({\n ...state,\n emailsNotification: formValue\n }));\n }\n\n public addEmailsNotificationAddress(email: string): void {\n const emailsArr = [...this.serviceConfigStore.getValue().emailsNotification.notificationEmails ?? [], email]\n\n this.serviceConfigStore.update((state) => ({\n ...state,\n emailsNotification: {\n ...state.emailsNotification,\n notificationEmails: emailsArr\n }\n }));\n }\n\n public async loadConfig(): Promise {\n try {\n const config = await this.serviceConfigApiService.getConfig().toPromise();\n const generalConfig = alignToModel>(config, ServiceConfigModel);\n\n generalConfig.kestrel.certPassword = '';\n generalConfig.olmServicePort = generalConfig.olmServicePort || 5015;\n generalConfig.olmServiceHost = generalConfig.olmServiceHost || 'http://localhost';\n generalConfig.ldapServiceHost = generalConfig.ldapServiceHost || window.location.protocol + '//' + window.location.hostname;\n\n this.serviceConfigService.set(generalConfig);\n this.serviceConfigFormDirtyCheck.setHead();\n } catch (e) {\n this.snackbarService.triggerSnackbar({\n message: parseError(e),\n isError: true,\n });\n }\n }\n\n public selectServiceConfig$(): Observable> {\n return this.serviceConfigQuery.select();\n }\n\n public selectServiceConfigError$(): Observable {\n return this.serviceConfigQuery.selectError();\n }\n\n public updateServiceConfigStore(serviceConfig: Partial) {\n this.serviceConfigService.update(serviceConfig);\n }\n\n public async updateServiceConfig(): Promise {\n try {\n const serviceConfig = this.serviceConfigQuery.getServiceConfigDTO();\n const response = await this.serviceConfigApiService.updateConfig(serviceConfig).toPromise();\n this.snackbarService.triggerSnackbar({message: 'Service configuration saved successfully.'});\n this.serviceConfigFormDirtyCheck.setHead()\n\n return response.stringVal === 'SecureModeChanged';\n } catch (e) {\n const wasDirty = this.serviceConfigFormDirtyCheck.isDirty();\n const parsedError = parseError(e);\n const uiError = {\n type: e.status,\n action: 'PATCH'\n } as UIError;\n\n if (parsedError === 'Provided certificate password is not valid.') {\n uiError.details = {\n invalidCertError: {\n password: this.serviceConfigQuery.getServiceConfigDTO().kestrel.certPassword\n }\n };\n }\n\n this.setStoreError(uiError);\n\n this.snackbarService.triggerSnackbar({\n message: parsedError,\n isError: true,\n });\n\n if (!wasDirty) {\n this.serviceConfigFormDirtyCheck.setHead();\n }\n }\n }\n\n public async uploadCertificate(certificate: File): Promise {\n try {\n const response = await this.serviceConfigApiService.uploadConfigCertificate(certificate).toPromise();\n\n return response.path;\n } catch (err) {\n this.setStoreError({\n action: 'POST',\n type: err.status\n });\n console.log(err);\n\n this.snackbarService.triggerSnackbar({\n message: parseError(err),\n isError: true,\n });\n }\n }\n\n public async dssStayedTheSame(serviceConfig: Partial): Promise {\n try {\n return await this.serviceConfigApiService.dssChangedCheck(serviceConfig).toPromise();\n } catch (err) {\n this.setStoreError({\n action: 'GET',\n type: err.status\n });\n\n\n this.snackbarService.triggerSnackbar({\n message: parseError(err),\n isError: true\n });\n }\n }\n\n public async checkUGS(serviceConfig: Partial): Promise {\n try {\n await this.serviceConfigApiService.checkUGS(serviceConfig).toPromise();\n this.snackbarService.triggerSnackbar({\n isError: false,\n message: 'Check connection successful.'\n });\n } catch (err) {\n this.setStoreError({\n action: 'GET',\n type: err.status\n });\n\n\n this.snackbarService.triggerSnackbar({\n message: parseError(err),\n isError: true\n });\n }\n }\n\n public async deleteUsersAndGroups(): Promise {\n try {\n await this.serviceConfigApiService.deleteUsersAndGroups().toPromise();\n\n this.snackbarService.triggerSnackbar({\n isError: false,\n message: 'Users and Groups deleted successfully.'\n });\n } catch (e) {\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Failed to delete Users and Groups, details: ${parseError(e)}`\n });\n }\n }\n\n public setStoreError(error: UIError): void {\n this.serviceConfigService.setError(error);\n }\n\n private getRecipientListValidator(): ValidatorFn {\n return this.serviceConfigQuery.emailsRecipientControlValidator()\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ServiceConfigPageComponent} from './containers/service-config-page/service-config-page.component';\nimport {SharedModule} from '../../shared/shared.module';\nimport {OpenlmModule} from 'openlm';\nimport {ApprovalRequestComponent} from './components/approval-request/approval-request.component';\nimport {TimeSettingsTabComponent} from './containers/time-settings-tab/time-settings-tab.component';\nimport {AdvancedTabComponent} from './containers/adavanced-tab/advanced-tab.component';\nimport {UsersAndGroupsDeleteDialogComponent} from './containers/users-groups-delete-dialog/users-groups-delete-dialog.component';\nimport {NotificationTabComponent} from './containers/notification-tab/notification-tab.component';\n\n\n@NgModule({\n entryComponents: [\n ApprovalRequestComponent\n ],\n declarations: [\n ServiceConfigPageComponent,\n ApprovalRequestComponent,\n TimeSettingsTabComponent,\n AdvancedTabComponent,\n UsersAndGroupsDeleteDialogComponent,\n NotificationTabComponent\n ],\n imports: [\n CommonModule,\n SharedModule,\n OpenlmModule\n ]\n})\nexport class ServiceConfigModule {\n}\n","export * from './service-config.query';\nexport * from './service-config.store';\nexport * from './service-config.service';\n","import { Injectable } from '@angular/core';\nimport { Query } from '@datorama/akita';\nimport { ServiceConfigStore } from './service-config.store';\nimport { IServiceConfig, ServiceConfigModel } from '../../api/service-config.model';\nimport { alignToModel } from '../../../../shared/utils';\nimport {AbstractControl, FormGroup, ValidationErrors, ValidatorFn} from '@angular/forms';\n\n@Injectable({ providedIn: 'root' })\nexport class ServiceConfigQuery extends Query> {\n\n constructor(protected store: ServiceConfigStore) {\n super(store);\n }\n\n getServiceConfigDTO() {\n const serviceConfig = this.store.getValue();\n return alignToModel>(serviceConfig, ServiceConfigModel);\n }\n\n public emailsRecipientControlValidator(): ValidatorFn {\n return (control:AbstractControl): ValidationErrors | null => {\n\n return this.store.getValue()?.emailsNotification?.notificationEmails?.indexOf(control.value) > -1 ? {allReadyExists: true} : null;\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ServiceConfigStore } from './service-config.store';\nimport { IServiceConfig, ServiceConfigModel } from '../../api/service-config.model';\nimport { alignToModel } from '../../../../shared/utils';\n\n@Injectable({ providedIn: 'root' })\nexport class ServiceConfigService {\n\n constructor(private serviceConfigStore: ServiceConfigStore) {\n }\n\n\n update(serviceConfig: Partial) {\n this.serviceConfigStore.update(serviceConfig);\n }\n\n set(serviceConfig: Partial) {\n const cleanServiceConfig: Partial = alignToModel>(serviceConfig, ServiceConfigModel);\n this.serviceConfigStore.update(cleanServiceConfig);\n }\n\n setError(error: any) {\n this.serviceConfigStore.setError(error)\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Store, StoreConfig } from '@datorama/akita';\nimport { IServiceConfig } from '../../api/service-config.model';\n\n\nexport function createInitialState(): Partial {\n return {};\n}\n\n@Injectable({ providedIn: 'root' })\n@StoreConfig({ name: 'service-config' })\nexport class ServiceConfigStore extends Store> {\n\n constructor() {\n super(createInitialState());\n }\n\n}\n\n","import {ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {TableColumn} from 'openlm';\nimport {SyncHistoryDetailUiQuery, SyncHistoryDetailUiService} from '../../../state/sync-history-detail-ui';\nimport {SyncHistoryFacade} from '../../../sync-history.facade';\nimport {BehaviorSubject, combineLatest} from 'rxjs';\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\nimport {filter, switchMap, tap} from 'rxjs/operators';\nimport {ISyncHistoryDetail, SyncStatusEnum} from '../../../models/sync-history-detail.interface';\nimport {downloadFile} from '../../../../../shared/utils';\n\n@UntilDestroy()\n@Component({\n selector: 'app-sync-history-detail',\n templateUrl: './sync-history-detail.component.html',\n styleUrls: ['./sync-history-detail.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SyncHistoryDetailComponent implements OnInit {\n\n constructor(\n public syncHistoryFacade: SyncHistoryFacade,\n private syncHistoryDetailUiQuery: SyncHistoryDetailUiQuery,\n public syncHistoryDetailUiService: SyncHistoryDetailUiService,\n ) {\n }\n\n @Input() jobId$: BehaviorSubject;\n\n @Input() searchTermToHighlight: string;\n\n @Output() print: EventEmitter = new EventEmitter();\n\n failedProcess: ISyncHistoryDetail;\n previewsProcess: ISyncHistoryDetail;\n refreshSyncHistory$: BehaviorSubject = new BehaviorSubject(false);\n\n ldapTableColumns: TableColumn[] | any;\n ldapSyncHistoryDetails$ = this.syncHistoryFacade.selectAllSyncHistoryDetail$().pipe(\n tap(data => {\n this.setFailedProcesses(data);\n })\n );\n failedToLoadSyncHistoryDetails$ = this.syncHistoryFacade.selectSyncHistoryDetailError$();\n\n ngOnInit(): void {\n combineLatest([\n this.jobId$,\n this.syncHistoryDetailUiQuery.selectTableColumns$.pipe(\n filter(value => {\n if (!value) {\n this.syncHistoryDetailUiService.setTableColumns(this.getDefaultColumns());\n return false;\n }\n return true;\n })\n )\n ]).pipe(\n untilDestroyed(this),\n tap(([, columns]) => {\n this.ldapTableColumns = columns;\n }),\n filter(([jobId]) => !!jobId),\n switchMap(([jobId]) => {\n return this.syncHistoryFacade.loadAllSyncHistoryDetails(jobId);\n })\n ).subscribe();\n }\n\n public trackByFn(index, item: ISyncHistoryDetail): string {\n return item._id;\n }\n\n public async getSyncHistoryDetails(): Promise {\n const jobId = this.jobId$.getValue();\n await this.syncHistoryFacade.loadAllSyncHistoryDetails(jobId).subscribe();\n }\n\n setFailedProcesses(data: ISyncHistoryDetail[]): void {\n const [failedProcess] = data.filter((item) => item.status === SyncStatusEnum.EXECUTION_FAILED);\n const [previewsProcess] = data.filter((item, index) => data[index + 1]?.status === SyncStatusEnum.EXECUTION_FAILED);\n this.failedProcess = failedProcess;\n this.previewsProcess = previewsProcess;\n }\n\n async exportClicked(): Promise {\n const text = await this.syncHistoryFacade.downloadSyncHistoryDetailCsv(this.jobId$.getValue());\n downloadFile(text);\n }\n\n getDefaultColumns() {\n return [\n {\n label: 'Execution status',\n value: 'statusMessage',\n visible: true\n },\n {\n label: 'Update date',\n value: 'updateDate',\n visible: true\n }\n ];\n }\n\n}\n","\n \n \n \n \n
\n {{column.label}}\n
\n \n
\n \n \n \n \n \n
\n \n \n \n \n \n No results found\n \n \n \n \n \n\n \n
\n \n \n \n
\n \n
\n\n \n \n \n \n \n
\n \n
\n
\n
\n \n
\n
\n \n \n

“{{previewsProcess.statusMessage}}”\n failed at {{failedProcess.updateDate | userDate: 'HH:mm:ss'}}

\n
\n

Error: {{failedProcess.errorMessage}}

\n
\n
\n\n\n\n
\n Failed to load Sync history details\n
\n
\n","import {ChangeDetectionStrategy, Component, ElementRef, OnInit, ViewChild} from '@angular/core';\nimport {SyncHistoryFacade} from '../../sync-history.facade';\nimport {BehaviorSubject, combineLatest} from 'rxjs';\nimport {SyncHistoryUiQuery, SyncHistoryUiService} from '../../state/sync-history-ui';\nimport {filter, map, startWith, switchMap, tap, withLatestFrom} from 'rxjs/operators';\nimport {TableColumn, TableComponent} from 'openlm';\nimport {FinalStatusEnum, ISyncHistory} from '../../models/sync-history.interface';\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {downloadFile} from '../../../../shared/utils';\n\nexport type PrintTableOption = 'left' | 'right';\n\n@UntilDestroy()\n@Component({\n selector: 'app-sync-history-page',\n templateUrl: './sync-history-page.component.html',\n styleUrls: ['./sync-history-page.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SyncHistoryPageComponent implements OnInit {\n constructor(\n public syncHistoryFacade: SyncHistoryFacade,\n public syncHistoryUiQuery: SyncHistoryUiQuery,\n public syncHistoryUiService: SyncHistoryUiService,\n private router: Router,\n public route: ActivatedRoute\n ) {\n }\n\n @ViewChild(TableComponent, {read: ElementRef}) table;\n\n printTableOption: PrintTableOption;\n\n finalStatusEnum = FinalStatusEnum;\n infoText = this.getInfoText();\n public ldapTableColumns: TableColumn[] | any;\n public searchTermToHighlight: string = null;\n\n refreshSyncHistory$: BehaviorSubject = new BehaviorSubject(false);\n failedToLoadSyncHistories$ = this.syncHistoryFacade.selectSyncHistoryError$();\n\n ldapSyncHistories$ = this.syncHistoryFacade.selectAllSyncHistories$().pipe(\n filter(ldapSyncHistories => !!ldapSyncHistories.length),\n withLatestFrom(this.syncHistoryUiQuery.selectPaginationStartFrom$.pipe(\n map(value => value?.indexOfElement || 0)\n )),\n tap(([ldapSyncHistories, paginationStartFrom]) => {\n this.jobId$.next(ldapSyncHistories[paginationStartFrom].jobId)\n this.tryToFocusElement(paginationStartFrom);\n }),\n map(([ldapSyncHistories]) => {\n return ldapSyncHistories;\n })\n )\n jobId$: BehaviorSubject = new BehaviorSubject(null);\n\n ngOnInit(): void {\n this.refreshSyncHistory$\n .pipe(\n untilDestroyed(this),\n filter(isRefreshClick => !!isRefreshClick),\n switchMap(() => {\n return this.syncHistoryFacade.loadAllSyncHistory().pipe(\n tap(() => {\n this.refreshSyncHistory$.next(false);\n })\n );\n })\n )\n .subscribe();\n combineLatest([\n this.syncHistoryUiQuery.selectPagination$.pipe(startWith(this.syncHistoryUiQuery.pagination)),\n this.syncHistoryUiQuery.selectSort$,\n this.syncHistoryUiQuery.selectSearchTerm$,\n this.syncHistoryUiQuery.selectTableColumns$\n .pipe(filter(value => {\n if (!value) {\n this.syncHistoryUiService.setTableColumns(this.getDefaultColumns());\n return false;\n }\n return true;\n }))\n ]).pipe(\n untilDestroyed(this),\n tap(([, , , columns]) => {\n this.ldapTableColumns = columns;\n }),\n switchMap(([pagination, sort, searchTerm]) => {\n if (!searchTerm) {\n this.router.navigateByUrl('/sync-history');\n }\n return this.syncHistoryFacade.loadAllSyncHistory({pagination, sort, searchTerm}).pipe(\n tap(() => {\n this.searchTermToHighlight = searchTerm;\n })\n );\n })\n ).subscribe();\n }\n\n public tryToFocusElement(startFromElementIndex: number): void {\n this.table?.nativeElement.querySelector('tbody')?.children[startFromElementIndex]?.focus();\n this.syncHistoryUiService.resetPaginationStartFrom();\n }\n\n public trackByFn(index, item: ISyncHistory): string {\n return item._id;\n }\n\n onRowClick(syncHistory: ISyncHistory) {\n if (this.jobId$.getValue() !== syncHistory.jobId) {\n this.jobId$.next(syncHistory.jobId);\n }\n }\n\n async exportClicked(): Promise {\n const text = await this.syncHistoryFacade.downloadSyncHistoryCsv();\n downloadFile(text);\n }\n\n getDefaultColumns() {\n return [\n {\n label: 'Execution number',\n value: 'jobId',\n visible: true\n },\n {\n label: 'Sync name',\n value: 'syncName',\n visible: true\n },\n {\n label: 'Start time',\n value: 'startDate',\n visible: true\n\n },\n {\n label: 'End time',\n value: 'endDate',\n visible: true\n },\n {\n label: 'Final status',\n value: 'finalStatus',\n visible: true\n }\n ];\n }\n\n getInfoText(): string {\n return `The Sync History reflects all the syncs that ran and ended successfully or failed.

Execution number: Unique number of sync execution for a certain Sync name. Click on it, to see relevant data in the right table.

Sync name: Sync process name

Start/End time: Time when execution started and ended.

Final status: Indication whether execution finished successfully or failed.

Execution status: Status at a certain point in time.

Update date: Date when the Execution status was set.`;\n }\n\n}\n","\n
\n
\n Sync history\n
\n \n
\n \n
\n \n \n
\n \n \n \n \n \n \n \n \n
\n {{column.label}}\n
\n\n \n
\n \n \n \n \n \n
\n \n \n \n \n No results found\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n
\n \n \n \n
\n \n
\n \n
\n \n
\n
\n \n
\n \n \n
\n
\n \n\n \n \n \n
\n\n\n
\n Failed to load Sync history\n
\n
\n","import { isDsConnectorEnabled } from \"src/app/shared/utils\";\n\nexport enum SyncStatusEnum {\n SYNC_WILL_START,\n EXECUTION_STARTED,\n DIRECTORY_STARTED,\n DIRECTORY_COMPLETED,\n UPLOAD_STARTED_DSS,\n UPLOAD_COMPLETED_DSS,\n DSS_STARTED,\n DSS_PROCESSED,\n UPLOAD_STARTED_OLM,\n UPLOAD_COMPLETED_OLM,\n OLM_STARTED,\n OLM_PROCESSED,\n EXECUTION_FINISHED,\n EXECUTION_FAILED,\n DSS_EXECUTION_STOPPED,\n}\n\nexport const DetailStatusMapper = {\n [SyncStatusEnum.SYNC_WILL_START]: 'Sync will start shortly',\n [SyncStatusEnum.EXECUTION_STARTED]: 'Execution started on DSA',\n [SyncStatusEnum.DIRECTORY_STARTED]: 'Directory scan started',\n [SyncStatusEnum.DIRECTORY_COMPLETED]: 'Directory scan completed',\n [SyncStatusEnum.UPLOAD_STARTED_DSS]: 'Upload started to DSS',\n [SyncStatusEnum.UPLOAD_COMPLETED_DSS]: 'Upload completed',\n [SyncStatusEnum.DSS_STARTED]: 'DSS started to proceed data',\n [SyncStatusEnum.DSS_PROCESSED]: 'DSS processed data',\n [SyncStatusEnum.UPLOAD_STARTED_OLM]: isDsConnectorEnabled() ? 'Upload From DSS Started' : 'Upload to OLM started',\n [SyncStatusEnum.UPLOAD_COMPLETED_OLM]: isDsConnectorEnabled() ? 'Upload From DSS Completed' : 'Data uploaded to OLM',\n [SyncStatusEnum.OLM_STARTED]: 'OLM started to proceed data',\n [SyncStatusEnum.OLM_PROCESSED]: 'OLM processed data',\n [SyncStatusEnum.EXECUTION_FINISHED]: 'Execution finished',\n [SyncStatusEnum.EXECUTION_FAILED]: 'Execution Failed',\n [SyncStatusEnum.DSS_EXECUTION_STOPPED]: 'Execution stopped',\n};\n\nexport interface ISyncHistoryDetail {\n status: number,\n statusMessage: string,\n updateDate: Date,\n errorMessage: string,\n _id: string\n}","import {IPagination} from '../../../shared/interfaces';\n\nexport enum FinalStatusEnum {\n FAILED = 'Failed'\n}\n\nexport interface ISyncHistoryResponse extends IPagination {\n items: ISyncHistory[];\n}\n\nexport interface ISyncHistory {\n jobId: number,\n syncDefId: number,\n finalStatus: string,\n startDate: Date,\n endDate: Date,\n syncName: string,\n _id: string;\n}","import {Injectable} from '@angular/core';\nimport {HttpClient} from '@angular/common/http';\nimport {isDsConnectorEnabled, urlJoin} from '../../../shared/utils';\nimport {environment} from '../../../../environments/environment';\nimport {Observable} from 'rxjs';\nimport {ISyncHistory, ISyncHistoryResponse} from '../models/sync-history.interface';\nimport {UIState} from '../../../core/base-ui-state/base-ui-state-interface';\nimport {buildUiStateHttpParams} from '../../../core/base-ui-state/base-ui-utils';\nimport {DetailStatusMapper, ISyncHistoryDetail, SyncStatusEnum} from '../models/sync-history-detail.interface';\nimport {map} from 'rxjs/operators';\n\n@Injectable()\nexport class SyncHistoryApiService {\n\n constructor(private http: HttpClient) {\n }\n\n private baseUrl = urlJoin(environment.baseUrl, 'admin/synchistory');\n\n getPaginated(uiState: UIState): Observable {\n const options = {\n params: buildUiStateHttpParams(uiState)\n };\n\n return this.http.get(this.baseUrl, options);\n }\n\n getDetail(id: number): Observable {\n return this.http.get[]>(`${this.baseUrl}/${id}`)\n .pipe(\n map(items => items.reduce((newItems, item) => {\n if(isDsConnectorEnabled() && [SyncStatusEnum.OLM_PROCESSED, SyncStatusEnum.OLM_STARTED].includes(item.status)){\n return newItems;\n }\n \n return [...newItems, {\n ...item,\n statusMessage: DetailStatusMapper[item.status],\n }]\n },[]))\n );\n }\n\n exportSyncHistoryCsv(): Observable {\n const options = {\n responseType: 'text',\n observe: 'response'\n } as {};\n\n return this.http.get(`${this.baseUrl}/export`, options);\n }\n\n exportSyncHistoryDetailCsv(id: number): Observable {\n const options = {\n responseType: 'text',\n observe: 'response'\n } as {};\n\n return this.http.get(`${this.baseUrl}/${id}/export`, options);\n }\n\n getAll(): Observable {\n return this.http.get(this.baseUrl);\n }\n}\n","export * from './sync-history-detail-ui.query';\nexport * from './sync-history-detail-ui.service';\nexport * from './sync-history-detail-ui.store';","import {Injectable} from '@angular/core';\nimport {BaseUiQuery} from '../../../../core/base-ui-state/base-ui-query';\nimport {SyncHistoryDetailUiStore, SyncHistoryDetailUiState} from './sync-history-detail-ui.store';\n\n@Injectable({providedIn: 'root'})\nexport class SyncHistoryDetailUiQuery extends BaseUiQuery {\n constructor(protected store: SyncHistoryDetailUiStore) {\n super(store);\n }\n}\n","import {BaseUiService} from '../../../../core/base-ui-state/base-ui-service';\nimport {Injectable} from '@angular/core';\nimport {SyncHistoryDetailUiStore} from './sync-history-detail-ui.store';\n\n@Injectable({providedIn: 'root'})\nexport class SyncHistoryDetailUiService extends BaseUiService {\n constructor(protected syncHistoryDetailUiStore: SyncHistoryDetailUiStore) {\n super(syncHistoryDetailUiStore);\n }\n}","import {BASE_UI_STATE, BaseUiStateInterface} from '../../../../core/base-ui-state/base-ui-state-interface';\nimport {Injectable} from '@angular/core';\nimport {Store, StoreConfig} from '@datorama/akita';\n\n// tslint:disable-next-line:no-empty-interface\nexport interface SyncHistoryDetailUiState extends BaseUiStateInterface {\n}\n\nexport function createInitialState(): SyncHistoryDetailUiState {\n return JSON.parse(JSON.stringify(BASE_UI_STATE));\n}\n\n@Injectable({providedIn: 'root'})\n@StoreConfig({name: 'sync-history-detail-ui'})\nexport class SyncHistoryDetailUiStore extends Store {\n constructor() {\n super(createInitialState());\n }\n}","export * from './sync-history-detail.query';\nexport * from './sync-history-detail.service';\nexport * from './sync-history-detail.store';","import {Injectable} from '@angular/core';\nimport {QueryEntity} from '@datorama/akita';\nimport {SyncHistoryDetailStore, SyncHistoryDetailState} from './sync-history-detail.store';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SyncHistoryDetailQuery extends QueryEntity {\n\n constructor(protected store: SyncHistoryDetailStore) {\n super(store);\n }\n}\n","import {Injectable} from '@angular/core';\nimport {SyncHistoryDetailStore} from './sync-history-detail.store';\nimport {UIError} from '../../../../shared/interfaces';\nimport {ISyncHistoryDetail} from '../../models/sync-history-detail.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SyncHistoryDetailService {\n\n constructor(protected syncHistoryDetailStore: SyncHistoryDetailStore) {\n }\n\n set(syncHistory: ISyncHistoryDetail[]): void {\n this.syncHistoryDetailStore.set(syncHistory);\n }\n\n setError(error: UIError) {\n this.syncHistoryDetailStore.setError(error);\n }\n}\n","import {Injectable} from '@angular/core';\nimport {EntityState, EntityStore, getEntityType, StoreConfig} from '@datorama/akita';\nimport {ISyncHistoryDetail} from '../../models/sync-history-detail.interface';\nimport {safeGuid} from '../../../../shared/utils';\n\nexport interface SyncHistoryDetailState extends EntityState {\n}\n\n@Injectable({\n providedIn: 'root'\n})\n@StoreConfig({name: 'sync-history-detail', idKey: '_id'})\nexport class SyncHistoryDetailStore extends EntityStore {\n\n constructor() {\n super();\n }\n\n akitaPreAddEntity(newEntity: ISyncHistoryDetail): getEntityType {\n return {\n ...newEntity,\n _id: safeGuid()\n };\n }\n}\n","export * from './sync-history-ui.query';\nexport * from './sync-history-ui.service';\nexport * from './sync-history-ui.store';","import {Injectable} from '@angular/core';\nimport {BaseUiQuery} from '../../../../core/base-ui-state/base-ui-query';\nimport {SyncHistoryUiState, SyncHistoryUiStore} from './sync-history-ui.store';\n\n@Injectable({providedIn: 'root'})\nexport class SyncHistoryUiQuery extends BaseUiQuery {\n constructor(protected store: SyncHistoryUiStore) {\n super(store);\n }\n}\n","import {BaseUiService} from '../../../../core/base-ui-state/base-ui-service';\nimport {Injectable} from '@angular/core';\nimport {SyncHistoryUiStore} from './sync-history-ui.store';\n\n@Injectable({providedIn: 'root'})\nexport class SyncHistoryUiService extends BaseUiService {\n constructor(protected syncHistoryUiStore: SyncHistoryUiStore) {\n super(syncHistoryUiStore);\n }\n}","import {BASE_UI_STATE, BaseUiStateInterface} from '../../../../core/base-ui-state/base-ui-state-interface';\nimport {Injectable} from '@angular/core';\nimport {Store, StoreConfig} from '@datorama/akita';\n\n// tslint:disable-next-line:no-empty-interface\nexport interface SyncHistoryUiState extends BaseUiStateInterface {\n}\n\nexport function createInitialState(): SyncHistoryUiState {\n return JSON.parse(JSON.stringify(BASE_UI_STATE));\n}\n\n@Injectable({providedIn: 'root'})\n@StoreConfig({name: 'sync-history-ui'})\nexport class SyncHistoryUiStore extends Store {\n constructor() {\n super(createInitialState());\n }\n}","export * from './sync-history.query';\nexport * from './sync-history.service';\nexport * from './sync-history.store';","import {Injectable} from '@angular/core';\nimport {QueryEntity} from '@datorama/akita';\nimport {SyncHistoryState, SyncHistoryStore} from './sync-history.store';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SyncHistoryQuery extends QueryEntity {\n\n constructor(protected store: SyncHistoryStore) {\n super(store);\n }\n}\n","import {Injectable} from '@angular/core';\nimport {SyncHistoryStore} from './sync-history.store';\nimport {ISyncHistory} from '../../models/sync-history.interface';\nimport {UIError} from '../../../../shared/interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SyncHistoryService {\n\n constructor(protected syncHistoryStore: SyncHistoryStore) {\n }\n\n set(syncHistory: ISyncHistory[]): void {\n this.syncHistoryStore.set(syncHistory);\n }\n\n setError(error: UIError) {\n this.syncHistoryStore.setError(error);\n }\n}\n","import {Injectable} from '@angular/core';\nimport {EntityState, EntityStore, getEntityType, StoreConfig} from '@datorama/akita';\nimport {ISyncHistory} from '../../models/sync-history.interface';\nimport {safeGuid} from '../../../../shared/utils';\n\nexport interface SyncHistoryState extends EntityState {\n}\n\n@Injectable({\n providedIn: 'root'\n})\n@StoreConfig({name: 'sync-history', idKey: '_id'})\nexport class SyncHistoryStore extends EntityStore {\n\n constructor() {\n super();\n }\n\n akitaPreAddEntity(newEntity: ISyncHistory): getEntityType {\n return {\n ...newEntity,\n _id: safeGuid()\n };\n }\n}\n","import {Injectable} from '@angular/core';\nimport {SyncHistoryQuery, SyncHistoryService} from './state/sync-history';\nimport {SyncHistoryApiService} from './services/sync-history.api.service';\nimport {UIState} from '../../core/base-ui-state/base-ui-state-interface';\nimport {SyncHistoryUiQuery, SyncHistoryUiService} from './state/sync-history-ui';\nimport {catchError, filter, tap} from 'rxjs/operators';\nimport {SnackbarService} from '../../shared/snackbar/snackbar-service/snackbar.service';\nimport {parseError} from '../../shared/utils';\nimport {Observable, throwError} from 'rxjs';\nimport {ISyncHistory, ISyncHistoryResponse} from './models/sync-history.interface';\nimport {UIError} from '../../shared/interfaces';\nimport {SyncHistoryDetailQuery, SyncHistoryDetailService} from './state/sync-history-detail';\nimport {ISyncHistoryDetail} from './models/sync-history-detail.interface';\n\n@Injectable()\nexport class SyncHistoryFacade {\n\n constructor(\n private syncHistoryQuery: SyncHistoryQuery,\n private syncHistoryService: SyncHistoryService,\n private syncHistoryApiService: SyncHistoryApiService,\n private syncHistoryUiQuery: SyncHistoryUiQuery,\n private syncHistoryUiService: SyncHistoryUiService,\n private snackbarService: SnackbarService,\n private syncHistoryDetailQuery: SyncHistoryDetailQuery,\n private syncHistoryDetailService: SyncHistoryDetailService,\n ) {\n }\n\n public selectAllSyncHistories$(): Observable {\n return this.syncHistoryQuery.selectAll().pipe(filter(v => !!v));\n }\n\n public selectSyncHistoryError$(): Observable {\n return this.syncHistoryQuery.selectError();\n }\n\n public selectAllSyncHistoryDetail$(): Observable {\n return this.syncHistoryDetailQuery.selectAll().pipe(filter(v => !!v));\n }\n\n public selectSyncHistoryDetailError$(): Observable {\n return this.syncHistoryDetailQuery.selectError();\n }\n\n loadAllSyncHistoryDetails(id: number): Observable {\n return this.syncHistoryApiService.getDetail(id).pipe(\n tap(syncHistoryDetail => {\n this.syncHistoryDetailService.setError(null);\n this.syncHistoryDetailService.set(syncHistoryDetail);\n }),\n catchError(err => {\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Failed to load Sync history details, ${parseError(err)}`\n });\n this.syncHistoryDetailService.setError({\n action: 'GET',\n type: err.statusCode,\n details: {\n failedToLoadEntities: true\n }\n });\n return throwError(err);\n })\n );\n }\n\n loadAllSyncHistory(uiState: UIState = null): Observable {\n return this.syncHistoryApiService.getPaginated(this.buildUiStateParams(uiState)).pipe(\n tap(ldapSyncHistoryResponse => {\n this.syncHistoryUiService.setPaginationFromResponse(ldapSyncHistoryResponse);\n this.syncHistoryService.setError(null);\n this.syncHistoryService.set(ldapSyncHistoryResponse.items);\n }),\n catchError(err => {\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Failed to load Sync history, ${parseError(err)}`\n });\n this.syncHistoryService.setError({\n action: 'GET',\n type: err.statusCode,\n details: {\n failedToLoadEntities: true\n }\n });\n return throwError(err);\n })\n );\n }\n\n private buildUiStateParams(uiState: UIState = null): UIState {\n uiState = uiState || {\n pagination: this.syncHistoryUiQuery.pagination,\n sort: this.syncHistoryUiQuery.sortState,\n searchTerm: this.syncHistoryUiQuery.searchTerm\n };\n\n uiState['excludedColumns'] = this.syncHistoryUiQuery.tableColumns.filter(col => !col.visible).map(col => col.value);\n\n return uiState;\n }\n\n async downloadSyncHistoryCsv(): Promise {\n try {\n const csv = await this.syncHistoryApiService.exportSyncHistoryCsv().toPromise();\n this.snackbarService.triggerSnackbar({\n message: 'Sync history CSV download started.'\n });\n\n return csv;\n } catch (err) {\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Unable to download Sync history CSV file. ${parseError(err)}`\n });\n }\n }\n\n async downloadSyncHistoryDetailCsv(id: number): Promise {\n try {\n const csv = await this.syncHistoryApiService.exportSyncHistoryDetailCsv(id).toPromise();\n this.snackbarService.triggerSnackbar({\n message: 'Sync history detail CSV download started.'\n });\n\n return csv;\n } catch (err) {\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Unable to download Sync history detail CSV file. ${parseError(err)}`\n });\n }\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {SyncHistoryPageComponent} from './containers/sync-history-page/sync-history-page.component';\nimport {SharedModule} from '../../shared/shared.module';\nimport {OpenlmModule} from 'openlm';\nimport {SyncHistoryApiService} from './services/sync-history.api.service';\nimport {SyncHistoryFacade} from './sync-history.facade';\nimport {\n SyncHistoryDetailComponent\n} from './containers/sync-history-page/sync-history-detail/sync-history-detail.component';\n\n\n@NgModule({\n declarations: [SyncHistoryPageComponent, SyncHistoryDetailComponent],\n imports: [\n CommonModule,\n SharedModule,\n OpenlmModule,\n ],\n providers: [\n SyncHistoryApiService,\n SyncHistoryFacade\n ]\n})\nexport class SyncHistoryModule {\n}\n","import {ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild} from '@angular/core';\nimport {ISync} from '../../models/sync.interface';\nimport {FormGroup} from '@angular/forms';\nimport {AgentFacade} from '../../../agent/agent.facade';\nimport {IAgent} from '../../../agent/api/agent.interface';\nimport {IDomainDetails} from '../../../domain/api/models/domain.interface';\nimport {DomainFacade} from '../../../domain/domain.facade';\nimport {SyncFacade} from '../../sync.facade';\nimport {StringMap} from '@angular/compiler/src/compiler_facade_interface';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {Location} from '@angular/common';\nimport {SnackbarService} from '../../../../shared/snackbar/snackbar-service/snackbar.service';\nimport {MatDialog} from '@angular/material/dialog';\nimport {List} from 'immutable';\nimport {ConnectivityStatusEnum} from '../../../domain/api/models/connectivity-status.enum';\nimport {SyncFormService} from '../../service/sync-form.service';\nimport {\n UnsavedChangesDialogComponent,\n UnsavedDialogResponse\n} from '../../../../shared/unsaved-changes-dialog/unsaved-changes-dialog.component';\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\nimport {MatTabGroup} from '@angular/material/tabs';\nimport {filter} from 'rxjs/operators';\nimport {DirtyCheckPlugin} from '@datorama/akita';\nimport {areObjectsTheSame, isDsConnectorEnabled, pad} from '../../../../shared/utils';\nimport {ConfirmDialogComponent, DialogData} from '../../../../shared/confirm-dialog/confirm-dialog.component';\nimport {timeToUtc} from '../../../../shared/date/date-utils';\nimport {interval} from 'rxjs';\nimport {TextSwapPipe} from '../../../../shared/pipes/text-swap.pipe';\n\n\n@UntilDestroy()\n@Component({\n selector: 'app-add-sync-page',\n templateUrl: './add-sync-page.component.html',\n styleUrls: ['./add-sync-page.component.scss']\n})\nexport class AddSyncPageComponent implements OnInit, OnDestroy {\n\n constructor(\n private domainFacade: DomainFacade,\n private syncFormService: SyncFormService,\n private agentFacade: AgentFacade,\n private syncFacade: SyncFacade,\n private changeDetector: ChangeDetectorRef,\n private route: ActivatedRoute,\n private router: Router,\n private location: Location,\n private snackbarService: SnackbarService,\n private matDialog: MatDialog,\n private textSwapPipe: TextSwapPipe\n ) {\n }\n\n @ViewChild('syncNameInput', {static: false})\n public syncNameInput: any;\n\n @ViewChild(MatTabGroup)\n public tabs: MatTabGroup;\n /*\n having selectedTabIndex property is mandatory as using directly the matTabGroup?.selectedIndex\n cause change detection to throw Expression has changed after it was checked.\n */\n public selectedTabIndex = 0;\n\n public isApacheDS = false;\n public sync: ISync;\n public syncFormGroup: FormGroup;\n public textInfo: StringMap = {};\n\n public approvedAgents: List> = List();\n public domains: List> = List();\n public syncs: List> = List();\n\n public syncFormDirtyCheck: DirtyCheckPlugin = this.syncFacade.syncFormDirtyCheckPlugin.setHead();\n public failedToLoadSync = false;\n private ignoreDeactivation: boolean;\n private postOrPatchRequestFailed: boolean;\n public syncId: number;\n public attributesToSync: string[] = [];\n public syncDomainType: string;\n\n public renderLayout = false; // used to prevent content changing that might cause confusion when loading spinner is visible\n\n public readonly isDsConnectorEnabled = isDsConnectorEnabled;\n\n public async ngOnInit(): Promise {\n this.initInfoText();\n this.syncFormGroup = this.syncFormService.initAddEditSyncForm(this.syncs, this.syncFacade.getSyncFormGroupValidators());\n this.syncId = Number(this.route.snapshot.params.id);\n const domainName = this.route.snapshot.queryParams.domainName;\n\n this.domainFacade.domainsForSyncForm$\n .pipe(\n untilDestroyed(this),\n filter(d => !!d)\n )\n .subscribe(domains => {\n const domain = domains.find(d => d.domainName === domainName);\n\n if (!!domain?.domainId) {\n this.syncFormGroup.controls.domainId.patchValue(domain.domainId);\n this.syncFacade.setSyncFormStore({\n ...this.syncFormGroup.value,\n domainId: domain.domainId\n });\n this.domainFacade.loadDomainById(domain.domainId, {setAsActiveEntity: true});\n }\n });\n\n if (this.syncId) {\n const syncData = await this.syncFacade.loadSyncDefById(this.syncId);\n this.syncDomainType = syncData.domain.type as string;\n this.attributesToSync = syncData.attributesToSync ? syncData.attributesToSync.split(';') : [];\n this.syncFormGroup.controls.objectMembershipFilter.patchValue(syncData.objectMembershipFilter)\n\n if (syncData.syncJobStatus !== null && syncData.syncJobStatus !== 13) {\n const intervalSubscription = interval(30000).pipe(untilDestroyed(this)).subscribe(async (count) => {\n this.sync = await this.syncFacade.loadSyncDefById(this.syncId);\n if (!(this.sync.syncJobStatus !== null && this.sync.syncJobStatus !== 13)) {\n intervalSubscription.unsubscribe();\n }\n })\n }\n }\n\n this.approvedAgents = List(await this.agentFacade.partialGetAllAgents(2));\n this.domains = List(await this.domainFacade.partialGetAllDomains());\n\n if (!this.domains.size) {\n const confirmation = await this.showMissingDomainsDialog();\n this.router.navigateByUrl(confirmation ? '/domains/add' : '/syncs');\n }\n\n this.syncs = List(await this.syncFacade.partialGetAllSyncs());\n this.syncFormService.refreshDuplicateValueValidator(this.syncFormGroup, this.syncs.toJS() as ISync[], this.sync);\n\n this.renderLayout = !this.syncId;\n if (!this.syncId) {\n window.setTimeout(() => this.syncNameInput?.input?.nativeElement.focus());\n }\n\n this.syncFacade.selectSyncById(this.syncId)\n .pipe(untilDestroyed(this))\n .subscribe(sync => {\n this.sync = sync;\n this.failedToLoadSync = false;\n\n this.syncFormService.refreshDuplicateValueValidator(this.syncFormGroup, this.syncs.toJS() as ISync[], this.sync);\n this.syncFormService.patchSyncFormGroup(this.sync, this.syncFormGroup);\n this.domainFacade.resetActiveEntityState();\n\n if (this.sync.cycle.type === 1) {\n const time = timeToUtc(`${pad(0, 2)}:${pad(0, 2)}`);\n this.syncFormGroup.controls.intervalStartTime.setValue(time);\n }\n\n this.syncFacade.setSyncFormStore(this.syncFormGroup.value);\n this.syncFormDirtyCheck.setHead();\n\n this.renderLayout = true;\n this.changeDetector.detectChanges();\n });\n\n this.syncFacade.selectSyncForm$()\n .pipe(\n untilDestroyed(this),\n filter(res => !areObjectsTheSame(res, this.syncFormGroup.value))\n )\n .subscribe(res => {\n this.syncFormGroup.patchValue(res);\n this.syncFormDirtyCheck.setHead();\n });\n\n this.syncFacade.selectStoreError$()\n .pipe(untilDestroyed(this))\n .subscribe(error => {\n this.postOrPatchRequestFailed = error && (error.action === 'POST' || error.action === 'PATCH');\n this.failedToLoadSync = error && error.action === 'GET' && error.type === 404 && error.details.syncId === this.syncId;\n });\n\n this.syncFormGroup.valueChanges\n .pipe(\n untilDestroyed(this)\n )\n .subscribe(value => {\n this.syncFacade.setSyncFormStore(value);\n this.domainFacade.updateActiveEntityForSyncForm(value.domainId);\n });\n\n this.syncFormGroup.controls.groupRule.valueChanges\n .pipe(\n untilDestroyed(this),\n filter(\n v =>\n v === 'Hierarchical' &&\n (\n this.syncFormService.domainType === 3 ||\n this.syncFormService.domainType === 4 ||\n this.syncFormService.domainType === 5 ||\n this.syncFormService.domainType === 6 ||\n !this.syncFormService.domainType\n )\n )\n )\n .subscribe(() => {\n const {hierarchicalSyncType, createGroupFromStartNode} = this.syncFormGroup.controls;\n\n if (!hierarchicalSyncType.value && this.syncFormService.domainType !== 4) {\n hierarchicalSyncType.setValue(56);\n }\n\n if (this.syncFormService.domainType >= 3) {\n hierarchicalSyncType.setValue(24);\n }\n\n if (this.syncFormService.domainType === 5) {\n hierarchicalSyncType.setValue(16);\n }\n\n if (this.syncFormService.domainType === 6) {\n hierarchicalSyncType.setValue(16);\n }\n\n if (!createGroupFromStartNode.value) {\n createGroupFromStartNode.setValue(true);\n }\n\n this.syncFormService.formValuesUpdatedEmitter$.emit();\n })\n\n this.domainFacade.activeEntity$\n .pipe(\n untilDestroyed(this)\n )\n .subscribe(domain => {\n this.syncFormService.domainType = domain.type as number;\n this.syncFormGroup.controls.domainId.patchValue(domain.domainId);\n });\n }\n\n public isToggled(formControlName: string): boolean {\n return this.syncFormGroup.controls[formControlName].value;\n }\n\n public onCancelButtonClick(): void {\n this.syncFormDirtyCheck.reset();\n Object.keys(this.syncFormGroup.controls).forEach(k => this.syncFormGroup.controls[k].markAsUntouched());\n this.syncFormService.formValuesUpdatedEmitter$.emit();\n }\n\n public async onSaveButtonClick(): Promise {\n this.syncFormGroup.markAllAsTouched();\n Object.keys(this.syncFormGroup.controls).forEach(k => this.syncFormGroup.controls[k].markAsDirty());\n this.focusOnFirstInvalidTab();\n this.postOrPatchRequestFailed = false;\n\n if (this.syncFormGroup.invalid) {\n return;\n }\n\n if (await this.saveSync()) {\n this.router.navigate(['/', 'syncs']);\n }\n }\n\n public onNextButtonClick(): void {\n this.tabs.selectedIndex = this.tabs.selectedIndex + 1;\n }\n\n private async saveSync(): Promise {\n const {intervalStartTime} = this.syncFormGroup.controls;\n const timeZoneValue = window.localStorage.getItem('user-timezone');\n const timeToUTC = timeToUtc(intervalStartTime.value, timeZoneValue);\n if (!this.syncId) {\n intervalStartTime.setValue(timeToUTC)\n }\n const sync = this.syncFormService.createSyncsFromForm(this.syncFormGroup);\n\n !!this.sync\n ? await this.syncFacade.updateSync(sync, this.sync.syncDefId)\n : await this.syncFacade.addSync(sync);\n\n if (!this.postOrPatchRequestFailed) {\n this.ignoreDeactivation = true;\n\n return true;\n }\n\n return false;\n }\n\n public async canDeactivate(): Promise {\n if (!this.ignoreDeactivation) {\n if (this.syncFormDirtyCheck.isDirty()) {\n const result: UnsavedDialogResponse = await this.matDialog.open(UnsavedChangesDialogComponent, {\n width: '430px',\n data: {\n screenName: this.sync ? 'Edit Sync' : 'Add Sync'\n }\n }).afterClosed().toPromise();\n switch (result) {\n case 'CLOSE':\n return false;\n case 'CANCEL':\n return true;\n default: {\n this.syncFormGroup.markAllAsTouched();\n this.focusOnFirstInvalidTab();\n\n return this.syncFormGroup.valid ? await this.saveSync() : false;\n }\n }\n }\n }\n return true;\n }\n\n public displayNodeTestResult(event: ConnectivityStatusEnum) {\n const isError = event === ConnectivityStatusEnum.failure;\n\n this.snackbarService.triggerSnackbar({\n isError,\n message: isError ? 'Failed to validate the start node' : 'Start node validated successfully',\n timeoutTime: 5000\n });\n }\n\n public onBackButtonClick() {\n window.history && window.history.length > 2\n ? this.location.back()\n : this.router.navigateByUrl('/syncs');\n }\n\n public isApacheDs(): boolean {\n const {groupRule, projectRule, objectsTypeToSync, objectNameAttribute} = this.syncFormGroup.controls;\n const selectedDomainType = this.domains.find(d => d.domainId === this.syncFormGroup.value.domainId)?.type;\n this.isApacheDS = selectedDomainType === 2;\n\n if (this.isApacheDS) {\n if (groupRule.value === 'Hierarchical') {\n groupRule.setValue('No group');\n }\n\n if (isDsConnectorEnabled()) {\n if (projectRule.value === 'Hierarchical') {\n projectRule.setValue('No group');\n }\n }\n\n if (objectsTypeToSync.value === 1) {\n objectsTypeToSync.setValue(0);\n objectNameAttribute.setValue('CN');\n }\n }\n\n return this.isApacheDS;\n }\n\n private showMissingDomainsDialog(): Promise {\n return this.matDialog.open(ConfirmDialogComponent, {\n data: {\n header: `Sync can't be added`,\n body: `Before adding a sync, you must configure at least one domain.`,\n discardButton: true,\n discardButtonName: 'Close',\n confirmButton: true,\n confirmButtonName: 'Add Domain'\n } as DialogData\n }).afterClosed().toPromise();\n }\n\n private initInfoText(): void {\n // tslint:disable\n this.textInfo.addEditSync = this.textSwapPipe.transform('sync.addEditInfo');\n this.textInfo.destinationAndTimeToBeUsed = 'Configure the domain, the Agent to query through and adjust the sync frequency.

Agent: configure the Directory Synchronization Agent to use for querying the domain (directory).

Domain: configure the directory to be queried.

Start node: defines which level in the directory tree the sync will start from. Once configured, click the \\'Test\\' button to make sure the domain is valid (it might take up to 2 minutes for the test to complete).';\n this.textInfo.destinationAndTimeForNonAzureAD = 'Configure the domain, the Agent to query through and adjust the sync frequency.

Agent: configure the Directory Synchronization Agent to use for querying the domain (directory).

Domain: configure the directory to be queried.

Start node: defines which level in the directory tree the sync will start from. Once configured, click the \\'Test\\' button to make sure the domain is valid (it might take up to 2 minutes for the test to complete).';\n this.textInfo.destinationAndTimeForGoogleCDS = 'Configure the domain, the Agent to query through and adjust the sync frequency.

Agent: configure the Directory Synchronization Agent to use for querying the domain (directory).

Domain: configure the directory to be queried.

Start sync from: defines where the sync will start from. Leave empty to sync all the users and groups in the directory, or specify the ou you would like to start from using the following syntax: ou=<ou_name> or specify the group you would like to start from using the following syntax: group=<group_name>.
Once configured, click the \\'Test\\' button to make sure the domain is valid (it might take up to 2 minutes for the test to complete).';\n this.textInfo.destinationAndTimeForAzureAD = `Configure the domain, the Agent to query through and adjust the sync frequency.

Agent: configure the Directory Synchronization Agent to use for querying the domain (directory).

Domain: configure the directory to be queried.

Start sync from: defines where the sync will start from. Leave empty to sync all the users, groups, administrative units in the directory, or specify the group (administrative unit) you would like to start from using the following syntax: groups/<object_id> or
adminunits/<object_id>.
Once configured, click the 'Test' button to make sure the domain is valid (it might take up to 2 minutes for the test to complete).`;\n this.textInfo.destinationAndTimeForOkta = `Configure the domain, the Agent to query through and adjust the sync frequency.

Agent: configure the Directory Synchronization Agent to use for querying the domain (directory).

Domain: configure the directory to be queried.

Start sync from: defines where the sync will start from. Leave empty to sync all the users and groups in the directory, or specify the group (user) you would like to start from using the following syntax: groups/<groupname> or
users/<useremail@mail.com>.
Once configured, click the 'Test' button to make sure the domain is valid (it might take up to 2 minutes for the test to complete).`;\n this.textInfo.destinationAndTimeForNis = `Configure the domain, the Agent to query through and adjust the sync frequency.

Agent: configure the Directory Synchronization Agent to use for querying the domain (directory).

Domain: configure the directory to be queried.

Start sync from: defines where the sync will start from. Leave empty to sync all the users and groups in the directory, or specify the group (user) you would like to start from using the following syntax: groups/<groupname> or
users/<username>.
Once configured, click the 'Test' button to make sure the domain is valid (it might take up to 2 minutes for the test to complete).`;\n this.textInfo.startNodeTest = 'OpenLM will test if it can access the configured start node.

In case of failure, check the start node path validity in Directory.';\n this.textInfo.syncSchedule = this.textSwapPipe.transform('sync.time.syncSchedule');\n this.textInfo.objectsToBeUsed = this.textSwapPipe.transform('sync.object.defaultDescription');\n this.textInfo.objectsForNonAzureAD = this.textSwapPipe.transform('sync.object.nonAzureDescription');\n this.textInfo.objectsForAzureAD = this.textSwapPipe.transform('sync.object.azureDescription');\n this.textInfo.syncObjects = 'Choose a directory attribute to sync by. It can be either one of the attributes from the drop-down list or any entered text that represents an existing attribute within the directory. The \"Sync attribute\" is supported only for the \"Users\" object type.';\n this.textInfo.membershipFilterToBeUsed = 'Choose whether to sync all objects or only those that belong to either Organizational Units (OU) or Security Groups.';\n this.textInfo.membershipFilterForGoogleCDS = 'Choose whether to sync all objects (no filter) or only objects that belong to either Organizational Units (OUs) or Security Groups.';\n this.textInfo.membershipFilterForNonAzureAD = 'Choose whether to sync all objects or only those that belong to either Organizational Units (OU) or Security Groups.';\n this.textInfo.membershipFilterForAzureAD = 'Choose whether to sync all objects or only those that belong either to Administrative Units or to Groups.';\n this.textInfo.membershipFilterForOkta = 'All objects (no filter) will be synced.';\n this.textInfo.membershipFilterForNis = 'Choose whether to sync all objects or only those that belong to Security Groups.';\n this.textInfo.groupsAndRules = this.textSwapPipe.transform('sync.groupRule.default');\n this.textInfo.groupsAndRulesForGoogleCDS = this.textSwapPipe.transform('sync.groupRule.googleCDS');\n this.textInfo.groupsAndRulesForNonAzureAD = this.textSwapPipe.transform('sync.groupRule.nonAzureAD');\n this.textInfo.groupsAndRulesForAzureAD = this.textSwapPipe.transform('sync.groupRule.azureAD');\n this.textInfo.setDefaultGroup = 'OpenLM uses Groups to calculate usage by groups in the Group Usage Report.

In OpenLM, a user without a group is assigned to the internal OpenLM_Everyone group. Users can be connected to one default group at a time. When a user is already part of a group that was set as default, his default group will be set to whichever sync definition finishes last (provided that definition also has this toggle enabled).';\n this.textInfo.securityGroups = 'Security groups: used to assign permissions for shared resources.';\n this.textInfo.ou = 'OU (Organization Unit): a subdivision within Active Directory used for gathering users, groups, computers and other organizational units under one unit.';\n this.textInfo.ouAzureAd = 'Administrative unit: subdivision for AzureAd, can contain only users and groups.';\n this.textInfo.distributionGroups = 'Distribution groups: used to create email distribution lists';\n this.textInfo.customizedUnknownObjects = 'Customized & unknown object classes: when selecting this option, groups will be created for objects that have an unknown object class (any of the classes that are not already predefined in OpenLM such as OUs, Security Groups, etc). The name of the group will be the same as the unknown class.';\n this.textInfo.hierarchicalDefaultGroup = 'The set as default group uses OpenLM to calculate the user usage, in Group Usage Report.

By default, the user connects to Group Everyone. The user can be connected to one default group at a time. When a user is part of a group that was configured as set as default, his default group will be updated to that group.

Once the user has set as default group that is not Everyone, any other groups that he part off and were configured as set as default will be ignored.';\n this.textInfo.hierarchical = 'Keep the structural hierarchy of the node based on the selected object.';\n this.textInfo.entityAttributeDefaultGroup = 'The set as default group uses OpenLM to calculate the user usage, in Group Usage Report.

By default, the user connects to Group Everyone. The user can be connected to one default group at a time. When a user is part of a group that was configured as set as default, his default group will be updated to that group.

Once the user has set as default group that is not Everyone, any other groups that he part off and were configured as set as default will be ignored.';\n this.textInfo.wrapperParentGroup = 'Wrapper parent group: The wrapper parent group will be set up as parent group for resultant sync objects';\n this.textInfo.customAttributeTitle = 'Custom selection of attributes';\n this.textInfo.customAttributeInfo = this.textSwapPipe.transform('sync.object.customAttrInfo');\n this.textInfo.projectsAndRules = this.textSwapPipe.transform('sync.projectRule.default');\n this.textInfo.projectsAndRulesForGoogleCDS = this.textSwapPipe.transform('sync.projectRule.googleCDS');\n this.textInfo.projectsAndRulesForNonAzureAD = this.textSwapPipe.transform('sync.projectRule.nonAzureAD');\n this.textInfo.projectsAndRulesForAzureAD = this.textSwapPipe.transform('sync.projectRule.azureAD');\n this.textInfo.entityAttributeDefaultProject = 'The set as default project uses OpenLM to calculate the project usage, in Project Usage Report.

By default, the user connects to Project Everyone. The user can be connected to one default project at a time. When a user is part of a project that was configured as set as default, his default project will be updated to that project.

Once the user has set as default project that is not Everyone, any other projects that he part off and were configured as set as default will be ignored.';\n this.textInfo.setDefaultProject = 'OpenLM uses projects to calculate usage by projects in the Project Usage Report.

In OpenLM, a user without a project is assigned to the internal OpenLM_Everyone group. Users can be connected to one default project at a time. When a user is already part of a project that was set as default, his default project will be set to whichever sync definition finishes last (provided that definition also has this toggle enabled).';\n this.textInfo.securityProject = 'Security projects: used to assign permissions for shared resources.';\n this.textInfo.ouProject = 'OU (Organization Unit): a subdivision within Active Directory used for gathering projects.';\n this.textInfo.ouAzureAdProject = 'Administrative unit: subdivision for AzureAd, can contain only projects.';\n this.textInfo.distributionProject = 'Distribution projects: used to create email distribution lists';\n this.textInfo.customizedUnknownObjectsProject = 'Customized & unknown object classes: when selecting this option, projects will be created for objects that have an unknown object class (any of the classes that are not already predefined in OpenLM such as OUs, Security Projects, etc). The name of the project will be the same as the unknown class.';\n\n // tslint:enable\n }\n\n private focusOnFirstInvalidTab(): void {\n const {agentId, domainId, startNodePath, syncDay, intervalStartTime} = this.syncFormGroup.controls;\n const firstPageControls = [agentId, domainId, startNodePath, syncDay, intervalStartTime];\n\n if (firstPageControls.some(s => s.invalid)) {\n this.tabs.selectedIndex = 0;\n\n return;\n }\n\n const {objectNameAttribute, objectSyncDepth} = this.syncFormGroup.controls;\n const secondPageControls = [objectNameAttribute, objectSyncDepth];\n\n if (secondPageControls.some(s => s.invalid)) {\n this.tabs.selectedIndex = 1;\n\n return;\n }\n\n const {flatFixGroupName, groupSyncDepth, groupAttribute, groupRule, wrapperFixGroupName} = this.syncFormGroup.controls;\n const thirdPageControls = [flatFixGroupName, groupSyncDepth, groupAttribute, groupRule, wrapperFixGroupName];\n\n if (thirdPageControls.some(s => s.invalid)) {\n this.tabs.selectedIndex = 2;\n\n return;\n }\n }\n\n public ngOnDestroy(): void {\n this.syncFacade.resetSyncFormStore();\n this.domainFacade.resetActiveEntityState();\n }\n}\n","\n
\n \n
\n\n
\n \n
\n
\n
\n \n {{ sync?.syncDefId ? \"Edit\" : \"Add\" }} Sync\n \n\n \n \n
\n
\n\n
\n
\n
\n Sync name\n \n The sync is currently in progress\n \n \n \n
\n
\n\n
\n \n \n\n
\n Status\n \n \n
\n
\n
\n
\n
\n\n
\n \n \n \n
\n Destination & Time\n\n \n \n
\n
\n\n \n \n
\n\n \n \n
\n Object\n\n \n \n
\n
\n\n \n \n
\n\n \n \n
\n Group Rules\n\n \n \n
\n
\n\n \n \n
\n \n \n
\n Project Rules\n\n \n \n
\n
\n\n \n \n
\n \n
\n \n\n
\n \n CANCEL\n \n \n SAVE\n \n \n next\n \n
\n \n\n\n
\n Could not find the provided Sync. Please try again.\n
\n","import {AfterViewInit, Component, EventEmitter, Input, OnInit, Output, ViewChild,} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {StringMap} from '@angular/compiler/src/compiler_facade_interface';\nimport {IAgent} from '../../../../agent/api/agent.interface';\nimport {IDomain, IDomainDetails} from '../../../../domain/api/models/domain.interface';\nimport {SyncTestInterface} from '../../../models/sync-test.interface';\nimport {SyncTestDialogComponent} from '../../sync-test-dialog/sync-test-dialog.component';\nimport {FormGroup} from '@angular/forms';\nimport {List} from 'immutable';\nimport {ConnectivityStatusEnum} from '../../../../domain/api/models/connectivity-status.enum';\nimport {MatDialog} from '@angular/material/dialog';\nimport {KeyValue} from '@angular/common';\nimport {OlmSortState, SelectComponent} from 'openlm';\nimport {pad, sortByAscending, sortByDescending,} from '../../../../../shared/utils';\nimport {dayTimeToGMT, dayTimeToUTC} from '../../../../../shared/date/date-utils';\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\nimport {DomainFacade} from '../../../../domain/domain.facade';\nimport {filter} from 'rxjs/operators';\nimport {SyncFormService} from '../../../service/sync-form.service';\n\n@UntilDestroy()\n@Component({\n selector: 'app-destination-time-tab',\n templateUrl: './destination-time-tab.component.html',\n styleUrls: ['./destination-time-tab.component.scss']\n})\nexport class DestinationTimeTabComponent implements OnInit, AfterViewInit {\n\n constructor(\n public route: ActivatedRoute,\n public domainFacade: DomainFacade,\n private syncTestDialog: MatDialog,\n private syncFormService: SyncFormService\n ) {\n }\n\n @Output() public nodeTestResultEmitter$: EventEmitter = new EventEmitter();\n @Input() public textInfo: StringMap;\n @Input() public syncFormGroup: FormGroup;\n @Input() public isToggled: (formControl: string) => boolean;\n\n @Input()\n public set agents(value: List) {\n this.agentsArray = value.toJS() as IAgent[];\n }\n\n @Input()\n public set domains(value: List) {\n this.domainsArray = value.toJS() as IDomainDetails[];\n }\n\n @ViewChild('domainSelect')\n public domainDropdown: SelectComponent;\n\n public agentsArray: IAgent[];\n public domainsArray: IDomainDetails[];\n\n public syncDefId: number;\n public domainType: number;\n public syncDateExists: boolean;\n public columns: { label: string, value: string }[] = [\n {label: 'Day', value: 'day'},\n {label: 'Start Time', value: 'time'}\n ];\n public readonly daysOfWeek: KeyValue[] = [\n {key: 1, value: 'Sunday'},\n {key: 2, value: 'Monday'},\n {key: 3, value: 'Tuesday'},\n {key: 4, value: 'Wednesday'},\n {key: 5, value: 'Thursday'},\n {key: 6, value: 'Friday'},\n {key: 7, value: 'Saturday'}\n ];\n\n public syncFromInputLabel: string = 'Start Node';\n public startSyncFromPlaceholder: string = 'LDAP://Domain';\n\n public ngOnInit(): void {\n this.route.params.subscribe(params => {\n this.syncDefId = params.id;\n });\n\n this.domainFacade.activeEntity$\n .pipe(\n untilDestroyed(this),\n filter(a => !!a?.domainId)\n )\n .subscribe(domain => {\n this.domainType = Number(domain.type);\n this.performStartNodeInputChangesOnDomainSelection(domain);\n });\n }\n\n public ngAfterViewInit(): void {\n // Not the cleanest solution, but this is done to circumvent the fact that the library doesn't recognize source array changes properly.\n // We trigger the select item emitter from here so that the views are loaded first.\n // That way we won't get undefined when setting view components values in group rules and object components.\n if (!!this.syncFormGroup.value.syncDefId) {\n this.domainDropdown.selectItem(this.domainDropdown.selectedItem);\n }\n }\n\n public onTestButtonClickDialog(): void {\n const {agentId, domainId, startNodePath} = this.syncFormGroup.controls;\n const dialogData = {\n agentId: agentId.value,\n domainId: domainId.value,\n path: startNodePath.value\n } as SyncTestInterface;\n\n const dialogRef = this.syncTestDialog.open(SyncTestDialogComponent, {\n width: '520px',\n height: '240px',\n data: dialogData,\n disableClose: true\n });\n\n dialogRef.afterClosed().subscribe(status => {\n if (!!status) {\n this.nodeTestResultEmitter$.emit(status);\n }\n });\n }\n\n public onAddButtonClick(): void {\n const {syncTime, syncDate, syncDay} = this.syncFormGroup.controls;\n\n const timeToUTC = dayTimeToUTC(syncDate.value - 1, syncTime.value, window.localStorage.getItem('user-timezone'));\n const selectedTime = {\n day: timeToUTC.day + 1,\n time: `${pad(timeToUTC.hours, 2)}:${pad(timeToUTC.minutes, 2)}`\n };\n\n if (this.syncDateAddedAlready(selectedTime)) {\n this.syncDateExists = true;\n return;\n }\n\n this.syncDateExists = false;\n\n syncDay.patchValue([...syncDay.value, selectedTime]);\n syncDate.patchValue('');\n syncTime.patchValue('');\n }\n\n public onSyncDateTableRemoveButtonClick(syncTime: { day: number; time: string }): void {\n const {syncDay} = this.syncFormGroup.controls;\n const syncScheduleValues = [...syncDay.value];\n const syncTimeToRemoveIndex = syncDay.value.findIndex(s => s.time === syncTime.time && s.day === syncTime.day);\n\n syncScheduleValues.splice(syncTimeToRemoveIndex, 1);\n syncDay.patchValue(syncScheduleValues);\n }\n\n public isTestButtonValid(): boolean {\n const {agentId, domainId, startNodePath} = this.syncFormGroup.controls;\n\n return ((this.syncFormService.domainType === 3 || 4) && !!agentId.value) || (!!agentId.value && !!domainId.value && !!startNodePath.value);\n }\n\n public isSyncTimeButtonValid(): boolean {\n const {syncTime, syncDate} = this.syncFormGroup.controls;\n\n return syncTime.value.length === 5 && !!syncDate.value;\n }\n\n public transformDayForTableColumn(syncTime: { day: number; time: string }): string {\n const toGmt = dayTimeToGMT(syncTime.day - 1, syncTime.time, window.localStorage.getItem('user-timezone'));\n return this.daysOfWeek.find(d => d.key === toGmt.day + 1).value;\n }\n\n public setSyncTypeValue(type: string): void {\n this.syncFormGroup.controls.syncCycleType.setValue(type);\n }\n\n public sortSyncTables($event: OlmSortState) {\n const syncDay = this.syncFormGroup.controls.syncDay;\n const parameterName = $event.id;\n\n syncDay.setValue(syncDay.value.sort((a, b) => $event.direction === 'ASC'\n ? sortByAscending(a[parameterName], b[parameterName])\n : sortByDescending(a[parameterName], b[parameterName])));\n }\n\n private syncDateAddedAlready(syncDate: { day: number, time: string }): boolean {\n return this.syncFormGroup.controls.syncDay.value.some(s => s.day === syncDate.day && s.time === syncDate.time);\n }\n\n private performStartNodeInputChangesOnDomainSelection(domain: IDomain): void {\n const {startNodePath} = this.syncFormGroup.controls;\n\n if (domain.type < 3 && !this.syncDefId) {\n startNodePath.setValue(`LDAP://${domain.domainName}`);\n }\n\n if (domain.type >= 3 && !this.syncDefId && startNodePath.value.startsWith('LDAP://')) {\n startNodePath.setValue('');\n }\n\n this.syncFromInputLabel = domain.type < 3 ? 'Start Node' : 'Start Sync From';\n\n this.startSyncFromPlaceholder =\n domain.type < 3 ? 'LDAP://Domain'\n : domain.type === 4 ? 'Leave empty, or enter ou=, or enter group='\n : domain.type === 5 ? 'Leave empty to sync all directory or enter: groups/ or users/'\n : domain.type === 6 ? 'Leave empty to sync all directory or enter: groups/ or users/'\n : 'Leave empty to sync all directory or enter: groups/ or adminunits/';\n\n this.textInfo.destinationAndTimeToBeUsed =\n domain.type < 3 ? this.textInfo.destinationAndTimeForNonAzureAD\n : domain.type === 4 ? this.textInfo.destinationAndTimeForGoogleCDS\n : domain.type === 5 ? this.textInfo.destinationAndTimeForOkta\n : domain.type === 6 ? this.textInfo.destinationAndTimeForNis\n : this.textInfo.destinationAndTimeForAzureAD;\n }\n\n public changedSelectedDomain(event: string): void {\n this.syncFormGroup.controls.objectNameAttribute.setValue('');\n\n this.syncFormGroup.controls.startNodePath.setValue(`LDAP://${event}`);\n }\n}\n","\n \n
\n
\n Agent \n\n \n \n \n This field is required.\n \n
\n\n
\n Domain name \n\n \n \n \n This field is required.\n \n
\n
\n\n
\n \n {{ syncFromInputLabel }}\n \n\n
\n \n \n\n
\n \n TEST\n \n \n \n
\n
\n
\n\n \n \n \n \n\n \n \n \n \n \n \n \n \n\n
\n Sync Schedule \n\n
\n
\n \n
By Time
\n \n \n
By Interval
\n \n\n \n \n
\n\n \n
\n \n To configure a sync, select the day and time then click Add.\n \n\n
\n
\n Days \n\n \n \n
\n\n
\n \n Start Time\n \n\n \n \n
\n\n
\n \n Add\n \n
\n
\n\n
\n \n \n \n \n \n {{ column.label }}\n\n \n \n \n \n \n \n \n \n \n \n
\n {{ transformDayForTableColumn(syncTime) }}\n
\n
\n {{ syncTime[column.value] | timeConvert: \"GMT\" }}\n
\n \n
\n \n
\n \n \n \n \n\n \n Sync time has not been configured\n \n\n \n Cannot add the same sync time twice.\n \n
\n
\n\n
\n
\n
\n \n Start\n \n\n \n \n
\n\n
\n \n Interval time\n \n\n
\n
\n \n \n\n \n hours\n \n
\n\n \n Sync interval can be set from 1 to 720 hours\n \n
\n
\n
\n
\n
\n \n \n \n
\n","import {AfterViewInit, ChangeDetectorRef, Component, Input, OnInit, ViewChild} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport {StringMap} from '@angular/compiler/src/compiler_facade_interface';\nimport {KeyValue} from '@angular/common';\nimport {CheckboxComponent} from 'openlm';\nimport {SyncFormService} from '../../../service/sync-form.service';\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\nimport {filter} from 'rxjs/operators';\nimport {DomainFacade} from '../../../../domain/domain.facade';\nimport {IDomain} from '../../../../domain/api/models/domain.interface';\n\n@UntilDestroy()\n@Component({\n selector: 'app-group-rules-tab',\n templateUrl: './group-rules-tab.component.html',\n styleUrls: ['./group-rules-tab.component.scss']\n})\nexport class GroupRulesTabComponent implements OnInit, AfterViewInit {\n\n constructor(\n private syncFormService: SyncFormService,\n private changeDetector: ChangeDetectorRef,\n private domainFacade: DomainFacade,\n ) {\n }\n\n @ViewChild('security') securityCheckbox: CheckboxComponent;\n @ViewChild('ou') ouCheckbox: CheckboxComponent;\n @ViewChild('distribution') distributionCheckbox: CheckboxComponent;\n @ViewChild('custom') customCheckbox: CheckboxComponent;\n\n @Input() public syncFormGroup: FormGroup;\n @Input() public directoryType: number;\n @Input() public textInfo: StringMap;\n @Input() public isToggled: (formControl: string) => boolean;\n\n @Input()\n public set isApacheDs(isApacheDs: boolean) {\n this.canCheckHierarchicalProperties = !isApacheDs;\n this.groupRules = isApacheDs ? ['No group', 'Flat', 'Entity attribute'] : ['No group', 'Flat', 'Hierarchical', 'Entity attribute'];\n }\n\n public isActiveDirectory = true;\n public isHideOUCheckboxArr: number[] = [5, 6]\n public groupRules: string[] = [];\n public selectedDomain: IDomain;\n public readonly activeDirectoryAttributes: KeyValue[] = [\n {key: 'Company', value: 'company'},\n {key: 'State', value: 'st'},\n {key: 'Office', value: 'physicalDeliveryOfficeName'},\n {key: 'Country', value: 'c'},\n {key: 'Department', value: 'department'},\n {key: 'City', value: 'l'},\n {key: 'Manager', value: 'manager'},\n {key: 'Organization Unit', value: 'ou'}\n ]\n\n public readonly activeDirectoryAttributesGoogleCDS: KeyValue[] = [\n {key: 'Email', value: 'primaryemail'},\n {key: 'First Name', value: 'name.givenname'},\n {key: 'Last Name', value: 'name.familyname'},\n {key: 'Display Name', value: 'name.fullname'},\n {key: 'Phone Number', value: 'phones[home].value'},\n {key: 'Department', value: 'organizations[0].department'},\n {key: 'Office', value: 'customschemas[location].value[office].value'},\n {key: 'Mobile Phone', value: 'phones[mobile].value'},\n {key: 'Country', value: 'addresses[home].country'}\n ]\n\n public readonly activeDirectoryAttributesOkta: KeyValue[] = [\n {key: 'Company', value: 'organization'},\n {key: 'State', value: 'state'},\n {key: 'Cost Center', value: 'costCenter'},\n {key: 'Country', value: 'countryCode'},\n {key: 'Department', value: 'department'},\n {key: 'City', value: 'city'},\n {key: 'Manager', value: 'manager'},\n {key: 'Time Zone', value: 'timezone'}\n ]\n\n public readonly activeDirectoryAttributesNis: KeyValue[] = [\n {key: 'gid', value: 'gid'},\n {key: 'gecos', value: 'gecos'},\n {key: 'homeDir', value: 'homeDir'},\n {key: 'shell', value: 'shell'}\n ]\n\n private canCheckHierarchicalProperties = true;\n\n public ngOnInit(): void {\n this.domainFacade.activeEntity$\n .pipe(\n untilDestroyed(this)\n )\n .subscribe(domain => {\n this.selectedDomain = domain;\n this.textInfo.groupsAndRules = domain?.type < 3\n ? this.textInfo.groupsAndRulesForNonAzureAD\n : domain?.type === 4 ? this.textInfo.groupsAndRulesForGoogleCDS : this.textInfo.groupsAndRulesForAzureAD;\n });\n }\n\n public ngAfterViewInit(): void {\n if (this.canCheckHierarchicalProperties) {\n this.uncheckHierarchicalCheckboxes();\n this.assignValuesToHierarchicalSyncTypeToggles();\n this.changeDetector.detectChanges();\n }\n\n this.syncFormService.formValuesUpdatedEmitter$\n .pipe(\n untilDestroyed(this),\n filter(() => this.canCheckHierarchicalProperties)\n )\n .subscribe(() => {\n setTimeout(() => {\n this.uncheckHierarchicalCheckboxes();\n this.assignValuesToHierarchicalSyncTypeToggles();\n }, 0);\n });\n\n this.domainFacade.activeEntity$\n .pipe(\n untilDestroyed(this),\n filter(() => this.syncFormGroup.value.groupRule === 'Hierarchical')\n )\n .subscribe(() => {\n this.assignValuesToHierarchicalSyncTypeToggles();\n })\n }\n\n public hasActiveDirectoryAttribute(): boolean {\n const {groupAttribute, groupAttributePattern} = this.syncFormGroup.controls;\n\n return !groupAttribute.value && !!groupAttributePattern.value;\n }\n\n /* Assign the value of hierarchical checkboxes based on subtraction of each checkbox value from the aggregate value coming from Backend.\n Each checkbox has a value mapped to it from an enum. We subtract each of these values from the combined value\n of the enum in Sync's property SyncType until we reach 0, which means that there are no values left to assign.\n If subtraction would result in a negative value it means that the checkbox we were subtracting is not checked and we skip it. */\n public assignValuesToHierarchicalSyncTypeToggles(): void {\n const toggleKeyValues: KeyValue[] = [\n {key: 'custom', value: 128},\n {key: 'distribution', value: 32},\n {key: 'security', value: 16},\n {key: 'ou', value: 8}\n ];\n let hierarchicalSyncTypeValue = this.syncFormGroup.controls.hierarchicalSyncType.value;\n let hasSecurityGroupType: boolean;\n\n for (const toggle of toggleKeyValues) {\n\n if (hierarchicalSyncTypeValue - toggle.value < 0) {\n continue;\n }\n\n switch (toggle.key) {\n case 'custom': {\n if (!this.selectedDomain || this.selectedDomain.type < 3) {\n this.customCheckbox.checked = true;\n }\n\n break;\n }\n case 'distribution': {\n if (!this.selectedDomain || this.selectedDomain.type < 3) {\n this.distributionCheckbox.checked = true;\n }\n break;\n }\n case 'security': {\n this.securityCheckbox.checked = true;\n hasSecurityGroupType = true;\n break;\n }\n case 'ou': {\n this.changeDetector.detectChanges();\n if (this.selectedDomain?.type !== 5 && !!this.ouCheckbox) {\n this.ouCheckbox.checked = true;\n }\n break;\n }\n }\n\n if (hierarchicalSyncTypeValue - toggle.value === 0) {\n break;\n }\n\n hierarchicalSyncTypeValue -= toggle.value;\n }\n }\n\n public setHierarchicalSyncType(isTurnedOn: boolean, syncType: number): void {\n const {hierarchicalSyncType} = this.syncFormGroup.controls;\n const currentValue = hierarchicalSyncType.value || 0;\n\n isTurnedOn ? hierarchicalSyncType.setValue(currentValue + syncType) : hierarchicalSyncType.setValue(currentValue - syncType);\n }\n\n private uncheckHierarchicalCheckboxes(): void {\n const checkboxes = [\n this.customCheckbox,\n this.distributionCheckbox,\n this.securityCheckbox,\n this.ouCheckbox\n ];\n\n checkboxes.forEach(checkbox => {\n if (!!checkbox) {\n checkbox.checked = false;\n }\n });\n }\n}\n","\n
\n \n Select the rule by which groups will be created\n \n\n
\n
\n \n \n
\n\n \n \n
\n
\n\n\n \n\n\n
\n
\n \n Enter a group name. All synced objects will become members of that group.\n \n\n \n \n
\n\n
\n \n \n\n \n Set as default group\n \n \n \n
\n
\n\n\n
\n
\n \n {{\n selectedDomain?.type > 2\n ? 'The hierarchical group will be created according to the groups and the search depth specified below.'\n : 'Select the object classes you would like the groups to be created by'\n }}\n \n\n
\n
2}\" class=\"pl-4 mt-3\" fxLayout=\"row\">\n \n \n
\n \n Security groups\n \n \n \n
\n
\n\n \n \n \n\n
\n \n {{ selectedDomain?.type === 3 ? 'Administrative units' : 'OU' }}\n \n \n \n
\n
\n\n = 3 && syncFormGroup?.controls?.groupRule?.touched\"\n class=\"form-error-message\"\n style=\"margin-top: 4px\">\n Please select at least one type of object class before saving\n \n\n \n\n
\n \n \n\n
\n \n Distribution groups\n \n\n \n \n
\n
\n\n
\n \n \n\n
\n \n Customized & Unknown Object Classes\n \n\n \n \n
\n
\n \n Please select at least one type of object class before saving\n \n
\n
\n
\n\n
\n
\n \n \n\n \n {{ selectedDomain?.type === 3 ? 'Include start group' : 'Include start node' }}\n \n
\n\n \n \n Search Depth\n \n\n \n \n \n \n Search depth can be a value between 0 and 1000.\n \n
\n\n \n \n Group Search Depth value cannot be higher than the search depth selected in the Object Tab.\n \n \n \n\n
\n \n \n\n \n Set as default group\n \n\n \n \n
\n \n \n\n\n
\n
\n \n Group by attribute\n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n \n \n\n \n \n
\n\n
\n \n Regular expression to specify the sub-level of the selected attribute (optional)\n \n\n \n \n \n Attribute is missing\n \n
\n\n
\n \n \n\n \n Set as default group\n \n\n \n \n
\n
\n\n
\n
\n \n Type in the name of wrapper parent group for sync objects (optional)\n \n \n \n
\n \n \n
\n \n
\n","import {AfterViewInit, Component, Input, ViewChild} from '@angular/core';\nimport {StringMap} from '@angular/compiler/src/compiler_facade_interface';\nimport {FormGroup} from '@angular/forms';\nimport {KeyValue} from '@angular/common';\nimport {RadioComponent, SelectComponent} from 'openlm';\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\nimport {DomainFacade} from '../../../../domain/domain.facade';\nimport {IDomain} from '../../../../domain/api/models/domain.interface';\nimport {filter} from 'rxjs/operators';\nimport {SyncFormService} from '../../../service/sync-form.service';\nimport {ISyncAttribute} from '../../../models/sync.interface';\n\n@UntilDestroy()\n@Component({\n selector: 'app-object-tab',\n templateUrl: './object-tab.component.html',\n styleUrls: ['./object-tab.component.scss']\n})\nexport class ObjectTabComponent implements AfterViewInit {\n\n constructor(\n public domainFacade: DomainFacade,\n private syncFormService: SyncFormService\n ) {\n }\n\n @ViewChild('userRadio')\n public userRadio: RadioComponent;\n @ViewChild('objectNameAttributesDropdown')\n public objectNameAttributesDropdown: SelectComponent;\n @ViewChild('objectMembershipFilterDropdown')\n public objectMembershipFilterDropdown: SelectComponent;\n @Input()\n public textInfo: StringMap = {};\n @Input()\n public syncFormGroup: FormGroup;\n @Input() public syncId: string;\n @Input() public syncDomainType: string;\n @Input() public attributesToSync: string[] = [];\n public domainAttributes: ISyncAttribute[] = [];\n\n @Input()\n public set isApacheDS(isApacheDs: boolean) {\n this.isComputerRadioDisabled = isApacheDs;\n\n if (isApacheDs && this.userRadio) {\n this.userRadio.selectRadio();\n }\n };\n\n public selectedDomain: IDomain;\n public selectAll: boolean = false;\n public customSelectAll: boolean = false;\n public selectAllText: string = 'Select all';\n public isComputerRadioDisabled: boolean;\n public objectNameAttributes: string[] = ['CN'];\n public objectMembershipFilter: KeyValue[] = [\n {key: 0, value: 'All objects'},\n {key: 1, value: 'Only members of OUs'},\n {key: 2, value: 'Only members of Security Groups'}\n ];\n public azurePatternError: string = 'Search depth has to be 0 unless you set the \\'Start Sync From\\' group.';\n public googlePatternError: string = 'Search depth has to be 0 unless you set the \\'Start Sync From\\' group / Organizational Units (OUs).';\n\n public ngAfterViewInit(): void {\n this.domainFacade.activeEntity$\n .pipe(\n untilDestroyed(this),\n filter(active => !!active)\n )\n .subscribe(domain => {\n this.selectedDomain = domain;\n this.changeObjectTabPropertiesBasedOnDomainType(domain);\n this.domainAttributes = (\n domain.allPossibleAttributes\n ? domain.allPossibleAttributes.split(';')\n : []\n ).map((attr) => ({\n name: attr,\n // tslint:disable-next-line:max-line-length\n selected: this.syncId && +this.syncDomainType === domain.type ? (this.isDomainDefaultAttribute(domain.type, attr) || this.attributesToSync.includes(attr)) : true,\n disabled: this.isDomainDefaultAttribute(domain.type, attr)\n }));\n this.updateAttributesToSync(true);\n });\n }\n\n public changeRelatedFields(syncType: number): void {\n const {activeObjectsOnly, objectNameAttribute} = this.syncFormGroup.controls;\n\n if (syncType === 1) {\n objectNameAttribute.setValue('')\n } else {\n activeObjectsOnly.setValue(false);\n }\n }\n\n private changeObjectTabPropertiesBasedOnDomainType(domain: IDomain): void {\n this.objectNameAttributes = [];\n this.textInfo.objectsToBeUsed = domain.type < 3 ? this.textInfo.objectsForNonAzureAD : this.textInfo.objectsForAzureAD;\n\n this.objectNameAttributes = this.getSyncObjectAttributes(domain.type);\n if (this.syncFormGroup.controls.objectNameAttribute.value === '') {\n this.syncFormGroup.controls.objectNameAttribute.patchValue(this.objectNameAttributes[0]);\n }\n\n if (domain.type > 2 && this.syncFormGroup.value.objectsTypeToSync === 1) {\n this.syncFormGroup.controls.objectsTypeToSync.patchValue(0);\n this.changeRelatedFields(0);\n }\n\n switch (domain.type) {\n case 3:\n this.objectMembershipFilter = [\n {key: 0, value: 'All objects'},\n {key: 1, value: 'Only members of Administrative Units'},\n {key: 2, value: 'Only members of a group'}\n ]\n break;\n case 5:\n this.objectMembershipFilter = [\n {key: 0, value: 'All objects'},\n ]\n break;\n case 6:\n this.objectMembershipFilter = [\n {key: 0, value: 'All objects'},\n {key: 2, value: 'Only members of Security Groups'}]\n break;\n default:\n this.objectMembershipFilter = [\n {key: 0, value: 'All objects'},\n {key: 1, value: 'Only members of OUs'},\n {key: 2, value: 'Only members of Security Groups'}\n ]\n break;\n }\n\n this.objectMembershipFilterDropdown.items = this.objectMembershipFilter;\n const selectedObjectMembershipFilter = this.syncFormGroup.value.objectMembershipFilter;\n\n this.syncFormGroup.controls.objectMembershipFilter.patchValue(\n selectedObjectMembershipFilter\n )\n\n this.textInfo.membershipFilterToBeUsed =\n domain.type === 3 ? this.textInfo.membershipFilterForAzureAD\n : domain.type === 4 ? this.textInfo.membershipFilterForGoogleCDS\n : domain.type === 5 ? this.textInfo.membershipFilterForOkta\n : domain.type === 6 ? this.textInfo.membershipFilterForNis\n : this.textInfo.membershipFilterForNonAzureAD;\n }\n\n private isDomainDefaultAttribute(domainType: string | number, attribute: string): boolean {\n /** Case value referenced from AddEditDomainPageComponent.directoryTypes */\n switch (domainType) {\n case 0:\n return ['userPrincipalName', 'sAMAccountName', 'cn', 'whenChanged'].includes(attribute);\n case 1:\n case 2:\n return ['cn'].includes(attribute);\n case 3:\n return ['userPrincipalName', 'mail'].includes(attribute);\n case 4:\n return ['primaryemail'].includes(attribute);\n case 5:\n return ['login'].includes(attribute);\n case 6:\n return ['username'].includes(attribute);\n default:\n return false;\n }\n }\n\n public updateAttributesToSync(isInitialLoad?: boolean): void {\n if (this.domainAttributes.filter((item) => item.selected).length === this.domainAttributes.length) {\n this.selectAllText = 'Unselect all';\n this.selectAll = true;\n\n } else {\n this.selectAll = false;\n this.selectAllText = 'Select all';\n }\n\n this.customSelectAll = isInitialLoad ? this.selectAll : false;\n\n this.syncFormService.updateAttributesToSync(this.domainAttributes);\n this.setSyncAllAttributes();\n }\n\n public setSyncAllAttributes(syncAllAttributes?: boolean): void {\n const syncAttributesConfig = syncAllAttributes ? syncAllAttributes : this.customSelectAll\n this.syncFormService.setSyncAllAttributes(syncAttributesConfig);\n }\n\n private getSyncObjectAttributes(domainType: number | string): string[] {\n switch (domainType) {\n case 3:\n return ['userPrincipalName', 'onPremisesSamAccountName', 'mailNickname'];\n case 4:\n return ['email'];\n case 5:\n return ['login'];\n case 6:\n return ['username'];\n case 0:\n case 1:\n case 2:\n default:\n return ['CN', 'samAccountName', 'userPrincipalName'];\n }\n }\n\n public toggleAttributeSelection(checked: boolean): void {\n this.domainAttributes.forEach((item) => {\n item.selected = checked ? checked : this.isDomainDefaultAttribute(this.selectedDomain.type, item.name) || checked\n })\n\n this.updateAttributesToSync();\n }\n}\n","\n
\n
\n
\n \n Sync object type\n \n\n
\n
\n
\n
\n \n
\n Users\n
\n
\n\n\n
\n \n
\n Only users monitored by {{ \"sync.object.syncUserText\" | textSwap }}\n \n
\n
\n\n
\n
\n\n \n \n
\n Computers\n
\n
\n
\n
\n
\n
\n
\n\n\n
\n
\n Sync Attribute\n\n \n \n
\n\n \n \n \n \n \n This field is required.\n \n
\n
\n\n\n
\n
\n Membership filter\n\n \n \n
\n\n \n \n
\n\n\n \n
\n
\n Search depth\n
\n\n \n \n\n \n \n Object Search Depth value cannot be higher than 1.\n \n
\n\n \n \n Search depth can be a value between 0 and 1000.\n \n
\n\n 2 && !syncFormGroup.controls.objectSyncDepth.pristine && syncFormGroup.controls.objectSyncDepth.errors?.shouldBeEmpty\"\n style=\"color: #ff3b3b;\">\n \n Search depth has to be 0 unless you set the 'Start Sync From' group.\n \n\n \n Search depth has to be 0 unless you set the 'Start Sync From' group / Administrative Units.\n \n \n\n \n \n Search depth has to be 0 unless you set the 'Start Sync From' group / Organizational Units (OUs).\n \n \n \n \n \n\n
\n \n Sync Attributes\n \n\n
\n \n
Sync all attributes
\n
\n
\n \n
{{ textInfo.customAttributeTitle }}
\n
\n\n \n \n
\n
\n
\n\n \n
\n {{ selectAllText }}\n
\n \n
\n \n
\n {{ attr.name }}\n
\n \n
\n
\n\n
\n \n
\n","import {AfterViewInit, ChangeDetectorRef, Component, Input, OnInit, ViewChild} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport {StringMap} from '@angular/compiler/src/compiler_facade_interface';\nimport {KeyValue} from '@angular/common';\nimport {CheckboxComponent} from 'openlm';\nimport {SyncFormService} from '../../../service/sync-form.service';\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\nimport {filter} from 'rxjs/operators';\nimport {DomainFacade} from '../../../../domain/domain.facade';\nimport {IDomain} from '../../../../domain/api/models/domain.interface';\n\n@UntilDestroy()\n@Component({\n selector: 'app-project-rules-tab',\n templateUrl: './project-rules-tab.component.html',\n styleUrls: ['./project-rules-tab.component.scss']\n})\nexport class ProjectRulesTabComponent implements OnInit, AfterViewInit {\n\n constructor(\n private syncFormService: SyncFormService,\n private changeDetector: ChangeDetectorRef,\n private domainFacade: DomainFacade\n ) {\n }\n\n @ViewChild('security') securityCheckbox: CheckboxComponent;\n @ViewChild('ou') ouCheckbox: CheckboxComponent;\n @ViewChild('distribution') distributionCheckbox: CheckboxComponent;\n @ViewChild('custom') customCheckbox: CheckboxComponent;\n\n @Input() public syncFormGroup: FormGroup;\n @Input() public textInfo: StringMap;\n @Input() public directoryType: number;\n @Input() public isToggled: (formControl: string) => boolean;\n\n @Input()\n public set isApacheDs(isApacheDs: boolean) {\n this.canCheckHierarchicalProperties = !isApacheDs;\n this.projectRules = isApacheDs ? ['No project', 'Flat', 'Entity attribute'] : ['No project', 'Flat', 'Hierarchical', 'Entity attribute'];\n }\n\n public isActiveDirectory = true;\n public projectRules: string[] = [];\n public selectedDomain: IDomain;\n public readonly activeDirectoryAttributes: KeyValue[] = [\n {key: 'Company', value: 'company'},\n {key: 'State', value: 'st'},\n {key: 'Office', value: 'physicalDeliveryOfficeName'},\n {key: 'Country', value: 'c'},\n {key: 'Department', value: 'department'},\n {key: 'City', value: 'l'},\n {key: 'Manager', value: 'manager'},\n {key: 'Organization Unit', value: 'ou'}\n ]\n\n public readonly activeDirectoryAttributesGoogleCDS: KeyValue[] = [\n {key: 'Email', value: 'primaryemail'},\n {key: 'First Name', value: 'name.givenname'},\n {key: 'Last Name', value: 'name.familyname'},\n {key: 'Display Name', value: 'name.fullname'},\n {key: 'Phone Number', value: 'phones[home].value'},\n {key: 'Department', value: 'organizations[0].department'},\n {key: 'Office', value: 'customschemas[location].value[office].value'},\n {key: 'Mobile Phone', value: 'phones[mobile].value'},\n {key: 'Country', value: 'addresses[home].country'}\n ]\n\n private canCheckHierarchicalProperties = true;\n\n public ngOnInit(): void {\n this.domainFacade.activeEntity$\n .pipe(\n untilDestroyed(this)\n )\n .subscribe(domain => {\n this.selectedDomain = domain;\n this.textInfo.projectsAndRules = domain?.type < 3\n ? this.textInfo.projectsAndRulesForNonAzureAD\n : domain?.type === 4 ? this.textInfo.projectsAndRulesForGoogleCDS : this.textInfo.groupsAndRulesForAzureAD;\n });\n\n this.syncFormGroup.controls.projectRule.valueChanges\n .pipe(\n untilDestroyed(this),\n filter(\n v => v === 'Hierarchical' && (this.syncFormService.domainType === 3 || this.syncFormService.domainType === 4 || !this.syncFormService.domainType)\n )\n )\n .subscribe(() => {\n const {projectHierarchicalSyncType, createProjectFromStartNode} = this.syncFormGroup.controls;\n\n if (!projectHierarchicalSyncType.value && this.syncFormService.domainType !== 4) {\n projectHierarchicalSyncType.setValue(56);\n }\n\n if (this.syncFormService.domainType >= 3) {\n projectHierarchicalSyncType.setValue(24);\n }\n\n if (!createProjectFromStartNode.value) {\n createProjectFromStartNode.setValue(true);\n }\n\n this.syncFormService.formValuesUpdatedEmitter$.emit();\n })\n\n }\n\n public ngAfterViewInit(): void {\n if (this.canCheckHierarchicalProperties) {\n this.uncheckHierarchicalCheckboxes();\n this.assignValuesToHierarchicalSyncTypeToggles();\n this.changeDetector.detectChanges();\n }\n\n this.syncFormService.formValuesUpdatedEmitter$\n .pipe(\n untilDestroyed(this),\n filter(() => this.canCheckHierarchicalProperties)\n )\n .subscribe(() => {\n setTimeout(() => {\n this.uncheckHierarchicalCheckboxes();\n this.assignValuesToHierarchicalSyncTypeToggles();\n }, 0);\n });\n\n this.domainFacade.activeEntity$\n .pipe(\n untilDestroyed(this),\n filter(() => this.syncFormGroup.value.projectRule === 'Hierarchical')\n )\n .subscribe(() => {\n this.assignValuesToHierarchicalSyncTypeToggles();\n })\n }\n\n public hasActiveDirectoryAttribute(): boolean {\n const {projectAttribute, projectAttributePattern} = this.syncFormGroup.controls;\n\n return !projectAttribute.value && !!projectAttributePattern.value;\n }\n\n /* Assign the value of hierarchical checkboxes based on subtraction of each checkbox value from the aggregate value coming from Backend.\n Each checkbox has a value mapped to it from an enum. We subtract each of these values from the combined value\n of the enum in Sync's property SyncType until we reach 0, which means that there are no values left to assign.\n If subtraction would result in a negative value it means that the checkbox we were subtracting is not checked and we skip it. */\n public assignValuesToHierarchicalSyncTypeToggles(): void {\n const toggleKeyValues: KeyValue[] = [\n {key: 'custom', value: 128},\n {key: 'distribution', value: 32},\n {key: 'security', value: 16},\n {key: 'ou', value: 8}\n ];\n let projectHierarchicalSyncTypeValue = this.syncFormGroup.controls.projectHierarchicalSyncType.value;\n let hasSecurityGroupType: boolean;\n\n for (const toggle of toggleKeyValues) {\n if (projectHierarchicalSyncTypeValue - toggle.value < 0) {\n continue;\n }\n\n switch (toggle.key) {\n case 'custom': {\n if (!this.selectedDomain || this.selectedDomain.type < 3) {\n this.customCheckbox.checked = true;\n }\n\n break;\n }\n case 'distribution': {\n if (!this.selectedDomain || this.selectedDomain.type < 3) {\n this.distributionCheckbox.checked = true;\n }\n break;\n }\n case 'security': {\n this.securityCheckbox.checked = true;\n hasSecurityGroupType = true;\n break;\n }\n case 'ou': {\n this.ouCheckbox.checked = true;\n break;\n }\n }\n\n if (projectHierarchicalSyncTypeValue - toggle.value === 0) {\n break;\n }\n projectHierarchicalSyncTypeValue -= toggle.value;\n }\n }\n\n public setHierarchicalSyncType(isTurnedOn: boolean, syncType: number): void {\n const {projectHierarchicalSyncType} = this.syncFormGroup.controls;\n const currentValue = projectHierarchicalSyncType.value || 0;\n\n isTurnedOn ? projectHierarchicalSyncType.setValue(currentValue + syncType) : projectHierarchicalSyncType.setValue(currentValue - syncType);\n }\n\n private uncheckHierarchicalCheckboxes(): void {\n const checkboxes = [\n this.customCheckbox,\n this.distributionCheckbox,\n this.securityCheckbox,\n this.ouCheckbox\n ];\n\n checkboxes.forEach(checkbox => {\n if (!!checkbox) {\n checkbox.checked = false;\n }\n });\n }\n}\n","\n
\n \n Select a rule to create a project\n \n\n
\n
\n \n \n
\n\n \n \n
\n
\n\n\n
\n\n\n
\n
\n \n Enter a project name and all the synced objects will become a member of the same project.\n \n\n \n \n
\n\n
\n \n \n\n \n Set as default project\n \n \n \n
\n
\n\n\n
\n
\n \n {{\n selectedDomain?.type > 2\n ? 'The hierarchical project will be created according to the projects and the search depth specified below.'\n : 'Select the object classes you would like the projects to be created by'\n }}\n \n
\n
2}\" class=\"pl-4 mt-3\" fxLayout=\"row\">\n \n \n
\n \n Security project\n \n \n \n
\n
\n\n
\n \n\n
\n \n {{selectedDomain?.type === 3 ? 'Administrative units' : 'OU'}}\n \n\n \n \n
\n
\n\n \n Please select at least one type of object class before saving\n \n\n \n\n
\n \n \n\n
\n \n Distribution projects\n \n \n \n
\n
\n
\n \n \n
\n \n Customized & Unknown Object Classes\n \n \n \n
\n
\n \n Please select at least one type of object class before saving\n \n
\n
\n
\n
\n
\n \n \n \n {{selectedDomain?.type === 3 ? 'Include start group' : 'Include start node'}}\n \n
\n
\n \n Search Depth\n \n\n \n \n
\n \n Search depth can be a value between 0 and 1000.\n \n
\n\n
\n \n Project Search Depth value cannot be higher than the search depth selected in the Object Tab.\n \n
\n
\n\n
\n \n \n\n \n Set as default project\n \n\n \n \n
\n
\n
\n\n\n
\n
\n \n Project by attribute\n \n\n \n \n\n \n \n \n \n \n \n\n \n \n
\n\n
\n \n Regular expression to specify the sub-level of the selected attribute (optional)\n \n\n \n \n \n Attribute is missing\n \n
\n\n
\n \n \n\n \n Set as default project\n \n\n \n \n
\n
\n
\n
\n","import {Component, Inject, OnInit} from '@angular/core';\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\nimport {SyncTableDetails} from '../../models/sync.interface';\nimport {TableColumn} from 'openlm';\nimport {SyncFacade} from '../../sync.facade';\nimport {List} from 'immutable';\nimport {SyncUiQuery} from '../../state/sync-ui/sync-ui.query';\n\n@Component({\n selector: 'app-sync-delete-dialog',\n templateUrl: './sync-delete-dialog.component.html',\n styleUrls: ['./sync-delete-dialog.component.scss']\n})\nexport class SyncDeleteDialogComponent implements OnInit {\n\n constructor(private dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: { syncs: List, dialogType: 'Delete' | 'Stop' },\n private syncFacade: SyncFacade,\n public syncUiQuery: SyncUiQuery,\n ) {\n }\n\n public dialogType: 'Delete' | 'Stop';\n public hasRunningJobs: boolean;\n public hasNoRunningJobs: boolean;\n public columns: TableColumn[] = [\n {\n label: 'Sync Name',\n value: 'name',\n visible: true,\n },\n {\n label: 'Is Running',\n value: 'syncJobStatus',\n visible: true\n }\n ];\n\n public ngOnInit(): void {\n this.dialogType = this.data.dialogType;\n this.hasRunningJobs = this.data.syncs.some(s => s.syncJobStatus !== null);\n this.hasNoRunningJobs = this.data.syncs.some(s => s.syncJobStatus === null);\n }\n\n public onCloseButtonClick(): void {\n this.dialogRef.close(false);\n }\n\n public async onSaveButtonClick(): Promise {\n if (this.dialogType === 'Delete') {\n this.data.syncs.size > 1\n ? await this.syncFacade.massDeleteSyncDefs(this.data.syncs.map(d => d.syncDefId).toJS() as number[])\n : await this.syncFacade.deleteSyncDef((this.data.syncs.toJS() as SyncTableDetails[])[0].syncDefId);\n }\n\n if (this.dialogType === 'Stop') {\n const syncIdsWithJobs = this.data.syncs.filter(s => s.syncJobStatus !== null).map(s => s.syncDefId).toJS() as number[];\n await this.syncFacade.stopSyncs(syncIdsWithJobs)\n }\n\n this.syncUiQuery.updateSelected();\n this.dialogRef.close(true);\n }\n\n public setTableTooltip(value: string): string {\n if (value === 'name') {\n return 'Sort by Sync name';\n }\n }\n}\n","
\n
\n
\n \n {{this.dialogType === 'Delete' ? 'DELETE' : 'STOP' }} {{data.syncs.size > 1 ? 'SYNCS' : 'SYNC'}}\n \n
\n
\n
\n\n
\n \n {{this.dialogType === 'Delete' ? 'Are you sure you would like to delete the following syncs?' : 'This action will stop sync execution. All data already synced will remain, but in order to get full result you will need to start sync again. Are you sure?'}}\n \n\n \n \n \n \n {{column.label}}\n \n \n \n\n \n \n \n \n
\n {{sync[column.value]}}\n
\n
\n {{sync[column.value] !== null | booleanToString}}\n
\n \n
\n \n
\n
\n\n
\n \n One or more of the selected syncs are currently running and cannot be deleted.\n \n\n \n One or more of the selected syncs are currently not running and cannot be stopped.\n \n\n
\n \n CANCEL\n \n\n \n {{this.dialogType === 'Delete' ? 'DELETE' : 'STOP' }}\n \n
\n
\n
\n\n
\n","import {ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit} from '@angular/core';\nimport {SideDialogRef} from '../../../../shared/side-dialog/side-dialog.service';\nimport {MatDialog} from '@angular/material/dialog';\nimport {ConfirmDialogComponent, DialogData} from '../../../../shared/confirm-dialog/confirm-dialog.component';\nimport {FormBuilder, FormGroup, Validators} from '@angular/forms';\nimport {TableColumn} from 'openlm';\nimport {IAgent} from '../../../agent/api/agent.interface';\nimport {UnsavedChangesDialogComponent} from '../../../../shared/unsaved-changes-dialog/unsaved-changes-dialog.component';\nimport {DirtyCheckPlugin} from '@datorama/akita';\nimport {SyncFacade} from '../../sync.facade';\nimport { pad } from '../../../../shared/utils';\nimport {ISyncCycle, ISyncMassUpdate} from '../../models/sync.interface';\nimport {AgentFacade} from '../../../agent/agent.facade';\nimport {DomainFacade} from '../../../domain/domain.facade';\nimport {KeyValue} from '@angular/common';\nimport {List} from 'immutable';\nimport {IDomainDetails} from '../../../domain/api/models/domain.interface';\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\nimport { dayTimeToGMT, dayTimeToUTC } from '../../../../shared/date/date-utils';\n\n@UntilDestroy()\n@Component({\n selector: 'app-sync-mass-update',\n templateUrl: './sync-mass-update.component.html',\n styleUrls: ['./sync-mass-update.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SyncMassUpdateComponent implements OnInit {\n\n constructor(\n private sideDialogRef: SideDialogRef,\n private syncFacade: SyncFacade,\n private agentFacade: AgentFacade,\n private domainFacade: DomainFacade,\n private matDialog: MatDialog,\n private formBuilder: FormBuilder,\n private changeDetector: ChangeDetectorRef\n ) {}\n\n public selectedSyncIds: number[] = [];\n public selectedSyncTimes: { day: number, time: string }[] = [];\n public syncMassForm: FormGroup;\n public syncMassDirtyCheckPlugin: DirtyCheckPlugin = this.syncFacade.syncMassDirtyCheckPlugin;\n\n public readonly daysOfWeek: KeyValue[] = [\n {key: 1, value: 'Sunday'},\n {key: 2, value: 'Monday'},\n {key: 3, value: 'Tuesday'},\n {key: 4, value: 'Wednesday'},\n {key: 5, value: 'Thursday'},\n {key: 6, value: 'Friday'},\n {key: 7, value: 'Saturday'}\n ];\n public readonly syncStatus: KeyValue[] = [\n {key: '0', value: 'Disabled'},\n {key: '1', value: 'Enabled'}\n ];\n public columns: TableColumn[] = [\n {\n label: 'Day',\n value: 'day',\n disableVisibilityChange: true,\n visible: true,\n },\n {\n label: 'Start time',\n value: 'time',\n visible: true,\n },\n ];\n\n public approvedAgents: List> = List();\n public domains: List> = List();\n\n\n public async ngOnInit() {\n this.initForm();\n\n this.approvedAgents = List(await this.agentFacade.partialGetAllAgents(2));\n this.domains = List(await this.domainFacade.partialGetAllDomains());\n\n this.selectedSyncIds = this.sideDialogRef.data.data.selected.map(i => i.syncDefId).toJS();\n this.sideDialogRef.closeOnBackdrop = false;\n this.sideDialogRef.overlay.backdropClick().subscribe(async () => {\n const canDeactivate = await this.canDeactivateDialog();\n\n if (canDeactivate) {\n this.sideDialogRef.close();\n }\n });\n\n this.syncMassForm.valueChanges\n .pipe(untilDestroyed(this))\n .subscribe(res => {\n this.syncFacade.setSyncMassUpdateStore(this.mapFormDataToAppropriateModel(res));\n });\n\n this.changeDetector.detectChanges();\n }\n\n public initForm(): void {\n this.syncMassForm = this.formBuilder.group({\n enabled: [null],\n agentId: [null],\n domainId: [null],\n syncCycle: [1],\n time: [''],\n weekDay: [null],\n interval: [1, [Validators.min(1), Validators.max(720)]],\n syncDays: [[]]\n });\n }\n\n public onAddSyncTimeToTableButtonClick(): void {\n const {time, weekDay, syncDays} = this.syncMassForm.controls;\n this.selectedSyncTimes = syncDays.value;\n\n const timeToUTC = dayTimeToUTC(weekDay.value - 1, time.value, window.localStorage.getItem('user-timezone'));\n const selectedTime = {\n day: timeToUTC.day + 1,\n time: `${pad(timeToUTC.hours, 2)}:${pad(timeToUTC.minutes, 2)}`\n };\n\n if (this.syncDateAddedAlready(selectedTime)) {\n return;\n }\n\n this.selectedSyncTimes.push(selectedTime);\n syncDays.patchValue(this.selectedSyncTimes);\n weekDay.patchValue('');\n time.patchValue('');\n }\n\n public transformDayForTableColumn(syncTime: { day: number; time: string }): string {\n const toGmt = dayTimeToGMT(syncTime.day - 1, syncTime.time, window.localStorage.getItem('user-timezone'));\n return this.daysOfWeek.find(d => d.key === toGmt.day + 1).value;\n }\n\n public async onSaveClick(): Promise {\n const length = this.selectedSyncIds.length;\n const confirmation = await this.matDialog.open(ConfirmDialogComponent, {\n width: '430px',\n data: {\n alertType: 'warning',\n header: 'Confirm',\n body: `You are about to update ${length} Syncs with the selected properties. Click Yes to continue or Cancel to abort?`,\n discardButtonName: 'cancel',\n discardButton: true,\n confirmButton: true,\n confirmButtonName: 'yes',\n confirmButtonType: 'primary'\n } as DialogData,\n }).afterClosed().toPromise();\n if (confirmation) {\n this.syncFacade.massUpdateSyncs(this.selectedSyncIds);\n this.sideDialogRef.close();\n }\n }\n\n public async canDeactivateDialog(): Promise {\n if (this.syncMassDirtyCheckPlugin.isDirty()) {\n const result = await this.matDialog.open(UnsavedChangesDialogComponent, {\n data: {\n screenName: 'Sync Bulk Edit'\n }\n }).afterClosed().toPromise();\n switch (result) {\n case 'CLOSE':\n return false;\n case 'CANCEL':\n this.syncMassDirtyCheckPlugin.reset();\n\n return true;\n default:\n this.syncFacade.massUpdateSyncs(this.selectedSyncIds);\n\n return true;\n }\n }\n\n return true;\n }\n\n public async onCloseClick(): Promise {\n const canDeactivate = await this.canDeactivateDialog();\n\n if (canDeactivate) {\n this.sideDialogRef.close();\n }\n }\n\n public isAddSyncTimeButtonValid(): boolean {\n const {time, weekDay} = this.syncMassForm.controls;\n\n return time.value.length === 5 && !!weekDay.value;\n }\n\n private syncDateAddedAlready(syncDate: { day: number, time: string }): boolean {\n return this.selectedSyncTimes.some(s => s.day === syncDate.day && s.time === syncDate.time);\n }\n\n private mapFormDataToAppropriateModel(formValues: any): ISyncMassUpdate {\n const syncMassUpdateModel = {} as ISyncMassUpdate;\n const keysToCompareTo = ['enabled', 'agentId', 'domainId'];\n\n if (!!formValues.enabled ) {\n formValues.enabled = formValues.enabled === '1';\n }\n\n for (const key in formValues) {\n if (formValues.hasOwnProperty(key)) {\n const isValidIntervalInput = formValues.time && formValues.syncCycle === 2;\n const isValidTimeInput = formValues.syncDays.length && formValues.syncCycle === 1;\n\n if (key === 'syncCycle') {\n if (syncMassUpdateModel.cycle?.type !== formValues[key]) {\n syncMassUpdateModel.cycle = {} as ISyncCycle;\n }\n\n if (isValidIntervalInput || isValidTimeInput) {\n formValues[key] === 1\n ? syncMassUpdateModel.cycle = {\n type: formValues.syncCycle,\n intervals: formValues.syncDays.map(d => {\n return {\n weekDay: d.day,\n startTimeHours: +d.time.substring(0, 2),\n startTimeMinutes: +d.time.substring(3, 5)\n };\n })\n }\n : syncMassUpdateModel.cycle = {\n type: formValues.syncCycle,\n intervals: [\n {\n startTimeHours: +formValues.time.substring(0, 2),\n startTimeMinutes: +formValues.time.substring(3, 5),\n intervalHours: formValues.interval\n }\n ]\n };\n\n continue;\n }\n }\n\n if (keysToCompareTo.some(k => k === key)) {\n syncMassUpdateModel[key] = formValues[key];\n }\n }\n }\n\n return syncMassUpdateModel;\n }\n}\n","
\n Sync Bulk Edit\n
\n
\n\n
\n\n\t\t\n\t\t\tThe change will take place with {{selectedSyncIds.length}} selected Syncs\n\t\t\n\n
\n
\n Status\n\n \n \n
\n\n\n
\n Agent\n\n \n \n
\n\n\n
\n Domain\n\n \n \n
\n
\n\n\n
\n Sync Method\n\n
\n \n
By Time
\n \n \n
By Interval
\n \n
\n\n
\n
\n
\n Days\n\n \n \n
\n\n
\n Start Time\n\n \n \n
\n
\n\n
\n \n
\n\n \n \n \n \n \n {{column.label}}\n \n \n \n \n\n \n \n \n \n
\n {{transformDayForTableColumn(syncTime)}}\n
\n\n
\n {{syncTime[column.value] | timeConvert:'GMT'}}\n
\n \n
\n \n
\n
\n
\n\n
\n
\n \n Start at\n \n\n \n \n
\n\n
\n \n Interval time\n \n\n \n \n
\n
\n
\n\n
\n \n save\n \n
\n
\n\n","import {Component, Inject, OnInit} from '@angular/core';\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\nimport {ISync} from '../../../models/sync.interface';\nimport {IAgent} from '../../../../agent/api/agent.interface';\n\n@Component({\n selector: 'app-reset-sync-confirmation-dialog',\n templateUrl: './reset-sync-confirmation-dialog.component.html',\n styleUrls: ['./reset-sync-confirmation-dialog.component.scss']\n})\nexport class ResetSyncConfirmationDialogComponent implements OnInit {\n\n constructor(private dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: {syncs: ISync[], dialogType: 'Sync' | 'Reset'}) { }\n\n public dialogType: 'Sync' | 'Reset';\n public runningSyncNames: string[];\n public notApprovedAgents: string[] = [];\n\n ngOnInit(): void {\n this.dialogType = this.data.dialogType;\n this.runningSyncNames = this.data.syncs.filter(s => s.syncJobStatus !== null).map(s => s.name);\n\n if (this.dialogType === 'Sync') {\n const filteredAgents = this.data.syncs.filter(s => s.agent.status !== 2).map(s => s.agent.agentName);\n\n this.notApprovedAgents = [...new Set(filteredAgents)];\n }\n }\n\n onCancelButtonClick() {\n this.dialogRef.close(false);\n }\n\n onSubmitButtonClick() {\n this.dialogRef.close(true);\n }\n}\n","\n
\n \n {{notApprovedAgents.length === 1 ? 'Agent pending approval' : 'Agents pending approval'}}\n \n
\n
\n
\n \n Cannot start the {{notApprovedAgents.length > 1 ? 'syncs' : 'sync'}}.\n The \"{{notApprovedAgents.length - 1 === i ? agent : agent + ', '}}\" {{notApprovedAgents.length > 1 ? 'agents are' : 'agent is'}} pending approval.\n Go to the Agent Manager tab and set {{notApprovedAgents.length > 1 ? 'their' : 'its'}} status to Enabled.\n \n\n
\n \n
\n
\n
\n\n\n
\n \n {{\n data.dialogType === 'Reset'\n ? 'The below Syncs are in process and can\\'t be reset.'\n : 'Following Syncs are already running.'\n }}\n \n
\n
\n
\n \n \n \n \n Sync Name\n \n \n \n \n \n \n {{sync}}\n \n \n \n \n\n
\n \n\n \n
\n
\n
\n","import {ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, OnDestroy, OnInit, ViewChild} from '@angular/core';\nimport {MatDialog} from '@angular/material/dialog';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {PaginationComponent, TableColumn, TableComponent} from 'openlm';\nimport {ISync, SyncTableDetails} from '../../models/sync.interface';\nimport {SideDialogService} from '../../../../shared/side-dialog/side-dialog.service';\nimport {SyncMassUpdateComponent} from '../sync-mass-update/sync-mass-update.component';\nimport {downloadFile} from '../../../../shared/utils';\nimport {SyncFacade} from '../../sync.facade';\nimport {SyncDeleteDialogComponent} from '../sync-delete-dialog/sync-delete-dialog.component';\nimport {List} from 'immutable';\nimport {SyncUiQuery} from '../../state/sync-ui/sync-ui.query';\nimport {SyncUiService} from '../../state/sync-ui/sync-ui.service';\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\nimport {combineLatest} from 'rxjs';\nimport {filter, startWith} from 'rxjs/operators';\nimport {areAllSelected, getSelection} from '../../../../core/base-ui-state/base-ui-utils';\nimport {BaseUI} from '../../../../core/base-ui-state/base-ui-state-interface';\nimport {ResetSyncConfirmationDialogComponent} from './reset-sync-confirmation-dialog/reset-sync-confirmation-dialog.component';\nimport {AppFacade} from '../../../../app.facade';\nimport {SnackbarService} from '../../../../shared/snackbar/snackbar-service/snackbar.service';\nimport {ConfirmDialogComponent, DialogData} from '../../../../shared/confirm-dialog/confirm-dialog.component';\n\n@UntilDestroy()\n@Component({\n selector: 'app-sync-page',\n templateUrl: './sync-page.component.html',\n styleUrls: ['./sync-page.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SyncPageComponent implements OnInit, OnDestroy, BaseUI {\n\n constructor(\n private dialog: MatDialog,\n public syncUiQuery: SyncUiQuery,\n public syncFacade: SyncFacade,\n public syncUiService: SyncUiService,\n public appFacade: AppFacade,\n private router: Router,\n private route: ActivatedRoute,\n private sideDialogService: SideDialogService,\n private changeDetector: ChangeDetectorRef,\n private snackbarService: SnackbarService\n ) {}\n\n @ViewChild(TableComponent, {read: ElementRef}) table;\n @ViewChild(PaginationComponent) pagination: PaginationComponent;\n\n private syncsFull: List;\n public syncsForTable: List;\n\n public columns: TableColumn[] | any[];\n public infoTexts: any = {};\n public failedToLoadSyncs: boolean;\n public resetLinkTooltip = 'Clears the entity relationship data generated by the sync, including any \"Ignore sync\" flags you might have previously set for specific entities';\n\n public startFromElementIndex: number = null;\n public searchTermToHighlight: string = null;\n\n ngOnInit() {\n this.initInfoTexts();\n if (this.route.snapshot.queryParams.afterMigrationDialog) {\n this.showAfterMigrationDialog();\n }\n\n this.route.queryParams\n .pipe(untilDestroyed(this))\n .subscribe(params => {\n if (params.serachForAgent || params.searchForDomain || params.searchForSyncName) {\n this.syncUiService.setSearchTerm(decodeURI(params.serachForAgent || params.searchForDomain || params.searchForSyncName))\n } else {\n this.syncUiService.setSearchTerm(null)\n }\n });\n\n\n this.syncUiQuery.selectPaginationStartFrom$\n .pipe(untilDestroyed(this))\n .subscribe(value => this.startFromElementIndex = value && value.indexOfElement);\n\n combineLatest([\n this.syncUiQuery.selectPagination$.pipe(startWith(this.syncUiQuery.pagination)),\n this.syncUiQuery.selectSort$,\n this.syncUiQuery.selectSearchTerm$,\n this.syncUiQuery.selectTableColumns$\n .pipe(filter(value => {\n if (!value) {\n this.syncUiService.setTableColumns(this.getDefaultColumns());\n return false;\n }\n return true;\n }))\n ]).pipe(untilDestroyed(this))\n .subscribe(async ([pagination, sort, searchTerm, columns]) => {\n // NOTE, temporary\n if (!searchTerm) {\n this.router.navigateByUrl('/syncs');\n }\n this.columns = columns;\n await this.syncFacade.loadPaginatedSyncs({pagination, sort, searchTerm});\n this.tryToFocusElement();\n this.searchTermToHighlight = searchTerm;\n this.changeDetector.detectChanges();\n });\n\n this.syncFacade.selectStoreError$()\n .pipe(untilDestroyed(this))\n .subscribe(error => {\n this.failedToLoadSyncs = error && error.action === 'GET' && error.details && error.details.failedToLoadSyncs;\n this.changeDetector.detectChanges();\n });\n\n this.syncFacade.selectPaginatedSyncs$()\n .pipe(untilDestroyed(this))\n .subscribe(syncs => {\n this.syncsFull = List(syncs);\n this.syncsForTable = List(syncs.filter(s => s.syncDefId > 0).map(s => new SyncTableDetails(s)));\n this.syncFacade.startPeriodicallyCheckingSyncs();\n\n this.changeDetector.detectChanges();\n });\n }\n\n public tryToFocusElement(): void {\n if (this.startFromElementIndex !== null) {\n this.table.nativeElement.querySelector('tbody').children[this.startFromElementIndex].focus();\n this.startFromElementIndex = null;\n this.syncUiService.resetPaginationStartFrom();\n }\n }\n\n public trackByFn(index: number, syncDef: SyncTableDetails): number {\n return syncDef.syncDefId;\n }\n\n public areAllSelected(): boolean {\n return areAllSelected(this.syncsFull, this.syncUiQuery.selected, 'syncDefId');\n }\n\n public getSelection(): number[] {\n return getSelection(this.syncsFull, this.syncUiQuery.selected, 'syncDefId');\n }\n\n public getSyncSelections(): number[] {\n return getSelection(this.syncsFull, this.syncUiQuery.selected, 'syncJobStatus');\n }\n public masterToggle(): void {\n this.areAllSelected() ?\n this.syncUiService.removeSelected(this.syncsForTable.map(s => s.syncDefId).toArray()) :\n this.syncUiService.addSelected(this.syncsForTable.map(s => s.syncDefId).toArray());\n }\n\n public onRowClick(event: MouseEvent, sync: SyncTableDetails): void {\n if (event.detail === 2) {\n this.navigateToSyncScreen(sync.syncDefId);\n }\n }\n\n public navigateToRelatedEntities(syncId: number): void {\n this.router.navigate(['/', 'entities'], {queryParams: {syncId}});\n }\n\n public navigateToSyncScreen(syncDefId: number) {\n this.router.navigate(['/', 'syncs', syncDefId]);\n }\n\n public async onSideDialogClick(): Promise {\n if (await this.appFacade.checkForDssConfig()) {\n this.sideDialogService.openComponent(\n SyncMassUpdateComponent,\n {\n width: '400px',\n data: {\n selected: this.syncsForTable.filter(t => this.syncUiQuery.selected.some(s => s === t.syncDefId))\n }\n });\n }\n }\n\n private async showAfterMigrationDialog(): Promise {\n await this.dialog.open(ConfirmDialogComponent, {\n data: {\n header: 'Important',\n // tslint:disable-next-line\n body: `The Syncs are missing the Directory Synchronization Agent (DSA) configuration. You must edit the syncs and select a DSA.
You can use the Bulk Edit option to update multiple syncs at once.`,\n confirmButton: true,\n confirmButtonName: 'ok',\n confirmButtonType: 'primary'\n } as DialogData\n }).afterClosed().toPromise();\n this.router.navigateByUrl('syncs');\n }\n\n public getDefaultColumns(): TableColumn[] | any[] {\n return [\n {\n label: 'Sync name',\n value: 'name',\n disableVisibilityChange: true,\n visible: true,\n sortTooltip: 'Sort by sync name'\n },\n {\n label: 'Status',\n value: 'enabled',\n disableVisibilityChange: true,\n visible: true,\n sortTooltip: 'Sort by sync status'\n },\n {\n label: 'Domain',\n value: 'domainName',\n visible: true,\n sortTooltip: 'Sort by domain name'\n },\n {\n label: 'Agent',\n value: 'agentName',\n visible: true,\n sortTooltip: 'Sort by Agent name'\n },\n {\n label: 'Sync Object',\n value: 'objectsTypeToSync',\n visible: true,\n sortTooltip: 'Sort by sync object type'\n },\n {\n label: 'Start node',\n value: 'startNodePath',\n visible: true,\n sortTooltip: 'Sort by the start node'\n },\n {\n label: 'Set as default',\n value: 'setDefaultGroup',\n visible: true,\n sortTooltip: 'Sort by syncs that have a set default group'\n },\n {\n label: 'Sync Entities',\n value: 'syncDefId',\n visible: true\n },\n {\n label: 'Created On',\n value: 'createdUtc',\n visible: false,\n sortTooltip: 'Sort by sync creation date'\n },\n {\n label: 'Last Synced On',\n value: 'recentSyncUtc',\n visible: false,\n sortTooltip: 'Sort by date of last sync'\n }\n ];\n }\n\n public async exportClicked(): Promise {\n const text = await this.syncFacade.downloadSyncCsv();\n downloadFile(text);\n }\n\n public async openDeleteDialog(): Promise {\n if (await this.appFacade.checkForDssConfig()) {\n await this.dialog.open(SyncDeleteDialogComponent, {\n data: {\n syncs: this.syncsForTable.filter(t => this.syncUiQuery.selected.some(s => s === t.syncDefId)),\n dialogType: 'Delete'\n },\n maxHeight: '632px',\n width: '464px'\n }).afterClosed().toPromise();\n }\n }\n\n public async onResetOrSyncButtonClick(action: string): Promise {\n if (await this.appFacade.checkForDssConfig()) {\n const selectedSyncs = this.syncsFull.filter(t => this.syncUiQuery.selected.some(s => s === t.syncDefId)).toJS();\n\n if (selectedSyncs.some((s: ISync) => !s.agent) && action === 'Sync') {\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: 'One or more of the provided syncs has no agent assigned to it, please specify one before proceeding.'\n });\n\n return;\n }\n\n const agentStatusCondition = (s: ISync) => action === 'Reset' || s.agent.status === 2;\n\n if (selectedSyncs.every((s: ISync) => !s.hasRunningJobs && s.syncJobStatus === null && agentStatusCondition(s))) {\n const syncIdsWithoutJobs = this.syncUiQuery.selected;\n\n action === 'Reset' ? this.syncFacade.resetSyncs(syncIdsWithoutJobs) : this.syncFacade.syncNow(syncIdsWithoutJobs);\n this.changeDetector.detectChanges();\n\n return;\n }\n\n const confirmDialog = await this.dialog.open(ResetSyncConfirmationDialogComponent, {\n width: '550px',\n maxHeight: '410px',\n disableClose: true,\n data: {\n syncs: selectedSyncs,\n dialogType: action\n }\n }).afterClosed().toPromise();\n\n if (confirmDialog) {\n const syncIdsWithoutJobs = selectedSyncs\n .filter((s: ISync) => !s.hasRunningJobs && s.syncJobStatus === null)\n .map((s: ISync) => s.syncDefId);\n\n action === 'Reset' ? this.syncFacade.resetSyncs(syncIdsWithoutJobs) : this.syncFacade.syncNow(syncIdsWithoutJobs);\n }\n\n this.changeDetector.detectChanges();\n }\n }\n\n public async onStopSyncButtonClick() {\n await this.dialog.open(SyncDeleteDialogComponent, {\n data: {\n syncs: this.syncsForTable.filter(t => this.syncUiQuery.selected.some(s => s === t.syncDefId)),\n dialogType: 'Stop'\n },\n maxHeight: '632px',\n width: '464px'\n }).afterClosed().toPromise();\n }\n\n public setRunningSyncSpinnerTooltip(syncJobStatus: number): string {\n const secondStage = [2, 3, 4, 5, 6, 7];\n const thirdStage = [8, 9, 10, 11];\n\n switch (true) {\n case 0 === syncJobStatus: {\n return 'Sync will start shortly';\n }\n\n case 1 === syncJobStatus: {\n return 'Retrieve Data';\n }\n\n case secondStage.some(s => s === syncJobStatus): {\n return 'Processing Data';\n }\n\n case thirdStage.some(s => s === syncJobStatus): {\n return 'Update OpenLM DB';\n }\n\n default: {\n return '';\n }\n }\n }\n\n public setTableTooltip(key: string, isHeader: boolean, sync: SyncTableDetails = null): string {\n switch (key) {\n case 'name':\n return isHeader ? 'Sync Name' : 'Full sync name';\n case 'enabled':\n return isHeader ? 'Sync Status' : (sync[key] ? 'Enabled' : 'OFF');\n case 'domainName':\n return isHeader ? 'The domain to be synchronized' : sync[key];\n case 'agentName':\n return isHeader ? 'The name of the Agent executing the sync' : sync[key];\n case 'objectsTypeToSync':\n return isHeader ? 'Sync Object Type' : (sync && sync.activeObjectsOnly === true ? 'Users monitored by OpenLM' : sync[key]);\n case 'startNodePath':\n return isHeader ? 'Sync start node' : sync[key];\n case 'setDefaultGroup':\n return isHeader ? 'Set Default group' : (sync[key] ? 'Set as default group' : '');\n case 'syncDefId':\n return isHeader ? 'Sync Entities' : 'Click to see sync entities';\n case 'createdUtc':\n return isHeader ? 'Sync creation date' : (sync[key] ? new Date(sync[key]).toUTCString() : '');\n case 'recentSyncUtc':\n return isHeader ? 'Date of last sync' : (sync[key] ? new Date(sync[key]).toUTCString() : '');\n }\n }\n\n private initInfoTexts() {\n // tslint:disable-next-line:max-line-length\n this.infoTexts.syncManager = `Sync Manager
Centralize access to all sync configurations

Sync name: The name of the Sync. The Sync name must be unique.

Status: Reflect the sync status
Enabled: The sync is active and configured to run based on the sync settings.
Disable: The sync was switched off and won't run.
Suspended: the Agent status in which the sync connected too was switched to suspended. The sync won't run until the Agent status will be changed to enabled, or the sync will be connected to another Agent in status enabled.

Domain: Reflect the domain the sync configured to work with.

Agent: Reflect the Agent which will execute the sync.

Sync Object: Reflect the Object will be synced and if the sync includes only Active OpenLM.

Remove: Delete the sync from the sync manager.

Entities: Show the sync entities were updated from the specific sync.

Set as default: Configure the created group as the synced users default group`;\n }\n\n public ngOnDestroy(): void {\n this.syncFacade.stopPeriodicallyCheckingSyncs();\n }\n}\n","\n\t
\n\t\t
\n\t\t\tSync Manager\n\t\t\t\n\t\t
\n\t
\n\n\t
\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\tAdd sync\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\tDelete\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\tBulk Edit\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\tSync Now\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\tStop Sync\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\tReset Link\n\t\t\t\n\t\t
\n\t\t
\n\t\t\t\n\n\t\t\t\n\t\t\t\n\t\t
\n\t
\n\n\t
\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{{column.label}}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tNo results found\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{{sync[column.value] | booleanToString: 'Enabled' : 'OFF' | highlight: searchTermToHighlight}}\n\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tEntities\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{{getSelection().length}} Sync Definitions selected\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\tNo items selected\n\t\t\t\t\t
\n\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t\n\n\n\n\t
\n\t\tFailed to load Sync Definitions\n\t
\n
\n","import {Component, Inject, OnDestroy, OnInit} from '@angular/core';\nimport {SyncTestInterface} from '../../models/sync-test.interface';\nimport {SyncFacade} from '../../sync.facade';\nimport {LoaderService} from '../../../../shared/loader/loader.service';\nimport {Subscription} from 'rxjs';\nimport {untilComponentDestroyed} from '../../../../shared/utils';\nimport {ConnectivityStatusEnum} from '../../../domain/api/models/connectivity-status.enum';\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\n\n@Component({\n selector: 'app-sync-test-dialog',\n templateUrl: './sync-test-dialog.component.html',\n styleUrls: ['./sync-test-dialog.component.scss']\n})\nexport class SyncTestDialogComponent implements OnInit, OnDestroy {\n\n constructor(private syncFacade: SyncFacade,\n private loaderService: LoaderService,\n private dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: SyncTestInterface) {\n }\n\n private pathConnectivitySubscription: Subscription;\n\n ngOnInit() {\n this.loaderService.disableLoader();\n this.syncFacade.selectStoreError$()\n .pipe(untilComponentDestroyed(this))\n .subscribe(res => {\n if (!!res) {\n this.dialogRef.close(ConnectivityStatusEnum.failure);\n }\n });\n\n this.pathConnectivitySubscription = this.syncFacade\n .checkStartPathValidity(this.data.agentId, this.data.domainId, this.data.path)\n .subscribe(() => {\n this.dialogRef.close(ConnectivityStatusEnum.success);\n });\n }\n\n onAbortButtonClick() {\n this.dialogRef.close();\n }\n\n ngOnDestroy(): void {\n if (this.pathConnectivitySubscription) {\n this.pathConnectivitySubscription.unsubscribe();\n }\n\n this.loaderService.enableLoader();\n this.syncFacade.setStoreError(null);\n }\n}\n","
\n Directory start node validation is in progress\n
\n
\n\n
\n
\n Please wait. This could take up to 2 minutes.\n\n
\n \n
\n
\n\n
\n \n
\n
\n","import {IDomain} from '../../domain/api/models/domain.interface';\nimport {IAgent} from '../../agent/api/agent.interface';\nimport {IPagination} from '../../../shared/interfaces';\n\nexport interface ISyncResponse extends IPagination {\n items: ISync[];\n}\n\nexport interface ISync {\n syncDefId: number;\n domain: IDomain;\n agent: IAgent;\n name: string;\n startNodePath: string;\n activeObjectsOnly: boolean;\n objectNameAttribute: string;\n objectMembershipFilter: string;\n recentSyncUtc: Date;\n syncType: number;\n enabled: boolean;\n objectSyncDepth: number;\n groupSyncDepth: number;\n flatFixGroupName: string;\n wrapperFixGroupName?: string;\n groupAttribute: string;\n groupAttributePattern: string;\n createGroupFromStartNode: boolean;\n objectsTypeToSync: string;\n createdUtc: Date;\n setDefaultGroup: boolean;\n duringReset: boolean;\n updateDate?: Date;\n // alertEnabled: boolean;\n hasRunningJobs?: boolean;\n syncJobStatus: number;\n hasFailedLastJob: boolean;\n cycle: ISyncCycle;\n attributesToSync: string;\n}\n\nexport class SyncTableDetails {\n syncDefId: number;\n domainName: string;\n agentName: string;\n name: string;\n startNodePath: string;\n activeObjectsOnly: boolean;\n enabled: boolean;\n objectsTypeToSync: string;\n setDefaultGroup: boolean;\n hasRunningJobs: boolean;\n syncJobStatus: number;\n createdUtc: Date;\n recentSyncUtc: Date;\n hasFailedLastJob: boolean;\n\n constructor(sync: ISync) {\n this.syncDefId = sync.syncDefId;\n this.domainName = sync.domain.domainName;\n this.agentName = sync.agent?.agentName;\n this.name = sync.name;\n this.startNodePath = sync.startNodePath;\n this.enabled = sync.enabled;\n this.objectsTypeToSync = sync.objectsTypeToSync;\n this.setDefaultGroup = sync.setDefaultGroup;\n this.hasRunningJobs = sync.hasRunningJobs;\n this.syncJobStatus = sync.syncJobStatus;\n this.activeObjectsOnly = sync.activeObjectsOnly;\n this.createdUtc = sync.createdUtc;\n this.recentSyncUtc = sync.recentSyncUtc;\n this.hasFailedLastJob = sync.hasFailedLastJob;\n }\n}\n\nexport interface ISyncForCreation {\n syncDefId: number;\n domainId: number;\n agentId: number;\n name: string;\n startNodePath: string;\n activeObjectsOnly: boolean;\n objectNameAttribute: string;\n objectMembershipFilter: number;\n syncType: number;\n enabled: boolean;\n objectSyncDepth: number;\n groupSyncDepth: number;\n flatFixGroupName: string;\n wrapperFixGroupName: string;\n groupAttribute: string;\n groupAttributePattern: string;\n createGroupFromStartNode: boolean;\n objectsTypeToSync: number;\n setDefaultGroup: boolean;\n duringReset: boolean;\n startFrom: string;\n // alertEnabled: boolean;\n cycle: ISyncCycle;\n attributesToSync: string;\n}\n\nexport interface ISyncCycle {\n type: Type;\n intervals: ISyncCycleInterval[];\n}\n\nenum Type {\n time = 1,\n interval = 2\n}\n\ninterface ISyncCycleInterval {\n startTimeHours: number;\n startTimeMinutes: number;\n intervalHours?: number;\n weekDay?: number;\n}\n\nexport interface ISyncMassUpdate {\n enabled: boolean;\n agentId: number;\n domainId: number;\n cycle: ISyncCycle;\n}\n\nexport interface ISyncAttribute{\n name: string;\n disabled:boolean;\n selected:boolean;\n}\n\nexport interface ISyncObjectAttribute{\n name: string;\n isDefault: boolean;\n}","import {EventEmitter, Injectable} from '@angular/core';\nimport {FormBuilder, FormGroup, Validators} from '@angular/forms';\nimport {duplicateValueValidator, pad} from '../../../shared/utils';\nimport {List} from 'immutable';\nimport {ISync, ISyncAttribute, ISyncCycle, ISyncForCreation} from '../models/sync.interface';\nimport {KeyValue} from '@angular/common';\n\n@Injectable({providedIn: 'root'})\nexport class SyncFormService {\n\n constructor(private formBuilder: FormBuilder) {\n }\n\n public formValuesUpdatedEmitter$: EventEmitter = new EventEmitter();\n public domainType: number;\n private attributesToSync: ISyncAttribute[] = [];\n private syncAllAttributes: boolean = false;\n\n private readonly newSyncKeys: string[] = [\n 'syncDefId',\n 'domainId',\n 'agentId',\n 'name',\n 'startNodePath',\n 'activeObjectsOnly',\n 'objectNameAttribute',\n 'syncType',\n 'enabled',\n 'objectSyncDepth',\n 'groupSyncDepth',\n 'objectMembershipFilter',\n 'flatFixGroupName',\n 'wrapperFixGroupName',\n 'groupAttribute',\n 'groupAttributePattern',\n 'createGroupFromStartNode',\n 'objectsTypeToSync',\n 'setDefaultGroup',\n 'duringReset',\n 'startFrom',\n // 'alertEnabled',\n 'cycle'\n ];\n private readonly objectMembershipFilterKeyValues: KeyValue[] = [\n {key: 0, value: 'ObjectsFromOUs'},\n {key: 1, value: 'ObjectsFromSecurityGroup'},\n {key: 2, value: 'Get all Objects'}\n ];\n\n public initAddEditSyncForm(syncs: List>, validators: ((formGroup: FormGroup) => null)[]): FormGroup {\n return this.formBuilder.group({\n syncDefId: [0],\n // Destinations and time\n enabled: [true],\n name: ['', [Validators.required, duplicateValueValidator(syncs.toArray(), 'name')]],\n agentId: [null, Validators.required],\n domainId: [null, Validators.required],\n startNodePath: [''],\n // alertEnabled: [true, Validators.required],\n\n // this group should be converted into Cycle property\n syncCycleType: ['Interval', Validators.required],\n\n syncTime: ['00:00'],\n syncDate: [''],\n syncDay: [[]],\n\n intervalStartTime: ['00:00'],\n intervalLength: [24, [Validators.min(1), Validators.max(720)]],\n\n // Object tab\n activeObjectsOnly: [''],\n objectsTypeToSync: [0, Validators.required],\n objectNameAttribute: [''],\n objectMembershipFilter: [0, Validators.required],\n objectSyncDepth: [0],\n\n // GroupRule\n groupRule: ['No group', Validators.required],\n\n /// Flat\n flatFixGroupName: [''],\n\n // Wrapper group name\n wrapperFixGroupName: [''],\n\n // convert the value into setDefaultGroup\n flatDefaultGroup: [false],\n\n /// Hierarchical\n // these 4 should go into syncTypeProperty, and the ones that aren't here\n // but mentioned in the enum should be assigned based on the other fields you choose.\n // for example: if you choose flat group then sync type should be (implicitly) flatFixGroup\n // and if you choose no group it should be (implicitly) noGroup.\n hierarchicalSyncType: [null],\n ///\n createGroupFromStartNode: [false],\n groupSyncDepth: [0],\n // convert the value into setDefaultGroup\n hierarchicalDefaultGroup: [false],\n\n /// Entity attribute\n groupAttribute: [''],\n groupAttributePattern: [''],\n // convert the value into setDefaultGroup\n userAttributeDefaultGroup: [false],\n\n\n // project rules\n projectRule: ['No project', Validators.required],\n flatFixProjectName: [''],\n projectAttribute: [''],\n projectAttributePattern: [''],\n projectHierarchicalSyncType: [null],\n createProjectFromStartNode: [false],\n flatDefaultProject: [false],\n hierarchicalDefaultProject: [false],\n userAttributeDefaultProject: [false],\n projectSyncDepth: [0]\n }, {validators});\n }\n\n public patchSyncFormGroup(sync: ISync, syncFormGroup: FormGroup): void {\n syncFormGroup.patchValue({\n syncDefId: sync.syncDefId,\n enabled: sync.enabled,\n name: sync.name,\n agentId: sync.agent?.status !== 2 || !sync.agent?.agentId ? null : sync.agent.agentId,\n domainId: sync.domain.domainId,\n startNodePath: sync.startNodePath,\n // alertEnabled: sync.alertEnabled,\n flatFixGroupName: sync.flatFixGroupName,\n wrapperFixGroupName: sync.wrapperFixGroupName ?? '',\n createGroupFromStartNode: sync.createGroupFromStartNode,\n syncCycleType: sync.cycle.type === 1 ? 'Time' : 'Interval',\n syncDay: this.patchSyncDayValue(sync),\n intervalStartTime: this.patchIntervalValues(sync, 'intervalStartTime'),\n intervalLength: this.patchIntervalValues(sync, 'intervalLength'),\n groupSyncDepth: sync.groupSyncDepth,\n groupAttribute: sync.groupAttribute,\n groupAttributePattern: sync.groupAttributePattern,\n activeObjectsOnly: sync.activeObjectsOnly,\n objectsTypeToSync: this.patchObjectTypeToSyncValue(sync),\n objectNameAttribute: this.patchObjectTypeToSyncValue(sync) === 0 ? sync.objectNameAttribute : '',\n objectMembershipFilter: this.patchMembershipFilterValue(sync),\n objectSyncDepth: sync.objectSyncDepth,\n groupRule: this.patchValueToGroupRule(sync),\n flatDefaultGroup: this.patchDefaultGroupValueBasedOnType(sync, 'Flat'),\n hierarchicalDefaultGroup: this.patchDefaultGroupValueBasedOnType(sync, 'Hierarchical'),\n hierarchicalSyncType: this.patchHierarchicalSyncType(sync),\n userAttributeDefaultGroup: this.patchDefaultGroupValueBasedOnType(sync, 'Entity attribute')\n });\n }\n\n public refreshDuplicateValueValidator(formGroup: FormGroup, syncs: ISync[], sync: ISync): void {\n formGroup.controls['name']\n .setValidators(Validators.compose([\n Validators.required,\n duplicateValueValidator(syncs, 'name', {entity: sync, idKeyName: 'syncDefId'})\n ]));\n }\n\n private patchSyncDayValue(sync: ISync): { day: number, time: string }[] {\n if (sync.cycle.type !== 1) {\n return [];\n }\n\n return [...sync.cycle.intervals.map(i => {\n return {\n day: i.weekDay,\n time: `${pad(i.startTimeHours, 2)}:${pad(i.startTimeMinutes, 2)}`\n };\n })];\n }\n\n private patchIntervalValues(sync: ISync, formControlName: string): string | number {\n if (sync.cycle.type !== 2 && formControlName === 'intervalLength') {\n return 24;\n }\n\n if (sync.cycle.type !== 2 && formControlName === 'intervalStartTime') {\n return '';\n }\n\n const startTimeHours = sync.cycle.intervals[0].startTimeHours;\n const startTimeMinutes = sync.cycle.intervals[0].startTimeMinutes;\n\n return formControlName === 'intervalStartTime'\n ? `${pad(startTimeHours, 2)}:${pad(startTimeMinutes, 2)}`\n : sync.cycle.intervals[0].intervalHours;\n }\n\n private patchHierarchicalSyncType(sync: ISync): number {\n const isHierarchicalSyncType = sync.syncType >= 8 && sync.syncType <= 56 || sync.syncType >= 128;\n\n return isHierarchicalSyncType ? sync.syncType : null;\n }\n\n private patchDefaultGroupValueBasedOnType(sync: ISync, groupRule: string): boolean {\n return this.patchValueToGroupRule(sync) === groupRule && sync.setDefaultGroup;\n }\n\n private patchValueToGroupRule(sync: ISync): string {\n switch (sync.syncType) {\n case 2:\n return 'No group';\n case 4:\n return 'Flat';\n case 64:\n return 'Entity attribute';\n default:\n return 'Hierarchical';\n }\n }\n\n private patchMembershipFilterValue(sync: ISync): number {\n switch (sync.objectMembershipFilter.toLowerCase()) {\n case 'ObjectsFromOUs'.toLowerCase():\n return 1;\n case 'ObjectsFromSecurityGroup'.toLowerCase():\n return 2;\n default:\n return 0;\n }\n }\n\n private patchObjectTypeToSyncValue(sync: ISync): number {\n return sync.objectsTypeToSync === 'Users' ? 0 : 1;\n }\n\n public createSyncsFromForm(formGroup: FormGroup): ISyncForCreation {\n const newSync = {} as ISyncForCreation;\n\n this.newSyncKeys.forEach(k => {\n if (!!formGroup.controls[k]) {\n newSync[k] = formGroup.controls[k].value;\n }\n });\n\n newSync.syncType = this.assignSyncType(formGroup);\n newSync.setDefaultGroup = this.assignSetDefaultGroup(formGroup);\n newSync.cycle = this.assignCycle(formGroup);\n newSync.startFrom = '00';\n newSync.activeObjectsOnly = formGroup.controls.objectsTypeToSync.value === 1\n ? false\n : Boolean(formGroup.controls.activeObjectsOnly.value);\n\n // tslint:disable-next-line:max-line-length\n newSync.attributesToSync = this.syncAllAttributes ? this.attributesToSync.map((item: ISyncAttribute) => item.name).join(';') : this.attributesToSync.reduce(\n (result: string[], item: ISyncAttribute) =>\n item.selected ? [...result, item.name] : result,\n []).join(';');\n\n return newSync;\n }\n\n private assignSyncType(formGroup: FormGroup): number {\n switch (formGroup.controls.groupRule.value) {\n case 'Flat':\n return 4;\n\n case 'Hierarchical':\n return +formGroup.controls.hierarchicalSyncType.value || 16;\n\n case 'Entity attribute':\n return 64;\n\n default:\n return 2;\n }\n }\n\n private assignSetDefaultGroup(formGroup: FormGroup): boolean {\n const {groupRule, flatDefaultGroup, hierarchicalDefaultGroup, userAttributeDefaultGroup} = formGroup.controls;\n\n switch (groupRule.value) {\n case 'Flat':\n return flatDefaultGroup.value;\n\n case 'Hierarchical':\n return hierarchicalDefaultGroup.value;\n\n case 'Entity attribute':\n return userAttributeDefaultGroup.value;\n\n default:\n return false;\n }\n }\n\n private assignCycle(formGroup: FormGroup): ISyncCycle {\n if (formGroup.controls.syncCycleType.value === 'Time') {\n const intervals = formGroup.controls.syncDay.value.map(d => {\n return {\n weekDay: d.day,\n startTimeHours: +d.time.substring(0, 2),\n startTimeMinutes: +d.time.substring(3, 5)\n };\n });\n\n return {\n type: 1,\n intervals\n };\n } else {\n const {intervalStartTime, intervalLength} = formGroup.controls;\n\n return {\n type: 2,\n intervals: [\n {\n startTimeHours: +intervalStartTime.value.substring(0, 2),\n startTimeMinutes: +intervalStartTime.value.substring(3, 5),\n intervalHours: intervalLength.value\n }\n ]\n };\n }\n }\n\n public updateAttributesToSync(attributes: ISyncAttribute[]): void {\n this.attributesToSync = attributes;\n }\n\n public setSyncAllAttributes(flag: boolean): void {\n this.syncAllAttributes = flag;\n }\n}\n","import {HttpClient, HttpHeaders, HttpParams} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {Injectable} from '@angular/core';\nimport {urlJoin} from '../../../shared/utils';\nimport {environment} from '../../../../environments/environment';\nimport {UIState} from '../../../core/base-ui-state/base-ui-state-interface';\nimport {ISync, ISyncForCreation, ISyncResponse} from '../models/sync.interface';\nimport {buildUiStateHttpParams} from '../../../core/base-ui-state/base-ui-utils';\n\n@Injectable()\nexport class SyncApiService {\n constructor(private http: HttpClient) {\n }\n\n private baseUrl = urlJoin(environment.baseUrl, 'admin/syncDef');\n\n getPaginated(uiState: UIState, disableLoader = false): Observable {\n const options = {\n params: buildUiStateHttpParams(uiState)\n };\n\n if (disableLoader) {\n options['headers'] = new HttpHeaders({\n 'disable-loader': 'true'\n });\n }\n\n return this.http.get(this.baseUrl, options);\n }\n\n getAll(): Observable {\n return this.http.get(`${this.baseUrl}/all`)\n }\n\n partialGetAll(): Observable> {\n return this.http.get(urlJoin(environment.baseUrl, 'admin/dropdown-values/sync-def'))\n }\n\n get(syncId: number): Observable {\n return this.http.get(`${this.baseUrl}/${syncId}`);\n }\n\n post(syncDef: ISyncForCreation): Observable {\n return this.http.post(this.baseUrl, syncDef);\n }\n\n patch(syncDef: ISyncForCreation): Observable {\n return this.http.patch(this.baseUrl, syncDef);\n }\n\n delete(syncDefId: number): Observable {\n return this.http.delete(`${this.baseUrl}/${syncDefId}`);\n }\n\n massDelete(syncIds: number[]): Observable {\n const params = new HttpParams({\n fromObject: {\n syncIds: syncIds.map(d => d.toString())\n }\n });\n\n return this.http.delete(`${this.baseUrl}`, {params});\n }\n\n exportSyncCsv(): Observable {\n const options = {\n responseType: 'text',\n observe: 'response'\n } as {};\n\n return this.http.get(`${this.baseUrl}/export`, options);\n }\n\n // Todo - create an interface for LdapCheck object type (its the one that gets returned from this query)\n ldapStartNodePathCheck(agentId: number, domainId: number, path: string): Observable {\n const apiEndpoint = '/api/admin/check/path';\n const params = new HttpParams({\n fromObject: {\n agentId: `${agentId}`,\n domainId: `${domainId}`,\n path\n }\n });\n\n return this.http.get(apiEndpoint, {params});\n }\n\n resetSync(syncId: number): Observable {\n return this.http.patch(`${this.baseUrl}/reset/${syncId}`, undefined);\n }\n\n syncNow(syncId: number): Observable {\n const apiEndpoint = `api/admin/syncNow/syncDef/${syncId}`;\n return this.http.post(apiEndpoint, undefined);\n }\n\n stopSyncs(syncId: number): Observable {\n const apiEndpoint = `${this.baseUrl}/stop/${syncId}`;\n return this.http.patch(apiEndpoint, undefined);\n }\n}\n","export * from './sync-form.query';\nexport * from './sync-form.service';\nexport * from './sync-form.store';\n","import {Injectable} from '@angular/core';\nimport {Query} from '@datorama/akita';\nimport {SyncFormStore} from './sync-form.store';\n\n@Injectable({providedIn: 'root'})\nexport class SyncFormQuery extends Query<{}> {\n\n constructor(protected store: SyncFormStore) {\n super(store);\n }\n}\n","import {Injectable} from '@angular/core';\nimport {SyncFormStore} from './sync-form.store';\n\n@Injectable({providedIn: 'root'})\nexport class SyncFormService {\n\n constructor(private syncFormStore: SyncFormStore) {\n }\n\n set(syncFormGroup: {}): void {\n this.syncFormStore.update(() => syncFormGroup);\n }\n\n resetStore(): void {\n this.syncFormStore.resetState();\n }\n}\n","import {Injectable} from '@angular/core';\nimport {resetStores, Store, StoreConfig} from '@datorama/akita';\n\nfunction createInitialState(): {} {\n return {\n syncDefId: 0,\n enabled: true,\n name: '',\n agentId: null,\n domainId: null,\n startNodePath: '',\n syncCycleType: 'Interval',\n syncTime: '00:00',\n syncDate: '',\n syncDay: [],\n intervalStartTime: '00:00',\n intervalLength: 24,\n activeObjectsOnly: false,\n objectsTypeToSync: 0,\n objectNameAttribute: 'CN',\n objectMembershipFilter: 0,\n objectSyncDepth: 0,\n groupRule: 'No group',\n flatFixGroupName: '',\n wrapperFixGroupName: '',\n flatDefaultGroup: false,\n hierarchicalSyncType: null,\n createGroupFromStartNode: false,\n groupSyncDepth: 0,\n hierarchicalDefaultGroup: false,\n groupAttribute: '',\n groupAttributePattern: '',\n userAttributeDefaultGroup: false,\n };\n}\n\n@Injectable({providedIn: 'root'})\n@StoreConfig({name: 'sync-form', resettable: true})\nexport class SyncFormStore extends Store<{}> {\n\n constructor() {\n super(createInitialState(), {resettable: true});\n }\n\n public resetState(): void {\n this.update(createInitialState());\n }\n}\n","export * from './sync-mass-update.query';\nexport * from './sync-mass-update.service';\nexport * from './sync-mass-update.store';\n","import {Injectable} from '@angular/core';\nimport {Query} from '@datorama/akita';\nimport {ISyncMassUpdate} from '../../models/sync.interface';\nimport {SyncMassUpdateStore} from './sync-mass-update.store';\n\n@Injectable({providedIn: 'root'})\nexport class SyncMassUpdateQuery extends Query {\n\n constructor(protected store: SyncMassUpdateStore) {\n super(store);\n }\n}\n","import {Injectable} from '@angular/core';\nimport {SyncMassUpdateStore} from './sync-mass-update.store';\nimport {ISyncMassUpdate} from '../../models/sync.interface';\n\n@Injectable({providedIn: 'root'})\nexport class SyncMassUpdateService {\n\n constructor(private syncMassUpdateStore: SyncMassUpdateStore) {\n }\n\n set(syncForUpdate: ISyncMassUpdate): void {\n this.syncMassUpdateStore.update(() => syncForUpdate);\n }\n}\n","import {ISyncCycle, ISyncMassUpdate} from '../../models/sync.interface';\nimport {Injectable} from '@angular/core';\nimport {Store, StoreConfig} from '@datorama/akita';\n\nexport function createInitialState(): ISyncMassUpdate {\n return {\n enabled: false,\n agentId: undefined,\n domainId: undefined,\n cycle: {} as ISyncCycle\n };\n}\n\n@Injectable({providedIn: 'root'})\n@StoreConfig({name: 'sync-mass-update'})\nexport class SyncMassUpdateStore extends Store {\n\n constructor() {\n super(createInitialState());\n }\n}\n","import {Injectable} from '@angular/core';\nimport {BaseUiQuery} from '../../../../core/base-ui-state/base-ui-query';\nimport {SyncUiState, SyncUiStore} from './sync-ui.store';\n\n@Injectable({providedIn: 'root'})\nexport class SyncUiQuery extends BaseUiQuery {\n constructor(protected store: SyncUiStore) {\n super(store);\n }\n\n public updateSelected() {\n this.store.update({ selected: [] })\n }\n}\n","import {Injectable} from '@angular/core';\nimport {BaseUiService} from '../../../../core/base-ui-state/base-ui-service';\nimport {SyncUiStore} from './sync-ui.store';\n\n@Injectable({providedIn: 'root'})\nexport class SyncUiService extends BaseUiService {\n constructor(syncUiStore: SyncUiStore) {\n super(syncUiStore);\n }\n}\n","import {BASE_UI_STATE, BaseUiStateInterface} from '../../../../core/base-ui-state/base-ui-state-interface';\nimport {Injectable} from '@angular/core';\nimport {Store, StoreConfig} from '@datorama/akita';\n\n// tslint:disable-next-line:no-empty-interface\nexport interface SyncUiState extends BaseUiStateInterface {}\n\nexport function createInitialState(): SyncUiState {\n return JSON.parse(JSON.stringify(BASE_UI_STATE));\n}\n\n@Injectable({providedIn: 'root'})\n@StoreConfig({\n name: 'sync-ui'\n})\nexport class SyncUiStore extends Store {\n\n constructor() {\n super(createInitialState());\n }\n\n}\n","export * from './sync.query';\nexport * from './sync.store';\nexport * from './sync.service';\n","import {Injectable} from '@angular/core';\nimport {QueryEntity} from '@datorama/akita';\nimport {SyncState, SyncStore} from './sync.store';\nimport {FormGroup} from '@angular/forms';\nimport {SyncFormService} from '../../service/sync-form.service';\n\n@Injectable({providedIn: 'root'})\nexport class SyncQuery extends QueryEntity {\n\n constructor(\n protected store: SyncStore,\n private syncFormService: SyncFormService\n ) {\n super(store);\n }\n\n public intervalTimeControlValidator(): (formGroup: FormGroup) => null {\n return (formGroup: FormGroup) => {\n const {syncCycleType, intervalStartTime} = formGroup.controls;\n let error = {};\n\n if (syncCycleType.value === 'Interval') {\n\n if (!intervalStartTime.value) {\n error['required'] = true;\n }\n\n if (!!intervalStartTime.value && intervalStartTime.value.length < 5) {\n intervalStartTime.markAsUntouched();\n error['format'] = true;\n }\n }\n\n if (Object.keys(error).length === 0) {\n error = null;\n }\n\n intervalStartTime.setErrors(error);\n\n return null;\n };\n }\n\n public objectNameAttributeControlValidator(): (formGroup: FormGroup) => null {\n return (formGroup: FormGroup) => {\n const {objectsTypeToSync, objectNameAttribute} = formGroup.controls;\n const error = objectsTypeToSync.value === 1 || !!objectNameAttribute.value\n ? null\n : {required: true};\n\n objectNameAttribute.setErrors(error);\n\n return null;\n };\n }\n\n public flatGroupNameControlValidator(): (formGroup: FormGroup) => null {\n return (formGroup: FormGroup) => {\n const {groupRule, flatFixGroupName} = formGroup.controls;\n const error = groupRule.value.toLowerCase() === 'flat' && !flatFixGroupName.value\n ? {required: true}\n : null;\n\n flatFixGroupName.setErrors(error);\n\n return null;\n };\n }\n\n public groupAttributeControlValidator(): (formGroup: FormGroup) => null {\n return (formGroup: FormGroup) => {\n const {groupRule, groupAttribute} = formGroup.controls;\n const error = groupRule.value.toLowerCase() === 'entity attribute' && !groupAttribute.value\n ? {required: true}\n : null;\n\n groupAttribute.setErrors(error);\n\n return null;\n };\n }\n\n public objectSyncDepthControlValidator(): (formGroup: FormGroup) => null {\n return (formGroup: FormGroup) => {\n const {objectSyncDepth} = formGroup.controls;\n const error = objectSyncDepth.value < 0 || objectSyncDepth.value === null\n ? {required: true}\n : null;\n\n objectSyncDepth.setErrors(error);\n\n return null;\n };\n }\n\n public groupSyncDepthControlValidator(): (formGroup: FormGroup) => null {\n return (formGroup: FormGroup) => {\n const {groupRule, groupSyncDepth} = formGroup.controls;\n const error = groupRule.value.toLowerCase() === 'hierarchical' && (groupSyncDepth.value < 0 || groupSyncDepth.value === null)\n ? {required: true}\n : null;\n\n groupSyncDepth.setErrors(error);\n\n return null;\n };\n }\n\n public groupRulesCheckboxValidator(): (formGroup: FormGroup) => null {\n return (formGroup: FormGroup) => {\n const {groupRule, hierarchicalSyncType} = formGroup.controls;\n const error = groupRule.value.toLowerCase() === 'hierarchical' && !hierarchicalSyncType.value\n ? {required: true}\n : null;\n\n groupRule.setErrors(error);\n\n return null;\n };\n }\n\n public flatGroupNotSameAsWrapperGroupValidator(): (formGroup: FormGroup) => null {\n return (formGroup: FormGroup) => {\n const {groupRule, flatFixGroupName, wrapperFixGroupName} = formGroup.controls;\n\n const error = groupRule.value.toLowerCase() === 'flat' &&\n flatFixGroupName.value.toLowerCase() === wrapperFixGroupName.value.toLowerCase() &&\n flatFixGroupName.value.toLowerCase() !== ''\n ? {sameAsFlatGroup: true}\n : null;\n\n wrapperFixGroupName.setErrors(error);\n\n return null;\n };\n }\n\n public isScheduledTimeControlValid(): (formGroup: FormGroup) => null {\n return (formGroup: FormGroup) => {\n const {syncCycleType, syncDay} = formGroup.controls;\n const error = syncCycleType.value === 'Time' && !syncDay.value.length\n ? {required: true}\n : null;\n\n syncDay.setErrors(error);\n\n return null;\n };\n }\n\n public getGroupSyncDepthValidator(): (formGroup: FormGroup) => null {\n return formGroup => {\n const {objectSyncDepth, groupSyncDepth} = formGroup.controls;\n const error = this.syncFormService.domainType > 2 && groupSyncDepth.value > objectSyncDepth.value\n ? {valueIsTooLarge: true}\n : null;\n\n groupSyncDepth.setErrors(error);\n\n return null;\n };\n }\n\n public getObjectSyncDepthValidator(): (formGroup: FormGroup) => null {\n return formGroup => {\n const {objectSyncDepth, startNodePath} = formGroup.controls;\n\n if (this.syncFormService.domainType <= 2) {\n const error = !startNodePath.value\n ? {shouldBeEmpty: true}\n : null;\n objectSyncDepth.setErrors(error);\n }\n\n if (this.syncFormService.domainType === 3 && startNodePath.value === '') {\n const patternCheck = !startNodePath.value.startsWith('groups/') || !startNodePath.value.startsWith('adminunits/');\n const error = patternCheck && objectSyncDepth.value > 0\n ? {shouldBeEmpty: true}\n : null;\n objectSyncDepth.setErrors(error);\n }\n\n if (this.syncFormService.domainType === 4 && startNodePath.value === '') {\n const patternCheck = !startNodePath.value.startsWith('group=') || !startNodePath.value.startsWith('ou=');\n const error = patternCheck && objectSyncDepth.value > 0\n ? {shouldBeEmpty: true}\n : null;\n objectSyncDepth.setErrors(error);\n }\n\n if (this.syncFormService.domainType === 5) {\n const error = objectSyncDepth.value < 0 || objectSyncDepth.value > 1\n ? {oktaInvalidValue: true}\n : null;\n objectSyncDepth.setErrors(error);\n }\n\n return null;\n };\n }\n\n public getStartNodePathValidator(): (formGroup: FormGroup) => null {\n return formGroup => {\n const {startNodePath} = formGroup.controls;\n const error = this.syncFormService.domainType === undefined || (this.syncFormService.domainType < 3 && !startNodePath.value)\n ? {required: true}\n : null;\n\n startNodePath.setErrors(error);\n\n return null;\n }\n }\n\n public projectAttributeControlValidator(): (formGroup: FormGroup) => null {\n return (formGroup: FormGroup) => {\n const {groupRule, groupAttribute} = formGroup.controls;\n const error = groupRule.value.toLowerCase() === 'entity attribute' && !groupAttribute.value\n ? {required: true}\n : null;\n\n groupAttribute.setErrors(error);\n\n return null;\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { SyncStore } from './sync.store';\nimport {ISync} from '../../models/sync.interface';\nimport {UIError} from '../../../../shared/interfaces';\nimport { AddEntitiesOptions, isArray, OrArray, transaction } from '@datorama/akita';\n\n@Injectable({ providedIn: 'root' })\nexport class SyncService {\n\n constructor(private syncStore: SyncStore) {\n }\n\n set(syncs: ISync[]): void {\n this.syncStore.set(syncs);\n }\n\n update(sync: Partial): void {\n this.syncStore.update(sync.syncDefId, sync);\n }\n\n @transaction()\n upsert(sync: ISync | ISync[]): void {\n isArray(sync) ? this.syncStore.upsertMany(sync) : this.syncStore.upsert(sync.syncDefId, sync);\n }\n\n patch(syncs: Partial, syncDefId: number): void {\n this.syncStore.update(syncDefId, syncs);\n }\n\n delete(syncDefIds: OrArray): void {\n this.syncStore.remove(syncDefIds);\n }\n\n add(sync: OrArray, options?: AddEntitiesOptions): void {\n this.syncStore.add(sync, options);\n }\n\n setError(error: UIError): void {\n this.syncStore.setError(error);\n }\n\n @transaction()\n updateSyncJobStatus(syncs: ISync[]) {\n syncs.forEach(sync => this.syncStore.update(sync.syncDefId, {\n syncJobStatus: sync.syncJobStatus,\n recentSyncUtc: sync.recentSyncUtc,\n hasFailedLastJob: sync.hasFailedLastJob\n }));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { EntityState, EntityStore, StoreConfig } from '@datorama/akita';\nimport {ISync} from '../../models/sync.interface';\n\nexport interface SyncState extends EntityState {}\n\n@Injectable({ providedIn: 'root' })\n@StoreConfig({ name: 'sync', idKey: 'syncDefId' })\nexport class SyncStore extends EntityStore {\n\n constructor() {\n super();\n }\n\n}\n\n","import {Injectable} from '@angular/core';\nimport {DirtyCheckPlugin} from '@datorama/akita';\nimport {SyncQuery, SyncService} from './state/sync';\nimport {ISync, ISyncForCreation, ISyncMassUpdate} from './models/sync.interface';\nimport {SyncApiService} from './service/sync.api.service';\nimport {Observable, throwError} from 'rxjs';\nimport {catchError, filter} from 'rxjs/operators';\nimport {SnackbarService} from '../../shared/snackbar/snackbar-service/snackbar.service';\nimport {clearObjectFromEmptyValues, parseError} from '../../shared/utils';\nimport {UIError} from '../../shared/interfaces';\nimport {SyncMassUpdateQuery, SyncMassUpdateService} from './state/sync-mass-update';\nimport {UIState} from '../../core/base-ui-state/base-ui-state-interface';\nimport {SyncUiQuery} from './state/sync-ui/sync-ui.query';\nimport {SyncUiService} from './state/sync-ui/sync-ui.service';\nimport {SyncFormQuery, SyncFormService} from './state/sync-form';\nimport {FormGroup} from '@angular/forms';\nimport {LoaderService} from '../../shared/loader/loader.service';\n\n@Injectable()\nexport class SyncFacade {\n\n constructor(\n private loaderService: LoaderService,\n private syncQuery: SyncQuery,\n private syncService: SyncService,\n private syncApiService: SyncApiService,\n private syncMassUpdateQuery: SyncMassUpdateQuery,\n private syncMassUpdateService: SyncMassUpdateService,\n private syncUiQuery: SyncUiQuery,\n private syncUiService: SyncUiService,\n private snackbarService: SnackbarService,\n private syncFormQuery: SyncFormQuery,\n private syncFormService: SyncFormService\n ) {\n }\n\n public syncDirtyCheckPlugin = new DirtyCheckPlugin(this.syncMassUpdateQuery).setHead();\n public syncMassDirtyCheckPlugin = new DirtyCheckPlugin(this.syncMassUpdateQuery).setHead();\n public syncFormDirtyCheckPlugin = new DirtyCheckPlugin(this.syncFormQuery).setHead();\n\n private syncJobStatusCheckInterval: ReturnType;\n private isCheckingSyncStatus = false;\n\n public async loadPaginatedSyncs(uiState: UIState = null): Promise {\n try {\n uiState = this.buildUiStateParams(uiState);\n const result = await this.syncApiService.getPaginated(uiState).toPromise();\n\n this.syncService.setError(null);\n this.syncUiService.setPaginationFromResponse(result);\n this.syncService.set(result.items);\n\n return result.items;\n } catch (err) {\n console.log(err);\n\n this.syncService.setError({\n action: 'GET',\n type: null,\n details: {\n failedToLoadSyncs: true\n }\n });\n\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Failed to load sync definitions, ${parseError(err)}`\n })\n }\n }\n\n public async loadSyncsAndUpdateSyncJobStatus(): Promise {\n this.isCheckingSyncStatus = true;\n try {\n const syncResponse = await this.syncApiService.getPaginated(this.buildUiStateParams(), true).toPromise();\n\n this.syncService.updateSyncJobStatus(syncResponse.items);\n this.syncDirtyCheckPlugin.setHead();\n } catch (e) {\n console.log(e);\n }\n this.isCheckingSyncStatus = false;\n }\n\n public async getAllSyncs(): Promise {\n let syncs = [];\n try {\n syncs = await this.syncApiService.getAll().toPromise();\n } catch (err) {\n console.log(err);\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Failed to load sync definitions, ${parseError(err)}`\n });\n }\n return syncs;\n }\n\n public async partialGetAllSyncs(): Promise> {\n let syncs = [];\n try {\n syncs = await this.syncApiService.partialGetAll().toPromise();\n } catch (err) {\n console.log(err);\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Failed to load sync definitions, ${parseError(err)}`\n });\n }\n return syncs;\n }\n\n public async loadSyncDefById(syncId: number): Promise {\n try {\n this.syncService.setError(null);\n\n const result = await this.syncApiService.get(syncId).toPromise();\n this.syncService.upsert(result);\n this.syncDirtyCheckPlugin.setHead();\n\n return result;\n } catch (err) {\n console.log(err);\n if (err.status === 404) {\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Sync Definition with id ${syncId} not found`\n });\n\n this.syncService.setError({\n action: 'GET',\n type: 404,\n details: {\n syncId\n }\n });\n } else {\n this.snackbarService.triggerSnackbar({\n isError: true, message: `Failed to load sync with id ${syncId}, ${parseError(err)}`\n })\n }\n }\n }\n\n public selectPaginatedSyncs$(): Observable {\n return this.syncQuery.selectAll();\n }\n\n public selectSyncById(syncId: number): Observable {\n return this.syncQuery.selectEntity(syncId).pipe(filter(s => !!s));\n }\n\n public async addSync(sync: ISyncForCreation): Promise {\n try {\n await this.syncApiService.post(sync).toPromise();\n\n this.snackbarService.triggerSnackbar({message: 'Saved successfully'});\n } catch (e) {\n console.log(e);\n this.setStoreError({\n action: 'POST',\n type: e.status\n });\n\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Failed to save changes, ${parseError(e)}`\n });\n }\n }\n\n public async updateSync(sync: ISyncForCreation, syncDefId?: number): Promise {\n try {\n if (!!syncDefId) {\n sync.syncDefId = syncDefId;\n }\n\n await this.syncApiService.patch(sync).toPromise();\n\n this.snackbarService.triggerSnackbar({message: 'Saved successfully'});\n } catch (e) {\n console.log(e);\n this.setStoreError({\n action: 'PATCH',\n type: e.status\n });\n\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Failed to save changes, ${parseError(e)}`\n });\n }\n }\n\n public async massUpdateSyncs(syncDefIds: number[]): Promise {\n const syncMassUpdateValue = clearObjectFromEmptyValues(this.syncMassUpdateQuery.getValue());\n\n if (!syncMassUpdateValue.cycle.intervals?.length) {\n delete syncMassUpdateValue.cycle;\n }\n\n for (let i = 0; i < syncDefIds.length; i++) {\n try {\n await this.syncApiService.patch({\n ...syncMassUpdateValue,\n syncDefId: syncDefIds[i]\n }).toPromise();\n\n if (i + 1 === syncDefIds.length) {\n this.snackbarService.triggerSnackbar({\n message: 'Sync Definitions saved successfully'\n });\n }\n } catch (e) {\n console.log(e);\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Failed to update Sync Definition with id ${i}, ${parseError(e)}`\n });\n }\n }\n\n this.syncMassDirtyCheckPlugin.reset();\n this.loadPaginatedSyncs();\n }\n\n public async deleteSyncDef(syncDefId: number): Promise {\n try {\n await this.syncApiService.delete(syncDefId).toPromise();\n this.syncService.delete(syncDefId);\n this.loadPaginatedSyncs();\n\n this.snackbarService.triggerSnackbar({message: 'Sync Definition was deleted successfully'});\n } catch (e) {\n console.log(e);\n this.snackbarService.triggerSnackbar(\n {isError: true, message: `Failed to delete the Sync Definition, ${parseError(e)}`});\n }\n }\n\n public async massDeleteSyncDefs(syncDefIds: number[]): Promise {\n try {\n await this.syncApiService.massDelete(syncDefIds).toPromise();\n this.syncService.delete(syncDefIds);\n this.loadPaginatedSyncs();\n\n this.snackbarService.triggerSnackbar({message: 'Sync Definitions were deleted successfully'});\n } catch (e) {\n console.log(e);\n this.snackbarService.triggerSnackbar(\n {isError: true, message: `Failed to delete the Sync Definitions, ${parseError(e)}`}\n );\n }\n }\n\n public checkStartPathValidity(agentId: number, domainId: number, path: string): Observable {\n return this.syncApiService.ldapStartNodePathCheck(agentId, domainId, path)\n .pipe(catchError(e => {\n this.setStoreError({\n action: 'GET',\n type: e.status\n });\n\n return throwError(e);\n }));\n }\n\n public async downloadSyncCsv() {\n try {\n const csv = await this.syncApiService.exportSyncCsv().toPromise();\n this.snackbarService.triggerSnackbar({\n message: 'Sync Definitions CSV download started.'\n });\n\n return csv;\n } catch (e) {\n console.log(e);\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Unable to download Sync Definitions CSV file. ${parseError(e)}`\n });\n }\n }\n\n public setStoreError(error: UIError): void {\n this.syncService.setError(error);\n }\n\n public selectStoreError$(): Observable {\n return this.syncQuery.selectError();\n }\n\n public selectSyncForm$(): Observable<{}> {\n return this.syncFormQuery.select();\n }\n\n public setSyncMassUpdateStore(sync: ISyncMassUpdate): void {\n this.syncMassUpdateService.set(sync);\n }\n\n public setSyncFormStore(syncFormValues: ISyncForCreation): void {\n this.syncFormService.set(syncFormValues);\n }\n\n public async resetSyncs(syncIds: number[]): Promise {\n this.loaderService.show();\n this.loaderService.disableLoader();\n for (let i = 0; i < syncIds.length; i++) {\n try {\n await this.syncApiService.resetSync(syncIds[i]).toPromise();\n\n if (i + 1 === syncIds.length) {\n this.snackbarService.triggerSnackbar({\n message: 'Entity relationships have been reset successfully.',\n timeoutTime: 5000\n });\n }\n } catch (e) {\n console.log(e);\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Unable to reset the specified relationships, ${parseError(e)}`,\n timeoutTime: 5000\n });\n } finally {\n this.loaderService.enableLoader();\n this.loaderService.hide();\n this.loadPaginatedSyncs();\n }\n }\n }\n\n public async stopSyncs(syncIds: number[]): Promise {\n this.loaderService.show();\n this.loaderService.disableLoader();\n for (let i = 0; i < syncIds.length; i++) {\n try {\n await this.syncApiService.stopSyncs(syncIds[i]).toPromise();\n\n if (i + 1 === syncIds.length) {\n this.snackbarService.triggerSnackbar({\n message: `${syncIds.length > 1 ? 'Syncs' : 'Sync'} stopped successfully.`,\n timeoutTime: 5000\n });\n }\n } catch (e) {\n console.log(e);\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Unable to stop the specified relationships, ${parseError(e)}`,\n timeoutTime: 5000\n });\n } finally {\n this.loaderService.enableLoader();\n this.loaderService.hide();\n this.loadPaginatedSyncs();\n }\n }\n }\n\n public async syncNow(syncIds: number[]): Promise {\n this.loaderService.show();\n this.loaderService.disableLoader();\n for (let i = 0; i < syncIds.length; i++) {\n try {\n await this.syncApiService.syncNow(syncIds[i]).toPromise();\n\n if (i + 1 === syncIds.length) {\n this.snackbarService.triggerSnackbar({\n message: 'The requested Syncs were started successfully',\n timeoutTime: 5000\n });\n }\n } catch (e) {\n console.log(e);\n this.snackbarService.triggerSnackbar({\n isError: true,\n message: `Unable to start the specified syncs, ${parseError(e)}`,\n timeoutTime: 5000\n });\n } finally {\n this.loaderService.enableLoader();\n this.loaderService.hide();\n this.loadPaginatedSyncs();\n }\n }\n }\n\n public startPeriodicallyCheckingSyncs(): void {\n if (!this.syncJobStatusCheckInterval) {\n this.syncJobStatusCheckInterval = setInterval(() => {\n if (!this.isCheckingSyncStatus) {\n this.loadSyncsAndUpdateSyncJobStatus();\n }\n }, 5000)\n }\n }\n\n public stopPeriodicallyCheckingSyncs(): void {\n if (this.syncJobStatusCheckInterval) {\n window.clearInterval(this.syncJobStatusCheckInterval);\n this.syncJobStatusCheckInterval = null;\n }\n }\n\n public resetSyncFormStore(): void {\n this.syncFormService.resetStore();\n }\n\n public getSyncFormGroupValidators(): ((formGroup: FormGroup) => null)[] {\n return [\n this.syncQuery.intervalTimeControlValidator(),\n this.syncQuery.objectNameAttributeControlValidator(),\n this.syncQuery.flatGroupNameControlValidator(),\n this.syncQuery.groupAttributeControlValidator(),\n this.syncQuery.objectSyncDepthControlValidator(),\n this.syncQuery.groupSyncDepthControlValidator(),\n this.syncQuery.isScheduledTimeControlValid(),\n this.syncQuery.getGroupSyncDepthValidator(),\n this.syncQuery.getObjectSyncDepthValidator(),\n this.syncQuery.getStartNodePathValidator(),\n this.syncQuery.groupRulesCheckboxValidator(),\n this.syncQuery.flatGroupNotSameAsWrapperGroupValidator()\n ];\n }\n\n private buildUiStateParams(uiState: UIState = null): UIState {\n uiState = uiState || {\n pagination: this.syncUiQuery.pagination,\n sort: this.syncUiQuery.sortState,\n searchTerm: this.syncUiQuery.searchTerm\n };\n\n uiState['excludedColumns'] = this.syncUiQuery.tableColumns.filter(col => !col.visible).map(col => col.value);\n\n return uiState;\n }\n}\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from '../../shared/shared.module';\nimport { OpenlmModule } from 'openlm';\nimport { SyncFacade } from './sync.facade';\nimport { SyncPageComponent } from './containers/sync-page/sync-page.component';\nimport {MatButtonToggleModule} from '@angular/material/button-toggle';\nimport { SyncMassUpdateComponent } from './containers/sync-mass-update/sync-mass-update.component';\nimport {SyncApiService} from './service/sync.api.service';\nimport {AddSyncPageComponent} from './containers/add-sync-page/add-sync-page.component';\nimport {RouterModule} from '@angular/router';\nimport { SyncTestDialogComponent } from './containers/sync-test-dialog/sync-test-dialog.component';\nimport { DestinationTimeTabComponent } from './containers/add-sync-page/destination-time-tab/destination-time-tab.component';\nimport { ObjectTabComponent } from './containers/add-sync-page/object-tab/object-tab.component';\nimport { GroupRulesTabComponent } from './containers/add-sync-page/group-rules-tab/group-rules-tab.component';\nimport { SyncDeleteDialogComponent } from './containers/sync-delete-dialog/sync-delete-dialog.component';\nimport { ResetSyncConfirmationDialogComponent } from './containers/sync-page/reset-sync-confirmation-dialog/reset-sync-confirmation-dialog.component';\nimport { ProjectRulesTabComponent } from './containers/add-sync-page/project-rules-tab/project-rules-tab.component';\n\n@NgModule({\n declarations: [\n SyncPageComponent,\n SyncMassUpdateComponent,\n AddSyncPageComponent,\n SyncTestDialogComponent,\n DestinationTimeTabComponent,\n ObjectTabComponent,\n GroupRulesTabComponent,\n ProjectRulesTabComponent,\n SyncDeleteDialogComponent,\n ResetSyncConfirmationDialogComponent\n ],\n imports: [\n CommonModule,\n SharedModule,\n OpenlmModule,\n MatButtonToggleModule,\n RouterModule\n ],\n exports: [\n SyncPageComponent\n ],\n providers: [\n SyncApiService,\n SyncFacade,\n ],\n entryComponents: [\n SyncMassUpdateComponent,\n SyncTestDialogComponent,\n SyncDeleteDialogComponent,\n ResetSyncConfirmationDialogComponent\n ]\n})\nexport class SyncModule {}\n","import { Injectable } from '@angular/core';\nimport { LayoutQuery, LayoutService } from './state/layout';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LayoutFacadeService {\n\n constructor(\n private layoutService: LayoutService,\n private layoutQuery: LayoutQuery\n ) { }\n\n public selectSidenavOpenedStatus$(): Observable {\n return this.layoutQuery.select(state => state.sidenavOpenStatus);\n }\n\n public getSidenavOpenedStatus() {\n return this.layoutQuery.getValue().sidenavOpenStatus;\n }\n\n public updateSidenavOpenedStatus(status: boolean) {\n this.layoutService.updateSidenavOpenedStatus(status);\n }\n}\n","export * from './layout.query';\nexport * from './layout.store';\nexport * from './layout.service';\n","import { Injectable } from '@angular/core';\nimport { Query } from '@datorama/akita';\nimport { LayoutStore, LayoutState } from './layout.store';\n\n@Injectable({ providedIn: 'root' })\nexport class LayoutQuery extends Query {\n constructor(protected store: LayoutStore) {\n super(store);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LayoutStore } from './layout.store';\n@Injectable({ providedIn: 'root' })\nexport class LayoutService {\n\n constructor(\n private layoutStore: LayoutStore\n ) { }\n\n public updateSidenavOpenedStatus(status: boolean) {\n this.layoutStore.update({sidenavOpenStatus: status});\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Store, StoreConfig } from '@datorama/akita';\n\nexport interface LayoutState {\n sidenavOpenStatus: boolean;\n}\n\nexport function createInitialState(): LayoutState {\n const cachedState = JSON.parse(window.localStorage.getItem('layout-state'));\n if (!cachedState) {\n return {\n sidenavOpenStatus: true,\n }\n }\n}\n\n@Injectable({ providedIn: 'root' })\n@StoreConfig({ name: 'layout' })\nexport class LayoutStore extends Store {\n constructor() {\n super(createInitialState());\n }\n\n}\n\n","import {Component, OnInit} from '@angular/core';\n\n@Component({\n selector: 'app-no-permission',\n templateUrl: './no-permission.component.html',\n styleUrls: ['./no-permission.component.scss']\n})\nexport class NoPermissionComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n openCLoudPortal(): void {\n if (window.location.hostname.includes('qa-awslinux-dss.openlm.com')) {\n window.location.href = 'https://qa-awslinux-cloud.openlm.com/portal/products';\n } else if (window.location.hostname.includes('eu-dss.openlm.com')) {\n window.location.href = 'https://eu-cloud.openlm.com/portal/products';\n } else if (window.location.hostname.includes('dss.openlm.com')) {\n window.location.href = 'https://cloud.openlm.com/portal/products';\n } else {\n window.location.href = 'https://dev56.openlm.com:8080/portal/products';\n }\n }\n}\n","\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n

\n Missing Permission\n

\n

\n You are not allowed to access Directory Synchronization Service.\n

\n

\n Check in Cloud portal if the product is activated and you have assigned\n role\n

\n \n \n Cloud Portal\n \n
\n
\n\n","import {Component, forwardRef, Input} from '@angular/core';\nimport {ErrorText} from '../../interfaces';\nimport {AbstractControl, ControlValueAccessor, FormGroup, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\n\n@Component({\n selector: 'app-olm-textarea',\n templateUrl: './olm-textarea.component.html',\n styleUrls: ['./olm-textarea.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => OlmTextareaComponent),\n multi: true\n }\n ]\n})\nexport class OlmTextareaComponent implements ControlValueAccessor {\n\n @Input() public errorText: ErrorText;\n @Input() public label: string;\n @Input() public formControlName: string;\n @Input() public formGroup: FormGroup;\n @Input() public successValidation: boolean = false;\n @Input() public placeholder: string = '';\n @Input() public ngControl: AbstractControl;\n @Input() public invalid: boolean = false;\n @Input() public size: 'regular' | 'small' = 'regular';\n\n @Input()\n get instantValidationStyles(): boolean {\n return this._instantValidationStyles;\n }\n set instantValidationStyles(value) {\n this._instantValidationStyles = coerceBooleanProperty(value);\n }\n private _instantValidationStyles = false;\n\n registerOnChange(fn: any): void {\n }\n\n registerOnTouched(fn: any): void {\n }\n\n writeValue(obj: any): void {\n }\n}\n","\n \n \n \n \n \n {{ errorText[error.key] }}\n \n \n \n\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-confirm-dialog',\n templateUrl: './confirm-dialog.component.html',\n styleUrls: ['./confirm-dialog.component.scss']\n})\nexport class ConfirmDialogComponent implements OnInit {\n\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: DialogData\n ) { }\n\n ngOnInit() {\n }\n\n cancel() {\n this.dialogRef.close(false);\n }\n\n approve() {\n this.dialogRef.close(true);\n }\n\n}\n\nexport interface DialogData {\n alertType?: 'alert' | 'warning' | 'success' | 'warn';\n header: string;\n body: string;\n confirmButton?: boolean;\n confirmButtonName?: string;\n confirmButtonType?: string;\n discardButton?: boolean;\n discardButtonName?: string;\n discardButtonType?: string;\n}\n","\n
\n
\n {{data.header || 'Confirm'}}\n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n\n
\n \n {{data.discardButtonName || 'cancel'}}\n \n \n {{data.confirmButtonName || 'ok'}}\n \n
\n
\n\n\n","export const onPremDssDownMessage = `DSS is not running. Please restart the service by following these steps:

\n
    \n
  1. In the Start menu find \"Services\"
  2. \n
  3. Use search to find OpenLM Directory Synchronization Service
  4. \n
  5. Right-click on it and click \"Start\"
  6. \n
`;\n\nexport const onCloudDssDownMessage = `There was an error. Please contact support.`;\n","export interface IAgentStatusList {\n id: number;\n name: string;\n}\nexport const STATUS_SELECT_SOURCE: IAgentStatusList[] = [\n {\n id: 0, name: 'New'\n },\n {\n id: 1, name: 'Pending'\n },\n {\n id: 2, name: 'Enabled'\n },\n {\n id: 3, name: 'Suspended'\n }\n];\n\nexport const LOGGING_LEVELS: string[] = ['Off', 'Trace', 'Debug', 'Info', 'Warn', 'Error', 'Fatal'];\n\nexport interface IAlertsList {\n name: string;\n value: boolean;\n}\nexport const ALERTS: IAlertsList[] = [\n {\n name: 'On', value: true\n },\n {\n name: 'Off', value: false\n }\n];\n\nexport interface IAllowList {\n name: string;\n value: boolean;\n}\nexport const ALLOW_PARALLEL: IAllowList[] = [\n {\n name: 'Parallel', value: true\n },\n {\n name: 'Serial', value: false\n }\n];\n\nexport interface IEnabledList {\n name: string;\n value: boolean;\n}\nexport const ENABLED: IEnabledList[] = [\n {\n name: 'OFF', value: false\n },\n {\n name: 'Enabled', value: true\n }\n];\n","import { pad } from '../utils';\nimport * as moment from 'moment-timezone';\n\n/**\n * @remarks\n * Gets and time hour string formatted as \"hh:mm\" and convert its to UTC\n *\n * @param time string formatted as \"hh:mm\"\n */\n\nexport function timeToUtc(time: string, timezone: string = null): string {\n if (!time) {\n return '';\n }\n const hours = time.split(':')[0];\n const minutes = time.split(':')[1];\n if (!hours || !minutes) {\n return time;\n }\n\n if (timezone) {\n const now = moment.tz(timezone);\n now.set('hour', Number(hours));\n now.set('minute', Number(minutes));\n return `${pad(now.utc().get('hour'), 2)}:${pad(now.utc().get('minute'), 2)}`;\n }\n const now = new Date();\n now.setHours(Number(hours));\n now.setMinutes(Number(minutes));\n return `${pad(now.getUTCHours(), 2)}:${pad(now.getUTCMinutes(), 2)}`;\n}\n\n/**\n * @remarks\n * Gets and time hour string formatted as \"hh:mm\" and convert its to Local Timezone\n *\n * @param time string formatted as \"hh:mm\"\n */\n\nexport function timeToGmt(time: string, timezone: string = null): string {\n if (!time) {\n return '';\n }\n const hours = time.split(':')[0];\n const minutes = time.split(':')[1];\n if (!hours || !minutes) {\n return time;\n }\n\n if (timezone) {\n let now = moment.utc();\n now.set('hour', Number(hours));\n now.set('minute', Number(minutes));\n now = now.tz(timezone);\n return `${pad(now.get('hour'), 2)}:${pad(now.get('minute'), 2)}`;\n }\n\n const now = new Date();\n const utcToGmt = new Date(Date.UTC(now.getFullYear(), now.getMonth(), now.getDay(), Number(hours), Number(minutes)));\n return `${pad(utcToGmt.getHours(), 2)}:${pad(utcToGmt.getMinutes(), 2)}`;\n}\n\n\n// Sunday - Saturday : 0 - 6\nexport function setWeekDay(date: Date, weekDay: number): Date {\n const currentDay = date.getDay();\n const distance = (weekDay + 7 - currentDay) % 7;\n const resultDate = new Date().setDate(date.getDate() + distance);\n return new Date(resultDate);\n}\n\n\nexport function dayTimeToUTC(day: number, time: string, timezone: string = null): any {\n if (timezone) {\n let now = moment.tz(timezone);\n now.set('day', day)\n now.set('hour', Number(time.split(':')[0]));\n now.set('minute', Number(time.split(':')[1]));\n now = now.utc();\n return {\n day: now.get('day'),\n hours: now.get('hour'),\n minutes: now.get('minute')\n }\n }\n\n let date = new Date();\n date = setWeekDay(date, day);\n date.setHours(Number(time.split(':')[0]))\n date.setMinutes(Number(time.split(':')[1]));\n return {\n day: date.getUTCDay(),\n hours: date.getUTCHours(),\n minutes: date.getUTCMinutes()\n }\n}\n\nexport function dayTimeToGMT(day: number, time: string, timezone: string = null): any {\n\n if (timezone) {\n let now = moment.utc();\n now.set('day', day)\n now.set('hour', Number(time.split(':')[0]));\n now.set('minute', Number(time.split(':')[1]));\n now = now.tz(timezone);\n return {\n day: now.get('day'),\n hours: now.get('hour'),\n minutes: now.get('minute')\n }\n }\n\n const now = new Date();\n const hours = time.split(':')[0];\n const minutes = time.split(':')[1];\n const weekDay = setWeekDay(now, day);\n const gmt = new Date(Date.UTC(weekDay.getFullYear(), weekDay.getMonth(), weekDay.getDate(), Number(hours), Number(minutes)));\n return {\n day: gmt.getDay(),\n hours: gmt.getHours(),\n minutes: gmt.getMinutes()\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport {timeToGmt, timeToUtc} from './date-utils';\n\n@Pipe({\n name: 'timeConvert'\n})\nexport class TimeConvertPipe implements PipeTransform {\n\n transform(value: string, ...args: string[]): unknown {\n if (!value || !args[0]) {\n return '';\n }\n if (args[0] === 'UTC') {\n return timeToUtc(value, window.localStorage.getItem('user-timezone'));\n }\n if (args[0] === 'GMT') {\n return timeToGmt(value, window.localStorage.getItem('user-timezone'));\n }\n return '';\n }\n\n}\n","import {Directive, ElementRef, EventEmitter, Input, Output} from '@angular/core';\nimport {fromEvent, merge, of} from \"rxjs\";\nimport {map, switchMap, delay} from \"rxjs/operators\";\nimport {UntilDestroy, untilDestroyed} from \"@ngneat/until-destroy\";\n\n@UntilDestroy()\n@Directive({\n selector: '[appDelayedHover]'\n})\nexport class DelayedHoverDirective {\n\n constructor(private readonly element: ElementRef) {}\n\n @Input() delay: number = 1500;\n\n @Output('delayed-hover') hoverEvent = new EventEmitter();\n\n ngOnInit() {\n const hide$ = fromEvent(this.element.nativeElement, 'mouseleave').pipe(map(_ => false));\n const show$ = fromEvent(this.element.nativeElement, 'mouseenter').pipe(map(_ => true));\n\n merge(hide$, show$)\n .pipe(\n untilDestroyed(this),\n switchMap(show => {\n if (!show) {\n return of(false);\n }\n return of(true).pipe(delay(this.delay));\n })\n )\n .subscribe(show => {\n if (show) {\n this.hoverEvent.emit();\n }\n });\n }\n}\n","import {Directive, HostListener} from '@angular/core';\nimport {NgControl} from '@angular/forms';\n\n@Directive({\n // tslint:disable-next-line:directive-selector\n selector: 'olm-input[timeInputMask]'\n})\nexport class TimeMaskDirective {\n private pressedBackspace: boolean;\n\n constructor(private ngControl: NgControl) {\n }\n\n @HostListener('input')\n onModelChange(): void {\n this.onInputChange(this.ngControl.control.value);\n }\n\n @HostListener('keydown.backspace', ['$event'])\n keydownBackspace(keyPress: KeyboardEvent) {\n if (keyPress.target['value'].length === 3) {\n this.pressedBackspace = true;\n }\n }\n\n private onInputChange(inputValue: string): void {\n let editedValue = inputValue.replace(/\\D/g, '');\n editedValue = this.inputStringWithInvalidValuesRemoved(editedValue);\n\n switch (true) {\n case editedValue.length === 2 && !this.pressedBackspace: {\n editedValue = editedValue.replace(/^(\\d{0,2})/, '$1:');\n break;\n }\n case editedValue.length === 3 || editedValue.length === 4: {\n editedValue = editedValue.replace(/^(\\d{0,2})(\\d{0,2})/, '$1:$2');\n break;\n }\n case editedValue.length > 4: {\n editedValue = editedValue.substring(0, 4);\n editedValue = editedValue.replace(/^(\\d{0,2})(\\d{0,2})/, '$1:$2');\n break;\n }\n }\n\n if (this.pressedBackspace) {\n editedValue = editedValue.substring(0, editedValue.length - 1);\n this.pressedBackspace = false;\n }\n\n this.ngControl.control.setValue(editedValue);\n }\n\n private inputStringWithInvalidValuesRemoved(input: string): string {\n if (!this.hasValidTimeValue(input)) {\n input = input.substring(0, input.length - 1);\n input = this.inputStringWithInvalidValuesRemoved(input);\n }\n\n return input;\n }\n\n private hasValidTimeValue(ngControlValue: string): boolean {\n if (ngControlValue.length === 0) {\n return true;\n }\n\n let validTimeFormat: RegExp;\n\n switch (true) {\n case ngControlValue.length === 1: {\n validTimeFormat = /([012])/;\n\n return validTimeFormat.test(ngControlValue);\n }\n case ngControlValue.length === 2: {\n validTimeFormat = /(0[0-9]|1[0-9]|2[0-3])/;\n\n return validTimeFormat.test(ngControlValue);\n }\n case ngControlValue.length === 3: {\n validTimeFormat = /(0[0-9]|1[0-9]|2[0-3])[0-5]/;\n\n return validTimeFormat.test(ngControlValue);\n }\n case ngControlValue.length === 4: {\n validTimeFormat = /(0[0-9]|1[0-9]|2[0-3])[0-5][0-9]/;\n\n return validTimeFormat.test(ngControlValue);\n }\n }\n }\n}\n","import {DialogAllModule} from '@syncfusion/ej2-angular-popups';\nimport {ButtonAllModule} from '@syncfusion/ej2-angular-buttons';\n\nexport const EJSImports = [\n DialogAllModule,\n ButtonAllModule\n];\n","import {Location} from '@angular/common';\nimport { Injectable } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n CanDeactivate,\n Router,\n RouterStateSnapshot\n} from '@angular/router';\nimport {Observable} from 'rxjs';\nimport {Platform} from '@angular/cdk/platform';\nimport { AuthFacade } from '../../auth/auth.facade';\nimport { MatDialog } from '@angular/material/dialog';\nimport { AppFacade } from '../../app.facade';\n\nexport interface CanComponentDeactivate {\n canDeactivate: () => Observable | Promise | boolean;\n}\n\ndeclare let useSecurity: boolean;\n\n@Injectable()\nexport class CanDeactivateGuard implements CanDeactivate {\n\n constructor(\n private location: Location,\n private router: Router,\n public platform: Platform\n ) { }\n\n private sleep = (ms: number): Promise => new Promise(resolve => setTimeout(resolve, ms));\n\n async canDeactivate(component: CanComponentDeactivate, currentRoute: ActivatedRouteSnapshot, currentState: RouterStateSnapshot) {\n\n // additional workaround for firefox\n if (this.platform.FIREFOX) {\n await this.sleep(0);\n }\n\n // workaround for back BROWSER button\n const canDeactivateResult = component.canDeactivate && component.canDeactivate();\n if (canDeactivateResult instanceof Promise) {\n return canDeactivateResult.then(canDeactivate => {\n if (!canDeactivate && this.router.getCurrentNavigation().trigger === 'popstate') {\n this.location.go(currentState.url);\n }\n return canDeactivate;\n })\n } else {\n return canDeactivateResult || true as any;\n }\n }\n}\n\n\n@Injectable()\nexport class AuthActivationGuard implements CanActivate {\n\n constructor(\n private authFacade: AuthFacade\n ) {\n }\n\n async canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): Promise {\n if (!this.authFacade.isLoggedIn && useSecurity) {\n this.authFacade.blockLogoutRequest = true;\n }\n\n return true;\n }\n}\n\n\n@Injectable()\nexport class DssConfigActivationGuard implements CanActivate {\n\n constructor(\n private authFacade: AuthFacade,\n private matDialog: MatDialog,\n private appFacade: AppFacade\n ) {\n }\n\n async canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): Promise {\n if (!await this.appFacade.checkForDssConfig(false)) {\n this.appFacade.showMissingConfigDialog();\n return false;\n }\n return true;\n }\n}\n","export const icons = [\n 'search',\n 'agent-manager',\n 'domains-manager',\n 'sync-manager',\n 'entities',\n 'relations',\n 'service-configuration',\n 'tools',\n 'arrow-back',\n 'alerts-off',\n 'alerts-on',\n 'active-user',\n 'userBlue',\n 'user',\n 'workstation',\n 'edit',\n 'success',\n 'refresh',\n 'table-refresh',\n 'sync-now',\n 'broken-link',\n 'openlm',\n 'openlm-white',\n 'add',\n 'bulk-edit',\n 'remove',\n 'save',\n 'cancel',\n 'reset-link-btn',\n 'sync-now-btn',\n 'stop-sync',\n 'arrow-down',\n 'error-alert',\n 'trash-bin',\n 'sync-history'\n];\n","import { Injectable } from '@angular/core';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport {DomSanitizer} from '@angular/platform-browser';\nimport { icons } from './icons-init.enums';\n@Injectable({\n providedIn: 'root'\n})\nexport class IconsInitService {\n\n constructor(private iconRegistry: MatIconRegistry, private sanitizer: DomSanitizer) {}\n\n public registerIcons(): void {\n this.loadIcons(icons, '../assets/svg/icons');\n }\n\n private loadIcons(iconKeys: string[], iconUrl: string): void {\n iconKeys.forEach(key => {\n this.iconRegistry.addSvgIcon(key, this.sanitizer.bypassSecurityTrustResourceUrl(`${iconUrl}/${key}.svg`));\n });\n }\n}\n","import {Component, OnInit, OnDestroy, ViewChild, ElementRef, ChangeDetectorRef} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { LoaderService } from './loader.service';\n@Component({\n selector: 'app-loader',\n templateUrl: './loader.component.html',\n styleUrls: ['./loader.component.scss']\n})\nexport class LoaderComponent implements OnInit, OnDestroy {\n @ViewChild('spinner', { static: true }) spinner: ElementRef;\n\n public show = false;\n private subscription: Subscription;\n\n constructor(private loaderService: LoaderService,\n private changeDetector: ChangeDetectorRef) { }\n\n ngOnInit() {\n this.subscription = this.loaderService.loaderState\n .subscribe((state: LoaderState) => {\n this.show = state.show;\n this.changeDetector.detectChanges();\n });\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n}\n\nexport interface LoaderState {\n show: boolean;\n}\n","
\n\n
\n
\n \n \n \n \n Loading\n \n \n \n \n \n \n \n \n \n
\n
\n
\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n@Injectable({\n providedIn: 'root'\n})\nexport class LoaderService {\n\n constructor() { }\n\n private loaderStatus = true;\n private loaderSubject = new BehaviorSubject({show: false});\n\n public loaderState = this.loaderSubject.asObservable();\n\n public show() {\n if (this.loaderStatus) {\n this.loaderSubject.next({ show: true });\n }\n }\n public hide() {\n if (this.loaderStatus) {\n this.loaderSubject.next({ show: false });\n }\n }\n\n public disableLoader(): void {\n this.loaderStatus = false;\n }\n\n public enableLoader(): void {\n this.loaderStatus = true;\n }\n}\n\nexport interface LoaderState {\n show: boolean;\n}\n","import { MatDialogModule } from '@angular/material/dialog';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport {MatRippleModule} from '@angular/material/core';\nimport {MatMenuModule} from \"@angular/material/menu\";\n\n\nexport const materialModules = [\n MatDialogModule,\n MatTableModule,\n MatCheckboxModule,\n TextFieldModule,\n MatInputModule,\n ScrollingModule,\n MatSortModule,\n MatTabsModule,\n MatIconModule,\n PlatformModule,\n ObserversModule,\n MatRippleModule,\n MatMenuModule\n];\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'booleanToString'\n})\nexport class BooleanToStringPipe implements PipeTransform {\n\n transform(value: boolean, textForTrue?: string, textForFalse?: string): string {\n return value ? textForTrue || 'Yes' : textForFalse || 'No';\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'directory'\n})\nexport class DirectoryPipe implements PipeTransform {\n\n transform(value: any, ...args: any[]): any {\n switch (value) {\n case 0:\n return 'Active Directory / AWS';\n case 1:\n return 'EDirectory';\n case 2:\n return 'ApacheDs';\n case 3:\n return 'AzureAd';\n case 4:\n return 'Google CDS';\n case 5:\n return 'Okta Directory';\n case 6:\n\t return 'Nis Directory';\n default:\n return '';\n }\n }\n\n}\n","import {DomSanitizer} from '@angular/platform-browser';\nimport {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({\n name: 'highlight'\n})\nexport class HighlightSearchPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(value: string, args?: any): any {\n if (args) {\n args = args.replace(new RegExp('\\\\\\\\', 'g'), '\\\\\\\\');\n }\n value = value + '';\n\n if (!args) {\n return this.escapeSpecialChars(value);\n }\n const re = new RegExp(args, 'gi');\n const match = value.match(re);\n\n if (!match) {\n return this.escapeSpecialChars(value);\n }\n let replacedValue = value.replace(re, '' + match[0] + '');\n replacedValue = this.escapeSpecialChars(replacedValue)\n .replace(/<mark>/g, '')\n .replace(/<\\/mark>/g, '')\n return this.sanitizer.bypassSecurityTrustHtml(replacedValue);\n }\n\n private escapeSpecialChars(val: string): string {\n return val\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'intToStatus'\n})\nexport class IntToStatusPipe implements PipeTransform {\n\n transform(value: any, ...args: any[]): any {\n switch (value) {\n case 0:\n return 'New';\n case 1:\n return 'Pending Approval';\n case 2:\n return 'Enabled';\n case 3:\n return 'Suspended';\n case 4:\n return 'Disabled';\n default:\n return 'Unknown status';\n }\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'objectTypes'\n})\nexport class ObjectTypesEntityPipe implements PipeTransform {\n\n transform(value: any, ...args: any[]): any {\n switch (value) {\n case 0:\n return 'User';\n case 1:\n return 'Group';\n case 2:\n return 'Computer';\n }\n }\n\n}\n","import {Pipe, PipeTransform} from '@angular/core';\nimport {ITextTranslation} from '../translations/types';\nimport {openlmServerTranslations, ugsTranslations} from '../translations';\nimport {isDsConnectorEnabled} from '../utils';\n\n@Pipe({\n name: 'textSwap'\n})\nexport class TextSwapPipe implements PipeTransform {\n transform(translationKey: keyof ITextTranslation): any {\n const connectorType: string = isDsConnectorEnabled() ? 'ugs' : 'openlm';\n switch (connectorType) {\n case 'ugs':\n return ugsTranslations[translationKey] || ''\n case 'openlm':\n return openlmServerTranslations[translationKey] || ''\n default:\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport {DatePipe} from '@angular/common';\nimport * as moment from 'moment-timezone';\n\n@Pipe({\n name: 'userDate'\n})\nexport class UserDatePipe extends DatePipe implements PipeTransform {\n\n transform(\n value: string | Date,\n format: string = window.localStorage.getItem('user-date-format'),\n timezone: string = window.localStorage.getItem('user-timezone')\n ): string {\n if (value) {\n format = format + ' OOOO';\n const timezoneOffset = moment(value).tz(timezone).format('Z');\n return super.transform(value, format, timezoneOffset);\n }\n return '';\n }\n}\n","import {\n Component,\n OnInit,\n Input,\n Output,\n EventEmitter,\n ViewChild,\n ElementRef,\n AfterViewInit,\n OnDestroy\n} from '@angular/core';\nimport {PerfectScrollbarConfig} from 'ngx-perfect-scrollbar';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, map } from 'rxjs/operators';\nimport { untilComponentDestroyed } from '../utils';\n\n@Component({\n selector: 'app-search-input',\n templateUrl: './search-input.component.html',\n styleUrls: ['./search-input.component.scss']\n})\nexport class SearchInputComponent implements AfterViewInit, OnDestroy {\n\n constructor() { }\n\n public focus: boolean;\n\n public searchTerms: string[] = [];\n\n @ViewChild('searchInput') searchInput: ElementRef;\n\n @Input() width: 'full' | 'fixed' = 'fixed';\n @Input() placeholder = 'Type to search';\n @Input() disabled = false;\n @Input() multiple = false;\n @Input() set value(val) {\n if (val) {\n this.searchTerms[0] = val\n }\n }\n\n @Output() addSearchTerm: EventEmitter = new EventEmitter();\n @Output() clearSearchTerm: EventEmitter = new EventEmitter();\n config = {\n useBothWheelAxes: true,\n suppressScrollX: !this.multiple,\n suppressScrollY: true,\n scrollXMarginOffset: -1,\n maxScrollbarLength: 25\n } as PerfectScrollbarConfig;\n searchTerm: string;\n\n @Output() inputSearchTerm: EventEmitter = new EventEmitter();\n\n ngAfterViewInit(): void {\n fromEvent(this.searchInput.nativeElement, 'keyup')\n .pipe(\n map((e: any) => e.target.value),\n debounceTime(100),\n distinctUntilChanged(),\n untilComponentDestroyed(this)\n )\n .subscribe((inputValue: string) => {\n this.inputSearchTerm.emit(inputValue);\n });\n }\n\n setSearchTerm() {\n this.searchTerm = this.searchTerm.trim();\n if (this.searchTerm) {\n if (this.multiple) {\n this.searchTerms.push(this.searchTerm);\n this.addSearchTerm.emit(this.searchTerm);\n this.searchTerm = '';\n } else {\n this.searchTerms[0] = this.searchTerm;\n this.addSearchTerm.emit(this.searchTerm);\n this.searchTerm = '';\n }\n }\n }\n\n removeSearchTerm(deleteTerm: string) {\n this.searchTerms = this.searchTerms.filter(e => e !== deleteTerm);\n this.clearSearchTerm.emit(true);\n }\n\n ngOnDestroy() {}\n}\n","
\n
\n
\n \n \n \n {{searchTerm}}\n \n \n \n\n \n\n
\n \n
\n \n \n \n
\n
\n
\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {\n PERFECT_SCROLLBAR_CONFIG,\n PerfectScrollbarConfigInterface,\n PerfectScrollbarModule\n} from 'ngx-perfect-scrollbar';\nimport {materialModules} from './material.imports';\nimport {FlexLayoutModule} from '@angular/flex-layout';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {SearchInputComponent} from './search-input/search-input.component';\nimport {ShowFilterButtonComponent} from './show-filter-button/show-filter-button.component';\nimport {IntToStatusPipe} from './pipes/int-to-status.pipe';\nimport {SideDialogModule} from './side-dialog/side-dialog.module';\nimport {ConfirmDialogComponent} from './confirm-dialog/confirm-dialog.component';\nimport {BooleanToStringPipe} from './pipes/booleanToString.pipe';\nimport {DirectoryPipe} from './pipes/directory.pipe';\nimport {ObjectTypesEntityPipe} from './pipes/object-types-entity.pipe';\nimport {UnsavedChangesDialogComponent} from './unsaved-changes-dialog/unsaved-changes-dialog.component';\nimport {AuthActivationGuard, DssConfigActivationGuard, CanDeactivateGuard} from './guards/routes.service';\nimport {HighlightSearchPipe} from './pipes/highlight-search.pipe';\nimport {SnackbarComponent} from './snackbar/snackbar.component';\nimport {MESSAGE_DATA} from './snackbar/snackbar-dialog/message.injection-token';\nimport {SnackbarDialogComponent} from './snackbar/snackbar-dialog/snackbar-dialog.component';\nimport {LoaderComponent} from './loader/loader.component';\nimport {TimeMaskDirective} from './directives/time-mask.directive';\nimport {OpenlmModule, TableModule} from 'openlm';\nimport {TimeConvertPipe} from './date/time-convert.pipe';\nimport {DelayedHoverDirective} from './directives/delayed-hover.directive';\nimport {UserDatePipe} from './pipes/user-date.pipe';\nimport {enableRipple} from '@syncfusion/ej2-base';\nimport {EJSImports} from './ejs-imports';\nimport {NoPermissionComponent} from './components/no-permission/no-permission.component';\nimport { TextSwapPipe } from './pipes/text-swap.pipe';\nimport { OlmTextareaComponent } from './components/olm-textarea/olm-textarea.component';\n\nenableRipple(true);\n\nconst DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = {\n suppressScrollX: true,\n wheelPropagation: false\n};\n\n@NgModule({\n entryComponents: [\n ConfirmDialogComponent,\n UnsavedChangesDialogComponent\n ],\n declarations: [\n SearchInputComponent,\n ShowFilterButtonComponent,\n IntToStatusPipe,\n BooleanToStringPipe,\n BooleanToStringPipe,\n DirectoryPipe,\n HighlightSearchPipe,\n ObjectTypesEntityPipe,\n ConfirmDialogComponent,\n UnsavedChangesDialogComponent,\n SnackbarComponent,\n SnackbarDialogComponent,\n LoaderComponent,\n TimeMaskDirective,\n TimeConvertPipe,\n DelayedHoverDirective,\n UserDatePipe,\n NoPermissionComponent,\n TextSwapPipe,\n OlmTextareaComponent\n ],\n imports: [\n CommonModule,\n ...materialModules,\n ...EJSImports,\n PerfectScrollbarModule,\n FlexLayoutModule,\n ReactiveFormsModule,\n TableModule,\n FormsModule,\n SideDialogModule,\n OpenlmModule\n ],\n exports: [\n ...materialModules,\n ...EJSImports,\n PerfectScrollbarModule,\n FlexLayoutModule,\n ReactiveFormsModule,\n FormsModule,\n TableModule,\n SearchInputComponent,\n ShowFilterButtonComponent,\n IntToStatusPipe,\n BooleanToStringPipe,\n BooleanToStringPipe,\n DirectoryPipe,\n ObjectTypesEntityPipe,\n SideDialogModule,\n ConfirmDialogComponent,\n UnsavedChangesDialogComponent,\n SnackbarComponent,\n SnackbarDialogComponent,\n HighlightSearchPipe,\n LoaderComponent,\n TimeMaskDirective,\n TimeConvertPipe,\n DelayedHoverDirective,\n UserDatePipe,\n NoPermissionComponent,\n TextSwapPipe,\n OlmTextareaComponent,\n ],\n providers: [{\n provide: PERFECT_SCROLLBAR_CONFIG,\n useValue: DEFAULT_PERFECT_SCROLLBAR_CONFIG\n }, {\n provide: MESSAGE_DATA,\n useValue: 'MESSAGE_DATA'\n },\n CanDeactivateGuard,\n AuthActivationGuard,\n DssConfigActivationGuard,\n TextSwapPipe\n ]\n})\nexport class SharedModule {\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-show-filter-button',\n templateUrl: './show-filter-button.component.html',\n styleUrls: ['./show-filter-button.component.scss']\n})\nexport class ShowFilterButtonComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","
\n \n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SideDialogContainerComponent } from './side-dialog/side-dialog-container.component';\nimport { SideDialogService } from './side-dialog.service';\nimport { PortalModule } from '@angular/cdk/portal';\n\n@NgModule({\n declarations: [SideDialogContainerComponent],\n imports: [\n CommonModule,\n PortalModule\n ],\n // exports: []\n entryComponents: [SideDialogContainerComponent],\n providers: [SideDialogService]\n})\nexport class SideDialogModule { }\n","import { Injectable, Injector, TemplateRef, Type } from '@angular/core';\nimport {\n ComponentType,\n Overlay,\n OverlayConfig,\n OverlayRef,\n ScrollStrategyOptions\n} from '@angular/cdk/overlay';\nimport { ComponentPortal, PortalInjector } from '@angular/cdk/portal';\nimport { SideDialogContainerComponent } from './side-dialog/side-dialog-container.component';\nimport { Subject } from 'rxjs';\n\nexport interface SideDialogConfig {\n width: string;\n length?: number;\n selected?: any;\n data?: any;\n}\n\n@Injectable()\nexport class SideDialogService {\n\n constructor(\n private overlay: Overlay,\n private sso: ScrollStrategyOptions,\n private injector: Injector,\n ) { }\n\n public openComponent(componentRef: ComponentType, config?: SideDialogConfig) {\n const overlayRef = this.createOverlay(config);\n\n const sideDialogRef = new SideDialogRef(overlayRef, componentRef, config);\n\n const injector = this.createInjector(sideDialogRef, this.injector, config.length);\n\n const containerPortal = new ComponentPortal(SideDialogContainerComponent, null, injector);\n\n const containerRef = overlayRef.attach(containerPortal);\n containerRef.instance.attachComponentPortal(\n new ComponentPortal(componentRef)\n );\n\n // overlayRef.backdropClick().subscribe(event => {\n // overlayRef.detach();\n // });\n\n return sideDialogRef;\n }\n\n private createOverlay(config: SideDialogConfig): OverlayRef {\n const overlayConfig = new OverlayConfig({\n positionStrategy: this.overlay\n .position()\n .global()\n .right('22px')\n .top('107px'),\n scrollStrategy: this.sso.block(),\n panelClass: 'right-side-panel',\n disposeOnNavigation: true,\n backdropClass: 'side-panel-backdrop',\n hasBackdrop: true,\n width: config && config.width || null\n });\n return this.overlay.create(overlayConfig);\n }\n\n private createInjector(ref: SideDialogRef, inj: Injector, length: number) {\n const injectorTokens = new WeakMap([[SideDialogRef, ref]]);\n return new PortalInjector(inj, injectorTokens);\n }\n}\n\nexport interface OverlayCloseEvent {\n type: 'BACKDROP_CLICK' | 'CLOSE';\n data: R;\n}\n\nexport class SideDialogRef {\n\n constructor(\n public overlay: OverlayRef,\n public content: string | TemplateRef | Type,\n public data: T\n ) {\n overlay.backdropClick().subscribe(() => {\n if (this.closeOnBackdrop) {\n this._close('BACKDROP_CLICK', null);\n }\n });\n }\n\n public closeOnBackdrop = true;\n\n afterClosed$ = new Subject>();\n\n public close(data?: R) {\n this._close('CLOSE', data);\n }\n\n private _close(type: 'BACKDROP_CLICK' | 'CLOSE', data: R) {\n this.overlay.dispose();\n this.afterClosed$.next({\n type,\n data\n });\n this.afterClosed$.complete();\n }\n}\n","import { Component, ComponentRef, HostBinding, OnInit, ViewChild } from '@angular/core';\nimport { CdkPortalOutlet, ComponentPortal } from '@angular/cdk/portal';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\n\n@Component({\n selector: 'app-side-dialog-container',\n templateUrl: './side-dialog-container.component.html',\n styleUrls: ['./side-dialog-container.component.scss'],\n animations: [\n trigger('dialogContainer', [\n state('void', style({transform: 'translateX(50px)', opacity: '0'})),\n transition('void => *', animate('150ms cubic-bezier(0, 0, 0.2, 1)', style({\n transform: 'translateX(0)',\n opacity: 1\n }))),\n ])\n ],\n})\nexport class SideDialogContainerComponent implements OnInit {\n\n constructor() {}\n\n @HostBinding('@dialogContainer')\n\n @ViewChild(CdkPortalOutlet, {static: true}) portalOutlet: CdkPortalOutlet;\n\n ngOnInit() {\n }\n\n public attachComponentPortal(portal: ComponentPortal): ComponentRef {\n return this.portalOutlet.attachComponentPortal(portal);\n }\n\n}\n","","import { InjectionToken } from '@angular/core';\n\nexport const MESSAGE_DATA = new InjectionToken<{}>('MESSAGE_DATA');\n","import {AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject} from '@angular/core';\nimport {Subject} from 'rxjs';\nimport {animate, keyframes, style, transition, trigger} from '@angular/animations';\nimport {MESSAGE_DATA} from './message.injection-token';\nimport {onCloudDssDownMessage, onPremDssDownMessage} from '../../const';\n\n@Component({\n selector: 'app-snackbar-dialog',\n templateUrl: './snackbar-dialog.component.html',\n styleUrls: ['./snackbar-dialog.component.scss'],\n animations: [\n trigger('errorTextToggle', [\n transition(\n ':enter',\n animate(\n '225ms cubic-bezier(0.25, 0.8, 0.25, 1)',\n keyframes([style({marginTop: '-10px'}), style({marginTop: '0'})])\n )\n )\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SnackbarDialogComponent implements AfterViewInit {\n\n constructor(@Inject(MESSAGE_DATA) private data: ISnackbarData,\n private changeDetector: ChangeDetectorRef) {\n this.message = data.message;\n }\n\n public message: string;\n public onClose = new Subject();\n public errorType: boolean;\n\n ngAfterViewInit() {\n this.errorType = this.data.isError;\n this.changeDetector.detectChanges();\n\n if (!this.message.includes(onPremDssDownMessage) && !this.message.includes(onCloudDssDownMessage)) {\n setTimeout(() => this.onCloseButtonClick(), this.data.timeoutTime || 3000);\n }\n }\n\n public onCloseButtonClick() {\n this.onClose.next();\n }\n}\n\nexport interface ISnackbarData {\n message: string;\n isError?: boolean;\n timeoutTime?: number;\n}\n","
\n
\n
\n \n \n
\n
\n
\n
\n {{'Error Message:'}}\n  \n \n
\n
\n {{ message || 'Changes were saved successfully' }}\n
\n
\n
\n
\n
\n
\n","import { Injectable } from '@angular/core';\nimport {Subject} from 'rxjs';\nimport {ISnackbarData} from '../snackbar-dialog/snackbar-dialog.component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SnackbarService {\n\n constructor() {}\n\n private messageSubject: Subject = new Subject();\n public message$ = this.messageSubject.asObservable();\n\n public triggerSnackbar(snackbarData: ISnackbarData) {\n this.messageSubject.next(snackbarData);\n }\n}\n","import {Component, InjectionToken, Injector, OnInit} from '@angular/core';\nimport {ComponentPortal, PortalInjector} from '@angular/cdk/portal';\nimport {MESSAGE_DATA} from './snackbar-dialog/message.injection-token';\nimport {Overlay, OverlayRef} from '@angular/cdk/overlay';\nimport {SnackbarService} from './snackbar-service/snackbar.service';\nimport {ISnackbarData, SnackbarDialogComponent} from './snackbar-dialog/snackbar-dialog.component';\n\n@Component({\n selector: 'app-snackbar',\n templateUrl: './snackbar.component.html',\n styleUrls: ['./snackbar.component.scss']\n})\nexport class SnackbarComponent implements OnInit {\n\n constructor(public snackbarService: SnackbarService,\n private overlay: Overlay,\n private injector: Injector) {}\n\n ngOnInit() {\n this.snackbarService.message$.subscribe(message => this.createMessageOverlay(message));\n }\n\n private createMessageOverlay(message: ISnackbarData) {\n let overlayRef: OverlayRef;\n overlayRef = this.overlay.create({\n positionStrategy: this.overlay\n .position()\n .global()\n .top('10px')\n .centerHorizontally(),\n hasBackdrop: false\n });\n\n const infoPortal = new ComponentPortal(\n SnackbarDialogComponent,\n null,\n this.createInjector(message, MESSAGE_DATA)\n );\n\n overlayRef.attach(infoPortal).instance.onClose.subscribe(() => {\n overlayRef.detach();\n });\n }\n\n private createInjector(dataToPass: ISnackbarData, injector: InjectionToken<{}>): PortalInjector {\n const injectorTokens = new WeakMap();\n injectorTokens.set(injector, dataToPass);\n return new PortalInjector(this.injector, injectorTokens);\n }\n}\n","import {ITextTranslation} from './types';\n\nexport const openlmServerTranslations: ITextTranslation = {\n 'serviceConfig.advance': 'Note:This action only affects the DSS database. users and groups already present in the OpenLM database are unaffected. Entities will be recreated on the next sync.',\n 'serviceConfig.connectivity.title': 'OpenLM Server',\n 'serviceConfig.connectivity.description': 'Configure the OpenLM Server connection.

IP/Hostname: Enter the Hostname or IP of the OpenLM Server.

Port: Set the OpenLM Server listener port.

DSS Server
Will be displayed at OpenLM EasyAdmin as DSS destination URL and will use OpenLM to query the DSS.

IP/Hostname:Enter the Hostname or IP of the DSS Server.

Port: Set the DSS Server listener port.

SSL: configure the DSS UI connection type (Http or Https) Select the SSL certificate file and enter the credentials.

Save
Any change in service configuration will be reported to OpenLM Server. In some cases you will have to access OpenLM EasyAdmin to complete the process please follow the messages.',\n 'serviceConfig.connectivity.header': '\\'Fill the details below to configure the connection between the
OpenLM Directory Synchronization Service (DSS) and OpenLM Server.\\'',\n 'serviceConfig.connectivity.formHeader': 'OpenLM Server',\n 'serviceConfig.placeholder.host': 'Enter OpenLM Server Hostname, IP or domain',\n 'serviceConfig.placeholder.port': 'Enter OpenLM Server listener port',\n 'sync.object.syncUserText': 'OpenLM',\n 'sync.object.defaultDescription': 'Configure the objects (entities) you want to include in the sync.

Sync Objects: configure which objects to sync (users, computers).

Active users only: when selected, the sync will include only users which were detected as active users by OpenLM Server.
Active users refers to any user with license usage activity as detected from the time OpenLM was operational.

Sync attribute: when selecting the object type as \"Users\", you can choose one of the attributes from the drop-down list or manually enter the attribute name you would like to sync by (only supported for the \"Users\" type)

Filter by: allow syncing only for users within OUs (organizational units) or users within security groups.

Search depth: define the sync depth. If no value is specified, the entire tree will be scanned, beginning from the start node that was defined.',\n 'sync.object.azureDescription': 'Configure the objects (entities) you want to include in the sync.

Sync Objects: configure which objects to sync by (currently only users object is supported)

Active users only: when selected, the sync will include only users which were detected as active users by OpenLM Server.
Active users refers to any user with license usage activity as detected from the time OpenLM was operational.

Sync attribute: when selecting the object type as \"Users\", you can choose one of the attributes from the drop-down list or manually enter the attribute name you would like to sync by (only supported for the \"Users\" type)

Filter by: allow syncing only for users within Administrative Units or users within security groups.

Search depth: define the sync depth. If no value is specified, the entire tree will be scanned, beginning from the start node that was defined.',\n 'sync.object.nonAzureDescription': 'Configure the objects (entities) you want to include in the sync.

Sync Objects: configure which objects to sync (users, computers).

Active users only: when selected, the sync will include only users which were detected as active users by OpenLM Server.
Active users refers to any user with license usage activity as detected from the time OpenLM was operational.

Sync attribute: when selecting the object type as \"Users\", you can choose one of the attributes from the drop-down list or manually enter the attribute name you would like to sync by (only supported for the \"Users\" type)

Filter by: allow syncing only for users within OUs (organizational units) or users within security groups.

Search depth: define the sync depth. If no value is specified, the entire tree will be scanned, beginning from the start node that was defined.',\n 'sync.time.syncSchedule': 'OpenLM offers two sync options

By Interval: the first sync cycle will start at the specified start time and run again according to the interval setting. Interval time is measured in hours and can vary from 1 to 720 hours. In case the DSS is restarted, the server will wait for the start time before triggering the sync again.

By Time: the sync will start according to the configured days and time in the sync table.',\n 'sync.groupRule.default': 'Configure if you would like to create groups from the sync objects.

You can choose between 3 different approaches for creating groups.

Flat: enter a group name. All synced objects will become members of this group, regardless of hierarchy.

Hierarchical: Select the object classes you would like the groups in OpenLM to be created by. The groups will have the same attributes and names as the selected object classes.

Entity attribute: Group entities with the same attribute. The groups will be created inside OpenLM with the same name as the attribute value.
A regex expression may be used to articulate the required attribute.',\n 'sync.groupRule.googleCDS': 'Configure if you would like to create groups from the sync objects.

You can choose between 3 different approaches for creating groups.

Flat: enter a group name. All synced objects will become members of this group, regardless of hierarchy.

Hierarchical: The hierarchical group will be created according to the security groups, Organizational Units (OUs), and the search depth specified below.
The groups will have the same attributes and names as the selected object classes.

Entity attribute: Group entities with the same attribute. The groups will be created inside OpenLM with the same name as the attribute value.
A regex expression may be used to articulate the required attribute.',\n 'sync.groupRule.nonAzureAD': 'Configure if you would like to create groups from the sync objects.

You can choose between 3 different approaches for creating groups.

Flat: enter a group name. All synced objects will become members of this group, regardless of hierarchy.

Hierarchical: Select the object classes you would like the groups in OpenLM to be created by. The groups will have the same attributes and names as the selected object classes.

Entity attribute: Group entities with the same attribute. The groups will be created inside OpenLM with the same name as the attribute value.
A regex expression may be used to articulate the required attribute.',\n 'sync.groupRule.azureAD': 'Configure if you would like to create groups from the sync objects.

You can choose between 3 different approaches for creating groups.

Flat: enter a group name. All synced objects will become members of this group, regardless of hierarchy.

Hierarchical: Select the object classes you would like the groups in OpenLM to be created by. The groups will have the same attributes and names as the selected object classes.

Entity attribute: Group entities with the same attribute. The groups will be created inside OpenLM with the same name as the attribute value.
A regex expression may be used to articulate the required attribute.',\n 'sync.addEditInfo': 'Synchronization is the process by which entity (user/computer) information is retrieved from the directory server and mirrored onto OpenLM Server\\'s database.

Sync name: Any text to identify the sync definition. Must be unique.

Sync status: can be either Enabled or Disabled.

When Enabled, the sync will be executed according to the sync definition. When Disabled, the sync won’t run. Syncs can also have the \"Suspended\" status, which is set by the Agent. If an Agent is suspended, all syncs associated with it are also stopped.',\n 'sync.object.customAttrInfo': 'When selecting the \"Custom selection of attributes\" option, only selected attributes will be retrieved from LDAP and sent to an external third-party system (OpenLM Server or Users and Groups Service).

Be careful, in case DSS is still working with the OpenLM Server, the last one has logic to clear all user\\'s properties (except [Mobile Phone], [Email] and [Country]) before updating from LDAP sync.
So if you disable some non-mandatory attributes in DSS sync settings, they will be empty after the sync (except [Mobile Phone], [Email] and [Country] - they will remain unchanged)',\n 'sync.projectRule.default': 'Configure if you would like to create projects from the sync objects.

You can choose between 3 different approaches for creating projects.

Flat: enter a project name. All synced objects will become members of this project, regardless of hierarchy.

Hierarchical: Select the object classes you would like the groups in UGS to be created by. The groups will have the same attributes and names as the selected object classes.

Entity attribute: Group entities with the same attribute. The groups will be created inside UGS with the same name as the attribute value.
A regex expression may be used to articulate the required attribute.',\n 'sync.projectRule.googleCDS': 'Configure if you would like to create projects from the sync objects.

You can choose between 3 different approaches for creating projects.

Flat: enter a project name. All synced objects will become members of this project, regardless of hierarchy.

Hierarchical: The hierarchical project will be created according to the security groups, Organizational Units (OUs), and the search depth specified below.
The groups will have the same attributes and names as the selected object classes.

Entity attribute: Group entities with the same attribute. The projects will be created inside Projects service with the same name as the attribute value.
A regex expression may be used to articulate the required attribute.',\n 'sync.projectRule.nonAzureAD': 'Configure if you would like to create projects from the sync objects.

You can choose between 3 different approaches for creating projects.

Flat: enter a project name. All synced objects will become members of this project, regardless of hierarchy.

Hierarchical: Select the object classes you would like the groups in UGS to be created by. The groups will have the same attributes and names as the selected object classes.

Entity attribute: Group entities with the same attribute. The groups will be created inside UGS with the same name as the attribute value.
A regex expression may be used to articulate the required attribute.',\n 'sync.projectRule.azureAD': 'Configure if you would like to create projects from the sync objects.

You can choose between 3 different approaches for creating projects.

Flat: enter a project name. All synced objects will become members of this project, regardless of hierarchy.

Hierarchical: Select the object classes you would like the groups in UGS to be created by. The groups will have the same attributes and names as the selected object classes.

Entity attribute: Group entities with the same attribute. The groups will be created inside UGS with the same name as the attribute value.
A regex expression may be used to articulate the required attribute.',\n\n}\n\nexport const ugsTranslations: ITextTranslation = {\n 'serviceConfig.advance': 'Note:This action only affects the DSS database. users and groups already present in the Users & Groups database are unaffected. Entities will be recreated on the next sync.',\n 'serviceConfig.connectivity.title': 'Users and Groups',\n 'serviceConfig.connectivity.description': 'Configure the Users and Groups Service connection.

IP/Hostname: Enter the Hostname or IP of the Users and Groups Service.

Port: Set the Users and Groups listener port.

DSS Server
Will be displayed at OpenLM EasyAdmin as DSS destination URL and will use OpenLM to query the DSS.

IP/Hostname:Enter the Hostname or IP of the DSS Server.

Port: Set the DSS Server listener port.

SSL: configure the DSS UI connection type (Http or Https) Select the SSL certificate file and enter the credentials.

Save
Save the configuration in DSS.',\n 'serviceConfig.connectivity.header': 'Fill the details below to configure the connection between the
OpenLM Directory Synchronization Service (DSS) and Users and Groups Service.',\n 'serviceConfig.connectivity.formHeader': 'Users and Groups Service',\n 'serviceConfig.placeholder.host': 'Enter UGS Hostname, IP or domain',\n 'serviceConfig.placeholder.port': 'Enter UGS listener port',\n 'sync.object.syncUserText': 'UGS',\n 'sync.object.defaultDescription': 'Configure the objects (entities) you want to include in the sync.

Sync Objects: configure which objects to sync (users, computers).

Only users monitored by UGS: When selected, the sync will include only users monitored by UGS. Monitored users refers to any user with license usage activity as detected from the time OpenLM was operational.

Sync attribute: when selecting the object type as \"Users\", you can choose one of the attributes from the drop-down list or manually enter the attribute name you would like to sync by (only supported for the \"Users\" type)

Filter by: allow syncing only for users within OUs (organizational units) or users within security groups.

Search depth: define the sync depth. If no value is specified, the entire tree will be scanned, beginning from the start node that was defined.',\n 'sync.object.azureDescription': 'Configure the objects (entities) you want to include in the sync.

Sync Objects: configure which objects to sync by (currently only users object is supported)

Only users monitored by UGS: When selected, the sync will include only users monitored by UGS. Monitored users refers to any user with license usage activity as detected from the time OpenLM was operational.

Sync attribute: when selecting the object type as \"Users\", you can choose one of the attributes from the drop-down list or manually enter the attribute name you would like to sync by (only supported for the \"Users\" type)

Filter by: allow syncing only for users within Administrative Units or users within security groups.

Search depth: define the sync depth. If no value is specified, the entire tree will be scanned, beginning from the start node that was defined.',\n 'sync.object.nonAzureDescription': 'Configure the objects (entities) you want to include in the sync.

Sync Objects: configure which objects to sync (users, computers).

Only users monitored by UGS: When selected, the sync will include only users monitored by UGS. Monitored users refers to any user with license usage activity as detected from the time OpenLM was operational.

Sync attribute: when selecting the object type as \"Users\", you can choose one of the attributes from the drop-down list or manually enter the attribute name you would like to sync by (only supported for the \"Users\" type)

Filter by: allow syncing only for users within OUs (organizational units) or users within security groups.

Search depth: define the sync depth. If no value is specified, the entire tree will be scanned, beginning from the start node that was defined.',\n 'sync.time.syncSchedule': 'DSS offers two sync options

By Interval: the first sync cycle will start at the specified start time and run again according to the interval setting. Interval time is measured in hours and can vary from 1 to 720 hours. In case the DSS is restarted, the server will wait for the start time before triggering the sync again.

By Time: the sync will start according to the configured days and time in the sync table.',\n 'sync.groupRule.default': 'Configure if you would like to create groups from the sync objects.

You can choose between 3 different approaches for creating groups.

Flat: enter a group name. All synced objects will become members of this group, regardless of hierarchy.

Hierarchical: Select the object classes you would like the groups in UGS to be created by. The groups will have the same attributes and names as the selected object classes.

Entity attribute: Group entities with the same attribute. The groups will be created inside UGS with the same name as the attribute value.
A regex expression may be used to articulate the required attribute.',\n 'sync.groupRule.googleCDS': 'Configure if you would like to create groups from the sync objects.

You can choose between 3 different approaches for creating groups.

Flat: enter a group name. All synced objects will become members of this group, regardless of hierarchy.

Hierarchical: The hierarchical group will be created according to the security groups, Organizational Units (OUs), and the search depth specified below.
The groups will have the same attributes and names as the selected object classes.

Entity attribute: Group entities with the same attribute. The groups will be created inside UGS with the same name as the attribute value.
A regex expression may be used to articulate the required attribute.',\n 'sync.groupRule.nonAzureAD': 'Configure if you would like to create groups from the sync objects.

You can choose between 3 different approaches for creating groups.

Flat: enter a group name. All synced objects will become members of this group, regardless of hierarchy.

Hierarchical: Select the object classes you would like the groups in UGS to be created by. The groups will have the same attributes and names as the selected object classes.

Entity attribute: Group entities with the same attribute. The groups will be created inside UGS with the same name as the attribute value.
A regex expression may be used to articulate the required attribute.',\n 'sync.groupRule.azureAD': 'Configure if you would like to create groups from the sync objects.

You can choose between 3 different approaches for creating groups.

Flat: enter a group name. All synced objects will become members of this group, regardless of hierarchy.

Hierarchical: Select the object classes you would like the groups in UGS to be created by. The groups will have the same attributes and names as the selected object classes.

Entity attribute: Group entities with the same attribute. The groups will be created inside UGS with the same name as the attribute value.
A regex expression may be used to articulate the required attribute.',\n 'sync.addEditInfo': 'Synchronization is the process by which entity (user/computer) information is retrieved from the directory server and mirrored onto Users and Groups Service database.

Sync name: Any text to identify the sync definition. Must be unique.

Sync status: can be either Enabled or Disabled.

When Enabled, the sync will be executed according to the sync definition. When Disabled, the sync won’t run. Syncs can also have the \"Suspended\" status, which is set by the Agent. If an Agent is suspended, all syncs associated with it are also stopped.',\n 'sync.object.customAttrInfo': 'When selecting the \"Custom selection of attributes\" option, only selected attributes will be retrieved from LDAP and sent to an external third-party system (OpenLM Server or Users and Groups Service).

Be careful, in case DSS is still working with the OpenLM Server, the last one has logic to clear all user\\'s properties (except [Mobile Phone], [Email] and [Country]) before updating from LDAP sync.
So if you disable some non-mandatory attributes in DSS sync settings, they will be empty after the sync (except [Mobile Phone], [Email] and [Country] - they will remain unchanged)',\n 'sync.projectRule.default': 'Configure if you would like to create projects from the sync objects.

You can choose between 3 different approaches for creating projects.

Flat: enter a project name. All synced objects will become members of this project, regardless of hierarchy.

Hierarchical: Select the object classes you would like the groups in UGS to be created by. The groups will have the same attributes and names as the selected object classes.

Entity attribute: Group entities with the same attribute. The groups will be created inside UGS with the same name as the attribute value.
A regex expression may be used to articulate the required attribute.',\n 'sync.projectRule.googleCDS': 'Configure if you would like to create projects from the sync objects.

You can choose between 3 different approaches for creating projects.

Flat: enter a project name. All synced objects will become members of this project, regardless of hierarchy.

Hierarchical: The hierarchical project will be created according to the security groups, Organizational Units (OUs), and the search depth specified below.
The groups will have the same attributes and names as the selected object classes.

Entity attribute: Group entities with the same attribute. The projects will be created inside Projects service with the same name as the attribute value.
A regex expression may be used to articulate the required attribute.',\n 'sync.projectRule.nonAzureAD': 'Configure if you would like to create projects from the sync objects.

You can choose between 3 different approaches for creating projects.

Flat: enter a project name. All synced objects will become members of this project, regardless of hierarchy.

Hierarchical: Select the object classes you would like the groups in UGS to be created by. The groups will have the same attributes and names as the selected object classes.

Entity attribute: Group entities with the same attribute. The groups will be created inside UGS with the same name as the attribute value.
A regex expression may be used to articulate the required attribute.',\n 'sync.projectRule.azureAD': 'Configure if you would like to create projects from the sync objects.

You can choose between 3 different approaches for creating projects.

Flat: enter a project name. All synced objects will become members of this project, regardless of hierarchy.

Hierarchical: Select the object classes you would like the groups in UGS to be created by. The groups will have the same attributes and names as the selected object classes.

Entity attribute: Group entities with the same attribute. The groups will be created inside UGS with the same name as the attribute value.
A regex expression may be used to articulate the required attribute.',\n}\n","import {Component, Inject, OnInit} from '@angular/core';\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\n\n\nexport type UnsavedDialogResponse = 'CLOSE' | 'CANCEL' | 'APPROVE';\n\n@Component({\n selector: 'app-unsaved-changes-dialog',\n templateUrl: './unsaved-changes-dialog.component.html',\n styleUrls: ['./unsaved-changes-dialog.component.scss']\n})\nexport class UnsavedChangesDialogComponent implements OnInit {\n\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any\n ) { }\n\n ngOnInit() {\n }\n\n onCloseClick() {\n this.dialogRef.close('CLOSE');\n }\n\n onCancelClick() {\n this.dialogRef.close('CANCEL');\n }\n\n onApproveClick() {\n this.dialogRef.close('APPROVE');\n }\n\n cancel() {\n this.dialogRef.close(false);\n }\n\n approve() {\n this.dialogRef.close(true);\n }\n}\n","
\n\t
\n\t\tUnsaved changes\n\t\t
\n\t
\n
\n
\n\t
\n\t\t\n\t\t\t
Do you want to save the changes you have made in {{data?.screenName}}
\n\t\t
\n\t
\n\n\t
\n\t\t\n\t\t\tcancel\n\t\t\n\t\t\n\t\t\tDiscard & Continue\n\t\t\n\t\t\n\t\t\tsave\n\t\t\n\t
\n
\n","import {AbstractControl, FormControl, ValidationErrors, ValidatorFn} from '@angular/forms';\n\nimport {Observable, ReplaySubject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\nimport {ISession} from '../auth/service/security.interface';\nimport {onCloudDssDownMessage, onPremDssDownMessage} from './const';\n\ndeclare let isCloud: boolean;\n\n/*tslint:disable*/\nexport function componentDestroyed(component: { ngOnDestroy(): void }): Observable {\n const modifiedComponent = component as { ngOnDestroy(): void, __componentDestroyed$?: Observable };\n if (modifiedComponent.__componentDestroyed$) {\n return modifiedComponent.__componentDestroyed$;\n }\n const oldNgOnDestroy = component.ngOnDestroy;\n const stop$ = new ReplaySubject();\n modifiedComponent.ngOnDestroy = function () {\n oldNgOnDestroy && oldNgOnDestroy.apply(component);\n stop$.next(true);\n stop$.complete();\n };\n // console.log(modifiedComponent.ngOnDestroy);\n return modifiedComponent.__componentDestroyed$ = stop$.asObservable();\n}\n\nexport function untilComponentDestroyed(component: { ngOnDestroy(): void }): (source: Observable) => Observable {\n return (source: Observable) => source.pipe(takeUntil(componentDestroyed(component)));\n}\n\n/**\n * @remarks\n * Deep recursive object compare\n *\n * @param obj1 - First object\n * @param obj2 - Second object\n * @returns Boolean result if the objects are the same or not\n *\n * */\nexport function areObjectsTheSame(obj1: any, obj2: any): boolean {\n for (const p in obj1) {\n if (p) {\n if (obj1.hasOwnProperty(p) !== obj2.hasOwnProperty(p)) {\n return false;\n }\n\n if (typeof obj1[p] === 'object' && obj1[p] !== null) {\n if (!areObjectsTheSame(obj1[p], obj2[p])) {\n return false;\n }\n } else {\n if (obj1[p] !== obj2[p]) {\n return false;\n }\n }\n }\n }\n\n for (const p in obj2) {\n if (p) {\n if (typeof obj1[p] === 'undefined') {\n return false;\n }\n }\n }\n return true;\n}\n\n/**\n * @remarks\n * Pure function to update or insert an element in an array\n *\n * @param array - The array need to modify\n * @param object - The element need to update or insert\n * @param prop - Identifier property to check if exists to insert or update\n * @returns new modified array\n *\n * */\nexport function upsert(array: any[], object: any, prop: any): any[] {\n array = array.slice();\n if (object) {\n const foundIndex = array.findIndex(el => el[prop] === object[prop]);\n foundIndex === -1 ? array.push(object) : (array[foundIndex] = object);\n }\n return array;\n}\n\n/**\n * @remarks\n * Custom strong password Form Control validator\n *\n * @param control - Form Control\n * @returns Validation Errors or null\n *\n * */\nexport function strongPasswordValidator(control: FormControl): ValidationErrors | null {\n const strongPasswordRegEx = /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[@%+/\\\\'!#$^?:.,(){}[\\]~\\-\\_.*]).{8,}$/;\n return strongPasswordRegEx.test(control.value) ? null : { weakPassword: true };\n}\n\n\nexport function clearObjectFromEmptyValues(obj) {\n obj = {...obj};\n for (let key in obj) {\n if (obj.hasOwnProperty(key) && (obj[key] === '' || obj[key] === undefined || obj[key] === null)) {\n delete obj[key];\n }\n }\n return obj;\n}\n\nexport function downloadFile(data) {\n const blob = new Blob([data.body], {type: 'text/csv'});\n const element = document.createElement('a');\n element.href = URL.createObjectURL(blob);\n element.download = data.headers.get('Content-Disposition').split(';')[1].trim().split('=')[1];\n document.body.appendChild(element);\n element.click();\n document.body.removeChild(element);\n}\n\n/**\n * @remarks\n * Validator that checks if the specified abstract control value is already taken by an item from the provided array.\n *\n * @param entities - Generic array to check against\n * @param key - Key who's value is checked against\n * @param entityToOmit - entity whose value you are changing\n * @returns Validation Errors or null\n *\n * */\nexport function duplicateValueValidator(entities: T[], key: string, entityToOmit?: {entity: T, idKeyName: string}): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } | null => {\n const value = control.value?.toString().toLowerCase();\n const sameValueValidatorFn = (entity: T): boolean => entity[key].toString().toLowerCase() === value;\n\n if (!entities.length) {\n return null;\n }\n\n if (!entities[0].hasOwnProperty(key)) {\n return {[key]: `There is no property ${key} in this class/interface.`}\n }\n\n if (!!entityToOmit && !!entityToOmit.entity) {\n const idKey = entityToOmit.idKeyName;\n const sameIdValidatorFn = (entity: T): boolean => entity[idKey] !== entityToOmit.entity[idKey];\n\n return !!entities.find(v => sameValueValidatorFn(v) && sameIdValidatorFn(v)) ? {[key]: control.value} : null;\n }\n\n return !!entities.find(v => sameValueValidatorFn(v)) ? {[key]: control.value} : null;\n };\n}\n\nexport function filterBy(searchTerm?: string) {\n return (item) => {\n searchTerm = searchTerm && searchTerm.toLocaleLowerCase().trim();\n if (!searchTerm) { return item; }\n const value = Object.values(item);\n return value.some(val => {\n if (val === null || typeof val === 'boolean') {\n return false;\n }\n\n val = val.toString().toLocaleLowerCase().trim();\n // @ts-ignore\n if (val.indexOf(searchTerm) > -1) {\n return true;\n }\n });\n };\n}\n\nexport function alignToModel(data: T, model: T): T {\n const result: any = {};\n\n for (let key in model) {\n if (model.hasOwnProperty(key)) {\n result[key] = data[key];\n\n if (typeof data[key] === 'object' && data[key] !== null) {\n result[key] = alignToModel(data[key], model[key])\n }\n }\n }\n\n return result as T;\n}\n\nexport function isObject(object: T): boolean {\n return typeof object === 'object' && object !== null;\n}\n\n\nexport function urlJoin(...urls: string[] ): string {\n let result = urls[0];\n if (result[result.length - 1] === '/') {\n result = result.slice(0, -1);\n }\n urls.forEach((url, i) => {\n if (i > 0) {\n if (url[0] === '/') {\n url = url.substr(1)\n }\n result += `/${url}`;\n }\n });\n return result;\n}\n\nexport function parseUrl(url: string, defaultPort?: string): {hostName: string, port: number} {\n if (!url) {\n url = `${window.location.protocol}//${window.location.hostname}:${!!defaultPort ? defaultPort : window.location.port}`;\n }\n\n const a = document.createElement('a');\n a.href = url;\n\n return {hostName: `${a.protocol}//${a.hostname}`, port: +a.port};\n}\n\n/**\n * @remarks\n * Try to parse the error message from response\n *\n * @param error: any, can be an object, array, string\n *\n * */\nexport function parseError(error: any): string {\n\n if (error?.error instanceof ProgressEvent) {\n return !!isCloud\n ? onCloudDssDownMessage\n : onPremDssDownMessage;\n }\n\n if (error && error.error) {\n if (typeof error.error === 'object') {\n if (error.error.errorMessage) {\n return error.error.errorMessage;\n }\n if (error.error.errorMessages) {\n return error.error.errorMessages[0];\n }\n if (typeof error.error.errors === 'object') {\n for (let key in error.error.errors) {\n return error.error.errors[key][0];\n }\n }\n\n }\n return error.error;\n }\n return '';\n}\n/**\n * @remarks\n * Add zeros to the beginning of a number\n *\n * @param num: number, the number on which we want to add zeros\n * @param size: number, size of the final string\n * (ex: pad(1, 2) -> \"01\", pad(1, 3) -> \"001\", pad(11,2) => \"11\")\n *\n * @return padded number: string, the number with zeros at the beginning\n * */\nexport function pad(num: number, size: number): string {\n let s = num + '';\n while (s.length < size) {\n s = '0' + s;\n }\n return s;\n}\n\n/**\n * @remarks\n * Sorts an array in ascending direction by comparing the provided parameters\n *\n * @param a: any, can be an object, number, string\n * @param b: any, can be an object, number, string\n *\n * */\nexport function sortByAscending(a: any, b: any): number {\n const aToString = a.toString().toLowerCase();\n const bToString = b.toString().toLowerCase();\n\n if (aToString < bToString) {\n return -1;\n }\n\n if (aToString > bToString) {\n return 1;\n }\n\n return 0;\n}\n\n/**\n * @remarks\n * Sorts an array in descending direction by comparing the provided parameters\n *\n * @param a: any, can be an object, number, string\n * @param b: any, can be an object, number, string\n *\n * */\nexport function sortByDescending(a: any, b: any): number {\n const aToString = a.toString().toLowerCase();\n const bToString = b.toString().toLowerCase();\n\n if (aToString > bToString) {\n return -1;\n }\n\n if (aToString < bToString) {\n return 1;\n }\n\n return 0;\n}\n\nexport const sleep = (ms: number): Promise => new Promise(resolve => setTimeout(resolve, ms));\n\nexport function parseJwt(token: string): ISession {\n if (!token) {\n console.warn('Cannot parse JWT, provided value is undefined, empty or null.')\n\n return undefined;\n }\n\n try {\n const base64Url = token.split('.')[1];\n const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n const jsonPayload = decodeURIComponent(atob(base64).split('').map( c => {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n }).join(''));\n\n return JSON.parse(jsonPayload);\n } catch (e) {\n console.error(`Failed to parse JWT, details: ${e}`);\n }\n}\n\n/**\n * @remarks\n * Generates a string that can be used as a local id.\n */\nexport function safeGuid(): string {\n const array = new Uint32Array(28);\n window.crypto.getRandomValues(array);\n\n return (Array as any).from(array, dec => ('0' + dec.toString(16)).substr(-2)).join('');\n}\n\n\nexport const isDsConnectorEnabled = () : boolean => {\n return sessionStorage.getItem('useDsConnector') === 'true';\n}\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false,\n baseUrl: '/api/',\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","export const version = '1.2';\n","import 'hammerjs';\n\nimport {enableProdMode} from '@angular/core';\nimport {platformBrowserDynamic} from '@angular/platform-browser-dynamic';\n\nimport {AppModule} from './app/app.module';\nimport {environment} from './environments/environment';\nimport {akitaDevtools, enableAkitaProdMode, persistState} from '@datorama/akita';\nimport {ISecurityInfo} from './app/auth/service/security.interface';\n\nif (environment.production) {\n enableProdMode();\n enableAkitaProdMode();\n}\n\nif (!environment.production) {\n akitaDevtools();\n}\n\npersistState({\n include: [\n 'agent-ui',\n 'domain-ui',\n 'sync-ui',\n 'entity-ui',\n 'relations-ui',\n 'layout',\n 'sync-history-ui',\n 'sync-history-detail-ui'\n ],\n preStorageUpdate(storeName, state) {\n if (storeName !== 'layout') {\n return {\n tableColumns: state.tableColumns,\n paginationState: {\n ...state.paginationState,\n currentPage: 1\n }\n };\n } else {\n return state;\n }\n },\n preStoreUpdate(storeName: string, state: any): any {\n return state;\n }\n});\n\n// if (typeof window['DocumentTouch'] === 'undefined') {\n// window['DocumentTouch'] = HTMLDocument\n// }\n\nremoveAllImpersonationData();\n\ndeclare let isCloud: boolean;\ndeclare let cloudUrl: string;\ndeclare let securityUrl: string;\ndeclare let useSecurity: boolean;\n\nconst urlParams = new URLSearchParams(window.location.search);\n\nconst adminAccessToken = urlParams.get('adminAccessToken');\nconst accountId = urlParams.get('accountId');\nconst dssSecurityPropertiesUrl = `${environment.baseUrl}system/config/security-properties`\n\nif (!!adminAccessToken && !!accountId) {\n saveAdminData(adminAccessToken, accountId);\n}\n\nconsole.log(\n '%cStarting to get the security url. If the app does not load, please check the connection to the server.',\n 'color: #FFFFFF; background-color: #2F79EB; font-style: italic; padding: 0px 10px;'\n);\n\nfetch(isCloud ? cloudUrl : dssSecurityPropertiesUrl)\n .then(res => {\n\n if (!res.ok) {\n throw new Error(res.statusText);\n }\n\n return res.json();\n })\n .then((res: ISecurityInfo) => {\n securityUrl = res.securityUrl;\n useSecurity = res.useSecurity;\n sessionStorage.setItem('useDsConnector',(res.useDsConnector || false ) as unknown as string);\n\n platformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n })\n .catch(e => {\n securityUrl = window.location.origin;\n console.warn(\n '%cUnable to retrieve security url from server, proceeding with the current browser URL.',\n 'color: #FFFFFF; background-color: #000000; font-style: italic; padding: 0px 10px;'\n );\n console.log(e);\n\n platformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n });\n\nfunction saveAdminData(adminToken: string, accId: string): void {\n localStorage.setItem('adminAccessToken', adminToken);\n localStorage.setItem('accountId', accId);\n\n window.history.replaceState({}, null, '/');\n}\n\nfunction removeAllImpersonationData(): void {\n localStorage.removeItem('adminAccessToken');\n localStorage.removeItem('accountId');\n localStorage.removeItem('impersonated_access_token');\n localStorage.removeItem('impersonated_refresh_token');\n}\n"],"sourceRoot":"webpack:///"}